2017-08-30 9 views
0

Je reçois un fichier plat et une liaison de vue Oracle. J'ai besoin de mapper le schéma de ces deux dans un fichier plat d'envoi. Employee Id est le champ commun dans le fichier plat et dans la vue Oracle. J'ai besoin de vérifier l'ID de l'employé sur le schéma d'entrée aussi vérifier si le champ PREFERREDLASTNAME dans l'Oracle n'est pas nul puis envoyer le PREFERREDLASTNAME de la vue Oracle sinon envoyer le Last_Name du schéma de fichier.Modèle d'appel XSLT dans le mappage BizTalk

Ici j'utilise le modèle d'appel XSLT. Mais je ne suis pas sûr comment vérifier si le PREFREEDEDLASTNAME n'est pas NULL alors définissez Last_Name comme PREFREEDEDLASTNAME autrement placez le Last_Name du fichier plat d'entrée.

Ci-dessous la carte enter image description here

enter image description here

<xsl:template name="GetLastNameVW_EMP_JOB_DEPT"> 
<xsl:param name="ID" /> 
<xsl:element name="Last_Name"> 
<xsl:value-of select="//s0:VW_EMP_JOB_DEPTRECORDSELECT[s0:EMPLOYEE_ID = $ID]/s0:PREFERREDLASTNAME" /> 
</xsl:element> 
</xsl:template> 

Avec le XSLT ci-dessus, il semble que pour la Employee_Number = EMPLOYEE_ID dans les deux schémas et définit la Last_Name comme PREFERREDLASTNAME et laisse en blanc si elles sont inégal. Comment puis-je modifier mon XSLT pour effectuer la condition

+0

En regardant votre question de suivi, il semble que vous avez résolu vous-même. – zx485

+0

@ zx485 Voulez-vous dire cette question https://stackoverflow.com/questions/45960995/xslt-with-test-and-otherwise? – Dijkgraaf

Répondre

0

Ceci est la solution:

<xsl:template name="GetLastNameVW_EMP_JOB_DEPT"> 
<xsl:param name="ID" /> 
<xsl:param name="LASTNAME" /> 
<xsl:element name="Last_Name"> 
    <xsl:choose> 
     <xsl:when test="//s0:VW_JAX_EMP_JOB_DEPTRECORD[s0:EMPLOYEE_ID = $ID]/s0:PREFERREDLASTNAME" > 
     <xsl:value-of select="//s0:VW_JAX_EMP_JOB_DEPTRECORD[s0:EMPLOYEE_ID = $ID]/s0:PREFERREDLASTNAME" /> 
     </xsl:when> 
     <xsl:otherwise> 
     <xsl:value-of select="$LASTNAME" /> 
     </xsl:otherwise> 
    </xsl:choose> 
</xsl:element> 
</xsl:template>