gpt4 book ai didi

c# - 有关 CRM 错误 : "Solution manifest import: FAILURE" 的更多详细信息

转载 作者:行者123 更新时间:2023-12-02 19:43:30 30 4
gpt4 key购买 nike

我正在使用 C# 创建 CRM 的导入/导出工具。有时,我面临导入错误,我的捕获中仅显示此消息“解决方案 list 导入:失败”。我尝试将其转换为其类型 (FaultException),但我没有更多详细信息。

如果我直接在 CRM 中导入同一文件,我会收到更好的错误消息(例如:“导入解决方案 xxxx 失败。您的系统中缺少以下组件 [...]”) .

有没有办法获得完整的消息?

这是我的代码:

try
{
_serviceProxy.Execute(impSolReq);
}
catch (Exception ex)
{
if (ex is FaultException<OrganizationServiceFault>)
MessageBox.Show("Error during import. More details: " + ((FaultException<OrganizationServiceFault>)ex).Detail);
else
MessageBox.Show("Error during import. More details: " + ex.Message);
}

感谢您的回答!

最佳答案

Dynamics CRM 解决方案是使用 ImportSolutionRequest 导入的。

ImportSolutionRequest 具有一个包含解决方案导入作业 ID 的属性。您需要此 ID 才能监控作业进度并在导入失败时获取错误详细信息。

请求的实例化可能如下所示:

Guid importJobId = Guid.NewGuid();

var request = new ImportSolutionRequest
{
ConvertToManaged = true,
CustomizationFile = buffer, // a byte[] array holding the solution contents
ImportJobId = importJobId,
OverwriteUnmanagedCustomizations = true,
PublishWorkflows = true,
SkipProductUpdateDependencies = false
};

执行请求。当发生导入错误时,您可以使用作业 ID 检索错误详细信息。

try
{
_service.Execute(request);
}
catch (FaultException<OrganizationServiceFault> ex)
{
if (ex.Detail.ErrorCode == -2147188685) // ImportSolutionError
{
Entity job = _service.Retrieve("importjob", importJobId, new ColumnSet { AllColumns = true });
// TODO: process job error details.
}

throw;
}

属性 importjob.data 包含一个 XML 文档,其中包含您要查找的详细信息。

ImportSolutionRequest 是同步执行的,很容易超时。然而,可以安全地忽略超时,因为导入过程继续在后台运行。您可以通过定期检索导入作业记录来跟踪进度。只要属性 importjob.completedonnull,作业仍在运行。

关于c# - 有关 CRM 错误 : "Solution manifest import: FAILURE" 的更多详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32476923/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com