In an earlier article I wrote, that YAC has had problems starting offered an allocated work items in offline mode. Task variables had no input mapping because population of task variables is only done by the engine, when a work item is started. I have included a graphic to explain how I made sure the task variables are properly populated and starting offered and allocated work items will include input mappings:
When synchronizing with the YAWL engine, YAC is going through all work items by their states. If a work item is offered or allocated to the YAC user and in the resource state "offered" or "allocated", then the work item will be started. Now the work item has it's task variables populated and it will be loaded to YAC. But since we do not want to start all available work items for the YAC user, we will revert them to their state before the synchronization. This will be done because it is not certain, that the YAC user will handle the work item if it is offered to a greater number of users. Offered work items will be reoffered in the engine to the same users and allocated work items will be reallocated. The same happens in YAC, where the work items that had their states changed during synchronization, will be changed to the state before the synchronization. To put it in a nutshell the states of work items may be changed during the synchronization process, but at the end of it all work items will have their proper states back and YAC is still able to start work items in offline mode with input mappings regardless of the state they were in.