- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
05-05-2023 03:50 AM
皆さん
お世話になっております。
ポータルについて質問させてください。
要はService PortalのRequest Itemのコピーボタンを追加して、ボタンを押下してService Portalの申請画面を戻りたいです。Portalの申請画面に遷移したときに、コピー前の申請内容が入った状態で遷移できるイメージです。
現在は下記のCommunityリンクを参考しました、Service PortalにWidgetを作成しました。
Clone Requested Items - ServiceNow Community
ポータル
コポーボタン押下後
問題点は開始時間と終了時間は9時間差があります。UTCを取得しました、カレントのタイムゾーンはJapanです。コードから見ると、Date/TimeのタイプはgetDisplayValue の設定がありません。
この問題ご存知したら、ご連絡いただければ助かります。
解決済! 解決策の投稿を見る。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
05-07-2023 03:40 AM
質問の内容を推測して、質問内容は「CatalogUtils を使って MultiRowを CopyするScriptを作成したときに、時間が日本時間の9時間ずれている、これを解決するScriptを作成して欲しい」だと考えました。
「この問題ご存知したら、ご連絡いただければ助かります。」となっていますが、問題を知っているだけでは質問した意味がなく、問題の解決方法を求めているのだと解釈しました。
CatalogUtils を使ったことはありませんが、Scriptを解析して問題であろう個所がわかりました。
MultiRowの値は、JSON文字列として一括で受け取っています(複数項目の複数行をひとつのJSON文字列として受け取る)。この時Server sideの内部値なのでUTCの時間を受け取っている。
これをClientScriptでJSONを設定するとUserのタイムゾーン(日本時間)で設定するため9時間ずれる。
解決方法で考えてみたのはCatalogUtils の MVRS の処理でJSONに含まれるUTCをJSTに変換する処理を入れる方法。
_arrResult.push({
strType: 'MVRS',
strName: _strKey,
strQuestionText: _grRITM.variables[_strKey].getLabel(),
strValue: _grRITM.variables[_strKey].toString().replace(/"(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})"/g, function(match, datetime) {
var gdt = new GlideDateTime(datetime);
gdt.addSeconds(9 * 60 * 60);
return '"' + gdt.toString() + '"';
});
strDisplayValue: null,
});
この方法を実際に組み込んでテストしたわけではないです。環境を構築してテストするのにさらに何時間もかかるため、まずはここまでで投稿しました。 実際の問題の解決の役に立てば幸いです。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
05-07-2023 03:40 AM
質問の内容を推測して、質問内容は「CatalogUtils を使って MultiRowを CopyするScriptを作成したときに、時間が日本時間の9時間ずれている、これを解決するScriptを作成して欲しい」だと考えました。
「この問題ご存知したら、ご連絡いただければ助かります。」となっていますが、問題を知っているだけでは質問した意味がなく、問題の解決方法を求めているのだと解釈しました。
CatalogUtils を使ったことはありませんが、Scriptを解析して問題であろう個所がわかりました。
MultiRowの値は、JSON文字列として一括で受け取っています(複数項目の複数行をひとつのJSON文字列として受け取る)。この時Server sideの内部値なのでUTCの時間を受け取っている。
これをClientScriptでJSONを設定するとUserのタイムゾーン(日本時間)で設定するため9時間ずれる。
解決方法で考えてみたのはCatalogUtils の MVRS の処理でJSONに含まれるUTCをJSTに変換する処理を入れる方法。
_arrResult.push({
strType: 'MVRS',
strName: _strKey,
strQuestionText: _grRITM.variables[_strKey].getLabel(),
strValue: _grRITM.variables[_strKey].toString().replace(/"(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})"/g, function(match, datetime) {
var gdt = new GlideDateTime(datetime);
gdt.addSeconds(9 * 60 * 60);
return '"' + gdt.toString() + '"';
});
strDisplayValue: null,
});
この方法を実際に組み込んでテストしたわけではないです。環境を構築してテストするのにさらに何時間もかかるため、まずはここまでで投稿しました。 実際の問題の解決の役に立てば幸いです。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
05-08-2023 07:55 PM
@iwai さん、お疲れ様です。ご連絡・回答いただきありがとうございます。承知しました。上記の方法こちらはやってみます。