| Description | Manage Materials |
| Name | ManageMaterialIn |
| 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 |
| Deploymnent Unit Description | Foundation |
| Endpoint Activation | By Scoping of Process Component | Operations |
| Release Status | Deprecated |
An interface to migrate material master data from a source system or file.
The web service interface Manage Material In enables you to connect external applications to your solution and to create and edit materials in your system. The web service interface Manage Material In is relevant if your company wants to access and manage material data from external applications.
The web service interface Manage Material In offers the operations MaintainBundle_V1 and CheckMaintainBundle_V1.
Example of a simple web service request, which creates a new material with an InternalID P100702 and a description "Wooden Pallet":
<n0:MaterialBundleMaintainRequest_sync_V1 xmlns:n0="http://sap.com/xi/SAPGlobal20/Global">
<BasicMessageHeader>
<ID>1234567890ABCDEF0123456789ABCDEF</ID>
</BasicMessageHeader>
<Material actionCode="01">
<InternalID>P100702</InternalID>
<ProductCategoryID>180</ProductCategoryID>
<BaseMeasureUnitCode>EA</BaseMeasureUnitCode>
<Description actionCode="01">
<Description languageCode="EN">Wooden Pallet</Description>
</Description>
</Material>
</n0:MaterialBundleMaintainRequest_sync_V1>
The following example response returns the InternalID and the UUID of the created material:
<nm:MaterialBundleMaintainConfirmation_sync_V1 xmlns:nm="http://sap.com/xi/SAPGlobal20/Global">
<Material>
<ReferenceObjectNodeSenderTechnicalID> </ReferenceObjectNodeSenderTechnicalID>
<ChangeStateID>20121121171202.6685390</ChangeStateID>
<InternalID>P100702</InternalID>
<UUID>00163e02-8b2e-1ee2-8cff-d21ff5b065e3</UUID>
</Material>
<Log/>
</nm:MaterialBundleMaintainConfirmation_sync_V1>
Existence of referenced business documents:
The following business documents are only referenced and will not be created by the service operations. They must already exist in the system at the time the web service is called:
Product Category Hierarchies
Organizational Management Data
Material Valuation Data
You can find general information about Web services, their structure and consumption in the Web Services documentation.
Possible scenarios include the following:
Create Materials
Operation MaintainBundle_V1 is used to create materials.
Update Materials
Operation MaintainBundle_V1 is used to update existing materials.
Example web service request:
<n0:MaterialBundleMaintainRequest_sync_V1 xmlns:n0="http://sap.com/xi/SAPGlobal20/Global"> <BasicMessageHeader> <ID>1234567890ABCDEF0123456789ABCDEF</ID> <UUID>12345678-90AB-CDEF-0123-456789ABCDEF</UUID> </BasicMessageHeader> <Material actionCode="01" descriptionListCompleteTransmissionIndicator="true" detailListCompleteTransmissionIndicator="true" quantityConversionListCompleteTransmissionIndicator="true" quantityCharacteristicListCompleteTransmissionIndicator="true" globalTradeItemNumberListCompleteTransmissionIndicator="true" salesListCompleteTransmissionIndicator="true" valuationListCompleteTransmissionIndicator="true" deviantTaxClassificationListCompleteTransmissionIndicator="true" withholdingTaxClassificationListCompleteTransmissionIndicator="true" supplierPartNumberListCompleteTransmissionIndicator="true" customerPartNumberListCompleteTransmissionIndicator="true"> <ObjectNodeSenderTechnicalID>001</ObjectNodeSenderTechnicalID> <!-- ChangeStateID is only relevant for changing <ChangeStateID>20101201082957.5189460</ChangeStateID> --> <!-- The UUID cannot be changed <UUID>12345678-90AB-CDEF-0123-456789ABCDEF</UUID> --> <InternalID>P100702</InternalID> <ProductCategoryID>180</ProductCategoryID> <IdentifiedStockTypeCode>03</IdentifiedStockTypeCode> <!-- 03 means "Optional Specified Stock" --> <BaseMeasureUnitCode>EA</BaseMeasureUnitCode> <InventoryValuationMeasureUnitCode>EA</InventoryValuationMeasureUnitCode> <!-- Create language dependent descriptions --> <Description actionCode="01"> <ObjectNodeSenderTechnicalID>002</ObjectNodeSenderTechnicalID> <Description languageCode="EN">Wooden Pallet (1200mmx1000mm)</Description> </Description> <!-- Create language dependent detailed descriptions --> <Detail actionCode="01"> <ObjectNodeSenderTechnicalID>003</ObjectNodeSenderTechnicalID> <ContentText languageCode="EN">Wooden Pallet (1200mmx1000mm)</ContentText> </Detail> <!-- Specify the equivalent measurement of one unit to another --> <QuantityConversion actionCode="01"> <ObjectNodeSenderTechnicalID>004</ObjectNodeSenderTechnicalID> <Quantity unitCode="EA">1</Quantity> <CorrespondingQuantity unitCode="KGM">14</CorrespondingQuantity> </QuantityConversion> <!-- Specify characteristics like the net weight or gross weight for each unit of measure --> <QuantityCharacteristic actionCode="01"> <ObjectNodeSenderTechnicalID>005</ObjectNodeSenderTechnicalID> <QuantityMeasureUnitCode>EA</QuantityMeasureUnitCode> <CharacteristicQuantity unitCode="GRM">10</CharacteristicQuantity> <CharacteristicQuantityTypeCode>NET_WT</CharacteristicQuantityTypeCode> <!-- NET_WT means "Net Weight" --> </QuantityCharacteristic> <QuantityCharacteristic actionCode="01"> <ObjectNodeSenderTechnicalID>006</ObjectNodeSenderTechnicalID> <QuantityMeasureUnitCode>EA</QuantityMeasureUnitCode> <CharacteristicQuantity unitCode="GRM">20</CharacteristicQuantity> <CharacteristicQuantityTypeCode>GROSS_WT</CharacteristicQuantityTypeCode> <!-- GROSS_WT means "Gross Weight" --> </QuantityCharacteristic> <!-- Specify GTIN for trading unit codes --> <GlobalTradeItemNumber actionCode="01"> <ObjectNodeSenderTechnicalID>007</ObjectNodeSenderTechnicalID> <TradingUnitCode>EA</TradingUnitCode> <GlobalTradeID>76457333</GlobalTradeID> <!-- The GTIN must conform to the standards defined at http://www.gs1.org --> </GlobalTradeItemNumber> <!-- Create purchasing information --> <Purchasing actionCode="01" internalNoteListCompleteTransmissionIndicator="true" purchasingNoteListCompleteTransmissionIndicator="true"> <ObjectNodeSenderTechnicalID>008</ObjectNodeSenderTechnicalID> <LifeCycleStatusCode>1</LifeCycleStatusCode> <!-- 1 means "In Preparation" --> <PurchasingMeasureUnitCode>EA</PurchasingMeasureUnitCode> <InternalNote> <ObjectNodeSenderTechnicalID>009</ObjectNodeSenderTechnicalID> <ContentText>Internal Purchase Note</ContentText> </InternalNote> <PurchasingNote actionCode="01"> <ObjectNodeSenderTechnicalID>010</ObjectNodeSenderTechnicalID> <ContentText languageCode="EN">External Purchase Note</ContentText> </PurchasingNote> </Purchasing> <!-- Specify information regarding sales processes --> <Sales actionCode="01" warrantyListCompleteTransmissionIndicator="true" internalNoteListCompleteTransmissionIndicator="true" salesNoteListCompleteTransmissionIndicator="true"> <ObjectNodeSenderTechnicalID>014</ObjectNodeSenderTechnicalID> <SalesOrganisationID>P1110</SalesOrganisationID> <DistributionChannelCode>01</DistributionChannelCode> <!-- 01 means "Direct sales" --> <LifeCycleStatusCode>1</LifeCycleStatusCode> <!-- 1 means "In Preparation" --> <SalesMeasureUnitCode>EA</SalesMeasureUnitCode> <MinimumOrderQuantityValue>1</MinimumOrderQuantityValue> <ItemGroupCode>NORM</ItemGroupCode> <!-- NORM means "Product - delivery-based" --> <CashDiscountDeductibleIndicator>true</CashDiscountDeductibleIndicator> <ReferencePriceMaterialInternalID>10000230</ReferencePriceMaterialInternalID> <Warranty actionCode="01"> <ObjectNodeSenderTechnicalID>015</ObjectNodeSenderTechnicalID> <ProductInternalID>P100702</ProductInternalID> <ValidityPeriod> <StartDate>2012-01-24</StartDate> <EndDate>9999-01-24</EndDate> </ValidityPeriod> </Warranty> <InternalNote> <ObjectNodeSenderTechnicalID>016</ObjectNodeSenderTechnicalID> <ContentText>Internal Comments</ContentText> </InternalNote> <SalesNote actionCode="01"> <ObjectNodeSenderTechnicalID>017</ObjectNodeSenderTechnicalID> <ContentText languageCode="EN">Sales Note</ContentText> </SalesNote> </Sales> <!-- Create tax information which differs from the default taxes --> <DeviantTaxClassification actionCode="01"> <ObjectNodeSenderTechnicalID>019</ObjectNodeSenderTechnicalID> <CountryCode>DE</CountryCode> <RegionCode>03</RegionCode> <TaxTypeCode listID="">1</TaxTypeCode> <!-- 1 means "Value Added Tax" for the given country --> <TaxRateTypeCode listID="">2</TaxRateTypeCode> <!-- 2 means "Reduced" for the given country --> <TaxExemptionReasonCode listID="AT1||2|1">1</TaxExemptionReasonCode> <!-- 1 means "Tax Exempt According to ยง4, 2 - 6 UStG" for the given country. tax type and tax rate --> </DeviantTaxClassification> <!-- Withholding tax classifications are only relevant for purchasing processes --> <WithholdingTaxClassification actionCode="01"> <ObjectNodeSenderTechnicalID>020</ObjectNodeSenderTechnicalID> <CountryCode>CN</CountryCode> <TaxTypeCode listID="">2</TaxTypeCode> <!-- 2 means "Business Withholding Tax" for the given country --> <WithholdingTaxIncomeTypeCode>1</WithholdingTaxIncomeTypeCode> <!-- 1 means "Transportation" for the given country and tax type --> </WithholdingTaxClassification> <!-- Material valuation can be defined for a specific company/business residence combination --> <Valuation actionCode="01"> <ObjectNodeSenderTechnicalID>021</ObjectNodeSenderTechnicalID> <LifeCycleStatusCode>1</LifeCycleStatusCode> <!-- 1 means "In Preparation" --> <CompanyID>1000</CompanyID> <BusinessResidenceID>P1100</BusinessResidenceID> </Valuation> <!-- Maintain customer part numbers --> <CustomerPartNumber actionCode="01"> <ObjectNodeSenderTechnicalID>022</ObjectNodeSenderTechnicalID> <CustomerInternalID>CP100110</CustomerInternalID> <ProductCustomerID>CP100110-P100702</ProductCustomerID> </CustomerPartNumber> <!-- Maintain supplier part numbers used within purchasing processes --> <SupplierPartNumber actionCode="01"> <ObjectNodeSenderTechnicalID>023</ObjectNodeSenderTechnicalID> <SupplierInternalID>S100402</SupplierInternalID> <ProductSupplierID>S100402-M1</ProductSupplierID> <SupplierLeadTimeDuration>P10D</SupplierLeadTimeDuration> </SupplierPartNumber> <!-- Maintain material attachments like documents, images, links... --> <AttachmentFolder DocumentListCompleteTransmissionIndicator="true" ActionCode="01"> <!-- Link attachment --> <Document ActionCode="01"> <VisibleIndicator>true</VisibleIndicator> <CategoryCode>3</CategoryCode> <TypeCode>10001</TypeCode> <Name>SAP AG</Name> <AlternativeName>SAP AG Homepage</AlternativeName> <Description languageCode="EN">Hyperlink to SAP AG</Description> <ExternalLinkWebURI>http://www.sap.com/</ExternalLinkWebURI> </Document> <!-- File attachment --> <Document ActionCode="01"> <LinkInternalIndicator>true</LinkInternalIndicator> <VisibleIndicator>true</VisibleIndicator> <CategoryCode>2</CategoryCode> <TypeCode>10011</TypeCode> <MIMECode>image/jpg</MIMECode> <Name>Image</Name> <AlternativeName>Material Image</AlternativeName> <Description languageCode="EN">Image of the material</Description> <FileContent ActionCode="01"> <BinaryObject mimeCode="image/png" characterSetCode="" format="" fileName="" uri="">AQIDBAUGBwgJAA==</BinaryObject> </FileContent> </Document> </AttachmentFolder> <n1:IndiaCostAuditingManufacteredProductIndicator xmlns:n1="http://sap.com/xi/AP/Globalization">true</n1:IndiaCostAuditingManufacteredProductIndicator> <n1:IndiaCostAuditingTradedProductIndicator xmlns:n1="http://sap.com/xi/AP/Globalization">true</n1:IndiaCostAuditingTradedProductIndicator> <n1:IndiaMaterialTypeCode xmlns:n1="http://sap.com/xi/AP/Globalization">1</n1:IndiaMaterialTypeCode> </Material> </n0:MaterialBundleMaintainRequest_sync_V1>
| Description | Check materials |
| Name | CheckMaintainBundle_V1 |
| Synchronous | yes |
| Release Status | Deprecated |
To check if material master data can be created, updated, or deleted without errors.
The web service request and response message types of the CheckMaintainBundle_V1 operation are the same as those of the MaintainBundle_V1 operation.
The explanations given can therefore also be applied to the CheckMaintainBundle_V1 operation.
| Description | Maintain materials |
| Name | MaintainBundle_V1 |
| Synchronous | yes |
| Release Status | Deprecated |
To create, update, or delete material master data.
The request message of the operation MaintainBundle_V1 contains a BasicMessageHeader node element as well as a Material node element that contains the material data to be created or updated. The detailed structure of the material node will be explained in the following sub-chapters. The material node can occur multiple times in the request message meaning that multiple materials can be created and updated by a single web service request.
The response message of the operation MaintainBundle_V1 contains log items, processing information and a material-specific node with ReferenceObjectNodeSenderTechnicalID, ChangeStateID, as well as material InternalID and material UUID.
The Material node element contains all basic information about the material such as ID, product category, and base unit of measure. These fields can be found in the material UI as General data. The InternalID element corresponds to the Material ID on the user interface - the UUID element is not visible on the UI, but can be retrieved via query and read web services.
Fields that are shared between several processes are also found on this level, for example, the InventoryValuationMeasureUnitCode, which is used in the logistics and financials processes.
Note: The material UUID is read-only and cannot be set by an external application when creating materials.
A language-dependent description can be maintained with the Description node element.
Example
<Description actionCode="01"> <Description languageCode="EN">A sample description</Description> </Description>
A language-dependent detailed description can be maintained with the Details node.
Example
<Detail actionCode="01"> <ContentText languageCode="EN"> A detailed description of the product </ContentText> </Detail>
Materials support quantity conversion between different units of measure. For example, if the base unit of measure is handled in "Each" but sold as "Boxes", then a conversion rule between these units is needed, as the following example shows.
Note: EA corresponds to Each and XBX to Box.
Example:
<QuantityConversion actionCode="01"> <Quantity unitCode="EA">10</Quantity> <CorrespondingQuantity unitCode="XBX">100</CorrespondingQuantity> </QuantityConversion>
Materials support quantity characteristics specifying, for example, the net weight or gross weight for each unit of measure.
In the following example, the net weight (12 kg) and the gross weight (13 kg) are specified.
Example
<QuantityCharacteristic actionCode="01"> <QuantityMeasureUnitCode>EA</QuantityMeasureUnitCode> <CharacteristicQuantity unitCode="KGM">12</CharacteristicQuantity> <CharacteristicQuantityTypeCode>NET_WT</CharacteristicQuantityTypeCode> </QuantityCharacteristic> <QuantityCharacteristic actionCode="01"> <QuantityMeasureUnitCode>EA</QuantityMeasureUnitCode> <CharacteristicQuantity unitCode="KGM">13</CharacteristicQuantity> <CharacteristicQuantityTypeCode>GROSS_WT</CharacteristicQuantityTypeCode> </QuantityCharacteristic>
Quantity type codes:
| Quantity type code | Description |
|---|---|
| NET_WT | Net Weight |
| GROSS_WT | Gross Weight |
| NET_VOL | Net Volume |
| GROSS_VOL | Gross Volume |
| DIM_LENGTH | Length |
| BREADTH | Width |
| HEIGHT | Height |
GTINs as EAN are supported for all trading unit codes. For example, this includes units as "Each" and "Boxes" but not physical units such as "KGM".
The GTIN must conform to the standards defined in http://www.gs1.org/.
Example:
<GlobalTradeItemNumber actionCode="01"> <TradingUnitCode>EA</TradingUnitCode> <GlobalTradeID>#GTIN8</GlobalTradeID> </GlobalTradeItemNumber>
The Purchasing node element is organization independent. Therefore, there can be just one Purchasing node within one material.
Purchasing information contains the PurchasingMeasureUnitCode, LifecycleStatusCode, and the purchasing text.
Example:
<Purchasing actionCode="01"> <LifeCycleStatusCode>2</LifeCycleStatusCode> <PurchasingMeasureUnitCode>EA</PurchasingMeasureUnitCode> <PurchasingNote actionCode="01"> <ContentText languageCode="EN">Purchase Note</ContentText> </PurchasingNote> </Purchasing>
The material valuation can be defined for a specific company/business residence combination. The financial data cannot be activated unless the material valuation data has been maintained in the system.
Example:
<Valuation actionCode="01"> <LifeCycleStatusCode>1</LifeCycleStatusCode> <CompanyID>1000</CompanyID> <BusinessResidenceID>P1100</BusinessResidenceID> </Valuation>
The Sales node contains all information regarding sales processes. Each sales process is defined by the SalesOrganisationID and the DistributionChannelCode, which can be either Direct sales (01) or Indirect sales (02).
Furthermore, the LifeCycleStatusCode can be either In Preparation (1) or Active (2). The status must be set to Active to use the entitlement product in sales processes.
Warranties and sales notes can also be defined for each sales process definition.
The ItemGroupCode can contain the following values:
| Item Group Code | Description |
|---|---|
| CONS | Spare part - consumable |
| NORM | Product - delivery-based |
| PICK | Spare part (engineer pick-up/sales) |
| SHIP | Spare part (advanced ship/sales) |
Example
<Sales actionCode="01"> <SalesOrganisationID>P1110</SalesOrganisationID> <DistributionChannelCode>01</DistributionChannelCode> <!-- 01 means "Direct sales" --> <LifeCycleStatusCode>1</LifeCycleStatusCode> <!-- 1 means "In Preparation" --> <SalesMeasureUnitCode>EA</SalesMeasureUnitCode> <MinimumOrderQuantityValue>1</MinimumOrderQuantityValue> <ItemGroupCode>NORM</ItemGroupCode> <!-- NORM means "Product - delivery-based" --> <CashDiscountDeductibleIndicator>true</CashDiscountDeductibleIndicator> <ReferencePriceMaterialInternalID> 10000230 </ReferencePriceMaterialInternalID> <Warranty actionCode="01"> <ProductInternalID>P100702</ProductInternalID> <ValidityPeriod> <StartDate>2012-01-24</StartDate> <EndDate>9999-01-24</EndDate> </ValidityPeriod> </Warranty> <InternalNote> <ContentText>Internal Comments</ContentText> </InternalNote> <SalesNote actionCode="01"> <ContentText languageCode="EN">Sales Note</ContentText> </SalesNote> </Sales>
The DeviantTaxClassification node contains tax information that differs from the default taxes. They are used for sales processes and can be found on the UI as Sales.
The listID attribute of the TaxTypeCode and TaxRateTypeCode elements is mandatory. However, the attribute value is not processed and the attribute might be removed in a future release of this web service.
Note: Tax Codes are dependent on the country and region.
Example
<DeviantTaxClassification actionCode="01"> <CountryCode>DE</CountryCode> <RegionCode>03</RegionCode> <TaxTypeCode listID="">1</TaxTypeCode> <TaxRateTypeCode listID="">2</TaxRateTypeCode> <TaxExemptionReasonCode listID="">1</TaxExemptionReasonCode> </DeviantTaxClassification>
Withholding tax classifications are only relevant for purchasing processes. They are maintained similarly to the deviant taxes explained above.
Example
<WithholdingTaxClassification actionCode="01"> <CountryCode>CN</CountryCode> <TaxTypeCode listID="">2</TaxTypeCode> <WithholdingTaxIncomeTypeCode>1</WithholdingTaxIncomeTypeCode> </WithholdingTaxClassification>
The CustomerPartNumber node element can be used to create and change customer part numbers.
The CustomerInternalID identifies an account. The ProductCustomerID contains the customer part number.
Data of this node can be found as part of the Sales data on the material UI.
Example:
<CustomerPartNumber actionCode="01"> <CustomerInternalID>CP100110</CustomerInternalID> <ProductCustomerID>CP100110-P100702</ProductCustomerID> </CustomerPartNumber>
The SupplierPartNumber node element can be used to create and change supplier part numbers that are used within purchasing processes.
The SupplierInternalID identifies a supplier. The ProductSupplierID contains the supplier part number.
Example
<SupplierPartNumber actionCode="01"> <SupplierInternalID>S100402</SupplierInternalID> <ProductSupplierID>S100402-M1</ProductSupplierID> <SupplierLeadTimeDuration>P10D</SupplierLeadTimeDuration> </SupplierPartNumber>
The AttachmentFolder node element can be used to add and remove material attachments.
Data for this node can be found on the material UI as Attachments. On the user interface, Files and Links can be created. In the web service request, links and files are differentiated through the CategoryCode:
| Category code | Description |
|---|---|
| 1 | Folder |
| 2 | Document |
| 3 | Link |
The different types of attachments are differentiated by the TypeCode:
| Type code | Description |
|---|---|
| 10001 | Standard Attachment |
| 10011 | Product Image |
| 10015 | Technical Drawing |
| 10018 | Product Specification |
| 10043 | Details for Supplier |
Example
<AttachmentFolder ActionCode="04"> <Document ActionCode="04"> <VisibleIndicator>true</VisibleIndicator> <CategoryCode>3</CategoryCode> <TypeCode>10001</TypeCode> <Name>SAP AG Link</Name> <ExternalLinkWebURI>http://www.sap.com</ExternalLinkWebURI> <AlternativeName>SAP AG URL</AlternativeName> <Description languageCode="EN">A hyperlink to SAP AG</Description> </Document> </AttachmentFolder>
Show full documentation