Create new group using UI macro button

PreethikaW
Tera Contributor

-I have added a button 'Create New Group' in kb_knowledge table .

-When clicked on it it should automatically create a group in sys_user_group table

-UI macro and an script include is written for it .The script returns "Failed to create group' alert message every time.

UI macro code:

<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide">
    <button id="createGroupButton" onclick="createGroup();">Create New Group</button>
    <script>
        function createGroup() {
            var ga = new GlideAjax('CreateGroupScriptInclude');
            ga.getXMLAnswer(function(response) {
                if (!response) {
                    console.error('No response from server');
                    alert('Failed to create group');
                    return;
                }
                console.log('Response XML:', response.responseXML);
 
                var xmlResponse = response.responseXML;
                var result = xmlResponse.documentElement.getAttribute('answer');
                if (result) {
                    alert('Group created: ' + result);
                    console.log('helloconsolepass');
                } else {
                    console.error('No "answer" attribute in response');
                    alert('Error creating group');
                }
                console.log('hellocheckresult');
            });
        }
    </script>
</j:jelly>


script include code:
var CreateGroupScriptInclude = Class.create();
CreateGroupScriptInclude.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    createGroup: function() {
        gs.info('Entered createGroup method'); // Log start

        var group = new GlideRecord('sys_user_group');
        group.initialize();
        group.setWorkflow(false); // Disable workflows
        group.setUseEngines(false); // Bypass ACLs

        group.name = 'Test Group';
        group.company = '0971788b93e1f9d0c505f5c48aba1091'; // Example company field
        var newGroupSysId = group.insert();

        if (newGroupSysId) {
            gs.info('Group created with Sys ID: ' + newGroupSysId); // Log group created
            return newGroupSysId;
        } else {
            gs.error('Group creation failed'); // Log failure
            return 'failure';
        }
    },

    getAnswer: function() {
        gs.info('Returning response from getAnswer: ' + this.createdGroup);
        return this.createdGroup ? this.createdGroup : 'failure';
    },
    type: 'CreateGroupScriptInclude'
});
0 REPLIES 0