2017-08-30 2 views
0

Ich erhalte eine Flat-Datei und eine Oracle-Ansicht Bindung, ich muss Schema aus diesen beiden in eine Send Flat-Datei zuordnen. Mitarbeiter-ID ist das allgemeine Feld in der Flat-Datei und der Oracle-Ansicht. Ich muss überprüfen, die Mitarbeiter-ID auf dem Eingabeschema auch überprüfen, ob das PreferredLASTNAME-Feld in der Oracle ist nicht null, dann senden Sie die PreferredLASTNAME aus der Oracle-Ansicht sonst senden Sie den Last_Name aus dem Dateischema.XSLT-Anrufvorlage in BizTalk Mapping

Hier verwende ich die XSLT Call-Vorlage. Aber ich bin mir nicht sicher, wie man überprüft, ob der PREFREEDEDLASTNAME nicht NULL ist, dann setze Last_Name als PREFREEDEDLASTNAME, ansonsten setze den Last_Name aus der flachen Eingabedatei.

Unten ist die Karte 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> 

Mit dem obigen XSLT in den Schemata beide es nur für die Employee_Number = EMPLOYEE_ID sieht und setzt die Last_Name als PREFERREDLASTNAME und Blätter leer, wenn sie nicht gleich. Wie kann ich meine XSLT ändern die Bedingung

+0

zu Ihrer Follow-up-Frage der Suche es sieht aus wie Sie diese selbst gelöst haben. – zx485

+0

@ zx485 Meinst du diese Frage https://stackoverflow.com/questions/45960995/xslt-with-test-and-otherwise? – Dijkgraaf

Antwort

0

Dies ist die Lösung auszuführen:

<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>