Cloud Software Group, Inc. EBX®
ドキュメント>ユーザーガイド>データセット>ファイルのインポートおよびエクスポートサービス
ナビゲーションモードドキュメント>ユーザーガイド>データセット>ファイルのインポートおよびエクスポートサービス

CSVのインポートとエクスポート

はじめに

CSVのインポートとエクスポートは、ワークスペースの[アクション]メニューを使用してユーザーインターフェイスからテーブルで実行できます。

インポートとエクスポートはどちらも、データセットのコンテキストで実行されます。

インポートとエクスポートはプログラムで行うこともできます。

デフォルトのインポートおよびエクスポートオプション値は、管理領域のユーザーインターフェイス>グラフィカルインターフェイス構成>デフォルトオプション値>インポート/エクスポートで設定できます。

以下も参照してください。

エクスポート

CSVにエクスポートするときに、テーブルにフィルターが適用されている場合、フィルターに対応するレコードのみがエクスポートされたファイルに含まれます。

CSVエクスポートオプションは次のとおりです。

ダウンロードファイル名

エクスポートするCSVファイルの名前を指定します。このフィールドには、レコードのエクスポート元のテーブルの名前が事前に入力されています。

ファイルエンコード

エクスポートされたファイルに使用する文字エンコードを指定します。デフォルトはUTF-8です。

継承の有効化

CSVエクスポート中に継承を考慮するには、モデルでオプションを定義する必要があります。

継承の詳細については、継承と値の解決を参照してください。

CSVエクスポート中に継承を考慮するかどうかを指定します。

継承が有効になっている場合、フィールドの解決された値は、レコードまたはフィールドの可能な継承モードを定義する技術データとともにエクスポートされます。

継承が無効になっている場合、フィールドの解決された値がエクスポートされ、非表示にされたレコードは無視されます。

デフォルトでは、このオプションは無効になっています。

注:テーブルデータセットに親がない場合、またはテーブルに継承フィールドがない場合、継承は常に無視されます。

ユーザーフレンドリーモード

エクスポートされた値をユーザーフレンドリーな方法で表示するか、生の形式で表示するかを指定します。たとえば、ユーザーフレンドリーモードでは、日付と数値はユーザーのロケールに従ってフォーマットされ、外部キーと列挙値は関連するラベルを表示します。

注:このオプションを選択すると、エクスポートされたファイルを再インポートできなくなります。

技術データの包含

内部技術データをエクスポートに含めるかどうかを指定します。

注:このオプションを選択すると、エクスポートされたファイルを再インポートできなくなります。

列ヘッダー

CSVファイルに列ヘッダーを含めるかどうかを指定します。

  • ヘッダーなし

  • ラベル:スプレッドシートの各列について、CSVにラベルが表示されます。各ラベルは、現在のセッションのロケール設定に従ってローカライズされます。ノードに分かりやすいラベルが定義されていない場合は、ノードの技術名称が使用されます。

  • XPath:スプレッドシートの各列について、CSVはテーブル内のノードへのパスを表示します。

フィールド区切り文字

エクスポートに使用するフィールド区切り文字を指定します。デフォルトの区切り文字はカンマです。管理>ユーザーインターフェイスで変更できます。

リスト区切り文字

値リストに使用する区切り文字を指定します。デフォルトの区切り文字は改行です。管理>ユーザーインターフェイスで変更できます。

プログラムによるCSVエクスポートは、Java APIの ExportSpec および ExportImportCSVSpec クラスを使って行います。

インポート

ダウンロードファイル名

インポートするCSVファイルの名前を指定します。

インポートモード

CSVファイルをインポートするときは、次のインポートモードのいずれかを指定する必要があります。これにより、ソーステーブルとターゲットテーブルの間の操作の整合性が制御されます。

  • 挿入モード:レコードの作成のみが許可されます。ソースレコードと同じ主キーを持つレコードがターゲットテーブルに存在する場合、エラーが返され、インポート操作全体がキャンセルされます。

  • 更新モード:既存のレコードの変更のみが許可されます。ソースレコードと同じ主キーを持つレコードがターゲットテーブルに存在しない場合、エラーが返され、インポート操作全体がキャンセルされます。

  • 更新または挿入モード:ソースレコードと同じ主キーを持つレコードがターゲットテーブルにすでに存在する場合、そのレコードは更新されます。それ以外の場合は、新しいレコードが作成されます。

  • 置換(同期)モード:ソースレコードと同じ主キーを持つレコードがターゲットテーブルにすでに存在する場合、そのレコードは更新されます。それ以外の場合は、新しいレコードが作成されます。レコードがターゲットテーブルに存在するが、ソースXMLファイルには存在しない場合、そのレコードはテーブルから削除されます。

ファイルエンコード

エクスポートされたファイルに使用する文字エンコードを指定します。デフォルトはUTF-8です。

継承の有効化

CSVインポート中に継承を考慮するには、モデルでオプションを定義する必要があります。

継承の詳細については、継承と値の解決およびExportImportCSVSpec.setInheritanceEnabledを参照してください。

CSVインポート中に継承を考慮するかどうかを指定します。 CSVファイルの技術データで継承モードが定義されている場合、対応するフィールドまたはレコードは強制的に継承されます。技術データが非表示モードを定義している場合、対応するレコードは強制的に非表示にされます。それ以外の場合、フィールドはCSVファイルから読み取られた値で上書きされます。デフォルトでは、このオプションは無効になっています。

注:テーブルのデータセットに親がない場合、またはテーブルに継承されたフィールドがない場合、継承は常に無視されます。

列ヘッダー

CSVファイルに列ヘッダーを含めるかどうかを指定します。

  • ヘッダーなし

  • ラベル:スプレッドシートの各列について、CSVにラベルが表示されます。各ラベルは、現在のセッションのロケール設定に従ってローカライズされます。ノードに分かりやすいラベルが定義されていない場合は、ノードの技術名称が使用されます。

  • XPath:スプレッドシートの各列について、CSVはテーブル内のノードへのパスを表示します。

フィールド区切り文字

エクスポートに使用するフィールド区切り文字を指定します。デフォルトの区切り文字はカンマです。管理>ユーザーインターフェイスで変更できます。

リスト区切り文字

値リストに使用する区切り文字を指定します。デフォルトの区切り文字は改行です。管理>ユーザーインターフェイスで変更できます。

プログラムによるCSVインポートは、Java APIの ImportSpec および ExportImportCSVSpec クラスを使って行います。

フィールド値の処理

集約リスト

CSVインポートおよびエクスポートサービスは、複数値フィールド、つまり集約リストをサポートします。これは、stringdate、またはintのリストなどの単純な型付きリスト、および外部キーでのみサポートされます。テーブル参照が複合主キーにリンクされている場合、リスト内の各項目は、「true|99」のようにフォーマットされた文字列です。グループの集約リストはエクスポートされません。

エクスポート時には、リスト内の項目は行区切り記号を使用して区切られます。 osd:htmlosd:textなど、エクスポートされたフィールドにすでに行区切り文字が含まれている場合、コード_crnl _は次のようになります。フィールド値の行区切り文字の代わりに挿入されます。インポート時に同じフォーマットが期待され、フィールド値全体が引用符で囲まれます。

非表示フィールド

非表示フィールドは、ebx-csv:hidden文字列としてエクスポートされます。インポートされた非表示の文字列は、フィールドのコンテンツを変更しません。

文字列の「Null」値

CSVインポートおよびエクスポートサービスでは、値が nullに設定されている文字列は空の文字列としてエクスポートされます。そのため、export-inportの往復で、nullの文字列値が空の文字列に置き換えられてしまいます。

プログラムサービスを使用して、特定の値 ebx-csv:nil に対して値が nullに設定された文字列を割り当てることができます。 このようにすると、往復のexport-import手続きの間に null 文字列の値が空の文字列に置き換えられることはありません。 詳細は、Java APIの ExportImportCSVSpec.setNullStringEncoded を参照してください。

日付、時刻、日時の形式

次の日付と時刻の形式がサポートされています。

タイプ

フォーマット

xs:date

yyyy-MM-dd

2007-12-31

xs:time

HH:mm:ss または HH:mm:ss.SSS

11:55:00

xs:dateTime

yyyy-MM-ddTHH:mm:ssまたはyyyy-MM-ddTHH:mm:ss.SSS

2007-12-31T11:55:00

既知の制限

グループの集約リスト

CSVインポートおよびエクスポートサービスは、複数値グループ、つまり複合型エレメントの集約リストをサポートしていません。このようなノードをエクスポートしてもエラーは発生しませんが、値はエクスポートされません。

ターミナルグループ

CSVファイルでは、空のフィールドのみを含む作成済みの端末グループと、作成されていないフィールドを区別することはできません。

結果として、エクスポートに続いてインポートを実行した後の比較中に、いくつかの違いが表示される場合があります。インポートとエクスポートの対称性を確保するには、代わりにXMLのインポートとエクスポートを使用してください。 XMLのインポートとエクスポートを参照してください。

列ラベルヘッダー

2つの列が同じラベルヘッダーを共有している場合、テーブルのエクスポートは正常に実行できますが、エクスポートされたデータを後で再インポートすることはできません。

関連付けフィールド

CSVインポートおよびエクスポートサービスは、関連付け値、つまり関連付けられたレコードをサポートしていません。

このようなフィールドをエクスポートしてもエラーは発生しませんが、値はエクスポートされません。

このようなフィールドをインポートするとエラーが発生し、インポート手順が中止されます。

選択ノード

CSVインポートおよびエクスポートサービスは、選択値、つまり選択されたレコードをサポートしていません。

このようなフィールドをエクスポートしてもエラーは発生しませんが、値はエクスポートされません。

このようなフィールドをインポートするとエラーが発生し、インポート手順が中止されます。

ドキュメント>ユーザーガイド>データセット>ファイルのインポートおよびエクスポートサービス