***Examples/Data/Images this Blog is from SAP internal systems, sample data, or demo systems. Any resemblance to real data is purely coincidental.***
Hello SAP S/4HANA Cloud Community,
I work on the LO-MD-BP component for SAP S/4HANA Cloud and I have had several customers queries about how to maintain the Sales Partner Function CP Contact Person in Customer Master Data and how to determine the Contact Person ID via the CDS Views in SAP S/4HANA Cloud.
How to Create Contact Person in SAP S/4HANA Cloud:
To create a contact person which can be used as Partner Function you need to follow the following steps:
- Go to the Maintain Business Partner App.
- Create a business partner with type 'Person'.
- Assign the BP role 'Contact Person' Fill the data and save.
- Go to sub header 'Relationships' of this contact person BP
- Create relationship 'Is Contact Person For' relationship to the Customer/Vendor BP. (Alternatively, you can go to the sub header 'Relationships' of the Customer/Vendor BP and assign relationship 'Has contact person' for this contact person BP).
- Save this relationship.
The contact person BP will be synchronized to contact person via CVI. The synchronization will create a record in table KNVP for the BP which is a contact person, this number will be different to the BP number. Then you can use the contact person number in other applications such as purchasing partner function etc, using the KNVP number.
To see the KNVP number, when adding the Contact Person as a CP Partner function press the F4 help button in the field for inputting the contact person number.
- Open the customer BP . Lets say 1000067.
- Select the BP role 'Customer'.
- Go to 'Sales and Distribution' section.
- Under the 'Partner Functions' tab, enter the partner function 'CP', then click on the search help of 'Number' field.
- Click on find with Customer 1000067, all the customer contacts will be displayed in the result. Here you can check that the new customer contact created from for e.g.: 5000078 has the internal number '0000000051'.
So you can enter the ID 51 for partner function CP. This is the contact person ID linked to contact BP ID 5000078.
This information is also mentioned in SAP Knowledge Base Article 2576618 - How to use a contact person in SAP S/4HANA.
How to Determine Contact Person ID and relationship between Contact Person ID and Contact BP ID via CDS Views?
As S/4HANA cloud migration does not support on assignment of contact person to customer BP, it is suggested to do mass maintenance after BP relationship is created by migration object Customer.
Therefore, it is required to get the contact person ID with its contact BP ID after Migration Object Customer is imported and before mass maintenance.
To achieve this and determine the relationship between Contact Person ID and Contact BP ID, a custom CDS View must be created based on released CDS Views.
- First make use of I_BUSINESSPARTNER CDS View to determine all Customers in the System. The equivalent DB Query would be Select BUT100.PARTNER from BUT100 where BUT100.RLTYP = ‘FLCU01’ as Customer BP ID.
- Then, I_CONTACTPERSON CDS View should be used to determine the Contact Person Partner ID which is stored in table KNVK field PARNR. The DB query running with this CDS View would be Inner join KNVK where KNVK.KUNNR = Customer BP ID and select KNVK.PARNR as Contact Person Partner ID.
- Now, I_BPCustomerContactLink CDS View must be used to determine the GUID of Contact Person BP ID. The DB Query running in background would be Left outer join CVI_CUST_CT_LINK where CVI_CUST_CT_LINK.CUSTOMER_CONT = Contract Person Partner ID and select CVI_CUST_CT_LINK.PERSON_GUID as Contact Person BP GUID.
Finally again I_BUSINESSPARTNER should be used to determine the Contact Person BP ID. The relevant DB Query is Left outer join BUT000 where BUT000.PARTNER_GUID = Contact Person BP GUID and select BUT000.PARTNER as Contact Person BP ID.
ODATA Service API_BUSINESS_PARTNER for determining Contact Person ID
API_BUSINESS_PARTNER cannot be used to yet to determine the relationship Contact Person ID and Contact Person BP ID.
The below URI will not be helpful in this scenario as Partner Function information is stored in table KNVP whereas Contact Person information is stored in KNVK.
URI: /sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartnerContact() will also not help as it will return only the Contact Person BP ID. It does not give us the ContactPerson and the Business Partner Link.
The result would something like this:
"RelationshipNumber" : "506",
"BusinessPartnerCompany" : "1000067",
"BusinessPartnerPerson" : "50000078",
"ValidityEndDate" : "\/Date(253402214400000)\/",
"ValidityStartDate" : "\/Date(1559606400000)\/",
"IsStandardRelationship" : false,
"RelationshipCategory" : "BUR001".
However, Business Partner Person (Contact Person BP ID) cannot be passed via API or maintained manually in App Maintain Business Partner as system expects the Contact Person ID.
Therefore, we can conclude that we can determine Contact Person ID either by using F4 help in App Maintain Business Partner or via CDS Views.