0

最终目标:使用 Web 服务在 Dynamics GP 中创建应收账款文档,该 Web 服务可以选择是否从 C# 应用程序提供分发。

我正在尝试:检索帐户分配行为设置为“将提供分配”的特定角色的策略

我在下面包含了一个代码片段。如果我删除 context.RoleKey 属性的设置,则默认角色一切正常,并且使用自动分配创建事务。但是,设置 RoleKey 属性会导致在 GetPolicyByOperation 方法调用处出现未处理的脚本异常。我试过使用超级用户 - 如下所示。我还尝试了一个新角色,让它可以访问所有内容。这两个角色都已用于在安全控制台中创建新版本的创建应收帐款发票策略。

context.OrganizationKey = (OrganizationKey)companyKey;

RoleKey roleKey = new RoleKey();
roleKey.Id = "Superuser";

context.RoleKey = roleKey;

receivablesInvoiceCreatePolicy = wsDynamicsGP.GetPolicyByOperation("CreateReceivablesInvoice", context);
4

1 回答 1

0

在 2013 年法戈 GP 技术空运期间,我曾与 Microsoft 员工一起工作。他发现这个失败很可能是一个错误,他将在内部记录。他确实通过使用 Context 对象上的 WorkOnBehalfOf 属性与我分享了一个解决方法。这是我的设置步骤和代码片段。

  1. 创建一个新的 Windows 用户“domainuser01”
  2. 将 domainuser01 分配给 Dynamics Security Console 中的角色,该角色在“创建应收帐款发票策略”中将“创建 GL 帐户分配行为”设置为“将提供分配”。
  3. 授予 domainuser01 Windows 身份验证访问 GP 数据库和 Web 服务数据库的权限。

代码:

context.OrganizationKey = (OrganizationKey)companyKey;

receivablesInvoiceCreatePolicy = wsDynamicsGP.GetPolicyByOperation("CreateReceivablesInvoice", context);

context.WorkOnBehalfOf = "<domain>\\domainuser01";

wsDynamicsGP.CreateReceivablesInvoice(newReceivablesDoc, context, receivablesInvoiceCreatePolicy);
于 2013-09-23T19:58:20.290 回答