.NET用SDKを使って、レコードの定期更新プログラムを作成してみよう!
はじめに
年齢や勤続年数など一定期間が経過したら更新する必要のあるデータをkintoneに保存した場合、自動的には更新されないため、あとあと困ってしまうことがあります。
今回は、To Doアプリに残り日数フィールドを追加して、締め切りまでの日数を定期更新するデモプログラムを作成します。
プログラムには、マイクロソフトの .NET開発環境で、C# と
kintoneDotNET(v.1.0.5)
(.NET用kintone API SDK)を利用して作成します。
事前に必要なもの
- .NET Framework 4.7.2以上
- Microsoft Visual Studio for Windows
今回は、 Visual Studio 2022 のCommunityを使用します。 - kintoneアカウント
開発の流れ
以上の手順で開発します。
kintone To Doアプリの設定
STEP1:アプリの追加
kintoneアプリストアより、To Doアプリを追加します。
STEP2:フィールドの設定
To Doアプリを開き、ギアアイコンをクリックし、アプリの設定を変更する画面に移動します。
後述のコーディングで使用するフィールドを設定します。
以下を参考に、フィールドを追加・変更し、フィールドコードを修正します。
変更したら「フォームを保存」をクリックします。
フィールドの種類 | フィールド名 | フィールドコード | その他 |
---|---|---|---|
数値 | 残り日数 | days_remaining | 単位記号:日、後ろに付ける |
日付 | 締切日 | Duedate | - |
日付 | 開始日 | From | - |
STEP3:一覧の設定
次に「一覧」タブをクリックして、一覧に「残り日数」フィールドを追加します。
「残り日数」フィールドをドラッグアンドドロップで追加し、保存します。
STEP4:アプリの更新
最後に「アプリを更新」ボタンをクリックして、変更をアプリに反映させます。
これで、To Doアプリの設定は完了です。
STEP5:動作確認用のレコードの追加
アプリ設定後、To Doのレコードを適当に追加します。
C# によるコンソールプログラムの作成
今回はマイクロソフトのVisual StudioのフリーバージョンVisual Studio Community 2022を利用して、C# でコンソールプログラムを作成します。
STEP1:コンソールプロジェクトの新規作成
Visual Studio Community 2022を開き、プロジェクトの新規作成で、「Console APP(.NET Framework)」をテンプレートとして選択します。
他のFrameworkを選択するとkintoneDotNETがうまく作動しません。
STEP2:kintoneDotNet SDKのインストール
「Tools」メニューから、「NuGet Package Manager」>「Manage NuGet Packages for Solution」を選択します。
「Browse」タブを選択し、検索ボックスに「kintone」と入力し検索すると「kintoneDotNET」が表示されたら選択します。
「Project」をチェックし、「Install」ボタンをクリックして、kintoneDotNET SDKをインストールします。
STEP3:データモデルのコーディング
To Doアプリのkintone上のレコードを表現するモデルを作成します。
詳細については、次のドキュメントを参照してください。
How to use kintoneDotNET
)
「Solution Explorer」より、Project名のアイコンを右クリックし(画面では「ConsoleApp2」)、サブメニューから、「Add」>「Class」を選択します。
ファイル名に「ToDoModel」と入力し、「Add」をクリックして、モデルクラスのファイルをプロジェクトに追加します。
下記を参考にToDoModel
クラスを定義するコードを作成します。
|
|
解説
モデルクラス作成の際は、AbskintoneModel
を継承し、更新するプロパティにはkintoneItem
属性を設定します。
プロパティ名は、kintoneのフィールドコードと一致するようにしてください。
上記のrecord_id
フィールドのように更新対象外にしたいものはisUpload
属性をFalseにします。
また、重複しないキーにisKey=Trueを設定することで既存レコードを更新するUpdate処理を利用できます。
モデル作成の詳細については、以下のドキュメントを参照してください。
How to use kintoneDotNET | モデルを作成する
STEP4:残り日数更新プログラムの作成
以下を参考に残り日数の自動更新プログラムをProgram.csにコーディングします。
|
|
解説
ToDoModel
より、kintoneDotNETライブラリのfindメソッドを直接実行できるためkintoneのTo Doアプリのレコードを取得します。
締切日と開始日がすでに入力されているレコードのみ抽出します。
|
|
以下のループで、各レコードにアクセスします。
|
|
すでに開始日が経過している場合は、締切日と当日の日付から残り日数を計算し、まだ開始していない場合は締切日と開始日から残り日数を計算します。
|
|
最後にUpdateメソッドで、変更を更新します。
STEP5:App.configの設定
App.configにて、kintoneへの接続のための設定をします。
App.configの設定をプログラムから参照するため、まず、System.Configurationの .NETライブラリーを追加します。
「Solution Explorer」より、「References」を右クリックして、サブメニューから、「Add Reference」を選択します。
「Assemblies」カテゴリーより、「Framework」を選択します。
「System.Configuration」のライブラリーにチェックを入れ、「OK」ボタンをクリックします。
これにより、ToDoModel.cs内でSystem.Configurationが参照できます。
STEP6:kintoneのアクセス設定
App.configファイルを開き、次のドキュメントを参考にkintoneへアクセスするためのパラメーターを設定します。
How to use kintoneDotNET | kintoneへのアクセス設定を行う(app.Config/web.Config)
動作確認
Visual Studioで「F5」または「Start」ボタンをクリックして、プログラムを実行しエラーがないかを確認します。
プログラム実行後、kintoneのTo Doアプリで「残り日数」が更新されていることを確認します。
まとめ
.NET用kintone API SDKのkintoneDotNETを使うことで、kintoneのアプリだけでは難しいデータの更新プログラムを簡単に作成できます。
このプログラムをWindowsのタスクスケジューラ等で実行するように設定することで、データを定期更新できます。
「一定時間毎にFTP経由で送られてくる在庫や売り上げの最新データを更新する」といったシナリオも、.NETのプログラムで実現可能です。
参照サイト
このTipsは、2023年12月版kintoneで動作を確認しています。