CloudSign の PDFファイル を SharePoint へ定期的にアップロード:オープンソースETLツール Talend & CloudSign/SharePoint JDBC Driver

by 杉本和也 | 2019年07月09日

こんにちは! CData Software Japan リードエンジニアの杉本です。

今回は新しくリリースされた CloudSign JDBC Driver とオープンソースETLツールである Talend を使ってCloudSign上に格納されている契約書のPDFファイルをSharePointアップロード・バックアップする方法を紹介したいと思います。

CloudSign とは?

契約書の準備はもちろんのこと、それを契約先へWebベースで送付し、サインや必要事項の入力、はては印鑑までWeb上で完結してしまうという、Web完結型クラウド契約サービスです。

https://www.cloudsign.jp/

f:id:sugimomoto:20190523015056p:plain

シナリオ

雇用契約書などはサインなどが完了後、グループウェアで各部門ごとに管理するといったシチュエーションが考えられると思います。

私が以前お話を聞いた会社ではNDA契約書の確認などはSharePointを通じて行っているところもありました。

そこで今回はCloudSign上のPDFファイルを取得し、自動的にSharePoint上へアップロードするデータ連携処理をTalendを使ってノンコーディングで作成したいと思います。

Talendのフロー図は以下のようなイメージです。

f:id:sugimomoto:20190523015110p:plain

最終的に以下のようにPDFファイルがアップロードされます。

f:id:sugimomoto:20190523015117p:plain

必要なもの

・CloudSignアカウント

・Office365 アカウント(SharePointサイト含む)

・Talend Studio

Driverのダウンロード・インストール

以下のURLからドライバーのダウンロードが可能です。

https://www.cdata.com/jp/drivers/cloudsign/jdbc

https://www.cdata.com/jp/drivers/sharepoint/jdbc

ダウンロード後、インストーラーを立ち上げて、セットアップを行ってください。

f:id:sugimomoto:20190523015125p:plain

特に難しい設定は無いので、そのまま「次へ」で進んでいけば大丈夫です。

Talend について

Talendは以下のURLから入手できるので、予めインストールしておきます。

https://jp.talend.com/

f:id:sugimomoto:20190523015131p:plain

ダウンロード後、Talendを起動し、新しくプロジェクトを作成します。

f:id:sugimomoto:20190523015138p:plain

プロジェクトを開いたら、処理を行う単位であるジョブを新規で作成します。

f:id:sugimomoto:20190523015144p:plain

任意の名称を付けてください。

f:id:sugimomoto:20190523015149p:plain

これで処理を作成していく環境が整いました。

f:id:sugimomoto:20190523015155p:plain

DB接続定義の作成(CloudSign)

まず最初にCloudSignへの接続設定を行います。CloudSignへの接続には APIアクセスのための クライアントIDが必要になります。

事前にCloudSignの管理画面から取得しておいてください。

f:id:sugimomoto:20190523015201p:plain

Talendのリポジトリウィンドウから「メタデータ」→「DB接続定義」→「接続定義」をクリックします。

f:id:sugimomoto:20190523015207p:plain

任意の名称を入力して次へ進み

f:id:sugimomoto:20190523015213p:plain

DBタイプから「JDBC」を選んで、CloudSign Driverの設定を進めていきます。

JDBC URLは以下のように事前に取得したClientIDを含めたものを設定します。Sandboxに接続する場合は「UseSandbox」のパラメータをTrueに設定してください。

jdbc:cloudsign:UseSandbox=true;ClientId=[ClientID];

f:id:sugimomoto:20190523015218p:plain

次に+ボタンをクリックしてDriverの追加を行います。

アーティファクトリポジトリから「新規のモジュールのインストール」で以下のファイルを参照します。

C:\Program Files\CData\CData JDBC Driver for CloudSign 2019J\lib\cdata.jdbc.cloudsign.jar

参照後「モジュールのインストールステータスを検出」を行い、問題がなければ「OK」をクリックします。

f:id:sugimomoto:20190523015224p:plain

最後に「クラス名の選択」をクリックして、ドライバーのクラス名を参照できれば設定は完了です。

「TestConnection」をクリックして、CloudSignに接続できるかどうか確認してみましょう。

f:id:sugimomoto:20190523015229p:plain

DB接続定義の作成(SharePoint)

同様にSharePointのDBに接続定義も作成します。基本的に同じ流れなので、ほとんど割愛します。

f:id:sugimomoto:20190523015235p:plain

SharePoint Onlineに接続する場合の接続URLは以下のようになります。「URL」パラメータには接続したいサイトURLを入力してください。

jdbc:sharepoint:User=XXXX@XXXXX.onmicrosoft.com;Password=XXXXXX;URL=https://XXXXX.sharepoint.com;Share Point Edition=SharePointOnline;

SharePointのJDBCライブラリは以下のパスに保存されています。これも先程と同じようにモジュールとしてインストールします。

C:\Program Files\CData\CData JDBC Driver for SharePoint 2019J\lib\cdata.jdbc.sharepoint.jar

f:id:sugimomoto:20190523015241p:plain

以下のように設定できればOKです。

f:id:sugimomoto:20190523015247p:plain

CloudSignのスキーマの取得

接続構成が完了したら、まずCloudSignからファイル情報一覧を取得するための事前準備としてスキーマの取得を行います。

追加したCloudSignのテーブル定義を右クリックして「スキーマの取得」をクリック

f:id:sugimomoto:20190523015254p:plain

そのまま「Next」をクリックし

f:id:sugimomoto:20190523015259p:plain

展開されたテーブル情報をすべて選択します。

f:id:sugimomoto:20190523015305p:plain

あとはFinishをクリックすれば、読み込みが完了します。これで今後各データを取得するときの操作が安易になります。

f:id:sugimomoto:20190523015311p:plain

CloudSignからファイルの一覧の取得処理の作成

それではファイル一覧情報の取得処理を作ってみましょう。

先程取得したスキーマを利用することで簡単に参照できるようになっています。CloudSignのDB接続定義から「Files」をジョブのデザイナー画面にドラッグアンドドロップします。

f:id:sugimomoto:20190523015317p:plain

配置すると以下のように処理コンポーネントを選択する画面が表示されます。今回はTalendにデータをInputするので「tDBInput(JDBC)」を選択します。

f:id:sugimomoto:20190523015323p:plain

これだけでFilesテーブルの一覧取得は可能です。ただ、このままではPDFファイルをダウンロードできません。続いてこのFilesテーブルの一覧を元にPDFファイルをダウンロードする処理を作成します。

f:id:sugimomoto:20190523015327p:plain

CloudSignからPDFファイルのダウンロード処理を作成

PDFファイルのダウンロードには、CloudSign JDBC Driverのストアドプロシージャを使います。

以下がリファレンスです。このInputの情報を渡すことで、ローカルストレージにPDFファイルがダウンロードされます。

f:id:sugimomoto:20190523015333p:plain

ストアドプロシージャの実行にはTalendのパレットにある「tDBSP」を使います。これをジョブデザイナーにドラッグアンドドロップします。

f:id:sugimomoto:20190523015339p:plain

展開したらDatabaseから「JDBC」を選択し「リポリトリ」を押して、CloudSignの接続定義を参照します。

f:id:sugimomoto:20190523015344p:plain

SP名でストアドプロシージャの名前を入力し、Inputパラメータのスキーマを定義します。

f:id:sugimomoto:20190523015350p:plain

以下のような感じでHelpに従ってスキーマカラムを作ります。

f:id:sugimomoto:20190523015355p:plain

そして、すべてストアドプロシージャのパラメータとして定義してしまいます。ここで順番が前後しないように気をつけてください。

f:id:sugimomoto:20190523015400p:plain

最後に各コンポーネントを繋ぐためにマッピングコンポーネントを配置します。「tMap」をジョブデザイナーに配置してください。

f:id:sugimomoto:20190523015405p:plain

配置後に以下のような感じで、Mapを経由して各コンポーネントを接続します。

f:id:sugimomoto:20190523015412p:plain

なお、途中表示されるスキーマの取得は行ってください。

f:id:sugimomoto:20190523015423p:plain

コンポーネントを繋いだ後、Mapの具体的な処理内容を記述します。Mapコンポーネントをダブルクリックすると以下のような画面が表示されます。

f:id:sugimomoto:20190523015429p:plain

この画面を使うことで、ドラッグアンドドロップでInputとOutputの処理をマッピングできます。今回は以下のようにマッピングを行います。

今回、ファイル名はFileIDとNameを結合したものを設定しました。OutputFolderにはローカル保存先のフォルダパスを指定します。

f:id:sugimomoto:20190523015435p:plain

以上でPDFダウンロードの処理実装は完了です。

なお、ここまででもジョブの実行は可能です。ジョブの実行ボタンをクリックしてみてください。

f:id:sugimomoto:20190523015442p:plain

以下のように対象フォルダにPDFファイルが出力されます。

f:id:sugimomoto:20190523015447p:plain

ダウンロードしたPDFをSharePointへアップロード

今度はダウンロードしたPDFファイルをSharePointのドキュメントフォルダにアップロードしてみます。

SharePointへのアップロードには「UploadDocument」のストアドプロシージャを使います。

f:id:sugimomoto:20190523015453p:plain

同じようにtDBSPのコンポーネントを配置し

f:id:sugimomoto:20190523015459p:plain

今度はSharePointへ接続設定を行います。

f:id:sugimomoto:20190523015506p:plain

SP名にUploadDocumentを指定し、スキーマを設定しましょう。

f:id:sugimomoto:20190523015511p:plain

最後に、先程と同じようにtMapコンポーネントを配置して、PDFダウンロードのコンポーネントとSharePointUploadのコンポーネントをつなぎます。

f:id:sugimomoto:20190523015516p:plain

なお、今回は予め「CloudSignDocument」というドキュメントライブラリを構成しておいたので、ここにアップロードするように設定します。

f:id:sugimomoto:20190523015521p:plain

Fileパラメータには先程のフォルダパスとFileNameを結合した情報を入力し、ファイルを参照できるようにします。

Libraryにはドキュメントライブラリの名前、NameにはそのままFileNameの名前を入力します。

FileContentには何も入力しなくてOKです。

f:id:sugimomoto:20190523015527p:plain

以上ですべての処理作成が完了です。それでは実行してみます!

f:id:sugimomoto:20190523015533p:plain

続々とFileのダウンロードが完了し、そのままSharePointドキュメントライブラリにアップロードすることができました!

f:id:sugimomoto:20190523015538p:plain

おわりに

今回はSharePointに接続しましたが、CData DriverではBox、OneDrive、Google Driveといったストレージ系サービスにも対応したコンポーネントを提供しているので、様々なクラウドサービスにCloudSignを連携させることが可能です。

是非Talendを使っていろんなサービスを連携させてみてください。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。