2011-12-08 12 views
3

.jsコードを作成するときにXrm変数が機能しないようです。インクルードする必要のあるライブラリがあるか、最初に実行する必要がある機能はありますか? ClientGlobalContext.js.aspxが正しく参照されていることを確認する必要がありますか?私は 'C++'の考え方で、実行する必要のある「インクルード」コマンドがあるかどうか疑問に思っています。Dynamics CRM 2011でXrmが定義されていません

私のjsファイルはこのように見えますが、 'window.parent'を削除すると私はそれを呼び出す場合、2番目の関数からコードが壊れます。 JavaScriptライブラリが追加として

///<reference path="C:\Users\steve.lee\Downloads\XrmPage-vsdoc.js"/> 

if (typeof (SDK) == "undefined") 
{ SDK = { __namespace: true }; } 

SDK.XRM = { 
    getCurrentControl: function() { 
     var currentControl = Xrm.Page.ui.getCurrentControl(); 
     if (currentControl == null) { 
      alert("No controls currently have focus."); 
     } 
     else { 
      alert("The control for the '" + currentControl.getLabel() + "' attribute currently has focus."); 
     } 
    }, 

    getCurrentGUID: function() { 

     if (window.parent.Xrm.Page.data.entity != null) { 
      var GUIDvalue = window.parent.Xrm.Page.data.entity.getId(); 
      if (GUIDvalue != null) { 
       return GUIDvalue; 
      } 
      else { 
       return null; 
      } 
     } 
     else { 
      return null; 
     } 
    }, 
__namespace: true 
}; 
+0

コード例を追加するか、具体的なエラーを説明してください。 – ccellar

+0

このエラーは、「Xrm.Page.data.entity」がnullまたはオブジェクトではないという一般的なJavaScriptのポップアップでした。 – Steve

答えて

9

を覆われているが実行されているあなたのコードですフォームか、Webリソースの中に座っていますか?

後者の場合、HTML Webリソースの場合はwindow.parentが必要です。これにより、フォーム上のXrmオブジェクトにアクセスできるようになります。その上のウィンドウウィンドウ。

フォームプロパティに接続されたjavascriptライブラリの場合、XRMオブジェクトはデフォルトで使用できます。

ClientGlobalContext.js.aspxは、フォームのコンテキスト内にないWebリソースがある場合に使用され、サーバーURLおよびログインしているユーザーなどにもアクセスできます。

+0

ああ、そのすべてを説明しています。はい、今私のjsライブラリは私のhtmウェブリソースの中に座っています。フォーム上のイベントハンドラにライブラリを接続するための余分なステップを踏みたいとは思わなかった。ありがとう! – Steve

1

XRM変数がどのCRM 2011年に含まれるか、通常のJSコードの設定

せずに利用可能であるべき基本はhere

関連する問題