Шаблон вызова XSLT в BizTalk Mapping

Я получаю плоский файл и привязку представления Oracle, мне нужно сопоставить схему из этих двух в плоский файл отправки. Идентификатор сотрудника является общим полем как в плоском файле, так и в представлении Oracle. Мне нужно проверить идентификатор сотрудника в обеих входных схемах, а также проверить, не равно ли поле PREFERREDLASTNAME в Oracle значение null, а затем отправить PREFERREDLASTNAME из представления Oracle, в противном случае отправить Last_Name из файловой схемы.

Здесь я использую шаблон вызова XSLT. Но я не уверен, как проверить, не является ли PREFREEDEDLASTNAME NULL, а затем установить Last_Name как PREFREEDEDLASTNAME, в противном случае установить Last_Name из входного плоского файла.

Ниже приведена карта введите здесь описание изображения

введите здесь описание изображения

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

С помощью приведенного выше XSLT он ищет только Employee_Number = EMPLOYEE_ID в обеих схемах и устанавливает Last_Name как PREFERREDLASTNAME и оставляет пустым, если они не равны. Как я могу изменить свой XSLT для выполнения условия


person user4912134    schedule 30.08.2017    source источник
comment
Глядя на ваш последующий вопрос, похоже, вы решили это самостоятельно.   -  person zx485    schedule 30.08.2017
comment
@zx485 Zx485 Вы ​​имеете в виду этот вопрос stackoverflow.com/questions/ 45960995/ ?   -  person Dijkgraaf    schedule 31.08.2017


Ответы (1)


Это решение:

<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>
person felixmondelo    schedule 30.08.2017