Code

// Create the list we will pass to the enactment service.
    final List enactmentStructs = new ArrayList();

    final TaskCreateDetails taskCreateDetails =
      new TaskCreateDetails();

    taskCreateDetails.subject = "The subject of a Task";
    taskCreateDetails.reservedBy = "someUser";

    enactmentStructs.add(taskCreateDetailsStruct);
    
    // An aggregated struct.
    GroupMemberDetails groupMemberDetails 
      = new GroupMemberDetails();
      
    groupMemberDetails.dtls.memberName = "Test User";
    
    enactmentStructs.add(groupMemberDetails);
    
    // A list struct.
    ChildDetailsList childDetailsList 
      = new ChildDetailsList();
      
    ChildDetails recordOne = new ChildDetails();
    recordOne.identifier = 1;
    childDetailsList.dtls.add(recordOne);
    
    ChildDetails recordTwo = new ChildDetails();
    recordTwo.identifier = 2;
    childDetailsList.dtls.add(recordTwo);
    
    enactmentStructs.add(childDetailsList);
    

    EnactmentService.startProcess(
      "TASKCREATEWORKFLOW", enactmentStructs);