nexacro-xeniインストール

nexacro-xeniは、サーバーモジュールで提供され、クライアントからのファイル形式でデータを処理する際に必要な機能を提供します。ファイルに含まれているデータをグリッドコンポーネントにインポートするか、グリッドに連結されたデータをファイルにエクスポートする機能を処理します。

nexacro-xeniは次のようなファイル形式と機能をサポートします。

ファイル形式

拡張子

機能

Microsoft Excel 97-2003

xls

export / import

Microsoft Excel 2007/2010

xlsx

export / import

CSV format file

csv

import

インストール

nexacro-xeniは、Javaベースのサーバーモジュールで提供され、JDKまたはJRE1.5以降のバージョンが必要となります。

指定されたwar(Web application ARchive)ファイルを直接配置したり、warファイルを解凍して、必要なファイルをWASの /WEB-INF/libディレクトリまたは定義されたクラスパスにコピーして使用することができます。提供されている主な jar(Java ARchive) ファイルは以下のとおりです。

commons-codec-1.5.jar
commons-fileupload-1.3.1.jar
commons-io-2.2.jar
commons-logging-1.1.jar
dom4j-1.6.1.jar
log4j-1.2.13.jar
nexacro-xapi-1.0.jar
nexacro-xeni-1.1.jar
poi-3.10-FINAL-20140208.jar
poi-ooxml-3.10-FINAL-20140208.jar
poi-ooxml-schemas-3.10-FINAL-20140208.jar
poi-scratchpad-3.10-FINAL-20140208.jar
stax-api-1.0.1.jar
xmlbeans-2.3.0.jar

warファイルを直接配置せずに解凍してコピーする場合には、ライブラリのバージョンの違いのため問題が発生することがあります。

nexacro-xeniはApache POIライブラリを使用します。詳細 Apache POIの説明は以下のリンクを参照してください。

https://poi.apache.org/

nexacro-xeniが動作するには、X-APIがインストールされている必要があります。インストール 項目を参照してください。

既存のコンテキストにファイルをコピーした場合には、以下の内容をweb.xmlファイルに追加する必要があります。

<servlet>
	<servlet-name>XExportImport</servlet-name>
	<servlet-class>com.nexacro.xeni.services.GridExportImportServlet</servlet-class>
</servlet>	
<servlet>
	<servlet-name>XImport</servlet-name>
	<servlet-class>com.nexacro.xeni.services.GridExportImportServlet</servlet-class>
</servlet>	
	
<servlet-mapping>
	<servlet-name>XExportImport</servlet-name>
	<url-pattern>/XExportImport</url-pattern>
</servlet-mapping>	
<servlet-mapping>
	<servlet-name>XImport</servlet-name>
	<url-pattern>/XImport</url-pattern>
</servlet-mapping>	
    
<context-param>
	<param-name>export-path</param-name>
	<param-value>/export</param-value>
</context-param>	
<context-param>
	<param-name>import-path</param-name>
	<param-value>/import</param-value>
</context-param>	
<context-param>
	<param-name>monitor-enabled</param-name>
	<param-value>true</param-value>
</context-param>    
<context-param>
	<param-name>monitor-cycle-time</param-name>
	<param-value>30</param-value>
</context-param>	
<context-param>
	<param-name>file-storage-time</param-name>
	<param-value>10</param-value>
</context-param>

jarファイルのリストと web.xmlに追加された内容は、nexacro-xeniバージョン1.1基準です。更新に基づいて、リストが変更されることがあります。

インストールの確認

通常の配置またはコピーされた場合、次のURLをWebブラウザで開いて、メッセージが正常に表示されることを確認します。

http://127.0.0.1:8080/XExportImport

URLは、インストールパスによって異なる場合があります。warファイルを直接配置した場合、URLは下記の通りです。

http://127.0.0.1:8080/nexacro-xeni-N/XExportImport

主な設定

サーブレットコンテキストにパラメータで設定された主な項目は以下の通りです。

項目名

デフォルト値

説明

export-path

/export

ダウンロードするファイルを一時的に保存するパスを指定します。

import-path

/import

グリッドコンポーネントにインポートファイルを一時的に保存するパスを指定します。

monitor-enabled設定値がtrueである場合には、データ処理後すぐに削除します。

monitor-enabled

true

ファイルマネージャを実行するかどうかを指定します。

falseに指定した場合には、ファイルマネージャが動作せず、一時ファイルを削除しません。

monitor-cycle-time

30

一時保存されたダウンロードするファイルを削除する周期(サイクル)を「分」単位で設定します。

該当周期にファイルマネージャを実行して、削除するファイルをチェックし、削除処理します。

file-stroage-time

10

一時的に保存されたダウンロードするファイルを保存する時間を「分」単位で設定します。

ファイルマネージャの実行時に生成した後、指定した時間が経過したファイルは削除されます。

詳しくは、配布される warファイルに含まれている readme.txtファイルを参照してください。

例題

単純なデータ処理の例を説明します。詳細なプロパティやメソッド、イベントは、ヘルプで以下の項目を参照してください。

Objects > Misc. Objects > ExcelExportObject

Export

Gridコンポーネントにバインドされたデータをサーバーに送信してファイルで生成し、生成されたファイルをダウンロードします。次の例では、Grid00コンポーネントにバインドされたデータをファイルで生成してダウンロードします。

this.Button00_onclick = function(obj:Button,  e:nexacro.ClickEventInfo)
{
	this.exportObj = new ExcelExportObject();
	var ret = this.exportObj.addExportItem(nexacro.ExportItemTypes.GRID, 
		this.Grid00, "Sheet1!A1");
	this.exportObj.set_exporturl("http://localhost:8080/XExportImport");   
	this.exportObj.exportData(); 
}

Import

ユーザーが持っているファイルをサーバーに送信して、データセットに変換します。ユーザーは、変換されたデータセットをダウンロードして業務を処理します。

this.Button00_onclick = function(obj:Button,  e:nexacro.ClickEventInfo)
{
	this.importObj = new ExcelImportObject("Import00",this); 
    this.importObj.addEventHandler("onsuccess", this.Import_onsuccess, this);
	this.importObj.set_importurl("http://localhost:8080/XExportImport");
	this.importObj.importData("","output=ds","Dataset00=ds");
}

this.Import_onsuccess = function(obj,e) 
{
	this.Grid00.createFormat();
}