0

50以上のエンティティを含む大規模なカスタマイズをインポートするコードを作成しようとしました。マイクロソフトの記事「ImportXmlWithProgressMessage(CrmService)」をベースとして使用しましたが、期待した出力が得られませんでした。

次のコードの「job.data」は、元のparameterxmlデータから変更されていません。つまり、これはインポートが成功しなかったことを意味します。マイクロソフトのWebUIを使用して同じ圧縮されたimportexportxmlをインポートしましたが、正常に機能しました。そのため、インポートされた各エンティティの'result'属性でjob.dataが更新されないのはなぜか疑問に思います。

以下は私のインポート方法です。

private void ImportEntitySchema()
{
    const string parameterXml = @"<importexportxml>
                <entities>
                  {0}
                </entities>
                <nodes/>
                <securityroles/>
                <settings/>
                <workflows/>
                  </importexportxml>";
    var importRequest = new ImportCompressedXmlWithProgressRequest
                {
                    ImportJobId = Guid.NewGuid(),
                    CompressedCustomizationXml = GetCompressedCustomizationXmlFromEmbeddedResource(),
                    ParameterXml = string.Format(parameterXml, string.Join("\n", _entitySchemaEntityNames.Select(item => string.Format("<entity>{0}</entity>", item)).ToArray()))
                };
    try
    {
        _crmService.Execute(importRequest);
    }
    catch (Exception e)
    {
        //Error resulted from import request
    }

    // Retrieve the results of the import.
    XmlNode node;
    do
    {
        Thread.Sleep(2000);
        var job = (importjob)_crmService.Retrieve(EntityName.importjob.ToString(), importRequest.ImportJobId, new AllColumns());
        var data = new XmlDocument();
        data.LoadXml(job.data);
        node = data.SelectSingleNode("importexportxml/entities/entity/@result");
    } while (node == null);

    //code below here never gets executed because the loop continues infinitely
}

私は探していましたが、使用されているImportXmlWithProgressのネット上で[有用な]例は見つかりませんでした。うまくいけば、誰かがそれを使用し、それを機能させる方法のアイデアを持っています。

4

1 に答える 1

0

このメッセージに問題があったことを覚えていますが、何が問題だったのか正確には思い出せません。インポート ファイルのサイズは? また、カスタマイズをインポートするためのインポート ユーティリティも作成し、スレッドImportCompressedAllXmlRequestで同期 (タイムアウトなし)を使用しています。BackgroundWorker大量のカスタマイズについては、 http ://support.microsoft.com/kb/918609 を参照する必要がある場合があります。これを避けるために、通常、カスタマイズを小さなインポートの束に分割します。

XPath は"importexportxml/entities/entity[@result]"?

于 2009-10-07T13:12:34.780 に答える