こんにちは! CData Software Japan リードエンジニアの杉本です。
今回は新しくリリースされた CloudSign JDBC Driver とオープンソースETLツールである Talend を使ってCloudSign上に格納されている契約書のPDFファイルをSharePointアップロード・バックアップする方法を紹介したいと思います。
CloudSign とは?
契約書の準備はもちろんのこと、それを契約先へWebベースで送付し、サインや必要事項の入力、はては印鑑までWeb上で完結してしまうという、Web完結型クラウド契約サービスです。
シナリオ
雇用契約書などはサインなどが完了後、グループウェアで各部門ごとに管理するといったシチュエーションが考えられると思います。
私が以前お話を聞いた会社ではNDA契約書の確認などはSharePointを通じて行っているところもありました。
そこで今回はCloudSign上のPDFファイルを取得し、自動的にSharePoint上へアップロードするデータ連携処理をTalendを使ってノンコーディングで作成したいと思います。
Talendのフロー図は以下のようなイメージです。
最終的に以下のようにPDFファイルがアップロードされます。
必要なもの
・CloudSignアカウント
・Office365 アカウント(SharePointサイト含む)
・Talend Studio
Driverのダウンロード・インストール
以下のURLからドライバーのダウンロードが可能です。
https://www.cdata.com/jp/drivers/cloudsign/jdbc
https://www.cdata.com/jp/drivers/sharepoint/jdbc
ダウンロード後、インストーラーを立ち上げて、セットアップを行ってください。
特に難しい設定は無いので、そのまま「次へ」で進んでいけば大丈夫です。
Talend について
Talendは以下のURLから入手できるので、予めインストールしておきます。
ダウンロード後、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: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
以下のように設定できれば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を使っていろんなサービスを連携させてみてください。