How to open a catalog item in Now Experience Workspace the way you can in Agent Workspace and Service Operations Workspace

Mark Endsley
Tera Guru

Hi Everyone,

I'm continuing my saga in trying to implement the Service Portal catalog in my scoped application's custom Now Experience Workspace. It has been a long journey, and is cataloged here.

https://community.servicenow.com/community?id=community_question&sys_id=7b9a79eb1bdb8550b4b577bc1d4b...

https://community.servicenow.com/community?id=community_question&sys_id=ba593f731b5b0d50b4b577bc1d4b...

https://community.servicenow.com/community?id=community_question&sys_id=af99e6301b2b8590b4b577bc1d4b...

https://community.servicenow.com/community?id=community_question&sys_id=6296d5a91be70dd0c16b43f6fe4b...

No need to go through all of these though, I will explain the situation. 

When we implemented Agent Workspace I added some code and fields to the interaction table. 

find_real_file.png

 

The Interaction type and Catalog Item fields interact with this client script when the record is saved.

 

function onSubmit() {

    if (g_form.getValue('u_interaction_type') != 'request')
        return;

    var ga = new GlideAjax('interactionRelatedRequest');
    ga.addParam('sysparm_name', 'isRelatedRequest');
    ga.addParam('sysparm_id', g_form.getUniqueValue());
    ga.getXML(function(response) {
        var answer = response.responseXML.documentElement.getAttribute("answer");

        if (answer == 'false' || g_form.isNewRecord()) {
            var params = {};

            params.sysparm_parent_table = "interaction";
            params.sysparm_parent_sys_id = g_form.getUniqueValue();
            params.sysparm_requested_for = g_form.getValue('opened_for');
            g_service_catalog.openCatalogItem('sc_cat_item', g_form.getValue('u_catalog_item'), params);
        }

    });

 

Now, the problem I've had up until this point, is that the code works perfectly in Agent Workspace, but will not work in my custom Now Experience Workspace. What it does instead is open the actual catalog item like this:

 

find_real_file.png

 

Over time, I learned that Agent Workspace and Now Experience Workspaces, while they look the same, are very different. I assumed this simply won't work in the new Workspaces.

 

...However, I was recently informed there is a new Workspace built for ITSM that utilizes the Now Experience Framework. This is the "Service Operations Workspace"

I decided to install this and see how it handles this situation.

... And guess what It Works!

It opens the catalog item using the Service Portal just like Agent Workspace does! This is both exciting and frustrating. 

 

Analyzing the URIs from both apps they seem to be identical:

/x/g/transportation/record/interaction/1d8787b61b81911444b95247624bcbc1/sub/record/sc_cat_item/c3972e2ef95ea400618c92a0dd8b533c/params/extra-params/parent_table%2Finteraction%2Fparent_sys_id%2F-1%2Fsysparm_parent_table%2Finteraction%2Fsysparm_parent_sys_id%2F1d8787b61b81911444b95247624bcbc1%2Fsysparm_requested_for%2Ff50207aa41616000d09e6ea155db82a0

/now/sow/record/interaction/b6ea873a878d5d9074d2b889cebb35aa/sub/record/sc_cat_item/c3972e2ef95ea400618c92a0dd8b533c/params/extra-params/parent_table%2Finteraction%2Fparent_sys_id%2F-1%2Fsysparm_parent_table%2Finteraction%2Fsysparm_parent_sys_id%2Fb6ea873a878d5d9074d2b889cebb35aa%2Fsysparm_requested_for%2F300549f4db87a3005f2e70131f9619d6

 

...So at this point I am so confused. I have no idea why the above code works in Agent Workspace, works in the Service Operations Workspace, but won't work in my custom workspace. I feel like there is a setting somewhere that needs to be toggled, and I just don't know where it is.

 

Any ideas?

27 REPLIES 27

Community Alums
Not applicable

Hi, I found a solution for you problem. It worked for me 🙂

 

In your configurable workspace, create a blank and empty variant under record. 

Then go to 'sys_ux_screen', and find 'Catalog Item Page SNC'. From here you can just copy paste everything to your own variant which can also be found in 'sys_ux_screen'. Most important thing to copy is the Page Definition on the UX screen. 

Taha6
Tera Expert

@Mark Endsley were you able to got this working? I am having the same issue

Alex Bones
Tera Contributor

I was working through figuring out how to get the catalog iframe component as well and just found there is now a Catalog Item component to display items that you just set the sys_id of the item on to render it.

https://developer.servicenow.com/dev.do#!/reference/next-experience/xanadu/now-components/catalog%20...