Overview of connectors for Infor CSD

Audience and purpose

This document outlines the integration elements included in the Optimizely B2B Commerce connector for Infor Cloudsuite Distribution ERP (CSD). It identifies the default integration points along with details surrounding field mapping and high-level technical processes. While these integration points and jobs cover a majority of the integration requirements with CSD, there may be customer-specific requirements that you need to incorporate into a customer's B2B Commerce implementation.

Optimizely's CSD connector utilizes standard integration mechanisms between CSD and B2B Commerce through the standard ION API endpoints as well as the FetchWhere service. This document focuses on Optimizely customers implementing a version of B2B Commerce and integrating it with CSD with implementation assistance from Optimizely partners.

Connector requirements

Optimizely based this integration on the following requirements.

  • Versions supported. This connector was created based on CSD version 11.21.6. However, because we are using standardized APIs, we expect that future versions should integrate in the same way.

  • Cloud implementation. The Optimizely Windows Integration Service application on a local Windows machine is NOT required for this connector.

  • Payment gateways. The Order Submit job assumes you use CenPOS with CSD.

  • Tax calculators. B2B Commerce can call Avalara or the ION API to execute an order simulation, which returns tax amounts

Complete the following pre-requisites before attempting this integration.

  • A user must be created in CSD for B2B Commerce to access ION API endpoints and FetchWhere.

  • Individual integration jobs must have the complete POST made to the CSD endpoints and will need to be updated with the correct user.

  • If web promotions are used which may impact line level pricing, the global setting for OverridePrice in the Business Rules area of CSD must be set to true. In the alternative, you can set the EDI Price override flag on individual customers to true (arsc.ediprcfl) since the APIs used for order submission are treated similarly to EDI orders.

Business issues/considerations

Many portions of this document refer to tables or objects within CSD. Please refer to CSD documentation for definitions of those tables and potential values.

Technical issues

B2B Commerce relies heavily on Fetchwhere functionality and APIs. Therefore, Optimizely assumes that these endpoints are responsive. Any issues with the speed of the APIs may require an ERP expert to assist, as Optimizely does not have the resources or expertise to troubleshoot standard ERP APIs.

Known limitations

CSD’s Fetchwhere endpoints do not allow joining of table data or manipulation of the returned data. As such, you may need to run jobs in a multi-step configuration to retrieve all the data necessary, if it is not available in one table.

Overview of integration jobs

The integration tasks between CSD and B2B Commerce are separated by the source and destination of the datasets and the mechanism used to implement the integration. The three types of integration tasks are designated as Refresh (pull data in batch via APIs and/or FetchWhere), Submit (push a transaction) or RealTime (direct calls to the APIs).

  • Refresh (Pull): B2B Commerce relies on CSD to provide product, customer, order history, and invoice data. Refresh tasks are typically run at scheduled intervals to synchronize new or updated data with B2B Commerce. Fetchwhere and API calls are used for refreshes.

  • Direct API Calls (Real-Time): Direct calls to the exposed ION API are made for inventory and pricing.

  • Submit (Push): B2B Commerce relies on the ION APIs for functions like order submissions that require data to be submitted to the ERP.

Refresh mapping

Refreshes use the Field Map capability of the B2B Commerce integration architecture. When we construct a connector, we create a series of job definitions that encode these mapping rules for refresh jobs. The mapping documents below call out the standard connector logic. The implementation partner or customer can make adjustments for their particular project needs.

For example, by default, the product length, width and height are not visible in the Admin Console, and therefore are not available in the Field Mapper. The CSD connector can be configured to retrieve this data from the ERP. However, it will not be available in the standard field map tool to populate the B2B database. If the field is configured to be available via the application dictionary, it must be added to the field mapper in order for the data to flow into B2B Commerce.

Deletion strategy

For each entity being refreshed, there must be a strategy on how to handle records that are not in the dataset retrieved from the source tables. The B2B Commerce options are to Ignore, Delete or Set a field such as IsActive or DeactivateOn. These strategies will depend on several factors, including:

  • Are there child collection considerations? (Example: Records that relate to a parent, such as invoice history lines being children to the invoice history header table)

  • Are we retrieving the data in separate queries? (Examples: Customer Bill-Tos and Ship-Tos.)

Each refresh will define the standard deletion strategy being used.

API list

The following is the list of standard APIs used for real-time integration:

  • Pricing & Availability: sxapiOEPricingMultipleV4

  • A/R Summary: sxapiARGetCustomerBalanceV2

  • Tax Calculation/Order Simulation (if 3rd-Party Tax system is not used): sxapiSFOEOrderTotLoadV4

  • Order Submit: sxapiSFOEOrderTotLoadV4