Automation Anywhere でJSONファイルを処理する


概要

Automation Anywhere には標準で JSON 形式を扱う機能がありませんが、Automation Anywhere の特徴のひとつである Bot Store には、JSON 処理用のボットがいくつか登録されており、これらをダウンロードしてインストールすることで、機能を追加することが可能です。

Bot Store にある JSON 処理関連のボット

2019年8月現在、Bot Store には4つのボットが登録されています。

JSON 処理機能を追加して使ってみる

上記の4つのボットをインストールして使ってみました。以下のようなMeta Bot がインストールされます。

今回使うJSONサンプルはこちら (テキストファイルとして扱うため、拡張子を.txtにしています)

sample.json.txt
{
    "glossary": {
        "title": "example glossary",
        "GlossDiv": {
            "title": "S",
            "GlossList": {
                "GlossEntry": {
                    "ID": "SGML",
                    "GlossTerm": "Standard Generalized Markup Language",
                    "Abbrev": "ISO 8879:1986",
                    "GlossDef": {
                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
                        "GlossSeeAlso": ["GML", "XML"]
                    },
                    "GlossSee": "markup"
                }
            }
        }
    }
}

1. JSON Parser Bot

JSON 文法のパーサー、および指定したレベルのキーの列挙や値を得るMeta Botです。

ロジック Input パラメータ Outputパラメーター 説明
Get Keys from JSON Logic vJsonString vKeys vJsonStringの最上位層のキーを列挙。
Get Value from JSON Logic vJsonString, vKey vResponse 指定されたキーに対応する値を返す。
Validate JSON Logic vJsonString vParseSuccessful JSON文法が正しいかどうかを返す。(True or False)

サンプルボット: デスクトップに入力ファイルを置いて読み込ませる。カーソルが当たっている位置でこのMeta Botを呼び出します。

結果:

  • Validate JSON LogicはvParseSuccessful=Trueを返します。
  • Get Keys from JSON Logicは、"glossary"を返します。(最上位で並んでいるキーがglossary 1つだけなので)
  • Get Value from JSON LogicはvKey=""で呼び出すと、読み込んだJSON全体を返します。vKey="glossary.GlossDiv.GlossList.GlossEntry"で呼び出すと、
{
  "ID": "SGML",
  "GlossTerm": "Standard Generalized Markup Language",
  "Abbrev": "ISO 8879:1986",
  "GlossDef": {
      "para": "A meta-markup language, used to create markup languages such as DocBook.",
      "GlossSeeAlso": ["GML", "XML"]
  },
  "GlossSee": "markup"
}

を返します。使い方としては、Get Keys from JSON Logicで得たキーひとつひとつに対して値を得て、さらにその中のキーを列挙して...というループを繰り返していって階層を掘っていく、という使い方をするのでしょう。

2. Convert Json To Xml

JSON 形式をXML 形式に、またはXML 形式をJSON 形式に変換するMeta Botです。また、JSON/XML をファイルに書き出す機能も付いています。

ロジック Input パラメータ Outputパラメーター 説明
JsonToText&JsonFileSave vJson, vFileSavePath vJsonを指定されたパス+.txt/.jsonの2つのファイルに書き出します。
JsonToXmlResponse vJson vResponse vJsonをXMLに変換、結果をvResponseに返します。
XmlToJsonResponse vXml vResponse vXmlをJSONに変換、結果をvResponseに返します。
XmlToText&XmlFileSave vXml, vFileSavePath vXmlを指定されたパス+.txt/.xmlの2つのファイルに書き出します。

ためしに、JsonToXmlResponse コマンドでvResponseに入った結果をXmlToText&XmlFileSave コマンドでファイルに書き出すと、以下の内容が得られました。

<Root>
  <glossary>
    <title>example glossary</title>
    <GlossDiv>
      <title>S</title>
      <GlossList>
        <GlossEntry>
          <ID>SGML</ID>
          <GlossTerm>Standard Generalized Markup Language</GlossTerm>
          <Abbrev>ISO 8879:1986</Abbrev>
          <GlossDef>
            <para>A meta-markup language, used to create markup languages such as DocBook.</para>
            <GlossSeeAlso>GML</GlossSeeAlso>
            <GlossSeeAlso>XML</GlossSeeAlso>
          </GlossDef>
          <GlossSee>markup</GlossSee>
        </GlossEntry>
      </GlossList>
    </GlossDiv>
  </glossary>
</Root>

3. Convert JSON TO CSV

JSON の中の表形式を(場合によっては複数の)CSV 形式のファイルにに変換するMeta Botです。

ロジック Input パラメータ Outputパラメーター 説明
JsonToCSV vJsonFile, vCodePage, vTableNo, vOutputPath vResponse vJsonFileのパスで指定されたJSONデータを、指定されたパスのフォルダーの中にTable_0.csv, table_1.csv...という形で書き出します。

4. CSV to JSON

CSV 形式のファイルをJSON形式に変換するMeta Botです。

ロジック Input パラメータ Outputパラメーター 説明
csvtojson vLogFile, vInputFile JsonOutput vInputFileで指定されたCSV形式をJsonOutputに出力します。

 
 
 
このように、いろいろ汎用的に使えるMeta Botが入手可能ですので試してみてください。最後までお読みいただきありがとうございました。