diff --git a/src/Apps/W1/EDocument/App/src/Extensions/EDocIssuedFinChargeMemo.PageExt.al b/src/Apps/W1/EDocument/App/src/Extensions/EDocIssuedFinChargeMemo.PageExt.al index b2c48f532b..a5e7a1ee45 100644 --- a/src/Apps/W1/EDocument/App/src/Extensions/EDocIssuedFinChargeMemo.PageExt.al +++ b/src/Apps/W1/EDocument/App/src/Extensions/EDocIssuedFinChargeMemo.PageExt.al @@ -41,7 +41,9 @@ pageextension 6149 "E-Doc. Issued Fin. Charge Memo" extends "Issued Finance Char EDocumentProcessing: Codeunit "E-Document Processing"; begin if EDocumentProcessing.CreateEDocumentFromPostedDocumentPage(Rec, Enum::"E-Document Type"::"Issued Finance Charge Memo") then - Message(EDocumentCreatedMsg); + Message(EDocumentCreatedMsg) + else + Message(EDocumentNotCreatedMsg); end; } } @@ -51,6 +53,7 @@ pageextension 6149 "E-Doc. Issued Fin. Charge Memo" extends "Issued Finance Char var EDocumentExists: Boolean; EDocumentCreatedMsg: Label 'The e-document has been created.'; + EDocumentNotCreatedMsg: Label 'The e-document could not be created.'; trigger OnAfterGetRecord() var diff --git a/src/Apps/W1/EDocument/App/src/Extensions/EDocIssuedReminder.PageExt.al b/src/Apps/W1/EDocument/App/src/Extensions/EDocIssuedReminder.PageExt.al index 888c08f32e..3fa9139451 100644 --- a/src/Apps/W1/EDocument/App/src/Extensions/EDocIssuedReminder.PageExt.al +++ b/src/Apps/W1/EDocument/App/src/Extensions/EDocIssuedReminder.PageExt.al @@ -41,7 +41,9 @@ pageextension 6148 "E-Doc. Issued Reminder" extends "Issued Reminder" EDocumentProcessing: Codeunit "E-Document Processing"; begin if EDocumentProcessing.CreateEDocumentFromPostedDocumentPage(Rec, Enum::"E-Document Type"::"Issued Reminder") then - Message(EDocumentCreatedMsg); + Message(EDocumentCreatedMsg) + else + Message(EDocumentNotCreatedMsg); end; } } @@ -51,6 +53,7 @@ pageextension 6148 "E-Doc. Issued Reminder" extends "Issued Reminder" var EDocumentExists: Boolean; EDocumentCreatedMsg: Label 'The e-document has been created.'; + EDocumentNotCreatedMsg: Label 'The e-document could not be created.'; trigger OnAfterGetRecord() var diff --git a/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedSalesCrMemo.PageExt.al b/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedSalesCrMemo.PageExt.al index c1029e73e5..e5c800ba0f 100644 --- a/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedSalesCrMemo.PageExt.al +++ b/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedSalesCrMemo.PageExt.al @@ -42,7 +42,9 @@ pageextension 6145 "E-Doc. Posted Sales Cr. Memo" extends "Posted Sales Credit M EDocumentProcessing: Codeunit "E-Document Processing"; begin if EDocumentProcessing.CreateEDocumentFromPostedDocumentPage(Rec, Enum::"E-Document Type"::"Sales Credit Memo") then - Message(EDocumentCreatedMsg); + Message(EDocumentCreatedMsg) + else + Message(EDocumentNotCreatedMsg); end; } } @@ -52,6 +54,7 @@ pageextension 6145 "E-Doc. Posted Sales Cr. Memo" extends "Posted Sales Credit M var EDocumentExists: Boolean; EDocumentCreatedMsg: Label 'The e-document has been created.'; + EDocumentNotCreatedMsg: Label 'The e-document could not be created.'; trigger OnAfterGetRecord() var diff --git a/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedSalesInv.PageExt.al b/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedSalesInv.PageExt.al index dd1c81311b..7d99fe69d8 100644 --- a/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedSalesInv.PageExt.al +++ b/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedSalesInv.PageExt.al @@ -41,7 +41,9 @@ pageextension 6144 "E-Doc. Posted Sales Inv." extends "Posted Sales Invoice" EDocumentProcessing: Codeunit "E-Document Processing"; begin if EDocumentProcessing.CreateEDocumentFromPostedDocumentPage(Rec, Enum::"E-Document Type"::"Sales Invoice") then - Message(EDocumentCreatedMsg); + Message(EDocumentCreatedMsg) + else + Message(EDocumentNotCreatedMsg); end; } } @@ -51,6 +53,7 @@ pageextension 6144 "E-Doc. Posted Sales Inv." extends "Posted Sales Invoice" var EDocumentExists: Boolean; EDocumentCreatedMsg: Label 'The e-document has been created.'; + EDocumentNotCreatedMsg: Label 'The e-document could not be created.'; trigger OnAfterGetRecord() var diff --git a/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedSalesShipment.PageExt.al b/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedSalesShipment.PageExt.al index cda4e5f0c1..c6a98241ef 100644 --- a/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedSalesShipment.PageExt.al +++ b/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedSalesShipment.PageExt.al @@ -41,7 +41,9 @@ pageextension 6103 "E-Doc. Posted Sales Shipment" extends "Posted Sales Shipment EDocumentProcessing: Codeunit "E-Document Processing"; begin if EDocumentProcessing.CreateEDocumentFromPostedDocumentPage(Rec, Enum::"E-Document Type"::"Sales Shipment") then - Message(EDocumentCreatedMsg); + Message(EDocumentCreatedMsg) + else + Message(EDocumentNotCreatedMsg); end; } } @@ -51,6 +53,7 @@ pageextension 6103 "E-Doc. Posted Sales Shipment" extends "Posted Sales Shipment var EDocumentExists: Boolean; EDocumentCreatedMsg: Label 'The e-document has been created.'; + EDocumentNotCreatedMsg: Label 'The e-document could not be created.'; trigger OnAfterGetRecord() var diff --git a/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedServiceCrMemo.PageExt.al b/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedServiceCrMemo.PageExt.al index 256a3c44da..889fd39c60 100644 --- a/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedServiceCrMemo.PageExt.al +++ b/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedServiceCrMemo.PageExt.al @@ -41,7 +41,9 @@ pageextension 6143 "E-Doc. Posted Service Cr. Memo" extends "Posted Service Cred EDocumentProcessing: Codeunit "E-Document Processing"; begin if EDocumentProcessing.CreateEDocumentFromPostedDocumentPage(Rec, Enum::"E-Document Type"::"Service Credit Memo") then - Message(EDocumentCreatedMsg); + Message(EDocumentCreatedMsg) + else + Message(EDocumentNotCreatedMsg); end; } } @@ -51,6 +53,7 @@ pageextension 6143 "E-Doc. Posted Service Cr. Memo" extends "Posted Service Cred var EDocumentExists: Boolean; EDocumentCreatedMsg: Label 'The e-document has been created.'; + EDocumentNotCreatedMsg: Label 'The e-document could not be created.'; trigger OnAfterGetRecord() var diff --git a/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedServiceInv.PageExt.al b/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedServiceInv.PageExt.al index 292f7dcfef..0396a0ad2f 100644 --- a/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedServiceInv.PageExt.al +++ b/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedServiceInv.PageExt.al @@ -41,7 +41,9 @@ pageextension 6142 "E-Doc. Posted Service Inv." extends "Posted Service Invoice" EDocumentProcessing: Codeunit "E-Document Processing"; begin if EDocumentProcessing.CreateEDocumentFromPostedDocumentPage(Rec, Enum::"E-Document Type"::"Service Invoice") then - Message(EDocumentCreatedMsg); + Message(EDocumentCreatedMsg) + else + Message(EDocumentNotCreatedMsg); end; } } @@ -51,6 +53,7 @@ pageextension 6142 "E-Doc. Posted Service Inv." extends "Posted Service Invoice" var EDocumentExists: Boolean; EDocumentCreatedMsg: Label 'The e-document has been created.'; + EDocumentNotCreatedMsg: Label 'The e-document could not be created.'; trigger OnAfterGetRecord() var diff --git a/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedTransferShpmnt.PageExt.al b/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedTransferShpmnt.PageExt.al index 3576caf149..b7bb32c6d4 100644 --- a/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedTransferShpmnt.PageExt.al +++ b/src/Apps/W1/EDocument/App/src/Extensions/EDocPostedTransferShpmnt.PageExt.al @@ -44,7 +44,9 @@ pageextension 6106 "E-Doc. Posted Transfer Shpmnt." extends "Posted Transfer Shi EDocumentProcessing: Codeunit "E-Document Processing"; begin if EDocumentProcessing.CreateEDocumentFromPostedDocumentPage(Rec, Enum::"E-Document Type"::"Transfer Shipment") then - Message(EDocumentCreatedMsg); + Message(EDocumentCreatedMsg) + else + Message(EDocumentNotCreatedMsg); end; } } @@ -54,6 +56,7 @@ pageextension 6106 "E-Doc. Posted Transfer Shpmnt." extends "Posted Transfer Shi var EDocumentExists: Boolean; EDocumentCreatedMsg: Label 'The e-document has been created.'; + EDocumentNotCreatedMsg: Label 'The e-document could not be created.'; trigger OnAfterGetRecord() var diff --git a/src/Apps/W1/EDocument/App/src/Processing/EDocExport.Codeunit.al b/src/Apps/W1/EDocument/App/src/Processing/EDocExport.Codeunit.al index f1230cc8bc..6c07448d07 100644 --- a/src/Apps/W1/EDocument/App/src/Processing/EDocExport.Codeunit.al +++ b/src/Apps/W1/EDocument/App/src/Processing/EDocExport.Codeunit.al @@ -57,7 +57,14 @@ codeunit 6102 "E-Doc. Export" OnAfterEDocumentCheck(EDocSourceRecRef, EDocumentProcessingPhase); end; - internal procedure CreateEDocument(DocumentHeader: RecordRef; DocumentSendingProfile: Record "Document Sending Profile"; EDocumentType: Enum "E-Document Type") + /// + /// Creates a new E-Document of specified type for the provided document header and attempts to export it. + /// + /// + /// true if the E-Document has been created; + /// otherwise false. + /// + internal procedure CreateEDocument(DocumentHeader: RecordRef; DocumentSendingProfile: Record "Document Sending Profile"; EDocumentType: Enum "E-Document Type"): Boolean var WorkFlow: Record Workflow; EDocument: Record "E-Document"; @@ -71,16 +78,16 @@ codeunit 6102 "E-Doc. Export" WorkFlow.TestField(Enabled); if DocumentSendingProfile."Electronic Document" <> DocumentSendingProfile."Electronic Document"::"Extended E-Document Service Flow" then - exit; + exit(false); if not EDocWorkFlowProcessing.GetServicesFromEntryPointResponseInWorkflow(WorkFlow, EDocumentService) then - exit; + exit(false); EDocument."Workflow Code" := WorkFlow.Code; EDocument."Document Sending Profile" := DocumentSendingProfile.Code; if not CreateEDocument(EDocument, DocumentHeader, EDocumentService, EDocumentType) then - exit; + exit(false); // For each service supporting the document type, export it before creating E-Document Created Flow EDocumentServiceStatus.SetRange("E-Document Entry No", EDocument."Entry No"); @@ -95,6 +102,8 @@ codeunit 6102 "E-Doc. Export" until EDocumentServiceStatus.Next() = 0; EDocumentBackgroundJobs.StartEDocumentCreatedFlow(EDocument); + + exit(true); end; /// diff --git a/src/Apps/W1/EDocument/App/src/Processing/EDocumentProcessing.Codeunit.al b/src/Apps/W1/EDocument/App/src/Processing/EDocumentProcessing.Codeunit.al index bfeec0f3cf..7ca53f7d43 100644 --- a/src/Apps/W1/EDocument/App/src/Processing/EDocumentProcessing.Codeunit.al +++ b/src/Apps/W1/EDocument/App/src/Processing/EDocumentProcessing.Codeunit.al @@ -139,6 +139,13 @@ codeunit 6108 "E-Document Processing" EDocExport.CheckEDocument(SourceDocumentHeader, EDocumentProcPhase); end; + /// + /// Creates a new E-Document for specified posted document if possible. + /// + /// + /// true if the E-Document has been created; + /// otherwise false. + /// procedure CreateEDocumentFromPostedDocumentPage(PostedRecord: Variant; DocumentType: Enum "E-Document Type"): Boolean var DocumentSendingProfile: Record "Document Sending Profile"; @@ -155,8 +162,8 @@ codeunit 6108 "E-Document Processing" Error(ElectronicDocumentErr, DocumentSendingProfile.Code); RunEDocumentCheck(PostedRecord, Enum::"E-Document Processing Phase"::Post); - EDocumentSubscribers.CreateEDocumentFromPostedDocument(PostedRecord, DocumentSendingProfile, DocumentType); - exit(true); + + exit(EDocumentSubscribers.CreateEDocumentFromPostedDocument(PostedRecord, DocumentSendingProfile, DocumentType)); end; procedure ProcessEDocumentAsEmail(DocumentSendingProfile: Record "Document Sending Profile"; ReportUsage: Enum "Report Selection Usage"; RecordVariant: Variant; diff --git a/src/Apps/W1/EDocument/App/src/Processing/EDocumentSubscribers.Codeunit.al b/src/Apps/W1/EDocument/App/src/Processing/EDocumentSubscribers.Codeunit.al index 5bbcfa482a..7f7abbc220 100644 --- a/src/Apps/W1/EDocument/App/src/Processing/EDocumentSubscribers.Codeunit.al +++ b/src/Apps/W1/EDocument/App/src/Processing/EDocumentSubscribers.Codeunit.al @@ -639,12 +639,26 @@ codeunit 6103 "E-Document Subscribers" EDocLogHelper.InsertLog(EDocument, EDocService, Enum::"E-Document Service Status"::"Imported Document Created"); end; - procedure CreateEDocumentFromPostedDocument(PostedRecord: Variant; DocumentSendingProfile: Record "Document Sending Profile") + /// + /// Creates a new E-Document for the provided posted document if possible. + /// + /// + /// true if the E-Document has been created; + /// otherwise false. + /// + procedure CreateEDocumentFromPostedDocument(PostedRecord: Variant; DocumentSendingProfile: Record "Document Sending Profile"): Boolean begin - CreateEDocumentFromPostedDocument(PostedRecord, DocumentSendingProfile, EDocumentProcessing.GetTypeFromSourceDocument(PostedRecord)); + exit(CreateEDocumentFromPostedDocument(PostedRecord, DocumentSendingProfile, EDocumentProcessing.GetTypeFromSourceDocument(PostedRecord))); end; - procedure CreateEDocumentFromPostedDocument(PostedRecord: Variant; DocumentSendingProfile: Record "Document Sending Profile"; DocumentType: Enum "E-Document Type") + /// + /// Creates a new E-Document of specified type for the provided posted document if possible. + /// + /// + /// true if the E-Document has been created; + /// otherwise false. + /// + procedure CreateEDocumentFromPostedDocument(PostedRecord: Variant; DocumentSendingProfile: Record "Document Sending Profile"; DocumentType: Enum "E-Document Type"): Boolean var TypeHelper: Codeunit "Type Helper"; RecordRef: RecordRef; @@ -658,9 +672,9 @@ codeunit 6103 "E-Document Subscribers" PostedSourceDocumentHeader.GetTable(PostedRecord); if (DocumentSendingProfile."Electronic Document" <> DocumentSendingProfile."Electronic Document"::"Extended E-Document Service Flow") then - exit; + exit(false); - EDocExport.CreateEDocument(PostedSourceDocumentHeader, DocumentSendingProfile, DocumentType); + exit(EDocExport.CreateEDocument(PostedSourceDocumentHeader, DocumentSendingProfile, DocumentType)); end; local procedure PointEDocumentToPostedDocument(OpenRecord: Variant; PostedRecord: Variant; PostedDocumentNo: Code[20]; DocumentType: Enum "E-Document Type")