Symptom
You are using the web service CalculatePriceIn to retrieve the List Price of a Product but the List Price maintained in the Customer Group Specific Price List for this Product is not Retrieved only the List Price maintained in the e.g. Base Price List is retrieved for the Product.
Environment
SAP Business ByDesign
Reproducing the Issue
Please Note: This is a sample payload. Please note that the data passed for the Account ID, Sales Organization, Company and Product are sample data.
You are passing the following SOAPUI Request Payload:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:glob="http://sap.com/xi/SAPGlobal20/Global" xmlns:a00="http://sap.com/xi/AP/CustomerExtension/BYD/A0014">
<soap:Header/>
<soap:Body>
<glob:CalculatePricesRequest_sync>
<CalculatePricesRequest>
<Application>2</Application>
<CurrencyCode>EUR</CurrencyCode>
<AccountID>10000010</AccountID>
<SalesOrganisationID>P1110</SalesOrganisationID>
<CompanyID>1000</CompanyID>
<Item>
<ID>1</ID>
<ProductID>TP-BLACK</ProductID>
<ProductTypeCode>1</ProductTypeCode>
<Quantity unitCode="EA">1</Quantity>
<QuantityTypeCode>EA</QuantityTypeCode>
</Item>
</CalculatePricesRequest>
</glob:CalculatePricesRequest_sync>
</soap:Body>
</soap:Envelope>
You are receiving the following SOAPUI Response Payload which only includes the List Price of the Base Price List BASE PL:
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Header/>
<env:Body>
<n0:CalculatePricesResponse_sync xmlns:n0="http://sap.com/xi/SAPGlobal20/Global" xmlns:prx="urn:sap.com:proxy:L3I:/1SAI/TAS320A1E78319512398166:804">
<Item>
<ID>1</ID>
<ProductID>TP-BLACK</ProductID>
<ProductType>1</ProductType>
<NetPrice>
<DecimalValue>100.0</DecimalValue>
<CurrencyCode>EUR</CurrencyCode>
</NetPrice>
<NetValue>
<DecimalValue>100.0</DecimalValue>
<CurrencyCode>EUR</CurrencyCode>
</NetValue>
<PriceComponents>
<ConditionType>7PR1</ConditionType>
<ConditionDescription>List Price</ConditionDescription>
<ConditionRate>100.0</ConditionRate>
<CurrencyCode>EUR</CurrencyCode>
<QuantitySymbol unitCode="EA">1.0</QuantitySymbol>
<QuantityUnitOfMeasure>EA</QuantityUnitOfMeasure>
<ConditionValue>100.0</ConditionValue>
<PriceListID>BASE PL</PriceListID>
</PriceComponents>
<PriceComponents>
<ConditionType>7PR1</ConditionType>
<ConditionDescription>List Price</ConditionDescription>
<ConditionRate>100.0</ConditionRate>
<CurrencyCode>EUR</CurrencyCode>
<QuantitySymbol unitCode="EA">1.0</QuantitySymbol>
<QuantityUnitOfMeasure>EA</QuantityUnitOfMeasure>
<ConditionValue>100.0</ConditionValue>
<PriceListID>BASE PL</PriceListID>
</PriceComponents>
</Item>
<Log>
<MaximumLogItemSeverityCode>1</MaximumLogItemSeverityCode>
<Item>
<SeverityCode>1</SeverityCode>
<Note>Price Calculation completed</Note>
</Item>
</Log>
</n0:CalculatePricesResponse_sync>
</env:Body>
</env:Envelope>
Cause
In the payload, only the Currency, Account ID, Sales Organisation ID, Company ID and Product ID information is being provided. Based on this the system is only able to identify the Base Price List since Base PL needs only Product ID.
When creating any Sales Document, the Customer Group is determined via the following Parameter:
- Account
- Sales Organization
- Distribution Channel
Since you are not providing the Distribution Channel in your payload, the Customer Group cannot be determined and therefore the Customer Group Specific Price List is not retrieved.
In our example, when you create a Sales Order for Account 10000010 manually and maintain e.g. the Sales Unit P1111 which Determines the Sales Organization P1110 automatically with the Distribution Channel 01 the Customer Group can be determined from the Account Master Data from the Sales Data tab and the respective Sales Organization P1110 and Distribution Channel 01.https://me.sap.com/notes/0003058154
Resolution
Therefore, in order to retrieve the Customer Group Specific Price List via the web service, you need to add the Distribution Channel to your payload.
See below sample payload:
<soap:Envelope xmlns:soap=http://www.w3.org/2003/05/soap-envelope xmlns:glob=http://sap.com/xi/SAPGlobal20/Global xmlns:a3w=http://sap.com/xi/AP/CustomerExtension/BYD/A3WHX>
<soap:Header/>
<soap:Body>
<glob:CalculatePricesRequest_sync>
<CalculatePricesRequest>
<Application>2</Application>
<CurrencyCode>EUR</CurrencyCode>
<AccountID>C006427</AccountID>
<SalesOrganisationID>ESTEU</SalesOrganisationID>
<DistributionChannel>Z3</DistributionChannel>
<CompanyID>EST00</CompanyID>
<Item>
<ID>4</ID>
<ProductID>M50031</ProductID>
<ProductTypeCode>1</ProductTypeCode>
<Quantity unitCode="EA">1</Quantity>
<QuantityTypeCode>EA</QuantityTypeCode>
</Item>
</CalculatePricesRequest>
</glob:CalculatePricesRequest_sync>
</soap:Body>
</soap:Envelope>
See Also
Keywords
Customer Group Specific Price List; CalculatePriceIn, web service, webservice, API, missing; List Price; wrong; , KBA , AP-PMD-SPL , Sales Price List , Problem
SAP Knowledge Base Article - Public