Create Work Flow Manuals
Create Work Flow Manuals
20. Create new work Flow and Enter Work flow name and Select a
Category.
21. Enter Work flow in Create Event.
CASE LinesSent OF
0:
MESSAGE(NoApprovalsSentMsg);
MonthlyTransaction.COUNT:
MESSAGE(PendingApprovalForSelectedLinesMsg);
ELSE
MESSAGE(PendingApprovalForSomeSelectedLinesMsg);
END;
//DCS:KK-NE
CheckEmployeeSalaryApprovalsWorkflowEnabled(VAR MonthlyTransaction :
Record "Monthly Transaction") : Boolean
IF NOT
WorkflowManagement.CanExecuteWorkflow(MonthlyTransaction,WorkflowEve
ntHandling.RunWorkflowOnSendEmployeeSalaryForApprovalCode)
THEN
ERROR(NoWorkflowEnabledErr);
EXIT(TRUE);
//DCS:KK
[IntegrationEvent] OnSendEmployeeSalaryForApproval(VAR
MonthlyTransaction : Record "Monthly Transaction")
//DCS:KK
TryCancelEmployeeSalaryApprovalRequests(VAR MonthlyTransaction :
Record "Monthly Transaction")
REPEAT
IF HasOpenApprovalEntries(MonthlyTransaction.RECORDID) THEN
OnCancelEmployeeSalaryApprovalRequest(MonthlyTransaction);
UNTIL MonthlyTransaction.NEXT = 0;
MESSAGE(ApprovalReqCanceledForSelectedLinesMsg);
//DCS:KK
[IntegrationEvent] OnCancelEmployeeSalaryApprovalRequest(VAR
MonthlyTransaction : Record "Monthly Transaction")
//DCS:KK
MESSAGE(DocStatusChangedMsg,MonthlyTransaction.Year,MonthlyTransacti
on.Month,MonthlyTransaction.Status);
END;
//DCS:KK
LOCAL FindApprovedApprovalEntryForWorkflowUserGroup(VAR
ApprovalEntry : Record "Approval Entry";WorkflowStepInstance :
Record "Workflow Step Instance") : Boolean
WorkflowInstance.SETRANGE(Function_Name,WorkflowResponseHandling.Cre
ateApprovalRequestsCode);
WorkflowInstance.SETRANGE(Record_ID,WorkflowStepInstance."Record
ID");
WorkflowInstance.SETRANGE(Code,WorkflowStepInstance."Workflow
Code");
WorkflowInstance.SETRANGE(Type,WorkflowInstance.Type::Response);
WorkflowInstance.SETRANGE(Status,WorkflowInstance.Status::Completed)
;
WorkflowInstance.OPEN;
WHILE WorkflowInstance.READ DO
IF
WorkflowStepInstance.GET(WorkflowInstance.Instance_ID,WorkflowInstan
ce.Code,WorkflowInstance.Step_ID) THEN
IF WorkflowStepArgument.GET(WorkflowStepInstance.Argument) THEN
IF WorkflowStepArgument."Approver Type" =
WorkflowStepArgument."Approver Type"::"Workflow User Group" THEN
BEGIN
ApprovalEntry.SETRANGE(Status,ApprovalEntry.Status::Approved);
EXIT(ApprovalEntry.FINDLAST);
END;
EXIT(FALSE);
LOCAL FindOpenApprovalEntriesForWorkflowStepInstance(ApprovalEntry :
Record "Approval Entry";WorkflowStepInstance : Record "Workflow Step
Instance") : Boolean
ApprovalEntry2.SETFILTER(
"Record ID to Approve",'%1|%2',
WorkflowStepInstance."Record ID",ApprovalEntry."Record ID to
Approve");
ApprovalEntry2.SETRANGE(Status,ApprovalEntry2.Status::Open);
ApprovalEntry2.SETRANGE("Workflow Step Instance
ID",ApprovalEntry."Workflow Step Instance ID");
EXIT(NOT ApprovalEntry2.ISEMPTY);