4

私は製品と呼ばれるエンティティを持っています。商品価格というフィールドがあります。

現在、100個の製品を作成しています。すべての製品の「商品価格」フィールドを合計 (数学演算) し、「合計商品価格」という機会フィールドと呼ばれる別のエンティティに表示したいと考えています。

これに加えて、私が101製品を作成し、それが「商品価格」である場合、機会の「合計商品価格」フィールドは自動的に更新されます。

だから私はフォームのフィールドにSUMMEDを持っています。たとえば、フィールド A とフィールド B があり、フィールド A に 3.14 を掛けて、結果をフィールド B に表示します。

これがコードです。

function SumField() {  
   var price = Xrm.Page.getAttribute("new_price");   
   var total_price = Xrm.Page.getAttribute("new_total_price");

   if(price.getValue() != null) {
      var newValue = price.getValue() * 3.14;
      total_price.setValue(newValue);

      // Make sure the changes are saved back to the server - in CRM 4.0, this was     crmForm.new_fieldname.ForceSubmit = true;
      Xrm.Page.getAttribute("new_total_price").setSubmitMode("always"); 
   }
}
4

2 に答える 2

1

あなたにはいくつかの可能性があります、最良の選択はあなたの技術の専門知識に依存します:

  • ワークフロー-フィールドnew_total_priceが変更されたときにワークフローを起動し、関連する商談を更新します。このためには、既知のプログラミング言語は必要ありません。
  • プラグイン-製品エンティティの更新で、関連する商談を更新できます。C#またはVB.NETを知っている必要があります
  • Javascript-1つの解決策は、製品に関連するもの(たとえば、FetchXMLまたはODataを使用する場合)にnew_total_priceが入力されているかどうかを確認する機会の負荷であり、その情報で機会を更新できます。

他にも選択肢はありますが、ここにはいくつかの選択肢があります。

于 2013-03-15T12:03:11.350 に答える
1

このシナリオでは JavaScript は機能しません。少なくとも最適なソリューションにはなりません。

JavaScript で処理するのではなく、Product エンティティの変更時に起動し、機会エンティティの目的のレコードを更新するプラグインを作成します。(1:Nの関係で1つの機会に関連する製品は少ないと考えています)

1 つの製品の変更によってすべてのレコードの値が更新されるようにするには、Opportunity を作成して、この値を保持し、JavaScript を使用して Opportunity フォームに表示する "Configuration" という別のエンティティを作成します (理由: 1 つの製品レコードの作成がすべてのレコードを更新する場合CRMのパフォーマンスに影響を与える機会)

于 2013-03-15T11:19:08.213 に答える