Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
   [EventSubscriber(ObjectType::Codeunit, Codeunit::"OSB_PEPPOL_Management", 'GetPaymentMeansInfoOnAfterEvent', '', true, true)]
    local procedure "OSB_PEPPOL_Management_GetPaymentMeansInfoOnAfterEvent"
(
    SalesHeader: Record "Sales Header";
    var PaymentCounter: Integer;
    var PaymentCount: Integer;
    var PaymentMeansCode: Text;
    var PaymentMeansListID: text;
    var PaymentChannelCode: text;
    var PaymentID: Text;
    var PrimaryAccountNumberID: Text;
    var NetworkID: Text;
    ProcessedDocType: Enum OSB_Peppol_ProcessedDocType
)
    begin
        PaymentID = GetCustomPaymentId();

    end;


    [EventSubscriber(ObjectType::Codeunit, Codeunit::"OSB_PEPPOL_Management", 'GetPaymentMeansPayeeFinancialAcc_OnAfterEvent', '', true, true)]
    local procedure "OSB_PEPPOL_Management_GetPaymentMeansPayeeFinancialAcc_OnAfterEvent"
    (
        SalesHeader: Record "Sales Header";
        var PaymentCounter: Integer;
        var PaymentCount: integer;
        var PayeeFinancialAccountID: Text;
        var PaymentMeansSchemeID: Text;
        var FinancialInstitutionBranchID: Text;
        var FinancialInstitutionID: Text;
        var FinancialInstitutionSchemeID: Text;
        var FinancialInstitutionName: Text
    )
    begin
        PayeeFinancialAccountID := GetCustomPayeeFinancialAccount();
    end;

Role Tailored Client

Implementing the Role Tailored Client is version specific as Microsoft has developed the sending routines in the NAV versions. Please follow the guide regarding your NAV version.

NAV 2016

NAV 2016 has two ways of sending documents. Either using Print button or “Send…” button.

Send button

For using “Send” or “Post and Send..” button you need to implement some code in standard NAV.

Please add the following code in Table 60.

Add event procedure:

Code Block
[Integration(TRUE,TRUE)]
LOCAL PROCEDURE OSBEHF_OnBeforeSend@44(ReportUsage@1006 : Integer;RecordVariant@1005 : Variant;DocNo@1004 : Code[20];ToCust@1003 : Code[20];DocName@1002 : Text[150];CustomerFieldNo@1001 : Integer;DocumentNoFieldNo@1000 : Integer;VAR IsHandled@1007 : Boolean);
BEGIN
END;

Modify Send procedure:

Code Block
PROCEDURE Send@11(ReportUsage@1005 : Integer;RecordVariant@1004 : Variant;DocNo@1003 : Code[20];ToCust@1002 : Code[20];DocName@1001 : Text[150];CustomerFieldNo@1000 : Integer;DocumentNoFieldNo@1006 : Integer);
VAR
  IsHandled@1000000000 : Boolean;
BEGIN
  //OSBEHF+
  IsHandled := FALSE;
  OSBEHF_OnBeforeSend(ReportUsage,RecordVariant,DocNo,ToCust,DocName,CustomerFieldNo,DocumentNoFieldNo,IsHandled);
  IF IsHandled THEN
    EXIT;
  //OSBEHF-

  SendToVAN(RecordVariant);
  SendToPrinter(ReportUsage,RecordVariant,ToCust);
  TrySendToEMailGroupedMultipleSelection(ReportUsage,RecordVariant,DocumentNoFieldNo,DocName,CustomerFieldNo);
  SendToDisk(ReportUsage,RecordVariant,DocNo,DocName,ToCust);
END;

Print button

Implementing the print routine or other business logic:

  1. Add codeunit 15027002 OSB_PEPPOLExportBis30 as a variable.

  2. Call the function with the appropriate document
    boolean := OSB_PEPPOLExportBis30.DocumentSendingPrint(SalesInvHeader);
    IF the customer is qualified for PEPPOL the procedure sends the document and returns true.
    If the customer is not qualified for PEPPOL it returns false, so that another channel can be used.

OSB_PEPPOLExportBis30.DocumentSendingPrint handles table id’s 112,114,5992,5994