こんにちは。CData Software Japan リードエンジニアの杉本です。
前回の記事でBacklog Driverのカスタム属性を表示する方法を紹介しました。
そして記事の最後の部分でもお伝えしたように、このカスタム属性の更新機能が最新バージョンのドライバーでサポートされました!
というわけで今回はカスタム属性の更新機能の使い方を解説したいと思います。
設定方法
まず設定方法ですが、これは最新バージョンのドライバーにアップデートしていれば、前回の記事と同様の手順で、以下の「Include Custom Fields」という接続プロパティをTrueに設定するだけです。
CData Excel Add-inなどの画面では以下のように設定します。
今回はSQLベースでわかりやすいように、JDBC Driverから繋いでみました。ただ、Excel Add-inでも同じように機能が利用できます。
JDBC Driverから繋いでみて、カラム一覧を表示してみると、以下のようにカスタムフィールドがそれぞれ追加されていることが確認できます。
使い方
表示されしてしまえば、後は単純にSQLのINSERT文やUPDATE文を使って登録・更新できます。
INSERT INTO Issues (ProjectId,Summary,PriorityId,IssueTypeId,CustomFiled_1_Text) VALUES(186826,'Summary',3,898261,'CustomField Text');
UPDATE Issues SET CustomFiled_1_Text = 'Update Text' WHERE Id = '15777729';
Excelからも同じように行なえます。
リストデータの更新
一点注意が必要なのは、リストデータの更新です。
リストデータは複数選択ができることもあり、データを取得してみると、以下のように表示されます。
このリストデータ、更新時に注意しなければいけないのは、この表示されている値ではなく、APIの仕様上、内部で持っているID・ItemIdを指定しなければいけない点です。
このItemIdは「ProjectCustomFieldItems」テーブルで確認できます。
カスタムカラム名と結合して見たい場合は、以下のようなSQLで取得できます。
SELECT ProjectCustomFields.Id, ProjectCustomFields.Name,ProjectCustomFieldItems.ItemId,ProjectCustomFieldItems.Name FROM ProjectCustomFields INNER JOIN ProjectCustomFieldItems ON ProjectCustomFields.Id = ProjectCustomFieldItems.CustomFieldId;
あとはこの値を使って、INSERT文やUPDATE文を実行するだけです。
UPDATE Issues SET CustomField_6_MultipleList = '2,3' WHERE Id = '15777729';
以下のようにデータの更新ができました。
もちろん、Excelからも同様に実施できます。Excelだと更新後に値が差し替わるのでわかりやすいですね。
ちなみにリストでは「その他の入力項目」というものも追加できます。
この項目は「CUSTOM_FIELD_NAME + OtherValue」といった形式で追加カラムとして表示されます。このカラムに対してINSERTやUPDATEを行うことで値を書き込むことができます。
おわりに
CData Driver は日々APIの様々な機能に追加対応を行っているので、「この機能無いの?」といったことがあれば、お気軽に問い合わせしてみてください。