getDisplayValue() を使用して通貨フィールドに別の通貨フィールドに基づく値を (スクリプトを通じて) 設定すると、フィールドには 0.00 が設定されます。Issue getDisplayValue() を使用して通貨フィールドに別の通貨フィールドに基づく値を (スクリプトを通じて) 設定すると、フィールドには 0.00 が設定されます。 問題 Helsinki で、別の通貨フィールドの getDisplayValue (文字列値に通貨記号を含む) を使用して、通貨フィールドがスクリプトを介して更新されたとき。例: current.sysapproval.price.getDisplayValue(); の場合、コードはそれを受け入れ、通貨記号を削除してフィールドに数字の部分のみを入力できます。Istanbul 以降では、同じ更新は機能しません。通貨フィールドは更新されないか、以前に値がなかった場合は 0.00 に設定されます。 サンプルケース 次のケースは、報告された動作を再現しています。 テーブル u_test_table には、次の 2 つの類似した通貨フィールドがあります。 moneyu_amount3 現在、sys_id が 29ee07db131cf200bc5bb9d12244b0b5 のレコードの [money] フィールドの値は 711.09 です。 次のバックグラウンドスクリプトを実行します。 var gr = new GlideRecord("u_test_table"); gr.get('sys_id', '29ee07db131cf200bc5bb9d12244b0b5'); gs.debug(' amount: '+ gr.money); gr.u_amount3 = gr.money.getDisplayValue(); // gr.u_amount3 = gr.money; gr.update(); gs.debug(' u_amount3: '+ gr.u_amount3); --> u_amount3の値を変更しません。 getDisplayValue で値を更新せず、 gr.money 値のみで値を更新するようにスクリプトを変更します。 その後、動作して値を更新します。 Helsinki インスタンスで同じことを行うと、指定されたコード (gr.money.getDisplayValue() を使用) を使用した場合でも、u_amount3 フィールドが期待値 711.09 に更新されます。 CausegetDisplayValue() 関数は、通貨記号を含む標準通貨形式 (小数点と桁区切りを使用) で書式設定された通貨フィールドの値を返します。Helsinki では、フィールドにこの値を入力すると、その通貨記号から値が削除されます。尚、Istanbul 以降のバージョンでは、この動作は発生しなくなりました。Resolutionスクリプトでは、通貨フィールドの getDisplayValue() を使用して別の通貨フィールドに入力しないでください。たとえば、例のように current.priceまたは gr.money を使用します。コーディングの観点からは、通貨値に別の通貨フィールドの表示値を入力する正当な理由はありません。Related Links詳細については、製品ドキュメントのトピック スクリプトの通貨値 を参照してください。