In SAP CRM we can maintain multiple business partners with different partner functions to an order header or item level. This from technical point of view means the relationship of root object(header or item) to the records of Partner component is 1:N. As a result we can Partner component as “complex set” in One Order model.
Take the following Service Order for example. Suppose I could like to read all its header partners by CRM_ORDER_READ:

The code is exactly the same as written in SAP CRM:
The report output just matches what we observe in WebClient UI assignment block “Parties Involved”.
If we check the flat table CRMS4D_SERV_H for Service document header data, we can only find the partner ID of corresponding role.
The detail information of each kind of partners are stored in table CRMS4D_PARTNER instead.
As a result if we directly read from CRMS4D_PARTNER, we can get exactly the same output as reading from function module CRM_ORDER_READ.
In fact if you set a breakpoint on COM_PARTNER_SELECT_M_DB, you can find out that indeed CRM_ORDER_READ internally reads all partners belonging to a Service document HEADER with the where statement in code below from line 71 to 73. Records in CRMS4D_PARTNER with number_int = 0 represents the partners of header level, and those with number_int > 0 for partners of item level.
So next question is: when, where and how the records in CRMS4D_PARTNER are stored?
Execute the report mentioned in my blog Create Mass Service document in S/4HANA for Customer Management to create a service order with Sold to party specified:
The created partner data are persisted via function call COM_PARTNER_SAVE_OB, which has been adapted to call new function module designed for S/4HANA: CRMS4_PARTNER_UPDATE_DU
You might have observed that although only Sold to party ID is specified by my report, still totally six partners with different party roles are populated. all other five roles are determined by standard partner determination logic which is the same as in SAP CRM.
It is still possible for customers to define their own partner functions in S/4HANA for Customer Management, whose details will be introduced in a separate blog.
Jerry’s other blogs on S/4HANA for Customer Management
S/4HANA for Customer Management 1.0 introduction from technical point of view
CRM One Order Model Redesign in S/4HANA for Customer Management 1.0 – Part 1
CRM One Order Model Redesign in S/4HANA for Customer Management 1.0 – Part 2
Create Mass Products by code in S/4HANA for Customer Management
Create Mass Service document in S/4HANA for Customer Management
One order extensibility in S4HANA for Customer Management
One Order Partner Component model in S/4HANA for Customer Management
Step by step to create custom partner function in S4HANA for Customer Management