> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cognite.com/llms.txt
> Use this file to discover all available pages before exploring further.

# アクティビティをメンテインにインポートする

> ユーザーインターフェース（APMモード）、Cognite Toolkit、またはTransformationsを使用してアクティビティをインポートする方法を学びます。

メンテインは、アクティビティをインポートするための3つの方法をサポートしています：

* **CSVアップロード**：ユーザーインターフェース（APMモードのみ）を使用してアクティビティをインポートします。
* **Cognite Toolkit**：[Cognite Toolkit](/cdf/deploy/cdf_toolkit/)データモデリング（APMおよびIDM/CDMモード）を使用してアクティビティを取り込みます。
* **Transformations**：RAWテーブルまたは他のソースからデータを変換するには、[CDF Transformations](/cdf/integration/)（APMおよびIDM/CDMモード）を使用します。

## CSVアップロードを介してインポート（APMモード）

<Info>
  **モードの利用可能性**：APMモードのみ。IDM/CDMモードは、ユーザーインターフェースでのCSVインポートをサポートしていません。
</Info>

CSV経由でインポートされたアクティビティは、メンテインで作成されたアクティビティとして視覚化および修正できます。

<Steps>
  <Step title="CSV ファイル テンプレートをダウンロードする">
    インポートされたCSVファイルは、プロジェクト固有のテンプレートに準拠する必要があります。**maintain-import-template.csv**のダウンロードは以下の手順で行います。

    1. **アクティビティ**に移動して**アクティビティの追加**を選択します。
    2. **アクティビティのインポート**を選択します。
    3. **テンプレートをダウンロード**を選択します。
  </Step>

  <Step title="CSV ファイル テンプレートに値を入力する">
    CSV テンプレートには、インポートされるアクティビティに提供できる値を表す単一の行のみが含まれます。この行はヘッダー行と呼ばれ、テンプレートに入力する際に削除しないようにしてください。

    <Tip>
      ヘッダー**行**は削除してはいけませんが、ヘッダーから特定の値を削除したり、値の順序を変更したりすることはできます。たとえば、特定のシナリオでインポートが不要なフィールドがある場合、そのフィールドをヘッダーおよびその後の行から削除することができます。これにより、インポートされたすべてのアクティビティでそのフィールドが空白のままになります。
    </Tip>

    1 つのアクティビティをインポートするには、テンプレートに新しい行を追加し、カンマで区切られた適切な値を入力します。新しい行の各値には、テンプレートで指定されたそれぞれのヘッダー行に入力したい値を含める必要があります。
    例えば、テンプレートに次のヘッダー行が含まれている場合：`タイトル、ステータス、部門`、追加の行を持つCSVファイルを作成します：

    ```
    タイトル、ステータス、部門
    足場を設置、完了、リギング
    ```

    インポートすると、「Erect scaffolding」というタイトル、「完了」というステータス、「Rigging」という部門のアクティビティが作成されます。

    <a id="format-date-fields" />

    ### 日付フィールドをフォーマットする

    **メンテイン**の一部のアクティビティフィールドは日付を表し、正しくインポートするためには特定の形式を持つ必要があります。CSVテンプレートの日時フィールドは、`startTime (DD/MM/YYYY)`という特別なヘッダー値によって識別できます。この例では、`startTime`がフィールドの名前であり、`DD/MM/YYYY`がCSVファイルの後続の行で使用する必要がある日付形式です。
    例えば、次のファイルをインポートすると、活動が`startTime`を2023年12月10日に設定して作成されます。

    ```
    title,startTime (DD/MM/YYYY)
    足場を設置する,10/12/2023
    ```

    <a id="format-boolean-fields" />

    ### ブール値フィールドのフォーマット

    **Maintain**の一部の活動フィールドは、`true`や`false`のようなブール値を表します。ブールフィールドは、CSVテンプレートの`isActive (true/false)`という特別なヘッダー値によって識別できます。これらのフィールドには、`true`または`false`の2つの有効な値しかありません。
    例えば、次のファイルをインポートすると、活動が`isActive`を`false`に設定して作成されます。

    ```
    title,isActive (true/false)
    足場を設置する,false
    ```

    <a id="format-values-containing-commas" />

    ### カンマを含む値のフォーマット

    CSV形式は値をカンマで区切るため、活動フィールドにもカンマが含まれる必要がある場合は注意してください。**Maintain**は、[RFC 4180標準](https://www.rfc-editor.org/rfc/rfc4180)に従ってCSVファイルを処理し、カンマを含む値は二重引用符で囲む必要があります。
    例えば、次のファイルをインポートすると、活動が`city`を`Boston, MA`に設定して作成されます。

    ```
    title,city
    足場を設置する,"Boston, MA"
    ```

    <a id="unset-values" />

    ### 未設定の値

    必須でないアクティビティ フィールドでは、その特定のアクティビティに対して欠落しているか関連性のない値を表すためにフィールドを空白のままにしておくことができます。
    例えば、次のファイルをインポートすると、活動が`state`を`New York`に設定して作成されますが、`city`フィールドには値がありません。

    ```
    title,city,state
    足場を設置する,New York
    ```

    <a id="connect-an-activity-to-an-asset" />

    ### アクティビティをアセットに接続する

    **Maintain**は、活動をCDF資産にリンクすることをサポートしており、これは活動を3Dモデル、文書、PSNなどで文脈化するために使用されます。**Maintain**がCDF内の資産への適切なリンクを作成するには、インポートテンプレートにCDF資産の外部IDを提供する必要があります。
    プロジェクトに資産の文脈化がある場合、活動の資産の外部IDで埋める必要がある特別な`assetExternalId`フィールドがテンプレートに存在します。
    例えば、次のファイルをインポートし、外部IDが`NY_BUILDING_23`のCDF資産が存在すると仮定すると、活動はMaintainに取り込まれるときにこの資産に文脈化されます。

    ```
    title,assetExternalId
    Erect scaffolding,NY_BUILDING_23
    ```

    提供された外部 ID がエクスポートされない場合は、インポート中にユーザーの画面にエラーが表示されます。

    <Tip>
      エンドユーザーは、アクティビティがリンクされている資産の外部IDを知らない場合があります。エンドユーザーに可能な資産とその外部IDのリストを提供する必要がある場合は、CDFの[資産API](/api-reference/concepts/20230101/assets)または他のデータ抽出ツールを使用してこのデータを取得することをお勧めします。
    </Tip>
  </Step>

  <Step title="データが入力された CSV ファイルをインポートする">
    CSVテンプレートが入力されたら、それを**メンテナンス**にインポートできます。

    1. **アクティビティ** > **アクティビティの追加**に移動します。
    2. **アクティビティのインポート**を選択します。
    3. **インポートする CSV ファイルをクリックして選択します**フィールドを選択します。
    4. データが入力された CSV ファイルをコンピューターから選択してアップロードします。
    5. **ファイル インスペクター**セクションで、ファイルがインポートされたことを確認します。緑色のメッセージが表示され、インポートされる行数と、警告やエラーがあるかどうかが示されます。
    6. エラーがなければ、**インポート**を選択してインポート処理を開始します。
    7. インポートが成功すると、**アクティビティを表示**ボタンとともに緑色の成功メッセージが表示されます。
    8. オプション。**アクティビティを表示**を選択して、インポートされたアクティビティに移動し、CSVファイルに従って正しく表示されていることを確認します。
  </Step>
</Steps>

## Cognite Toolkitを介してインポート

<Info>
  **モードの利用可能性**：APMおよびIDM/CDMモード。これは、プログラムによるアクティビティの取り込みに推奨されるアプローチです。
</Info>

[Cognite Toolkit](/cdf/deploy/cdf_toolkit/)を使用して、CDFのデータモデリング機能を通じてアクティビティを取り込みます。この方法は、両方のデプロイメントモードで機能し、バージョン管理と再現可能なデプロイメントを提供します。

### 前提条件

Cognite Toolkitを介してアクティビティをインポートする前に、次のことを確認してください：

* データモデルスペースにカスタムアクティビティビューが設定されていること（または`CogniteMaintenanceOrder`の標準ビューを使用すること）。
* アクティビティビューが`viewMappings`のメンテナンス設定にマッピングされていること。
* [Cognite Toolkit](/cdf/deploy/cdf_toolkit/)へのアクセス

### アクティビティビューのマッピングを設定する

メンテナンス設定で、`viewMappings`セクションがアクティビティビューを指していることを確認します：

```json theme={"languages":{"custom":["/_languages/kuiper.json","../_languages/kuiper.json"]}}
{
  "viewMappings": {
    "activity": {
      "type": "view",
      "space": "cdf_idm",
      "version": "v1",
      "externalId": "CogniteMaintenanceOrder"
    }
  }
}
```

カスタムアクティビティビュー（例えば、`APM_Activity`または`ExtendedActivity`）を作成した場合は、マッピングを更新してカスタムビューを指すようにします：

```json theme={"languages":{"custom":["/_languages/kuiper.json","../_languages/kuiper.json"]}}
{
  "viewMappings": {
    "activity": {
      "type": "view",
      "space": "maintain_schema_extention",
      "version": "v1",
      "externalId": "APM_Activity"
    }
  }
}
```

[データモデルの拡張](/cdf/maintain/guides/config#extend-data-models)と[ビューマッピングの設定](/cdf/maintain/guides/config#view-mappings)について詳しく学びましょう。

### Cognite Toolkitを使用してアクティビティを取り込みます。

IDMモードでアクティビティを取り込むための推奨アプローチとして、[Cognite Toolkit](/cdf/deploy/cdf_toolkit/)を使用してください。

<Steps>
  <Step title="アクティビティデータ構造を作成する">
    まだ作成していない場合は、アクティビティ用のコンテナ、ビュー、およびノードのYAMLファイルを作成してください。標準のデータモデリング構造に従ってください：

    * `APM_Activity.Container.yaml` - コンテナスキーマを定義します。
    * `APM_Activity.View.yaml` - ビューのプロパティと関係を定義します。
    * `apmActivities.Node.yaml` - アクティビティインスタンスを含みます。
      詳細な例とテンプレートについては、[Cognite Toolkitのドキュメント](/cdf/deploy/cdf_toolkit/)を参照してください。
  </Step>

  <Step title="フィールドマッピングを設定する">
    アクティビティノードにMaintainの必須フィールドが含まれていることを確認してください：

    | フィールド             | 説明                                 | 必須 |
    | ----------------- | ---------------------------------- | -- |
    | `externalId`      | アクティビティの一意の識別子                     | はい |
    | `title`           | アクティビティのタイトル                       | はい |
    | `status`          | アクティビティのステータス（例："オープン"、"進行中"、"完了"） | 推奨 |
    | `startTime`       | 開始日/時刻                             | 推奨 |
    | `endTime`         | 終了日/時刻                             | 推奨 |
    | `rootLocation`    | ルートロケーション識別子                       | 推奨 |
    | `assetExternalId` | リンクされた資産の外部ID                      | 任意 |
    | `mainAsset`       | 資産との直接的な関係                         | 任意 |

    <Tip>
      Maintainの[フィールド設定](/cdf/maintain/guides/config#field-configuration)に基づいて追加のフィールドを含めてください。
    </Tip>
  </Step>

  <Step title="アクティビティを展開する">
    Cognite Toolkitを使用してアクティビティデータをデプロイします：
    `bash cdf deploy --env dev `
    既存のアクティビティを置き換える必要がある場合は、`--drop-data`フラグを使用してください：
    `bash cdf deploy --env dev --drop-data `
    [Cognite Toolkitのデプロイフラグ](/cdf/maintain/guides/config#critical-deployment-flags)について詳しく学びましょう。
  </Step>

  <Step title="メンテナンスで確認する">
    1.[Maintain](https://maintain.cogniteapp.com)にサインインします。2.**アクティビティ**に移動します。3.インポートしたアクティビティが正しいデータで表示されることを確認してください。
  </Step>
</Steps>

### 変換を伴う取り込み活動

<Info>
  **モードの利用可能性**：APMおよびIDM/CDMモード。これはバルクデータに推奨されるアプローチです。
</Info>

代わりに、[CDF Transformations](/cdf/integration/)を使用して、RAWテーブルや他のソースからデータを活動ノードに変換できます。

### トラブルシューティング

取り込み後に活動に問題が発生した場合は、原因と修正の表を参照してください。

| 問題            | 解決策                                                         |
| ------------- | ----------------------------------------------------------- |
| 活動が表示されない     | `viewMappings`の設定が正しいスペース、ビュー、およびバージョンを指していることを確認してください     |
| 欠落しているフィールド   | 取り込んでいるすべてのフィールドがフィールド設定に含まれていることを確認してください                  |
| アセットリンクが壊れている | `assetExternalId`または`mainAsset`の関係が既存のアセットを指していることを確認してください |
| 誤ったルート位置      | `rootLocation`があなたの位置設定と一致していることを確認してください                   |
