#author("2018-10-31T06:15:27+00:00","default:masatomix","masatomix")
#author("2019-05-08T01:13:05+00:00","default:masatomix","masatomix")
#topicpath
----


#contents

** 外部ファイル化されたリソースへのアクセス [#lfe4e6b9]
 Console.WriteLine(Properties.Resources.Combine_Description);

** 現在のカルチャを表示 [#g638e30b]
 Console.WriteLine("CurrentCulture: {0}",
    Thread.CurrentThread.CurrentCulture.Name);
 Console.WriteLine("CurrentUICulture: {0}",
     Thread.CurrentThread.CurrentUICulture.Name);


** Swagger [#w15c099f]
[サーバ]/swagger/ui/index#/



** ロボットログ [#vc0a632a]
 $ curl  'https://[サーバ名]/odata/RobotLogs'  \
   --data-urlencode  "\$filter=Level eq 'Info' and TimeStamp ge 2018-05-01T00:00:00Z and TimeStamp lt 2018-06-01T00:00:00Z"  \
   --data-urlencode  "\$select=TimeStamp"  \
   --data-urlencode  "\$orderby=TimeStamp asc"  \
   -H 'Authorization: Bearer xxxxx' \
   -k -G

などで、範囲指定(2018/5月だけ)かつInfo Levelのロボットログのダウンロードが可能。
項目はTimeStampだけ、TimeStampで昇順でソート。


$filterについては、curlなどから投げるときはエスケープすることを忘れずに、、。

ただし、UTCでしか指定出来ないのか、 Z → +09:00 にするとエラー。。これだと、JSTで五月中だけ、って出来てないなー。




** カスタムアクティビティの共有。 [#q0cbfcad]
Orch経由のはなし。OrchはCommunitiy Edition(2018.3)

2018.3.xのStudioから カスタムアクティビティを参照しているxamlをPublish
→ 2018.2 ロボ(Orchに接続している) は実行エラー。
→ 2018.3 ロボ(Orchに接続している) は実行出来た ←これはもしかしたら、Publishした端末だったからかも?

2018.2.xのStudioから カスタムアクティビティを参照しているxamlをPublish
→ 2018.2/2018.3 どちらの ロボ(Orchに接続している) も実行エラー。
ただし、2018.2 の端末でnupkgを Orchに配置したところ、どちらも実行OKとなった!

Orchにカスタムnupkgを配置するコマンドは
 dotnet nuget push ActivitiesPathUtils.0.0.13.nupkg -k xx(orch上のAPIKEY) -s https://platform.uipath.com//nuget/activities
でOK。


** 文字列を、UTF-8でバイト列にしてBase64 encodeかける [#c06ea742]
またまたC#で。
 target = "ほげほげ"
 Convert.ToBase64String(System.Text.Encoding.GetEncoding("UTF-8").GetBytes(target))

** Anchor Baseの使い方 [#ff522246]
UiPath Academyの レッスン10 - 演習1 に詳細がのってます



** Deserialize Jsonのパッケージ [#q4b91e58]
Deserialize Json のアクティビティが入っているパッケージは「UiPath.Web.Activities」

** URLから、ファイル名を取得する [#l054e18f]

C#のメソッドがそのまま利用可能です。
 System.IO.Path.GetFileName(url)


**余りを求める [#w5bb8f98]
ようするに合同式の計算。
「year が4で割ってあまりがゼロかどうか」は
 year mod 4 = 0

**DataTableの行数 [#uc4d3d98]
 xxDataTable.Rows.Count




** For each row 中のインデックス番号 [#kded5c6e]
For each row が foreach(row in xxxDataTable) みたいな感じの時、
 xxxDataTable.Rows.IndexOf(row)
(ゼロからはじまる)

** For each 中のインデックス番号 [#daf59c70]
For eachが foreach(item in items) みたいな感じの時、
 Array.IndexOf(items,item)
(ゼロからはじまる)

** Orchestrator ロボ登録 [#l2ec4603]

-ロボは同じマシン名だと複数登録するにはWindowsアカウントを変えないとダメ
-そしてロボはOUをまたげない。おなじPCを別OUで共有するには、Windowsアカウントを変えないとダメ。
-もしくは、あるWindowsアカウントを複数OUで使用するには、別PCを準備する必要あり。


** Get Credentialで取得したパスワードを復号化する [#j7eb4736]
 orch_password = New System.Net.NetworkCredential(String.Empty, orch_cre_password).Password

**文字列からJSON [#h353e49a]
AB Assignで。

 "{""UsernameOrEmailAddress"":""" + orch_user   + """,""tenancyName"":"""+tenant_id+""",""Password"":"""+  orch_password +"""}"

いやクオート多すぎでしょorz

このあとDeserialize jsonをつかう。。

クオート多すぎ文字列をどうにかするには、Dictionaryを使う。
Dictionaryで、
 tenancyName -> tenant_id
 UsernameOrEmailAddress -> orch_user
 Password -> orch_password
を作成。

AB Asignで、
 json = Newtonsoft.Json.JsonConvert.SerializeObject(jsonDic)


** organization units を設定したとき [#c37624bf]
APIを呼ぶときヘッダに
 X-UIPATH-OrganizationUnitId: 1
などをつける必要があるらしい。

[[Building API Requests>https://orchestrator.uipath.com/reference#building-api-requests]]
If you have organization units enabled in your Orchestrator instance, please note that you need to include the OU Id in each request, as a header. For example, X-UIPATH-OrganizationUnitId "6".

つけりゃ取れることは確認したが、そのユーザが複数に属している場合とか、どーすんだろう、、、。そのユーザがもってるOU全部の情報、じゃダメだったんだろうか。



** Get Environment Variable Activityの引き数一覧 [#c70e82a9]
https://activities.uipath.com/docs/get-environment-variable このアクティビティに渡せるキー値一覧は
 
https://msdn.microsoft.com/en-us/library/system.environment(v=vs.110).aspx
コレだそう。わかるかっ。

これで、Windows OSのマシン名、アカウント名、ドメイン名などがとれる事を確認済み。




** .NET Frameworkのダウンロード [#w68a1d12]
[[開発者向けの .NET Framework のインストール | Microsoft Docs>https://docs.microsoft.com/ja-jp/dotnet/framework/install/guide-for-developers]]

https://orchestrator.uipath.com/docs/software-requirements にもあるとおり、.NETのバージョンは4.5.2以上だから気をつけてね! Windows Server 2012 R2 の.NETは4.5.1というワナorz


**メモ [#k02274d1]
Windowsって、IEで自己署名証明書をダウンロードしようとするとき、デフォルトではドット付きのURLだとインストールできない??


表示されるエラーは
 お使いの PC はこの Web サイトのセキュリティ証明書を信頼しません。
 Web サイトのセキュリティ証明書のホスト名が、参照しようとしている Web サイトと異なります。 
 エラー コード: DLG_FLAGS_INVALID_CA
 DLG_FLAGS_SEC_CERT_CN_INVALID



Win + R -> certmgr.msc で、証明書編集ツールが起動。


mmc.exeに近いツールっぽいな



**Microsoft Management Console について [#j210ac5f]

Win + R -> mmc.exe 起動

- mmc.exe でローカルコンピュータ接続した場合
- certmgr.mscで表示した場合でcertmgr.msc 側は、「ローカルコンピュータ」と「現在のユーザ」ぶんが両方表示されて、
mmc.exe 側は「ローカルコンピュータ」ぶんだけが表示されるようです。
mmc.exe は最初のオペで「ローカルコンピュータ」と「現在のユーザ」 どっちモードで起動するかが選べて、「現在のユーザ」をえらぶとcertmgr.msc とおなじ表示もできるなど。。

mmc.exe のほうが便利かな。。

いちおう、mmcでつないでローカルコンピュータに接続。
IISの自己署名証明書(*.cer) を信頼できるCAとしてインポートすれば、Orchでいい感じ。。






----
この記事は
#vote(おもしろかった,そうでもない)

#comment

#topicpath

SIZE(10){現在のアクセス:&counter;}

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS