在GP Web服务中设置角色会产生未处理的异常

时间:2013-09-11 16:15:56

标签: c# web-services dynamics-gp

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

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

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

context.OrganizationKey = (OrganizationKey)companyKey;

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

context.RoleKey = roleKey;

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

1 个答案:

答案 0 :(得分:0)

我在美国北达科他州Fargo举行的GP Technical Airlift 2013期间与一名微软员工合作。他发现这个失败可能是一个错误,他将在内部记录。他通过在Context对象上使用WorkOnBehalfOf属性与我分享了一个解决方法。以下是我设置此代码和代码段的步骤。

  1. 创建一个新的Windows用户“domainuser01”
  2. 将domainuser01分配给Dynamics安全控制台中的角色,该角色在“创建应收账款发票政策”中将“创建总帐帐户分配行为”设置为“将提供分配”。
  3. 授予domainuser01对GP数据库和Web服务数据库的Windows身份验证访问权限。
  4. 代码:

    context.OrganizationKey = (OrganizationKey)companyKey;
    
    receivablesInvoiceCreatePolicy = wsDynamicsGP.GetPolicyByOperation("CreateReceivablesInvoice", context);
    
    context.WorkOnBehalfOf = "<domain>\\domainuser01";
    
    wsDynamicsGP.CreateReceivablesInvoice(newReceivablesDoc, context, receivablesInvoiceCreatePolicy);