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

Brad Tilton
ServiceNow Employee
ServiceNow Employee

If you look at the record page in Service Operations Workspace it has a catalog item variant where it's just a big iframe with the parameters passed into it. You should be able to do something similar in your custom config workspace by creating a catalog variant of your record page with an iframe.

In the below screenshot you can see the variant and how that variant only shows up if the table being passed to the record page is sc_cat_item, sc_cat_item_producer, or sc_cat_item_guide.

find_real_file.png

Excellent find brad! 

The issue I'm having now is this "Catalog IFrame" does not appear as a component on my page in UIB.

I believe it's just the iframe component with parms passed in to show a catalog page.

I'm not sure about that. I notice the options are different

find_real_file.png

find_real_file.png