# How to ガイド - CLI におけるピックリストの実行

ここでは、Workato Gem を使用してピックリストを実行する方法について説明します。

# 前提条件

  • Workato SDK Gem がインストールされており、実行可能であること。詳細については、入門ガイドを参照してください。
  • 少なくとも1つのピックリストを備えた有効なコネクターがあること。ここでは以下のサンプルコネクターを使用します。
  • 有効な資格情報があること。サンプルコネクターのコードを使用する場合は、そのコネクターの適切な資格情報があることを確認してください。

# サンプルコネクター - Chargebee

connector.rb のコードを以下に示します。

{
  title: 'Chargebee-demo',

  connection: {
    fields: [
      {
        name: 'api_key',
        control_type: 'password',
        hint: 'You can find your API key final change3' \
          "under 'Settings'=>'Configure Chargebee'=>'API Keys and Webhooks'" \
          " in Chargebee's web console.",
        label: 'Your API Key'
      },
      {
        name: 'domain',
        control_type: 'subdomain',
        url: 'chargebee.com'
      }
    ],

    authorization: {
      type: 'basic_auth',  

      apply: lambda do |connection|
        user(connection['api_key'])
      end
    },

    base_uri: lambda do |connection|
      "https://#{connection['domain']}.chargebee.com"
    end
  },

  test: lambda do |_connection|
    get('/api/v2/plans', limit: 1)
  end,

  pick_lists: {

    static: lambda do
      [
        %w[Subscription subscription],
        %w[Customer customer],
        %w[Plans plan]
      ]
    end,

    dynamic: lambda do 
      get('/api/v2/customers')['list'].map do |index|
          [
            index['customer']['first_name'],
            index['customer']['id']
          ]
      end
    end,

    dependent: lambda do |connection, params|
      get('/api/v2/customers', params)['list'].map do |index|
          [
            index['customer']['first_name'],
            index['customer']['id']
          ]
      end
    end,

    dependent_with_names: lambda do |connection, limit:|
      get('/api/v2/customers', limit: limit)['list'].map do |index|
          [
            index['customer']['first_name'],
            index['customer']['id']
          ]
      end
    end

  },
}

settings.yaml.enc に格納されている資格情報です。

api_key: valid_api_key
domain: valid_domain

TIP

暗号化された settings.yaml ファイルを使用する場合は、workato edit <PATH> を使用してファイルを編集または作成する必要があります。詳細については、こちらを参照してください。

SDK Gem を使用すると、ピックリストを個別に呼び出すことができます。

# 例1 : static ピックリストの実行

上記のサンプルで最初に取り上げるのは static ピックリストです。その名前が示すように、このピックリストは静的な値のリストを格納しており、呼び出されるとその値を返します。

このピックリストの実行例を以下に示します。

$ workato exec pick_lists.static
[
  [
    "Subscription",
    "subscription"
  ],
  [
    "Customer",
    "customer"
  ],
  [
    "Plans",
    "plan"
  ]
]

# 例2 : dynamic ピックリストの実行

このピックリストはリクエストを送信し、そのレスポンスをピックリストの形式に変換します。ここでは、リクエストの認証に必要な接続設定がデフォルトの settings.yaml.enc ファイルであることを前提としています。それ以外のファイルを使用したい場合は、--settings を使用して設定を上書きできます。

このピックリストの実行例を以下に示します。

$ workato exec pick_lists.dynamic
[
  [
    "dd",
    "AzyuHzSiORQAo1JUb"
  ],
  [
    "fdsfdf",
    "16Bji8SfZHHDm7v"
  ]
]

# 例3 : dependent ピックリストの実行

このピックリストはリクエストを送信し、そのレスポンスをピックリストの形式に変換します。ここでは、リクエストの認証に必要な接続設定がデフォルトの settings.yaml.enc ファイルであることを前提としています。それ以外のファイルを使用したい場合は、--settings を使用して設定を上書きできます。

この場合、ファイル fixtures/pick_lists/dependent/input.json の内容は以下のとおりです。

{
    "limit": "1"
}

このピックリストの実行例を以下に示します。

$ workato exec pick_lists.dependent --args='fixtures/pick_lists/dependent/input.json' 
[
  [
    "dd",
    "AzyuHzSiORQAo1JUb"
  ]
]

# 例4 : dependent_with_names ピックリストの実行

名前付き引数を受け入れるピックリストを使用することもあります。この場合、名前付き引数 (limit:) を持つピックリストを使います。

CLI から引数を渡す場合、ファイル fixtures/pick_lists/dependent_with_names/input.json の内容は以下のようになります。

{
    "limit": "1"
}

このピックリストの実行例を以下に示します。

$ workato exec pick_lists.dependent_with_names --args='fixtures/pick_lists/dependent_with_names/input.json' 
[
  [
    "dd",
    "AzyuHzSiORQAo1JUb"
  ]
]

# 例4 : dependent_with_names ピックリストの実行

名前付き引数を受け入れるピックリストを使用することもあります。この場合、名前付き引数 (limit:) を持つピックリストを使います。

CLI から引数を渡す場合、ファイル fixtures/pick_lists/dependent_with_names/input.json の内容は以下のようになります。

{
    "limit": "1"
}

このピックリストの実行例を以下に示します。

$ workato exec pick_lists.dependent_with_names --args='fixtures/pick_lists/dependent_with_names/input.json' 
[
  [
    "dd",
    "AzyuHzSiORQAo1JUb"
  ]
]


Last updated: 2023/8/31 1:07:14