webMethods でカスタムコネクタを作る

# webMethods でカスタムコネクタを作る

## 背景
iPaaS としての **webMethods** は 600 以上のコネクタを持つ強力なインテグレーションツールです。使いやすい GUI を備え、ウェブ上から簡単にフローを作成できる、非常に便利なソリューションですが、海外製品ならではの弱点が存在します。

> **日本特有の製品コネクタが用意されていない** という点です… ( ；∀；)

しかしここで終わらないのが **webMethods** です。iPaaS 上で **簡単にコネクタを自作** することが可能です。  
そこで、どれだけ簡単にカスタムコネクタが作れるのかをご紹介します。

---

## 今回の目的
- **kintone API のコネクタ** を作成する

---

## 前提要件
1. **webMethods SaaS環境**（フリートライアルでも製品環境でも可）  
   \*1: トライアル環境は[こちら](https://signup.softwareag.cloud/#/basic-b)から申請可能。申請後 30 分ほどで利用可能。  
2. **kintone アカウント**（開発者アカウントで OK）  
   \*2: kintone 開発者ライセンスは[こちら](https://cybozu.dev/ja/kintone/developer-license/)から申請可能。

---

## 用意する資料
- **kintone API レファレンス**  
  [cybozu.dev (kintone docs)](https://cybozu.dev/ja/kintone/docs/)

---

## 手順

### 1. webMethods SaaS ログイン後、Integration Server を開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/834285d6-83d5-b426-7d95-1bbc70f73e84.png)

1. webMethods SaaS のダッシュボードにアクセス  
2. **Integration** などのメニューから **Integration Server** をクリックして開く

### 2. カスタムコネクタを作成したいプロジェクトを選択
- 接続を作成したいプロジェクト（Workspace）を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/94ca8715-dc04-e0c5-3dc5-246f246b73c9.png)

### 3. Connector タブをクリック
- 画面上部またはサイドバーから **Connector** タブを探してクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/24f6ed6a-2f86-7386-f2a9-773b3485ff1e.png)

### 4. REST をクリック
- Connector タブから **REST** を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/3c511b1f-8447-7692-beb8-dff7a89bd742.png)

### 5. Add Connector をクリック
- 新しいコネクタを追加するために **Add Connector** を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/31881ca7-6ff9-5b54-e622-6e646e5439db.png)

### 6. API の仕様書・必要情報を整理する
- 一度 webMethods の画面から離れて、今回作成する **kintone** の API 仕様書を確認します。

今回作成したい API:  
- kintone アプリのレコードを取得する API

#### 取得 API に関する情報
- **複数のレコードを取得する**: [cybozu developer network](https://cybozu.dev/ja/kintone/docs/)  
- **URL**:  
  - 例） `https://ftog18sh3p2a.cybozu.com`  
  - 例） `https://XXXXXXXX.cybozu.com`
- **リソースのパス**:  
  - `k/v1/records.json`
- **HTTP メソッド**:  
  - `GET`
- **パラメータ**:  
  - `app` (数値または文字列 / 必須)  
  - `fields` (文字列の配列 / 省略可)  
  - `query` (文字列 / 省略可)  
  - `totalCount` (文字列 / 省略可)
- **ヘッダー**:  
  - `X-Cybozu-API-Token`  
  - `Content-Type: application/json` (念のため準備)

##### kintone アプリの API キー
- アプリの設定 ＞ **Customization and integration** ＞ **API token** から取得可能
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/0755be10-3a3b-5847-af09-eb01c3e33bd3.png)


### 7. webMethods に戻り、コネクタを作る

#### 7-1. 全体的な定義
1. **Connector の名前（必須）**: 好きな英数字の名前を設定  
2. **URL（必須）**: API のエンドポイントアドレスを入力  
3. **Description（任意）**: わかりやすい説明を記載（日本語可）  
4. **Icon（任意）**: PNG などの画像を設定可能（サイズに注意）  
5. **Authentication Type**: kintone は API キーを使用するので、最もシンプルな **Credentials** を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/dbb9408d-c236-4d2b-1468-3faf9ee53091.png)

#### 7-2. リソースを追加
- **Path** に API のパスを設定（例： `k/v1/records.json` ）  
- **Methods** で **GET** を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/69991352-2aad-ea5f-7836-33b998d5292d.png)

#### 7-3. Get のパラメータと Header を設定
- **Parameter**  
  - **Name**: パラメータ名（例： `app`）  
  - **Value**: 初期値  
  - **Parameter Type**: QueryString_Param  
  - **Mandatory**: 必須なら **Yes**  
- **Header**  
  - **Name**: `X-Cybozu-API-Token`  
  - **Value**: kintone のアプリ API キーを入力しておくと後々楽  
  - **Mandatory**: **Yes**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/1ef6dd16-f84c-12e1-69e1-efea8fcee8da.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/13a39073-8845-31ef-9182-f03b26a90829.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/82d79ab4-56ce-0bd9-dbb3-82a28ad872ad.png)

- 以上を設定したら **Next** をクリック

#### 7-4. Response の設定
- **HTTP code**: `200` (正常系)  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/c4cc66bc-59fd-545f-4498-1182d2462719.png)

- **Document Type** 横の **+** ボタンをクリックして **Save AS** に任意のデータ型名を英数字で入力し、**Load Json** ボタンを押下 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/ec88e03d-f29e-5e00-cf59-8062526cbc0e.png)

  - ここで受け取る JSON の構造を取り込みます  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/f3f7e4dd-82aa-4eee-0b1b-9b77170c0f5a.png)

- 取り込みが終わったら **Save** をクリック  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/fad4994a-9c7a-92b5-e38e-5e7329b83ac1.png)

- **Document Type** のプルダウンから先ほど設定した JSON 形式名を選択して **NEXT**  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/591d169e-6545-d04e-ddd9-e9f23d4bcf80.png)

- 最後に **Save** をクリック  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/39a820b8-a36e-ab0c-4592-4b8ebcdfe252.png)

---

### 8. フローサービスで使ってみる
1. 画面上部または左側メニューから **Integrations** をクリック  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/540e538d-cabc-d466-0577-6bce938cde7f.png)

2. **＋** ボタンをクリックして **Create New Workflow** を選択  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/f84345c8-e24b-fdbc-5f19-f039a2bd06b9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/57766202-4da7-5bec-6a06-a2fa85ce0aa2.png)

3. 右側のパレットに先ほど作成したコネクタがあるので、（見つからない場合は検索）ドラッグ & ドロップ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/b4b5297e-8352-023f-0f8e-b9279b06444a.png)


### 9. コネクタ設定をフローに組み込む
1. ドロップしたコネクタのアイコンをダブルクリックして設定  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/b8f3a912-d473-3eae-4f56-bd5e18c169c9.png)

2. **＋** ボタンをクリックしてアクションを登録（初回使用時のみ必要）  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/639f71e1-6424-b7af-570e-bcac972841f9.png)

3. **Connect to xxxxx** の部分でさらに **＋** ボタンをクリックし、  
   - **Account Name** を任意で設定  
   - ほかの設定は特に変更せず **Add** をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/7d67f9e6-7eb4-e814-dd08-fd660d1dfd17.png)

4. **Name** に分かりやすい処理名（例：`getrecord`）を入力して **Next** をクリック  
5. 使いたいコネクタのリソースを選択して **Next**  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/5925bf5d-b809-c60c-4fe9-5e1df8c1caf5.png)
6. **Done** で終了 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/c484ebba-5395-15aa-ae2b-2bb1c51f20a8.png)
7. **Next** で設定を確認  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/7d624030-f2f6-4093-a195-9c057bbbbda0.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/290ba0a2-d979-d365-fff7-db2808d6ea89.png)


8. **Test** をクリックして情報が取得できることを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224276/4d383fcb-83d1-ba8d-fd8d-42c40ccf90fd.png)

---

## 参考リンク
- \*1: [webMethods トライアル申請](https://signup.softwareag.cloud/#/basic-b)  
- \*2: [kintone 開発者ライセンス申請](https://cybozu.dev/ja/kintone/developer-license/)  

以上で **webMethods でカスタムコネクタを作成する** 手順の紹介は完了です。  
気軽に試してみてください！