Electronic Data Interchange (EDI)

In this article
Product Information
Release Notes

Process Overview

Import process overview

The Trading partner or VAN will place data into a ‘cloud accessible’ location (i.e. FTP, SFTP or Azure blob) and D365 will periodically import these files into an inbound document staging area for processing.

D365 will use templates to read the data from the inbound documents and create staging data. The staging data is then processed into target documents within D365 and standard application processing rules are applied.

%%{init: {
  "theme": "base",
  "flowchart": {"curve": "linear", "htmlLabels": true, "nodeSpacing": 70, "rankSpacing": 100, "padding": 24, "diagramPadding": 24, "wrappingWidth": 220},
  "themeVariables": {"fontSize": "16px", "lineColor": "#000000", "edgeLabelBackground": "#ffffff"}
}}%%
flowchart LR
  subgraph EXT["EDI Import process"]
    direction LR

    subgraph IMP["Import"]
      direction LR
      Start([Start]) --> X12@{ shape: doc, label: "X12/EDIFACT<br/>document" }
      X12 --> Interpret["Interpret"]
      Interpret --> EDI1@{ shape: doc, label: "EDI document" }
      EDI1 --> Cloud@{ shape: bow-rect, label: "Cloud accessible<br/>storage" }
      Cloud --> EDI2@{ shape: doc, label: "EDI document" }
      EDI2 --> Import["Import"]
    end

    subgraph STG["Staging"]
      direction LR
      PStg["Process to<br/>staging"]
      PendImp["Set import status<br/>to pending"]
      Rep1{"Reprocess?"}
    end

    subgraph TGT["Target"]
      direction LR
      Ok1{"Successful?"}
      ErrImp["Set import<br/>to error"]
      PTgt["Process to<br/>target"]
      Ok2{"Successful?"}
      ErrStg["Set staging status<br/>to error"]
      PendStg["Set staging status<br/>to pending"]
      Rep2{"Reprocess?"}
      End([End])
    end

    Import --> PStg
    PStg --> Ok1
    Ok1 -->|Yes| PTgt
    Ok1 -->|No| ErrImp
    ErrImp --> Rep1
    Rep1 -->|Yes| PendImp
    PendImp --> PStg
    Rep1 -->|No| End
    PTgt --> Ok2
    Ok2 -->|Yes| End
    Ok2 -->|No| ErrStg
    ErrStg --> Rep2
    Rep2 -->|Yes| PendStg
    PendStg --> PTgt
    Rep2 -->|No| End
  end

  classDef auto fill:#D9D9D9,stroke:#000,stroke-width:2px,color:#000;
  classDef other fill:#A6A6A6,stroke:#000,stroke-width:2px,color:#000;

  class Interpret,Import,PStg,PendImp,ErrImp,PTgt,ErrStg,PendStg auto;
  class Start,X12,EDI1,Cloud,EDI2,Ok1,Rep1,Ok2,Rep2,End other;

  style EXT fill:#F3E8FA,stroke:#5C2D91,stroke-width:3px,color:#000
  style IMP fill:#FFFFFF,stroke:#000,stroke-width:2px,color:#000
  style STG fill:#FFFFFF,stroke:#000,stroke-width:2px,color:#000
  style TGT fill:#FFFFFF,stroke:#000,stroke-width:2px,color:#000

  linkStyle default stroke:#000000,stroke-width:2px

Export process overview

An event in D365 will trigger an EDI document to be evaluated. If the document is enabled (based on an associated Trading partner) D365 will create staging data from the event’s information (i.e. invoice posting, picking list posting).

Once the staging data is created an appropriate template is applied to generate an EDI document file and placed into the outbound documents queue.

The outbound documents queue is periodically processed, and the files are placed into their setup destinations for the Trading partner or VAN to retrieve.

%%{init: {
  "theme": "base",
  "flowchart": {"curve": "linear", "htmlLabels": true, "nodeSpacing": 60, "rankSpacing": 90, "padding": 20, "diagramPadding": 20, "wrappingWidth": 200},
  "themeVariables": {"fontSize": "16px", "lineColor": "#000000", "edgeLabelBackground": "#ffffff"}
}}%%
flowchart LR
  subgraph EXT["EDI Export process"]
    direction LR

    subgraph TRG["D365 trigger"]
      direction LR
      Start([Start]) --> Trigger["Target document<br/>trigger"]
      Trigger --> Enabled{"Document enabled<br/>for EDI?"}
      End([End])
    end

    subgraph STG["Staging"]
      direction LR
      PStg["Process to<br/>staging"] --> Map["Map and Process to<br/>outbound area"]
    end

    subgraph EXP["Export"]
      direction LR
      Export["Export"] --> EDI1@{ shape: doc, label: "EDI Document" }
      EDI1 --> Cloud@{ shape: bow-rect, label: "Cloud accessible<br/>storage" }
      Cloud --> EDI2@{ shape: doc, label: "EDI Document" }
      EDI2 --> Interpret["Interpret"]
      Interpret --> X12@{ shape: doc, label: "X12/EDIFACT<br/>document" }
    end

    Enabled -->|Yes| PStg
    Enabled -->|No| End
    Map --> Export
    X12 --> End
  end

  classDef auto fill:#D9D9D9,stroke:#000,stroke-width:2px,color:#000;
  classDef other fill:#A6A6A6,stroke:#000,stroke-width:2px,color:#000;
  class Trigger,PStg,Map,Export,Interpret auto;
  class Start,Enabled,End,EDI1,Cloud,EDI2,X12 other;

  style EXT fill:#F3E8FA,stroke:#5C2D91,stroke-width:3px,color:#000
  style TRG fill:#FFFFFF,stroke:#000,stroke-width:2px,color:#000
  style STG fill:#FFFFFF,stroke:#000,stroke-width:2px,color:#000
  style EXP fill:#FFFFFF,stroke:#000,stroke-width:2px,color:#000

  linkStyle default stroke:#000000,stroke-width:2px