JUST.DB コマンドラインツール ③-アップロード編

前章からの続きとなり、今回はCLIを使用したデータのアップロードの方法をご紹介します。
前章:https://www.fsz.co.jp/?fszblog=just-db-%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%83%a9%e3%82%a4%e3%83%b3%e3%83%84%e3%83%bc%e3%83%ab-%e2%91%a1-%e3%83%80%e3%82%a6%e3%83%b3%e3%83%ad%e3%83%bc%e3%83%89%e7%b7%a8

まず、データのアップロードにおけるコマンドは以下となります。

jsfa_recordupload -t [tenant] -u [user] -s [settings] -f [csvfile]
[tenant] :JUST.DBのテナント名(https://テナント名.just-db.com/sites/)
[user] :JUST.DBへの接続に使用するユーザーのログインID
[settings]:アップロード用の設定ファイル(※1)
[csvfile] :レコード情報ファイルの保存先ファイル名のフルパス

オプション:-m [mode] -e [encode] -l [logfile]
[mode]:skip か stopを選択出来ます。(デフォルトはskip)
skip:その行をスキップして、最後の行まで取り込む
stop:取り込めない行があった時点で中止する
[encode]:utf-8、utf-8-bom、shift-jisを選択出来ます。
[logfile]:ログファイルの出力先を指定出来ます。(デフォルトは%USERPROFILE%\AppData\Local\jsfa\log)

※1:アップロードの設定ファイルのテンプレートは以下となります。(エディタに貼り付けをして、*.settingとして保存してください)

# パネル識別名
#
# 設定値: インポート対象のパネルの識別名
# デフォルト値: なし(必須)
panelName = panel_0000000001

# 取込方法
#
# 設定値: CSVの取り込み方法を設定
#         0: 単純追加
#         1: 差分更新(フラグあり)
#         2: 差分更新(フラグなし)
#         3: 削除
#         4: 全削除
# デフォルト値: 0
importType = 1

# 識別名記載ヘッダー行
#
# 設定値: CSV内の識別名を記載したヘッダー行
# デフォルト値: 2
headerRow = 2

# レコード開始行
#
# 設定値: CSV内のレコードの取り込み開始行
# デフォルト値: headerRow+1
recordRow = 3

# キーフィールド識別名
#
# 設定値: キーフィールドとして指定するフィールドの識別名(複数指定可、カンマ区切り)
#        取込方法が単純追加、全削除の場合は設定不要
# デフォルト値: なし
keyFieldNames = field_0000000001

# 明細内キーフィールド識別名
#
# 設定値: 明細内キーフィールドとして指定するフィールドの識別名(複数指定可、カンマ区切り)
#        キーフィールドが指定されず、明細内キーフィールドのみ指定された場合エラーとする。
#        取込方法が単純追加、全削除の場合は設定不要
# デフォルト値: なし
#detailKeyFieldNames = field_0000000002,field_0000000003

# 差分更新判定用フィールド識別名
#
# 設定値: 差分更新判定用フィールドとして指定する日付または数値型フィールドの識別名
#        取込方法が単純追加、全削除の場合は設定不要
# デフォルト値: なし
#updateCheckFieldName = field_0000000004

# 通知
#
# 設定値: 処理完了後の通知方法を設定する
#         0: 通知メッセージなし
#         1: 正常終了を通知
#         2: エラー終了を通知
#         3: 正常終了・エラー終了を通知
# デフォルト値: 0
notification = 3

# 通知メール有無
#
# 設定値: 通知メールの送信有無を設定する。
#        通知が「0: 通知メッセージなし」の場合はメール送信を行わない。
#         true: 送信する
#         false: 送信しない
# デフォルト値: なし
notificationMail = false

# 制御文字の変換処理有無
#
# 設定値: 制御文字を変換する処理の有無を設定する。
#        文字列(1行)/文字列(複数行)/リッチテキストの値に
#        制御文字が含まれていた場合、空白(半角)に変換してインポートする   
#         true: 変換する
#         false: 変換しない
# デフォルト値: 変換しない
replaceControlCodes = false

# 終了コード拡張の有無
## 設定値: 取込み失敗レコードの有無を終了コードに反映するか設定する。
#          true: 取込みに失敗したレコードがある場合に終了コード80、ない場合終了コード0を返す
#          false: 取込みに失敗したレコードの有無にかかわらず終了コード0を返す
# デフォルト値: false
extendedExitCode = true

上記をファイルで保存後、必須で変更するパラメータ部分は以下となります。
panelName:パネルの識別名
importType :取込方法
keyFieldNames:キー項目
〇panelName


〇importType

0:単純追加
1:差分更新(フラグあり)
先頭のフィールドに差分更新方法を指定している場合に選択します。
差分更新方法は、ファイルの各行の先頭フィールドに半角の+、-、空白を使って指定します。
+を指定した場合:
後述の[keyFieldNames]で指定した項目の値が存在すればエラー、存在しなければ追加します。
-を指定した場合:
後述の[keyFieldNames]で指定した項目の値が存在すれば削除します。存在しなければ何もしません。
空白の場合:
後述の[keyFieldNames]で指定した項目の値が存在すれば更新、存在しなければエラーになります。
2:差分更新(フラグなし)
後述の[keyFieldNames]で指定した項目の値が存在すれば更新、存在しなければ追加します。
3:削除
4:全削除

〇keyFieldNames(単純追加、全削除の場合は不要)

他のパラメータについては必要に応じて変更してください。

これにてアップロードの準備が整いましたので、さっそくコマンドを使用してみましょう!

今回の例では差分更新(フラグなし)にてアップロードを行います
実行前

実行後

データのアップロードが出来ました!
なお、ダウンロード同様にコマンドは1パネル毎となりますので、複数のデータダウンロードするときは複数のコマンドと複数の設定ファイルを用意する必要があります。

この章にてCLIのご紹介は以上となります
もしCLIについて他にも興味があればヘルプページから詳細が記載されていますので、是非確認してください!