cli-kintone の定期実行エラーをkintoneから通知してみた

cli-kintoneを使った更新処理の失敗をkintoeから通知してみます。

# 処理イメージ
![cli-kintone.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/3cdffe04-46a4-fedb-3412-535d4b5a0981.png)


# 環境

* Windows10
* cli-kintone V0.10.2

# 処理の構成
利用したツールなど

* cli-kintone コマンドラインツール
* バッチファイル
* タスクスケジューラー
* 更新するアプリ
* エラーログアプリ

# 処理概要

1. cli-kintoneのインストール
2. バッチファイル作成
3. タスクスケジューラー登録

## 1. cli-kintoneのインストール
GitHubからWindows版のzipファイルをダウンロード・解凍して設置します。
https://github.com/kintone/cli-kintone

## 2. バッチファイル作成
Windowsは良く分からないので間違った記述があるかもしれません。

```cli.bat
@echo off
setlocal
cd %~dp0

set APP_ID=100
中略
set INPUT_FILE=update01.csv

cli-kintone --import -a %APP_ID% -d %FDQN% -t %API_TOKEN% -f %INPUT_FILE% >> log.txt
if %errorlevel% geq 1 (
    cli-kintone --import -a %APP_ID2% -d %FDQN% -t %API_TOKEN2% -f "error.csv" >> log.txt    
)
endlocal
```

-f で読み込むファイルは下記の通り

レコード更新用のCSVファイル

```update01.csv
"*employee_code","today"
"011","2020-03-08"
```

エラーになった時に読み込むCSVファイル

```error.csv
"code"
1
```


## 3. タスクスケジューラー登録
タスクスケジューラーにバッチファイルを登録します。
設定は必要に応じて見直してください。

![コメント 2020-03-10 064932.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/f8a1c10f-2b92-eb6b-e0b0-52513ea690cb.png)

![コメント 2020-03-10 0649321.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/9bc8ae24-542c-f19a-9c4e-c97f7376a98b.png)


## エラー発生時の通知

バッチファイル実行時のエラー発生時にエラーログアプリにレコードを登録します。
エラーアプリにレコードが登録されると、設定した管理者に通知が飛びます。
<img width="264" alt="スクリーンショット 2020-03-10 7.38.57.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/829d8f8c-351d-2ea1-2ab6-436a22d43eaf.png">

kintoneの監査ログ
<img width="790" alt="スクリーンショット 2020-03-10 7.28.21.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/c8f0891b-a24e-38eb-b3f9-9efaab8743e1.png">

メールでも通知を受け取りたい時は下記システムメールの設定も行います。
<img width="653" alt="スクリーンショット 2020-03-10 7.27.19.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/055537c9-0516-53cd-07d5-0b91eca8798a.png">


## アプリ
利用・作成したアプリです。参考にスクリーンショットを貼り付けておきます。

### レコード更新対象のアプリ
アプリストアの従業員名簿を利用しています。
<img width="691" alt="スクリーンショット 2020-03-10 7.26.19.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/ef0e8bb2-682c-8e08-83b0-d6b4489fb6ef.png">

### エラーログアプリ
エラー発生時にレコードを登録します。
一覧
<img width="1261" alt="スクリーンショット 2020-03-10 7.36.15.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/40ada771-20ba-719a-c3d7-8d0f1726dda2.png">
詳細
<img width="394" alt="スクリーンショット 2020-03-10 7.36.38.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/7a20abd5-1b36-337b-1764-af232dec9bb2.png">
ユーザー選択フィールド
<img width="569" alt="スクリーンショット 2020-03-10 7.36.52.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/69245e23-4013-a9d3-c8a7-dd89b5bfa38a.png">
日付フィールド。エラー発生日時を登録。
<img width="578" alt="スクリーンショット 2020-03-10 7.37.07.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/4fa5e220-3cf9-d4a5-8261-f1526948a318.png">
通知設定。レコード追加時にアプリ管理者に通知するように設定します。
<img width="734" alt="スクリーンショット 2020-03-10 7.37.30.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/d43f1047-578f-fbcf-7189-68de62af20a2.png">
kintoneシステム管理。REST APIの通知をメールで送信するように設定。
<img width="335" alt="スクリーンショット 2020-03-10 7.40.09.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/1d486e7e-382f-c2ea-ad76-30dbfc93b50f.png">


# 参考

* https://developer.cybozu.io/hc/ja/articles/202957070
* https://github.com/kintone/cli-kintone
* https://developer.cybozu.io/hc/ja/articles/360000126643
* https://developer.cybozu.io/hc/ja/articles/115000297083
* https://qiita.com/tomotagwork/items/5b9e08f28d5925d96b5f
* https://www.atmarkit.co.jp/ait/articles/1305/31/news049.html