In Mind Cloud Digital Sales Platform (DSP) supports product data sync from ERP to DSP, which includes the sync of Units of Measurement, basic Product data (Material ID, Material Basic Data Text), Product/Material classification data, Product sales text, Product Variants, Sales Area and Attachments.
To better control this on the ERP side and to restrict the number of products going into the target DSP, views are needed to be created in the ERP system, which act as a filter on top of ERP Data (more on this later in the document).
The product sync is split into two parts: First (initial) product data sync and Second (subsequent) delta product sync which allows syncing of newly added or changed materials from ERP system. The changes are recognized based on the last change date in ERP.
DSP uses a URI to uniquely identify each object. The materials and some of the other objects coming from ERP are identified by a URI that includes the hostname of the ERP system (source system) plus the material/object ID to make a unique URI per material/object. The hostname is found from the destination ECC_RFC_DESTINATION and follows the pattern of hostname and client.
For example, a material URI would look like: http://imc.prod/800/Product#000000000000123456
where
- imc.prod is the ERP hostname and comes from jco.client.ashost or jco.client.mshost
- 800 is the client and comes from client.client
- Product is the name of the type of the object
- 123456 is the material ID
Note: In DSP, Product and Material are used interchangeably.
Important: For materials synchronized from ERP, the linkage with its Unit of Measure is done based on URI only. Unit of Measurement (UoM) also has a similar URI. To link the two together, UOM should be first synchronized from the ERP before starting with the Product sync.
To start the product data synchronization, go to:
Administration -> Data Synchronization -> ERP Data Synchronization
Order to Synchronize Data
First, sync all Unit of Measurement and Product Hierarchy (optional).
Next, start sync of the product together with classified* data. Enable the setting SettingProductSyncDownloadClassification if classification data is needed. If enabled, products are synced along with their classified data, which includes the classification class and characteristic values.
The data sync first synchronizes the characteristics, followed by the classes, the product itself, and finally, product classification.
In ERP, the classification data can be maintained in various classes. The setting SettingClassificationToLoad is useful in listing which class type (class name) to use for classification data, and the default is class type 001.
The following data points are extracted from the ERP system:
Unit of Measure
- Short text (imported as a label) in all maintained languages.
- All units of measurements maintained in the ERP system.
Material Hierarchy
- Material hierarchy maintained in the ERP system.
- Short text (imported as a label) in all maintained languages.
- Hierarchy ID is mapped to objectERPId.
Material
- Product (materials) maintained in the ERP system.
- Short text (imported as a label) in all maintained languages.
- Base texts (imported as description) in all maintained languages.
- Sales text (if the setting is on)
- Unit of measurement
- Product hierarchy (imported as product category).
- Deletion flag (mapped to product status)
- Material number (mapped to objectERPId)
- Last Change Date
- Division
- Sales Area
- Sales Org and Distribution Channel
- Attachments
Classifications
- Classifications (knowledgebase) maintained in the ERP system.
- Short text (imported as a label) in all maintained languages.
- Long text (imported as description) in all maintained languages.
- Class name mapped to objectName
- Last change date
Characteristics
- Characteristics maintained in the ERP system.
- Short text (imported as a label) in all maintained languages.
- Characteristic name mapped to objectName.
- Last Change Date
Characteristics Value
- Short text (imported as a label) in all maintained language.
- Characteristic value mapped to objectName.
Custom Table View
- Not part of product data syncs, however useful in synchronizing any custom/standard table from ERP. Refer to 'Internal Pricing Engine' for more information.
- The relation between DSP and ERP is mapped as follow:
The relations between DSP and ERP are mapped as follows:
Used BAPI’s:
- RFC_READ_TABLE
- BAPI_MATERIAL_GET_PRODUCTHIER
- BAPI_CHARACT_GETDETAIL
- BAPI_CLASS_READ
- BAPI_MATERIAL_GETALL
- CLAF_CLASSIFICATION_OF_OBJECTS
- COM_CFG_READ_PRODUCT_VARIANT
- COM_CFG_READ_ALL_PROD_VARIANTS
- RFC_READ_TEXT
Used Tables:
- MVKE (This is to get the Sales Area Information for a Product)
Limitations:
- Only hierarchy nodes referenced by products are fetched.
- Only one material class (class type 001 or another) is taken into consideration for classification.
- The product variant is considered on top/separately.
- During product sync no relationship between hierarchy nodes is maintained so hierarchy tree is not available. To get the product category hierarchy tree, it can use the Product Category Data Sync feature.
- No long texts fetched for characteristic values.
- No units fetched for characteristics.
- No class hierarchy information is fetched.
- Inherited characteristics are not considered during product sync.
- Time and date characteristics are fetched as string values only.
- Attachment with binary file are only considered to synchronize from ERP. Those attachments having URI only in ERP are not considered as Attachments in DSP.
COM_CFG_READ_PRODUCT_VARIANT Data Selection / Filtration in ERP
DSP uses database views in ERP to check which objects should be synced to DSP. It also applies to products, classes, and characteristics sync. We recommend maintaining all the views below at one time.
Database views in ERP can be created using transaction SE11.
Tip: Database filters might return duplicated records since ERP does not support the DISTINCT concept when creating views. This is currently handled on the DSP side, where duplicates are eliminated.
Product Sync Procedure
Create database view “Z_ISS_MAT” with columns “MANDT”, “MATNR” and “LAEDA” in ERP. This view is based on standard ERP table “MARA”. This view can do the pre-filtering of products/materials in ERP which are to be synced to DSP.
Depending on the filter conditions, the view might need to perform a join on different tables and a set of selection conditions.
Those filters need to be applied depending on the business case of the customer. In Mind Cloud recommends to carefully put in selection of products that should be made available in the DSP system as this impacts the performance of data sync. The larger the set of data, the more time it will take to complete the sync. Products that are not sales relevant should not be synced to DSP. It is also important to note to include products that are parts of the Equipment’s BOM or Equipment’s linked product.
Manual and Explicit Material Synchronization
To synchronize an individual material (or list of materials) from the ERP System. The user needs to go to System Processes ->Products Synchronization -> Click on the download button.
Add the ERP ID of the materials fully qualified that is with leading zeros in case the material ID/name is numeric.
The screenshot above shows the example where the material ID’s INV_266765, INV_266764, INV_266763, and 000000000000123456 are to be synced from the ERP system.
- Click the down arrow icon
- Specify the ERP ID and Enter
- Click Synchronize
Background Product Synchronization
In the main product sync, the products can be synchronized in the background by using:
- Go to System Processes ->ERP Synchronization
- Click on the Refresh icon to navigate to the ERP Synchronization Options
- Select Run in Background
- Click Synchronize
Background Product Sync System Task
You can set up a system task to run the product sync in the background. Administration → System Task → create a new task with a cron expression string and using the task resource “Product Sync Job”.
For more information on cron expressions: please refer to https://www.freeformatter.com/cron-expression-generator-quartz.html.
Some of the settings that affect the Product Sync Job are as follows:
SettingProductSyncDownloadProducts |
Setting to enable sync of products in background system tasks |
SettingProductSyncDownload Classification |
Setting to enable sync of classification data of the products. Should be enabled before the start of product sync |
SettingClassificationToLoad |
Setting to override which classtype to load the classification data for. Default is 001 |
SettingProductSyncBatchSize |
Setting to setup a batch size for product sync. |
SettingProductSyncBatchSyncInactive |
Setting to also sync mark for deleted products in ERP |
SettingProductSyncBatchMarkAsExportToCRM |
Setting to enable the flag export to crm on products synced from ERP |
SettingUseDisplayMatNoFromBAPIForObjectName (Deprecated: since 1902 In general MXP now applies the product object name by removing prefix zeros from the material number.) |
If true would make the 18-digit numeric material number coming from erp to remove prefix zeros. That is a material number like 000000001234567800 Would become 1234567800 for the object name of the product. |
SettingAttachmentDocumentIDListBAPI |
A remote enabled BAPI name for BDS_GOS_CONNECTIONS_GET. If this is not specified, DSP will assume to use the wrapped BAPI with name, ZBDS_GOS_CONNECTIONS_GET. The customer’s ERP needs to define the wrapped BAPI with name, ZBDS_GOS_CONNECTIONS_GET. |
SettingAttachmentDocumentContentBAPI |
A remote enable BAPI name for SO_DOCUMENT_READ_API. If this is not specified, DSP will assume to use the wrapped BAPI with name, SO_DOCUMENT_READ_API1. The customer’s ERP needs to define the wrapped BAPI with name, SO_DOCUMENT_READ_API1. |
SettingEquipmentBOMReadBAPI |
A remote enable BAPI name for /CIDEON/BAPI_EQUI_BOM_READ. If this is not specified, DSP will assume to use the wrapped BAPI with name, /CIDEON/BAPI_EQUI_BOM_READ1. The customer’s ERP needs to define the wrapped BAPI with name, /CIDEON/BAPI_EQUI_BOM_READ1. |
For syncing the classification data of the material, the following steps need to be undertaken in ERP:
ERP Material Class Sync Procedure
For syncing the classification data of the material, the following steps need to be undertaken in ERP. Create database view “Z_ISS_CLASSES” with columns MANDT, CLINT, KLART, CLASS and VDATU in ERP. This is based on standard table “KLAH”. It’s needed to control the pre-filtering of classes in ERP which are to be synced.
One can set the filtering conditions in this view. An example: Created by a User and class type
Manual Class Synchronization
To synchronize individual classes in the ERP system. Follow the steps as listed in the screenshot below.
ERP Characteristic Sync Procedure
For syncing the Class characteristic data, the following steps need to be undertaken in ERP. Create database view “Z_ISS_CHARAC” with columns MANDT, ATINN, ADZHL, ATNAM, and VDATU in ERP. It is based on the standard table “CABN”. It’s needed to control the pre-filtering of characteristics in ERP, which is to be synced.
Example of filter criteria:
Manual Characteristic Synchronization
To synchronize individual characteristics in the ERP system, use the process shown in the screens shot below.
Product Sales Text Sync
In the ERP system, material sales text is maintained in a way that they are the Organization Unit and Distribution Channel-specific.
Product sales text is governed by SettingProductSyncDownloadProductSalesText Boolean setting.
If this setting is on, sales text is synced along with the product sync. RFC_READ_TEXT BAPI is used to read sales text from the ERP system. This BAPI needs to be enabled from the SAP Cloud Connector.
MVKE and LANGUAGEKEYS lookup tables in DSP are also used in the sync process. MVKE contains records on a product, sales organization, and distribution channel relationships. Data for this table can be directly synced from the corresponding ERP tables. (If the data is too much, a view can be created in an ERP system with some filtering criteria that can be synced or can be maintained manually). LANGUAGEKEYS table is used to keep the mapping between language key and corresponding 2-character SAP language code. T002 is the corresponding table from the ERP system.
MVKE Lookup Table
Field Name |
Description |
---|---|
MATNR |
Product ERP ID / Material number |
VKORG |
Sales organization ERP ID |
VTWEG |
Distribution Channel ERP ID |
LANGUAGEKEYS Table
Field Name |
Description |
---|---|
SPRAS |
Language key |
LAISO |
2-character SAP language code |
Sales organizations, distribution channels, and languages need to be maintained in DSP along with their ERP IDs. In the ERP system sales text may be kept for several languages, but in the sync process, only the languages maintained in DSP are considered.
Usage of Product Sales Text in DSP
Product’s sales text can be viewed under the product’s General Information -> Sales Labels,
Here ERP ID is the combination of the ERP IDs of product, sales organization, and distribution channel.
Sales text of a product can also be viewed from the product catalog given that the product catalog is launched from within the quote and sales org and distribution channel are maintained for the quote. DSP finds the sales text with the combination of sales organization and distribution channel of the quote and the locale language of the current logged in user.
Sales text in product catalog view,
Sales text from product details view,
Once a product is added to the quote, the sales quote can also be viewed from the line item view.
Extension Points in Sales Text Reading
A groovy extension point is made available to map the user’s locale language to sales text language. UserLangToTextLangMappingScript can be used to code any custom logic for the mapping. If a script is present, the system will execute the script to figure out sales text language, and else it will use the user’s locale language.
Sample script:
/* This script determines sales text language for a given user language. It will be executed at the time of reading the sales text in DSP.
* Binding objects
* userLanguage : String // String representing user's language("en" for example)
* textType : String // String representing text type ("SALES_TEXT" for example)*
*/
if (textType.equals("SALES_TEXT")) {
return "en_sg";
}
return userLanguage;
Product Sales Area Sync
The data for product sales area is maintained in MVKE table and DSP is using that table to get the sales area information for each product during the Product Sync Procedure.
The following is the procedure to check what sales are data are maintained in ERP.
- Go to SAPGUI
- Enter the transaction code se11
- Enter the Database table , MVKE
- Click Display to see the following screen where MATNR is the material number, VKORG is the Sales Organization and VTWEG is the distribution channel.
DSP will use the MVKE table to get the list of Sales Organization and Distribution for each product using the filter with the field, MATNR which is mapped to Product ERP ID in DSP. The following prerequisites are needed to synchronize the Sales Area data for each product.
- Master Data for Org Unit
- It needs to define ERP ID
- It needs to define Sales Organization
- Master Data for Distribution Channel
- It needs to define ERP ID
Product Attachment Sync
To synchronize the product attachments, it is necessary to wrap the following BAPI to make it remote enabled in ERP system.
- BDS_GOS_CONNECTIONS_GET
- This BAPI needs to enable access by remote system by wrapping the BAPI in ERP system.
- The purpose is to get the list of internal document id of the product attachment and its property to further query to get the attachment Binary data
- SO_DOCUMENT_READ_API
- This BAPI needs to enable access by remote system in ERP by wrapping the BAPI in ERP system.
- The purpose of the BAPI is to get the binary data for the specified document ID.
Once the above two BAPI has been enabled to allow remote access by external system, the following two Setting String needs to be specified by specifying the wrapper BAPI name defined above.
Once above two setups has been done, it can turn on the product attachment integration feature by using the following Setting Boolean.
Synchronization History
If any of the above synchronizations are triggered, DSP will generate a synchronization status report, as shown below:
Clean Up
A system task (CRON job) is provided to clean up synchronization history. Users can either manually clear synchronization history from UI or set up a CRON job. The following screenshot shows to set up a system task from master data management. The most critical point of this screenshot is task resource, and it must be “DeleteSyncHistoryJob”.
There is a case that the user wants to keep the synchronization history in DSP for a few days to check whether sync is successful or not. A setting can define how long the synchronization history will stay in the DSP in terms of days. If the setting is not specified explicitly, DSP will take the default setting value of “30”. The clean-up job will delete the synchronization history that existed more than 30 days ago.
Comments
0 comments
Article is closed for comments.