部下を表示させる


概要

指定されたユーザの部下一覧を表示させるフォームを作成します。

フォームの作成

マネージャー変数の定義

部下一覧変数の定義

スクリプトの作成

スクリプトインクルード

var SC_User_Funcs_Ajax = Class.create();
SC_User_Funcs_Ajax.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    getReportingHierarchy: function() {

        var hierarchy = [];
        var manager_sys_id = this.getParameter("sysparam_manager_sys_id");

        _runLoopReportingHierarchy(manager_sys_id);
        return hierarchy.toString();

        function _runLoopReportingHierarchy(manager_sys_id) {
            var gr = new GlideRecord('sys_user');
            gr.addQuery('manager', manager_sys_id);
            gr.query();
            while (gr.next()) {
                if (hierarchy.indexOf(gr.sys_id.toString()) == -1) {
                    hierarchy.push(gr.sys_id.toString());
                    _runLoopReportingHierarchy(gr.sys_id);
                }
            }
        }

    },
    type: 'SC_User_Funcs_Ajax '
});

クライアントスクリプト

function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }
    var ajax = new GlideAjax('SC_User_Funcs_Ajax');
    ajax.addParam('sysparm_name', 'getReportingHierarchy');
    ajax.addParam('sysparam_manager_sys_id', newValue);
    ajax.getXML(addMembers);
}

function addMembers(response) {
    g_form.clearOptions('members');
    var answer = response.responseXML.documentElement.getAttribute("answer");
    g_form.setValue('members', answer);
}

以上