Flow Designer カスタムアクションの出力について

a_129
Mega Guru

sys_idが入った配列をフローに渡すために、カスタムアクションを作成しました。(以下スクリプト参照)
アクション単体のテストでは、値は取得できていますが、
フロー全体のテストを行うと、以下の画像のようにarrayの中の値が取得できません。
また、アクションの出力変数のタイプは、Array.Objectに設定しております。
ちなみに、アクションの出力変数のタイプを【Array.String】や【String】でも試してみましたが、値は取得できませんでした。


解決方法がありましたら、ご教授いただけますと幸いです。

(function execute(inputs, outputs) {
  var star_date = inputs.start_date;
  var end_date = inputs.end_date;
  var array =[];
  var start=[];
  var end=[];
  var sys_id_array=[];
  
  var gr = new GlideRecord('sn_hamp_loaner_asset_order');
  gr.addQuery('active', 'true'); 

  gr.query();

  while(gr.next()){
    start.push(gr.getDisplayValue('work_start'));
    end.push(gr.getDisplayValue('work_end'));
    sys_id_array.push(gr.sys_id.getValue());
  }

  for (var i = 0; i < start.length; i++) {
     if (star_date <= end[i] && end_date >= start[i]) {
          array.push(sys_id_array[i]);
      } 
    }
  outputs.array =array

})(inputs, outputs);

find_real_file.png

1 件の受理された解決策

Hitoshi Ozawa
Giga Sage
Giga Sage

aさん、

2点、気になることがあります。

1.gr.sys_idを取得するのであればgetValue()は不用です。

現在:
sys_id_array.push(gr.sys_id.getValue());
修正後:
sys_id_array.push(gr.sys_id.toString());

2.Action本体のOuputsはどのように定義されていますでしょうか?Array.Stringに設定した後に「Exit Edit Mode」ボタンを押下します。

find_real_file.png

データピルからスクリプト結果の「array」をドラッグ&ドロップします。

find_real_file.png

メインフローでアクションを呼び出し、結果はFor Each Item inを使います。

find_real_file.png

実行するとsys_idが表示されます。

find_real_file.png

元の投稿で解決策を見る

2件の返信2

OlaN
Giga Sage
Giga Sage

Hi,

I have no idea what you have written in your question, so I apologize if I'm completely incorrect.
But I saw a line in your code, you might want to change.

//sys_id_array.push(gr.sys_id.getValue());
// should be -->>
sys_id_array.push(gr.getUniqueValue());

Also, this video might help you find some answers in regards to working with Flow designer and custom actions with complex objects.

Hitoshi Ozawa
Giga Sage
Giga Sage

aさん、

2点、気になることがあります。

1.gr.sys_idを取得するのであればgetValue()は不用です。

現在:
sys_id_array.push(gr.sys_id.getValue());
修正後:
sys_id_array.push(gr.sys_id.toString());

2.Action本体のOuputsはどのように定義されていますでしょうか?Array.Stringに設定した後に「Exit Edit Mode」ボタンを押下します。

find_real_file.png

データピルからスクリプト結果の「array」をドラッグ&ドロップします。

find_real_file.png

メインフローでアクションを呼び出し、結果はFor Each Item inを使います。

find_real_file.png

実行するとsys_idが表示されます。

find_real_file.png