いつもならVF Pageを使ったPDF作成で済ませるところですが、Yoomのフローボット実行数が無茶苦茶余っているのと、VF Pageだと私しかメンテナンスができないので、今回はYoomの書類を発行するオペレーションを使ってみようかと思います。
要件の整理
- 今回は複数レイアウトの帳票があります。
- Yoomとの連携は帳票オブジェクトを介した情報の受け渡しができればいい。(帳票オブジェクトの項目で{}で囲った部分を置き換えるイメージ)
- ボタンをクリックするとフローで仕入先別に必要な値を帳票オブジェクトにセットして作成する。この帳票レーコードの作成をYoom側でトリガーとして書類を発行するアクションを起動する
事前の検討
-
仕入先単位でフォーマットの異なる帳票を発行したい。後でメンテナンスが楽なように、できれば帳票単位にYoomのロボットを作成したい。しかし、帳票オブジェクト作成で起動するロボットを複数作成するのは、トリガーから考えるとあまり得策ではなさそう。分岐して対象じゃなかったらすぐに終わるロボットがたくさん起動するのはボット実行が無駄になるなぁ。
-
帳票オブジェクト作成で起動1つのロボットから実際に帳票を発行する別のロボットを起動する方法もありそうだ。
と思ったけど親のロボットから子のロボットに値を渡すことができなさそうです。データベースを使うにしても極短い間で複数の帳票発行を要求されたときに、それぞれの値をうまく参照できるかが問題になりそうです。上書きと言う手は使えないしなぁ。
「取得した値」(アウトプット)の内容を別のフローボットへ引き継ぐ機能はありません。
「取得した値」の内容を別のフローボットへ引き継ぎたい場合は、本フローボット内でYoomデータベース等へデータを格納し、次のフローボットでそのデータベース等から値を取得する必要があります。
- アウトバウンドメッセージを使うとWebhookURLを変えることができるので、上記の懸念がなくなりそうです。Salesforceのフローで仕入先ごとにこのWebhookURLを変えることでそれぞれの帳票を発行するYoomを起動できそうです。
作成過程
アウトバーンメッセージを登録したので、フローから呼び出そうとするもアクションに出てこない。何で?
自動起動フローではダメなんですね。
メッセージの追跡ができないです。
嫌な予感が的中。全く先に進めない。何をしてもダメですね。
何のエラーなのかすら分からなくなった。大丈夫このシステムおかしくない?
添付はできたのですが...
PDFファイルがおかしい
{"error":{
"code": "notSupported",
"message": "Error from Office Service. Url=https://excelcs.officeapps.live.com/document/export/pdf HttpCode=UnsupportedMediaType",
"innererror": {
"code": "invalidFileFormat"
}
}
sharepointのフォルダーを見ると... もしかしてここでひな形からExcelを作成してPDFに変換している?
作成されたExcelを見ると置換されてません?? というよりNullで上書きされたのかも?
とりあえずひな型に罫線を入れてみる
この処理の前にSalesforceから値を取っているんだけど...
あっ、Nullになっている
Salesforceのレコードを更新したらうまく行った。
置換後のExcelに何もない状態だとPDF作成でエラーになるから、罫線は必須かもしれませんね。