Needs to pass the value based if the value has only one group when grouping is applied in xslt

92 Views Asked by At

Can you please help me how the below logic can we archived using XSLT

in the below input in the goodsHolders segments, we have different goodsHolderItems with 2 different deliverynotenumber so in this case no need to add netweight and grossweight

in the case 2 input payload there are goodsHolders segment with same deliverynotenumber in the goodsHolderItems so in this case we need to add netweight and gross weight

Input: `

<?xml version='1.0' encoding='UTF-8'?>
<multimap:Messages xmlns:multimap="http://sap.com/xi/XI/SplitAndMerge">
    <multimap:Message1>
        <VM/>
    </multimap:Message1>
    <multimap:Message2>
        <root>
            <event/>
            <notification>
                <goodsHolders>
                    <goodsHolderMeasures>
                        <netWeight>
                            <measureValue>6.45</measureValue>
                            <measureUOM>KG</measureUOM>
                        </netWeight>
                        <grossWeight>
                            <measureValue>6.45</measureValue>
                            <measureUOM>KG</measureUOM>
                        </grossWeight>
                    </goodsHolderMeasures>
                    <goodsHolderItems>
                        <deliveryNoteNumber>123</deliveryNoteNumber>
                    </goodsHolderItems>
                    <goodsHolderItems>
                        <deliveryNoteNumber>123</deliveryNoteNumber>
                    </goodsHolderItems>
                    <goodsHolderItems>
                        <deliveryNoteNumber>456</deliveryNoteNumber>
                    </goodsHolderItems>
                    <goodsHolderItems>
                        <deliveryNoteNumber>456</deliveryNoteNumber>
                    </goodsHolderItems>
                </goodsHolders>
            </notification>
        </root>
    </multimap:Message2>
</multimap:Messages>

Output:

<?xml version='1.0' encoding='UTF-8'?>
<multimap:Messages xmlns:multimap="http://sap.com/xi/XI/SplitAndMerge">
    <multimap:Message1>
        <VM/>
    </multimap:Message1>
    <multimap:Message2>
        <root>
            <event/>
            <notification>
                <goodsHolders>
                    <goodsHolderMeasures>
                        
                    </goodsHolderMeasures>
                    <goodsHolderItems>
                        <deliveryNoteNumber>123</deliveryNoteNumber>
                    </goodsHolderItems>
                    <goodsHolderItems>
                        <deliveryNoteNumber>123</deliveryNoteNumber>
                    </goodsHolderItems>
                    <goodsHolderItems>
                        <deliveryNoteNumber>456</deliveryNoteNumber>
                    </goodsHolderItems>
                    <goodsHolderItems>
                        <deliveryNoteNumber>456</deliveryNoteNumber>
                    </goodsHolderItems>
                </goodsHolders>
            </notification>
        </root>
    </multimap:Message2>
</multimap:Messages>

Case 2: Input:

<?xml version='1.0' encoding='UTF-8'?>
<multimap:Messages xmlns:multimap="http://sap.com/xi/XI/SplitAndMerge">
    <multimap:Message1>
        <VM/>
    </multimap:Message1>
    <multimap:Message2>
        <root>
            <event/>
            <notification>
                <goodsHolders>
                    <goodsHolderMeasures>
                        <netWeight>
                            <measureValue>6.45</measureValue>
                            <measureUOM>KG</measureUOM>
                        </netWeight>
                        <grossWeight>
                            <measureValue>6.45</measureValue>
                            <measureUOM>KG</measureUOM>
                        </grossWeight>
                    </goodsHolderMeasures>
                    <goodsHolderItems>
                        <deliveryNoteNumber>123</deliveryNoteNumber>
                        
                    </goodsHolderItems>
                </goodsHolders>
                <goodsHolders>
                    <goodsHolderMeasures>
                        <netWeight>
                            <measureValue>6.45</measureValue>
                            <measureUOM>KG</measureUOM>
                        </netWeight>
                        <grossWeight>
                            <measureValue>6.45</measureValue>
                            <measureUOM>KG</measureUOM>
                        </grossWeight>
                    </goodsHolderMeasures>
                    <goodsHolderItems>
                        <deliveryNoteNumber>123</deliveryNoteNumber>
                    
                    </goodsHolderItems>
                </goodsHolders>
            </notification>
        </root>
    </multimap:Message2>
</multimap:Messages>

Output:

<?xml version='1.0' encoding='UTF-8'?>
<multimap:Messages xmlns:multimap="http://sap.com/xi/XI/SplitAndMerge">
    <multimap:Message1>
        <VM/>
    </multimap:Message1>
    <multimap:Message2>
        <root>
            <event/>
            <notification>
                <goodsHolders>
                    <goodsHolderMeasures>
                        <netWeight>
                            <measureValue>12.9</measureValue>
                            <measureUOM>KG</measureUOM>
                        </netWeight>
                        <grossWeight>
                            <measureValue>12.9</measureValue>
                            <measureUOM>KG</measureUOM>
                        </grossWeight>
                    </goodsHolderMeasures>
                    <goodsHolderItems>
                        <deliveryNoteNumber>123</deliveryNoteNumber>
                        
                    </goodsHolderItems>
                </goodsHolders>
        
            </notification>
        </root>
    </multimap:Message2>
</multimap:Messages>
0

There are 0 best solutions below