BizTalk映射需要帮助

时间:2011-02-18 07:03:59

标签: c# biztalk

我正在尝试使用functoid从输入xml消息中获取数据。但这似乎不起作用。以下是我的XML片段

<?xml version="1.0" ?>
<ROOT>
    <COMPANIES>
        <COMPANY>
            <NAME>FOO CORP</name>
        </COMPANY>
        <COMPANY>
            <NAME>ACME CORP</name>
        </COMPANY>
    </COMPANIES>
    <INFORMATIONS>
        <INFORMATION>
            <TESTING>
                <TESTS>
                    <NAME>1221</NAME>
                    <TEST>
                        <TEXT>I AM SAM</TEXT>
                    </TEST>
                </TESTS>
                <TESTS>
                    <NAME>21</NAME>
                    <TEST>
                        <TEXT>FADFDF</TEXT>
                    </TEST>
                </TESTS>
                <TESTS>
                    <NAME>3001</NAME>
                    <TEST>
                        <TEXT>SGFGSDFG</TEXT>
                    </TEST>
                </TESTS>
                <TESTS>
                    <NAME>4569</NAME>
                    <TEST>
                        <TEXT>12312</TEXT>
                    </TEST>
                </TESTS>
            </TESTING>
        <INFORMATION>
    </INFORMATIONS>
</ROOT>
  1. 首先,我试图循环通过公司并获得名称“ACME CORP”。但我使用的functoid(脚本,字符串提取等)我总是得到FOO CORP。我甚至尝试了内联XSLT,但这似乎也没有用。知道如何获得第二个公司名称吗?

  2. 其次,我已将<TEXT>直接映射到目标架构中的<node>。我得到的只是来自<TEXT>的2个值。并非所有<TEXT>都映射到我的<node>。我得到的输出是 我不明白是

    我是SAM FADFDF

  3. 我没有得到

    <node>SGFGSDFG</node>
    <node>12312</node>
    

    任何人都知道我如何获得价值观?

    提前致谢

    欢呼声,

    KARTHIK

1 个答案:

答案 0 :(得分:1)

Q1:如何获得第二<{strong> NAME的{​​{1}}?

1)添加迭代 functoid(高级Functoid)并连接到源架构中的COMPANY节点

2)添加等于功能(逻辑Functoids)并连接到迭代 functoid

3)配置 Equal functoid;添加常量值COMPANY

4)添加值映射(展平) functoid(高级Functoid)

5)将等于的输出连接到值映射

的输入

6)将源架构的2元素连接到值映射

的输入

7)将值映射的输出连接到目标架构元素


Q2:并非所有源NAME元素都转换为目标TEXT

这似乎是您的映射会产生Q1的副作用,我无法重现您的错误。

检查相关元素/节点的源和目标模式的minOccurs和maxOccurs。