フォームが更新モードのときに、メインの請求書フォームで「Get Products」リボン アクション ロジックが自動的に実行されるようにしようとしています。
請求書は、商談から始まるビジネス フローを通じて作成されます。
請求書の onLoad イベントの load イベントからのコードは次のとおりです。
onFormLoad = function () {
//if we are in update mode...
if (Xrm.Page.ui.getFormType() == 2) {
//if no products are present in the list...
if (loadInvoiceProducts().length == 0) {
Mscrm.CommandBarActions.getProducts();
}
}
};
loadInvoiceProducts = function () {
//just a jQuery ajax call to the oData service... this works.
var products = oDataQuery("InvoiceDetailSet?$filter=InvoiceId/Id eq guid'" + Xrm.Page.data.entity.getId() + "'");
return products.results;
};
新しい注文を手動で作成すると (フォームはフォーム モード == 1、作成)、必要なフィールドに入力して保存すると、フォームが更新モードでリロードされ、[製品を取得] ポップアップが表示されます。 .
問題は、業務フローを通じて請求書を作成する場合です。請求書フォームが作成モードで開き (ビジネス フローを介して、すべての必須フィールドが既に入力されています)、Ctrl-S を押すと、上記のコードがトリガーされ、フォームが更新モードになりますが、別の更新が行われ、上記のコードは実行されません。
もう一度トリガーするには、F5 を押す必要があります。
誰もこのようなことを試みたことがありますか?
ありがとう。