0

最終的な目標: ディストリビューションを提供するかどうかを C# アプリケーションから選択できる Web サービスを使用して、Dynamics GP で売掛金ドキュメントを作成すること。

私が試みていること: アカウント配布の動作が「配布が提供される」に設定されている特定の役割のポリシーを取得します

以下にコード スニペットを含めました。context.RoleKey プロパティの設定を削除すると、デフォルトのロールですべてが正常に機能し、自動配布でトランザクションが作成されます。ただし、RoleKey プロパティを設定すると、GetPolicyByOperation メソッド呼び出しで未処理のスクリプト例外が発生します。以下に示すように、スーパーユーザーを使用してみました。また、すべてにアクセスできる新しい役割も試しました。これらのロールは両方とも、セキュリティ コンソールで Create Receivables Invoice ポリシーの新しいバージョンを作成するために使用されています。

context.OrganizationKey = (OrganizationKey)companyKey;

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

context.RoleKey = roleKey;

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

1 に答える 1

0

ノースダコタ州ファーゴで開催された GP Technical Airlift 2013 で、Microsoft の従業員と一緒に仕事をしました。彼が見つけたのは、この失敗はバグである可能性が高いことであり、彼は内部でログに記録しようとしています。彼は、Context オブジェクトの WorkOnBehalfOf プロパティを使用して回避策を私と共有しました。これを設定する手順とコード スニペットを次に示します。

  1. 新しい Windows ユーザー「domainuser01」を作成します
  2. 「Create Receivables Invoice Policy」で「Create GL Account Distributions Behavior」が「Create Distributions Will Be Provided」に設定されている Dynamics セキュリティ コンソールのロールに domainuser01 を割り当てます。
  3. GP データベースと Web サービス データベースへの domainuser01 Windows 認証アクセスを許可します。

コード:

context.OrganizationKey = (OrganizationKey)companyKey;

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

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

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