cancel
Showing results for 
Search instead for 
Did you mean: 

Information not going through XSLT mapping

0 Kudos

Hi experts,
I have a really basic integration that only gets two fields from SF these fields are:
UserID
WorkPlace(customString40)

The purpose of this iflow is to get these fields and change the name of the field via XSLT mapping, but i've been facing a error which the query gets the field with the value, but when it reaches the XSLT it returns empty.

This is the SF payload:

<EmpJob><br>  <EmpJob><br>    <eventReasonNav><br>      <FOEventReason><br>        <externalCode>H-001</externalCode><br>      </FOEventReason><br>    </eventReasonNav><br>    <company>203</company><br>    <employmentNav><br>      <EmpEmployment><br>        <jobInfoNav><br>          <EmpJob><br>            <customString40Nav><br>              <PicklistOption><br>                <externalCode>42</externalCode><br>              </PicklistOption><br>            </customString40Nav><br>          </EmpJob><br>        </jobInfoNav><br>      </EmpEmployment><br>    </employmentNav><br>    <userId>10013606</userId><br>  </EmpJob><br></EmpJob>

And this is the XSLT Mapping that should change the name and the values of these fields:

<?xml version="1.0" encoding="UTF-8"?><br><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"<br>    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hci="http://sap.com/it/"<br>    exclude-result-prefixes="hci"><br><br>    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/><br>    <xsl:param name="appUser"/><br>    <xsl:param name="appPass"/><br><br>    <xsl:template match="/"><br>        <ExecuteTransaction><br>            <xsl:for-each select="EmpJob/EmpJob"><br>                <ExecuteTransaction><br>                <br>                    <items><br>                        <clientFieldName>CosGlobal</clientFieldName><br>                        <value><br>                            <xsl:value-of select="userId"/><br>                        </value><br>                    </items><br>                    <xsl:if test="customString40 != ''"><br>                        <items><br>                            <clientFieldName>CdiCodigoFlexivelCon06</clientFieldName><br>                            <value><br>                                <xsl:value-of select="customString40Nav/PicklistOption/externalCode"<br>                                /><br>                            </value><br>                        </items><br>                    </xsl:if><br><br>                </ExecuteTransaction><br>            </xsl:for-each><br>        </ExecuteTransaction><br>    </xsl:template><br></xsl:stylesheet><br><br><br>

PS: The UserID (CosGlobal) works fine, but the second field does not.

Best Regards,
-Math
matheusgarcia_i@didiblobal.com

View Entire Topic
0 Kudos

Hi Keerthana,
I have one more question about this.
Is the header of the XSLT always the same regardless of the features in that XSLT?
Im asking that because i have another integration that returns the same issue.

Best Regards,
-Math

Keerthana
Participant
0 Kudos

Hi Math,

Which header are you talking about ?
The issue in your above code was that, you were using xsl:for-each in one node and trying to fetch the data under a different node and also the if condition was wrong.
Hope it helps.

Regards,
Keerthana