Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

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