Biztalk 制图员:如果/否则

Biztalk 制图员:如果/否则,biztalk,Biztalk,为什么映射程序不希望在xslt Dokument中进行其他查询 应该是: 如果脚本functoid返回“true”-->则应将“PV1_19”-段中的值复制到“MRG_5”-段中。 否则,应将MRG1段从左侧复制到右侧-->即,如果左侧的MRG_1精液存在,则复制它;如果没有,则消息中不应存在MRG段 此图显示了我是如何制作的: 这是映射程序中的xslt代码: - <xsl:for-each select="ZBE_BewegungsdatenSegment"> <xsl

为什么映射程序不希望在xslt Dokument中进行其他查询

应该是: 如果脚本functoid返回“true”-->则应将“PV1_19”-段中的值复制到“MRG_5”-段中。 否则,应将MRG1段从左侧复制到右侧-->即,如果左侧的MRG_1精液存在,则复制它;如果没有,则消息中不应存在MRG段

此图显示了我是如何制作的:

这是映射程序中的xslt代码:

- <xsl:for-each select="ZBE_BewegungsdatenSegment">
  <xsl:variable name="var:v6" select="userCSharp:ChangeEventToA42(string(ZBE_5_SAPEVENT/text()) , string(ZBE_6_FAL_CASEPATNO/text()) , string(../MSH_MessageHeaderSegment/MSH.9_MessageType/CM_MSG.1_TriggerEvent/text()))" /> 
  <xsl:variable name="var:v7" select="userCSharp:StringConcat("A42")" /> 
  <xsl:variable name="var:v8" select="userCSharp:LogicalEq(string($var:v6) , string($var:v7))" /> 
- <xsl:if test="$var:v8">
      <xsl:variable name="var:v9" select="string(ZBE_5_SAPEVENT/text())" /> 
      <xsl:variable name="var:v10" select="string(ZBE_6_FAL_CASEPATNO/text())" /> 
      <xsl:variable name="var:v11" select="string(../MSH_MessageHeaderSegment/MSH.9_MessageType/CM_MSG.1_TriggerEvent/text())" /> 
    - <MRG_MergePatientInformation>
        - <MRG_1_PriorPatientIdentifierList>
              <xsl:variable name="var:v12" select="userCSharp:ChangeEventToA42($var:v9 , $var:v10 , $var:v11)" /> 
              <xsl:variable name="var:v13" select="userCSharp:LogicalNe(string($var:v7) , string($var:v12))" /> 
            - <xsl:if test="string($var:v13)='true'">
                  <xsl:variable name="var:v14" select="../MRG_MergePatientInformation/MRG_1_PriorPatientIdentifierList/CX_0_Id/text()" /> 
                - <CX_0_Id>
                  <xsl:value-of select="$var:v14" /> 
                  </CX_0_Id>
              </xsl:if>
              <xsl:variable name="var:v15" select="userCSharp:LogicalEq(string($var:v12) , string($var:v7))" /> 
            - <xsl:if test="string($var:v15)='true'">
                  <xsl:variable name="var:v16" select="""" /> 
                - <CX_0_Id>
                  <xsl:value-of select="$var:v16" /> 
                  </CX_0_Id>
              </xsl:if>
          </MRG_1_PriorPatientIdentifierList>
        - <MRG_2_PriorAlternatePatientId>
              <xsl:variable name="var:v17" select="userCSharp:ChangeEventToA42($var:v9 , $var:v10 , $var:v11)" /> 
              <xsl:variable name="var:v18" select="userCSharp:LogicalEq(string($var:v17) , string($var:v7))" /> 
            - <xsl:if test="string($var:v18)='true'">
                  <xsl:variable name="var:v19" select="""" /> 
                - <CX_0_Id>
                  <xsl:value-of select="$var:v19" /> 
                  </CX_0_Id>
              </xsl:if>
          </MRG_2_PriorAlternatePatientId>
        - <MRG_3_PriorPatientAccountNumber>
              <xsl:variable name="var:v20" select="userCSharp:ChangeEventToA42($var:v9 , $var:v10 , $var:v11)" /> 
              <xsl:variable name="var:v21" select="userCSharp:LogicalEq(string($var:v20) , string($var:v7))" /> 
            - <xsl:if test="string($var:v21)='true'">
                  <xsl:variable name="var:v22" select="""" /> 
                - <CX_0_Id>
                  <xsl:value-of select="$var:v22" /> 
                  </CX_0_Id>
              </xsl:if>
          </MRG_3_PriorPatientAccountNumber>
        - <MRG_4_PriorPatientId>
              <xsl:variable name="var:v23" select="userCSharp:ChangeEventToA42($var:v9 , $var:v10 , $var:v11)" /> 
              <xsl:variable name="var:v24" select="userCSharp:LogicalEq(string($var:v23) , string($var:v7))" /> 
            - <xsl:if test="string($var:v24)='true'">
                  <xsl:variable name="var:v25" select="""" /> 
                - <CX_0_Id>
                  <xsl:value-of select="$var:v25" /> 
                  </CX_0_Id>
              </xsl:if>
          </MRG_4_PriorPatientId>
        - <MRG_5_PriorVisitNumber>
              <xsl:variable name="var:v26" select="userCSharp:ChangeEventToA42($var:v9 , $var:v10 , $var:v11)" /> 
              <xsl:variable name="var:v27" select="userCSharp:LogicalEq(string($var:v26) , string($var:v7))" /> 
            - <xsl:if test="string($var:v27)='true'">
                  <xsl:variable name="var:v28" select="../PV1_PatientVisitSegment/PV1_19_VisitNumber/CX_0_Id/text()" /> 
                - <CX_0_Id>
                  <xsl:value-of select="$var:v28" /> 
                  </CX_0_Id>
              </xsl:if>
          </MRG_5_PriorVisitNumber>
      </MRG_MergePatientInformation>
    </xsl:if>
  </xsl:for-each>
-
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 

你知道为什么映射器不进行“其他查询”(如果(是)和如果(不是)(是))?

我发现可视化映射器对于复杂的映射不起作用。
对于任何非常复杂的事情,我都会切换到外部xslt映射。

谢谢,我知道,但我仍然会使用可视化映射器。我重写了我的意图,现在效果很好。但它真的是一辆马车:)