コラボフローで出力した帳票PDFを「Box」に書き出す
はじめに
こんにちは。
最近、家庭用脱毛器を使ってムダ毛の処理にチャレンジ中の内村です。いまのところの、肌にやけど痕ができたくらいで、脱毛の効果はありません。人生甘くないですね!
さて、早速ですが今回はコラボフローの産みの親である「弊社CIO波多野」の書いたブログ、コラボフロー申請書の添付ファイルを「Box」に書き出すを参考にして、コラボフローで出力した帳票PDFを「Box」に保存する連携を作ってみようと思います。
前回との違い
前回:申請書に添付されたファイルを保存する
今回:申請書そのものを保存するイメージ
コラボフローの帳票出力機能を利用しています。
帳票出力機能を利用すると、1つの申請書データから複数の帳票をPDFやExcel形式で出力することができます。
連携の起点となるのはコラボフローのWebhook機能、中継サービスにはMicrosoft Power Automateを使います。
やりたいこと & イメージ図
- コラボフローのWebhookで送られたデータをPower Automateが受信
- コラボフローで出力した帳票PDFをPower Automateが取得
コラボフローのフォーム
連携にあたり、あらかじめ次のような稟議書フォームを作成しました。同様に経路もシンプルなものを作成済みです。この稟議書をPDFで帳票出力し、Box上のフォルダに書き出すよう設定を行っていきます。
Power Automateの設定
Power Automateにログインし、左メニューの「作成」をクリックすると、フローを作成するための方法を選択する画面が表示されますので「インスタントクラウドフロー」を選択します。
「このフローをトリガーする方法を選択します」から「HTTP要求の受信時」を選択し、「作成」をクリックします。
フロー作成の画面が表示されますので「新しいステップ」をクリックします。
アクションを選択する画面が表示されるので「組み込み」タブを開いて「HTTP」アクションを選択します。
※「HTTP」アクションを使うには「プレミアム コネクタ」を利用可能なライセンスが必要です。
HTTPアクションの設定画面が表示されますので、コラボフローの帳票を取得するための各種設定を行います。
帳票の取得にはコラボフローREST APIの帳票出力を使用します。
- 方法
帳票出力のAPIで使用するHTTPメソッドです。ここでは「POST」を指定します。 - URI
帳票出力APIのURIを指定します。
URIには文書IDと帳票IDを指定する必要がありますので、Power AutomateのtriggerBody()関数を使って、Webhookで送られてきたデータから帳票の文書IDを取得します。帳票IDはコラボフロー側で確認した帳票IDを利用します。
https://cloud.collaboflow.com/example/api/index.cfm/v1/documents/@{triggerBody()['document_id']}/prints/0
※今回は指定したキーが存在しない場合はエラーとしたいので、疑問符演算子は使用していません。
- ヘッダー
APIに接続するためのHTTPヘッダーを指定します。
コラボフローのAPI認証に必要な「X-Collaboflow-Authorization」ヘッダーを指定します。
これでコラボフローの帳票PDFを取得する処理を作成できました。次にBoxにデータを保存するためのステップを作成します。
アクションを選択する画面が表示されるので「Box」の「ファイル作成」アクションを選択します。
Boxファイル作成アクションの設定画面が表示されますので、各種設定を行います。
※Power Automate にまだBoxアカウントを接続していない場合は、Boxへのサインインが要求されますので、資格情報を入力して接続を作成します。
- フォルダーのパス
[Box上の任意のフォルダパスを指定します。
ここではルート直下の「//Collaboflow/」を指定します。 - ファイル名
任意のファイル名を指定します。今回のファイル名は申請書名と文書IDを利用したいので、次のように指定を行います。
@{triggerBody()['document_title']}(@{triggerBody()['document_id']}).pdf
※コラボフローの帳票設定に合わせて、拡張子を「PDF」に指定しています。
5. ファイルコンテンツ
先ほどHTTPアクションで取得したファイルコンテンツをセットします。取得したファイルコンテンツは次のようにbodyを使用して指定できます。「’HTTP’」部分は先ほど作成したHTTPアクションのステップ名です。
@{body('HTTP')}
以上を踏まえて設定値を入力した「ファイルの作成」アクションが下記となります。
上記の操作が全て終わったら「保存」をクリックします。
最後に、コラボフローからのWebhook送信先となる「HTTP 要求の受信時」アイコンを開いて、「HTTP POSTのURL」をコピーし、記録しておきます。
これでPower Automateの設定は完了です。
コラボフローWebhookの設定
次にコラボフロー側のWebhook設定を行います。
あらかじめ用意しておいた「稟議書」の経路を開き「(1)Webhook」タブを選択し、(2)新規登録ボタンをクリックします。
Webhookの設定画面が表示されますので、(1)Webhook名に任意の名前を入力し、(2)通知先のWebhook URLにPower Automateで控えておいた「HTTP POSTのURL」を入力します。通知条件には「申請書の経路終了時」を指定して、最後に「保存」ボタンをクリックして設定を保存します。
以上で、全ての設定が完了しました。
実際の動作
それでは稟議書を申請してみます。
稟議書にデータを入力して申請を行い、承認を行って稟議書を「決裁」の状態にします。
決裁後にBoxを確認すると、この通り指定した「/Collaboflow」フォルダにファイルが書き出されている事を確認できました。
Box上でクリックすると、Box上でファイルのコンテンツを見る事ができます。
データも正常に出力されているようですね。
まとめ
以上のようにWebhookを利用する事で、簡単なステップでBox上に帳票PDFを出力する事ができました。
今回参考にしたブログの内容と組み合わせることで、以下のファイルを同時に「Box」に保存することも可能になります。
- コラボフローの帳票PDF
- 帳票に添付されたファイル
今回はBoxとの連携を行いましたが、Webhookを応用すると他のさまざまなサービスと連携を行うことができるので、興味のある方は、ぜひ他の連携記事もチェックしてみてください。