Welcome to Community Week 2025! Join us to learn, connect, and be recognized as we celebrate the spirit of Community and the power of AI. Get the details  

Popup child incident record details in table format on click on UI Action

Ganeshm1
Tera Guru

Hi All,

I have a requirement to show child record details in table format on click on custom UI Action "Show child Incident" on incident table.
I have created below script but its not working as expected. Could you please help me on this.


Below are the UI Action details
Name: Show child incident

Client: true

Form button: true

Onclick: showChildTableDataPopup();

script:

function showChildTableDataPopup() {
    // Get the current record (parent record)
    var currentRecord = g_form.getValue('sys_id');

    // Build the GlideRecord object for the child table
    var grChildTable = new GlideRecord('incident');

    // Set the filter to match the related field on the parent table
    grChildTable.addQuery('parent', currentRecord);
    grChildTable.setLimit();

    // Execute the query
    grChildTable.query();

    // Build the popup content (consider error handling)
    var popupContent = buildPopupContent(grChildTable);
    if (!popupContent) {
        alert('No child records found.');
        return;
    }

    // Create and display the popup
    var popup = createPopup(popupContent);
    popup.show();
}

function buildPopupContent(grChildTable) {
    // Build table header row
    var tableHtml = '<table><thead><tr>';
    tableHtml += '<th>Name</th><th>Description</th></tr></thead><tbody>';

    while (grChildTable.next()) {
        var childName = grChildTable.name;
        var childDescription = grChildTable.description;

        // Build table row for each child record
        tableHtml += '<tr><td>' + childName + '</td><td>' + childDescription + '</td></tr>';
    }

    tableHtml += '</tbody></table>';
    return tableHtml;
}

function createPopup(content) {
    // Create a basic popup element using jQuery
    var popup = $('<div class="child-table-popup">' + content + '</div>');

    // Add a close button (optional) with functionality
    popup.append('<button class="close-popup">Close</button>');
    $('.close-popup').click(function() {
        popup.hide();
    });

    // Apply basic styling (optional)
    popup.css({
        'position': 'fixed',
        'top': '50%',
        'left': '50%',
        'transform': 'translate(-50%, -50%)',
        'background-color': 'white',
        'border': '1px solid #ddd',
        'padding': '10px',
        'z-index': 100 // Ensure popup is above other elements
    });

    return popup;
}

 

Thank you in advance. 

Regards,

Ganesh 

4 REPLIES 4

Sohail Khilji
Kilo Patron

Hi @Ganeshm1 ,

 

why popup ? you can rather show the child incidents in the realted incident.  go to relationship module and create a relationship to show all child incident.

 

There script that your using seems like a AI genrated which will never work in servicenow space. 

 

 


☑️ Please mark responses as HELPFUL or ACCEPT SOLUTION to assist future users in finding the right solution....

LinkedIn - Lets Connect

Hello @Sohail Khilji : Thank you for your reply.
Actually with respect to my requirement, I am not dealing with child incident records. I am dealing with Batch CIs where its having a related list called Teams and its storing the different level of assignment groups. 

To explain it in easy way I modified the requirement in the question. Please let me know if you have any input on this. Thank You!

can you share exactly on what your requirement is ?

 


☑️ Please mark responses as HELPFUL or ACCEPT SOLUTION to assist future users in finding the right solution....

LinkedIn - Lets Connect

Community Alums
Not applicable

You should not use DOM manipulation here. Note that your selectors will fail soon enough - may be next upgrade or 2 from now, but this will fail (if it's working at all, for which I can say it's not).

You need to use GlideDialogWindow/ GlideModal or similar where you call respective UI Page/Macro and pass your params to these where backend logic + presentation is done.

If for fun - such way is somehow acceptable on your PDI to test something. For production instances this is absolutely not acceptable and will bring lots of issues sooner than later.