2

次のような入力があります

<Loop2300>
    <HD></HD>
    <DTP>
        <DTP1></DTP1> 
        <DTP2></DTP2> 
        <DTP3></DTP3>
   </DTP> 
   <DTP>
        <DTP1></DTP1> 
        <DTP2></DTP2> 
        <DTP3></DTP3>
   </DTP> 
</Loop2300>
<Loop2300>
    <HD></HD>
    <DTP>
        <DTP1></DTP1> 
        <DTP2></DTP2> 
        <DTP3></DTP3>
    </DTP>
    <DTP>
        <DTP1></DTP1> 
        <DTP2></DTP2> 
        <DTP3></DTP3>
    </DTP> 
</Loop2300>

すべての DTP の値を SQL テーブルに入れています。DTP に加えて、HD のシーケンス番号を配置する必要がある宛先スキーマに id 要素が 1 つあります。

したがって、次のように出力されます。

1    DTP1 DTP2 DTP3

1     DTP1 DTP2 DTP3

2    DTP1 DTP2 DTP3

2    DTP1 DTP2 DTP3

XSLT Functoid インライン xslt 呼び出しテンプレートを使用しています。

その中で私が使用している

<xsl:template>
    <xsl:for-each select="TS834_2300_Loop/HD_HealthCoverage">
        <xsl:number value="position()" format="1. "/>
    </xsl:for-each>
</xsl:template>

Id への入力と 1 つの出力を持たないコード

しかし、そのエラー変換は失敗します。

では、適切な ID を取得するには、どのような変更を行う必要がありますか?

4

1 に答える 1

2

<HD>ソース ノードをIteration Functoidに接続してみてください。

値を平坦化するには、テーブル ループ functoid<DTP>が必要です。

現在、完全なプロトタイプを作成するための BizTalk 開発マシンの準備ができていませんが、これで出発点が得られるはずです。

于 2011-12-20T15:26:59.017 に答える