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.

UI ActionでSubFlowを呼び出して実行する方法について

uchidai
Tera Contributor

下記のナレッジを参考に、タイトルの機能を持ったUI Actionを実装していますがうまくいきません。

実装の補助をいただけると助かります。

解決済み: UI アクションで作成したボタンから、サブフローを呼び出す方法について - ServiceNow Community

クライアント呼び出し可能なフロー、サブフロー、アクションの作成

 

①Client callableの設定について、AdminのRoleを指定しても問題ないでしょうか。

 

②Create Code Snippetにて生成されたScriptを動作確認のため、Background Scriptでほぼそのまま記入して動かしても動かないです。

おそらく変数のinputの記載方法に誤りがあるのでは?と予想していますが、ご確認いただきたいです。

※追記部分はコメントアウトにて記載しています。

※自動生成されたScriptでは、Flowの名称に862という値が自動付与されている。

 862を消すとSubFlowが見つからないというエラーに変わりますが、どういう経緯で値が付与されているかも、わかる範囲で回答いただきたいです。

 

 

(function() {
	
	try {
		var inputs = {};
		// inputs['u_improvement_proposal_management'] = ; // GlideRecord of table: u_improvement_proposal_management 
		
		// 変数の格納方法は、sys_idを渡す形でよいでしょうか。
		inputs['u_improvement_proposal_management'] = "873dda3193dcd290a392729efaba1096";

		// Start Asynchronously: Uncomment to run in background. Code snippet will not have access to outputs.
		// sn_fd.FlowAPI.getRunner().subflow('global.improvement_proposal862').inBackground().withInputs(inputs).run();
				
		// Execute Synchronously: Run in foreground. Code snippet has access to outputs.
		var result = sn_fd.FlowAPI.getRunner().subflow('global.improvement_proposal862').inForeground().withInputs(inputs).run(); // ★この部分でエラーが発生しているようだが、回避策が不明★
		var outputs = result.getOutputs();

		// Get Outputs:
		// Note: outputs can only be retrieved when executing synchronously.
		var u_manage_cloned_widgets = outputs['u_manage_cloned_widgets']; // String
		
		// 出力確認用
		gs.print(u_manage_cloned_widgets);
		
	} catch (ex) {
		var message = ex.getMessage();
		gs.error(message);
	}
	
})();

 

 

 

③その他、心当たりのある原因があれば、情報共有いただけると助かります。

 成果物の設定情報は、Excelへ付与しました。

 回答できる範囲で構いませんので、フォローいただけると助かります。

1件の返信1

uchidai
Tera Contributor

こちらの記事の記載で、「current」として渡すことで動作することが確認できました。

演習: コード スニペットの作成と使用 | ServiceNow 開発者

 

回答優先度は下げていただいて問題ありません。

 

[※自動生成されたScriptでは、Flowの名称に862という値が自動付与されている。

 862を消すとSubFlowが見つからないというエラーに変わりますが、どういう経緯で値が付与されているかも、わかる範囲で回答いただきたいです。] 

参考までに、こちらの理由が分かれば、ご教授いただけると助かります。