我正在使用GP2013上的Web服务创建应付账款发票。或者,我的用户可以提供订单项分配。我可以创建发票,但除非我在动态安全控制台中将CreatePayablesInvoice策略修改为“Distributions Will Be Provided”,否则发票将获得系统提供的分配以及我创建的分配线。我希望能够在必要时提供分发,否则我希望系统处理它。动态GP Web服务:更改运行时的策略行为
文档建议我应该能够更改代码中的策略,但是当我从GetPolicyByOperation获取策略对象时,行为数组为空。我曾尝试在代码中手动创建行为,但它不会改变发票创建时发生的情况。唯一影响结果的是编辑安全控制台中的属性。
我对改变政策代码如下:
payablesInvoiceCreatePolicy = wsDynamicsGP.GetPolicyByOperation("CreatePayablesInvoice", context);
BehaviorKey bk = new BehaviorKey();
bk.Id = new Guid("e476a157-ecf0-4dae-8cef-317dd2cfbe41");
Behavior b = new Behavior();
b.Key = bk;
BehaviorOption opt0 = new BehaviorOption();
opt0.Key = new BehaviorOptionKey();
opt0.Key.Id = 0;
opt0.Name = "Distributions Will Be Provided";
BehaviorOption opt1 = new BehaviorOption();
opt1.Key = new BehaviorOptionKey();
opt1.Key.Id = 1;
opt1.Name = "Automatically Create Distributions";
b.Options = new BehaviorOption[] { opt0, opt1 };
b.SelectedOption = b.Options[1];
payablesInvoiceCreatePolicy.Behaviors = new Behavior[]{b};
wsDynamicsGP.CreatePayablesInvoice(payablesInvoice, context, payablesInvoiceCreatePolicy);
文档似乎什么应该或不应该在这里工作稀疏。根据我的用户是否决定提供订单项分配,我必须假设我应该能够根据我在运行时看到的适应性更新策略。
有人知道我失踪了吗?