JSON インポート

このインポート タイプでは、JSON ファイルを使用してアセットにオブジェクトがインポートされます。インポートの詳細をご確認ください。

インポートを作成、設定、有効化するには、ユーザーがオブジェクト スキーマのアセット マネージャーである必要があります。

次のセクションにジャンプ:

はじめる前に

JSON ファイルをインポートするには、以下のことについても把握しておく必要があります。

  • アセットにインポートする JSON ファイルは、JSON 標準に従っている必要があります。

  • JSON ファイルのサイズの上限は 10 MB です。

さらに、セレクターを使用しても、使用しなくてもオブジェクト タイプ マッピングを作成できますが、これは JSON ファイルの構造によって異なります。セレクターを使用する場合は、[Attribute.*[Attribute] という形式にする必要があります。

セレクターを使用してオブジェクト タイプ マッピングを作成する

オブジェクト タイプが 2 つ以上ある場合は、セレクターを使用する必要があります。

この例で使用されているオブジェクト タイプは、LocationServer の 2 つです。Location という属性もあり、そのタイプは Object で、Location オブジェクト タイプへのアウトバウンド参照を行います。

{
        "Location": [
            {
                "Name": "Amsterdam"
            },
            {
                "Name": "London"
            },
            {
                "Name": "Madrid"
            }
        ],
        "Servers": [
            {
                "Location": "Amsterdam",
                "Name": "Server1"
            },
            {
                "Location": "London",
                "Name": "Server2"
            },
            {
                "Location": "London",
                "Name": "Server3"
            }
        ]
    }


セレクターを使用せずにオブジェクト タイプ マッピングを作成する

オブジェクト タイプが 1 つしかない場合は、セレクターを使用しなくても構いません。

この例では members という属性が使用されており、そのタイプは Object で、オブジェクト自体への参照を行います。

[
    {
        "members": [],
        "name": "group1"
    },
    {
        "members": [],
        "name": "group2"
    },
    {
        "members": [
            "group2"
        ],
        "name": "group3"
    }
]


JSON ファイルのインポート

テスト目的で、次の JSON ファイルのサンプルを使用できます。このファイルを使用すると、マッピングを含む 3 つのオブジェクト タイプを作成し、オブジェクト参照を行うことができますこのファイルには、生地やトッピングなど、ケーキに関する情報が含まれています。

{
	"id": "0001",
	"type": "donut",
	"name": "Cake",
	"ppu": 0.55,
	"batters":
		{
			"batter":
				[
					{ "id": "1001", "type": "Regular" },
					{ "id": "1002", "type": "Chocolate" },
					{ "id": "1003", "type": "Blueberry" },
					{ "id": "1004", "type": "Devil's Food" }
				]
		},
	"topping":
		[
			{ "id": "5001", "type": "None" },
			{ "id": "5002", "type": "Glazed" },
			{ "id": "5005", "type": "Sugar" },
			{ "id": "5007", "type": "Powdered Sugar" },
			{ "id": "5006", "type": "Chocolate with Sprinkles" },
			{ "id": "5003", "type": "Chocolate" },
			{ "id": "5004", "type": "Maple" }
		]
}

「Name」属性をラベルとして選択すると、「Blueberry」、「Chocolate」、「Devil’s Food」、「Mail Server」の 4 つのオブジェクトが作成されます。その結果、次のような構成になります。

インポートされた JSON ファイルの設定例

インポート構造を作成するには、次の手順に従います。
  1. サービス プロジェクトから、[アセット] > [オブジェクト スキーマ] の順に移動します。

  2. [オブジェクト スキーマ] リストから [ その他のアクション] > [構成] の順に選択します。
    オブジェクト スキーマ ウィンドウを構成する

  3. スキーマ構成ビューで [インポート] タブを開きます。

  4. [インポート] タブで、次の手順に従います。

    • インポート構造がない場合は、「インポート接続はまだありません」というメッセージが表示されます。新しいインポート構造を作成するには、[インポート設定を作成] を選択します。

    • インポート構造が作成済みである場合は、[設定を作成] を選択します。
      インポート構成ウィンドウを作成する

  5. Select the import method you wish to use, then select Next.

  6. [一般]、[モジュール]、[スケジュール] の各インポート フィールドに入力します。
    インポート構成の一般的なフィールド

一般フィールド

次は、すべてのインポート タイプに共通する一般的なフィールドです。

名前

説明

名前インポートの名前。
説明 参考用の説明。
連結子

既定の連結子を指定できます。複数のデータ ロケーターを結合して 1 つのアセット属性を作成すると、これが既定の連結子となります。たとえば、"姓" と "名" のような 2 つの列を 1 つの属性に結合できます。つまり、"Mathias" (名) と "Edblom" (姓) は、連結子である \s によって "Mathias Edblom" として連結されます。

スペースの連結には \s を入力します。連結文字を含めるには、その値を二重引用符で囲みます ("\s")。

空の値

データ ロケーターが空である場合の処理は、次のように定義されます。

  • 無視 - オブジェクト内の既存の値は保持され、空の値で上書きされません。

  • 削除 - オブジェクトの既存の値が削除され、空のフィールド値に置き換えられます。

データ ロケーターが不明である場合の処理を定義しましょう。これは、"ステータス" や "選択" などの属性タイプで発生する可能性があります。 

  • 無視 - CSV の値は無視され、オブジェクト属性は空のままになります。

  • 追加 - CSV ファイルで渡された値がリストに追加され、オブジェクト属性が新しい値で更新されます。

インポート ソースの日付フィールドを Insight の日付に変換する際の形式。空のままにすると、Insight で正しい形式が自動で検索されます。
この形式は、Java の SimpleDateFormat のガイドラインに従って指定する必要があります。

インポート ソースの日付/時刻フィールドを Insight の日付に変換する際の形式。空のままにすると、Assets で正しい形式が自動で検索されます。
この形式は、Java の SimpleDateFormat のガイドラインに従って指定する必要があります。

モジュール フィールド

これらのフィールドはインポート タイプ (モジュール) に固有です。

設定

説明

インポート元ファイルまたは URL を選択します。
  • URL

外部 JSON ファイルを検索する場所のプロトコル、ホスト名、ポート。例: http(s)://example.com/rest/api/service 

  • ファイル

アップロードするファイルを選択します。

ユーザ名

基本認証のオプション ユーザー名。

パスワード

基本認証で使用するオプションのパスワード。

エンコードファイルで使用されているエンコーディング。

スケジュール フィールド

スケジュール フィールドは、データの同期を維持するために使用されます。

名前説明
同期アカウント

データをアセットに同期する際に使用する Jira ユーザー。

LDAP およびデータベースのインポートでは、同期に使用するアカウントに Jira 管理者権限が必要です。

cron 式自動同期の間隔。
自動同期インポートを自動で同期するようにスケジュールする場合。cron 式について調べる
通知インポートが失敗したときにすべてのオブジェクト スキーマ マネージャーに通知するには、チェックボックスを選択してください。 

7. [インポート設定を保存] を選択します。

次に、JSON ファイル用の定義済みの構造と設定を作成できます。

事前定義済みの構造と設定

次のステップでは、定義済みの構造と構成を手動で作成することも、アセットで自動的に作成することもできます。このプロセスを自動化するには、以下を選択してください。
  • 定義済みの構造を作成する – これにより、スキーマに属性と関係を持つオブジェクト タイプが作成されます。

  • 定義済みの構成を作成する – これにより、インポート構成にタイプ マッピングが作成されます。

定義済みの構造と構成を作成する

JSON のインポートの場合、定義済みの構造と設定は、設定に存在する JSON ファイルまたは URL に基づいて作成されます。初期設定では、一部のオブジェクト タイプ マッピングが無効になっている可能性があります。すべてのオブジェクト タイプ マッピングが有効になっていることを確認してください。


作成されたインポート設定

これでインポート設定を表示できるようになりましたが、まだ準備が完了していません。引き続き、オブジェクト タイプと属性のマッピングを作成または確認して、インポート設定に問題がないことを確実にする必要があります。

準備できたら「2. オブジェクト タイプと属性マッピングを作成する」に進みます。

最後に一言

次のステップでは、オブジェクト タイプと属性マッピングを作成します。JSON インポート タイプに固有の設定をいくつか紹介します。

オブジェクト タイプ マッピングの設定

名前

説明

セレクター

JSON インポートのセレクター。 

[Attribute.*[Attribute]] を使用する

例:

  • 「items」
  • "items.item"
  • "json.data.systems"

JSON 配列のみがセレクターとして有効です。

属性マッピングの設定

名前

説明

attribute1[*].attribite2[*]..

指定されるデータ ロケーターは、JSON と設定されているセレクターによって異なります。

既知の制限事項

  • 現在、JSON インポートでは、URL を使用して JSON ファイルをインポートする際の認証に OAuth トークンまたは API トークンを使用することはできません。ベーシック認証のみがサポートされています。回避策として、JSON ファイルを Jira のホストに保存して、ファイルを再度インポートすることができます。この方法は認証の問題を回避するために使用できますが、外部ソースからの自動的かつスケジュールされたインポートには対応していません外部ソースからの直接のスケジュール インポートを自動化するには、新しい JSON 出力を同じファイル名で保存し、古いバージョンを日付とタイムスタンプを付けてアーカイブします。これにより、スケジュールされたファイル アップロード インポートが可能になりますが、毎回正しいファイルがインポートされるように、慎重なファイル管理が必要です。
  • Jira Service Management 10.3 以降、file:// URL のインポートは既定では無効化されています。CSV と JSON のインポート モジュールではこのプロトコルは検証されず、ローカル ファイルやディレクトリへの不正アクセスが発生する可能性があります。それでも file:// プロトコルを使用する必要がある場合は、assets.import.configuration.url.file.protocol.enabled システム プロパティを設定してください。CSV と JSON のインポート権限を信頼できるユーザーに制限し、不審なアクティビティを監視することをお勧めします。このように制限しても、モジュール自体では不正なファイル アクセスを防止できないため、安全な操作を手動で確認する必要があります。

最終更新日: 2024 年 12 月 30 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.