ログインしたユーザーをサービスカタログ変数に正しく保存する方法Issue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Service Catalog 変数のデフォルト値を javascript:gs.getUser() に設定しても、レコードに期待されるユーザーが保存されない問題を解決します。代わりに、システムはリテラル文字列を保存するため、他のユーザーがレコードを表示したときに正しくない動作が発生します。 Symptoms<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } カタログアイテムの変数のデフォルト値が javascript:gs.getUser() に設定されている。送信後、変数に送信者のユーザーレコードが保存されない。別のユーザーが要求アイテム (RITM) またはカタログタスクを表示すると、変数に元の要求者ではなく、そのユーザー自身の名前が表示される。 Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } サポートされているすべてのリリース Cause<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 変数のデフォルト値を javascript:gs.getUser() または類似の式に設定した場合: プラットフォームは、解決されたユーザーオブジェクトや sys_id ではなく、リテラル文字列を値として保存します。フォームの読み込み時に、システムはブラウザーでその文字列を動的に解決するため、元の送信者でなくても、現在ログインしているユーザーが表示されます。 この動作により、複数のユーザーが同じレコードにアクセスすると、データの不整合と混乱が発生します。 正しい実装 現在ログインしているユーザーのsys_idを送信時に確実に保存するには、GlideAjax でカタログクライアントスクリプトを使用します。 1.スクリプトインクルード ([クライアント呼び出し可能] に設定) var GetCurrentUser = Class.create();GetCurrentUser.prototype = Object.extendsObject(AbstractAjaxProcessor, { getUserID: function () { return gs.getUserID(); // sys_id of the current user } }); 2.カタログクライアントスクリプト (タイプ:onLoad) function onLoad() { var ga = new GlideAjax('GetCurrentUser'); ga.addParam('sysparm_name', 'getUserID'); ga.getXMLAnswer(function(response) { var userSysID = response; g_form.setValue('user_variable_name', userSysID); // Replace with your variable name });} gs.getUserID() ログインしているユーザーのsys_idを返します(例: 6816f79cc0a8016401c5a33be04be441)。この方法を使用すると、フォームの送信時に正しいユーザーが確実に保存されます。 Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 送信時にログインしているユーザーの sys_id を確実に保存するには、GlideAjax を使用した Catalog Client Script を使用します。 ステップ 1: Script Include を作成する。 Script Include を作成し、Client Callable に設定します。 var GetCurrentUser = Class.create();GetCurrentUser.prototype = Object.extendsObject(AbstractAjaxProcessor, { getUserID: function () { return gs.getUserID(); // sys_id of the current user } }); ステップ 2: Catalog Client Script を作成する。 Type を onLoad に設定した Catalog Client Script を作成します。 function onLoad() { var ga = new GlideAjax('GetCurrentUser'); ga.addParam('sysparm_name', 'getUserID'); ga.getXMLAnswer(function(response) { var userSysID = response; g_form.setValue('user_variable_name', userSysID); // Replace with your variable name });} 注: user_variable_name を実際の変数名に置き換えてください。 gs.getUserID() メソッドは、ログインしているユーザーの sys_id を返します。このアプローチは、フォーム送信時に正しいユーザーを保存します。 このアプローチが機能する理由 GlideAjax ベースの Client Script は: 送信時にログインしているユーザーをキャプチャします変数フィールドに sys_id を保存します他のユーザーがレコードを表示したときに、正しくないユーザーデータが表示されるのを防ぎます 代替方法 参照ユーザーフィールドの場合、デフォルト値を javascript:gs.getUserID() に設定することもできます。このよりシンプルなアプローチが機能するのは、gs.getUserID() がユーザーオブジェクトではなく sys_id を返すためです。 Related Links<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Service Catalog variableGlideAjaxUseful Glide System User Object methods