Example: I have a material in ERP maintained with status: 10
"If a material has technical defects or is to be discontinued, you can block the material.
If you set a block, orders, deliveries and invoices containing this material cannot be created at all, or only with a warning message. The system reactions to a blocked material depends on the type of block set."
When I download this material into CRM, it is displayed as "Blocked (Error)" in Sales Status field.
How is this behavior implemented?
Sales Status mapping between ERP and CRM
This mapping relationship is downloaded via customizing download by object DNL_CUST_PROD3. Once done, the table CRMC_TVMS in CRM stores the relationship.
Take the marked row below ( VMSTA = 10 ) for example, it means if the column SPVBC = B, the corresponding hard coded status in CRM will be marked as "active".
See related middleware inbound source code for example.
CRM middleware inbound processing will only set the following three kinds of sales status for a downloaded product.
The description for them are listed below:
For a downloaded product, if it has sales organization specific data maintained in ERP, a default status value I1001 - Created will ALWAYS be set by line 24, regardless of the existence of sales status value. And If there is indeed sales status set in ERP, the configuration table CRMC_TVMS will be used to find logic how this sales status maintained in ERP will be handled in CRM.
Please note that even though in the configuration entry, there are lots of column SPVBA, B, C, D...
However in CRM middleware, only SPVBC is used.
Last but not least, table COMM_PR_FRG_ROD has a field STATUS_OBJECT which stores a guid acting as a handle for product sales status. By using this guid, you can query table CRM_JEST to get product's status.