BizTalk Mapper Проверка и замена значений по умолчанию

Я создал несколько функтоидов на карте, чтобы проверить исходный узел «AdoptedDate» для значений по умолчанию (Equals defaultvalues в логическом ИЛИ до функтоида значения с новым значением по умолчанию. Затем логическое не ибо, если ни одно из Equals не верно, чтобы сопоставить исходный узел «AdoptedDate» со схемой назначения (xslt прилагается).

Что я хотел бы сделать, так это реализовать это для всех полей даты в исходной схеме, можно ли это сделать.

Текущий сгенерированный XSLT (только принятый)

 <xsl:for-each select="Form/SDetails">
<xsl:variable name="var:v17" select="userCSharp:LogicalEq(string(NameDetails/AdoptedDate/text()) , &quot;1900-09-09&quot;)" />
<xsl:variable name="var:v18" select="string(NameDetails/AdoptedDate/text())" />
<xsl:variable name="var:v19" select="userCSharp:LogicalEq($var:v18 , &quot;1800-09-09&quot;)" />
<xsl:variable name="var:v20" select="userCSharp:LogicalOr(string($var:v17) , string($var:v19))" />
<xsl:variable name="var:v22" select="userCSharp:LogicalNot(string($var:v20))" />
    <xsl:if test="string($var:v20)='true'">
        <xsl:variable name="var:v21" select="&quot;1901-01-01&quot;" />
        <p:AdoptedDate>
              <xsl:value-of select="$var:v21" />
        </p:AdoptedDate>
    </xsl:if>
    <xsl:if test="string($var:v22)='true'">
        <xsl:variable name="var:v23" select="NameDetails/AdoptedDate/text()" />
        <p:AdoptedDate>
            <xsl:value-of select="$var:v23" />
        </p:AdoptedDate>
    </xsl:if>


person PuffTMD    schedule 20.05.2014    source источник


Ответы (1)


Ваши варианты

  1. Используйте один и тот же набор функтоидов в каждом поле (это то, чего, как я понимаю, вы пытаетесь избежать)
  2. Создание внешнего класса реализует логику, которую затем можно вызвать из функтоида сценариев.
  3. Создайте встроенный скрипт для выполнения логики. Затем у вас могут быть последующие фукоиды сценариев, содержащие одно и то же имя функции и параметры, и у него будет только один сценарий в XSLT, который они все вызывают.

Во всех ситуациях вам нужно будет иметь функтоид, связанный с полями источника и назначения.

person Dijkgraaf    schedule 25.05.2014
comment
Я думаю о третьем варианте, подумаю и вернусь с образцом xslt для реализации. Спасибо. - person PuffTMD; 03.06.2014