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 an RITM when Idea is accepted. Catalog item is hidden in the Employee Center.

Vaishnavi35
Tera Guru

Hi,

 

I have built a catalog item with its workflow. Its hidden in Employee Center for users to submit.

When an Idea is accepted , I want the RITM to be created with the Idea values that were submitted. Mapping the values basically. I want the Demand Number also on the RITM form. 

Demand Number field exists on the Idea form.

 

If anyone can help me with the BR?

Idea - Label and Name 

Vaishnavi35_0-1717694041366.png

 

RITM - Question & Name -

Vaishnavi35_1-1717691927797.png

Idea values have to map to the ritm variables.

 

I have an existing BR that creates a Demand when Idea is accepted.

When- before condition ; On "Update"

 

 

var demandTable = "dmn_demand";
if(GlidePluginManager.isActive('com.snc.project_management_v3')){
	demandTable = SNC.PPMConfig.getDemandTable(current.getTableName());
}

var demand = new GlideRecord(demandTable);
demand.setValue("description", current.description);

demand.setValue("requested_by", current.u_required_completion_date_if_any);//requested_by


demand.setValue("portfolio", current.u_global_process_shared_services_area);
demand.setValue("portfolio", current.portfolio);
demand.setValue("primary_program",current.u_program);
demand.setValue("priority", current.priority);

demand.setValue("short_description", current.short_description);
demand.setValue("type", "project");
demand.setValue("submitter", current.submitter);
demand.setValue("parent", current.sys_id);
demand.setValue("idea", current.sys_id);
var dmnId = demand.insert();
demand.get(dmnId);
current.demand = dmnId;
current.stage = 'demand';
GlideSysAttachment.copy('idea', current.sys_id, 'dmn_demand', demand.sys_id);
var link = ' <a href ="/' + demandTable + '.do?sysparm_query=number%3D' + demand.getValue('number') + '">'+ demand.getValue('number') +'</a>';
var message = gs.getMessage("Demand {0} has been created");
message = message.replace("{0}", link);

gs.addInfoMessage(message);

 

 

 

When Idea is accepted Demand and RITM should be created. But in RITM , Demand Number should also be populated.

Thanks,

Vaishnavi 

11 REPLIES 11

Vaishnavi35
Tera Guru

Hi @SasankaV ,

 

If you can help me with the code please? the variables section is not visible at all.

 

Thanks,

Vaishnavi

Vaishnavi35
Tera Guru
CreateRequest();

function createRequest() {
    // Create Request
    var cart = new Cart();

    // Substitute your catalog item
    var item = cart.addItem('389e052687e20e909e70c91acebb351f');

    // Set Variables in your Cart Item
    item.u_project_name = current.short_description;
    item.u_project_description = current.description;
    item.u_cost_center_c = current.u_cost_center; // Update this field if necessary
    item.u_portfolio_c = current.portfolio;
    item.u_program_c = current.u_program;
    item.u_requested_for = current.u_requested_for;
    item.u_manager = current.u_requested_for.manager;
    item.u_request_made_by = current.submitter;
    item.variables.u_demand_number = current.demand.number;

    // Update the item
    item.update();

    // Place the order
    var rc = cart.placeOrder();
    gs.addInfoMessage('Request Item Created: ' + rc.number);

    // Start the workflow
    var w = new Workflow();
    var wfSysId = w.getWorkflowFromName("Business Unit Project RITM").dc1ff6cc873e4210ed64da473cbb3513;
    var operation = "start"; // Assuming you want to start the workflow
    w.startFlow(wfSysId, current, operation);
}

 

My updated code. RITM itself is not getting created now.