I had to update name of a party with the cloud for customer. Normally if you use the actionCode 04 it should save the value. But with DirectResponsibility/Owner of the customer there is multiply option.

In the interface, it looks like this.

24-11-2014 22-51-13.jpg

Using the pencil and the search box it is possible to edit the value. It would be nice to do it using the interface, so our third party application can help with it.

The way I create the value in the first place using the interface is by using the following section.


      <ns1:CustomerBundleMaintainRequest_sync_V1 xmlns:ns1="http://sap.com/xi/SAPGlobal20/Global">
         <BasicMessageHeader/>
         <Customer actionCode="04" addressInformationListCompleteTransmissionIndicator="true">
            <InternalID>2004727</InternalID>
            <DirectResponsibility actionCode="04">
               <PartyRoleCode>142</PartyRoleCode>
               <EmployeeID>17</EmployeeID>
            </DirectResponsibility>
         </Customer>
      </ns1:CustomerBundleMaintainRequest_sync_V1>

This does work and we can create the direct responsible person.

The challenge happen when we want to update the value then we cannot put the new value into the system. Then we will get the following error code “You can assign party role Employee Responsible (Sales) only once to business partner XXX”.

This error really bugged me. I had previous ignored to update this type of value because I could not find a solution for it.

The work around was first to remove (actioncode =05) the old value and then create the new value (actioncode =04). Both create in one request. Like this.


<ns1:CustomerBundleMaintainRequest_sync_V1 xmlns:ns1="http://sap.com/xi/SAPGlobal20/Global">
   <BasicMessageHeader/>
   <Customer actionCode="04" addressInformationListCompleteTransmissionIndicator="true">
      <InternalID>2004727</InternalID>
      <DirectResponsibility actionCode="05">
         <PartyRoleCode>142</PartyRoleCode>
         <EmployeeID>17</EmployeeID>
      </DirectResponsibility>
      <DirectResponsibility actionCode="04">
         <PartyRoleCode>142</PartyRoleCode>
         <EmployeeID>18</EmployeeID>
      </DirectResponsibility>
   </Customer>
</ns1:CustomerBundleMaintainRequest_sync_V1>

The downside is that you must create two calls to get the old value before you can update the new value.

I hope this helps you when you are going to update this type of objects. Maybe this function will even be implemented into the system, so we don’t need a work around.

To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply