![見出し画像](https://assets.st-note.com/production/uploads/images/93316694/rectangle_large_type_2_0d5a56ed7b2b5be926583c0ff2ed188f.png?width=1200)
【コラボフロー × kintone】検索APIでkintoneからの画面遷移を楽に!?
コラボフロー Advent Calendar 2022 15日目の記事です🌈🌈🌈
今年も残り半月ですね!こないだ夏満喫してた気がするのに…😎
あっちゅーまに2023年ですね。
ところで。
我が家では今年から猫を飼い始めたのですが・・・
![](https://assets.st-note.com/img/1671020374059-JrAoRej2Q1.jpg?width=1200)
猫はコタツで丸くなる
猫は土鍋に入って丸くなる
あいにくウチにはコタツも土鍋もないので
実証してみたいのですが、できません😭
毎年この季節はコタツが欲しくなります・・・
嗚呼コタツ・・・小さいの買って自分の部屋に置こうかしら
コラボフローの検索API、使ってますか?
唐突に本題です。
10月にリリースされた コラボフロー2.18.13 で
申請書の検索APIがREST APIに加わったのですが、ご存知でしょうか!
コラボフロー JavaScript API と組み合わせて使うもヨシ
外部のAPIからたたいて気軽に申請書の情報を検索するもヨシ
「使い方無限大なんじゃないか」と密かに愛を寄せている私です。
と、思っていたら8日目の記事でこにおさんが
検索APIへの愛を書き起こしているじゃないか……ッッ
先を越されました ジェラシー
こにおさんはコラボフローの中でもっと申請書の使い方を
よりよくするカスタマイズを作ってくれていますが
わたしは コラボフロー for kintone を使って、kintoneからコラボフローへアクセスできるカスタマイズを作ってみました!
![](https://assets.st-note.com/img/1671025718788-Nx1m1J9dXr.png?width=1200)
![](https://assets.st-note.com/img/1671025882605-bwAlCluzv8.png?width=1200)
中身は8日目のこにおさんと同じような感じなので
「kintoneつかってないよ~」という方や別システム利用されてる方でも
応用できる内容なのかなぁと思っています🥳✨
処理の中身と流れ
このカスタマイズでは「kintone連携」アイテムを利用します。
※設置する前にデータソース設定が必要です。
![](https://assets.st-note.com/img/1671021914089-qCEpZj05Fi.png?width=1200)
コラボフローで申請をおこなう
申請した内容がkintoneへ自動登録される
自動登録されたkintoneのレコード詳細画面をひらくと、
ボタンが出現して元のコラボフローに遷移することができる…という流れです!
![](https://assets.st-note.com/img/1671022063689-OiCjNWlS6A.png)
このボタンを出現するために役立つのが申請書の検索APIですが、
コラボフローで申請したときに発番される「文書番号」が必要です!
なので、kintoneに「文書番号」フィールドを用意してあげましょう。
![](https://assets.st-note.com/img/1671022252581-0roK9iEwv8.png?width=1200)
そして、コラボフローの「kintone連携」アイテムで
申請時に「文書番号」を一緒にkintoneへ登録してもらうように設定します。
![](https://assets.st-note.com/img/1671022315446-UafXwBAHJ3.png)
![](https://assets.st-note.com/img/1671022252581-0roK9iEwv8.png?width=1200)
カスタマイズを公開
JavaScript
(() => {
'use strict';
// レコード詳細画面が表示された後に発生するイベント
kintone.events.on('app.record.detail.show', (event) => {
const record = event.record;
kintone.app.record.setFieldShown('文書番号', false);
const url = 'https://cloud.collaboflow.com/{インスタンス名}/api/index.cfm/v1/documents/search';
const authKey = 'アクセストークン';
const header = {
'Content-Type': 'application/json',
'X-Collaboflow-Authorization': `${authKey}`
}
const requestBody = {
'app_cd': 1,
'query': `document_number = '${record["文書番号"].value}'`,
'offset': 0,
'limit': 1
};
kintone.proxy(url, 'POST', header, requestBody, function(body, status, headers) {
const responseBody = JSON.parse(body);
if(status >= 200 && status < 300) {
console.log("Success");
const documentUrl = responseBody.records[0].link;
// 任意のスペースフィールドにボタンを設置
const mySpaceFieldButton = document.createElement('div');
mySpaceFieldButton.className = 'collaboflow_button';
mySpaceFieldButton.innerHTML = `<a href="${documentUrl}" target="_blank">コラボフローを開く</a>`;
kintone.app.record.getSpaceElement('space_collaboflow_button').appendChild(mySpaceFieldButton);
}else{
console.log("Error");
}
});
});
})();
CSS(ボタン用です)
.collaboflow_button a {
background: #DEEAED;
border-radius: 3px;
position: relative;
display: flex;
justify-content: center;
align-items: center;
margin: 0 auto;
max-width: 220px;
padding: 10px 25px;
color: #313131;
transition: 0.3s ease-in-out;
font-weight: 500;
}
.collaboflow_button a:before {
content: "\f15c";
position: relative;
font-family: "Font Awesome 5 Free";
font-weight: 900;
margin-right: 8px;
color: #999;
}
.collaboflow_button a:hover {
background: #64C0D3;
color: #FFF;
font-weight:bold;
}
参考にした記事
https://developer.cybozu.io/hc/ja/articles/201941974
https://developer.cybozu.io/hc/ja/articles/201952870
https://developer.cybozu.io/hc/ja/articles/360015513211
完成形(再掲)
![](https://assets.st-note.com/img/1671025743822-LSqjH4BfZy.png?width=1200)
![](https://assets.st-note.com/img/1671025871383-aAEZHiRXbn.png?width=1200)
しれっとカスタマイズの見出しで紹介しましたが、
コラボフローの「文書番号」は申請書の検索APIを実行するときに
必要な情報ですので(つまり画面上に表示する必要はない)
非表示にしてシンプルにボタンのみを表示させるようにしました。
これで、ただコラボフローの情報を見れるだけではなく
実際の申請書へ簡単に遷移できるようになりました👏👏👏
申請書の検索API、まだまだ活用できそうな可能性あるAPIなので
ぜひみなさんもコラボフローで活用してください🦍🎀
それではまた🤗