タイム ゾーン依存属性とは、表示する際に現在のタイム ゾーンが反映される属性です。属性値は、表示されるタイム ゾーンに従って調節されます。
以下にタイム ゾーン依存属性を挙げます。
格納
これらの属性は、グリニッジ標準時 (GMT + 0) でデータベースに格納されます。属性エディター、デザイナー、[図] ファクト シートなどで属性がユーザーに表示される際に、まず、クライアントのローカル時間に変換されます。
ユーザーが自分のローカル クライアント タイム ゾーンで値を変更すると、その値は内部で GMT + 0 に変換され、データベースに格納されます。
レポート
レポートがクライアントから起動されると、クライアントのタイム ゾーンがサーバーに転送されます。サーバーは、出力の作成時にタイム ゾーン依存属性を変換します。
スケジュールされたレポートの実行時には、クライアント情報がなく、変換を実行できません。そのため、タイム ゾーン依存属性は、サーバーのタイム ゾーンが GMT + 0 であるという前提で表示されます。
レポート スクリプト API
時間属性の値を変えるには、文字列をパラメーターとして指定できるメソッドを必ず使用してください。例:
oDef.Attribute(Constants.AT_SAP_TIME_GEN, 0).setValue("07:12:45;11/19/2018");
推奨事項
java.util.Date を使用せず、特に、Date オブジェクトをパラメーターとして指定できる setValue() メソッドを使用することを推奨します。Date のさまざまな構成子のほとんどは、クライアントのタイム ゾーンに従って、自動変換を実行します。toString() などを使用する、文字列への日付変換も、クライアントのタイム ゾーンへの変換を実行します。
例
この例では、2 人のユーザーが同じサーバーにアクセスすると仮定します。
ドイツのユーザーが、2018 年 11 月 19 日午後 4 時 12 分にオブジェクトを作成します。(現地のオペレーション システムに基づいて表示される作成時間は 19.11.2018 16:12 です。)サンフランシスコにいる別のユーザーが [作成時間] 属性を見ると、サンフランシスコの時間はドイツ時間より 9 時間遅れているため、2018 年 11 月 19 日午後 4 時 12 分ではなく、2018 年 11 月 19 日午前 7 時 12 分になります。