6.14 Import

以下にImport定義と定義例を示します。Importの詳細については「カスタムテーブルのレコードのインポート」を参照してください。

(表)Import定義

ラベル デフォルト値 必須 説明
apiVersion: Yes APIバージョン
1.0を指定する
kind: Yes importを指定する
type: No resourceを指定する
Ops Iの運用機能に追加する新しい定義であることを示す
name: Yes Import定義の内部名
nameは以下のルールに従う必要があります。
  • 本YAMLファイルのディレクトリ名を指定
  • 入力可能な文字は以下の通り
    • 半角英数字:
      a~z A~Z 0~9
    • 半角の特殊文字:
      _ . ( ) -
  • 先頭文字が半角英数字かアンダーバー(_)
  • その他の注意点は「YAMLファイル作成時の注意」2~4を参照
label: Yes YAMLファイルに記載する運用機能の表示名
description: No このYAMLファイルに対する詳細説明
includes: No このYAMLファイルで利用する関連YAMLファイルを記載
メモメモ
  • 記載するYAMLファイルはこのYAMLファイル登録前にOps Iに登録されている必要があります。
  • includesラベルを指定することにより、他のYAMLファイルで定義した内容を取り込むことができます。インポート先のカスタムテーブルを定義したDatamodelのYAMLファイルを指定します。
- kind: Yes 読み込むYAMLファイルの種類
  name: Yes 読み込むYAMLファイルの内部名
targetTable: Yes インポートするカスタムテーブルのテーブル名
入力可能な文字は以下の通り。
  • 半角英数字:
    a~z 0~9
  • 半角の特殊文字:
    _
先頭文字は半角英字(a~z)のみ指定可能。使用できる字数は、最大45文字。
columnMappings: Yes アップロードするCSVファイルとカスタムテーブルのカラムをマッピング
別のテーブルから継承する場合は、親テーブルのフィールドもここで定義する。カスタムテーブルのデフォルトの列については、id、created_on、updated_on、created_by、updated_by、sys_customerを指定できる。
- source: Yes アップロードするCSVファイルのカラム名
入力可能な文字は以下の通り。
  • 半角英数字:
    a~z 0~9
  • 半角の特殊文字:
    _
先頭文字は半角英字(a~z)のみ指定可能。使用できる字数は、最大63文字。
  target: Yes カスタムテーブルのカラム名
入力可能な文字は以下の通り。
  • 半角英数字:
    a~z 0~9
  • 半角の特殊文字:
    _
先頭文字は半角英字(a~z)のみ指定可能。使用できる字数は、最大63文字。
  coalesce: false No アップロードするCSVファイルのカラムの識別子の設定
レコードを更新するか新しく作成するかどうかを決定するために設定する。識別子に設定されたカラムで、CSVファイルと同じ値を持つレコードがカスタムテーブルにあった場合はそのレコードを更新し、なかった場合はカスタムテーブルに新しくレコードを作成する。
  • true:識別子である
  • false:識別子ではない
1つ以上のカラムにcoalesce:trueが指定されている必要がある。
  validation: No バリデーションチェックを設定
- format: No regexを指定する
  pattern: No バリデーションチェックの形式
例)
"^[A-Z0-9-]+$"
※入れ子関係にないラベルの必須が「No」の場合は、定義が必須ではありません。入れ子関係にあるラベルの場合は、下層ラベルの必須は、上層ラベルの必須が「Yes」である場合に適用されます。

<定義例>

apiVersion: 1.0
kind: import

## Meta data
type: resource
name: vm_import_definition
label: vm_import_definition
description: VM貸出台帳テーブルに対するインポート定義 /  Import definition for the VM lending ledger table

## datamodelをincludeする
## Include the datamodel manifest.

includes:
  - kind: datamodel
    name: rent_vm_datamodel

## テーブル名を指定する
## specify the table name

targetTable: rent_vm_table

## フィールドマッピング
## mappings for the fields

  columnMappings:
    - source: "number"
      target: "app_number"
      validation:
         format: regex
         pattern:  "^[A-Z0-9-]+$"

    - source: "name"
      target: "vm_name"
      coalesce: true

    - source: "start"
      target: "start_date"

    - source: "end"
      target: "end_date"