- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
05-25-2022 12:00 AM
ブックマークグループを含めるとビジネスルールが次のようになります。
(function executeRule(current, previous /*null when async*/ ) {
var baseUser = '<複写元ユーザのsys_id>';
var grBase = new GlideRecord('sys_ui_bookmark');
grBase.addQuery('user.user_name', baseUser);
grBase.orderBy('order');
grBase.query();
while (grBase.next()) {
var newGroupSysId;
if (grBase.group != '') {
var grBaseGroup = new GlideRecord('sys_ui_bookmark_group');
if (grBaseGroup.get(grBase.group)) {
var grNewGroup = new GlideRecord('sys_ui_bookmark_group');
grNewGroup.initialize();
grNewGroup.user = current.sys_id;
grNewGroup.application = grBaseGroup.getValue('color');
grNewGroup.color = grBaseGroup.getValue('color');
grNewGroup.order = grBaseGroup.getValue('order');
grNewGroup.title = grBaseGroup.getValue('title');
newGroupSysId = grNewGroup.insert();
}
}
var grNewUser = new GlideRecord('sys_ui_bookmark');
grNewUser.initialize();
grNewUser.user = current.sys_id;
grNewUser.order = grBase.order;
grNewUser.title = grBase.title;
grNewUser.url = grBase.url;
grNewUser.image = grBase.image;
grNewUser.flyout = grBase.flyout;
grNewUser.flyout_width = grBase.flyout_width;
if (newGroupSysId) {
grNewUser.group = newGroupSysId;
}
grNewUser.insert();
}
})(current, previous);
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
05-25-2022 07:00 PM
Hitoshi様
ご回答ありがとうございます。
参考にさせて頂きます。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
05-25-2022 12:06 AM
Kengo様
初めまして、質問事項につきまして以下の方法で実現可能でしたのでお試しください。
ブックマークのグループ化情報はsys_ui_bookmark_groupテーブルに格納されており、sys_ui_bookmarkテーブルの列名:groupがsys_idを指定して参照しております。
そのため事前にsys_ui_bookmark_groupテーブルにユーザ情報を含むレコードを作成し、sys_ui_bookmarkテーブルにレコードをインポートする際、sys_idを指定する必要があります。
例として手順を添付します。(拙い情報で申し訳ございません。)
※例ではAdministratorのIncident,changeを他ユーザへ移行しています。
そのため、修正事項としては、
・sys_ui_bookmark_groupテーブルへの追加するひな形を新たに作成ください。
・提示いただいたsys_ui_bookmarkテーブルのひな形にグループ列を追加ください。
・グループ列にはsys_ui_bookmark_groupテーブルへ追加したレコードのsys_idを指定してください。
以上となります。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
05-25-2022 07:17 PM
Daiki様
ご回答ありがとうございます。
ご教示頂いた手順では、移行対象のユーザごとに本作業が必要になる、ということですね。
新規ユーザ作成時にお気に入りがグループ化情報含めて自動で追加される、ことを目指していましたが
個別対応しないといけないということでしょうか。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
05-27-2022 03:41 AM
未検証でありますが、以下で自動化が出来る想定です。
※別途検証致します。
①新規ユーザー作成
Global Bookmark Dataにより事前に用意していた情報がBookmarkとして作成されます。
②ユーザ情報編集等をトリガーにBusinessruleを実行
BusinessRuleの動作は以下(未検証です)
Bookmark Groupの新規作成
Bookmark Groupのユーザ情報を新規作成ユーザとする
Bookmark Groupのsys_idをBookmark Dataへ格納
※ユーザ情報編集は初期パスワードの保存を想定頂けると確実に情報Businessruleをトリガー出来るかと存じます。検証にはもう少々お時間ください。