Requirement For Variant Generation in
Requirement For Variant Generation in
Short Description:
in the business logic we create and update variant by sending the base product from the soap service
(“ProductMDMBulkReplicateRequest_In”).
Beside that, we have to extend the ProductMDMBulkReplicateRequest_In service with the table
structure ZVariations in the Product Node level.
Technical Information:
II_MDM_PRD_BULK_REP_REQ
Package: APPL_MD_PRODUCT_INTEGRATION
Interface: IF_MDM_SE_PRD_BULK_REP_REQ
Assumption:
Before we start, we have to ensure that the Z Table structure for the variant additional information
are implemented and filed out for the basis product replication in.
The logic should only work for the RetailProductCategoryCode 1 (Base Product) and not for other
categoryCodes. => pre checking needed
Structure definition:
Color: Char(70)
Size: Char(70)
RetailDescription: String
ColorCancelled: boolean
MustHaveColor: boolean
SizeCancelled: Boolean
Business Logic:
In ZVariantAssignment the combination of Z_M004 and Z_M003 are unique, therefore you can
iterate over this node for the variant generation/updating.
The ID generation based on a sequence range 001-999 within the base product the number are
unique. Therefore before adding a new range it should be checked
May we can check if we can use the standard generation function module for variants( 1 PT )
In the context of updating specific variant information you can use the current message for the base
product and change the details for the appropriated variant.
Additional information regarding the single variant should be readed from the table structure
ZVariantAssignment, with the unique char value grid assignment.
Error Handling:
The result of the outbound is the product confirmation, we should intercept an exception regarding
the variant creation/updating and work in the loging class from the product confirmation in order to
commit the error to the sender system.
<?xml version="1.0"?>
1 <soap-env:Envelope xmlns:soap-
env="http://schemas.xmlsoap.org/soap/envelope/">
2 <soap-env:Header>
</soap-env:Header>
<soap-env:Body>
3
<ns0:ProductMDMBulkReplicateRequestMessage
xmlns:ns0="http://sap.com/xi/SAPGlobal20/Global">
4 <MessageHeader>
<CreationDateTime>2022-05-
5 24T07:02:51Z</CreationDateTime>
6 <SenderBusinessSystemID>PODCLNT100</SenderBusinessSystemID>
7 <RecipientBusinessSystemID>S4DCLNT100</RecipientBusinessSystemID>
</MessageHeader>
<ProductMDMReplicateRequestMessage>
8
<MessageHeader>
<CreationDateTime>2022-05-
9 24T07:02:51Z</CreationDateTime>
10 <SenderBusinessSystemID>PODCLNT100</SenderBusinessSystemID>
11 <RecipientBusinessSystemID>S4DCLNT100</RecipientBusinessSystemID>
</MessageHeader>
12 <Product
salesSpecificationListCompleteTransmissionIndicator="true"
13 plantListCompleteTransmissionIndicator="true"
valuationAreaListCompleteTransmissionIndicator="true"
descriptionListCompleteTransmissionIndicator="true"
14 globalTradeItemNumberListCompleteTransmissionIndicator="true"
productCategoryAssignmentListCompleteTransmissionIndicator="false"
15 quantityConversionListCompleteTransmissionIndicator="true"
quantityCharacteristicListCompleteTransmissionIndicator="true"
16 plantIndependentProcurementSpecificationListCompleteTransmissionIndicat
or="true" productBOMCompleteTransmissionIndicator="false"
17 reconciliationPeriodCounterValue="1">
18 <ProductInternalID>50000000091000133</ProductInternalID>
<ReceiverProductInternalID>REFZZZZZZZ25</ReceiverProductInternalID>
19
<ProductTypeCode>ZFAS</ProductTypeCode>
<IndustrySectorCode>1</IndustrySectorCode>
20
<RetailProductCategoryCode>01</RetailProductCategoryCode>
21 <DivisionCode>01</DivisionCode>
<DeletedIndicator>false</DeletedIndicator>
22 <LockedIndicator>false</LockedIndicator>
23 <QualityManagementInProcurementIsActiveIndicator>false</QualityManageme
ntInProcurementIsActiveIndicator>
24
<ProductGroupInternalID>101021012</ProductGroupInternalID>
<BaseMeasureUnitCode>PCE</BaseMeasureUnitCode>
25
<ProductSalesProcessUsabilityProfileCode>10</ProductSalesProcessUsabili
26 tyProfileCode>
27 <BatchManagementRequiredIndicator>false</BatchManagementRequiredIndicat
or>
28
<ComputerAidedDesignMaintainedIndicator>false</ComputerAidedDesignMaint
ainedIndicator>
29
<BasicViewMaintainedIndicator>true</BasicViewMaintainedIndicator>
30
<ConfigurableProductDeterminedIndicator>true</ConfigurableProductDeterm
31 inedIndicator>
<ItemCategoryGroupCode>NORM</ItemCategoryGroupCode>
32 <RetailArticleGeneral>
33 <AccountDeterminationProductValuationDataGroupCode>Z310</AccountDetermi
nationProductValuationDataGroupCode>
34 <LoadingGroupCode>Z006</LoadingGroupCode>
<ProductExternalAssortmentPriorityTypeCode></ProductExternalAssortmentP
35 riorityTypeCode>
</RetailArticleGeneral>
36 <Description actionCode="04">
<Description languageCode="de">Demo Product
37 DE</Description>
</Description>
38 <QuantityConversion actionCode="04">
<Quantity unitCode="PCE">1.0</Quantity>
39 <CorrespondingQuantity
unitCode="PCE">1.0</CorrespondingQuantity>
</QuantityConversion>
40
<Classification>
<ChangeNumber></ChangeNumber>
41 <ClassAssignment
classAssignmentListCompleteTransmissionIndicator="true">
42 <ClassType>300</ClassType>
<ClassAssignment actionCode="04">
43 <Class>Z_VC003</Class>
<ClfnStatus>1</ClfnStatus>
44 <StdClass>false</StdClass>
</ClassAssignment>
</ClassAssignment>
45
<ClassAssignment
classAssignmentListCompleteTransmissionIndicator="true">
46 <ClassType>026</ClassType>
<ClassAssignment actionCode="04">
47 <Class>Z_VC003</Class>
<ClfnStatus>1</ClfnStatus>
48 <StdClass>false</StdClass>
</ClassAssignment>
49 </ClassAssignment>
<CharacteristicValuation
50 characteristicValuationListCompleteTransmissionIndicator="true">
<ClassType>300</ClassType>
51 <CharacteristicValuation actionCode="04">
<Characteristic>Z_M003</Characteristic>
52 <CharcValue>Z-VAR001</CharcValue>
<CharcValueDisplayUnit></CharcValueDisplayUnit>
53
<CharcValueTo></CharcValueTo>
54 <CharcValueToDisplayUnit></CharcValueToDisplayUnit>
55 <CharcValueIntervalType>1</CharcValueIntervalType>
</CharacteristicValuation>
56 <CharacteristicValuation actionCode="04">
<Characteristic>Z_M003</Characteristic>
57 <CharcValue>Z-VAR002</CharcValue>
<CharcValueDisplayUnit></CharcValueDisplayUnit>
58
<CharcValueTo></CharcValueTo>
59 <CharcValueToDisplayUnit></CharcValueToDisplayUnit>
60 <CharcValueIntervalType>1</CharcValueIntervalType>
</CharacteristicValuation>
61 <CharacteristicValuation actionCode="04">
<Characteristic>Z_M003</Characteristic>
62 <CharcValue>Z-VAR003</CharcValue>
63 <CharcValueDisplayUnit></CharcValueDisplayUnit>
<CharcValueTo></CharcValueTo>
64 <CharcValueToDisplayUnit></CharcValueToDisplayUnit>
65 <CharcValueIntervalType>1</CharcValueIntervalType>
</CharacteristicValuation>
66 <CharacteristicValuation actionCode="04">
<Characteristic>Z_M003</Characteristic>
67 <CharcValue>Z-VAR004</CharcValue>
68 <CharcValueDisplayUnit></CharcValueDisplayUnit>
<CharcValueTo></CharcValueTo>
69
<CharcValueToDisplayUnit></CharcValueToDisplayUnit>
70 <CharcValueIntervalType>1</CharcValueIntervalType>
</CharacteristicValuation>
71 <CharacteristicValuation actionCode="04">
<Characteristic>Z_M003</Characteristic>
72 <CharcValue>Z-VAR005</CharcValue>
73 <CharcValueDisplayUnit></CharcValueDisplayUnit>
<CharcValueTo></CharcValueTo>
74
<CharcValueToDisplayUnit></CharcValueToDisplayUnit>
75 <CharcValueIntervalType>1</CharcValueIntervalType>
</CharacteristicValuation>
76 <CharacteristicValuation actionCode="04">
<Characteristic>Z_M003</Characteristic>
77 <CharcValue>Z-VAR006</CharcValue>
78 <CharcValueDisplayUnit></CharcValueDisplayUnit>
<CharcValueTo></CharcValueTo>
79
<CharcValueToDisplayUnit></CharcValueToDisplayUnit>
80
<CharcValueIntervalType>1</CharcValueIntervalType>
</CharacteristicValuation>
81
<CharacteristicValuation actionCode="04">
<Characteristic>Z_M003</Characteristic>
82 <CharcValue>Z-VAR107</CharcValue>
83 <CharcValueDisplayUnit></CharcValueDisplayUnit>
<CharcValueTo></CharcValueTo>
84
<CharcValueToDisplayUnit></CharcValueToDisplayUnit>
85
<CharcValueIntervalType>1</CharcValueIntervalType>
</CharacteristicValuation>
86
<CharacteristicValuation actionCode="04">
<Characteristic>Z_M004</Characteristic>
87 <CharcValue>0001</CharcValue>
88 <CharcValueDisplayUnit></CharcValueDisplayUnit>
<CharcValueTo></CharcValueTo>
89
<CharcValueToDisplayUnit></CharcValueToDisplayUnit>
90
<CharcValueIntervalType>1</CharcValueIntervalType>
91 </CharacteristicValuation>
<CharacteristicValuation actionCode="04">
<Characteristic>Z_M004</Characteristic>
92 <CharcValue>1029</CharcValue>
93 <CharcValueDisplayUnit></CharcValueDisplayUnit>
<CharcValueTo></CharcValueTo>
94
<CharcValueToDisplayUnit></CharcValueToDisplayUnit>
95
<CharcValueIntervalType>1</CharcValueIntervalType>
96 </CharacteristicValuation>
<CharacteristicValuation actionCode="04">
<Characteristic>Z_M004</Characteristic>
97
<CharcValue>1946</CharcValue>
98 <CharcValueDisplayUnit></CharcValueDisplayUnit>
<CharcValueTo></CharcValueTo>
99
<CharcValueToDisplayUnit></CharcValueToDisplayUnit>
10
0 <CharcValueIntervalType>1</CharcValueIntervalType>
</CharacteristicValuation>
10 <CharacteristicValuation actionCode="04">
1 <Characteristic>Z_M004</Characteristic>
<CharcValue>6547</CharcValue>
10
2 <CharcValueDisplayUnit></CharcValueDisplayUnit>
<CharcValueTo></CharcValueTo>
10
3 <CharcValueToDisplayUnit></CharcValueToDisplayUnit>
10 <CharcValueIntervalType>1</CharcValueIntervalType>
4 </CharacteristicValuation>
</CharacteristicValuation>
10 <CharacteristicValuation
5 characteristicValuationListCompleteTransmissionIndicator="true">
<ClassType>026</ClassType>
10 <CharacteristicValuation actionCode="04">
6 <Characteristic>Z_M201</Characteristic>
<CharcValue>FREITEXT-
10 MERKMAL</CharcValue>
7
<CharcValueDisplayUnit></CharcValueDisplayUnit>
10 <CharcValueTo></CharcValueTo>
8
<CharcValueToDisplayUnit></CharcValueToDisplayUnit>
10
9 <CharcValueIntervalType>1</CharcValueIntervalType>
</CharacteristicValuation>
11 <CharacteristicValuation actionCode="04">
0 <Characteristic>Z_M301</Characteristic>
<CharcValue>RG</CharcValue>
11
1 <CharcValueDisplayUnit></CharcValueDisplayUnit>
<CharcValueTo></CharcValueTo>
11
2 <CharcValueToDisplayUnit></CharcValueToDisplayUnit>
11 <CharcValueIntervalType>1</CharcValueIntervalType>
3 </CharacteristicValuation>
</CharacteristicValuation>
11 </Classification>
4 <Plant actionCode="04"
storageLocationListCompleteTransmissionIndicator="true"
11 mrpAreaListCompleteTransmissionIndicator="true">
5 <PlantID>R100</PlantID>
<ProfileCode xsi:nil="true"
11 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
6 <ProfileValidityStartDate xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
11 <DeletedIndicator>false</DeletedIndicator>
7
<BatchManagementRequiredIndicator>false</BatchManagementRequiredIndicat
11 or>
8 <SerialIdentifierAssignmentProfileCode
xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
11 <ProfitCenterID>1000_DUMMY</ProfitCenterID>
9 <GoodsIssueUnitCode xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
12
0 <NegativeStockAllowedIndicator>false</NegativeStockAllowedIndicator>
<StockDeterminationGroupCode xsi:nil="true"
12 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
1
<ProductExciseTaxRelevanceIndicator>false</ProductExciseTaxRelevanceInd
12 icator>
2 <ConfigurableProductID xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
12 <ProductCFOPCategoryCode xsi:nil="true"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
12 <ProductCriticalPartIndicator>false</ProductCriticalPartIndicator>
4 <ProductLogisticsHandlingGroupCode
xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
12 <ProductFreightGroupCode xsi:nil="true"
5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ProductDistributionProfileCode xsi:nil="true"
12 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
6
<OriginalBatchManagementRequiredIndicator>false</OriginalBatchManagemen
12 tRequiredIndicator>
7 <OriginalBatchReferenceProductID xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
12 <Costing>
8
<CoProductIndicator>false</CoProductIndicator>
12 <ProductBillOfMaterialUsageCategoryCode
9 xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<AlternativeBillOfMaterial xsi:nil="true"
13 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
0 <VarianceKeyCode xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
13 <CostingProductionVersionCode
1 xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
13 <FixedPriceCoProductIndicator>false</FixedPriceCoProductIndicator>
2 <CostingLotSizeQuantity
unitCode="PCE">1.0</CostingLotSizeQuantity>
13
3 <ProductIsNotCostingRelevantIndicator>false</ProductIsNotCostingRelevan
tIndicator>
13 <TaskListGroupCode xsi:nil="true"
4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<TaskListTypeCode xsi:nil="true"
13 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
5 <CostingSpecialProcurementTypeCode
xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
13 <TaskListGroupCounter xsi:nil="true"
6 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
</Costing>
13 <Sales>
7 <LoadingGroupCode>Z001</LoadingGroupCode>
<ReplacementPartTypeCode xsi:nil="true"
13 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
8 <WorkCentersShippingSetupDuration
xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
13 <ProductShippingProcessingDuration
9 xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<CapacityPlanningQuantity
14 unitCode="PCE">0.0</CapacityPlanningQuantity>
0 </Sales>
<StorageLocation actionCode="04">
14 <StorageLocationID>2000</StorageLocationID>
1 <StorageBinID xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
14 <DeletedIndicator>false</DeletedIndicator>
2 <LeanWarehouseManagementPickingAreaCode
xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
14 </StorageLocation>
3 <Purchasing>
14 <AutomaticPurchaseOrderAllowedIndicator>true</AutomaticPurchaseOrderAll
4 owedIndicator>
14 <SourceListRequirementIndicator>false</SourceListRequirementIndicator>
5 <PurchasingGroupID xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
14
6 <SourceOfSupplyCategoryCode>1</SourceOfSupplyCategoryCode>
14 <PurchasingAcrossPurchasingGroupIndicator>false</PurchasingAcrossPurcha
7 singGroupIndicator>
14 <JITDeliverySchedulesRelevantIndicator>false</JITDeliverySchedulesRelev
8 antIndicator>
<TaxIndicator>1</TaxIndicator>
14 </Purchasing>
9 </Plant>
<ValuationArea actionCode="04">
15 <ValuationAreaID>R100</ValuationAreaID>
0 <InventoryValuationTypeCode xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
15 <DeletedIndicator>false</DeletedIndicator>
1
<AccountDeterminationProductValuationDataGroupCode>Z310</AccountDetermi
15 nationProductValuationDataGroupCode>
2
<ProductPriceDeterminationApproachCode>2</ProductPriceDeterminationAppr
15 oachCode>
3 <InventoryValuationCategoryCode xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
15 <ProductUsageTypeCode xsi:nil="true"
4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ProductOriginTypeCode xsi:nil="true"
15 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
5
<ProductProducedInhouseIndicator>false</ProductProducedInhouseIndicator
15 >
6
<SalesOrderStockAccountDeterminationProductValuationDataGroupCode
15 xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
7
<ProjectStockAccountDeterminationProductValuationDataGroupCode
15 xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
8 <FirstFuturePlannedPriceAmountValue
xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
15 <SecondFuturePlannedPriceAmountValue
9 xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ThirdFuturePlannedPriceAmountValue
16 xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
0 <FirstFuturePlannedPriceValidityDate
xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
16 <SecondFuturePlannedPriceValidityDate
1 xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<ThirdFuturePlannedPriceValidityDate
16 xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
2 <ValuationMargin xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
16 <PriceLastChangeDate xsi:nil="true"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<PreviousInventoryPriceInCompanyCodeCurrency
16 xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
4 </ValuationArea>
<SalesSpecificTaxClassification actionCode="04">
16 <CountryCode>DE</CountryCode>
5 <TaxTypeCode>MWST</TaxTypeCode>
<TaxRateTypeCode>1</TaxRateTypeCode>
16 </SalesSpecificTaxClassification>
6 </Product>
</ProductMDMReplicateRequestMessage>
16 </ns0:ProductMDMBulkReplicateRequestMessage>
7 </soap-env:Body>
</soap-env:Envelope>
16
8
16
9
17
0
17
1
17
2
17
3
17
4
17
5
17
6
17
7
17
8
17
9
18
0
18
1
18
2
18
3
18
4
18
5
18
6
18
7
18
8
18
9
19
0
19
1
19
2
19
3
19
4
19
5
19
6
19
7
19
8
19
9
20
0
20
1
20
2
20
3
20
4
20
5
20
6
20
7
20
8
20
9
21
0
21
1
21
2
21
3
21
4
21
5
21
6
21
7
21
8
21
9
22
0
22
1
22
2
22
3
22
4
22
5
22
6
22
7
22
8
22
9
23
0
23
1
23
2
23
3
23
4
23
5
23
6
23
7
23
8
23
9
24
0
24
1
24
2
24
3
24
4
24
5
24
6
24
7
24
8
24
9
25
0
25
1
25
2
25
3
25
4
25
5
25
6
25
7
25
8
25
9
26
0
26
1
26
2
26
3
26
4
26
5