コラボフロー API Profile が 検索API に対応しました

コラボフロー API Profile が、コラボフローの検索API に対応しました
コラボフロー API Profile が、コラボフローの検索API に対応しました。

従来のコラボフロー API Profile では、ユーザーやグループの異なる申請書の一覧を取得するためには、申請書情報を1 件ずつ取得しなければならなかったため、申請書の数が多いと取得に時間が掛かっていました。

新しく追加されたDocumentSearch ビューでは、検索API を使用することで、一度に最大500 件の申請書情報をまとめて取得することができるため、一覧取得時のパフォーマンスを大幅に改善することができます。

目次

コラボフローとは

コラボフローは、申請・承認業務を電子化できる、Web ワークフローシステムです。

Web ブラウザーを使って稟議書や経費申請などの社内申請業務を効率化する事ができます。

Excel からフォームデザインをインポートすることができ、現在使っているExcel で作られた書式を、そのままの形で入力フォームとして利用することができるため、現在のフローをそのままシステム化することができるのが特徴です。

検索API とは

コラボフローに登録されている申請書の検索を行うことができるREST API です。
コラボフローAPI

検索API が利用できる環境について

検索API を使用するためには、現在利用しているコラボフローが、検索API に対応したバージョン(2.18.13以降)であることを確認します。
コラボフロー 2.18.13 リリースノート – コラボフローサポート

また、接続するユーザーに監査権限が付与されている必要があります。

使い方

新しく追加された、DocumentSearch ビューを使用します。

このビューにある、SearchTerm という疑似カラムに検索条件のquery を指定することで、指定した条件に該当するデータのみを取得することができます。

query の書き方

query で指定できる項目名と演算子の組み合わせについては下記URL をご参照ください。
検索APIの「query」パラメータについて – コラボフローサポート

SearchTerm カラムに指定する際は、query として指定する文字列内の「'(シングルクォート)」を「''」のようにエスケープして記述します。

・使用例
使用例

SearchTerm の設定例

例1:指定した文書タイトルを含む申請書を取得する

SELECT
  *
FROM
  [DocumentSearch]
WHERE
  [SearchTerm] = 'title LIKE ''稟議書''';

query のLIKE 演算子では、前方一致、後方一致はありません。

例2:判定結果が申請中(flow) 、または決済(decision) の申請書を取得する

SELECT
  *
FROM
  [DocumentSearch]
WHERE
  [SearchTerm] = 'flow_status IN (''flow'',''decision'')';

IN 演算子では最大100 個までの値を指定することができます。

例3:今週申請された申請書を取得する

CData ドライバーに搭載されている関数と組み合わせてquery の文字列を動的に指定することができます。

SELECT
  *
FROM
  [DocumentSearch]
WHERE
  [SearchTerm] = CONCAT(
    'request_date >=''',
    FORMAT(FDWEEK(CURRENT_DATE()), 'yyyy-MM-dd'),
    ''''
  );

例4:指定したユーザーが先月申請した申請書を取得する

SELECT
  *
FROM
  [DocumentSearch]
WHERE
  [SearchTerm] = CONCAT(
    'request_user=''admin''AND request_date >=''',
    FORMAT(FDMONTH(CURRENT_DATE(), -1), 'yyyy-MM-dd'),
    ''''
  );

例5:DocumentSearch で検索した結果を元に、申請書の内容を取得する

DocumentContents では、DocumentId カラムにサブクエリを指定することができます。

SELECT
  *
FROM
  [DocumentContents]
WHERE
  [DocumentId] IN (
    SELECT
      [DocumentId]
    FROM
      [AllDocumentOverview]
    WHERE
      [SearchTerm] = 'form_id != 1 AND request_group NOT IN (''settei'') AND request_user IN (''admin'',''CDataUser'') AND request_date >= ''2022-10-01'' AND request_date <= ''2025-10-31'' AND flow_status IN (''flow'',''decision'') ORDER BY request_date ASC'
  );

SearchTerm をテーブルカラムとして表示させる方法について

SearchTerm は疑似カラム(入力専用のカラム)なので、デフォルトではテーブルカラムとして表示されません。

そのため、SQL の実行時に指定されているカラムの有無をチェックするアプリケーションなどでは、条件に疑似カラムを指定した場合、テーブルにないカラムを指定したと認識され、エラーとなる場合があります。

そのような場合は、PseudoColumns プロパティを設定することで、疑似カラムをテーブルカラムとして表示させることができます。
CData ODBC Driver for API - PseudoColumns

・ODBC ドライバーの例
ODBC ドライバーの例

・Excel Add-In の例

疑似カラムをテーブルカラムとして表示させることで、Excel Add-In の「クエリを編集」ダイアログで、他のカラムと同じようにSearchTerm に対して条件を指定することができます。

Excel Add-In の例

・Excel Add-In クエリを編集ダイアログのカラムでSearchTerm を指定する例
Excel Add-In クエリを編集ダイアログのカラムでSearchTerm を指定する例

まとめ

コラボフローから申請書の一覧を取得する場合には、ぜひ、DocumentSearch を活用してみてく

コラボフロー API Profile が 検索API に対応しました

関連コンテンツ