How to Create API with Header and line data & Auto-Posting APIs in Business Central

 1. Creating a Custom API Page

  • Define PageType = API

  • Required API properties (APIPublisher, APIGroup, APIVersion, EntityName, etc.)

  • Create Purchase Order header API

  • Add subpage for lines













API: https://api.businesscentral.dynamics.com/v2.0/<EnvironmentName>/api/<APIPublisher>/<APIgroup>/v2.0/companies(<CompanyId>)/purchaseorderapis?$filter=no eq 'PR-ORD-0017869'&$expand=purchaseorderlineapis

Method: GET

Response: Get header and line response.
























3. Creating an API to Post Purchase Orders

  • Business scenario: Convert PO → Posted Purchase Invoice

  • Create global function with [serviceEnabled].

API:
https://api.businesscentral.dynamics.com/v2.0/<EnvironmentName>/api/<APIPublisher>/<APIgroup>/v2.0/companies(<CompanyId>)/purchaseorderapis(<systemidfrompurchaseheader>)/Microsoft.NAV.Createpurchaseinvoice

Method: post

    [ServiceEnabled]
    [Scope('Cloud')]
    procedure Createpurchaseinvoice(): Text
    var
        PostedInvNo: Code[20];
    begin
        PostedInvNo := CreateInvoiceFromPO(Rec."No.");
        exit('Posted Doc No. ' + PostedInvNo);
    end;

procedure CreateInvoiceFromPO(PONo: Code[20]): Code[20]
    var
        PurchHeader: Record "Purchase Header";
        PurchPost: Codeunit "Purch.-Post";
        PostedInv: Record "Purch. Inv. Header";
    begin
        if not PurchHeader.Get(PurchHeader."Document Type"::Order, PONo) then
            Error('Purchase Order %1 not found.', PONo);

        UpdateQtyToInvoice(PurchHeader);
        PurchHeader.Invoice := true;
        PurchHeader.Modify();

        PurchPost.Run(PurchHeader);

        PostedInv.Reset();
        PostedInv.SetRange("Order No.", PONo);
        if PostedInv.FindLast() then
            exit(PostedInv."No.")
        else
            Error('No posted invoice created for %1', PONo);
    end;




This way you can easily post order.

Thank you
Dharmendra Chavda

Comments

Popular posts from this blog

Run a Dynamics 365 Plugin from JavaScript on Button Click

Power Apps Portal: How to Display Tooltips on a Form

Document Attachment with Item Journal Table in Business Central