Talend Open Studio (ETLツール) で業務の自動化~Excel→PDF→メール送信 [BI]
Talend Open Profilerを使っているといろいろ面白そうなコンポーネントがあったりします。今回はその中のコンポーネントを組み合わせたりすることでレポート業務を自動化した取り組みを紹介します。
○Excelで作ったファイルをPDFで吐き出して送ることってあるよね
掲題の行為を全て自動化することを考えてみます。データの取得までは以前紹介した通常のETLのフロー・テクニックを作ることでできると思います。さて、それから先の業務が今まで
Accessクエリの結果をExcelに貼り付け→Excel上で整形しレポートとして公開
という手順でした。しかしこれだと全て手作業なので、欲しいデータを休日も見たいとかいった要望への対応ができません。そもそも毎日同じことをするのに同じ時間使うのは馬鹿らしいですよね。ということで自動化です。
○障壁1~Excel VBAのVBS化
とりあえず単純にマクロを呼べるVBSをネットで探します。引数を渡したりすることもできますが、まずはシンプルにやりたいので単純な関数実行にします。マクロの内容としては「他のブックの内容をデータシートに表示(="c:\xxx\[file.xls]sheet1!RC')」して、コピーして値で貼り付けします。この際コピー先のファイルは貼り付けの際一回開く必要があります。
○障壁2~VBAでExcelからPDFを吐き出す
COMで扱えるPDF仮想プリンタドライバを使用するという方法がいろいろ公開されています。ですが、そこそこ面倒そうだし、フリーのドライバだと表示が崩れることもあります。なので自分はOffice2007のPDF出力アドインを使う、という方向で対処しました。ちなみにOffice2010だとアドインすら必要ありません。
○障壁3~コマンドライン実行
TalendでtSystemというコンポーネントを使用します。これは使い方簡単なようで1点だけ引っかかるところがあるので注意してください。コマンドの実行はWindowsの場合
”cmd /c 実行したいコマンド”
で行います。VBSの場合は実行したいコマンドだけ記述してもエラーになるので注意してください。
○障壁4~メール送信
tSendMailというコンポーネントを使用します。うちの会社はGoogle Appsを使用していますが、STARTTLSの設定やドメイン、ユーザ名など適切に設定することで送信することができました。
○障壁5~セキュリティ
まあいろいろあると思うので十分注意しましょうf(^^;;
ということでレポートに関す定型業務の自動化スキームが完成しました。これでいろいろなレポーティングの要望に対してクイックに対応することができるようになりました(祝)。やっぱりちゃんとしたシステムとアドホック対応のシステムの両輪で業務サポートできると強いですよね。
○Excelで作ったファイルをPDFで吐き出して送ることってあるよね
掲題の行為を全て自動化することを考えてみます。データの取得までは以前紹介した通常のETLのフロー・テクニックを作ることでできると思います。さて、それから先の業務が今まで
Accessクエリの結果をExcelに貼り付け→Excel上で整形しレポートとして公開
という手順でした。しかしこれだと全て手作業なので、欲しいデータを休日も見たいとかいった要望への対応ができません。そもそも毎日同じことをするのに同じ時間使うのは馬鹿らしいですよね。ということで自動化です。
○障壁1~Excel VBAのVBS化
とりあえず単純にマクロを呼べるVBSをネットで探します。引数を渡したりすることもできますが、まずはシンプルにやりたいので単純な関数実行にします。マクロの内容としては「他のブックの内容をデータシートに表示(="c:\xxx\[file.xls]sheet1!RC')」して、コピーして値で貼り付けします。この際コピー先のファイルは貼り付けの際一回開く必要があります。
○障壁2~VBAでExcelからPDFを吐き出す
COMで扱えるPDF仮想プリンタドライバを使用するという方法がいろいろ公開されています。ですが、そこそこ面倒そうだし、フリーのドライバだと表示が崩れることもあります。なので自分はOffice2007のPDF出力アドインを使う、という方向で対処しました。ちなみにOffice2010だとアドインすら必要ありません。
○障壁3~コマンドライン実行
TalendでtSystemというコンポーネントを使用します。これは使い方簡単なようで1点だけ引っかかるところがあるので注意してください。コマンドの実行はWindowsの場合
”cmd /c 実行したいコマンド”
で行います。VBSの場合は実行したいコマンドだけ記述してもエラーになるので注意してください。
○障壁4~メール送信
tSendMailというコンポーネントを使用します。うちの会社はGoogle Appsを使用していますが、STARTTLSの設定やドメイン、ユーザ名など適切に設定することで送信することができました。
○障壁5~セキュリティ
まあいろいろあると思うので十分注意しましょうf(^^;;
ということでレポートに関す定型業務の自動化スキームが完成しました。これでいろいろなレポーティングの要望に対してクイックに対応することができるようになりました(祝)。やっぱりちゃんとしたシステムとアドホック対応のシステムの両輪で業務サポートできると強いですよね。
とても魅力的な記事でした。
また遊びにきます。
ありがとうございます。
by 職務経歴書の書き方 (2010-10-11 00:21)