0

CRM 2015 の「登録採用」フォームに取り組んでいます。具体的には 3 つのフィールドがあります。製品、コンポーネント、および編集。「製品」は、製品エンティティを参照するルックアップ フィールドです。「Component」と「Editorial」は、javascript を使用して入力する単純なテキスト フィールドです。製品エンティティ内の各製品には、製品フォーム内のオプション セットである、対応するコンポーネントとエディトリアルがあります。

目標: 特定の製品レコードを参照し、対応するコンポーネントと編集情報を取得し、「登録採用」の「コンポーネント」フィールドと「編集」フィールドを自動入力する「製品」で OnChange をトリガーする関数が必要です。

問題: 「製品」ルックアップ フィールドから値を取得し、それを使用して必要な情報を取得する方法がわかりません。

これが私がテストしたコードの一部です:

function populateProduct(blank)
{
    if (blank != null || blank != undefined)
    {
        var productName;
        var product = Xrm.Page.getAttribute(blank);
        if (product.getValue != null || product.getValue != undefined)
        {
            productName = product.getValue()[0].name;
            console.log("the product name is " + productName);
            var componentXml = "<fetch mapping='logical'>"+"<entity name='product'>"+"<attribute name='new_component'/>"+"<filter>"+"<condition attribute = 'name' operator='eq' value='"+productName+"' />"+"</filter>"+"</entity>"+"</fetch>";
            var fetchComponent = XrmServiceToolkit.Soap.Fetch(componentXml);
            console.log("the respective component is " + fetchComponent);
        }
    }
}

ログ ステートメントは、テスト中に必要な情報を取得しているかどうかをテストするためのものです。

ログ ステートメントによると、製品名は確かに取得されていますが、対応するコンポーネントは取得されていません。

Fetch を使用してクエリを作成することを検討しましたが、期待する情報が得られないため、正しく理解できていないと思います。明らかに、これは非常に不完全な機能ですが、残りを書き出す前に、必要な情報を取得していることを確認したかったのです。

何かアドバイス?

4

1 に答える 1