Question
UiPath Studio でコード化されたワークフローから複数の戻り値を出力する方法を教えてください。
例えば、下記のようなコード化ワークフローを作成しており、整数型変数 res と文字列型配列 msg を出力することを想定しています。
using ...
namespace SampleCodedWorkflow
{
public class SampleSimpleCodedWorkflow : CodedWorkflow
{
[Workflow]
public int Execute (int res, string[] msg)
{
res = 1;
msg[0] = "Ui";
msg[1] = "Path";
return res;
}
}
}
上記のコード化されたワークフローを『ワークフローファイルを呼び出し』アクティビティから呼び出すように設定をして、引数ディクショナリの文字列型配列 msg の「方向」を「InOut」に設定すると「次に引数が見つからないか、正しく設定されていません」警告が表示されます。
Answer
解決策
下記ガイドの「入力/出力パラメーターを追加する」セクションを参考に出力パラメーターを追加することをお試しください。
入力/出力パラメーターを追加する
1. 入力/出力型の引数を追加するには、エントリ ポイント メソッドの名前の前後に同じ引数を定義します。
2. たとえば、最初の 融資額 (loanAmount) と利率 (interestRate) を入力とし、金利適用後の更新された融資額を 計算して返す、コード化されたオートメーションがあるとします。
また、このオートメーションでは、 この融資額に対する経済的必要性の種類を示す引数も 返されます。 以下のコード スニペットを ご覧ください。
CSharp public (double loanAmount, string financialNeed) Execute (double interestRate, double loanAmount)
例えば、コード化ワークフローのエントリポイントを下記「Public (int res, string[]msg) …」のようにタプル型で作成して、戻り値を「return (res, msg)」とすることで、整数型変数 res と文字列型配列 msg を出力することができます。
using ...
namespace SampleCodedWorkflow
{
public class SampleTupleCodedWorkflow : CodedWorkflow
{
[Workflow]
public (int res, string[] msg) Execute (int res, string[] msg)
{
res = 1;
msg[0] = "Ui";
msg[1] = "Path";
return (res, msg);
}
}
}
上記のコード化されたワークフローを『ワークフローファイルを呼び出し』アクティビティから呼び出すように設定をします。続いて「Refresh arguments」をクリックして引数ディクショナリを確認すると、整数型変数 res と文字列型配列 msg の「方向」がいずれも自動的に「InOut」に設定されます。
コード化されたワークフローを呼び出す前後に『メッセージをログ』アクティビティを配置して、コード化されたワークフローの処理の結果として複数の戻り値が取得できることを確認します。



