Symptom
You created a Business Partner XYZ without an Address. Your requirement is to add an Address to this Business Partner using the OData API_BUSINESS_PARTNER through a POST call on the query /sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartner('XYZ')/to_BusinessPartnerAddress
Upon performing the POST operation, system throws the error:
Internal error when calling operation module BUA_CHECK_ADDRESS_VALIDITY_ALL; a check table is missing
(where XYZ represents the Business Partner ID)
Environment
SAP S/4HANA Cloud
Reproducing the Issue
OData Query : /sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartner('XYZ')/to_BusinessPartnerAddress
Execute the POST call for the Request Payload as below:
{
"BusinessPartner" : "XYZ",
"Country": "YY",
"CityName": "PQR",
"PostalCode": "123456",
"StreetName": "ABC",
"Language": "ZZ",
"AuthorizationGroup": "1234",
"HouseNumber": "123",
}
You see the below error in the Response Payload:
Internal error when calling operation module BUA_CHECK_ADDRESS_VALIDITY_ALL; a check table is missing
Cause
You created the Business Partner XYZ without an Address. When the Business Partner does not have an Address and you want to add the Address using the POST call on the Address of the Business Partner using the API_BUSINESS_PARTNER, system will throw an error.
As long as a Business Partner has at least one valid Address, there must always be a default Address. The default address is identified via the Address Usage XXDEFAULT.
As of today, the first Address that is created for an already existing Business Partner is not set as default Address automatically during the processing of the service request. It is only set as default Address if the Address Usage XXDEFAULT is specified explicitly in the Request Payload. Therefore, including the Address Usage in the Request Payload will add the Address successfully for a Business Partner which was created without an Address.
Resolution
You must include the Address Usage XXDEFAULT for the first Address that is created for an already existing Business Partner XYZ. For all additional Addresses that are added to a Business Partner, the Address Usage XXDEFAULT is not a must.
Example of the Request Payload below.
{
"BusinessPartner" : "XYZ",
"Country": "YY",
"CityName": "PQR",
"PostalCode": "123456",
"StreetName": "ABC",
"Language": "ZZ",
"AuthorizationGroup": "1234",
"HouseNumber": "123",
"to_AddressUsage":
[
{
"AddressUsage": "XXDEFAULT",
"StandardUsage": true
}
]
}
(where YY represents the Country,
PQR represents City Name,
123456 represents the Postal Code,
ABC represents the Street Name,
ZZ represents the Language,
1234 represents the Authorization Group,
123 represents the House Number)
Upon executing the above Request Payload, the first Address is added to the Business Partner XYZ.
Note:
If you fill the Address information manually to the existing Business Partner, there is no error. The error is related only to the OData API_BUSINESS_PARTNER when creating the first Address to an already existing Business Partner.
Keywords
API_BUSINESS_PARTNER, OData, API, Business Partner, POST, Address Usage, BUA_CHECK_ADDRESS_VALIDITY_ALL, Address, AddressUsage, XXDEFAULT, a check table is missing, to_BusinessPartnerAddress, A_BusinessPartner , KBA , AP-MD-BP , Business Partner , Problem