Codeunit 1542 Workflow Webhook Responses, source in 29
Source29
src/Layers/W1/BaseApp/System/Workflow/WorkflowWebhookResponses.Codeunit.al82 lines, Copyright (c) Microsoft Corporation. MIT
namespace System.Automation;
codeunit 1542 "Workflow Webhook Responses"
{
trigger OnRun()
begin
end;
var
SendNotificationToWebhookTxt: Label 'Send a record notification to a webhook.';
procedure SendNotificationToWebhookCode(): Code[128]
begin
exit('SENDNOTIFICATIONTOWEBHOOK');
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Workflow Response Handling", 'OnAddWorkflowResponsePredecessorsToLibrary', '', false, false)]
local procedure AddWorkflowWebhookEventResponseCombinationsToLibrary(ResponseFunctionName: Code[128])
var
WorkflowEventHandling: Codeunit "Workflow Event Handling";
WorkflowResponseHandling: Codeunit "Workflow Response Handling";
begin
case ResponseFunctionName of
SendNotificationToWebhookCode():
begin
WorkflowResponseHandling.AddResponsePredecessor(SendNotificationToWebhookCode(),
WorkflowEventHandling.RunWorkflowOnSendCustomerForApprovalCode());
WorkflowResponseHandling.AddResponsePredecessor(SendNotificationToWebhookCode(),
WorkflowEventHandling.RunWorkflowOnSendGeneralJournalBatchForApprovalCode());
WorkflowResponseHandling.AddResponsePredecessor(SendNotificationToWebhookCode(),
WorkflowEventHandling.RunWorkflowOnSendGeneralJournalLineForApprovalCode());
WorkflowResponseHandling.AddResponsePredecessor(SendNotificationToWebhookCode(),
WorkflowEventHandling.RunWorkflowOnSendItemJournalBatchForApprovalCode());
WorkflowResponseHandling.AddResponsePredecessor(SendNotificationToWebhookCode(),
WorkflowEventHandling.RunWorkflowOnSendRequisitionWkshBatchForApprovalCode());
WorkflowResponseHandling.AddResponsePredecessor(SendNotificationToWebhookCode(),
WorkflowEventHandling.RunWorkflowOnSendItemForApprovalCode());
WorkflowResponseHandling.AddResponsePredecessor(SendNotificationToWebhookCode(),
WorkflowEventHandling.RunWorkflowOnSendPurchaseDocForApprovalCode());
WorkflowResponseHandling.AddResponsePredecessor(SendNotificationToWebhookCode(),
WorkflowEventHandling.RunWorkflowOnSendSalesDocForApprovalCode());
WorkflowResponseHandling.AddResponsePredecessor(SendNotificationToWebhookCode(),
WorkflowEventHandling.RunWorkflowOnSendVendorForApprovalCode());
end;
end;
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Workflow Response Handling", 'OnAddWorkflowResponsesToLibrary', '', false, false)]
local procedure AddWorkflowWebhookResponsesToLibrary()
var
WorkflowResponseHandling: Codeunit "Workflow Response Handling";
begin
WorkflowResponseHandling.AddResponseToLibrary(SendNotificationToWebhookCode(), 0, SendNotificationToWebhookTxt, 'GROUP 8');
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Workflow Response Handling", 'OnExecuteWorkflowResponse', '', false, false)]
local procedure ExecuteWorkflowWebhookResponses(var ResponseExecuted: Boolean; Variant: Variant; xVariant: Variant; ResponseWorkflowStepInstance: Record "Workflow Step Instance")
var
WorkflowResponse: Record "Workflow Response";
begin
if WorkflowResponse.Get(ResponseWorkflowStepInstance."Function Name") then
case WorkflowResponse."Function Name" of
SendNotificationToWebhookCode():
begin
SendNotificationToWebhook(Variant, ResponseWorkflowStepInstance);
ResponseExecuted := true;
end;
end;
end;
local procedure SendNotificationToWebhook(var Variant: Variant; var WorkflowStepInstance: Record "Workflow Step Instance")
var
WorkflowWebhookManagement: Codeunit "Workflow Webhook Management";
RecRef: RecordRef;
begin
RecRef.GetTable(Variant);
WorkflowWebhookManagement.GenerateRequest(RecRef, WorkflowStepInstance);
end;
}