お気に入りの移行について

Kengo
Giga Contributor

新規ユーザ追加時にお気に入りも自動設定されるようにしたいです。

元となるお気に入りのデータ(画面1)をブックマークテーブルからエクスポートし、
ユーザフィールドを空欄、自動追加フィールドをTrueに設定しインポート。(sys_ui_bookmark_hinagata.xls)
その後新規ユーザを追加したところ、新規ユーザのお気に入りの画面は画面2のようになりました。

画面1のように設定するには何が必要か、ご教示いただけますと幸いです。

 

8件の返信8

Hitoshi Ozawa
Giga Sage
Giga Sage

Kengoさん、

試してはいませんが、お気に入りは「ブックマーク」(テーブル名:sys_ui_bookmark)に登録されます。

sys_userテーブルにビジネスルールを作成してこのテーブルに挿入するのはどうでしょうか?

Hitoshi Ozawa
Giga Sage
Giga Sage

次ぎのビジネスルールを作成したらユーザを新規に作成したらブックマークも作成されました。

(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 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;
        grNewUser.insert();
    }

})(current, previous);

find_real_file.png

Hitoshi Ozawa
Giga Sage
Giga Sage

kengoさん、

質問を正しく読んでいなくて済みません。

ブックマークをグループ化されているようです。ブックマークグループはブックマークグループ'(テーブル名:sys_ui_bookmark_group)で管理されています。こちらのテーブルもインポートする必要があります。

ブックマークグループを含めるとビジネスルールが次のようになります。

(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);