こんにちは! CData Software Japan リードエンジニアの杉本です。
今回は新しくリリースされた CloudSign JDBC Driver とオープンソースETLツールである Talend を使ってCloudSign上に格納されている契約書のPDFファイルをSharePointアップロード・バックアップする方法を紹介したいと思います。
CloudSign とは?
契約書の準備はもちろんのこと、それを契約先へWebベースで送付し、サインや必要事項の入力、はては印鑑までWeb上で完結してしまうという、Web完結型クラウド契約サービスです。
https://www.cloudsign.jp/

シナリオ
雇用契約書などはサインなどが完了後、グループウェアで各部門ごとに管理するといったシチュエーションが考えられると思います。
私が以前お話を聞いた会社ではNDA契約書の確認などはSharePointを通じて行っているところもありました。
そこで今回はCloudSign上のPDFファイルを取得し、自動的にSharePoint上へアップロードするデータ連携処理をTalendを使ってノンコーディングで作成したいと思います。
Talendのフロー図は以下のようなイメージです。

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

必要なもの
・CloudSignアカウント
・Office365 アカウント(SharePointサイト含む)
・Talend Studio
Driverのダウンロード・インストール
以下のURLからドライバーのダウンロードが可能です。
https://jp.cdata.com/drivers/cloudsign/jdbc
https://jp.cdata.com/drivers/sharepoint/jdbc
ダウンロード後、インストーラーを立ち上げて、セットアップを行ってください。

特に難しい設定は無いので、そのまま「次へ」で進んでいけば大丈夫です。
Talend について
Talendは以下のURLから入手できるので、予めインストールしておきます。
https://jp.talend.com/

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

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

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

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

DB接続定義の作成(CloudSign)
まず最初にCloudSignへの接続設定を行います。CloudSignへの接続には APIアクセスのための クライアントIDが必要になります。
事前にCloudSignの管理画面から取得しておいてください。

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

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

DBタイプから「JDBC」を選んで、CloudSign Driverの設定を進めていきます。
JDBC URLは以下のように事前に取得したClientIDを含めたものを設定します。Sandboxに接続する場合は「UseSandbox」のパラメータをTrueに設定してください。
jdbc:cloudsign:UseSandbox=true;ClientId=[ClientID];

次に+ボタンをクリックしてDriverの追加を行います。
アーティファクトリポジトリから「新規のモジュールのインストール」で以下のファイルを参照します。
C:\Program Files\CData\CData JDBC Driver for CloudSign 2019J\lib\cdata.jdbc.cloudsign.jar
参照後「モジュールのインストールステータスを検出」を行い、問題がなければ「OK」をクリックします。

最後に「クラス名の選択」をクリックして、ドライバーのクラス名を参照できれば設定は完了です。
「TestConnection」をクリックして、CloudSignに接続できるかどうか確認してみましょう。

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

SharePoint Onlineに接続する場合の接続URLは以下のようになります。「URL」パラメータには接続したいサイトURLを入力してください。
jdbc:sharepoint:[email protected];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

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

CloudSignのスキーマの取得
接続構成が完了したら、まずCloudSignからファイル情報一覧を取得するための事前準備としてスキーマの取得を行います。
追加したCloudSignのテーブル定義を右クリックして「スキーマの取得」をクリック

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

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

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

CloudSignからファイルの一覧の取得処理の作成
それではファイル一覧情報の取得処理を作ってみましょう。
先程取得したスキーマを利用することで簡単に参照できるようになっています。CloudSignのDB接続定義から「Files」をジョブのデザイナー画面にドラッグアンドドロップします。

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

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

CloudSignからPDFファイルのダウンロード処理を作成
PDFファイルのダウンロードには、CloudSign JDBC Driverのストアドプロシージャを使います。
以下がリファレンスです。このInputの情報を渡すことで、ローカルストレージにPDFファイルがダウンロードされます。

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

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

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

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

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

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

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

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

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

この画面を使うことで、ドラッグアンドドロップでInputとOutputの処理をマッピングできます。今回は以下のようにマッピングを行います。
今回、ファイル名はFileIDとNameを結合したものを設定しました。OutputFolderにはローカル保存先のフォルダパスを指定します。

以上でPDFダウンロードの処理実装は完了です。
なお、ここまででもジョブの実行は可能です。ジョブの実行ボタンをクリックしてみてください。

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

ダウンロードしたPDFをSharePointへアップロード
今度はダウンロードしたPDFファイルをSharePointのドキュメントフォルダにアップロードしてみます。
SharePointへのアップロードには「UploadDocument」のストアドプロシージャを使います。

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

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

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

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

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

Fileパラメータには先程のフォルダパスとFileNameを結合した情報を入力し、ファイルを参照できるようにします。
Libraryにはドキュメントライブラリの名前、NameにはそのままFileNameの名前を入力します。
FileContentには何も入力しなくてOKです。

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

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

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