データ出力ユーティリティを起動する

データ出力ユーティリティの起動操作と、起動コマンドの入力パラメータ、戻り値について説明します。


<目次>

データ出力ユーティリティの起動


データ出力ユーティリティの起動は、必ず「UTILITY_HOME」ディレクトリで実施します。
データ出力ユーティリティをコマンドラインから起動します。

・Windowsの場合

dataExport.bat [CONNECTXML] [SOQLTXT]

   

・Linuxの場合

sh dataExport.sh [CONNECTXML] [SOQLTXT]

   

起動コマンドの入力パラメータを以下の表に示します。

入力パラメータ

説明

省略可否

省略値

入力パラメータ

説明

省略可否

省略値

CONNECTXML

データ出力ユーティリティの接続設定ファイルを指定します。

例:config/config-connection.xml
※Windows版はconfig/config-Connection.xml

×

 -

SOQLTXT

出力設定ファイルを指定します。

例:config/config-soql.txt

×



output

CSVファイル出力先を指定します。

指定したCSVファイル出力先のディレクトリがない場合は作成されます。
(ディレクトリには書き込み権限が必要です。)

例:output=output/result.csv

UTILITY_HOME/yyyyMMddHHmmss_DataExport.csv

useHeader

CSVファイルのヘッダ行出力有無を指定します。

true:ヘッダ出力あり
false:ヘッダ出力なし

例:useHeader=false

 true

file-encoding

文字コードを指定します。

指定可能な文字コード:MS932、Shift-JIS、UTF-8、Windows-31J

例:file-encoding=UTF-8

 MS932

newline-code

改行コードを指定します。

指定可能な改行コード:\n、\r、\r\n
エスケープは不要です。(\\nの指定は不要です。)

例:newline-code=\r\n

 \n

SOQL可変値キー名

出力設定ファイル内のSOQLに":可変値名"の形式で指定された箇所を本パラメータで指定された値に変換します。

SOQL参考) 「SELECT ID FROM OBJECT_NAME WHERE COLUMN_NAME = ':REPLACE'」と記載している場合

例:REPLACE=test

本表内に記載しているパラメータ名に合致しないものはSOQL可変値パラメータとして扱われます。

SOQL可変値キー名(上記、SOQL参考の"REPLACE")に指定する文字種は半角英数字のみとなります。

SOQLの概要については、Salesforce ヘルプ「SOQL および SOSL の概要」を参照してください。

-

各ファイルは、絶対パスまたは「UTILITY_HOME」からの相対パスで指定します。

例1:全パラメータ指定

dataExport.bat config/config-Connection.xml config/config-soql.txt output=output/result.csv useHeader=false file-encoding=UTF-8 newline-code="\r\n" REPLACE=test

例2:一部パラメータ指定

dataExport.bat config/config-Connection.xml config/config-soql.txt useHeader=false file-encoding=UTF-8 output=output/result.csv

起動時の戻り値


データ出力ユーティリティの起動処理が完了すると、以下の戻り値が返されます。

  • 0:正常終了 (データ出力が成功した場合、または、データ取得結果が0件の場合)

  • 2:異常終了 (出力処理中に異常が発生し、処理を中止した場合)

出力されるCSVの形式


1.出力されるCSVファイルの基本情報
CSVファイルに出力される基本的なヘッダ、値は以下の通り出力されます。

  • 出力されるヘッダ、値の前後はダブルクォート(")で囲まれます。

  • 出力されるヘッダ、値の順序はSOQLのSELECT句に記載した順序で出力されます。

  • 出力対象のレコードの値がnull(値なし)の場合は「""」で出力されます。

 

2.日時項目のCSVファイル出力
日時、日付、時間の値は以下の表の通りに出力されます。

データ型

出力形式

データ型

出力形式

日時(Datetime)

yyyy-MM-ddTHH:mm:ss.000Z

日付(Date)

yyyy-MM-dd

時間(Time)

HH:mm:00.000Z

 

3.集合関数で別名を指定しない場合
集合関数を使用し、別名を指定していない場合、ヘッダ部には"expr9"の形式で出力されます。
※exprの末尾にある"9"は"0"からのインデックス値。"maxDate"は別名を指定した例になります。

実行するSOQL:Select MIN(CreatedDate), MAX(CreatedDate) maxDate, COUNT(CreatedDate) From Account
CSVファイルのヘッダ行:"expr0", "maxDate","expr1"


4.テキストエリア項目に改行が指定されている場合
CSVファイルでは、改行後の値は次の行に出力されます。
以下に示す例では、LMISでは2レコードですが、出力したCSVファイルでは改行されることにより4行(3行がデータ行)となります。

・レコードデータ

AAA

BBB

CCC

AAA

BBB

CCC

abc

あいう
えお

hij

efg

かきくけこ

klm

 

・CSVファイル
※下表の"行数"はCSVファイルには出力されません。

行数

結果

行数

結果

1(ヘッダ行)

"AAA","BBB","CCC"

2(データ行)

"abc","あいう

3(データ行)

えお","hij"

4(データ行)

"efg","かきくけこ","klm"

 

5.リレーションクエリが指定されている場合
リレーションクエリを使用したSOQLを使用した場合でも、CSVファイルのヘッダには、SOQLで指定した列名で出力されます。
※以下のSOQLでは"DDD.EEE"がリレーションクエリを表します。

実行するSOQL: Select AAA, BBB, DDD.EEE From OBJ
CSVファイルのヘッダ行: "AAA","BBB","DDD.EEE"


6.テキスト項目にダブルクォート(")および、カンマ(,)が入力されている場合
ダブルクォートは「"」→「""」にエスケープされ、カンマはダブルクォートに囲まれた値として出力されます。

・レコードデータ

AAA

BBB

AAA

BBB

ab"c

de,f

 

・CSVファイル
※下表の"行数"はCSVファイルには出力されません。

行数

結果

行数

結果

1(ヘッダ行)

"AAA","BBB"

2(データ行)

"ab""c","de,f"

 

7.サブクエリが指定されている場合
サブクエリを使用したSOQLを使用した場合でも、CSVファイルのヘッダには、SOQLで指定した列名で出力されます。
また、サブクエリは複数指定可能です。

例1:サブクエリの別名なし

実行するSOQL:Select ID, Name, (Select ID, Name From Contacts) From Account
CSVファイルのヘッダ行:"ID","Name","ID", "Name"

例2:サブクエリの別名あり

実行するSOQL:Select ID, Name, (Select cons.ID, cons.Name From Contacts cons) From Account
CSVファイルのヘッダ行:"ID","Name","cons.ID", "cons.Name"

注意事項


大量データまたは大容量ファイルを出力する場合、ヒープメモリやタイムアウト値などを変更する必要があります。
変更が必要となるメッセージは以下になります。

①実行ログに以下の内容が出力されている場合、ヒープメモリ値を変更する必要があります。

E30000007:OutOfMemoryが発生しました。ヒープサイズを増やし再度実施してください。
E30000003:SOQL実行結果解析に失敗しました。(原因=Java heap space)

 

ヒープメモリ変更方法
ヒープメモリ等の設定値は「dataExport.bat(.sh)」に記載されています。
下記に記載されているコメント(bat:rem、sh:#)を削除してご利用ください。

〇dataExport.bat
rem SET JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m

〇dataExport.sh
#JAVA_OPTS=${JAVA_OPTS} -Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m

 

なお、Javaのバージョンによって一部オプション名が変更となっております。下表をご参照ください。

Java 1.7

Java 1.8以降

Java 1.7

Java 1.8以降

-Xms

-Xms

-Xmx

-Xmx

-XX:PermSize

-XX:MetaspaceSize

-XX:MaxPermSize

-XX:MaxMetaspaceSize


②実行ログに以下の内容が出力されている場合、タイムアウト値を変更する必要があります。
 タイムアウト値の変更方法は「接続設定ファイル(config-connection.xml)」を参照してください。

E30000003:SOQL実行に失敗しました。(原因=Request to [Force.com URL] timed out. TimeTaken=60094 ConnectionTimeout=0 ReadTimeout=60000)

 

③実行ログに以下の内容が出力されている場合、取得条件などを変更し、取得するデータ量を減らす必要があります。

E30000003:SOQL実行に失敗しました。(原因=Salesforce APIから制限を超えるデータ量を受信しました。) 

参考情報