2 년 전이 질문을했습니다 (Problem with BizTalk multi-input map). 그러나 프로젝트가 중단되어 더 이상 테스트를 수행하지 않았습니다. 좀 더 자세한 내용과 스크린 샷으로 다시 먼지를 털어 야합니다.BizTalk HIPAA EDI 다중 입력 맵이 노드를 생성하지 않습니다
우리 시스템의 일부 데이터와 837 클레임 스키마를 병합해야하는 BizTalk HIPAA 솔루션이 있습니다. 다음과 같이 우리는 두 개의 입력 스키마를 가진지도이 일을하고 있습니다 :
(나는 크게 테스트 목적으로 스키마를 단순화했습니다). 필자의 원래 게시물에 대한 대답 (동일한 펑 토이 드 및 값 매퍼 사용)은 처음에 본 것처럼 단순한 스키마에서도 잘 작동하지만 실제 EDI 스키마에서는 실패합니다.첫 번째 입력 메시지에서 IsRepriced = 1 인 경우 HCP_01, HCP_02 및 HCP_03에 대한 값을 사용하고 싶습니다. 0 인 경우 두 번째 메시지의 값 (원래 837 개의 주장)을 사용하십시오. 원래의 837 주장이 실제로 HCP 노드 (세그먼트)를 포함하고있는 한 펑 토이 드는 잘 작동하지만 거기에 없으면 데이터에서 생성 할 수 없습니다.
일부 if-then-else C# 코드를 사용하여 스크립트 펑 토이 드로 바꾸면 동일한 효과가 나타납니다.
그래서 펑 토이 드를 사용하여이 작업을 수행 할 수 있습니까? 아니면 XSLT를 사용해야합니까? 불행히도 나는 XSLT에 대해 아무 것도 모른다는 것을 알기 때문에 어려울 것입니다 ...
고마워!
편집 : 나는까지이 코드로, 인라인 XSLT 호출 템플릿을 사용하는 것입니다 :
<xsl:template name="Repricing_2000B_HCP">
<xsl:param name="IsRepriced" />
<xsl:choose>
<xsl:when test="$IsRepriced='1'">
<xsl:for-each select="//InputMessagePart_1/ns0:X12_00401_837_I/ns0:TS837Q3_2000A_Loop/ns0:TS837Q3_2000B_Loop/ns0:TS837Q3_2300_Loop/ns0:HCP_ClaimPricingRepricingInformation_TS837Q3_2300">
<xsl:element name="ns0:HCP_ClaimPricingRepricingInformation_TS837Q3_2300">
<xsl:copy-of select="./@*" />
<xsl:copy-of select="./*" />
</xsl:element>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="//InputMessagePart_0/ns0:X12_00401_837_I/ns0:TS837Q3_2000A_Loop/ns0:TS837Q3_2000B_Loop/ns0:TS837Q3_2300_Loop/ns0:HCP_ClaimPricingRepricingInformation_TS837Q3_2300">
<xsl:element name="ns0:HCP_ClaimPricingRepricingInformation_TS837Q3_2300">
<xsl:copy-of select="./@*" />
<xsl:copy-of select="./*" />
</xsl:element>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
그래, 최대 xslt 경로를 ... –