intra-mart Accel Platform ロール インポート・エクスポート仕様書 第4版 2014-08-01

実行方法

この項では、インポート・エクスポートを実行する手段を紹介します。

注意

インポートしたデータをエクスポートする場合、またはエクスポートしたデータをインポートする場合は、
「エンコーディング」などの対応するオプションは同じ値を指定する必要があります。

ジョブスケジューラを利用する

ジョブスケジューラの機能を利用してインポート・エクスポートを実行する方法を紹介します。
ジョブスケジューラの詳細については「ジョブスケジューラ仕様書」を参照してください。
intra-mart Accel Platform ではロールのインポート・エクスポートを行うためのジョブ・ジョブネットを提供しています。
この項では、intra-mart Accel Platform が標準で提供しているロールのインポート・エクスポートを行うジョブ・ジョブネットの情報を紹介します。

ジョブ

  • ロールインポート

    ジョブカテゴリ テナントマスタ > インポート
    ジョブID role-import
    ジョブ名 ロールインポート
  • ロールエクスポート

    ジョブカテゴリ テナントマスタ > エクスポート
    ジョブID role-export
    ジョブ名 ロールエクスポート

ジョブネット

  • ロールインポート

    ジョブネットカテゴリ テナントマスタ > インポート
    ジョブネットID role-import-jobnet
    ジョブネット名 ロールインポート
  • ロールエクスポート

    ジョブネットカテゴリ テナントマスタ > エクスポート
    ジョブネットID role-export-jobnet
    ジョブネット名 ロールエクスポート

コラム

ジョブスケジューラ利用時のオプションについて

ジョブスケジューラを利用してインポート・エクスポートを実行する場合は、
ジョブ・ジョブネットのパラメータに「オプション」を指定します。

コラム

ジョブスケジューラ利用時のトランザクション管理について

ジョブスケジューラを利用したインポートでは、オプション commit-count を指定しない場合、インポート処理が完了後に一括してコミットを行います。
必要に応じてオプション commit-count の値を変更してご利用ください。

Javaから実行する

JavaのAPIを利用してインポート・エクスポートを実行する方法を紹介します。

インポート

DataImportExecutor#importData(String, InputStream, Map) を利用してインポートを行います。

  • 完全修飾クラス名

    jp.co.intra_mart.foundation.data.importer.DataImportExecutor


第1引数にはインポータIDを指定します。インポータIDは以下を利用します。
jp.co.intra_mart.import.StandardRoleXmlImporter
第2引数にはインポート元を InputStream で指定します。

第3引数にはインポートオプションを Map<String, Object> で指定します。
詳細は、「インポートオプション」を参照してください。

DataImportExecutor の詳細については「DataImportExecutorクラスのAPIリスト」を参照してください。

以下はインポートを行うサンプルプログラムです。
package sample;

import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;

import jp.co.intra_mart.foundation.data.OptionKeyName;
import jp.co.intra_mart.foundation.data.exception.DataImporterException;
import jp.co.intra_mart.foundation.data.importer.DataImportExecutor;
import jp.co.intra_mart.foundation.service.client.file.PublicStorage;

/**
 * ロールのインポートを行うクラスです。
 */
public class RoleImporter {

    private static final String IMPORTER_ID = "jp.co.intra_mart.import.StandardRoleXmlImporter";

    /**
     * ロールのインポートを行います。
     * @throws DataImporterException インポートで何らかの例外が発生した場合。
     */
    public void doImport() throws DataImporterException {
        final DataImportExecutor executor = new DataImportExecutor();
        final Map<String, Object> options = new HashMap<String, Object>();
        options.put(OptionKeyName.ENCODING.value(), "UTF-8");
        options.put(OptionKeyName.VALIDATE_XML.value(), true);
        options.put(OptionKeyName.COMMIT_COUNT.value(), 100);
        // パブリックストレージ直下のrole.xmlを選択
        final PublicStorage storage = new PublicStorage("role.xml");
        try {
            // PublicStorageからInputStreamを取得
            final InputStream stream = storage.open();
            try {
                executor.importData(IMPORTER_ID, stream, options);
            } finally {
                stream.close();
            }
        } catch (final IOException e) {
            throw new DataImporterException(e);
        }
    }

}

注意

第2引数の InputStream を指定した場合は、オプション file は利用できません。
オプション file を利用したい場合は、第2引数に null を指定してください。

エクスポート

DataExportExecutor#exportData(String, OutputStream, Map) を利用してエクスポートを行います。
  • 完全修飾クラス名

    jp.co.intra_mart.foundation.data.exporter.DataExportExecutor

第1引数にはエクスポータIDを指定します。エクスポータIDは以下を利用します。
jp.co.intra_mart.export.StandardRoleXmlExporter
第2引数にはエクスポート先を OutputStream で指定します。

第3引数にはエクスポートオプションを Map<String, Object> で指定します。
詳細は、「エクスポートオプション」を参照してください。

DataExportExecutor の詳細については「DataExportExecutorクラスのAPIリスト」を参照してください。

以下はエクスポートを行うサンプルプログラムです。
package sample;

import java.io.IOException;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;

import jp.co.intra_mart.foundation.data.OptionKeyName;
import jp.co.intra_mart.foundation.data.exception.DataExporterException;
import jp.co.intra_mart.foundation.data.exporter.DataExportExecutor;
import jp.co.intra_mart.foundation.service.client.file.PublicStorage;

/**
 * ロールのエクスポートを行うクラスです。
 */
public class RoleExporter {

    private static final String EXPORTER_ID = "jp.co.intra_mart.export.StandardRoleXmlExporter";

    /**
     * ロールのエクスポートを行います。
     * @throws DataExporterException エクスポートで何らかの例外が発生した場合。
     */
    public void doExport() throws DataExporterException {
        final DataExportExecutor executor = new DataExportExecutor();
        final Map<String, Object> options = new HashMap<String, Object>();
        options.put(OptionKeyName.ENCODING.value(), "UTF-8");
        options.put(OptionKeyName.FORMAT_XML.value(), false);
        options.put(OptionKeyName.FETCH_COUNT.value(), 10);
        // パブリックストレージ直下のrole.xmlを選択
        final PublicStorage storage = new PublicStorage("role.xml");
        try {
            // PublicStorageからOutputStreamを取得
            final OutputStream stream = storage.create();
            try {
                executor.exportData(EXPORTER_ID, stream, options);
            } finally {
                stream.close();
            }
        } catch (final IOException e) {
            throw new DataExporterException(e);
        }
    }

}

注意

第2引数の OutputStream を指定した場合は、オプション file は利用できません。
オプション file を利用したい場合は、第2引数に null を指定してください。

スクリプト開発モデルプログラムから実行する

スクリプト開発モデルのAPIを利用してインポート・エクスポートを実行する方法を紹介します。

インポート

DataImportExecutor#importData(String, ByteReader, Object) を利用してインポートを行います。

第1引数にはインポータIDを指定します。インポータIDは以下を利用します。
jp.co.intra_mart.import.StandardRoleXmlImporter
第2引数にはインポート元を ByteReader で指定します。

第3引数にはインポートオプションをObject形式で指定します。
詳細は、「インポートオプション」を参照してください。

DataImportExecutor の詳細については「DataImportExecutorオブジェクトのAPIリスト」を参照してください。

以下はインポートを行うサンプルプログラムです。
var IMPORTER_ID = 'jp.co.intra_mart.import.StandardRoleXmlImporter';

/**
 * ロールのインポートを行います。
 */
function doImport() {
    var executor = new DataImportExecutor();
    var options = {
        'encoding': 'UTF-8',
        'validate-xml': true,
        'commit-count': 100
    };
    // パブリックストレージ直下のrole.xmlを選択
    var storage = new PublicStorage('role.xml');
    // ファイルからデータをインポート
    storage.openAsBinary(function(reader, error) {
        if (error) {
            // ファイルの読み込みに失敗 -> 例外処理
            Logger.getLogger().error(error.message);
            return;
        }

        var result = executor.importData(IMPORTER_ID, reader, options);
        if (result.error) {
            // インポート失敗 -> 例外処理
            Logger.getLogger().error(result.errorMessage);
        }
    });
}

注意

第2引数の ByteReader を指定した場合は、オプション file は利用できません。
オプション file を利用したい場合は、第2引数に null を指定してください。

エクスポート

DataExportExecutor#importData(String, ByteWriter, Object) を利用してエクスポートを行います。

第1引数にはエクスポータIDを指定します。エクスポータIDは以下を利用します。
jp.co.intra_mart.export.StandardAccountXmlExporter
第2引数にはエクスポート元を ByteWriter で指定します。

第3引数にはエクスポートオプションをObject形式で指定します。
詳細は、「エクスポートオプション」を参照してください。

DataExportExecutor の詳細については「DataExportExecutorオブジェクトのAPIリスト」を参照してください。

以下はインポートを行うサンプルプログラムです。
var EXPORTER_ID = 'jp.co.intra_mart.export.StandardRoleXmlExporter';

/**
 * ロールのエクスポートを行います。
 */
function doExport() {
    var executor = new DataExportExecutor();
    var options = {
        'encoding': 'UTF-8',
        'format-xml': false,
        'fetch-count': 10
    };
    // パブリックストレージ直下のrole.xmlを選択
    var storage = new PublicStorage('role.xml');
    // ファイルにデータをエクスポート
    storage.createAsBinary(function(writer, error) {
        if (error) {
            // ファイルの作成に失敗 -> 例外処理
            Logger.getLogger().error(error.message);
            return;
        }

        var result = executor.exportData(EXPORTER_ID, writer, options);
        if (result.error) {
            // エクスポートに失敗 -> 例外処理
            Logger.getLogger().error(result.errorMessage);
        }
    });
}

注意

第2引数の ByteWriter を指定した場合は、オプション file は利用できません。
オプション file を利用したい場合は、第2引数に null を指定してください。