When an activity is referenced in several role-parts, following error is raised, upon access to a resource.
Database operation "0or1row" failed (exception NSINT, "Query returned more than one row.")
select item_id as rp_item_id, role_part_id
where activity_structure_id = '3854'
The solution probably consists in passing also the act where the activity appears to the get_role_part_from_activity function. Unless, you return all role_parts where the activity is referenced, and mark them finished. But this would mean that the activity gets marked as finished for all plays where it appears.
This raises a more general question I wanted to ask you: In the design of the imsld package, I could not find the concept of a "run" that instantiates a learning design, and that would make it possible to restart the delivery from scratch with a new run if desired. Is this something you plan to add?