9.1.6 データファイルの作成
ここでは、jamimportコマンドでインポートする場合に作成するCSVファイル(データファイル)の記述形式および記述例について説明します。
データファイルを作成する際には、関連情報やIDなどの制御情報の、データの整合性に注意してください。
(1) データファイルの作成単位
データファイルは、インポートするクラスにつき1つ作成します。
アソシエーションクラスの場合は、異なるキー情報でオブジェクトクラス同士を関連づける場合にだけ、データファイルの作成が必要です。同一のキー情報でオブジェクトクラス同士を関連づける場合は、アソシエーションクラスをインポートする必要はありません。
オブジェクトクラス同士の関連づけの詳細については「10.1.3 アソシエーションの種類」を参照してください。
(2) データファイルの記述形式
データファイルの記述形式を次の図に示します。
次の項目に記述する内容について説明します。
-
項目タイトル行
-
オペレーションコード
-
キーとなるデータ
-
データ
(a) 項目タイトル行
項目タイトル行の最初は、必ず「OP」(オペレーションコード)を記述します。
そのあとに、各項目のタイトルとして、プロパティ名を記述します。項目タイトル行には、インポートするクラスのキーとなるプロパティを必ず記述してください。
アソシエーションクラスの場合は「クラス名.プロパティ名」の形式で記述します。オブジェクトクラス名とプロパティ名の間には、必ず「.」(ピリオド)を記述してください。クラス名およびプロパティ名については、「20. 管理情報の詳細」を参照してください。
インポートするクラスで項目タイトル行に記述しなかったプロパティがある場合、そのプロパティの値にはNULLデータが設定されます。
(b) オペレーションコード
テーブルに対する変更種別(追加・変更・削除・変更なし)を表す1文字を記述します。2文字以上記述しても、最初の文字だけで判断されます。
オペレーションコードとして使用する文字とその意味を次の表に示します。
オペレーションコード |
意味 |
説明 |
---|---|---|
A |
追加 |
データファイルに記述した行の内容が追加されます。 クラスのプロパティに値を記述していない場合、そのプロパティにはNULLデータが追加されます。 |
C |
変更 |
データファイルに記述した行の内容に変更されます。項目タイトル行に記述したすべてのプロパティが変更の対象となります。 クラスのプロパティに値を記述していない場合、そのプロパティにはNULLデータが追加されます。 |
D |
削除 |
データファイルに記述したクラスと、そのクラスに関連するプロパティの値が削除されます。 |
N |
変更なし |
オペレーションコードが「N」の行は変更なしとして扱い、インポートしません。 |
R |
コメント |
コメント行として扱い、インポートしません。 |
アソシエーションクラスのインポートの場合は、「追加(A)」と「削除(D)」だけが使用できます。変更したいときは、データファイルに削除の行を記述し、そのあとに追加の行を記述してください。
(c) キーとなるデータ
処理対象とするクラスを決定するためのキーとなるデータを記述します。必ず値を記述してください。
オブジェクトクラスの場合は「プロパティ名」、アソシエーションクラスの場合は「オブジェクトクラス名.プロパティ名」の形式で記述します。
データを変更または削除する行は、キーとなるデータを基に決定されます。したがって、エクスポートしたデータを修正してインポートする場合は、キーとなるデータを変更しないでください。
(d) データ
インポートするクラスのプロパティの値を記述します。
オブジェクトクラスの場合は「プロパティ名」、アソシエーションクラスの場合は「オブジェクトクラス名.プロパティ名」の形式で記述します。
データには、オブジェクトクラス内のすべてのプロパティを記述する必要はありません。資産データとして必要な項目だけを記述してください。また、各プロパティの値は、記述形式および制限値に従って正しく記述してください。各プロパティの記述形式および制限値については、「20. 管理情報の詳細」を参照してください。
なお、あるプロパティの値以降に値を設定しない場合は、値を設定したプロパティの直後で改行することで、値の設定を省略できます。このとき、改行後のプロパティの値にはNULLデータがインポートされます。
- プロパティの値を記述する際の注意事項
-
プロパティの値には、資産情報の「資産種別」のように、コードで記述するものがあります。コードで記述する必要があるプロパティとコードの詳細については、「20.2 オブジェクトクラスのプロパティ一覧」を参照してください。
(3) データファイルの記述例(オブジェクトクラス)
オブジェクトクラスをインポートする場合のデータファイルの記述例について説明します。
オブジェクトクラス「AssetInfo(資産情報)」のデータをインポートする記述例を次の図に示します。「AssetInfo」のキーは「AssetID(資産ID)」です。
この記述例では、次のように資産管理データベースが更新されます。
-
資産ID「1」の機器が、記述した項目タイトル行に記述したプロパティの値で追加されます。
-
資産ID「2」の機器の情報が、項目タイトル行に記述したプロパティの値ですべて変更されます。
-
資産ID「3」の機器の情報がすべて削除されます。
また、資産ID「3」の機器とWeakアソシエーションの関係にあるハードウェア資産情報、ネットワーク情報などの情報もすべて削除されます。
(4) データファイルの記述例(アソシエーションクラス)
アソシエーションクラスの追加、削除は、データファイルのオペレーションコード「追加(A)」と「削除(D)」を使用して記述してください。「変更(C)」は使用できません。
アソシエーションクラス「ContractMaintenanceLink(保守契約と資産情報)」のデータをインポートする場合の、データファイルの記述例を次の図に示します。「ContractMaintenanceLink」のキーは「AssetID(資産ID)」と「ContractID(契約ID)」です。
関係を持つオブジェクトクラス「AssetInfo(資産情報)」のキーとなるデータ「AssetID」を記述します。同じ行に、関係を持つもう一方のオブジェクトクラス「Contract(契約情報)」のキーとなるデータ「ContractID」を記述します。
この記述例では、次のように資産情報が更新されます。
-
資産IDが「1」の資産が契約ID「123456」の対象に追加されます。
-
資産IDが「2」の資産が契約ID「000123」から契約ID「123456」の対象に変更されます。