2

フォームが更新モードのときに、メインの請求書フォームで「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 を押す必要があります。

誰もこのようなことを試みたことがありますか?

ありがとう。

4

1 に答える 1