Skip to content

[Event Request] Codeunit 561 "IC Data Exchange API" - Add event before inserting Buffer IC Inbox Sales Line in PostICSalesLineToICPartnerInbox #30344

Description

@cponcet-pdw

Why do you need this change?

this request should target the existing outgoing flow in codeunit 561 "IC Data Exchange API", procedure PostICSalesLineToICPartnerInbox.

The requested event is not intended to target a JsonObject serialization method directly, since this procedure currently does not expose such a sales-line JSON serialization point.

The exact target location is the following procedure:

procedure PostICSalesLineToICPartnerInbox(
ICPartner: Record "IC Partner";
var TempICPartnerICInboxSalesLine: Record "IC Inbox Sales Line" temporary)

Current implementation:

var
BufferICInboxSalesLine: Record "Buffer IC Inbox Sales Line";
begin
if not TempICPartnerICInboxSalesLine.IsEmpty() then begin
TempICPartnerICInboxSalesLine.FindSet();
repeat
BufferICInboxSalesLine.TransferFields(TempICPartnerICInboxSalesLine);
BufferICInboxSalesLine.Insert();
until TempICPartnerICInboxSalesLine.Next() = 0;
end;
end;

We would like to request an integration event after TransferFields and before BufferICInboxSalesLine.Insert().

Describe the request

Proposed event

[IntegrationEvent(false, false)]
local procedure OnPostICSalesLineToICPartnerInboxOnBeforeBufferICInboxSalesLineInsert(
var BufferICInboxSalesLine: Record "Buffer IC Inbox Sales Line";
TempICPartnerICInboxSalesLine: Record "IC Inbox Sales Line" temporary;
ICPartner: Record "IC Partner")
begin
end;

Proposed implementation location

procedure PostICSalesLineToICPartnerInbox(
ICPartner: Record "IC Partner";
var TempICPartnerICInboxSalesLine: Record "IC Inbox Sales Line" temporary)
var
BufferICInboxSalesLine: Record "Buffer IC Inbox Sales Line";
begin
if not TempICPartnerICInboxSalesLine.IsEmpty() then begin
TempICPartnerICInboxSalesLine.FindSet();
repeat
BufferICInboxSalesLine.TransferFields(TempICPartnerICInboxSalesLine);

        OnPostICSalesLineToICPartnerInboxOnBeforeBufferICInboxSalesLineInsert(
            BufferICInboxSalesLine,
            TempICPartnerICInboxSalesLine,
            ICPartner);

        BufferICInboxSalesLine.Insert();
    until TempICPartnerICInboxSalesLine.Next() = 0;
end;

end;

We need to extend the standard outgoing Intercompany API flow by transporting additional line-level information together with each IC sales line.

Typical examples include:

  • Item tracking information:
    • Lot No.
    • Serial No.
    • Package No.
    • Tracking quantity
    • Expiration date
  • Linked source document references
  • Custom line-level metadata required by partner companies

In our scenario, item tracking must be propagated from the source company to the target company through the standard Intercompany API process.

The incoming flow already provides extensibility events such as:

  • OnPopulateICInboxSalesLineFromJsonOnBeforeInsert

This allows custom values to be read from the incoming payload and populated into the IC Inbox Sales Line.

However, there is currently no equivalent event in the outgoing flow before the Buffer IC Inbox Sales Line is inserted.

Without this event, extensions cannot populate custom fields on the outgoing Buffer IC Inbox Sales Line in a supported way before the data is exposed through the API payload.

Metadata

Metadata

Assignees

No one assigned

    Labels

    missing-infoThe issue misses information that prevents it from completion.

    Type

    Fields

    No fields configured for Task.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions