Codeunit 1520 Workflow Event Handling
- App
- Base Application
- Namespace
- System.Automation
- Versions
- 17-28
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/System/Workflow/WorkflowEventHandling.Codeunit.al1054 lines, Copyright (c) Microsoft Corporation. MIT
namespace System.Automation;
using Microsoft.EServices.EDocument;
using Microsoft.Finance.GeneralLedger.Journal;
using Microsoft.Finance.GeneralLedger.Posting;
using Microsoft.Finance.GeneralLedger.Preview;
using Microsoft.Inventory.Item;
using Microsoft.Inventory.Journal;
using Microsoft.Inventory.Requisition;
using Microsoft.Purchases.Document;
using Microsoft.Purchases.History;
using Microsoft.Purchases.Posting;
using Microsoft.Purchases.Vendor;
using Microsoft.Sales.Customer;
using Microsoft.Sales.Document;
using System.Environment.Configuration;
using System.Threading;
codeunit 1520 "Workflow Event Handling"
{
trigger OnRun()
begin
end;
var
WorkflowManagement: Codeunit "Workflow Management";
IncDocReleasedEventDescTxt: Label 'An incoming document is released.';
CreateDocFromIncDocSuccessfulEventDescTxt: Label 'Creating a document from an incoming document is successful.';
CreateDocFromIncDocFailsEventDescTxt: Label 'Creating a document from an incoming document fails.';
IncDocCreatedEventDescTxt: Label 'An incoming document is created.';
IncDocIsReadyForOCREventDescTxt: Label 'An incoming document is ready for OCR.';
IncDocIsSentForOCREventDescTxt: Label 'An incoming document is sent for OCR.';
IncDocIsReceivedFromOCREventDescTxt: Label 'An incoming document is received from OCR.';
IncDocIsReceivedFromDocExchEventDescTxt: Label 'An incoming document is received from document exchange.';
IncDocSendForApprovalEventDescTxt: Label 'Approval of a incoming document is requested.';
IncDocApprReqCancelledEventDescTxt: Label 'An approval request for an incoming document is canceled.';
PurchDocSendForApprovalEventDescTxt: Label 'Approval of a purchase document is requested.';
PurchDocApprReqCancelledEventDescTxt: Label 'An approval request for a purchase document is canceled.';
PurchInvPostEventDescTxt: Label 'A purchase invoice is posted.';
PurchDocReleasedEventDescTxt: Label 'A purchase document is released.';
PurchInvPmtCreatedEventDescTxt: Label 'A general journal line is created.';
ApprReqApprovedEventDescTxt: Label 'An approval request is approved.';
ApprReqRejectedEventDescTxt: Label 'An approval request is rejected.';
ApprReqDelegatedEventDescTxt: Label 'An approval request is delegated.';
SalesDocSendForApprovalEventDescTxt: Label 'Approval of a sales document is requested.';
SalesDocApprReqCancelledEventDescTxt: Label 'An approval request for a sales document is canceled.';
SalesDocReleasedEventDescTxt: Label 'A sales document is released.';
#pragma warning disable AA0470
EventAlreadyExistErr: Label 'An event with description %1 already exists.';
#pragma warning restore AA0470
SendOverdueNotifTxt: Label 'The overdue approval notifications batch job will be run.';
CustomerCreditLimitExceededTxt: Label 'A customer credit limit is exceeded.';
CustomerCreditLimitNotExceededTxt: Label 'A customer credit limit is not exceeded.';
CustomerSendForApprovalEventDescTxt: Label 'Approval of a customer is requested.';
VendorSendForApprovalEventDescTxt: Label 'Approval of a vendor is requested.';
ItemSendForApprovalEventDescTxt: Label 'Approval of an item is requested.';
CustomerApprovalRequestCancelEventDescTxt: Label 'An approval request for a customer is canceled.';
VendorApprovalRequestCancelEventDescTxt: Label 'An approval request for a vendor is canceled.';
ItemApprovalRequestCancelEventDescTxt: Label 'An approval request for an item is canceled.';
GeneralJournalBatchSendForApprovalEventDescTxt: Label 'Approval of a general journal batch is requested.';
GeneralJournalBatchApprovalRequestCancelEventDescTxt: Label 'An approval request for a general journal batch is canceled.';
GeneralJournalLineSendForApprovalEventDescTxt: Label 'Approval of a general journal line is requested.';
GeneralJournalLineApprovalRequestCancelEventDescTxt: Label 'An approval request for a general journal line is canceled.';
GeneralJournalBatchBalancedEventDescTxt: Label 'A general journal batch is balanced.';
GeneralJournalBatchNotBalancedEventDescTxt: Label 'A general journal batch is not balanced.';
ImageOrPDFIsAttachedToAnIncomingDocEventDescTxt: Label 'An image or pdf is attached to a new incoming document for OCR.';
CustChangedTxt: Label 'A customer record is changed.';
VendChangedTxt: Label 'A vendor record is changed.';
ItemChangedTxt: Label 'An item record is changed.';
CreateGenJnlLineFromIncDocSuccessfulEventDescTxt: Label 'The creation of a general journal line from the incoming document was successful.';
CreateGenJnlLineFromIncDocFailsEventDescTxt: Label 'The creation of a general journal line from the incoming document failed.';
VendorBankAccountSendForApprovalEventDescTxt: Label 'Approval of a vendor bank account is requested.';
VendorBankAccountApprovalRequestCancelEventDescTxt: Label 'An approval request for a vendor bank account is canceled.';
JobQueueEntryApprovalEventDescTxt: Label 'Approval of a job queue entry is requested.';
JobQueueEntryApprReqCancelledEventDescTxt: Label 'Approval of a job queue entry is cancelled.';
RequisitionWkshBatchSendForApprovalEventDescTxt: Label 'An Approval request of a requisition worksheet batch is created.';
RequisitionWkshBatchApprovalRequestCancelEventDescTxt: Label 'An approval request for a requisition worksheet batch is canceled.';
ItemJournalBatchSendForApprovalEventDescTxt: Label 'Approval of an item journal batch is requested.';
ItemJournalBatchApprovalRequestCancelEventDescTxt: Label 'An approval request for an item journal batch is canceled.';
procedure CreateEventsLibrary()
begin
AddEventToLibrary(
RunWorkflowOnAfterInsertIncomingDocumentCode(), DATABASE::"Incoming Document", IncDocCreatedEventDescTxt, 0, false);
AddEventToLibrary(
RunWorkflowOnAfterReleaseIncomingDocCode(), DATABASE::"Incoming Document", IncDocReleasedEventDescTxt, 0, false);
AddEventToLibrary(
RunWorkflowOnAfterCreateDocFromIncomingDocSuccessCode(),
DATABASE::"Incoming Document", CreateDocFromIncDocSuccessfulEventDescTxt, 0, false);
AddEventToLibrary(
RunWorkflowOnAfterCreateDocFromIncomingDocFailCode(), DATABASE::"Incoming Document", CreateDocFromIncDocFailsEventDescTxt, 0, false);
AddEventToLibrary(
RunWorkflowOnAfterReadyForOCRIncomingDocCode(), DATABASE::"Incoming Document", IncDocIsReadyForOCREventDescTxt, 0, false);
AddEventToLibrary(
RunWorkflowOnAfterSendToOCRIncomingDocCode(), DATABASE::"Incoming Document", IncDocIsSentForOCREventDescTxt, 0, false);
AddEventToLibrary(
RunWorkflowOnAfterReceiveFromOCRIncomingDocCode(), DATABASE::"Incoming Document", IncDocIsReceivedFromOCREventDescTxt, 0, false);
AddEventToLibrary(
RunWorkflowOnAfterReceiveFromDocExchIncomingDocCode(),
DATABASE::"Incoming Document", IncDocIsReceivedFromDocExchEventDescTxt, 0, false);
AddEventToLibrary(
RunWorkflowOnSendPurchaseDocForApprovalCode(), DATABASE::"Purchase Header", PurchDocSendForApprovalEventDescTxt, 0, false);
AddEventToLibrary(
RunWorkflowOnSendIncomingDocForApprovalCode(), DATABASE::"Incoming Document", IncDocSendForApprovalEventDescTxt, 0, false);
AddEventToLibrary(
RunWorkflowOnCancelIncomingDocApprovalRequestCode(), DATABASE::"Incoming Document", IncDocApprReqCancelledEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnCancelPurchaseApprovalRequestCode(), DATABASE::"Purchase Header",
PurchDocApprReqCancelledEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnAfterReleasePurchaseDocCode(), DATABASE::"Purchase Header",
PurchDocReleasedEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnAfterPostPurchaseDocCode(), DATABASE::"Purch. Inv. Header",
PurchInvPostEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnSendSalesDocForApprovalCode(), DATABASE::"Sales Header",
SalesDocSendForApprovalEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnCancelSalesApprovalRequestCode(), DATABASE::"Sales Header",
SalesDocApprReqCancelledEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnAfterReleaseSalesDocCode(), DATABASE::"Sales Header",
SalesDocReleasedEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnAfterInsertGeneralJournalLineCode(), DATABASE::"Gen. Journal Line",
PurchInvPmtCreatedEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnApproveApprovalRequestCode(), DATABASE::"Approval Entry", ApprReqApprovedEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnRejectApprovalRequestCode(), DATABASE::"Approval Entry", ApprReqRejectedEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnDelegateApprovalRequestCode(), DATABASE::"Approval Entry", ApprReqDelegatedEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnSendOverdueNotificationsCode(), DATABASE::"Approval Entry", SendOverdueNotifTxt, 0, false);
AddEventToLibrary(RunWorkflowOnCustomerCreditLimitExceededCode(), DATABASE::"Sales Header",
CustomerCreditLimitExceededTxt, 0, false);
AddEventToLibrary(RunWorkflowOnCustomerCreditLimitNotExceededCode(), DATABASE::"Sales Header",
CustomerCreditLimitNotExceededTxt, 0, false);
AddEventToLibrary(RunWorkflowOnSendCustomerForApprovalCode(), DATABASE::Customer,
CustomerSendForApprovalEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnCancelCustomerApprovalRequestCode(), DATABASE::Customer,
CustomerApprovalRequestCancelEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnSendVendorForApprovalCode(), DATABASE::Vendor,
VendorSendForApprovalEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnCancelVendorApprovalRequestCode(), DATABASE::Vendor,
VendorApprovalRequestCancelEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnSendItemForApprovalCode(), DATABASE::Item,
ItemSendForApprovalEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnCancelItemApprovalRequestCode(), DATABASE::Item,
ItemApprovalRequestCancelEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnSendGeneralJournalBatchForApprovalCode(), DATABASE::"Gen. Journal Batch",
GeneralJournalBatchSendForApprovalEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnCancelGeneralJournalBatchApprovalRequestCode(), DATABASE::"Gen. Journal Batch",
GeneralJournalBatchApprovalRequestCancelEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnSendGeneralJournalLineForApprovalCode(), DATABASE::"Gen. Journal Line",
GeneralJournalLineSendForApprovalEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnCancelGeneralJournalLineApprovalRequestCode(), DATABASE::"Gen. Journal Line",
GeneralJournalLineApprovalRequestCancelEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnGeneralJournalBatchBalancedCode(), DATABASE::"Gen. Journal Batch",
GeneralJournalBatchBalancedEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnGeneralJournalBatchNotBalancedCode(), DATABASE::"Gen. Journal Batch",
GeneralJournalBatchNotBalancedEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnSendItemJournalBatchForApprovalCode(), Database::"Item Journal Batch",
ItemJournalBatchSendForApprovalEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnCancelItemJournalBatchApprovalRequestCode(), Database::"Item Journal Batch",
ItemJournalBatchApprovalRequestCancelEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnSendRequisitionWkshBatchForApprovalCode(), Database::"Requisition Wksh. Name",
RequisitionWkshBatchSendForApprovalEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnCancelRequisitionWkshBatchApprovalRequestCode(), Database::"Requisition Wksh. Name",
RequisitionWkshBatchApprovalRequestCancelEventDescTxt, 0, false);
AddEventToLibrary(
RunWorkflowOnBinaryFileAttachedCode(),
DATABASE::"Incoming Document Attachment", ImageOrPDFIsAttachedToAnIncomingDocEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnCustomerChangedCode(), DATABASE::Customer, CustChangedTxt, 0, true);
AddEventToLibrary(RunWorkflowOnVendorChangedCode(), DATABASE::Vendor, VendChangedTxt, 0, true);
AddEventToLibrary(RunWorkflowOnItemChangedCode(), DATABASE::Item, ItemChangedTxt, 0, true);
AddEventToLibrary(
RunWorkflowOnAfterCreateGenJnlLineFromIncomingDocSuccessCode(), DATABASE::"Incoming Document",
CreateGenJnlLineFromIncDocSuccessfulEventDescTxt, 0, false);
AddEventToLibrary(
RunWorkflowOnAfterCreateGenJnlLineFromIncomingDocFailCode(), DATABASE::"Incoming Document",
CreateGenJnlLineFromIncDocFailsEventDescTxt, 0, false);
AddEventToLibrary(
RunWorkflowOnSendVendorBankAccountForApprovalCode(), DATABASE::"Vendor Bank Account",
VendorBankAccountSendForApprovalEventDescTxt, 0, false);
AddEventToLibrary(
RunWorkflowOnCancelVendorBankAccountApprovalRequestCode(), DATABASE::"Vendor Bank Account",
VendorBankAccountApprovalRequestCancelEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnSendJobQueueEntryForApprovalCode(), Database::"Job Queue Entry", JobQueueEntryApprovalEventDescTxt, 0, false);
AddEventToLibrary(RunWorkflowOnCancelJobQueueEntryApprovalRequestCode(), Database::"Job Queue Entry", JobQueueEntryApprReqCancelledEventDescTxt, 0, false);
OnAddWorkflowEventsToLibrary();
OnAddWorkflowTableRelationsToLibrary();
end;
local procedure AddEventPredecessors(EventFunctionName: Code[128])
begin
case EventFunctionName of
RunWorkflowOnAfterPostPurchaseDocCode():
AddEventPredecessor(RunWorkflowOnAfterPostPurchaseDocCode(), RunWorkflowOnAfterReleasePurchaseDocCode());
RunWorkflowOnCancelIncomingDocApprovalRequestCode():
AddEventPredecessor(RunWorkflowOnCancelIncomingDocApprovalRequestCode(), RunWorkflowOnSendIncomingDocForApprovalCode());
RunWorkflowOnCancelPurchaseApprovalRequestCode():
AddEventPredecessor(RunWorkflowOnCancelPurchaseApprovalRequestCode(), RunWorkflowOnSendPurchaseDocForApprovalCode());
RunWorkflowOnCancelSalesApprovalRequestCode():
AddEventPredecessor(RunWorkflowOnCancelSalesApprovalRequestCode(), RunWorkflowOnSendSalesDocForApprovalCode());
RunWorkflowOnCancelCustomerApprovalRequestCode():
AddEventPredecessor(RunWorkflowOnCancelCustomerApprovalRequestCode(), RunWorkflowOnSendCustomerForApprovalCode());
RunWorkflowOnCancelVendorApprovalRequestCode():
AddEventPredecessor(RunWorkflowOnCancelVendorApprovalRequestCode(), RunWorkflowOnSendVendorForApprovalCode());
RunWorkflowOnCancelVendorBankAccountApprovalRequestCode():
AddEventPredecessor(RunWorkflowOnCancelVendorBankAccountApprovalRequestCode(), RunWorkflowOnSendVendorBankAccountForApprovalCode());
RunWorkflowOnCancelItemApprovalRequestCode():
AddEventPredecessor(RunWorkflowOnCancelItemApprovalRequestCode(), RunWorkflowOnSendItemForApprovalCode());
RunWorkflowOnCancelGeneralJournalBatchApprovalRequestCode():
AddEventPredecessor(RunWorkflowOnCancelGeneralJournalBatchApprovalRequestCode(),
RunWorkflowOnSendGeneralJournalBatchForApprovalCode());
RunWorkflowOnCancelGeneralJournalLineApprovalRequestCode():
AddEventPredecessor(RunWorkflowOnCancelGeneralJournalLineApprovalRequestCode(),
RunWorkflowOnSendGeneralJournalLineForApprovalCode());
RunWorkflowOnCancelItemJournalBatchApprovalRequestCode():
AddEventPredecessor(RunWorkflowOnCancelItemJournalBatchApprovalRequestCode(),
RunWorkflowOnSendItemJournalBatchForApprovalCode());
RunWorkflowOnCancelRequisitionWkshBatchApprovalRequestCode():
AddEventPredecessor(RunWorkflowOnCancelRequisitionWkshBatchApprovalRequestCode(),
RunWorkflowOnSendRequisitionWkshBatchForApprovalCode());
RunWorkflowOnCustomerCreditLimitExceededCode():
AddEventPredecessor(RunWorkflowOnCustomerCreditLimitExceededCode(), RunWorkflowOnSendSalesDocForApprovalCode());
RunWorkflowOnCustomerCreditLimitNotExceededCode():
AddEventPredecessor(RunWorkflowOnCustomerCreditLimitNotExceededCode(), RunWorkflowOnSendSalesDocForApprovalCode());
RunWorkflowOnApproveApprovalRequestCode():
begin
AddEventPredecessor(RunWorkflowOnApproveApprovalRequestCode(), RunWorkflowOnSendIncomingDocForApprovalCode());
AddEventPredecessor(RunWorkflowOnApproveApprovalRequestCode(), RunWorkflowOnSendPurchaseDocForApprovalCode());
AddEventPredecessor(RunWorkflowOnApproveApprovalRequestCode(), RunWorkflowOnSendSalesDocForApprovalCode());
AddEventPredecessor(RunWorkflowOnApproveApprovalRequestCode(), RunWorkflowOnSendCustomerForApprovalCode());
AddEventPredecessor(RunWorkflowOnApproveApprovalRequestCode(), RunWorkflowOnSendVendorForApprovalCode());
AddEventPredecessor(RunWorkflowOnApproveApprovalRequestCode(), RunWorkflowOnSendItemForApprovalCode());
AddEventPredecessor(RunWorkflowOnApproveApprovalRequestCode(), RunWorkflowOnSendGeneralJournalBatchForApprovalCode());
AddEventPredecessor(RunWorkflowOnApproveApprovalRequestCode(), RunWorkflowOnGeneralJournalBatchBalancedCode());
AddEventPredecessor(RunWorkflowOnApproveApprovalRequestCode(), RunWorkflowOnSendGeneralJournalLineForApprovalCode());
AddEventPredecessor(RunWorkflowOnApproveApprovalRequestCode(), RunWorkflowOnSendItemJournalBatchForApprovalCode());
AddEventPredecessor(RunWorkflowOnApproveApprovalRequestCode(), RunWorkflowOnSendRequisitionWkshBatchForApprovalCode());
AddEventPredecessor(RunWorkflowOnApproveApprovalRequestCode(), RunWorkflowOnCustomerChangedCode());
AddEventPredecessor(RunWorkflowOnApproveApprovalRequestCode(), RunWorkflowOnVendorChangedCode());
AddEventPredecessor(RunWorkflowOnApproveApprovalRequestCode(), RunWorkflowOnItemChangedCode());
AddEventPredecessor(RunWorkflowOnApproveApprovalRequestCode(), RunWorkflowOnSendJobQueueEntryForApprovalCode());
end;
RunWorkflowOnRejectApprovalRequestCode():
begin
AddEventPredecessor(RunWorkflowOnRejectApprovalRequestCode(), RunWorkflowOnSendIncomingDocForApprovalCode());
AddEventPredecessor(RunWorkflowOnRejectApprovalRequestCode(), RunWorkflowOnSendPurchaseDocForApprovalCode());
AddEventPredecessor(RunWorkflowOnRejectApprovalRequestCode(), RunWorkflowOnSendSalesDocForApprovalCode());
AddEventPredecessor(RunWorkflowOnRejectApprovalRequestCode(), RunWorkflowOnSendCustomerForApprovalCode());
AddEventPredecessor(RunWorkflowOnRejectApprovalRequestCode(), RunWorkflowOnSendVendorForApprovalCode());
AddEventPredecessor(RunWorkflowOnRejectApprovalRequestCode(), RunWorkflowOnSendItemForApprovalCode());
AddEventPredecessor(RunWorkflowOnRejectApprovalRequestCode(), RunWorkflowOnSendGeneralJournalBatchForApprovalCode());
AddEventPredecessor(RunWorkflowOnRejectApprovalRequestCode(), RunWorkflowOnGeneralJournalBatchBalancedCode());
AddEventPredecessor(RunWorkflowOnRejectApprovalRequestCode(), RunWorkflowOnSendGeneralJournalLineForApprovalCode());
AddEventPredecessor(RunWorkflowOnRejectApprovalRequestCode(), RunWorkflowOnSendItemJournalBatchForApprovalCode());
AddEventPredecessor(RunWorkflowOnRejectApprovalRequestCode(), RunWorkflowOnSendRequisitionWkshBatchForApprovalCode());
AddEventPredecessor(RunWorkflowOnRejectApprovalRequestCode(), RunWorkflowOnCustomerChangedCode());
AddEventPredecessor(RunWorkflowOnRejectApprovalRequestCode(), RunWorkflowOnVendorChangedCode());
AddEventPredecessor(RunWorkflowOnRejectApprovalRequestCode(), RunWorkflowOnItemChangedCode());
AddEventPredecessor(RunWorkflowOnRejectApprovalRequestCode(), RunWorkflowOnSendJobQueueEntryForApprovalCode());
end;
RunWorkflowOnDelegateApprovalRequestCode():
begin
AddEventPredecessor(RunWorkflowOnDelegateApprovalRequestCode(), RunWorkflowOnSendIncomingDocForApprovalCode());
AddEventPredecessor(RunWorkflowOnDelegateApprovalRequestCode(), RunWorkflowOnSendPurchaseDocForApprovalCode());
AddEventPredecessor(RunWorkflowOnDelegateApprovalRequestCode(), RunWorkflowOnSendSalesDocForApprovalCode());
AddEventPredecessor(RunWorkflowOnDelegateApprovalRequestCode(), RunWorkflowOnSendCustomerForApprovalCode());
AddEventPredecessor(RunWorkflowOnDelegateApprovalRequestCode(), RunWorkflowOnSendVendorForApprovalCode());
AddEventPredecessor(RunWorkflowOnDelegateApprovalRequestCode(), RunWorkflowOnSendItemForApprovalCode());
AddEventPredecessor(RunWorkflowOnDelegateApprovalRequestCode(), RunWorkflowOnSendGeneralJournalBatchForApprovalCode());
AddEventPredecessor(RunWorkflowOnDelegateApprovalRequestCode(), RunWorkflowOnGeneralJournalBatchBalancedCode());
AddEventPredecessor(RunWorkflowOnDelegateApprovalRequestCode(), RunWorkflowOnSendGeneralJournalLineForApprovalCode());
AddEventPredecessor(RunWorkflowOnDelegateApprovalRequestCode(), RunWorkflowOnSendItemJournalBatchForApprovalCode());
AddEventPredecessor(RunWorkflowOnDelegateApprovalRequestCode(), RunWorkflowOnSendRequisitionWkshBatchForApprovalCode());
AddEventPredecessor(RunWorkflowOnDelegateApprovalRequestCode(), RunWorkflowOnCustomerChangedCode());
AddEventPredecessor(RunWorkflowOnDelegateApprovalRequestCode(), RunWorkflowOnVendorChangedCode());
AddEventPredecessor(RunWorkflowOnDelegateApprovalRequestCode(), RunWorkflowOnItemChangedCode());
AddEventPredecessor(RunWorkflowOnDelegateApprovalRequestCode(), RunWorkflowOnSendJobQueueEntryForApprovalCode());
end;
RunWorkflowOnGeneralJournalBatchBalancedCode():
AddEventPredecessor(RunWorkflowOnGeneralJournalBatchBalancedCode(), RunWorkflowOnSendGeneralJournalBatchForApprovalCode());
RunWorkflowOnGeneralJournalBatchNotBalancedCode():
AddEventPredecessor(RunWorkflowOnGeneralJournalBatchNotBalancedCode(), RunWorkflowOnSendGeneralJournalBatchForApprovalCode());
RunWorkflowOnCancelJobQueueEntryApprovalRequestCode():
AddEventPredecessor(RunWorkflowOnCancelJobQueueEntryApprovalRequestCode(), RunWorkflowOnSendJobQueueEntryForApprovalCode());
end;
OnAddWorkflowEventPredecessorsToLibrary(EventFunctionName);
end;
local procedure HandleEventWithxRecAndRefreshRec(FunctionName: Code[128]; var Rec: Variant; xRec: Variant)
var
RecRef: RecordRef;
begin
/// Wraps HandleEventWithxRec and re-fetches Rec from the database afterwards.
/// Workflow responses may modify the record and call
/// RecRef.Modify(true), which bumps the system version stamp
WorkflowManagement.HandleEventWithxRec(FunctionName, Rec, xRec);
RecRef.GetTable(Rec);
if RecRef.Get(RecRef.RecordId) then
RecRef.SetTable(Rec);
end;
procedure AddEventToLibrary(FunctionName: Code[128]; TableID: Integer; Description: Text[250]; RequestPageID: Integer; UsedForRecordChange: Boolean)
var
WorkflowEvent: Record "Workflow Event";
SystemInitialization: Codeunit "System Initialization";
begin
OnBeforeAddEventToLibrary(FunctionName, Description);
if WorkflowEvent.Get(FunctionName) then
exit;
WorkflowEvent.SetRange(Description, Description);
if not WorkflowEvent.IsEmpty() then begin
if SystemInitialization.IsInProgress() or (GetExecutionContext() <> ExecutionContext::Normal) then
exit;
Error(EventAlreadyExistErr, Description);
end;
WorkflowEvent.Init();
WorkflowEvent."Function Name" := FunctionName;
WorkflowEvent."Table ID" := TableID;
WorkflowEvent.Description := Description;
WorkflowEvent."Request Page ID" := RequestPageID;
WorkflowEvent."Used for Record Change" := UsedForRecordChange;
WorkflowEvent.Insert();
AddEventPredecessors(WorkflowEvent."Function Name");
end;
procedure AddEventPredecessor(FunctionName: Code[128]; PredecessorFunctionName: Code[128])
var
WFEventResponseCombination: Record "WF Event/Response Combination";
begin
WFEventResponseCombination.Init();
WFEventResponseCombination.Type := WFEventResponseCombination.Type::"Event";
WFEventResponseCombination."Function Name" := FunctionName;
WFEventResponseCombination."Predecessor Type" := WFEventResponseCombination."Predecessor Type"::"Event";
WFEventResponseCombination."Predecessor Function Name" := PredecessorFunctionName;
if WFEventResponseCombination.Insert() then;
end;
[IntegrationEvent(false, false)]
local procedure OnAddWorkflowEventsToLibrary()
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAddWorkflowEventPredecessorsToLibrary(EventFunctionName: Code[128])
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAddWorkflowTableRelationsToLibrary()
begin
end;
procedure RunWorkflowOnAfterInsertIncomingDocumentCode(): Code[128]
begin
exit('RUNWORKFLOWONAFTERINSERTINCOMINGDOCUMENT');
end;
procedure RunWorkflowOnAfterReleaseIncomingDocCode(): Code[128]
begin
exit('RUNWORKFLOWONAFTERRELEASEINCOMINGDOC');
end;
procedure RunWorkflowOnAfterCreateDocFromIncomingDocSuccessCode(): Code[128]
begin
exit('RUNWORKFLOWONAFTERCREATEDOCFROMINCOMINGDOCSUCCESS');
end;
procedure RunWorkflowOnAfterCreateDocFromIncomingDocFailCode(): Code[128]
begin
exit('RUNWORKFLOWONAFTERCREATEDOCFROMINCOMINGDOCFAIL');
end;
procedure RunWorkflowOnAfterReadyForOCRIncomingDocCode(): Code[128]
begin
exit('RUNWORKFLOWONAFTERREADYFOROCRINCOMINGDOC');
end;
procedure RunWorkflowOnAfterSendToOCRIncomingDocCode(): Code[128]
begin
exit('RUNWORKFLOWONAFTERSENDTOOCRINCOMINGDOC');
end;
procedure RunWorkflowOnAfterReceiveFromOCRIncomingDocCode(): Code[128]
begin
exit('RUNWORKFLOWONAFTERRECEIVEFROMOCRINCOMINGDOC');
end;
procedure RunWorkflowOnAfterReceiveFromDocExchIncomingDocCode(): Code[128]
begin
exit('RUNWORKFLOWONAFTERRECEIVEFROMDOCEXCHINCOMINGDOC');
end;
procedure RunWorkflowOnSendPurchaseDocForApprovalCode(): Code[128]
begin
exit('RUNWORKFLOWONSENDPURCHASEDOCFORAPPROVAL');
end;
procedure RunWorkflowOnSendIncomingDocForApprovalCode(): Code[128]
begin
exit('RUNWORKFLOWONSENDINCOMINGDOCFORAPPROVAL');
end;
procedure RunWorkflowOnCancelIncomingDocApprovalRequestCode(): Code[128]
begin
exit('RUNWORKFLOWONCANCELINCOMINGDOCAPPROVALREQUEST');
end;
procedure RunWorkflowOnCancelPurchaseApprovalRequestCode(): Code[128]
begin
exit('RUNWORKFLOWONCANCELPURCHASEAPPROVALREQUEST');
end;
procedure RunWorkflowOnAfterReleasePurchaseDocCode(): Code[128]
begin
exit('RUNWORKFLOWONAFTERRELEASEPURCHASEDOC');
end;
procedure RunWorkflowOnSendSalesDocForApprovalCode(): Code[128]
begin
exit('RUNWORKFLOWONSENDSALESDOCFORAPPROVAL');
end;
procedure RunWorkflowOnCancelSalesApprovalRequestCode(): Code[128]
begin
exit('RUNWORKFLOWONCANCELSALESAPPROVALREQUEST');
end;
procedure RunWorkflowOnAfterReleaseSalesDocCode(): Code[128]
begin
exit('RUNWORKFLOWONAFTERRELEASESALESDOC');
end;
procedure RunWorkflowOnAfterPostPurchaseDocCode(): Code[128]
begin
exit('RUNWORKFLOWONAFTERPOSTPURCHASEDOC');
end;
procedure RunWorkflowOnAfterInsertGeneralJournalLineCode(): Code[128]
begin
exit('RUNWORKFLOWONAFTERINSERTGENERALJOURNALLINE');
end;
procedure RunWorkflowOnApproveApprovalRequestCode(): Code[128]
begin
exit('RUNWORKFLOWONAPPROVEAPPROVALREQUEST');
end;
procedure RunWorkflowOnDelegateApprovalRequestCode(): Code[128]
begin
exit('RUNWORKFLOWONDELEGATEAPPROVALREQUEST');
end;
procedure RunWorkflowOnRejectApprovalRequestCode(): Code[128]
begin
exit('RUNWORKFLOWONREJECTAPPROVALREQUEST');
end;
procedure RunWorkflowOnSendOverdueNotificationsCode(): Code[128]
begin
exit('RUNWORKFLOWONSENDOVERDUENOTIFICATIONS');
end;
procedure RunWorkflowOnCustomerCreditLimitExceededCode(): Code[128]
begin
exit('RUNWORKFLOWONCUSTOMERCREDITLIMITEXCEEDED');
end;
procedure RunWorkflowOnCustomerCreditLimitNotExceededCode(): Code[128]
begin
exit('RUNWORKFLOWONCUSTOMERCREDITLIMITNOTEXCEEDED');
end;
procedure RunWorkflowOnSendCustomerForApprovalCode(): Code[128]
begin
exit('RUNWORKFLOWONSENDCUSTOMERFORAPPROVAL');
end;
procedure RunWorkflowOnSendVendorForApprovalCode(): Code[128]
begin
exit('RUNWORKFLOWONSENDVENDORFORAPPROVAL');
end;
procedure RunWorkflowOnSendItemForApprovalCode(): Code[128]
begin
exit('RUNWORKFLOWONSENDITEMFORAPPROVAL');
end;
procedure RunWorkflowOnCancelCustomerApprovalRequestCode(): Code[128]
begin
exit('RUNWORKFLOWONCANCELCUSTOMERAPPROVALREQUEST');
end;
procedure RunWorkflowOnCancelVendorApprovalRequestCode(): Code[128]
begin
exit('RUNWORKFLOWONCANCELVENDORAPPROVALREQUEST');
end;
procedure RunWorkflowOnCancelItemApprovalRequestCode(): Code[128]
begin
exit('RUNWORKFLOWONCANCELITEMAPPROVALREQUEST');
end;
procedure RunWorkflowOnSendGeneralJournalBatchForApprovalCode(): Code[128]
begin
exit('RUNWORKFLOWONSENDGENERALJOURNALBATCHFORAPPROVAL');
end;
procedure RunWorkflowOnCancelGeneralJournalBatchApprovalRequestCode(): Code[128]
begin
exit('RUNWORKFLOWONCANCELGENERALJOURNALBATCHAPPROVALREQUEST');
end;
procedure RunWorkflowOnSendGeneralJournalLineForApprovalCode(): Code[128]
begin
exit('RUNWORKFLOWONSENDGENERALJOURNALLINEFORAPPROVAL');
end;
procedure RunWorkflowOnCancelGeneralJournalLineApprovalRequestCode(): Code[128]
begin
exit('RUNWORKFLOWONCANCELGENERALJOURNALLINEAPPROVALREQUEST');
end;
procedure RunWorkflowOnGeneralJournalBatchBalancedCode(): Code[128]
begin
exit('RUNWORKFLOWONGENERALJOURNALBATCHBALANCED');
end;
procedure RunWorkflowOnGeneralJournalBatchNotBalancedCode(): Code[128]
begin
exit('RUNWORKFLOWONGENERALJOURNALBATCHNOTBALANCED');
end;
procedure RunWorkflowOnSendItemJournalBatchForApprovalCode(): Code[128]
begin
exit('RUNWORKFLOWONSENDITEMJOURNALBATCHFORAPPROVAL');
end;
procedure RunWorkflowOnCancelItemJournalBatchApprovalRequestCode(): Code[128]
begin
exit('RUNWORKFLOWONCANCELITEMJOURNALBATCHAPPROVALREQUEST');
end;
procedure RunWorkflowOnSendRequisitionWkshBatchForApprovalCode(): Code[128]
begin
exit('RUNWORKFLOWONSENDREQUISITIONWORKSHEETBATCHFORAPPROVAL');
end;
procedure RunWorkflowOnCancelRequisitionWkshBatchApprovalRequestCode(): Code[128]
begin
exit('RUNWORKFLOWONCANCELAREQUISITIONWORKSHEETBATCHAPPROVALREQUEST');
end;
procedure RunWorkflowOnBinaryFileAttachedCode(): Code[128]
begin
exit('RUNWORKFLOWONBINARYFILEATTACHED');
end;
procedure RunWorkflowOnCustomerChangedCode(): Code[128]
begin
exit('RUNWORKFLOWONCUSTOMERCHANGEDCODE');
end;
procedure RunWorkflowOnVendorChangedCode(): Code[128]
begin
exit('RUNWORKFLOWONVENDORCHANGEDCODE');
end;
procedure RunWorkflowOnItemChangedCode(): Code[128]
begin
exit('RUNWORKFLOWONITEMCHANGEDCODE');
end;
procedure RunWorkflowOnAfterCreateGenJnlLineFromIncomingDocSuccessCode(): Code[128]
begin
exit('RUNWORKFLOWONAFTERCREATEGENJNLLINEFROMINCOMINGDOCSUCCESSCODE');
end;
procedure RunWorkflowOnAfterCreateGenJnlLineFromIncomingDocFailCode(): Code[128]
begin
exit('RUNWORKFLOWONAFTERCREATEGENJNLLINEFROMINCOMINGDOFAILCODE');
end;
procedure RunWorkflowOnSendVendorBankAccountForApprovalCode(): Code[128]
begin
exit('RUNWORKFLOWONSENDVENDORBANKACCOUNTFORAPPROVAL');
end;
procedure RunWorkflowOnCancelVendorBankAccountApprovalRequestCode(): Code[128]
begin
exit('RUNWORKFLOWONCANCELVENDORBANKACCOUNTAPPROVALREQUEST');
end;
procedure RunWorkflowOnSendJobQueueEntryForApprovalCode(): Code[128]
begin
exit(UpperCase('RunWorkflowOnSendJobQueueEntryForApproval'));
end;
procedure RunWorkflowOnCancelJobQueueEntryApprovalRequestCode(): Code[128]
begin
exit(UpperCase('RunWorkflowOnCancelJobQueueEntryApprovalRequest'));
end;
[EventSubscriber(ObjectType::Table, Database::"Incoming Document", 'OnAfterInsertEvent', '', false, false)]
procedure RunWorkflowOnAfterInsertIncomingDocument(var Rec: Record "Incoming Document"; RunTrigger: Boolean)
begin
if Rec.IsTemporary() then
exit;
WorkflowManagement.HandleEvent(RunWorkflowOnAfterInsertIncomingDocumentCode(), Rec);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnSendPurchaseDocForApproval', '', false, false)]
procedure RunWorkflowOnSendPurchaseDocForApproval(var PurchaseHeader: Record "Purchase Header")
begin
OnBeforeRunWorkflowOnSendPurchaseDocForApproval(PurchaseHeader);
WorkflowManagement.HandleEvent(RunWorkflowOnSendPurchaseDocForApprovalCode(), PurchaseHeader);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnCancelPurchaseApprovalRequest', '', false, false)]
procedure RunWorkflowOnCancelPurchaseApprovalRequest(var PurchaseHeader: Record "Purchase Header")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnCancelPurchaseApprovalRequestCode(), PurchaseHeader);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnSendIncomingDocForApproval', '', false, false)]
procedure RunWorkflowOnSendIncomingDocForApproval(var IncomingDocument: Record "Incoming Document")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnSendIncomingDocForApprovalCode(), IncomingDocument);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnCancelIncomingDocApprovalRequest', '', false, false)]
procedure RunWorkflowOnCancelIncomingDocApprovalRequest(var IncomingDocument: Record "Incoming Document")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnCancelIncomingDocApprovalRequestCode(), IncomingDocument);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Release Purchase Document", 'OnAfterReleasePurchaseDoc', '', false, false)]
procedure RunWorkflowOnAfterReleasePurchaseDoc(var PurchaseHeader: Record "Purchase Header"; PreviewMode: Boolean)
begin
if not PreviewMode then
WorkflowManagement.HandleEvent(RunWorkflowOnAfterReleasePurchaseDocCode(), PurchaseHeader);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnSendSalesDocForApproval', '', false, false)]
procedure RunWorkflowOnSendSalesDocForApproval(var SalesHeader: Record "Sales Header")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnSendSalesDocForApprovalCode(), SalesHeader);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnCancelSalesApprovalRequest', '', false, false)]
procedure RunWorkflowOnCancelSalesApprovalRequest(var SalesHeader: Record "Sales Header")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnCancelSalesApprovalRequestCode(), SalesHeader);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Release Sales Document", 'OnAfterReleaseSalesDoc', '', false, false)]
procedure RunWorkflowOnAfterReleaseSalesDoc(var SalesHeader: Record "Sales Header"; PreviewMode: Boolean)
begin
if not PreviewMode then
WorkflowManagement.HandleEvent(RunWorkflowOnAfterReleaseSalesDocCode(), SalesHeader);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Release Incoming Document", 'OnAfterReleaseIncomingDoc', '', false, false)]
procedure RunWorkflowOnAfterReleaseIncomingDoc(var IncomingDocument: Record "Incoming Document")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnAfterReleaseIncomingDocCode(), IncomingDocument);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Release Incoming Document", 'OnAfterCreateDocFromIncomingDocSuccess', '', false, false)]
procedure RunWorkflowOnAfterCreateDocFromIncomingDocSuccess(var IncomingDocument: Record "Incoming Document")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnAfterCreateDocFromIncomingDocSuccessCode(), IncomingDocument);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Release Incoming Document", 'OnAfterCreateDocFromIncomingDocFail', '', false, false)]
procedure RunWorkflowOnAfterCreateDocFromIncomingDocFail(var IncomingDocument: Record "Incoming Document")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnAfterCreateDocFromIncomingDocFailCode(), IncomingDocument);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Send Incoming Document to OCR", 'OnAfterIncomingDocReadyForOCR', '', false, false)]
procedure RunWorkflowOnAfterIncomingDocReadyForOCR(var IncomingDocument: Record "Incoming Document")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnAfterReadyForOCRIncomingDocCode(), IncomingDocument);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Send Incoming Document to OCR", 'OnAfterIncomingDocSentToOCR', '', false, false)]
procedure RunWorkflowOnAfterIncomingDocSentToOCR(var IncomingDocument: Record "Incoming Document")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnAfterSendToOCRIncomingDocCode(), IncomingDocument);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Send Incoming Document to OCR", 'OnAfterIncomingDocReceivedFromOCR', '', false, false)]
procedure RunWorkflowOnAfterIncomingDocReceivedFromOCR(var IncomingDocument: Record "Incoming Document")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnAfterReceiveFromOCRIncomingDocCode(), IncomingDocument);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Doc. Exch. Service Mgt.", 'OnAfterIncomingDocReceivedFromDocExch', '', false, false)]
[Scope('OnPrem')]
procedure RunWorkflowOnAfterIncomingDocReceivedFromDocExch(var IncomingDocument: Record "Incoming Document")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnAfterReceiveFromDocExchIncomingDocCode(), IncomingDocument);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Purch.-Post", 'OnAfterPostPurchaseDoc', '', false, false)]
procedure RunWorkflowOnAfterPostPurchaseDoc(var PurchaseHeader: Record "Purchase Header"; var GenJnlPostLine: Codeunit "Gen. Jnl.-Post Line"; PurchRcpHdrNo: Code[20]; RetShptHdrNo: Code[20]; PurchInvHdrNo: Code[20]; PurchCrMemoHdrNo: Code[20])
var
PurchInvHeader: Record "Purch. Inv. Header";
begin
case PurchaseHeader."Document Type" of
PurchaseHeader."Document Type"::Order, PurchaseHeader."Document Type"::Invoice:
if PurchInvHeader.Get(PurchInvHdrNo) then
WorkflowManagement.HandleEvent(RunWorkflowOnAfterPostPurchaseDocCode(), PurchInvHeader);
end;
end;
[EventSubscriber(ObjectType::Table, Database::"Gen. Journal Line", 'OnAfterInsertEvent', '', false, false)]
procedure RunWorkflowOnAfterInsertGeneralJournalLine(var Rec: Record "Gen. Journal Line"; RunTrigger: Boolean)
begin
if Rec.IsTemporary() then
exit;
WorkflowManagement.HandleEvent(RunWorkflowOnAfterInsertGeneralJournalLineCode(), Rec);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnApproveApprovalRequest', '', false, false)]
procedure RunWorkflowOnApproveApprovalRequest(var ApprovalEntry: Record "Approval Entry")
begin
OnBeforeRunWorkflowOnApproveApprovalRequest(ApprovalEntry);
WorkflowManagement.HandleEventOnKnownWorkflowInstance(RunWorkflowOnApproveApprovalRequestCode(),
ApprovalEntry, ApprovalEntry."Workflow Step Instance ID");
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnDelegateApprovalRequest', '', false, false)]
procedure RunWorkflowOnDelegateApprovalRequest(var ApprovalEntry: Record "Approval Entry")
begin
WorkflowManagement.HandleEventOnKnownWorkflowInstance(RunWorkflowOnDelegateApprovalRequestCode(),
ApprovalEntry, ApprovalEntry."Workflow Step Instance ID");
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnRejectApprovalRequest', '', false, false)]
procedure RunWorkflowOnRejectApprovalRequest(var ApprovalEntry: Record "Approval Entry")
begin
WorkflowManagement.HandleEventOnKnownWorkflowInstance(RunWorkflowOnRejectApprovalRequestCode(),
ApprovalEntry, ApprovalEntry."Workflow Step Instance ID");
end;
[EventSubscriber(ObjectType::Report, Report::"Send Overdue Appr. Notif.", 'OnSendOverdueNotifications', '', false, false)]
procedure RunWorkflowOnSendOverdueNotifications()
var
ApprovalEntry: Record "Approval Entry";
begin
ApprovalEntry.SetFilter(Status, '%1|%2', ApprovalEntry.Status::Created, ApprovalEntry.Status::Open);
ApprovalEntry.SetFilter("Due Date", '<%1', Today);
if not ApprovalEntry.FindSet() then
ApprovalEntry.Init();
WorkflowManagement.HandleEvent(RunWorkflowOnSendOverdueNotificationsCode(), ApprovalEntry);
end;
[EventSubscriber(ObjectType::Table, Database::"Sales Header", 'OnCustomerCreditLimitExceeded', '', false, false)]
procedure RunWorkflowOnCustomerCreditLimitExceeded(var Sender: Record "Sales Header")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnCustomerCreditLimitExceededCode(), Sender);
end;
[EventSubscriber(ObjectType::Table, Database::"Sales Header", 'OnCustomerCreditLimitNotExceeded', '', false, false)]
procedure RunWorkflowOnCustomerCreditLimitNotExceeded(var Sender: Record "Sales Header")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnCustomerCreditLimitNotExceededCode(), Sender);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnSendCustomerForApproval', '', false, false)]
procedure RunWorkflowOnSendCustomerForApproval(Customer: Record Customer)
begin
WorkflowManagement.HandleEvent(RunWorkflowOnSendCustomerForApprovalCode(), Customer);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnSendVendorForApproval', '', false, false)]
procedure RunWorkflowOnSendVendorForApproval(Vendor: Record Vendor)
begin
WorkflowManagement.HandleEvent(RunWorkflowOnSendVendorForApprovalCode(), Vendor);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnSendItemForApproval', '', false, false)]
procedure RunWorkflowOnSendItemForApproval(Item: Record Item)
begin
WorkflowManagement.HandleEvent(RunWorkflowOnSendItemForApprovalCode(), Item);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnCancelCustomerApprovalRequest', '', false, false)]
procedure RunWorkflowOnCancelCustomerApprovalRequest(Customer: Record Customer)
begin
WorkflowManagement.HandleEvent(RunWorkflowOnCancelCustomerApprovalRequestCode(), Customer);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnCancelVendorApprovalRequest', '', false, false)]
procedure RunWorkflowOnCancelVendorApprovalRequest(Vendor: Record Vendor)
begin
WorkflowManagement.HandleEvent(RunWorkflowOnCancelVendorApprovalRequestCode(), Vendor);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnCancelItemApprovalRequest', '', false, false)]
procedure RunWorkflowOnCancelItemApprovalRequest(Item: Record Item)
begin
WorkflowManagement.HandleEvent(RunWorkflowOnCancelItemApprovalRequestCode(), Item);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnSendGeneralJournalBatchForApproval', '', false, false)]
procedure RunWorkflowOnSendGeneralJournalBatchForApproval(var GenJournalBatch: Record "Gen. Journal Batch")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnSendGeneralJournalBatchForApprovalCode(), GenJournalBatch);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnCancelGeneralJournalBatchApprovalRequest', '', false, false)]
procedure RunWorkflowOnCancelGeneralJournalBatchApprovalRequest(var GenJournalBatch: Record "Gen. Journal Batch")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnCancelGeneralJournalBatchApprovalRequestCode(), GenJournalBatch);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnSendGeneralJournalLineForApproval', '', false, false)]
procedure RunWorkflowOnSendGeneralJournalLineForApproval(var GenJournalLine: Record "Gen. Journal Line")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnSendGeneralJournalLineForApprovalCode(), GenJournalLine);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnCancelGeneralJournalLineApprovalRequest', '', false, false)]
procedure RunWorkflowOnCancelGeneralJournalLineApprovalRequest(var GenJournalLine: Record "Gen. Journal Line")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnCancelGeneralJournalLineApprovalRequestCode(), GenJournalLine);
end;
[EventSubscriber(ObjectType::Table, Database::"Gen. Journal Batch", 'OnGeneralJournalBatchBalanced', '', false, false)]
procedure RunWorkflowOnGeneralJournalBatchBalanced(var Sender: Record "Gen. Journal Batch")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnGeneralJournalBatchBalancedCode(), Sender);
end;
[EventSubscriber(ObjectType::Table, Database::"Gen. Journal Batch", 'OnGeneralJournalBatchNotBalanced', '', false, false)]
procedure RunWorkflowOnGeneralJournalBatchNotBalanced(var Sender: Record "Gen. Journal Batch")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnGeneralJournalBatchNotBalancedCode(), Sender);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnSendItemJournalBatchForApproval', '', false, false)]
procedure RunWorkflowOnSendItemJournalBatchForApproval(var ItemJournalBatch: Record "Item Journal Batch")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnSendItemJournalBatchForApprovalCode(), ItemJournalBatch);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnCancelItemJournalBatchApprovalRequest', '', false, false)]
procedure RunWorkflowOnCancelItemJournalBatchApprovalRequest(var ItemJournalBatch: Record "Item Journal Batch")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnCancelItemJournalBatchApprovalRequestCode(), ItemJournalBatch);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnSendRequisitionWkshBatchForApproval', '', false, false)]
procedure RunWorkflowOnSendRequisitionWkshBatchForApproval(var RequisitionWkshName: Record "Requisition Wksh. Name")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnSendRequisitionWkshBatchForApprovalCode(), RequisitionWkshName);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnCancelRequisitionWkshBatchApprovalRequest', '', false, false)]
procedure RunWorkflowOnCancelRequisitionWkshBatchApprovalRequest(var RequisitionWkshName: Record "Requisition Wksh. Name")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnCancelRequisitionWkshBatchApprovalRequestCode(), RequisitionWkshName);
end;
[EventSubscriber(ObjectType::Table, Database::"Incoming Document Attachment", 'OnAttachBinaryFile', '', false, false)]
[Scope('OnPrem')]
procedure RunWorkflowOnBinaryFileAttached(var Sender: Record "Incoming Document Attachment")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnBinaryFileAttachedCode(), Sender);
end;
[EventSubscriber(ObjectType::Table, Database::"Customer", 'OnAfterModifyEvent', '', false, false)]
procedure RunWorkflowOnCustomerChanged(var Rec: Record Customer; var xRec: Record Customer; RunTrigger: Boolean)
var
RecVariant: Variant;
begin
if Rec.IsTemporary() then
exit;
if Format(xRec) <> Format(Rec) then begin
RecVariant := Rec;
HandleEventWithxRecAndRefreshRec(RunWorkflowOnCustomerChangedCode(), RecVariant, xRec);
Rec := RecVariant;
end;
end;
[EventSubscriber(ObjectType::Table, Database::"Customer", 'OnAfterRenameEvent', '', false, false)]
local procedure RunWorkflowOnCustomerRenamed(var Rec: Record Customer; var xRec: Record Customer; RunTrigger: Boolean)
var
RecVariant: Variant;
begin
if Rec.IsTemporary() then
exit;
if Format(xRec) <> Format(Rec) then begin
RecVariant := Rec;
HandleEventWithxRecAndRefreshRec(RunWorkflowOnCustomerChangedCode(), RecVariant, xRec);
Rec := RecVariant;
end;
end;
[EventSubscriber(ObjectType::Table, Database::"Vendor", 'OnAfterModifyEvent', '', false, false)]
procedure RunWorkflowOnVendorChanged(var Rec: Record Vendor; var xRec: Record Vendor; RunTrigger: Boolean)
var
RecVariant: Variant;
begin
if Rec.IsTemporary() then
exit;
if Format(xRec) <> Format(Rec) then begin
RecVariant := Rec;
HandleEventWithxRecAndRefreshRec(RunWorkflowOnVendorChangedCode(), RecVariant, xRec);
Rec := RecVariant;
end;
end;
[EventSubscriber(ObjectType::Table, Database::"Vendor", 'OnAfterRenameEvent', '', false, false)]
local procedure RunWorkflowOnVendorRenamed(var Rec: Record Vendor; var xRec: Record Vendor; RunTrigger: Boolean)
var
RecVariant: Variant;
begin
if Rec.IsTemporary() then
exit;
if Format(xRec) <> Format(Rec) then begin
RecVariant := Rec;
HandleEventWithxRecAndRefreshRec(RunWorkflowOnVendorChangedCode(), RecVariant, xRec);
Rec := RecVariant;
end;
end;
[EventSubscriber(ObjectType::Table, Database::"Item", 'OnAfterModifyEvent', '', false, false)]
procedure RunWorkflowOnItemChanged(var Rec: Record Item; var xRec: Record Item; RunTrigger: Boolean)
var
GenJnlPostPreview: Codeunit "Gen. Jnl.-Post Preview";
RecVariant: Variant;
begin
if Rec.IsTemporary() then
exit;
if GenJnlPostPreview.IsActive() then
exit;
if Format(xRec) <> Format(Rec) then begin
RecVariant := Rec;
HandleEventWithxRecAndRefreshRec(RunWorkflowOnItemChangedCode(), RecVariant, xRec);
Rec := RecVariant;
end;
end;
[EventSubscriber(ObjectType::Table, Database::"Item", 'OnAfterRenameEvent', '', false, false)]
local procedure RunWorkflowOnItemRenamed(var Rec: Record Item; var xRec: Record Item; RunTrigger: Boolean)
var
GenJnlPostPreview: Codeunit "Gen. Jnl.-Post Preview";
RecVariant: Variant;
begin
if Rec.IsTemporary() then
exit;
if GenJnlPostPreview.IsActive() then
exit;
if Format(xRec) <> Format(Rec) then begin
RecVariant := Rec;
HandleEventWithxRecAndRefreshRec(RunWorkflowOnItemChangedCode(), RecVariant, xRec);
Rec := RecVariant;
end;
end;
[EventSubscriber(ObjectType::Table, Database::"Incoming Document", 'OnAfterCreateGenJnlLineFromIncomingDocSuccess', '', false, false)]
procedure RunWorkflowOnAfterCreateGenJnlLineFromIncomingDocSuccess(var IncomingDocument: Record "Incoming Document")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnAfterCreateGenJnlLineFromIncomingDocSuccessCode(), IncomingDocument);
end;
[EventSubscriber(ObjectType::Table, Database::"Incoming Document", 'OnAfterCreateGenJnlLineFromIncomingDocFail', '', false, false)]
procedure RunWorkflowOnAfterCreateGenJnlLineFromIncomingDocFail(var IncomingDocument: Record "Incoming Document")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnAfterCreateGenJnlLineFromIncomingDocFailCode(), IncomingDocument);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnSendVendorBankAccountForApproval', '', false, false)]
procedure RunWorkflowOnSendVendorBankAccountForApproval(VendorBankAccount: Record "Vendor Bank Account")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnSendVendorBankAccountForApprovalCode(), VendorBankAccount);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnCancelVendorBankAccountApprovalRequest', '', false, false)]
procedure RunWorkflowOnCancelVendorBankAccountApprovalRequest(VendorBankAccount: Record "Vendor Bank Account")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnCancelVendorBankAccountApprovalRequestCode(), VendorBankAccount);
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeAddEventToLibrary(FunctionName: Code[128]; Description: Text[250])
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeRunWorkflowOnSendPurchaseDocForApproval(var PurchaseHeader: Record "Purchase Header")
begin
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnSendJobQueueEntryForApproval', '', true, true)]
local procedure RunWorkflowOnOnSendJobQueueEntryForApproval(var JobQueueEntry: Record "Job Queue Entry")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnSendJobQueueEntryForApprovalCode(), JobQueueEntry);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Approvals Mgmt.", 'OnCancelJobQueueEntryApprovalRequest', '', true, true)]
local procedure RunWorkflowOnCancelJobQueueEntryApprovalRequest(var JobQueueEntry: Record "Job Queue Entry")
begin
WorkflowManagement.HandleEvent(RunWorkflowOnCancelJobQueueEntryApprovalRequestCode(), JobQueueEntry);
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeRunWorkflowOnApproveApprovalRequest(var ApprovalEntry: Record "Approval Entry")
begin
end;
}