Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Process名の秘密 序章~Process名の秘密

HANACCHI
April 16, 2021
410

Process名の秘密 序章~Process名の秘密

RPA勉強会!UiPath Talk テーマはUiPath × 業務可視化

HANACCHI

April 16, 2021
Tweet

Transcript

  1. 新規作成で作成する際は
    チェックが掛かる
    丸付き数字は
    99で命名!
    問い合わせ (2)
    Process名の秘密
    序章

    View Slide

  2. 開発サポートからみた
    ロボット開発

    View Slide

  3. 開発サポートの役回り
     問い合わせ回答
    • ストレートに回答するのではなく、
    問い合わせ者のスキルレベルを推し量った回答を心がける。
    • 問い合わせた背景を深堀りして、
    実現したい事をキャッチアップする。
    自己研鑽
    • 開発サポートとして回答した内容から、
    自らの知見を深めるために追究を心がける。
    問い合わせ分析
    • 問い合わせを分析し、プロジェクトのウィークポイントを知り、
    それをカヴァーするような施策(教育など)を検討する。

    View Slide

  4. 問い合わせ (1)
    フォルダに複数の所定ファイルが存在するか知りたい。
    ⇒”ファイル”では検索できない「パスの有無を確認」アクテイビティを紹介
    スキルある開発者へは… 「繰り返し (コレクションの各要素)」の中で
    ファイル存在 And System.IO.File.Exists(item(ix).ToString)
    結果は、設定したBoolean型変数に出力される
    [ファイル存在]は、Boolean型
    結果は、File.Existsの戻り値となる

    View Slide

  5. 問い合わせ (1)
    このような、解法もある
    ⇒「繰り返し (コレクションの各要素)」を使っているので、
    ファイル情報はコレクションに格納されている事から推察…
    Files.All(Function(f) System.IO.File.Exists(f))
    市民開発者レベルの人に対して、
    実現はできるけど、
    理解しにくい回答を出していいものか…

    View Slide

  6. 問い合わせ (2)
    PUBLISHしました!
    ⇔申請したロボット名がみつかりません
    但し、「空のプロセス」が沢山PUBLISHされたようだ。
     試しに作っていたものが簡単に出来たので、それを正式登用した。
     他ロボは、先のロボをフォルダ単位でコピペして、
    フォルダ名だけを変えて、流用新規開発した。
     サポートから、以下の指示をする。
     参照しているフォルダ名を、ロボット名にリネームする。
     そのフォルダ中にある”project.json”の”name”を
    ロボット名に書き換える。
    その際、UTF-8形式で保存すること。
     改めて、PUBLISHしてください。

    View Slide

  7. 問い合わせ (2)
    PUBLISHしました!
    ⇔申請したロボット名がみつかりません
    但し、「○○部_□□業務__処理」が沢山PUBLISHされたようだ。
    ↑見せるために色を塗っています
    ⇒サポートからの指示はちゃんと対応してくださっているようだ。
    ⇒どんな名前を付けました?
    ○○部_□□業務_①処理
    ○○部_□□業務_②処理
    ↑!?

    View Slide

  8. 新規作成で作成する際は
    チェックが掛かる
    丸付き数字は
    99で命名!
    問い合わせ (2)
    Process名の秘密

    View Slide

  9. 新規作成時 ロボットを作成する意気込み!!
    しかし、想定したロボット名が使えない!!
    「空のプロセス」で作り始めよう!

    View Slide

  10. project.jsonを
    強制書換 Studioで開ける
    プロジェクト は正常にパブリッシュされました。
    名前: _
    バージョン: 1.0.7719.15066
    パブリッシュ先:
    C:¥Users¥z102234¥Documents¥UiPath
    強制書換時
    publishも可能!
    PUBLISH時 名前が違うと、管理者から指摘される!
    ⇒フォルダ名、project.jsonを書換る!
    ロボット名が違う!
    ファイル名が違う!
    ロボット名が違う!

    View Slide

  11. PUBLISH時 名前が違うと、管理者から指摘される!
    ⇒フォルダ名、project.jsonを書換る!
    project.jsonを
    強制書換 Studioで開ける
    プロジェクト は正常にパブリッシュされました。
    名前: _
    バージョン: 1.0.7719.15066
    パブリッシュ先:
    C:¥Users¥z102234¥Documents¥UiPath
    強制書換時
    ロボット名が違う!
    ファイル名が違う!
    ロボット名が違う!
    どのような名前にすればいいのか?
    publishも可能!

    View Slide

  12. どのような名前にすればいいのか? 問い合わせてみた

    View Slide

  13. using System;
    using System.Globalization;
    using System.Text.RegularExpressions;
    using NuGet.Packaging.PackageCreation.Resources;
    namespace NuGet.Packaging
    {
    public static class PackageIdValidator
    {
    public const int MaxPackageIdLength = 100;
    private static readonly Regex IdRegex = new Regex(@"^¥w+([_.-]¥w+)*$",
    RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture | RegexOptions.CultureInvariant);
    public static bool IsValidPackageId(string packageId)
    {
    if (packageId == null)
    {
    throw new ArgumentNullException(nameof(packageId));
    }
    return IdRegex.IsMatch(packageId);
    }
    public static void ValidatePackageId(string packageId)
    {
    if (packageId.Length > MaxPackageIdLength)
    {
    throw new ArgumentException(NuGetResources.Manifest_IdMaxLengthExceeded);
    }
    if (!IsValidPackageId(packageId))
    {
    throw new ArgumentException(string.Format(CultureInfo.CurrentCulture,
    NuGetResources.InvalidPackageId, packageId));
    }
    }
    }
    }
    どのような名前にすればいいのか?
    nugetの仕様に基づいています
    "^¥w+([_.-]¥w+)*$"
    https://github.com/NuGet/NuGet.Client/blob/e89d16985a9d28c837e13369753eac6ed1f952a3/src/NuGet.Core/NuGet.Packaging/PackageCreation/Utility/PackageIdValidator.cs
    "^¥w+([_.-]¥w+)*$"
    回答がすぐついた

    View Slide

  14. 正規表現:"^¥w+([_.-]¥w+)*$"
    単語に使用される文字: ¥w 単語に使用されない文字: ¥W
    https://www.compart.com/en/unicode/category
    カテゴリ 説明 文字数
    Ll Letter, Lowercase (字、小文字) 2,151文字
    Lu Letter, Uppercase (字、大文字) 1,788文字
    Lt Letter, Titlecase (字、タイトル文字) 31文字
    Lo Letter, Other (字、その他) 121,414文字
    Lm Letter, Modifier (字、修飾) 259文字
    Mn Mark, Nonspacing (結合文字、幅なし) 1,826文字
    Nd Number, Decimal Digit (数、10 進数字) 630文字
    Pc Punctuation, Connector (句読点、接続) 10文字



    View Slide

  15. Unicode Character Categories https://www.compart.com/en/unicode/category
    ①文字入力 ②検索
    ③結果表示

    View Slide

  16. Name: CJK Unified Ideograph-60C5[1]
    Unicode Version: 1.1 (June 1993)[2]
    Block: CJK Unified Ideographs, U+4E00 - U+9FFF[3]
    Plane: Basic Multilingual Plane, U+0000 - U+FFFF[3]
    Script: Han (Hanzi, Kanji, Hanja) (Hani) [4]
    Category: Other Letter (Lo) [1]
    Bidirectional Class: Left To Right (L) [1]
    Combining Class: Not Reordered (0) [1]
    Character is Mirrored: No [1]
    HTML Entity: •情
    •情
    UTF-8 Encoding: 0xE6 0x83 0x85
    UTF-16 Encoding: 0x60C5
    UTF-32 Encoding: 0x000060C5
    https://www.compart.com/en/unicode/U+60C5
    検索結果:「情」、「①」
    Name: Circled Digit One[1]
    Numeric Value: 1[1]
    Unicode Version: 1.1 (June 1993)[2]
    Block: Enclosed Alphanumerics, U+2460 - U+24FF[3]
    Plane: Basic Multilingual Plane, U+0000 - U+FFFF[3]
    Script: Code for undetermined script (Zyyy) [4]
    Category: Other Number (No) [1]
    Bidirectional Class: Other Neutral (ON) [1]
    Combining Class: Not Reordered (0) [1]
    Character is Mirrored: No [1]
    GCGID: NO010000[5]
    HTML Entity: •①
    •①
    UTF-8 Encoding: 0xE2 0x91 0xA0
    UTF-16 Encoding: 0x2460
    UTF-32 Encoding: 0x00002460
    Decomposition: 1 (U+0031)[1]
    https://www.compart.com/en/unicode/U+2460

    View Slide

  17. Name: CJK Unified Ideograph-60C5[1]
    Unicode Version: 1.1 (June 1993)[2]
    Block: CJK Unified Ideographs, U+4E00 - U+9FFF[3]
    Plane: Basic Multilingual Plane, U+0000 - U+FFFF[3]
    Script: Han (Hanzi, Kanji, Hanja) (Hani) [4]
    Category: Other Letter (Lo) [1]
    Bidirectional Class: Left To Right (L) [1]
    Combining Class: Not Reordered (0) [1]
    Character is Mirrored: No [1]
    HTML Entity: •情
    •情
    UTF-8 Encoding: 0xE6 0x83 0x85
    UTF-16 Encoding: 0x60C5
    UTF-32 Encoding: 0x000060C5
    https://www.compart.com/en/unicode/U+60C5
    Name: Circled Digit One[1]
    Numeric Value: 1[1]
    Unicode Version: 1.1 (June 1993)[2]
    Block: Enclosed Alphanumerics, U+2460 - U+24FF[3]
    Plane: Basic Multilingual Plane, U+0000 - U+FFFF[3]
    Script: Code for undetermined script (Zyyy) [4]
    Category: Other Number (No) [1]
    Bidirectional Class: Other Neutral (ON) [1]
    Combining Class: Not Reordered (0) [1]
    Character is Mirrored: No [1]
    GCGID: NO010000[5]
    HTML Entity: •①
    •①
    UTF-8 Encoding: 0xE2 0x91 0xA0
    UTF-16 Encoding: 0x2460
    UTF-32 Encoding: 0x00002460
    Decomposition: 1 (U+0031)[1]
    https://www.compart.com/en/unicode/U+2460
    検索結果:「情」、「①」

    View Slide

  18. 文字 Category 結果
    ① Other Number (No) 使えない
    ┤ Other Symbol (So) 使えない
    﨑 Other Letter (Lo) 使える
    ∑ Math Symbol (Sm) 使えない
    Σ Uppercase Letter (Lu) 使える
    振り返ってみよう!

    View Slide

  19. どのような名前にすればいいのか?
    1. 普通の漢字なら使える!
    2. 丸付き数字など、気になる文字は調べてみよう!
    3. 最大100文字まで(設定は出来るけど、PUBLISHの際にエ
    ラーとなる)
    4. 最初が肝心!開発は、許されたプロセス名にしてから!
    エラー: Id must not exceed 100 characters.
    エラー: System.ArgumentException: Id must not exceed 100 characters.
    プロジェクト は正常にパブリッシュされました。
    名前: AAAAXAAAAXAAAAXAAAAXAAAAXAAAAXAA
    AAXAAAAXAAAAXAAAAXAAAAXAAAAXAAAAXA
    AAAXAAAAXAAAAXAAAAXAAAAXAAAAXAAAAX
    バージョン: 1.0.7724.20851
    パブリッシュ先: C:¥Users¥hjmkzk¥Documents¥UiPath

    View Slide

  20. Abbr Long Description
    Sm Math_Symbol a symbol of mathematical use
    Sc Currency_Symbol a currency sign
    Sk Modifier_Symbol a non-letterlike modifier symbol
    So Other_Symbol a symbol of other type
    S Symbol Sm | Sc | Sk | So
    Zs Space_Separator a space character (of various non-zero widths)
    Zl Line_Separator U+2028 LINE SEPARATOR only
    Zp Paragraph_Separator U+2029 PARAGRAPH SEPARATOR only
    Z Separator Zs | Zl | Zp
    Cc Control a C0 or C1 control code
    Cf Format a format control character
    Cs Surrogate a surrogate code point
    Co Private_Use a private-use character
    Cn Unassigned a reserved unassigned code point or a
    noncharacter
    C Other Cc | Cf | Cs | Co | Cn
    【参考】 Table 12. General_Category Values
    http://www.unicode.org/reports/tr44/#General_Category_Values
    Abbr Long Description
    Lu Uppercase_Letter an uppercase letter
    Ll Lowercase_Letter a lowercase letter
    Lt Titlecase_Letter a digraphic character, with first part uppercase
    LC Cased_Letter Lu | Ll | Lt
    Lm Modifier_Letter a modifier letter
    Lo Other_Letter other letters, including syllables and
    ideographs
    L Letter Lu | Ll | Lt | Lm | Lo
    Mn Nonspacing_Mark a nonspacing combining mark (zero advance
    width)
    Mc Spacing_Mark a spacing combining mark (positive advance
    width)
    Me Enclosing_Mark an enclosing combining mark
    M Mark Mn | Mc | Me
    Nd Decimal_Number a decimal digit
    Nl Letter_Number a letterlike numeric character
    No Other_Number a numeric character of other type
    N Number Nd | Nl | No
    Pc Connector_Punctuation a connecting punctuation mark, like a tie
    Pd Dash_Punctuation a dash or hyphen punctuation mark
    Ps Open_Punctuation an opening punctuation mark (of a pair)
    Pe Close_Punctuation a closing punctuation mark (of a pair)
    Pi Initial_Punctuation an initial quotation mark
    Pf Final_Punctuation a final quotation mark
    Po Other_Punctuation a punctuation mark of other type
    P Punctuation Pc | Pd | Ps | Pe | Pi | Pf | Po

    View Slide