次のエラーについて Cannot create unknown type'{http://scemas.uipath.com/workflow/activities}HttpClient'

UiPath RPAで以下の挙動をするフローを作成しました。

・WEBサイトから、データスクレイピングでデータを収集
・取得したデータをJSON形式に変換
・Http Repuestで外部へ送信

UiPathを起動して、Runを押すと問題なく動いていますが、
BatファイルをWindows上で作成し起動すると以下のようなエラーを吐いて落ちてしまいます。

Cannot create unknown type’{http://scemas.uipath.com/workflow/activities}HttpClient’.

こういった場合何か回避策はありませんでしょうか。
お知恵を拝借いたしたくよろしくお願いいたします。

なお、Batで起動のやり方は、以下のサイトを参考にさせて頂きました

UiStudioの環境と、バッチファイルを実行しているのは同じPCですか?
違うPCの場合、まず.NET Frameworkのバージョンを確認してみてください。

実行しているPCは同じになります。
ちなみにレジストリで確認すると、
OSはWindows10で、.Net Freamworkは以下が入っておりました。

%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3

あとは可能性があるのはタスクスケジューラーの実行権限、あたりでしょうか。
SYSTEM権限等で実行していて、UiRobot.exeがユーザーディレクトリにあったりすると、動作不全になる可能性はあります。

そもそも何故、1行だけのバッチファイルでCall文を使うのか、というあたりが不明瞭でもありますが……<Bat起動のサイト
わざわざバッチファイルを作成しなくても、タスクスケジューラーで新規のタスク追加をして、(実行する)プログラム/スクリプトにUiRobot.exeを、引数の追加にシナリオファイルをフルパスで記載すれば動作すると思いますよ。

@ymuichiro さん、こんにちは
そもそも現在のrobot.exeの仕様では引数で該当するのは /file: ではなく -file です。

1 Like

Honokaさん

度々ありがとうございます。
頂いた通りタスクスケジューラーに直接で設定してみました。こちらの方がバッチファイルを作らなくて良いので楽ですね。
ただ、まだ上手く動いておりません…

tangoさん

先日はありがとうございます。
以前ご相談した質問のプログラムが完成したので、タスクスケジューラーで1時間に一度動かそうとしています。
頂いた通りに引数の設定を変えてみましたが、それでも同じエラーが出てしまいました。

現在の設定は以下の通りになっています。
エラーログのスクリーンショットも取ってみました。
エラーの内容からするに、特定のUiPathの構成ファイルが開けていないか、そもそも欠損しているのでしょうか?

※一旦トリガーで起動ではなく、手動で起動してみています。

【参照】
C:\Users\ymuic\AppData\Local\UiPath\app-18.2.1-beta0797\UiRobot.exe
【引数】
-file"C:\Users\ymuic\Documents\UiPath\telegram\telegramget.xaml"

【タスクスケジューラー設定画面-1】

【タスクスケジューラー設定画面-2】

【エラーログスクリーンショット】

障害を切り分けるため確認ですが、上記の手動とはBatファイルあるいはAttendedで動くという意味でしょうか?それともStudioのRunでしょうか。
拝見したところ、-fileとxamlのパス間にスペースないようですが、スペースが必要です。

紛らわしくすみません。
手動とは以下の操作による事をさしております。

タスクスケジューラーで対象のスケジュールを右クリック⇒実行
※時間指定ではなく、スケジューラーで実行を選択。

また、スペースについてもありがとうございます。
こちらはタスクスケジューラー側にはスペースが入っておりました。

1点気が付きました。
念のためUiPathを再インストールしてみたところ、
起動直後に以下のエラーが表示されました。

これはつまり、何か大事なデータが私のUiPathに無いのでしょうか…?

Manage PackagesでFilter Activitiesのチェックを外してRestSharpがインストールされていますか?

もうひとつ追加情報
robot.exeの-fileパラメータが気になったのでサポートに聞いてみたところ

本番環境でのご利用はライセンス上認められておりません

とのことです。したがってタスクスケジューラでの運用は不可です。

些細なことですが、インストール先を見るに、Community Editionの可能性もあるので、運用が不可、というのは早計かなと。
Community Editionのライセンス条項(適用対象ユーザー)であれば、本番環境で使用しても問題ない筈です。

tangoさん
ありがとうございます。
確認した所、当該のパッケージはインストールされておりました。

Honokaさん
ありがとうございます。
頂いた通りCommunity Editionになります。

本件ですが、結論として以下の操作でタスクスケジューラーから起動できるようにはなりました。
①UiPathを再インストール
②パッケージを全てインストール
③既存のxamlを削除。改めて最初から再構築。

諸々ご協力頂き大変ありがとうございます。
一旦動きましたので記載します。

すみません。
その後改めて試していて同様のエラーで失敗することがわかりました。
解決はまだしていないのですが発生原因はわかりました。

【エラーメッセージ詳細】
C:\Users\ymuic\Documents\UiPath>Call C:\Users\ymuic\AppData\Local\UiPath\app-18.2.2\UiRobot.exe -file "C:\Users\ymuic\Documents\UiPath\xxxx\Main.xaml" xxxx System.Xaml.XamlObjectWriterException: Cannot create unknown type '{http://schemas.uipath.com/workflow/activities}HttpClient'. at System.Xaml.XamlObjectWriter.WriteStartObject(XamlType xamlType) at System.Xaml.XamlWriter.WriteNode(XamlReader reader) at System.Xaml.XamlServices.Transform(XamlReader xamlReader, XamlWriter xamlWriter, Boolean closeWriter) at System.Activities.XamlIntegration.FuncFactory1.Evaluate()
at System.Activities.DynamicActivity.OnInternalCacheMetadata(Boolean createEmptyBindings)
at System.Activities.Activity.InternalCacheMetadata(Boolean createEmptyBindings, IList1& validationErrors) at System.Activities.ActivityUtilities.ProcessActivity(ChildActivity childActivity, ChildActivity& nextActivity, Stack1& activitiesRemaining, ActivityCallStack parentChain, IList1& validationErrors, ProcessActivityTreeOptions options, ProcessActivityCallback callback) at System.Activities.ActivityUtilities.ProcessActivityTreeCore(ChildActivity currentActivity, ActivityCallStack parentChain, ProcessActivityTreeOptions options, ProcessActivityCallback callback, IList1& validationErrors)
at System.Activities.ActivityUtilities.CacheRootMetadata(Activity activity, LocationReferenceEnvironment hostEnvironment, ProcessActivityTreeOptions options, ProcessActivityCallback callback, IList1& validationErrors) at System.Activities.Hosting.WorkflowInstance.ValidateWorkflow(WorkflowInstanceExtensionManager extensionManager) at System.Activities.Hosting.WorkflowInstance.RegisterExtensionManager(WorkflowInstanceExtensionManager extensionManager) at System.Activities.WorkflowApplication.EnsureInitialized() at System.Activities.WorkflowApplication.Enqueue(InstanceOperation operation, Boolean push) at System.Activities.WorkflowApplication.SimpleOperationAsyncResult.Run(TimeSpan timeout) at System.Activities.WorkflowApplication.BeginRun(AsyncCallback callback, Object state) at UiPath.Executor.RobotRunner.<>c__DisplayClass54_0.<OnInvokeJob>b__0()

【発生するとき】
WorkflowにHttp Requestを使うフローを設置した際に、必ず発生。

取急ぎコマンドラインを起動してcURLを使うようにする事で使えるようにしようと思っているのですが、
ご指摘の通り、何かのパッケージが不足していることが原因になりそうでしょうか。
※一応全てのパッケージを入れてみたのですが改善しませんでした。

私も同様のエラーが出ていたのですが、

こちらのサイトを参考に、ページの中ほどにある
「publish(nupkgファイル)を生成してみる」
の手順を実行したところ、問題が解決しました。

Robotoガイドに、2018.2の仕様としてPublish(とptoject.json)がいることが記載されていました。ご参考まで
As of 2018.2, workflows started with this command only work if you had published the containing project at least once beforehand and if the associated project.json file is inside the project folder.