none
1つのxmlファイルから親子それぞれのエンティティにデータをインポートする RRS feed

  • 質問

  • お世話になります。

    Dynamics CRM拡張エンジニアをやっているものです。

    表題のように1つのxmlファイルから親子それぞれのエンティティにデータを登録することは可能と思います。

    ですが、この度やや手の込んだことをしておりましてインポートがうまくいかない状況です。

    皆様のご助力いただけると助かります。

    状況について

    ・データマップ内で親のキーフィールドの値を生成しています

     →        <TransformationMap>
              <TransformationTypeName>Microsoft.Crm.Transformations.Concatenate</TransformationTypeName>
              <ProcessCode>Process</ProcessCode>
              <InputParameterMaps>
                <SingletonInputParameterMaps />
                <ArrayInputParameterMaps>
                  <ArrayInputParameterMap>
                    <ParameterSequence>4</ParameterSequence>
                    <Items>
                      <Item>
                        <ParameterArrayIndex>0</ParameterArrayIndex>
                        <DataTypeCode>Reference</DataTypeCode>
                        <Data><![CDATA[姓]]></Data>
                      </Item>
                      <Item>
                        <ParameterArrayIndex>1</ParameterArrayIndex>
                        <DataTypeCode>Reference</DataTypeCode>
                        <Data><![CDATA[名]]></Data>
                      </Item>
                      <Item>
                        <ParameterArrayIndex>2</ParameterArrayIndex>
                        <DataTypeCode>Reference</DataTypeCode>
                        <Data><![CDATA[得意先コード]]></Data>
                      </Item>
                    </Items>
                  </ArrayInputParameterMap>
                </ArrayInputParameterMaps>
              </InputParameterMaps>
              <OutputParameterMaps>
                <OutputParameterMap>
                  <ParameterSequence>1</ParameterSequence>
                  <Data><![CDATA[new_nayose]]></Data>
                </OutputParameterMap>
              </OutputParameterMaps>
            </TransformationMap>

    ・子から親をしてするフィールドもデータマップ内で生成しています

    →        <TransformationMap>
              <TransformationTypeName>Microsoft.Crm.Transformations.Concatenate</TransformationTypeName>
              <ProcessCode>Process</ProcessCode>
              <InputParameterMaps>
                <SingletonInputParameterMaps />
                <ArrayInputParameterMaps>
                  <ArrayInputParameterMap>
                    <ParameterSequence>4</ParameterSequence>
                    <Items>
                      <Item>
                        <ParameterArrayIndex>0</ParameterArrayIndex>
                        <DataTypeCode>Reference</DataTypeCode>
                        <Data><![CDATA[姓]]></Data>
                      </Item>
                      <Item>
                        <ParameterArrayIndex>1</ParameterArrayIndex>
                        <DataTypeCode>Reference</DataTypeCode>
                        <Data><![CDATA[名]]></Data>
                      </Item>
                      <Item>
                        <ParameterArrayIndex>2</ParameterArrayIndex>
                        <DataTypeCode>Reference</DataTypeCode>
                        <Data><![CDATA[得意先コード]]></Data>
                      </Item>
                    </Items>
                  </ArrayInputParameterMap>
                </ArrayInputParameterMaps>
              </InputParameterMaps>
              <OutputParameterMaps>
                <OutputParameterMap>
                  <ParameterSequence>1</ParameterSequence>
                  <Data><![CDATA[new_jyuko]]></Data>
                  <LookupMaps>
                    <LookupMap>
                      <LookupType>System</LookupType>
                      <LookupEntityName>new_jyuko</LookupEntityName>
                      <LookupAttributeName>new_nayose</LookupAttributeName>
                      <ProcessCode>Process</ProcessCode>
                    </LookupMap>
                  </LookupMaps>
                </OutputParameterMap>
              </OutputParameterMaps>
            </TransformationMap>

    インポート処理は子が失敗した後に親が成功する順番で処理され同時にインポートできません。

    同じような状況になった方はいますでしょうか?

    また、解決策がありましたら教えて下さい。

    ※ファイルを2つにする、圧縮する等の回避策は行わないで実施したいです。

    よろしくお願い致します。



    • 編集済み ava_ohara 2014年10月24日 6:39
    2014年10月24日 6:36

すべての返信

  • お世話になります。

    頂きましたご質問に関しまして、まだどなたも回答されていないようです。

    また、あいにく公開されている既知の情報からは、解決できる情報を見つけることはできませんでした。

    Dynamics CRM SDK内のデータのインポートに関するセクションや、サンプルのインポート用データマップをご参考にされることも役立つかと考えます。

    また、マイクロソフトの技術サポートをご利用頂くことで、原因や解決策について調査することなどが可能と考えます。

    よろしくお願いします。

    2014年11月4日 6:08
    モデレータ
  • 井上圭司さん

    コメントいただきありがとう御座います。

    その後にわかったことですが

    <TransformationMap>で値を生成しなければ親→子の順番でインポート処理される

    ようです。

    つまり、インポートする値はxmlファイルに直接入力してあるもののみで親子の関係を判断しているようです。

    データマップ内で生成される値は配慮できないということでしょう。

    ですので、エンティティの作成順かはわかりませんがたまたま親→子の順番でインポートされる場合もあるかもです。

    引き続き何かわかりましたら展開させていただきます。

    2014年11月10日 1:08