CData Software Blog

クラウド連携のCData Software の技術ブログです。

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

こんにちは! 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;

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

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を使っていろんなサービスを連携させてみてください。