Question
UiPath Studio でコード化されたワークフローで .NET 型で宣言した引数を使用してプロジェクトのパブリッシュを試みると「アクティビティビルダーを作成できません。」エラーが出力パネルに出力され「コンパイルに失敗、またはコンパイルがキャンセルされました。」エラーのポップアップが表示されます。
エラーメッセージは下記の通りです。
10:10:30.0001 => [ERROR] [UiPath.Studio.App.Logging.OutputLogger] [57] ライブラリのコンパイル プロセス中に予期しないエラーが発生しました: SampleTupleCodedWorkflow のアクティビティ ビルダーを作成できません。理由: 'Value cannot be null. (Parameter 'key')'
10:10:30.0004 => [ERROR] [UiPath.Studio] [57] ライブラリのコンパイル プロセス中に予期しないエラーが発生しました: SampleTupleCodedWorkflow のアクティビティ ビルダーを作成できません。理由: 'Value cannot be null. (Parameter 'key')'
例えば、下記のようなコード化ワークフローを作成しており、整数型変数 res と文字列型配列 msg を出力することを想定しています。
using ...
namespace SampleCodedWorkflow
{
public class SampleTupleCodedWorkflow : CodedWorkflow
{
[Workflow]
public (Int32 res, String[] msg) Execute (Int32 res, String[] msg)
{
res = 1;
msg[0] = "Ui";
msg[1] = "Path";
return (res, msg);
}
}
}
Answer
解決策
下記マイクロソフト社公開情報の記載の通り、変数や引数を定義する際に利用できるデータ型には「.NET 型」と「C# 型のキーワード」があります。
「.NET 型」である「Int32」や「String」などのデータ型を使用した引数を定義している状態でエラーが発生している場合は「C# 型のキーワード」である「int」や「string」などのデータ型へ変更することをお試しください。
下記はデータ型に「Int32」と「String」を使用した例でエラーが発生する場合があります。
public (Int32 res, String[] msg) Execute (Int32 res, String[] msg)
下記はデータ型に「int」と「string」を使用した例でエラーが発生しません。
public (int res, string[] msg) Execute (int res, string[] msg)
