CData Kintone JDBC Driver を使用して Kintone の複数添付ファイルを管理する方法
Kintone は、柔軟性の高いクラウドベースのビジネスアプリケーションプラットフォームです。さまざまな業種の組織がワークフローの効率化、データ管理、プロセスの自動化を実現でき、深い技術的な専門知識がなくても利用できます。プロジェクト管理から顧客管理まで、チームは独自の業務ニーズに合わせたカスタムソリューションを構築できます。
CData は、Kintone と幅広い外部アプリケーションやデータベースとのシームレスな接続を実現し、この柔軟性をさらに高めます。CData Kintone JDBC Driver を使用すると、Excel や Access などの使い慣れたツールから直接 Kintone データを操作できるため、データ統合と自動化が簡単になります。
この記事では、CData Kintone JDBC Driver を使用して、SQL で Kintone の添付ファイルを効率的に追加・削除する方法を解説します(クライアントとして DBeaver を使用します)。この機能は CData Kintone ドライバー & コネクタ のバージョン 23 で導入されたもので、添付ファイルを一括管理できるため、データ駆動型ワークフローにおける時間の節約と生産性の向上に役立ちます。
前提条件
- 適切な権限を持つ Kintone アカウント
- CData Kintone JDBC Driver のダウンロードとインストール
- DBeaver または他の JDBC 対応クライアントのインストール
ステップ 1: JDBC ドライバーで Kintone に接続する
JDBC URL を作成するには、Kintone JDBC ドライバーに組み込まれた接続文字列デザイナーを使用します。JAR ファイルをダブルクリックするか、コマンドラインから .jar ファイルを実行してください。
java -jar cdata.jdbc.kintone.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーして保存します(後のセクションで使用します)。
以下は一般的な接続文字列の例です。
jdbc:kintone:User=myuseraccount;Password=mypassword;Url=http://subdomain.domain.com;GuestSpaceId=myspaceid

ステップ 2: Kintone アプリを作成する
CData Kintone JDBC Driver で接続する前に、ファイルを保存するための添付ファイルフィールドを含む Kintone アプリを作成する必要があります。以下の手順でアプリをセットアップしてください。
- Kintone 環境にログインします。
- ダッシュボードからアプリを作成をクリックし、はじめから作成を選択します。
- アプリに適切な名前を入力します。
- フォームタブで、添付ファイルフィールドをフォーム領域にドラッグ&ドロップします。
- アプリを公開をクリックして、Kintone アプリを作成・公開します。

ステップ 3: アプリのレコードに添付ファイルを追加する
レコードに添付ファイルを追加するには、ファイルのアップロードと Kintone の対応するレコードへの FileKey の設定という2つの操作が必要です。
この例では、CData Kintone JDBC Driver を使用して DBeaver から Kintone に接続し、これらの操作を処理するストアドプロシージャを実行します。
DBeaver から Kintone に接続するには:
- Driver Manager を使用して DBeaver で新しいデータベース接続を作成します。
- 接続設定で、CData Kintone JDBC Driver からコピーした JDBC URL を貼り付けます(Kintone URL、ユーザー名、パスワードを含めます)。
- 接続したら、Kintone データベースを右クリックし、SQL Editor から新しい SQL スクリプトを開いて、以下のプロセスに従って操作を進めます。
a. UploadFile ストアドプロシージャでファイルをアップロードする
接続が確立されたら、以下のように UploadFile ストアドプロシージャを実行します。
EXEC UploadFile @FullPath='filepath';

ファイルがアップロードされると、新しい FileKey が生成されます。この FileKey は次のステップで使用します。
また、この例でわかるように、Kintone はファイルタイプを自動的に検出します。ただし、アップロードが正しく処理されるように ContentType を明示的に定義することもできます。
例えば、PDF ファイルをアップロードする場合、以下のように ContentType を指定できます。
EXEC UploadFile @FullPath='C:\\CData\\LocalTest\\Sample.pdf', @ContentType='application/pdf';
UploadFile ストアドプロシージャの詳細については、ドキュメントを参照してください。
b. レコードの添付ファイルカラムに FileKey を設定する
このステップでは、前のステップで生成された FileKey を使用して、アップロードしたファイルを添付ファイルとして含むレコードを挿入します。以下の SQL INSERT 文を使用します。
INSERT INTO [Application Name] ([Attachment Aggregate]) VALUES ('FileKey');


ステップ 4: 既存のレコードに別の添付ファイルを追加する
すでに添付ファイルがあるレコードに新しい添付ファイルを追加するには、既存の添付ファイルの FileKey と新しくアップロードしたファイルの FileKey を結合する必要があります。レコードを更新する前に、これらのキーをカンマで連結します。
a. 既存のレコードから FileKey を取得する
まず、添付ファイルフィールドをクエリして、レコードの現在の添付ファイルの FileKey を取得します。結果は JSON 形式で返されます。
SELECT [Attachment Aggregate] FROM [Application Name] WHERE [RecordId] = '1';
出力例
[
{
"fileKey": "xxxxxx",
"name": "Sample.pdf",
"contentType": "application/pdf",
"size": "5974"
}
]

fileKey の値は JSON 内にネストされているため、手動で抽出するのは手間がかかります。代わりに、JSON_EXTRACT 関数を使用して直接取得できます。
b. FileKey の値を抽出する
以下のクエリを使用して、JSON レスポンスから fileKey の値を抽出します。
SELECT JSON_EXTRACT([Attachment Aggregate], '$.[0].fileKey') FROM [Application Name] WHERE [RecordId] = '1';

ここで [0] インデックスは、参照する添付ファイルを指定します。複数の添付ファイルがある場合は、このインデックスを変更して対応する FileKey を抽出してください。
c. FileKey を結合して新しい添付ファイルを追加する
元の FileKey と新しくアップロードした FileKey の両方を取得したら、それらをカンマで連結して、以下のようにレコードを更新します。
UPDATE [Application Name] SET [Attachment Aggregate] = xxxxxx' WHERE [RecordId] = '1';
このコマンドは、両方の添付ファイルを含むようにレコードを更新し、既存のファイルを削除せずに新しいファイルを追加します。
ステップ 5: 添付ファイルを削除する
Kintone レコードから添付ファイルを削除する場合は、添付ファイルフィールドの値をクリアするだけです。これにより、テーブル内の他のデータに影響を与えることなく、レコードから関連するファイル参照が削除されます。
特定のレコードからすべての添付ファイルを削除するには、以下の SQL コマンドを使用して Attachment Aggregate フィールドを NULL に設定します。
UPDATE [Application Name] SET [Attachment Aggregate] = NULL WHERE [RecordId] = '1';

このステートメントを実行すると、レコードには添付ファイルが含まれなくなります。他の添付ファイルを残したまま特定の添付ファイルのみを削除したい場合は、更新を実行する前に FileKey の値を適宜抽出して更新してください。

CData でよりスマートな Kintone ワークフローを
添付ファイルは、ビジネスで Kintone を使用する上で不可欠な機能であり、チームはアプリ内で直接ファイルを保存・管理できます。CData Kintone JDBC Driver を使用すると、ファイルの追加、更新、削除など、添付ファイルの管理がシンプルかつ効率的になります。
CData は、Kintone を Excel、Access など、さまざまなツールと統合できる幅広い接続ソリューションを提供しています。
さっそく始めてみませんか?CData ドライバーまたはコネクタの30日間無料トライアルをぜひお試しください。ご不明な点がございましたら、サポートチームがいつでもお手伝いいたします。