12
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

コラボフローAdvent Calendar 2022

Day 8

検索APIで申請書を関連付けしてみた

Posted at

コラボフロー Advent Calendar 2022 8日目の記事です!

こんにちは!気づけばもう8日目。。時が経つのはほんとに早いと改めて感じているこにおです。


みなさん、10月にリリースされた検索APIは利用されてますでしょうか?
検索APIでは指定した条件の申請データを取得できますので、取得した申請データを利用して
以下のようなことが実現できます!

  • 基幹システムとの連携
  • 取得したデータをBIツールで分析する
  • 過去のデータを取得してストレージサービス(Box等)にバックアップする

ただもっと違う使い方できないかな~と考えながらリファレンスを見ていたところ、、、

閃きました💡

検索APIでは申請書のURLも取得できるので、このURLを申請書にセットすれば
関連する申請書を紐づけできるのでは。。。

と思いやってみました!!

フォーム作成📝

まずは以下のようなフォームを作成します。

パーツID パーツ名 パーツタイプ 補足
fidRequestUserName 申請者名 テキスト(一行)パーツ デフォルト値:[requesterusername]
fidRequestDate 申請日 テキスト(一行)パーツ
fidSubject 件名 テキスト(一行)パーツ
fidSearchDocument 文書番号検索 マスター連携パーツ
fidDocumentURL 申請書URL テキスト(一行)パーツ

image.png
マスター連携パーツで自分が申請した申請書で絞り込みできるよう、パーツ「申請者名」のデフォルト値には、申請者氏名のデフォルト値キーワードを設定しておきます。
マスター連携パーツの設定は後ほど説明します!

リストビュー作成🗒️

今回関連付けをおこなう申請書はマスター連携パーツで検索できるようにするので、先ほど作成したフォームのリストビューを作成します。
image.png

マスター連携パーツの設定🔎

先ほど作成したフォームの編集画面からマスター連携パーツの設定画面を開き、以下のように設定します。
自分が申請した申請書で絞り込みできるよう、「絞込1」にパーツ「申請者名」を選択します。
image.png

経路作成🛣️

続いて作成したフォームの経路を作成します。
申請書類の設定で作成したフォームを選択して「申請者名」、「申請書URL」を編集できないよう「編集可」のチェックをOFFにしておきます。
image.png

JavaScript カスタマイズコード🖊️

最後に検索APIを実行するJavaScriptカスタマイズコードを作成します。

以下カスタマイズコードをファイルに保存し、フォーム編集画面のカスタマイズからアップロードします。

コードとしてはシンプルで、マスター連携パーツの検索画面から文書番号がセットされたタイミングで検索APIを実行し、取得した検索結果の申請書URLをテキストパーツにセットしています。

(function () {
	'use strict';

	collaboflow.events.on("request.input.fidSearchDocument.change",	function (event) {
		const documentNumber = event.parts.fidSearchDocument.value;

		// 文書番号が未入力の場合はクリア
		if (documentNumber.length === 0) {
			event.parts.fidDocumentURL.value = "";
			return;
		}

		// 検索APIの実行
		collaboflow.api.post('/v1/documents/search', {
			"app_cd": 1,
			"query": "document_number = '" + documentNumber + "'"
		})
		.then(function (response) {
			if (response.body.error) {
				console.log("失敗", response.body.messages);
				return;
			}

			// 検索にヒットしなかった場合はクリア
			if (response.body.records.length == 0) {
				alert("選択した文書番号の申請書が見つかりませんでした。");
				event.parts.fidDocumentURL.value = "";
				return;
			}

			// 検索にヒットした申請書のURLをセット
			event.parts.fidDocumentURL.value = response.body.records[0].link;
		})
		.catch(function (error) {
			console.log(error);
		});
	});
})();

いざ実行💪

documentRelation2.gif
検索した文書番号のURLがセットされ、別の申請書と関連付けることができました🎉
今回は申請書URLしかセットしていませんが、カスタマイズやマスター連携パーツの設定を変更すれば、その他情報をセットすることも可能です!

検索APIが実行できるユーザーは以下ユーザーのみとなりますので、権限のないユーザーでは実行できません。

  • 監査権限が付与されたグループに所属するユーザー
  • システム管理者ユーザー

まとめ

いかがだったでしょうか?
あまり検索機能の部分を活用した内容ではありませんが、こういった使い方もありでは?と思いやってみました💪

実行ユーザーの制限がありますので、運用で利用するのは難しいかもしれませんが、他のサービスと組み合わせることで同様のことができるのではと思います。

まだまだ他に色んな活用方法があると思いますので、検索APIを是非ご活用ください!

それでは~🙋‍♂️

12
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?