Also called the O2C cycle, Order-to-cash is how your business receives, processes, manages, and completes orders. It begins from the time an order takes place and includes each step of the delivery and payment process. In this case, MS Dynamics 365 Supply Chain Management (D365 SCM) represents our backend.
This particular Accelerator contains prebuilt Schemas, Rulesets, Business Processes, and other resources used for development, deployment/execution, and testing. This includes mapping tools specific to several business flows as part of this Accelerator. Finally, there are also resources necessary to display data on several Cockpit monitoring pages.
Supported Integration Flows
Features
Pre-built Integration Flows: Integration flows in CIC are provided to receive X12 850 (Purchase Order) from the Trading Partners and create the corresponding Sales Order in D365SCM. Once the Order is confirmed and fulfilled using D365SCM Advanced Warehouse, the integration flow automatically retrieves details from D365 SCM and creates the respective outbound documents such as X12 855 (PO Acknowledgement) and X12 856 (ASN).
Once the Invoice is created for the Order in the D365 SCM, the Accelerator retrieves the Invoice from the D365 SCM which generates the X12 810 (Invoice) document. All the flows will also have the respective X12 997 (Func Ack) flow and outbound EDI validations included.
EDI 940 (Warehouse Shipping Order): This document type is commonly sent by Sellers and Suppliers to third-party logistics providers. It acts as a formal request for the shipment of goods from a remote warehouse to the buyer’s location. CIC receives X12 850 (Sales Order) documents from the Trading Partner and creates the corresponding Sales order in D365SCM. The same D365 SCM Sales order XML record is sent to CIC where X12 940 is generated and sent to the warehouse trading partner.
EDI 846 (Inventory advice) outbound: This document type provides updates regarding inventory levels, stock status, and availability. This is a bi-directional transaction set and it can be sent by either the Trading Partner or the Customer. In the current phase of the accelerator, CIC receives inventory XML from customer D365 SCM ERP and creates the corresponding Inventory EDI X12 for the Trading Partner.
ASN (Shipment) 3PL: In some cases, D365 SCM customers do not have an advanced warehouse module and a third-party trading partner is responsible for sending warehouse shipping advice (EDI X12 945 v4010 version) to the seller (ERP owner). The same X12 945 data can be used to generate EDI X12 856 for the buyer or trading partner. In such scenarios, ASN data is not staged in D365 SCM. Instead, Warehouse Shipping Advice (945) data is used to create Advanced Ship Notice (856) data.
Note - The existing accelerator does not process the Warehouse shipping advice data (EDI 945) in D365 SCM. It just uses this data to convert it into ASN EDI 3PL. The above inbound configuration is a prerequisite for creating ASN using 3PL trading partner 945 information.
Integration Design Specification: This is a default mapping template for a Transaction between source and target ecosystem entities. The Integration Design Specification describes the transaction type, Data Flow direction, source data, target data, and relevant application version(s). It also includes applicable B2B/API elements and mapping rules. The template helps in documenting any changes to the template integration based on your specific requirements.
Multiple Trading Partner Onboarding: The design lets you onboard several Trading Partners at once using the Wizard.
Email notification for unknown Trading Partner: If the Inbound/Outbound payloads are received where no matching configurations are found, then an email notification will be generated.
EDI message validations:
- Duplicate Inbound messages The Accelerator has the logic to handle any duplicate EDI data that is retrieved from the Trading partner. If need be, this can be customized per partner or per doctype.
- Inbound/Outbound EDI Data validation Accelerator is enabled to catch any invalid EDI syntaxes in both Inbound and Outbound flow. The execution will be stopped if there are any syntax errors. The settings can be changed so that execution does not stop.
Error Handling and Ticket Creation: Accelerator ensures all the processing failures are logged as tickets and marked as Issues in the Cockpit.
Out-of-the-box Cockpit visibility: Accelerator is already enabled with the resources necessary to display data in several Cockpit monitoring pages.
- The Message Details view provides the life cycle of an Order until the Invoice has been generated. The Accelerator also uses charts to monitor various transactions.
- Dashboard > Chart transactions: Below are the screenshots of the charts from the dashboard for 850, 855, 856, 810, 846, and 940. Details about the count of messages translated are displayed.
Prerequisites
The first two prerequisites describe multiple steps that must take place in the D356 SCM ERP instances. Note that both steps provide separate procedure articles.
This is followed by steps that take place in the CIC Studio.
- Dynamics ERP instances should be configured with certain customizations to MSD SCM entities and fields. The customization package should be deployed in the customer's Dynamics instance as described in steps to install D365 SCM Package in a Customer Dynamics instance. Complete this before proceeding to the next step.
- Create data projects in D365 SCM. These include:
- Sales Order
- Sales Order Confirmation
- ASN
- Invoice
- Warehouse Shipping Order
- Inventory Inquiry/Advice
- Create the required Connector Project in the CIC Studio Workspace before running the Cloud Connector wizard setup. Connector name should be: com.cleo.cic.connector.d365scm and should contain these entities:
- Salesorderheadersv2
- Salesorderlines
- Cicsalesorderconfirms
- Datamanagementdefinitiongroupdetails
- Cicsalesorders
- Cicoutboundshipmentheaderentity
- Cicsalesinvoices
- Datamanagementdefinitiongroups
- Salesorderheaders
- Shippingcarriers
Notes:
- Item Number - Any Product ID field (PO107/PO109/PO111/PO113/PO115/PO117/PO119/PO121/PO123/PO125) preceded by the Qualifier “VN / MG / VC / UP” will be considered as item number which is already present in D365 SCM and mapped to the field - SALESORDERHEADERV2ENTITY/SALESORDERLINEV2ENTITY/ITEMNUMBER.
- For Ship Notice (X12 856 - generated using Warehouse Shipping advice 945 sent by 3PL trading partner), only SOPI hierarchical structure is supported currently.
- For 3PL ASNs generated from 3PL Warehouse 945 EDI documents, it is assumed that the ASN is sent on behalf of the Seller (D365SCM ERP owner) and the same information is reflected on ISA, GS enveloper level sender details in X12 856.
- For Warehouse shipping orders, data in D365SCM is taken from sales order entity data itself. There is no dedicated entity for warehouse shipping orders in D365SCM.
- Customer for inventory is identified based on warehouse id. Each warehouse id is expected to be assigned to only one customer id. The partner reference table should not contain multiple records for the same warehouse id.
- The partner table should be populated with appropriate warehouse and customer id records before running inventory synchronization.
- This customer reference table process inserts only the customer account ids that are not present in the table already. If the customer account id for a given user is already present in the REFTABLES"."D365_SCM_Partners", then the existing record is treated as a duplicate and is skipped during the update.
- Inventory data from D365 SCM supports a full-push mechanism instead of incremental pushes. This means the entire item data from the system is synced to EDI TP files instead of just the modified data.
- In order to differentiate between buying trading partner entities and warehouse trading partner entities, trading partner projects should be uniquely configured for buying trading partners and warehouse trading partners. Refer link for details
What is Not Supported
- X12 Accelerator currently supports X12 EDI Version 4010 only.
- For Ship Notice (X12 856), only the SOI hierarchical structure is supported currently.
- For Ship Notice (X12 856 - generated using D365SCM Advanced Warehouse module), only SOI hierarchical structure is supported currently.
- ASN items should be enabled with advanced warehouse module configuration in Dynamics 365 SCM for non-3PL transaction sets.
- For Ship Notice (X12 856) generated using EDI 945 3PL document in Dynamics 365 SCM, only SOPI hierarchical structure is supported currently.
- EDI document type Warehouse Shipping advice translation and processing is not in scope for existing accelerator release.
- ASN items should be enabled with advanced warehouse module configuration in D365 SCM.
- The Accelerator supports integration only for the documents that are processed in CIC.
You cannot use the Accelerator to integrate non-CIC documents. For example, you cannot create an invoice, ASN, or confirmation record for an Order that was not processed by CIC. - Inventory data from D365 SCM supports full-push mechanism instead of incremental pushes. It means the entire item data from the system is synced to EDI TP files instead of just the modified data.
- Inventory data being pulled from D365 SCM contains entire product stock data from the ERP and doesn’t distinguish between EDI versus non-EDI data.
How to Add a New Flow
If you find any flow that is not already covered as part of this Accelerator, you can extend the project to add the specific flows you require.
Adding an inbound flow
The steps below use an inbound 860 flow as an example.
- Create a package in the com.cleo._customer_.edi project and name it com.cleo._customer_.edi.n860.
- in the package above, create an 860 EDI schema (with required version).
- Create a package com.cleo._customer_.booster.d365scm.salesOrderChangeRequest in the project com.cleo._customer_.booster.d365scm
- Create a Business Process to call the required D365SCM BPS.
- From the repository, check out com.cleo.cic.cockpit.core.n860 and add it to the dependencies in com.cleo._customer_.d365scm._tp_ project.
- Create a package in the com.cleo._customer_.edid365scm project. Name it com.cleo._customer_.edid365scm.inbound.n860.
- Create an Inbound Route BP. Configure it as required.
- Create a package com.cleo._customer_.d365scm._tp_.inbound.n860.v4010 in the com.cleo._customer_.d365scm._tp_ project.
- Create an Inbound Route and configure it accordingly.
- Create the transformation Ruleset per your requirements.
- Deploy all Projects that have changed.
- In D365 SCM, create a new import project, add the relevant entity, and edit the mapping details as required.
- In the reference table D365_SCM_DataManagement, add a new row for the given doctype.
- Run and test the integration.
Adding Outbound flow
The steps below use an inbound 846 flow as an example.
- Create a package in the com.cleo._customer_.edi project, and name it com.cleo._customer_.edi.n846.
- Create an 846 EDI schema (with the required version).
- Create a package named com.cleo._customer_.edi.booster.d365scm.inventory in the com.cleo._customer_.edi.booster.d365scm project.
- Create the necessary resources: Process Schedulers, BP Launcher, DARS, and inventory XML schema.
- From the repository, check out com.cleo.cic.cockpit.core.n846 and add it to the dependencies in the com.cleo._customer_.d365scm._tp_project.
- Create a new package in the com.cleo._customer_.edid365scm project and name it com.cleo._customer_.edid365scm.outbound.n846.
- Create an Outbound Route BP and configure it as required. See the Outbound810RouteBPS that is in the com.cleo._customer_.edid365scm.outbound.n810 package for a good example.
- Create a package named com.cleo._customer_.d365scm._tp_.outbound.n846.v4010 in the com.cleo._customer_.d365scm._tp_ project.
- Create an Outbound Route and configure it accordingly.
- Create a transformation Ruleset as required.
- Create and configure the Enveloper.
- Deploy all projects that have changed.
- Run and test the integration.
Please contact Cleo Support if you need any details on the above project structures and directions.
Project Structure
Detailed documentation is provided on the project structure and object-level details that are in the Accelerator. Please refer to the X12 O2C With Dynamics 365 SCM Accelerator document provided in com.cleo._customer_.edid365scm project, under the docs folder.
Configure Reference Tables
Configure the Cleo-provided Reference Table using the steps below. See Viewing and Editing Reference Tables in CIC Cockpit for more information.
- Run the CreateD365ScmPartnerRefTablesBPS.bps - located in package com.cleo._customer_.booster.d365scm.customer in project com.cleo._customer_.booster.d365scm.
To verify that the setup has completed successfully, refer to the Auditor logs. These logs display the starting step and the completed step information. If there are issues (for example, driver or connection), they are displayed in Auditor logs info; the user must take necessary action, and then run this process again.
Once the process completes successfully, a table named D365_SCM_Partners is visible in the CIC Cockpit. (Integrations tab/Reference tables section) -
Add a new row that includes Trading Partner Name, Trading Partner Id, Warehouse Trading Partner Name, and the corresponding customer account id that was assigned in D365 SCM.
- Trading Partner Name captures the partner name that identifies the partner.
- Trading Partner ID captures the EDI X12 ID assigned to a partner. For example, an 850 X12 TP document would have a sender ID as the trading partner ID (located in ISA06).
- Customer Account ID is the D365 SCM-assigned ID for the customer entity record.
- Warehouse ID is the unique warehouse ID that can be allocated only to one customer account ID
- Warehouse name is the name of the 3PL warehouse trading partner that is related to the buyer/ retailer trading partner entity.
- Run the CreateDataManagementTablesBPS.bps located in the package com.cleo._customer_.booster.d365scm.reference.tables in project com.cleo._customer_.booster.d365scm.
To verify if the setup is complete, refer to the auditor logs. These logs would display the starting step & the completed step information. If there are issues (ex: driver or connection), then they are displayed in auditor logs info; the user must take necessary action, and then run this process again.
Once the process ends successfully, the table named D365_SCM_DataManagement is displayed in the CIC Cockpit (Integrations tab/Reference tables section).
-
Add a new row that includes Definition Group ID, Description, and Direction for each doc type.
The Doctype column represents the message document type for the integration flows, for example, Invoice, ASN, and so on. Add Doctype values as follows: SOConfirmation for 855, Invoice for 810, SalesOrder for 850, Inventory for 846, “Customer’ for customer Entity V3, WarehouseShippingOrder for 940, and ASN for 856.
DefinitionGroupId and Description represent the data project names and descriptions configured for O2C documents (850, 856, 855, 810, 846, Customer, and 940) in D365 SCM. This is documented in X12 O2C With Dynamics 365 SCM Accelerator, which can be found in the docs folder within the com.cleo._customer_.edid365scm project.
Configure Azure Staging Database
To configure the Cleo-provided staging database:
- Deploy the following project: com.cleo._customer_.booster.d365scm.azureStagingData
- Run the following Business Process to create the required table. com.cleo._customer_.booster.d365scm.azureStagingData.CreateAzureStagingDataTableBPS
- To verify the setup is complete, refer to the Auditor logs. The Auditor logs display the starting step and the completed step information. If there are driver or connection issues, they will be displayed in the Auditor logs information. In this case, you need to take corrective action and run this process again.
Configure the Global Variables
- D365ScmVault - This variable contains the vault entry name assigned to the D365SCM connector.
- SleepTimer - This variable contains the sleep time (in milliseconds). This timer is used to retry certain APIs that are still in executing/not-run state for the ExecuteActionGetExecutionSummaryStatus API. This basically means that if an API fails, then this sleep will keep the system idle and then retry the same API.
- legalEntityId - This variable should store the legal entity id/data area id for the organization tied to the sales order transactions. Refer to Microsoft's instructions to create a legal entity.
- D365ScmPurgeDays - This variable contains the number of days after which the internal tables (azure_header_staging_data, azure_line_staging_data) should be purged.
- B2BCloudGV - Configure B2BCloudAdminEmail (receiver) and B2BCloudHostEmail (sender) variables in com.cleo.b2bcloud.core.B2BCloudGV. These are resolved during failures and email is triggered.
- CreateAsnFromWarehouseShipmentAdviceFlag - If set to Yes then, the EDI 945 message received from 3PL trading partner is converted to ASN 856 and sent to the trading partner (buyer). If the value is set to anything other than Yes, the process ends gracefully without any error.
Configuring Trading Partner Projects using the Wizard
Use the accelerator/booster setup wizard to configure your accelerator with the correct projects. See Initial Setup for Accelerators and Boosters for information about how to run the wizard.
Note: The instructions below include deleting files that you might have already configured while setting up other projects. This is to prevent existing files from being overwritten.
Because the projects described in this section address specific doc types and the setup wizard downloads files for other doc types
Checkout the following trading partner projects using the Wizard:
- Warehouse trading partner project
- Buyer trading partner project
Note: These two projects
Configuring the Warehouse Trading Partner Project
The Warehouse Trading Partner project is used for doc types 940 and 945.
In the wizard-input.properties file:
- Set the customer_name field to D365ScmCustomer.
- Set the trading_partner-edi_version field to the name of the Warehouse trading partner. For example, Warehouse AcmeTP-4010 .
- Run the wizard.
The wizard downloads project files from the repository, - Because the Warehouse Trading Partner project focuses on only 940 and 945 doc types, you should delete the following packages from the com.cleo.d365scmcustomer.d365scm.warehousetp project and the Manifest file.
- com.cleo.d365scmcustomer.d365scm.warehousetp.inbound
- com.cleo.d365scmcustomer.d365scm.warehousetp.inbound.n850.v4010
- com.cleo.d365scmcustomer.d365scm.warehousetp.inbound.n810.v4010
- com.cleo.d365scmcustomer.d365scm.warehousetp.inbound.n846.v4010
- com.cleo.d365scmcustomer.d365scm.warehousetp.inbound.n855.v4010
- com.cleo.d365scmcustomer.d365scm.warehousetp.inbound.n856.n3pl.v4010
- com.cleo.d365scmcustomer.d365scm.warehousetp.inbound.n856.v4010
Configuring the Buyer Trading Partner Project
The Buyer Trading Partner project is used for doc types 850, 810, 855, 856, 856_3PL, and 846.
In the wizard-input.properties file:
- Set the customer_name field to D365ScmCustomer.
- Set the trading_partner-edi_version field to the name of the Buyer trading partner. For example, BuyerTP-4010 .
- Run the wizard.
The wizard downloads project files from the repository, - Because the Buyer Trading Partner project focuses on only 850, 810, 855, 856, 856_3PL, and 846 doc types, you should delete the following packages from the com.cleo.d365scmcustomer.d365scm.warehousetp project and the Manifest file.
- com.cleo.d365scmcustomer.d365scm.warehousetp.inbound
- com.cleo.d365scmcustomer.d365scm.warehousetp.inbound.n940.v4010
Comments
0 comments
Please sign in to leave a comment.