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.

Flow Context UI Action from custom table

Community Alums
Not applicable

I have custom tables that also have Flows that attach themselves.

I'm trying to replicate the "Flow Context" UI action on a custom table so that I can see these active flows, however the default solution thats used for RITMs obviously does not work.

How can this be modified to work correctly?

function showFlowContext () {
	var url = new GlideURL('catalog_flow_context.do');
	url.addParam('sysparm_sys_id', g_form.getUniqueValue());
	url.addParam('sysparm_ck', g_form.getValue("sysparm_ck"));
	g_navigation.open(url.getURL(), "_blank");
}

Currently it obviously does not redirect me to the correct place, the custom table does not have a sysparm_ck value.

find_real_file.png

1 ACCEPTED SOLUTION

Community Alums
Not applicable

I managed to resolve this myself with an Ajax call.

function showFlowContext() {
    var id = g_form.getUniqueValue();
    var ga = new GlideAjax('AjaxUtils');
    ga.addParam('sysparm_name', 'getFlowContext');
    ga.addParam('sysparm_id', id);
    ga.getXMLAnswer(getValue);

    function getValue(response) {
        var answer = JSON.parse(response);
        if (answer["success"] == "true") {
	    g_navigation.open('/$flow-designer.do#/operations/context/' + answer.id, "_blank");
        }
    }

}
var AjaxUtils = Class.create();
AjaxUtils.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
	getFlowContext: function(){
		var id = this.getParameter('sysparm_id');
		var ctx = new GlideRecord("sys_flow_context");
		ctx.addEncodedQuery("source_table=table_name_here^source_record="+id);
		ctx.query();
		if(ctx.next()){
			var results = {
				"success":"true",
				"id":ctx.getUniqueValue()
			};
			return JSON.stringify(results);
		}
		gs.addErrorMessage("Flow Context does not exist for this record.");
		var results = {
			"success":"false"
		};
		return JSON.stringify(results);
	},
	
    type: 'AjaxUtils'
});

View solution in original post

16 REPLIES 16

Hello Mario,

can you suggest workaround for opening the flow in new tab. I have tried using window.open, but it doesnt seem to work.

Thanks

GG14
Tera Contributor

Hi @Community Alums,

I know its an old thread and I am writing to help others who want to have similar kind of requirement. The catalog_flow_context.do is basically a processor script in servicenow. You can go to the processor tables and search with this path and later can copy the code for our custom tables (if required).

 

Please note the processors functionality is deprecated. We can use the same code in the server side UI Action instead. Hope this helps.