Description | Manage Sales Kit Definitions |
Name | ManageSalesKitDefinitionIn |
Namespace | http://sap.com/xi/A1S/Global |
Process Component Description | Product Data Maintenance |
Process Component Name | ProductDataMaintenance |
Process Component Namespace | http://sap.com/xi/AP/FO/Product/Global |
Deployment Unit Description | Foundation |
Endpoint Activation | By Scoping of Process Component | Operations |
Release Status | Not Released |
An interface to create and update sales kit item list base on existing sales kit.
The web-service interface Manage Sales Kit Definition is used to maintain sales kit item lists in system. It allows user to mass upload sales kit item lists instead of manually creating from webpage.
The web-service interface Manage Sales Kit Definition offers the operation MAINTAIN_BUNDLE.
The input data such as sales kit ID and product ID in the request message must be available in system.
The quantity of sales kit item is always set to 1 by system after mass creation. User needs to call this webserivce again to update the item quantity to expected value.
The Maintain Bundle operation enables external applications to create business document data.
The Maintain Bundle operation is a mass-enabled stateless synchronous web service operation. Transferring or requesting amounts of data that are too large causes communication timeouts. The web service consumer is responsible for ensuring reasonable sizes of data for mass operations.
The Maintain Bundle operation supports exactly one execution (idem potency). To ensure exactly one execution of web service requests, the web service consumer has to provide unique values for the elements ID or UUID of the BasicMessageHeader node element.
Using the change state identifier (element name ChangeStateID), external applications can enforce that a modifying operation is not executed because the state of the business document has changed since the external application last read its data.
The change state ID is an un-interpretable string that is provided by query and read operations and can be utilized by all modifying operations. If the change state identifier is provided when calling a modifying operation, the system does not perform the operation if the state of the business document instance has changed since the change state ID was computed. If the change state ID is not provided by the web service consumer, the system performs the web service operation without checking the state of the business document.
The web service consumer (external application) is responsible for preventing accidental changes to business documents.
Request node elements with cardinality > 1 contain an object node sender technical identifier to relate response message elements and log items to corresponding node elements in the request message.
The object node sender technical identifiers are provided as ObjectNodeSenderTechnicalID in request message types and referred to as ReferenceObjectNodeSenderTechnicalID in corresponding response message types.
If the object node sender technical ID is initial, the object node sender technical ID of the parent node element in the request is returned as the reference object node sender technical ID. If the object node sender technical IDs of all parent node elements are initial, the reference object node sender technical ID is returned as initial as well.
Note: The values specified in the ObjectNodeSenderTechnicalID are transient values that establish the correspondence between elements for only a single call. The web service consumer is not required to specify them or to use the same values for different calls. Also, the service provider does not interpret these values at all, but returns them to the web service consumer instead in the ReferenceObjectNodeSenderTechnicalID elements.
Note: The ObjectNodeSenderTechnicalID is also used to identify failed business document modifications in a mass operation.
The structure of the response message consists of two parts:
A business document-specific part containing information about IDs and UUIDs of the created and changed business documents
Log items containing system messages including errors, warnings, and information messages raised by the system during processing of the web
Request of creation
Please note no matter what value put in ITEM_QUANTITY in below code, the created sales kit item quantity is always 1.
<n0:SalesKitDefinitionBundleMaintainRequest_sync xmlns:n0="http://sap.com/xi/SAPGlobal20/Global"> <BasicMessageHeader> <ID>1</ID> <UUID></UUID> <ReferenceID/> <ReferenceUUID/> </BasicMessageHeader> <SalesKitDefinition> <ObjectNodeSenderTechnicalID>1</ObjectNodeSenderTechnicalID> <ChangeStateID></ChangeStateID> <ActionCode>01</ActionCode> <ComponentsListCompleteTransmissionIndicator>true</ComponentsListCompleteTransmissionIndicator> <OutputMaterialKey> <ProductTypeCode>1</ProductTypeCode> <ProductIdentifierTypeCode>1</ProductIdentifierTypeCode> <ProductID><Content>SALES_KIT_ID</Content></ProductID> </OutputMaterialKey> <OutputMaterialQuantity unitCode="UNIT_CODE">1</OutputMaterialQuantity> <OutputMaterialTypeCode>UNIT_CODE</OutputMaterialTypeCode> <Description> <ActionCode>01</ActionCode> <ObjectNodeSenderTechnicalID>2</ObjectNodeSenderTechnicalID> <Description languageCode="EN">Sales Kit Item List Description</Description> </Description> <Components> <ObjectNodeSenderTechnicalID>3</ObjectNodeSenderTechnicalID> <ActionCode>01</ActionCode> <InputProductKey> <ProductTypeCode>1</ProductTypeCode> <ProductIdentifierTypeCode>1</ProductIdentifierTypeCode> <ProductID>PRODUCT_ID</ProductID> </InputProductKey> <InputProductQuantity unitCode="UNIT_CODE">ITEM_QUANTITY</InputProductQuantity> <InputProductQuantityTypeCode>UNIT_CODE</InputProductQuantityTypeCode> <InputProductBaseQuantity unitCode="">0</InputProductBaseQuantity> <InputProductBaseQuantityTypeCode></InputProductBaseQuantityTypeCode> <InputProductCorrelatedQuantity unitCode="">0</InputProductCorrelatedQuantity> <InputProductCorrelatedQuantityTypeCode></InputProductCorrelatedQuantityTypeCode> </Components> </SalesKitDefinition> </n0:SalesKitDefinitionBundleMaintainRequest_sync>
Request of updating
User needs to reset sales kit item quantity using updating. The value put into ITEM_QUANTITY in below code will be the updated item quantity.
<n0:SalesKitDefinitionBundleMaintainRequest_sync xmlns:n0="http://sap.com/xi/SAPGlobal20/Global"> <BasicMessageHeader> <ID>1</ID> <UUID></UUID> <ReferenceID/> <ReferenceUUID/> </BasicMessageHeader> <SalesKitDefinition> <ObjectNodeSenderTechnicalID>1</ObjectNodeSenderTechnicalID> <ChangeStateID></ChangeStateID> <ActionCode>02</ActionCode> <ComponentsListCompleteTransmissionIndicator>true</ComponentsListCompleteTransmissionIndicator> <OutputMaterialKey> <ProductTypeCode>1</ProductTypeCode> <ProductIdentifierTypeCode>1</ProductIdentifierTypeCode> <ProductID><Content>SALES_KIT_ID</Content></ProductID> </OutputMaterialKey> <OutputMaterialQuantity unitCode="UNIT_CODE">1</OutputMaterialQuantity> <OutputMaterialTypeCode>UNIT_CODE</OutputMaterialTypeCode> <Description> <ActionCode>02</ActionCode> <ObjectNodeSenderTechnicalID>2</ObjectNodeSenderTechnicalID> <Description languageCode="EN">Sales Kit Item List Description</Description> </Description> <Components> <ObjectNodeSenderTechnicalID>3</ObjectNodeSenderTechnicalID> <ActionCode>02</ActionCode> <InputProductKey> <ProductTypeCode>1</ProductTypeCode> <ProductIdentifierTypeCode>1</ProductIdentifierTypeCode> <ProductID>PRODUCT_ID</ProductID> </InputProductKey> <InputProductQuantity unitCode="UNIT_CODE">ITEM_QUANTITY</InputProductQuantity> <InputProductQuantityTypeCode>UNIT_CODE</InputProductQuantityTypeCode> <InputProductBaseQuantity unitCode="">0</InputProductBaseQuantity> <InputProductBaseQuantityTypeCode></InputProductBaseQuantityTypeCode> <InputProductCorrelatedQuantity unitCode="">0</InputProductCorrelatedQuantity> <InputProductCorrelatedQuantityTypeCode></InputProductCorrelatedQuantityTypeCode> </Components> </SalesKitDefinition> </n0:SalesKitDefinitionBundleMaintainRequest_sync>
Many external applications consuming web services have special requirements and restrictions regarding the format of WSDLs. Some external applications require service definition WSDLs describing the web service signature. This is normally sufficient for the creation of static client-side proxies. Other external applications, normally those that do not create static client-side proxies, require binding WSDLs including the endpoint definition and authentication policy information.
In both cases, it may be the case that the external application imposes special restrictions on the structure or the size of WSDLs.
Microsoft InfoPath requires binding WSDLs and considers elements with the attribute "minOccurs=0" as "mandatory". However "minOccurs=0" means "optional" in SAP web services. In order to circumvent this problem, the WSDL must be saved locally and an additional attribute "nillable=true" must be added to make a query parameter optional for Microsoft InfoPath.
For very small clients such as mobile devices, the size of the WSDL itself may become a problem. In most cases the client only requires a very small part of the signature, but due to the complexity of the WSDL they may end up with long runtimes during serialization of the request or deserialization of the response. In order to circumvent this problem, the WSDL must be saved locally and the optional parts of the signature have to be removed before the WSDL is imported or static client-side proxies are generated.
External applications have to take into account that web service request and response message types can be enhanced with additional elements and attributes. Enhancements can be created by SAP, SAP partners, and key users. Enhancements of request message types are always optional elements or attributes. The SAP system does not require the external application to provide values in the request. Enhancements of response message types can contain mandatory elements or attributes. The external application must be able to process the extended response successfully.
XML element and attribute names are always stable. Technical definitions of data types can be enhanced in a compatible way. This may result in changed data type names. External applications can rely on XML element names and attribute names, but should not rely on data type names.
Note: You can download the WSDL file for any web service here:
Application and User Management work center -> Input Output Management -> Communication Arrangement.
User Management work center -> Service Explorer view.
You can find the documentation of the global data types in the SAP Community Network: Go to http://scn.sap.com/docs/DOC-17516 and click View Document.
You can find general information about Web services, their structure and consumption in the Web Services documentation. Please open the Web Services document in a new window.
Description | Maintain sales kit fefinitions. |
Name | MaintainBundle |
Synchronous | yes |
Release Status | Released |
This operation is used to maintain one or more sales kit item list based on imported data structure.
The input data such as sales kit ID and product ID must be available in system.
Request
<n0:SalesKitDefinitionBundleMaintainRequest_sync xmlns:n0="http://sap.com/xi/SAPGlobal20/Global"> <BasicMessageHeader> <ID></ID> <UUID></UUID> <ReferenceID/> <ReferenceUUID/> </BasicMessageHeader> <SalesKitDefinition> <ObjectNodeSenderTechnicalID>1</ObjectNodeSenderTechnicalID> <ChangeStateID></ChangeStateID> <ActionCode>01</ActionCode> <ComponentsListCompleteTransmissionIndicator>true</ComponentsListCompleteTransmissionIndicator> <OutputMaterialKey> <ProductTypeCode>1</ProductTypeCode> <ProductIdentifierTypeCode>1</ProductIdentifierTypeCode> <ProductID><Content>SALES_KIT_ID</Content></ProductID> </OutputMaterialKey> <OutputMaterialQuantity unitCode="UNIT_CODE">1</OutputMaterialQuantity> <OutputMaterialTypeCode>UNIT_CODE</OutputMaterialTypeCode> <Description> <ActionCode>01</ActionCode> <ObjectNodeSenderTechnicalID>2</ObjectNodeSenderTechnicalID> <Description languageCode="EN">Sales Kit Item List Description</Description> </Description> <Components> <ObjectNodeSenderTechnicalID>3</ObjectNodeSenderTechnicalID> <ActionCode>01</ActionCode> <InputProductKey> <ProductTypeCode>1</ProductTypeCode> <ProductIdentifierTypeCode>1</ProductIdentifierTypeCode> <ProductID>PRODUCT_ID</ProductID> </InputProductKey> <InputProductQuantity unitCode="UNIT_CODE">QUANTITY</InputProductQuantity> <InputProductQuantityTypeCode>UNIT_CODE</InputProductQuantityTypeCode> <InputProductBaseQuantity unitCode="">0</InputProductBaseQuantity> <InputProductBaseQuantityTypeCode></InputProductBaseQuantityTypeCode> <InputProductCorrelatedQuantity unitCode="">0</InputProductCorrelatedQuantity> <InputProductCorrelatedQuantityTypeCode></InputProductCorrelatedQuantityTypeCode> </Components> </SalesKitDefinition> </n0:SalesKitDefinitionBundleMaintainRequest_sync>