web-dev-qa-db-ja.com

Microsoft Dynamics CRM365のJavaScriptでルックアップフィールドの値を取得するにはどうすればよいですか?

Microsoft Dynamics CRMのJavascriptを使用して、ルックアップフィールドの値を取得し、その値を別のフィールド(たとえば、「名前」フィールド)に設定しようとしています。どうすればいいですか?

4
babak jafari

Docs.Microsoftで見つけました。これを行うには、最初に「Xrm」と呼ばれるDynamicsCRMのドキュメントオブジェクトモデルについて知っておく必要があります。

var lookupValue=Xrm.Page.data.entity.attributes.get('new_account').getValue()[0].name;
Xrm.Page.getAttribute("new_name").setValue("Your Account Name is:"+lookupValue);

これを関数として使用し、Microsoft Dynamics CRMフォームの保存(OnSave)イベントで呼び出すことができます。

2
babak jafari

新しい(CRM 365)メソッドを使用するには、次の2つのことを行う必要があります。

フォームライブラリを作成するときは、関数にパラメータを含める必要があります。これは、CRMが関数を呼び出すときに設定されます。ここでの私の例では、パラメーター名はexecutionContextですが、名前は重要ではありません

このCRMパラメータを取得すると、新しいXrm.Pageに相当するフォームコンテキストを取得できます。下記参照

function onLoad(executionContext)
{
  var formContext = executionContext.getFormContext();

  var lookup = formContext.getAttribute("new_account").getValue();
  formContext.getAttribute("new_name").setValue("Your Account Name is:" + lookup[0].name);
}

次に、フォームライブラリを登録するときに、実行コンテキストを渡す必要があります。これは、フォームライブラリメソッドに設定する必要のあるexecutionContextパラメータがあることをCRMに通知するものです。

Pass execution context

3
jasonscript