Workato：FizzBuzz問題をノーコードで実装する

# はじめに

エンジニア（プログラマ）のスキルチェック手法の１つに、「FizzBuzz問題」というものがあります。
今回は、Workatoを利用して、ノーコードでFizzBuzz問題を実装し、試してみました。

## FizzBuzz問題とは


※「「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典」より抜粋

https://wa3.i-3-i.info/word18535.html

> フィズバズ問題（FizzBuzz問題）（読：フィズバズモンダイ　英：FizzBuzz）とは
> そいつの実力を測るために出されたりするプログラミングの問題のひとつ
> であり
> 「1から100までの数字を画面に表示する。ただし、3の倍数のときは数字の代わりにFizzと表示し、5の倍数のときは数字の代わりにBuzzと表示し、15の倍数のときは数字の代わりにFizzBuzzと表示する」プログラムを組んでみろやぁ！な問題のこと
> です。

なお、以下の手順では、FizzBuzz問題のうち、最も一般的な剰余算による方法で実装を行っています。

# 手順

## １．Lookup Tableの追加
結果出力先はどこでも良いのですが、今回は手軽な出力先として、Workatoに標準で用意されている機能であるLookup Tableを使用します。
結果格納用にLookup Tableを1つ追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/78a336eb-87a0-30c4-9e4e-c1a1a6708fbd.png)

## ２．レシピの作成
次のようなレシピを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/0a6c5a58-d174-7fc8-87c0-9d6af9f1b9eb.png)

### ステップ1
トリガーとなるコネクタを選択（今回はScheduler by Workatoを使用）

### ステップ2
#### App
「Lists by Workato」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/302a9de8-3cb0-ce62-7d30-dbe979b18a8d.png)

#### Action
「Create repeat helper list」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/f8ea0c02-33a2-a34c-939f-286238d8160b.png)

#### Setup
「Size」へループしたい回数を入力
今回は100回ループさせたいため、「100」と入力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/d56559c0-94f9-68bc-abf8-e6ad3630cdec.png)

### ステップ3
#### App
「Lookup tables by Workato」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/031e7ae9-20a3-fc4a-19ac-d1caca810058.png)

#### Action
「Truncate table」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/bc0b7fe2-1145-b956-5c3f-4d44576c0e1a.png)

#### Setup
「Lookup table」で、１で追加したLookup Tableを指定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/fa4efc01-ac5c-aaf8-562c-9d94eda0f02f.png)

### ステップ4
「Repeat action」を追加
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/c699184d-a601-615d-a050-77614ad110be.png)

追加後、以下の通り設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/905c2ea0-1a15-9580-dcc6-b8b5201d25a5.png)

### ステップ5
「IF condition」を追加
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/6d2a508c-b191-97af-1ad9-f8165b945825.png)

Data fieldをFormulaモードに切り替え、次の条件で数式を設定する

- ループのインデックスは0から始まるため、`+1` する
- 上記値が3でも5でも割り切れない場合の評価をTrueとする

設定については、以下を参照

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/04ef7c61-8dc3-dfcf-2117-a97125b80db3.png)

### ステップ6 
#### App
「Lookup tables by Workato」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/47092a7c-d052-8b1a-3e2f-a00e190ddacb.png)

#### Action
「Add entry」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/2d3a0942-d18e-6cc8-5844-c460d18f9df4.png)

#### Setup

- 1で追加したLookup Tableを指定する
- Entry fieldsのnoは、ループのインデックス + 1 とする（インデックスが0スタートであるため）
- Entry fieldsのvalueは空欄とする（Fizz, Buzzどちらの条件にも当てはまらないため）

設定については、以下を参照

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/e25799e0-082c-f88f-bcbe-f632b63d6a58.png)

### ステップ7 
「IF/ELSE condition」を追加
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/17d64273-6de0-7703-60d0-768fb5fb402a.png)


Data fieldをFormulaモードに切り替え、次の条件で数式を設定する

- ループのインデックスは0から始まるため、`+1` する
- 上記値が3と5いずれも割り切れる場合の評価をTrueとする

設定については、以下を参照

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/14ba26b0-6117-ffd0-5dcc-77431a92857c.png)

### ステップ8 
#### App
「Lookup tables by Workato」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/47092a7c-d052-8b1a-3e2f-a00e190ddacb.png)

#### Action
「Add entry」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/2d3a0942-d18e-6cc8-5844-c460d18f9df4.png)

#### Setup

- 1で追加したLookup Tableを指定する
- Entry fieldsのnoは、ループのインデックス + 1 とする（インデックスが0スタートであるため）
- Entry fieldsのvalueは「Fizz, Buzz」とする

設定については、以下を参照
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/6aba42c2-f76a-028e-7b02-aa8237944b7e.png)

### ステップ9
設定不要

### ステップ10 
「IF condition」を追加
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/6d2a508c-b191-97af-1ad9-f8165b945825.png)

Data fieldをFormulaモードに切り替え、次の条件で数式を設定する

- ループのインデックスは0から始まるため、`+1` する
- 上記値が3で割り切れる場合の評価をTrueとする

設定については、以下を参照
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/92ec5cb4-cf85-ae7c-0abb-11f85c44f20b.png)


### ステップ11 
#### App
「Lookup tables by Workato」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/47092a7c-d052-8b1a-3e2f-a00e190ddacb.png)

#### Action
「Add entry」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/2d3a0942-d18e-6cc8-5844-c460d18f9df4.png)

#### Setup

- 1で追加したLookup Tableを指定する
- Entry fieldsのnoは、ループのインデックス + 1 とする（インデックスが0スタートであるため）
- Entry fieldsのvalueは「Fizz」とする

設定については、以下を参照
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/2047f257-e07f-191e-16d1-119a0e35f9cd.png)


### ステップ12 
「IF condition」を追加
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/6d2a508c-b191-97af-1ad9-f8165b945825.png)

Data fieldをFormulaモードに切り替え、次の条件で数式を設定する

- ループのインデックスは0から始まるため、`+1` する
- 上記値が5で割り切れる場合の評価をTrueとする

設定については、以下を参照
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/9eec07e4-fae3-170d-c3be-42a01d3a21ce.png)


### ステップ13
#### App
「Lookup tables by Workato」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/47092a7c-d052-8b1a-3e2f-a00e190ddacb.png)

#### Action
「Add entry」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/2d3a0942-d18e-6cc8-5844-c460d18f9df4.png)

#### Setup

- 1で追加したLookup Tableを指定する
- Entry fieldsのnoは、ループのインデックス + 1 とする（インデックスが0スタートであるため）
- Entry fieldsのvalueは「Buzz」とする

設定については、以下を参照
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/872df204-d0fc-5922-2205-338bea32cd08.png)

# 結果
Lookup Tableを確認すると、以下の通りの結果になったことを確認することが出来ます。

- Noの値が3と5どちらでも割れる（すなわち15の倍数である）場合・・・Fizz, Buzz
- Noの値が3で割れる（5では割れない）場合・・・Fizz
- Noの値が5で割れる（3では割れない）場合・・・Buzz
- 上記いずれにも当てはまらない・・・空

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/20304cb2-b18c-47b2-bca3-2a66d5a9dac5.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/f29223a4-b980-616d-3897-97fa843ab244.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/5bea300f-68ee-39d0-5224-47efcfa8e37f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/43278bf6-57f8-92c6-2273-afde1c81e038.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/c0b24000-b3e9-0a7c-725e-46432448c041.png)