2

シナリオ:

ステップ 1: MS CRM 2011 を使用しています。To フィールド値を取得するための JavaScript 関数 (電子メール エンティティ) を記述し、その値を関連フィールドに設定します。正常に動作していました。

ステップ2:関連フィールドの値を更新するプロセスを明確に記述します。関連フィールドは自動的に値を取得するため、関連フィールドを空に変更する必要があります。正常に機能していました。

ステップ 3: onchange イベントで JavaScript 関数を呼び出します。

問題:関連フィールドの値は、プロセスの実行後にクリアされます。これは、関連フィールドで古い値が置き換えられ、新しい値が取得されることを意味します。これは、変更イベントのようなものです。古い値は空として置き換えられます。

しかし、関数はトリガーされません。メールフォームを開いて、関連するフィールドを変更すると、正常に機能していました。つまり、Javascript が機能することを意味します。

概要: Process から値を変更したときに onchange イベントが呼び出されませんでした。

この問題を解決する方法。

**次のスクリーン ショットを参照してください。

この Java スクリプトの使用:

ステップ 1 コーディング 関数 TofieldValuetoOtherField() {

var lookup = new Array();
lookup = Xrm.Page.getAttribute("to").getValue();
if (lookup != null) 
{

    var name = lookup[0].name;
    var id = lookup[0].id;
    var entityType = lookup[0].entityType;
    Xrm.Page.getAttribute("regardingobjectid").setValue([{ id: id, name: name, entityType: entityType }]);
     //Xrm.Page.data.entity.save();          

   }}

ここに画像の説明を入力

このように Onchange を呼び出します。

ここに画像の説明を入力

4

2 に答える 2

6

JavaScript コードは、Web インターフェイスを使用して操作 (この場合の onload、onsave、および onchange) が実行された場合にのみ呼び出されます。

ワークフロー (またはプラグイン) を使用してフィールド値を変更すると、添付された JavaScript は実行されません。これは、コードがブラウザー ウィンドウ内でのみ実行されるためです。

于 2013-10-18T12:26:04.073 に答える
0

CRM Web インターフェイスを使用して電子メールを作成している場合は、すべてを OnLoad イベントにバインドする必要があります。OnLoad は OnCrmPageLoad 関数を呼び出します (addOnChange メソッドを使用して実行しているため、OnChange 呼び出しを削除します)。

function OnCrmPageLoad() {
   //Apply every time the To field changes
   Xrm.Page.getAttribute("to").addOnChange(TofieldValuetoOtherField); 
   //Apply when the from loads  
   TofieldValuetoOtherField(); 
}

TofieldValuetoOtherField = function()
{
   var lookup = Xrm.Page.getAttribute("to").getValue();
   if (lookup) 
   {
       var name = lookup[0].name;
       var id = lookup[0].id;
       var entityType = lookup[0].entityType;
       Xrm.Page.getAttribute("regardingobjectid")
        .setValue([{ id: id, name: name, entityType: entityType }]);
   }
}

Outlook や Web サービスなどの Web インターフェイスの外でメールを作成するときにこの動作を強制する必要がある場合は、プラグインを使用して関連フィールドを上書きする必要があります (上記のとおり)。

于 2013-11-30T00:56:30.230 に答える