2016-06-28 29 views
1

私は2つのエンティティ、予定と経費を扱っています。私の目標は、経費の日付が指定されたときに、onChangeという新しい経費レコードがそのフィールドを自動的に移入することです。それは、同じ日付と所有者を持つレコードを返すことになっているクエリをトリガします。CRMで時間はなく日付に応じて 'fetchXml'レコードをどうすればできますか?

function bringData() 
{ 
    var date = Xrm.Page.getAttribute("new_tripDate").getValue(); 
    var owner = Xrm.Page.getAttribute("ownerid").getValue(); 
    if (owner != null) 
     { 
      var ownerID = owner[0].id; 
      var ownerName = owner[0].name;  
     } 

    var fetchXml="<fetch mapping='logical'>"+"<entity name='appointment'>"+"<attribute name='regardingobjectid'/>"+"<filter>"+"<condition attribute = 'ownerid' operator='eq' value='"+ownerID+"' />"+"<condition attribute='scheduledstart' operator='on' value='"+date+"' />"+"</filter>"+"</entity>"+"</fetch>"; 
    var retrievedAppointments = XrmServiceToolkit.Soap.Fetch(fetchXml); 
    if (retrievedAppointments.length == 0) 
     { 
      alert("No matching records were found."); 
      return; 
     } 
    else 
     { 
      console.log(retrievedAppointments); 
     } 
} 

それは、現在の経費のページから日付を取得し、クエリのためにそれを使用しています。

は、ここに私のコードです。しかし、この関数は、日付が "無効であるか、サポートされている範囲外"であるという変更に対してエラーを表示します。私は、クエリから日付条件を削除し、それは問題を所有しているユーザーに基づいてレコードを返します。問題は、予定日のエンティティではなく、経費明細日に指定された時間があることがわかっていましたが、「オン」条件演算子を使用してその問題を修正すると考えました。私は迷っている。 Xrm.Page.getAttribute(「new_tripDate」)によって返さ

おかげ

+0

'Xrm.Page.getAttribute( "new_tripDate")によって返されるどのような値のgetValue()'。? –

+0

"new_tripDate"は、費用の日付を返します。これは日付のみのフィールドなので、時刻を00:00:00 –

答えて

1

日付時刻形式。のgetValue()を処理することはできませんフェッチものです、あなたは最低限でISO Formatに変換する必要があります。

ISOFormatメソッドを使用して日付の書式を変更するか、moment.jsなどのライブラリを使用するか、独自の小さなヘルパー関数を使用して、適切に書式設定された日付文字列を返します。 は以下を使用して日付変数を置き換えます。

var date = new Date(Xrm.Page.getAttribute("new_tripDate").getValue()).toISOString(); 
+0

として返します。これで解決しました。ありがとうございました! –

関連する問題