Technical Articles
Migrating Business Partner Relationship with S/4HANA Migration Cockpit
Relationship to existing contact persons is out of scope in Customer migration object. In order to migrate BP Relationship new Migration Object should be created. In this blog post you will learn how to do it.
Function Module BAPI_BUPR_CONTP_CREATE is using to create a contact person relationship between two business partners. The system checks that the specified business partners exist. The business partner that you enter in the “contact person” parameter must be in the “person” category.
1 Create new Migration Project. In LTMC t-code choose Create, fill Name and Mass Transfer ID.
2 Run LTMOM t-code. Open your migration project and create new user-defined migration object.
Menu Project – Create Migration Object – User-Defined – Migrate Data Using Files/Staging Tables. Go thought wizard steps as follow.
3 Create source structure. Append new structures below to lower level.
S_BUPR Business Partner Relationship fields
Key | Name | Data Type | Length | Column Header |
X | BUSINESSPARTNER | CHAR | 10 | Business Partner |
X | CONTACTPERSON | CHAR | 10 | Contact Person |
FUNCTION | CHAR | 4 | Function of partner | |
DEPARTMENT | CHAR | 4 | Department at business partner | |
COMM_TYPE | CHAR | 3 | Communication Method (Key) (Business Add |
4 Set up structure mapping as follow.
Source Structure | Target Structure | Access Type | Mapping Type | Source Cardinality | Target Cardinality | Data Path Type |
S_BUPR | HEADER | LOOP AT TABLE | 1:1 Relation | 1 | 1 | Default Path |
S_BUPR | R_BUSINESSPARTNER | Mapping only | 1:1 Relation | 1 | 1 | Not Applicable |
S_BUPR | R_CONTACTPERSON | Mapping only | 1:1 Relation | 1 | 1 | Not Applicable |
S_BUPR | R_VALIDFROMDATE | Mapping only | 1:1 Relation | 1 | 1 | Not Applicable |
S_BUPR | R_VALIDUNTILDATE | Mapping only | 1:1 Relation | 1 | 1 | Not Applicable |
S_BUPR | R_CENTRALDATA | Mapping only | 1:1 Relation | 1 | 1 | Not Applicable |
S_BUPR | R_ADDRESSDATA | Mapping only | 1:1 Relation | 1 | 1 | Not Applicable |
5 Map Fields according data in table
Import Parameter | Parameter Value | Rule | Target Field |
Target Structure R_BUSINESSPARTNER | |||
SENDERFIELD | S_BUPR-BUSINESSPARTNER | MOVE | BUSINESSPARTNER |
Target Structure R_CONTACTPERSON | |||
SENDERFIELD | S_BUPR-CONTACTPERSON | MOVE | CONTACTPERSON |
Target Structure R_CENTRALDATA | |||
SENDERFIELD | S_BUPR-FUNCTION | MOVE | FUNCTION |
SENDERFIELD | S_BUPR-DEPARTMENT | MOVE | DEPARTMENT |
Target Structure R_ADDRESSDATA | |||
SENDERFIELD | S_BUPR-COMM_TYPE | MOVE | COMM_TYPE |
Save and generate run time object.
6 Run LTMC t-code, open your project, created migration object and download Template. Populate data as follow.
BUSINESSPARTNER | CONTACTPERSON | FUNCTION | DEPARTMENT | COMM_TYPE |
Business Partner* | Contact Person* | Function of partner | Department at business partner | Communication Method (Key) (Business Add |
17100001 | 17910007 | 0005 | 0003 | TEL |
17100002 | 17910006 | 0001 | 0002 | TEL |
17100002 | 17910005 | 0003 | 0004 | TEL |
7 Go through migration steps. As result Contact Persons should be assigned to Business Partners.
Thereby we have created Contact Person assignment Migration Cockpit object.
Hello,
I was following your steps and i have the next errors in the system,
Could you help me with this? pls
Regards,
Hello.
If I have very strange errors in LTMOM I try to change Global Data by typing space. Then save object and Generate Migration Object. If no luck then please go Display Generated Function Group and try to analyze it. Form _CONVERT_0001. should be declared only once.
br,
Alexey.
Hello Alexey,
It worked, only changing the global Data like you said. Thank you!
I have a another question about the Migration Cockpit, i have the Sap versión 1909 and i'm using the standard file to migrate the Customer object, when i enter values on fields of the contact persons section (Function, department, VIP, etc.), the migration cockpit throws the next error:
Is only with the fields that appears on the contact person relationship. You know how to solve this error? or, is that why you created this blog in the beginning?
Regards and Thanks!
Hello.
I faced with similar error then I tried to create person via standard object. Company address should be assigned according actual settings of my system. address was set as mandatory by my colleagues. Unfortunately I don't know how to solve it. I had the main reason to create own object for relationship. I need to assign existing person instead of creating it simultaneously with customer. I spent my effort for creating my own object.
br,
Alexey.
Hello Alexey,
Thanks for the very detailed blog. I was able to maintain the relationship between Business partner and contact person.
But I am not able to update the telephone details and email address in the relationship tab, can you please advice how this is to be done.
Regards,
Patil
HI Alexey
The above mentioned BAPI_BUPR_CONTP_CREATE don't have any field are structure to pass Relationship category. How system will know which category to be picked.
Where as this BAPI_BUPR_RELATIONSHIP_CREATE specifically has category field to pass. Which BAPI is best to use in cockpit?.
Thanks and Regards
Vijay
Hello Vijay.
Thanks for comment. Please review blog text. I mentioned that The business partner that you enter in the “contact person” parameter must be in the “person” category. If You need another relationship please look for proper BAPI. BAPI_BUPR_CONTP_CREATE is fine for Contact Person.
br,
Alexey.
Thank you for this detailed blog! I've also encountered an error similar to Gerard Not and changing the Global Data worked as mentioned in the thread.
Thank you both!
BR,
Yann
Hi Alexey,
Can someone help me on this i have created custom program using 'BAPI_BUPR_CONTP_CREATE' function module.
I am facing Below two issues in LTMC
"Contact person relationship already exists between partners 3XXXXX5722 and 9XXXXX0004"
Can Someone suggest how can i pass the multiple contact person for single customer?