FMEでEC-CUBEの受注データを取得してみる−1

プラグマティカ社の飯嶋社長監修の元、SAFE SOFTWARE社のFME(2015.0)よりEC-CUBEの受注データを取得するためのワークスペースを作成したので、その内容を解説する。

スクリーンショット 2015-04-27 16.34.38.png

ワークスペース上のロガーは動作確認のために使用している。動作確認しながら試してみる場合はロガーも含めて入力してみて欲しい。

基本的な考え方として、HTTPCallerを使用してWEBサイトへアクセスするが、管理画面のログインをパスするために、いくつか手順を踏む必要がある。

1.ログイン画面へアクセス

2.アクセス結果からtransactionidを取得

3.ログイン画面へ、transactionidとuser_id、passwordをパラメータとして渡し、POSTする

4.CSV出力のURLへ、transactionidをパラメータとして渡し、POSTする

5.アクセス結果がCSVになっているので、ファイルへ出力

これで、ブラウザから管理画面を操作することなく受注情報をダウンロードできる。

1.ログイン画面へアクセス

何もないところからいきなりスタートできないので、一番最初はCreatorを配置する。

管理画面トップのURLをhttps://から指定し、HTTPCallerでアクセスする。

初回なので、特にパラメータを渡すことなくGETでアクセスする。

ここを含め、以降全てのHTTPCallerで「Save Cookies」を「Yes」にしておく必要がある。

スクリーンショット 2015-04-27 16.40.50.png

スクリーンショット 2015-04-27 16.41.43.png

2.アクセス結果からtransactionidを取得

1の戻りでログイン画面のHTMLが返ってくる。

その中に、「transactionid」がある。

以後、この値を使用してセッションを維持する必要があるため、内部のパラメータとして保持する。

具体的には、HTML中より「transactionid」を取得して保持するため、今回は「StringSearcher」を使用し、正規表現から「transactionid」のvalueを取得した。その際の正規表現は以下の通り。

<input type="hidden" name="transactionid" value="([^¥"]+)"

マッチした文字列が「Matched Parts Attribute」で指定したアトリビュートへ保存される。

スクリーンショット 2015-04-27 16.44.24.png

3.ログイン画面へ、transactionidとuser_id、passwordをパラメータとして渡し、POSTする

ログイン画面へPOSTのリクエストを送る。

「HTTPCaller」を使用し、POSTのリクエストを組み立る。

「Save Cookies」をYesにしておくと、セッションを維持したアクセスが実現できる。

formのフィールドとして、login_id、password、mode、transactionidを渡す。

スクリーンショット 2015-04-27 16.46.16.png

スクリーンショット 2015-04-27 16.46.46.png

4.CSV出力のURLへ、transactionidをパラメータとして渡し、POSTする

「Save Cookies」をYesにしておくことで、セッションが維持されていることを期待できるので、

管理画面が開けていることを前提にCSV出力のURLへアクセスする。

今回は受注データを取得するので、URLは受注データの一覧画面となる。

EC-CUBEのインストールされている環境によりURLは変わるが、今回は管理画面を「admin」で始まるディレクトリにインストールしたことを前提に、「https://〜/admin/order/?」とアクセスする。

EC-CUBEの場合、URLの?の後ろに検索条件を加えることもできるが、今回は絞り込むことなくCSVを取得できることを確認する。

スクリーンショット 2015-04-27 16.47.12.png

スクリーンショット 2015-04-27 16.47.57.png

5.アクセス結果がCSVになっているので、ファイルへ出力

前項の設定で、Output Filenameが設定されている。

受信したCSVデータはOutput Filenameで指定されたファイルとしてローカルに保存される。

おわりに

ここまでで、HTTPCallerを使用し、WEBサイトへログインしてから特定のページへアクセスすることができるようになる。

ID、Password、URLは伏せ字にしてあるので各人の環境に合わせて入力して欲しい。

この例を参考にしたとき、入力されたIDやPasswordはFMWファイル中に暗号化されずに保存されるので、セキュリティの確保されていないところで使用しないで欲しい。

デスクトップからの操作で同様の操作を行いたい場合は、画面からID、Passwordを入力するようにするなどして、ID、Passwordを安全に扱えるようにして欲しい。

次回以降で、ダイアログからID、Passwordを入力する方法と、読み取ったCSVファイルを別フォーマットへ変換して保存する方法を記載する。