1

ケース エンティティとすべてのアクティビティ エンティティ (電子メール、電話など) に「お金」タイプのカスタム属性を持つ Dynamics CRM 4.0 インスタンスがあります。組み込みの「アクティビティをケースに変換」機能を使用すると、作成元のアクティビティに通貨が設定されていても、結果のケースに通貨が設定されていないこと。ケースが開かれるたびに、ユーザーは次の JavaScript エラーを受け取ります。

金額フィールドに値が存在する場合は、通貨が必要です。通貨を選択して、もう一度お試しください。

これは非常に迷惑です!どうすれば修正できますか?通貨を設定する方法はありますか?ケースはアクティビティから作成されるとすぐに開かれるため、同期的に実行する必要があります。そのため、通貨を設定するワークフローを開始したとしても、ユーザーは少なくとも 1 回はそのエラーを受け取ります。または、何らかの方法で警告を抑制することはできますか? 通貨の設定はあまり気にしません。エラーをなくしたいだけです。

4

8 に答える 8

3

このコードは、同じ問題を抱えている次の人に役立つと思います。以下で何をしたかを理解するために丸一日を費やしました。

ここには 2 つの手順が含まれます。

  1. デフォルトの通貨を設定
  2. 通貨フィールドの通貨記号を設定します。

これがコードサンプルです。

var currency = crmForm.all.transactioncurrencyid;

if (currency.DataValue == null) {
    var lookupData = new Array();
    var lookupItem= new Object();

    //Get transaction currency value from :
    select **TransactionCurrencyId** from MSCRM.dbo.TransactionCurrency
        lookupItem.id = '{The GUID that you get from the SELECT statement above}';
        lookupItem.typename = 'transactioncurrency';
        lookupItem.name = 'US Dollar';
        lookupData[0] = lookupItem;
        currency.DataValue = lookupData;
    //set default currency symbol for all the Money field.
    var defaultSymbol = '$';
    for(var i=0; i < crmForm.all.length ; i++)   {
        var oCtr = crmForm.all[i];
        if(!IsNull(oCtr.IsMoney) && !oCtr.IsBaseCurrency)
        {
            oCtr.CurrencySymbol = defaultSymbol;
        }
    }
}
于 2010-08-17T04:10:34.913 に答える
2

この煩わしい問題は、私のシステムでは、米ドルに使用される transactioncurrencyid を発見し、エンティティのデータベース テーブルの transactioncurrencyid 列を既存のすべてのエンティティ レコードに対して更新することで解決されました。これを行った後、エンティティフォームにお金の値を追加することができましたが、それ以上の問題はありませんでした。このソリューションが誰にとっても理想的かどうかはわかりませんが、これを行うためのコードを書きたくなかったので、新しく定義されたエンティティにお金の属性を追加した場合、コードを書く必要がなかったので、そうする必要はないと感じましたtransactioncurrencyid フィールドに入力する私の部分-デフォルトでそれを行いました。要約すると、この問題は、既存のデータが関連付けられている既存のエンティティに money フィールドが追加された場合にのみ発生するようです。

于 2010-05-27T19:17:00.397 に答える
2

Personalize Workspace の [General] タブでデフォルトの通貨を設定 新しいレコードはこの通貨を使用する 既存のレコード (money フィールドが追加される前) については、高度な検索を使用して通貨値のないレコードを検索し、一括編集を使用して通貨を設定します

于 2012-04-13T02:24:19.283 に答える
1

あなたはこの記事をチェックしたいかもしれませんMitchMilamによるCRM4通貨計算

更新:グーグルした後、transactioncurrencyidルックアップをどこかに設定する必要があるかもしれないことがわかりました。したがって、あなたの場合、それはワークフローコードの保存中または実行中の可能性があります。ここから読みますエラー:Javascriptを使用してCRM4.0マネーフィールドに小数値を割り当てます

于 2009-08-05T02:47:10.387 に答える
1

フォームにお金のフィールドがある場合、CRMは使用する通貨を知る必要があります。ユーザー設定でデフォルトの通貨が設定されていることを確認します(メインページから[職場のパーソナライズ]、次に[全般]タブ)。つまり、各ユーザーはデフォルトの通貨を設定する必要があります。

また、フォームに通貨フィールドを追加し、デフォルトで米ドルに設定してからフィールドを非表示にすることで、この問題を回避することができました。ただし、メモリが機能する場合、米ドルの通貨はシステムのレコードであり、環境ごとに異なるGUIDを持つ可能性があるため、これは理想的ではありません。

于 2009-08-05T12:52:59.650 に答える
1

CRM 2011 のこの問題の解決策を探していたときに、Google 検索でこのスレッドが表示されたので、JavaScript を使用して CRM 2011 フォームのオンロードでデフォルトの通貨ルックアップを設定する方法を説明するブログ記事を追加することにしました。 、JSON および OData。

http://crmscape.blogspot.com/2011/03/crm-2011-set-default-transaction.html

于 2011-03-04T15:31:44.053 に答える
0

私は、transactioncurrencyidを設定する必要があるというHadiTeoに同意します。私がこれに出くわしてからしばらく経ちました-それで、これが私が覚えていると思うものです。

お金のフィールドが入力された新しいエンティティを作成すると、取引通貨が設定されます。エンティティを更新すると、取引通貨フィールドは設定されません。

Activity to Case関数を使用したことがないので、それが何をするのかよくわかりません。回避策として実行できることの1つは、transactioncurrencyidをフォームに追加することです。次に、ケースを変更する前に設定できます。

もう1つは、コードの通貨をデフォルトにすることです。デフォルトの通貨を決定する場所は2つあります。まず、ユーザー設定から。組織設定の2番目(nullの場合)。

于 2009-08-05T13:34:07.043 に答える
0

この問題の修正 1. 基本通貨フィールドもフォームに追加します。2. 基本通貨フィールドの「デフォルト オプションで表示」のチェックを外します。

于 2014-01-09T05:34:51.230 に答える