Submit

PHOTO EMBED

Tue Dec 31 2024 10:29:44 GMT+0000 (Coordinated Universal Time)

Saved by @MinaTimo

/// <summary>
/// The NW_FirstDayOrientationWFTypeSubmitManager menu item action event handler.
/// </summary>
public class NW_FirstDayOrientationWFTypeSubmitManager 
{
    public static void main(Args args)
	{
        // Variable declaration.
        recId recId;
        WorkflowCorrelationId       workflowCorrelationId;
        // Hardcoded workflow type name
        workflowTypeName workflowTypeName = workflowtypestr("WFType Name");
        // Initial note is the information that users enter when they
        // submit the document for workflow.
        WorkflowComment     initialNote = "";
        WorkflowSubmitDialog     workflowSubmitDialog;
        // The name of the table containing the records for workflow.
        NW_FirstDayOrientation      Request;
        FormDataSource              Request_ds;

       ////
       //// add validation here
       ////
      
        str menuItemName = args.menuItemName();
        if(menuItemName == menuitemactionstr(NW_FirstDayOrientationWFTypeSubmitMenuItem))
        {
            // Workflow is starting from the Windows client. This can be determined
            // because the menu item for submitting the workflow on the Windows
            // client was chosen by the user.
            // Opens the submit to workflow dialog.
            workflowSubmitDialog = WorkflowSubmitDialog::construct(args.caller().getActiveWorkflowConfiguration());
            workflowSubmitDialog.run();
    
            if (workflowSubmitDialog.parmIsClosedOK())
            {
                // Find what record from the Work Orders table is being submitted to workflow.
                recId = args.record().RecId;
                // Get comments from the submit to workflow dialog.
                initialNote = workflowSubmitDialog.parmWorkflowComment();
                try
                {
                    // Update the record in the AbsenceRequestHeader table that is being submitted to workflow.
                    // The record is moved to the 'submitted' state.
                    Request = args.record();
                    Request.WorkflowState = TradeWorkflowState::Submitted;
                    // Activate the workflow.
                    workflowCorrelationId = Workflow::activateFromWorkflowType(workflowTypeName, recId, initialNote, NoYes::No);
    
                    // Update the table using the form datasource.
                    Request_ds = Request.dataSource();
                    if (Request_ds)
                    {
                        Request_ds.write();
                        Request_ds.refresh();
                    }
                    // Updates the workflow button to diplay Actions instead of Submit.
                    args.caller().updateWorkflowControls();
                }
                catch(exception::Error)
                {
                    info("Error on workflow activation.");
                }
            }
        }
        else   //// if the user press save and submit button the below work
        {
            recId = args.record().RecId;
            try
            {
                // Update the record in the AbsenceRequestHeader table that is being submitted to workflow.
                // The record is moved to the 'submitted' state.
                Request = args.record();
                Request.WorkflowState = TradeWorkflowState::Submitted;
    
                // Activate the workflow.
                workflowCorrelationId = Workflow::activateFromWorkflowType(workflowTypeName, recId, initialNote, NoYes::No);
    
                // Update the table using the form datasource.
                Request_ds = Request.dataSource();
                if (Request_ds)
                {
                    Request_ds.write();
                    Request_ds.refresh();
                }
            }
            catch(exception::Error)
            {
                info("Error on workflow activation.");
            }
        }
	}

}
content_copyCOPY