10. 実行方法(メニューグループ)¶
項目
この項では、メニューグループのインポート・エクスポートを実行する手段を紹介します。
注意
インポートしたデータをエクスポートする場合、または、エクスポートしたデータをインポートする場合は、「エンコーディング」などの対応するオプションは同じ値を指定する必要があります。
ジョブスケジューラを利用する¶
ジョブスケジューラの機能を利用してインポート・エクスポートを実行する方法を紹介します。ジョブスケジューラの詳細については「ジョブスケジューラ仕様書」を参照してください。intra-mart Accel Platform ではメニューグループカテゴリ、メニューグループのインポート・エクスポートを行うためのジョブ・ジョブネットを提供しています。この項では、intra-mart Accel Platform が標準で提供しているメニューグループカテゴリ、メニューグループのインポート・エクスポートを行うジョブ・ジョブネットの情報を紹介します。
Javaから実行する¶
JavaのAPIを利用してインポート・エクスポートを実行する方法を紹介します。
インポート¶
DataImportExecutor#importData(String, InputStream, Map) を利用してインポートを行います。
完全修飾クラス名
jp.co.intra_mart.foundation.data.importer.DataImportExecutor
第1引数にはインポータIDを指定します。インポータIDは以下を利用します。jp.co.intra_mart.import.StandardMenuGroupXmlImporter第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 MenuGroupImporter { private static final String IMPORTER_ID = "jp.co.intra_mart.import.StandardMenuGroupXmlImporter"; /** * メニューグループのインポートを行います。 * @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); // パブリックストレージ直下のmenu-group.xmlを選択 final PublicStorage storage = new PublicStorage("menu-group.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.import.StandardMenuGroupXmlExporter第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 MenuGroupExporter { private static final String EXPORTER_ID = "jp.co.intra_mart.export.StandardMenuGroupXmlExporter"; /** * メニューグループのエクスポートを行います。 * @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); // パブリックストレージ直下のmenu-group.xmlを選択 final PublicStorage storage = new PublicStorage("menu-group.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.StandardMenuGroupXmlImporter第2引数にはインポート元を ByteReader で指定します。第3引数にはインポートオプションをObject形式で指定します。詳細は、「インポートオプション」を参照してください。DataImportExecutor の詳細については「DataImportExecutorオブジェクトのAPIドキュメント」を参照してください。以下はインポートを行うサンプルプログラムです。var IMPORTER_ID = 'jp.co.intra_mart.import.StandardMenuGroupXmlImporter'; /** * メニューグループのインポートを行います。 */ function doImport() { var executor = new DataImportExecutor(); var options = { 'encoding': 'UTF-8', 'validate-xml': true, 'commit-count': 100 }; // パブリックストレージ直下のmenu-group.xmlを選択 var storage = new PublicStorage('menu-group.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.import.StandardMenuGroupXmlExporter第2引数にはエクスポート元を ByteWriter で指定します。第3引数にはエクスポートオプションをObject形式で指定します。詳細は、「エクスポートオプション」を参照してください。DataExportExecutor の詳細については「DataExportExecutorオブジェクトのAPIドキュメント」を参照してください。以下はインポートを行うサンプルプログラムです。var EXPORTER_ID = 'jp.co.intra_mart.export.StandardMenuGroupXmlExporter'; /** * メニューグループのエクスポートを行います。 */ function doExport() { var executor = new DataExportExecutor(); var options = { 'encoding': 'UTF-8', 'format-xml': false, 'fetch-count': 10 }; // パブリックストレージ直下のmenu-group.xmlを選択 var storage = new PublicStorage('menu-group.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 を指定してください。