格納値の小数部なしで表示される通貨フィールドと数値フィールドIssue 通貨フィールドと数値フィールドは、値の小数部分なしで表示されます 症状数値フィールド (10 進数フィールド、通貨、価格) のすべての値に、小数部が切り捨てられた値で表示される。値は 10 進数値でデータベースに正しく格納されますが、UI (ServiceNow アプリケーションの任意の場所) では 10 進数フィールドに小数部が表示されません。通貨フィールドと価格フィールドの場合、小数部は ,00 として表示されます。値は丸められません (データベース内の 10 進数値に基づく)。10 進数値は、値から切り捨てられたものです。 レコードで show XML を使用してデータベースから取得した値を表示する場合、10 進数値も表示されません。 原因この問題は、米国英語以外でインストールされたオペレーティングシステムを使用しているセルフホストインスタンスでのみ発生する可能性があります。データベースでは、値は小数点として (.) を使用して 10 進数値で正しく格納されます。 u_decimalu_currencyu_price53.5053.5053.50 ただし、アプリケーション・サーバー (ノード) は、 $LANG 環境変数が、小数点にコンマ (,) を使用するロケールに設定されているユーザーによって開始されます。 例: $ echo $LANGfr_FR.UTF-8 アプリケーションノードがそのユーザーによって ( /glide/bin/glide.sh または /glide/nodes/<instance_port>/startup.sh を使用して) 起動されると、データベースから受信しない小数点のカンマ値が想定されます (「.」を送信するため)。その結果、小数点以下の部分は無視され、小数フィールドの値は切り捨てられ、通貨フィールドと価格フィールドの小数部はゼロとして表示されます。 解決アプリケーションノードを起動する前に、言語変数 (LANG) が小数点に (.) を使用する値に設定されていることを確認してください。たとえば、ポート16000で実行されている labinstというインスタンスの場合: $ set LANG='en_US.UTF-8'----- or (depending on OS) -----$ export LANG='en_US.UTF-8'$ echo $LANGen_US.UTF-8$ /glide/bin/glide.sh startStarting glide software: - node: Starting labinst_16000Cleaning local tmp: /glide/nodes/labinst_16000/tmpStarting Glide (labinst_16000)... アプリケーションにデータを表示するために使用されるロケール設定は、 glide.system.locale システムプロパティによって決定されます。小数点をコンマとして使用するロケール ( fr.FR など) に設定されている場合、データベースに小数点が格納されていても、ユーザーには小数点の代わりにコンマが表示されます。 ユーザーレベルでは、システムプロパティはsys_userレコードの国 (および言語) によって上書きできます。これにより、数値の表示方法が決まります。変更された LANG 変数を使用してノードを開始すると、10 進値を含む数値フィールドの新規および既存の値が、10 進値でデータベースに格納されていたため、正しく表示されます。再照会すると、新しく入力されたレコードが正しく表示されます。 注意:[通貨] フィールドと [価格] フィールドの場合、既存のレコードの表示値 (無効な LANG 設定でアプリケーションノードを起動したときに入力) が ,00 と表示されたままになります。 アプリケーションで通貨フィールドと価格フィールドの値を表示する場合、値はベーステーブルからではなく、 fx_currency_instance テーブル (通貨フィールドの場合) および fx_price (価格フィールドの場合) テーブル (ベーステーブル、レコード、およびフィールドを参照する) から読み取られます。これにより、アプリケーションは複数の通貨を処理できます。値は小数点以下桁なしで保管されます (アプリケーション・サーバーがフランス語で始動されたときに作成されたときに保管されます)。変数の変更後に作成された新しいレコードは、10 進数値でそこに格納されます。 フォームの値を手動で更新すると、データベース内の値が更新され、クエリ時に正しく表示されます。または、 fx_currency および fx_price の既存の値を変更するために、データ修正スクリプトが必要です。参照通貨で正しい値を持つベーステーブル、レコード、およびフィールドへの参照があります。単一通貨インスタンスでは、これは fx_currency_instance および fx_priceで使用される通貨と同じです。複数通貨のインスタンスでは、換算が必要になります。