MuleSoft Accelerator for Consumer Goods icon

MuleSoft Accelerator for Consumer Goods

(0 reviews)

Use case 1 - Trade promotion management

Run more intelligent, data-driven trade promotions with pre-built assets that surface relevant product, customer, demand planning, and pricing information from ERP and PIM systems. Easily consolidate this information into Trade Promotion Management platforms like Salesforce Consumer Goods Cloud for informed promotional planning.

Overview

See also

Description

This solution describes the implementation of data synchronisation to support the syncing of products, product hierarchies, accounts and account hierarchies from SAP S/4 HANA to Salesforce Consumer Goods cloud.

The purpose of this solution is to enable the creation and updates of the above-mentioned objects across relevant applications, with one application serving as the primary definition of the products and accounts.

Glossary

TermDefinition
MDMA Master Data Management (MDM) solution provides an accurate, consistent, and complete copy of golden data for use by enterprise applications and business partners. Most solutions include data quality tools and workflow processes for managing conflicting updates.
CIMThe Cloud Information Model (CIM) defines a set of standard data structures that can be used as canonical representations of common entities for integrating systems.
PIMThe system responsible for managing product information for retail and consumer goods.
CGConsumer Goods

Goals

  • Support the bulk creation and real-time creation of products in Salesforce CG Cloud.
  • Support the creation of Universal ID & ID attribution
  • Orchestrate product updates across designated applications
  • Support product hierarchies of a product with attributes - Category, Sub-Category, Brand, Flavor, Packaging. These attributes can be modified based on customer requirements.
  • Create and update Product Hierarchy object in Salesforce CG Cloud
  • Support the bulk creation and real-time creation of accounts in Salesforce CG Cloud.
  • Orchestrate accounts updates across designated applications
  • Support account hierarchies of an account with attributes -ParentId
  • Create and update Account Hierarchy object in Salesforce CG Cloud

Use case considerations

  • Consumer Goods products from SAP S/4 HANA are synchronised with Salesforce CG Cloud.
    • Creation of new products
    • Updating existing products
    • Creation of product hierarchies
    • Updating product hierarchies
    • Deleting product(s)
      • This will be handled by marking products as ‘Inactive’ (productStatus in CIM and State in CG Cloud)
      • Physically deleting the product is out of scope (to comply with TPM best practices)
  • Creation of new accounts
  • Updating existing accounts
  • Creation of account hierarchies
  • Updating account hierarchies
  • Primary identifiers will be linked with the products and accounts in MDM. This can be removed or replaced with what customers deem fit to map and translate ID’s from one system to another to handle the correlation of products and accounts between SAP S/4 HANA and Salesforce Consumer Goods Cloud.

Technical considerations

  • Enable the creation of a universal ID in MDM that allows you to retrieve / create IDs regardless of where the product and account is created or updated
  • Use CIM as the canonical model
  • Build using top applications, inclusive of Salesforce products, but should be built to work with other endpoints as well. For this solution, leverage the following applications:
    • Salesforce Consumer Goods Cloud, SAP S/4HANA and MDM (generic)

End-to-end scenarios

  • Product(s) created in SAP S/4HANA are reflected in Salesforce Consumer Goods Cloud.
  • Product Hierarchy created in SAP S/4HANA are reflected in Salesforce Consumer Goods Cloud.
  • Product Hierarchy updated in SAP S/4HANA are reflected in Salesforce Consumer Goods Cloud.
  • Account(s) created in SAP S/4HANA are reflected in Salesforce Consumer Goods Cloud.
  • Product(s) updated in SAP S/4HANA are reflected in Salesforce Consumer Goods Cloud.
  • Account(s) updated in SAP S/4HANA are reflected in Salesforce Consumer Goods Cloud
  • Account Hierarchy updated in SAP S/4HANA are reflected in Salesforce Consumer Goods Cloud.
  • Product Hierarchy updated in SAP S/4HANA are reflected in Salesforce Consumer Goods Cloud.

Solution definition

The primary set of use cases covered in the current solution involve the synchronisation of product and account data (including their hierarchies) between multiple systems.

Goal

Product synchronisation to MDM and Salesforce CG Cloud.

Main success scenario

  1. Receive a new or updated product from SAP S/4 HANA.
  2. For the first product job run/ schedule, the products will be filtered out from SAP S/4HANA by their level. Hence the first set of products will be Category, then Sub-Category, Brand, Flavor and Packaging. This ensures that the hierarchy is correctly built in CG Cloud. Then the products will be pulled from SAP S/4 HANA.
  3. Repeat the steps 4-6 for every product level.
  4. Attempt to match the input to an existing product in MDM
  5. If a match is found, update the existing entry in MDM. If no match is found, create a new entry in MDM and Salesforce CG Cloud.
  6. Publish the update to Salesforce CG Cloud registered for updates.

Goal

Account synchronisation to MDM and Salesforce CG Cloud.

Main success scenario

  1. Receive a new or updated account from SAP S/4HANA. Every account will contain the parent account ID until it finds the top most parent in the hierarchy.
  2. Attempt to match the input to an existing product in MDM.
  3. If a match is found, update the existing entry in MDM. If no match is found, create a new entry in MDM and Salesforce CG Cloud.
  4. Publish the update to Salesforce CG Cloud registered for updates.

Assumptions and constraints

The following will be used to guide or constrain the solution design at a high level:

  • The Cloud Information Model (CIM) will be used as the canonical model for all business types; see the CIM usage guidelines in that asset.
  • Universal identifiers will be maintained in MDM. Wherever possible, these will be assigned as external identifiers in target systems.
  • References to the universal IDs will be reflected in Salesforce CG Cloud using ExternalIDs to avoid conflicts with the usage of other external identifiers.
  • MDM will record only minimal information about the product in addition to establishing the correlation of productIds between SAP S/4 HANA and Salesforce CG Cloud.

High-level architecture

cg-product-sync-high-level-architecture.png cg-product-account-high-level-architecture.png

Sequence diagram

The diagrams below illustrates the sequence of processing product and account sync to Salesforce CG Cloud from SAP S/4HANA.

cg-product-sync-sequence.png cg-account-sync-sequence.png

Processing logic

The primary handling and orchestration of products will be implemented in the Products Process API. This process can be described as follows:

  1. A product has five attributes - Category, Sub-Category, Brand, Flavor, Packaging that represent the product hierarchy where each attribute is a type of product.
  2. All the levels in the product hierarchy need to be synchronised from SAP S/4 HANA to Consumer Goods before the actual product.
  3. The bulk data upload to CG Cloud will be implemented using a batch scope where each of the steps from Step 4 - Step 6 will happen in parallel for all the products.
  4. SAP S/4HANA System API will determine the level of the product based on the availability of the five attributes.
  5. Find a matching product entry in MDM. The lookup will be done by attempting to match on the following criteria, in sequential order, returning once a match has been found:
    1. Universal Identifier (if provided)
    2. External Identifier (of source system)
  6. If a single match is found:
    1. Retrieve the existing product
    2. Apply the incoming updates and save them back to MDM
    3. If not matched on external identifier, associate it with the product
    4. Invoke System APIs to update the Salesforce CG Cloud (see below)
    5. Associate missing external identifiers back to MDM
  7. If no match was found:
    1. Create or update a product entry in MDM
    2. Associate external identifier of source system with the product
    3. Invoke System APIs to update the downstream systems (see below)
    4. Associate new external identifiers back to MDM

The primary handling and orchestration of customers will be implemented in the Customers Process API. This process can be described as follows:

  1. A Customer has an attribute to identify the parent- parentId that represents the hierarchy where each attribute is a type of customer.
  2. All the levels in the customer hierarchy need to be synchronised from SAP S/4 HANA to Consumer Goods before the actual product.
  3. The bulk data upload to CG Cloud will be implemented using a batch scope where each of the steps from Step 4 - Step 6 will happen in parallel for all the customers.
  4. SAP S/4HANA Customer System API will determine the level of the customer based on the availability of the parentId attribute.
  5. Find a matching customer entry in MDM. The lookup will be done by attempting to match on the following criteria, in sequential order, returning once a match has been found:
    1. Universal Identifier (if provided)
    2. External Identifier (of source system)
  6. If a single match is found:
    1. Retrieve the existing product
    2. Apply the incoming updates and save them back to MDM
    3. If not matched on external identifier, associate it with the product
    4. Invoke APIs to update the Salesforce CG Cloud (see below)
    5. Associate missing external identifiers back to MDM
  7. If no match was found:
    1. Create or update a customer entry in MDM
    2. Associate external identifier of source system with the product
    3. Invoke System APIs to update the downstream systems (see below)
    4. Associate new external identifiers back to MDM

Successful outcome

After successfully completing the update processing for all target systems, the following conditions will be met:

  1. MDM holds a record of the product and customer
  2. All target systems will hold at least some minimal representation of the same
  3. The entity created/updated in each system will reference the universal identifier from MDM
  4. MDM holds a list of all external identifiers associated with the product
  5. A complete view of the product and customer can be constructed by first retrieving the universal copy from MDM, and then from all associated downstream systems

Workflow

  1. The use case is triggered when

    • A product and its associated hierarchy is created in SAP S/4 HANA
    • An account/organization and its associated hierarchy is created iis created in SAP S/4 HANA
  2. The Products Process API invokes the SAP S/4HANA Products System API on a schedule to capture the new and updated products

  3. The Customers Process API invokes the SAP S/4HANA Customer System API on a schedule to capture the new and updated organization customers
  4. The Salesforce Consumer Goods Cloud System API creates or updates the products and accounts in Salesforce CG Cloud.

Systems involved

  • Salesforce ConsumerGoods Cloud
  • SAP S/4HANA
  • MDM (generic)

Setup instructions

MDM configuration

Follow the setup instructions in the README file in the MDM System API.



Before you begin

bulb.png The Accelerators setup guide provides general information on getting started with the accelerator components. This includes instructions on setting up your local workstation for configuring and deploying the applications.

Downloadable assets

Accelerator System APIs

Accelerator Process APIs

Accelerator Listeners

Common services (can be used across any use case)


Reviews

TypeCustom
OrganizationMuleSoft
Published by
MuleSoft Solutions
Published onJul 18, 2022
Asset overview

Asset versions for 1.0.x

Asset versions
VersionActions
1.0.0