intra-mart Accel Platform IM-共通マスタ インポート・エクスポート仕様書 第10版 2019-04-01

8. (付録) IM-共通マスタAPIから実行する

インポート/エクスポートは、APIのメソッドとして用意されています。
テナント環境セットアップで登録される各ジョブファイルは、このAPIを実行しています。
この章では、APIからインポート/エクスポートを実行する方法を解説します。
  • プログラムの一部としてインポート/エクスポートをしたい。
  • 設定ファイルを使い分けたい。
  • plugin.xmlでカテゴリをstandard以外に設定したインポート/エクスポートを実行したい。

この場合は、APIを実行するプログラムを作成して実行することができます。

APIからインポートを実行する場合、トランザクション処理を実装する必要があります。
トランザクションを開始せずにインポートを実行した場合、オートコミットモードで実行されます。
この場合、インポートが予期せぬ中断がされた場合にマスタデータの整合性が壊れる恐れがあります。
必ずトランザクションを実装し、中断された場合はロールバックするようにしてください。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
String categoryName = "standard";
String updateUserCd = "system";

String storageFilePath = "im_master/config/import_config.xml";
TenantInfoManager tenantManager= new TenantInfoManager();
Locale defaultLocale = tenantManager.getTenantoInfo().getLocale();
PublicStorage configFile = new PublicStorage(storageFilePath);
ByteArrayInputStream stream = new ByteArrayInputStream(configFile.load());

CompanyManager manager = new CompanyManager(updateUserCd, defaultLocal);
manager.importData(categoryName, stream);

//例外、トランザクション処理は割愛しています。

【リスト:サンプルプログラム】

7行目 Public Storageから設定ファイルを取得しています。
インポートデータファイルではありませんので注意してください。
8行目 読み込んだバイト配列でInputStreamを作成しています。
これがインポートするマネージャの引数の1つとなります。
11行目 インポートを実行します。
一つ目の引数categoryNameは、plugin.xmlで設定したカテゴリ名です。
作成済みのInputStreamを一緒に実行メソッドに渡しています。
この処理を実行するとインポートが開始されます。