0

マネージド ソリューションの 1 つで深刻な問題が発生しています。多数のカスタム エンティティを作成するカスタム ワークフローがあり、これらのカスタム エンティティにはいくつかの金額フィールドがあります。

ワークフローを実行すると、次のようになります。

  1. カスタム ワークフローが「待機中」状態になり、null 参照例外がスローされます。
  2. いくつかのエンティティが作成されましたが、そのうちの 1 つは money フィールドに null 値があります (onLoad のデフォルトは £0.00 です)。
  3. このレコードを開くと、この投稿のタイトルに記載されているエラー メッセージが表示されます。

あなたが知っておくべきいくつかのこと:

  1. デフォルトの通貨は、システムで (英ポンドに) 設定されています。
  2. ウェブ上の他の場所で提案されているように、フォームの OnLoad() イベントで JavaScript をフォローしようとしました。

var lookupData = new Array(); 
var lookupItem= new Object(); 
lookupItem.id = "{7bCA916E76-FA28-E211-8C7C-0800273EE9D1}"; 
lookupItem.entityType = "transactioncurrency"; 
lookupItem.name = "Pound Sterling";     
lookupData[0] = lookupItem; 
Xrm.Page.getAttribute("transactioncurrencyid").setValue(lookupData);

この JS がフォーム上にあり、新しいレコードを作成しようとすると、エラーが発生します。

エラー: 'Xrm.Page.getAttribute(..)' は null またはオブジェクトではありません

ここで私がしなければならないことについて誰かアドバイスできますか?

このエラーは、開発環境ではなく、ライブ システムでのみ発生します。

4

1 に答える 1

3

これは、設定しようとしている通貨の ID が、ライブ環境と開発環境で異なるためです。

ライブ環境から「英ポンド」通貨の ID を取得し、「ここに挿入」する場所に配置する必要があります。

lookupItem.id = "--insert here--"; 
lookupItem.entityType = "transactioncurrency"; 
lookupItem.name = "Pound Sterling";

それはうまくいくでしょう。

于 2012-11-23T14:40:16.330 に答える