【高機能】「k-Report」を使えばAPIを呼び出すだけでkintoneのレコードを帳票出力できるらしい【低価格】

皆様、お久しぶりです!

ご報告遅れてしまいましたが、昨年、無事第1子を出産しました!!

最初はできる範囲で仕事を再開し、少しずつ量を増やしていきながら、
ブログを書く余裕ができるまで1年以上もかかってしまいました;;

今後も不定期更新にはなりますが、引き続きよろしくお願いいたします。

さて、今回は、kintoneの帳票出力サービス「k-Report」について紹介します!

本当はリリース直後に記事にしたかったのですが…現在は数多く取り上げられており、
比較的後発の帳票出力サービスでありながら、急激に知名度を上げた革命児的存在です。

古参アピールではありませんが、
実は私は産前の時点で既に「k-Report」の公式認定販売パートナーをしており、
黎明期から機能改善提案を行っていた程度には密接な協力関係にあります。

そんな私が、今回は「k-Report」が何故爆発的ヒットをしたのか、
価格だけではない魅力から、API連携を用いた帳票出力例までたっぷり紹介します!!

価格だけではない「k-Report」の魅力

『他の帳票出力サービスと比較してどこが優れているの?』

「k-Report」を検討されているお客様からよく聞かれる質問です。

「k-Report」の公式サイトに他社製品との比較表があるので是非そちらもご覧いただきたいのですが、
正直多機能すぎて比較項目の量もとんでもないことになっています(褒めてる)。

最初に目を引くのは圧倒的な低価格だと思いますが、「k-Report」の凄いところは、
毎月アップデートで新しい機能がどんどん追加され、
低価格なのに他社製品より圧倒的に高機能であるということなのです!

以下、「k-Report」独自の機能の中から私が特に優れていると思う機能を幾つかピックアップします。

ロジックフィルタ機能

「k-Report」にはロジックフィルタ機能という高度な機能があります。

要するに、kintoneから取り込んだデータを加工してから帳票に受け渡すというとんでもない機能です。

これにより、例えば見積書の明細行に、商品カテゴリーが切り替わるときに小計行を追加したり、
1行空白行を追加するようなイレギュラーな処理ができるようになるのです!

このようなイレギュラーな処理、kintoneのJavaScriptカスタマイズで実現しようとすると超手間です。

この機能の登場は、kintoneの帳票出力の常識が覆ったと言っても過言ではないぐらいの衝撃でした。

改ページルール設定

超柔軟な改ページルール設定ができることも「k-Report」の大きな特徴です。

改ページルール設定(公式サイトより)

最初のページは表紙にしたい、奇数ページと偶数ページでレイアウトを分けたい、
3ページ目だけイレギュラーなページにしたい等、何でもできちゃいます!

ページ内計算機能と高度な計算機能

これまで、帳票出力サービスでは計算ができないので、kintoneアプリに計算フィールドを追加して、
その値を帳票出力サービスで表示するということが常識でした。

後から計算フィールドを追加するとCSV等で一括更新しないと既存レコードで計算が行われないので、
これを強制されるのは何かと面倒だったりします。

しかし「k-Report」の登場により、この常識は覆されたのです。

kintoneアプリの設定を変えなくても、ページ内計算機能で、
ページ番号や明細の合計金額を超簡単に表示することができます!

更に、プログラミングの知識が多少必要にはなりますが、高度な計算機能を用いることで、
if文による条件分岐や複雑な日付計算等が全部帳票設定内でできてしまうのです!

高度な計算機能で使用されるプログラミング言語はPHPなのですが、
管理サイトには高度な計算機能のサンプルプログラムが多数収録されており、
大抵のことはコピペとフィールド名変更でできてしまうため、
if文の基礎がある方であればそこまで苦労されることはないかと思います。
※ページ内計算機能の方はプログラミングの知識不要です

「k-Report」のAPI連携について

ここまで、「k-Report」の独自機能から3点ピックアップして紹介しましたが、
これ以外にも独自機能は沢山あります。

その中の1つが、API連携です。

kintoneのレコードから帳票を出力するところは同じなのですが、
kintoneの画面から直接ボタンを押さずとも、
例えば、Google Apps Script(以下GAS)で毎月帳票出力を行うようなことが可能になるのです。

// GASに保存しているスクリプトプロパティを取得
const PROPERTIES = PropertiesService.getScriptProperties();

UrlFetchApp.fetchAll(
	// PDFを発行するためのトリガーURLをレコード数分取得する
	JSON.parse(UrlFetchApp.fetch(`https://www.k-report.work/_prd/crd/api/krd/api_pdf_batch.php?t=${
		// スクリプトプロパティに保存しているReport TOKEN(k-Report管理画面の当該帳票の帳票設定からコピー)
		PROPERTIES.getProperty('REPORT_TOKEN')
	// PDF出力履歴に残すユーザー名(ここではXXXXXX)
	}&user=XXXXXX&query=${
		// kintoneアプリから出力対象レコードを抽出するためのクエリを記述
		encodeURIComponent(`$id in (1, 2)`)
	// 帳票は事前に連携設定をしたクラウドストレージに保存
	}&atcode=KRD_OUTPUT_CLOUD_STORAGE_ONLY&bt=${
		// スクリプトプロパティに保存しているConnection TOKEN(k-Report管理画面のアカウント情報からコピー)
		PROPERTIES.getProperty('CONNECTION_TOKEN')
	}`).getContentText()).records.map(record => ({
		// 取得した全てのトリガーURLを呼び出して全てのPDFを発行する
		url: record.trigger
	})));

コードはたったこれだけ!

保存先クラウドストレージとして、DropboxGoogle DriveBox等を設定可能です。

クエリの書き方の詳細はkintoneのクエリの書き方をご覧ください。

この例ではレコード番号を直書きしていますが、
例えばkintoneレコード一括登録APIの戻り値のレコード番号を用いることも可能です。

毎月何もしなくても帳票が作成されるなんて素晴らしいですよね!

今回はGASの開発例をご紹介しましたが、他にも様々なシステムに組み込むことが可能です!

API最高!!!


「k-Report」の正規販売パートナーとして、導入からkintone開発までサポートさせていただきます!

他社製品からの乗り換えをご検討中の方も、是非一度ご相談ください!

こちらからご連絡お待ちしております!


終わりに(宣伝:Cybozu Days 2024について)

最後までお読みいただきありがとうございました!

「k-Report」の数多くの魅力、伝わりましたでしょうか?

さて、最後にお知らせなのですが、来る2024年11月7日(木)~8日(金)幕張メッセで開催されます、
年1回のサイボウズ社最大のイベント「Cybozu Days」についてのお話です。

入場無料!(要事前予約)

今回紹介しました「k-Report」が昨年に引き続き出展するのですが、
なんと今年は私もそのチームの一員として販促をお手伝いすることになりました!!

田舎者すぎてサイボウズデイズにも行ったことがなかったのですが、今年遂にデビューです!

「k-Report」の魅力がしっかり伝わるような説明を心掛けますので、
是非当日「k-Report」のブースにお越しください!!