- approve several purchase requisitions at the same time.
{
WorkFlowWorkItemTable workItem, workItemUpdate, workItemSend;
MultiSelectionHelper helper;
WorkflowWorkItemActionDialog workflowWorkItemActionDialog;
helper = MultiSelectionHelper::construct();
helper.parmDatasource(workflowWorkItemTable_ds);
workItem = helper.getFirst();
if (workItem.RecId != 0)
{
workflowWorkItemActionDialog = WorkflowWorkItemActionDialog::construct(workItem,
WorkflowWorkItemActionType::Delegate,
new MenuFunction(menuitemActionStr(WorkflowLineItemResubmit), MenuItemType::Display));
workflowWorkItemActionDialog.run();
{
// Condition is Rejected because Status is changed in Returned inside Approval Event Handler.
while (workItem.RecId != 0 && workItem.Status == WorkFlowWorkItemStatus::Pending)
{
select firstOnly workItemSend
where workItemSend.RecId == workItem.RecId;
{
WorkflowWorkItemActionManager::dispatchWorkItemAction(workItemSend,
workflowWorkItemActionDialog.parmWorkflowComment(),
workflowWorkItemActionDialog.parmTargetUser(),
WorkflowWorkItemActionType::Delegate,
menuItemDisplayStr(WorkflowWorkListAcceptanceMassive),false);
//Actualizamos el registro
ttsBegin;
select forUpdate workItemUpdate where workItemUpdate.RecId == workItem.RecId;
workItemUpdate.Status = WorkFlowWorkItemStatus::Completed;
workItemUpdate.update();
ttsCommit;
}
catch(Exception::Error)
{
throw error(strfmt("Error en la acción masiva"));
}
}
info("Delegación masiva finalizada");
workflowWorkItemTable_ds.research();
}
}
}