|Description||Manage Sales Price Lists|
|Process Component Description||Price Master Data Management|
|Process Component Name||PriceMasterDataManagement|
|Process Component Namespace||http://sap.com/xi/AP/FO/PriceAndTax/Global|
|Deployment Unit Description||Foundation|
|Endpoint Activation||By Scoping of Process Component||Operations|
An interface to create or update sales price lists and sales discount lists from a source system or file.
The Web service interface Manage Sales Price List In enables you to connect external applications to your SAP Business ByDesign system and to create and edit sales price lists and sales discount lists in your system.
The term "sales price list" will be used in this documentation to refer to both sales price lists and sales discount lists.
The Web service interface Manage Sales Price List In offers the operations Maintain Bundle and Check Maintain Bundle.
Here is an example of a simple Web service request:
<n0:SalesPriceListBundleMaintainRequest_sync xmlns:n0="http://sap.com/xi/SAPGlobal20/Global"> <BasicMessageHeader> <ID>MSG1</ID> </BasicMessageHeader> <SalesPriceList ActionCode="01"> <ObjectNodeSenderTechnicalID>TECHID1</ObjectNodeSenderTechnicalID> <TypeCode>7PL0</TypeCode> <ID>SPLID1</ID> <Description languageCode="EN">Customer Group Specific Price List </Description> <StartDate>2013-01-01</StartDate> <EndDate>2013-12-31</EndDate> <CurrencyCode>EUR</CurrencyCode> <SalesOrgID>MC42200</SalesOrgID> <DistributionChannelCode>01</DistributionChannelCode> <CustomerGroupCode>02</CustomerGroupCode> <PriceSpecification> <TypeCode>7PR1</TypeCode> <Amount currencyCode="EUR">200.00</Amount> <BaseQuantity unitCode="EA">1</BaseQuantity> <BaseQuantityTypeCode>EA</BaseQuantityTypeCode> <ProductID>MCA-0001</ProductID> <ProductTypeCode>1</ProductTypeCode> </PriceSpecification> </SalesPriceList> </n0:SalesPriceListBundleMaintainRequest_sync>
It would create a single price list with ID SPLID1 and currency EUR valid throughout 2013 for a certain combination of sales organization, distribution chnannel and customer group containing a single price of 200 EUR for 1 ea of material MCA-0001.
The following master data is only referenced and will not be created by the service operations. They must exist in the system when the Web service is called:
Products and Product Categories
Product Requirement Specifications
The Web service interface operations support action codes '01' and '04' only. Other action codes will not be accepted.
You can find general information about Web services, their structure and consumption in the Web Services documentation.
Possible scenarios include the following:
Create sales price lists / sales discount lists
Update sales price lists / sales discount lists
It is not possible to delete a sales price list / sales discount list. It is only possible to change the validity period of a price list in such a way that the prices or discounts are not determined after a certain point in time.
|Description||Maintain sales price lists|
To create and update sales price lists or sales discount lists.
The request message of the operation Maintain Bundle contains a BasicMessageHeader node element as well as a SalesPriceList node element that contains the sales price list or sales discount list data to be created or updated. The detailed structure of the SalesPriceList node will be explained in the following sub-chapters. The SalesPriceList node can occur multiple times in the request message – this means that multiple sales price lists can be created or updated through a single Web service request.
The response message type of the operation Maintain Bundle contains log items and a sales-price-list-specific node.
The SalesPriceList node has four different sets of elements:
Sales price list header elements
A set of elements describing the relevance of the sales price list, that is, the context in which the sales price list is applicable
Subnodes carrying price specification, attachment folder and text collection data
The technical elements are SenderTechnicalID and ChangeStateID.
Sales price list header elements are TypeCode, ID, StartDate, EndDate, CurrencyCode and a node for language-dependent sales price list descriptions. Element ID will be used to identify sales price lists that are supposed to be updated. If a sales price list creation is requested (action code '01') but the sales price list with the ID provided already exists in the system, then the request for this sales price list will be ignored, and the response will contain an appropriate error message in the log item section.
Elements AccountID to BusinessTransactionDocumentCurrencyCode and all customer extension fields are the elements that describe the context in which a sales price list is applicable.
Only a subset of these elements needs to be filled. Furthermore, the selection of such a subset is important since the Web service implementation will derive the target storage location in the context of the type of price list or the type of price specification.
Here is an example for price specifications:
The standard pricing procedure for SAP Business ByDesign contains a surcharge in percent. Technically, this surcharge is identified by a price specification type 7PR2. In order to automatically determine surcharges, this price specification type points to an access sequence where different combinations of elements are evaluated to check if surcharges have been maintained for a specific combination of elements.
At first, the system checks if there is a surcharge for a combination of sales organization, distribution channel, account, and product category. Then a combination of sales organization, distribution channel, customer group, and product category is being evaluated. Finally, the system checks for sales organization, distribution channel, and product category.
Each of these combinations requires a different storage location (pricing table). Hence, when the Web service requests the creation of surcharges of type 7PR2, the system needs to determine for which combination of elements the surcharge is supposed to be created.
If you want to create a surcharge for sales organization, distribution channel, and product category, your request needs to contain these and only these three pieces of information as tags in the XML. If you added the tag AccountID, the system would try to create a surcharge for the first combination of attributes. It would reject the creation if the AccountID tag is empty.
For sales price lists, this explanation is valid for both the context of the price list itself as well as the price specifications inside the price list.
The PriceSpecification node has three different sets of elements:
Main price specification data
A set of elements describing the relevance of the price specification, that is, the context in which the price specification is applicable
A subnode to carry scale line information
The main information of a price specification is its TypeCode, an amount (element Amount), or a percentage (element Percent). Either Amount needs to be filled or Percent depending on the configuration represented by the TypeCode. BaseQuantity and BaseQuantityTypeCode become relevant if the price or discount is defined for a certain quantity.
Elements AccountID to ProcessingTypeCode are the elements that describe the context in which the price specification is applicable. Their usage follows the same rules as described for node SalesPriceList.
In the PriceSpecification node, these elements are used to identify price specification instances. For example, if a sales price list contains product-dependent price specifications, the element ProductID identifies the price specification. When a value 'MCA-0001' is supplied in element ProductID, the system tries to find a price specification with that property in the sales price list that is supposed to be updated.
If no price specification is found for a combination of values for these elements, the system will create an appropriate record.
Scale lines are identified by their axis. Currently, two-dimensional scales are supported. Therefore, either element FirstDimensionScaleAxisStep needs to be filled or both FirstDimensionScaleAxisStep and SecondDimensionScaleAxisStep are required.
The elements that need to be filled inside FirstDimensionScaleAxisStep or SecondDimensionScaleAxisStep depend on the configuration of the price specification type.
The elements Amount, BaseQuantity, BaseQuantityTypeCode and Percent are handled as described for the price specification data.
The values of the elements Amount, BaseQuantity, BaseQuantityTypeCode and Percent of the first scale line need to be equal to values of these elements in the price specification itself.
If a price specification is updated all scale lines will be deleted, and new scales lines are created based on the data in the Web service request. It is not possible to update single scale lines.
If a sales price list is supposed to be updated, the following elements must not be changed in node SalesPriceList:
Elements describing the relevance of the sales price list (see above)
These elements either must not be supplied in the web service request or must contain the same value as in the sales price list that is already stored in the system.
If a price specification inside a sales price list is supposed to be updated, the following elements must not be changed in node PriceSpecification:
Attribute CurrencyCode of element Amount
Attribute UnitCode of element BaseQuantity
While CurrencyCode is a property of a sales price list, the element BusinessTransactionDocumentCurrencyCode is part of the attributes that describe the context of the sales price list. The latter element must only be supplied if the document currency is part of the context. If it is, the value of the BusinessTransactionDocumentCurrencyCode must be equal to the value of CurrencyCode.
If a product needs to be specified, the Web service request supports the identification by internal product IDs only. Therefore, the ProductID and the ProductTypeCode identify a product uniquely. If no ProductTypeCode is supplied, the service implementation will check if there is a unique product of type material with the given ProductID. If yes, this material will be used. Otherwise, the request will be rejected.
The system not only creates or updates the sales price lists. It also tries to release them without any approval process. If the release fails for a specific sales price list, the system will also roll back the requested changes.
|Description||Check sales price lists|
To check if sales price lists and sales discount lists can be created or updated without errors.
The Web service request and response message types for the Check Maintain Bundle operation are the same as those of the Maintain Bundle operation. The explanations given can therefore also be applied to the Check Maintain Bundle operation.