非従量制サブスクリプションを使用してレガシー・クラウド・インフラストラクチャ上でOracle Content Managementインスタンスを実行している場合、これらのインスタンスを新しいネイティブOracle Cloud Infrastructure (OCI)環境(第2世代のOCI)に移行する(つまり、Infrastructureコンソールを使用してサービス・インスタンスを管理する)ことをお薦めします。これにより、Oracleのクラウド・プラットフォームの利点と先進機能を将来にわたって活用できるようになります。
移行を開始するには、移行の前にいくつかの手順を実行し、Oracle Supportを操作して移行をスケジュールする必要があります。
この表は、Oracle Content Managementの権限グループからOCIアプリケーション・ロールへのマッピングを示しています。
| Oracle Content Management権限グループ | OCIアプリケーション・ロール | 
|---|---|
| DocumentsServiceUser | CECStandardUser | 
| DocumentsServiceAdmin | CECServiceAdministrator | 
| SitesServiceVisitor | CECSitesVisitor | 
| SitesServiceAdmin | CECSitesAdministrator | 
| ContentAdministratorRole | CECContentAdministrator | 
| CECSStandardUser | CECStandardUser | 
| CECSEnterpriseUser | CECEnterpriseUser | 
注:
ターゲットIDCSドメインに同じユーザー名を持つユーザーが含まれる場合、ユーザーには、ユーザーのOracle Content Management権限グループに対応するOCIアプリケーション・ロールが割り当てられます。移行の準備が整ったら、移行リクエストを送信してプロセスを開始する必要があります:
Oracleサポートが移行サービス・リクエストを受信すると、リクエストされた日付に基づいて移行をスケジュールします。サービス・リクエストは移行の開始日時で更新されます。
サービス・リクエストが更新されて移行の進行状況が示されます。データの移行はバックエンドで行われます。サービス・リクエストの更新を随時確認することと、移行終了後に移行を検証することを除き、お客様側でのアクションは不要です。
移行中に行われる処理を次に示します:
重要:
この時点で、古い(ソース)インスタンスに変更を加えることはできなくなります。移行開始後に加えた変更は新しいインスタンスに移行されません。古いインスタンスが他のサービスやアプリケーションと直接またはREST APIコールを通じて統合されていたか、通信していた場合、移行後のタスクを実行する必要があることがあります。
次の項目はサービス全体に適用されます:
古いURLでは次のパターンが使用されていました:
https://<service-name>-<account-name>.<region>.oraclecloud.com/documents
新しいURLでは次のパターンが使用されます:
https://<service-name>-<account-name>.<service-type>.ocp.oraclecloud.com/documents
| 統合 | 移行後の作業 | 
|---|---|
| Oracle Integration | 
 | 
| Oracle Commerce Cloud | 
 | 
| Oracle Process Cloud Service | 
 | 
| Oracle Eloqua Cloud Service | 
 | 
| Oracle Intelligent Advisor | 
 | 
| Oracle Cobrowse Cloud Service | 
 | 
| Responsys | 
 | 
| Visual Builder Cloud Service (VBCS) | 
 | 
| CDN/Akamai | 
 | 
| REST APIコール | 
 | 
| クライアントSDK/CLIの使用方法 | 
 | 
| コネクタ | 
 | 
注:
新しいインスタンスのURLが変更されたため、古いインスタンスのコンテンツへのブックマークは機能しなくなります。アセットが含まれないサイトは自動的に移行されますが、アセットが含まれるサイトの場合、新しいOracle Content Managementインスタンスで機能させるには、いくつかの追加手順が必要です。
「cec migrate-site」コマンドは新しいため、OCEツールキットを以前にダウンロードしてインストールしたことがある場合でも、WebクライアントのGitリポジトリからこのツールキットをインストールする必要があります。
サイト・ツールキット・ページの指示に従ってOCEツールキットをダウンロードしてインストールします。
ターゲット・サーバー(サイトの移行先のサーバー)に関する接続詳細を登録します:
> cec register-server <target_server_name>
          -e http://<target_server>:<target_port>
          -u <target_username> -p <target_password>
          -t pod_ec
サイトを移行するには、次の手順を実行します:
<site_name>は、ターゲット・サーバーでサイトに使用する名前に置き換えます:
> cec migrate-site <site_name> --template <template_path_and_name> --destination <registered_target_server_name> --repository <repository_name>
サイトを移行した後、サイトはコンテンツREST v1.1コールを使用して動作します。これにより、サイトが適切に動作する前に解決する必要がある問題が生じる可能性があります。次の各事項を参照し、何を実行する必要があるのか確認してください:
サイトが適切に動作するようになったら、サイトをMLSに準拠させる必要があります。外部計算サーバーでエンタープライズ・サイトを作成する必要がある場合、デフォルトの言語とローカライゼーション・ポリシーが必要です。サイトはコピーされたものであるため、非MLSサイトです。このため、MLSサイトにアップグレードし、将来の機能をサポートできるようにする必要があります。
次の表は、MLSサイトと非MLSサイト間の違いを示しています。
| サイト・オブジェクト | MLSサイト | 非MLSサイト | 
|---|---|---|
| コンテンツ・アイテム | コンテンツ・アイテムの言語バリアントが表示されますが、ページにドロップされたコンテンツ・アイテムではありません。言語は、サイトのレンダリング時にリクエストされた言語に応じて変更される場合があります。 | ページにドロップされたコンテンツが常に表示されます。 | 
| コンテンツ・レイアウト | コンテンツ・レイアウトは、v1.1 APIをサポートする必要があります。そうでない場合、コンテンツ・アイテムは表示されず、かわりに警告が表示されます。これは、すべてのv1.1 APIコールで、v1.0 APIではサポートされていない「ロケール」が追加されるからです。 | コンテンツ・レイアウトは、v1.0またはv1.1である場合があります。コンテンツ・レイアウトがv1.0のみをサポートしている場合、ContentSDKでは、fieldsエントリと一致するようレスポンスにdataエントリが追加されます。これ以外にもまだ他の問題が存在する可能性があるため、これは「サポートされている機能」であると見なすべきではありません(コンテンツ・レイアウトをアップグレードしないことのないようにする必要があります)。 | 
| コンテンツ・リスト | リクエストされた言語バリアントで使用可能なコンテンツ・アイテムのみが表示されます。 | 言語とは関係なくすべてのコンテンツ・アイテムが表示されます。ユーザーには結果を特定の言語に固定するためのオプションがコンテンツ・リスト内に用意されているため、結果を別の言語で表示する2つのコンテンツ・リストをページ上に用意できます。言語を選択するためのこの設定パネル・オプションは、MLSサイトでは使用できません。 | 
| デフォルトのロケール | MLSサイトには、デフォルトのサイト・ロケールがあります。つまり、すべてのコンテンツ問合せにおいて、そのロケールにある(または翻訳不可能な)コンテンツ・アイテムのみが返されます。 | 非MLSサイトにはデフォルト・ロケールがないため、使用されるコンテンツ問合せでは、言語とは関係なくすべてのコンテンツ・アイテムが返されます。 | 
| ローカリゼーション・ポリシー | サイトで使用可能言語をリストを定義します。ビルダーにはこれらのドロップダウンがあります。 また、管理UIには、リクエストされた言語でのオープン/プレビューを可能にするドロップダウンがあります。 | ローカライゼーション・ポリシーが存在しないため、言語を切り替えるためのドロップダウンはビルダーから削除されます。 管理UIには、言語がリストされません(「デフォルト」の言語もありません)。これが、管理UIで非MLSサイトとMLSサイトを識別する方法です。 | 
| 翻訳/翻訳可能 | 管理UIのコンテキスト・メニューには、オプションとして「翻訳」があります。これにより、サイトを翻訳するための翻訳ジョブを作成できます。 | 管理UIのコンテキスト・メニューには、「翻訳」があります。事実上、非MLSは翻訳不可能であるため、サイトを翻訳するには、最初にサイトを翻訳可能(MLS)サイトにする必要があります。 これもまた、サイトを非MLSからMLSにアップグレードする方法です。 ノート: これは一方向のみの処理です。翻訳不可能にダウングレードすることはできません。 | 
サイトをMLSサイトに変換する前に、次を実行する必要があります:
次に、コンテンツRESTコールを行うカスタム・コンポーネント・コードがある場合は、v1.1コールを行うためにこれらをアップグレードすることも必要です。ほとんどのコンテンツ・コールはコンテンツ・レイアウトから行われるため、これは一般的ではありません。
コンテンツ・レイアウトのアップグレード
サポートされるコンテンツREST APIバージョンの指定
コンテンツ・レイアウトでは、サポートするコンテンツREST APIのバージョンを指定する必要があります。これにより、想定されるレスポンス・データをレイアウトに返すために適切なコンテンツRESTコールが行われるようにします。
バージョン・サポートを指定しない場合、コンテンツ・レイアウトはv1.0をサポートしていると見なされます。
コンソールには、まだv1.0のままのコンテンツ・レイアウトがリストされます。
コンテンツ・レイアウトが他のバージョンをサポートできるようにするには、コンテンツ・レイアウト・オブジェクトにcontentVersionプロパティを追加します。
この例では、v1.0から2.0未満までのすべてのバージョンをサポートすることを表しています(ノート: 2.0は存在しませんが、主要なバージョン変更によって大幅な変更が導入される可能性があります)
// Content Layout
          definition.ContentLayout.prototype = {    // Specify the versions of
          the Content REST API that are supported by the this Content Layout.    // The value for contentVersion follows Semantic Versioning
          syntax.    // This allows applications that use the
          content layout to pass the data through in the expected format.    contentVersion: ">=1.0.0
          <2.0.0",     // Main rendering function:    // - Updates the data to handle any required additional requests and
          support both v1.0 and v1.1 Content REST APIs    // - Expand the Mustache template with the updated data
            // - Appends the expanded template HTML to the
          parentObj DOM element    render: function (parentObj)
          {
v1.1のレスポンス変更の処理
最小限実行可能性があることは、コンテンツREST APIレスポンスのdataからfieldsへの変更を処理することです。これを行う最も簡単な方法は、dataプロパティを追加し戻し、新しいfieldsプロパティを指し示す方法です
render: function (parentObj)
          {    ...    if(!content.data) {        content.data =
          content.fields;    }
より優れたオプションは、コンテンツ・レイアウト全体にわたってv1.1のfields値を使用するよう変更する方法です。これには、JavaScriptとテンプレート・コードの両方の更新が含まれます。
v1.1を完全にサポートするには、v1.0とv1.1の間で次のコンテンツREST APIの変更を処理する必要があります:
| コンテンツREST APIの変更 | v1.1 | v1.0 | 
|---|---|---|
| fieldsとdata | "items": [{    "type": "Starter-Blog-Author",    "name": "Alex Read",    "id": "COREB62DBAB5CEDA4915A9C9F6050E554F63",    "fields":
          {        "starter-blog-author_bio": "Alex's bio",        "starter-blog-author_name": "Alex Read"        }    }, | "items": [{    "type": "Starter-Blog-Author",    "name": "Alex Read",    "id": "COREB62DBAB5CEDA4915A9C9F6050E554F63",    "data":
          {        "starter-blog-author_bio": "Alex's bio",        "starter-blog-author_name": "Alex Read"        }    }, | 
| camelCaseプロパティ名 | "updatedDate" | "updateddate" | 
| 問合せフォーマット | /items?q=(type eq "Starter-Blog-Author") | /items?fields.type.equals="Starter-Blog-Author" | 
| APIバージョン | /content/management/api/v1.1/items | /content/management/api/v1/items | 
| 言語固有の問合せ | /content/management/api/v1.1/items?q=((type eq "Promo")および(language eq "en-US"またはtranslatable eq "false")) | サポートされていません。 すべてのカスタムv1コールを移行してlanguageオプションを含める必要があります。 これにより、特定の言語で表示した際にMLSサイトに対して返されるものとの結果の整合性が保たれます。 | 
コンテンツ問合せ文字列のアップグレード
任意のカスタム・コードでコンテンツAPIコールを実行している可能性があるため、コンテンツREST APIコールを実行しているサイトによって使用されているすべてのカスタム・コードを確認する必要があります。
非MLSサイトのMLSサイトへの変換
v1.1コンテンツREST APIを完全にサポートするようサイトを変換したら、MLSサイトに変更することによって言語のサポートを追加できます。
サイト管理UIでサイトを選択すると、translatableコンテンツ・メニュー・オプションが表示されます。このオプションを選択すると、ダイアログが表示され、ローカライゼーション・ポリシー内の必要な言語のリストからサイトのローカライゼーション・ポリシーおよびデフォルト言語を選択するよう求められます。ローカライゼーション・ポリシーが存在しない場合、この手順を完了できず、最初にコンテンツ管理画面に移動し、少なくとも1つの必須言語を使用してローカライゼーション・ポリシーを作成する必要があります。
この手順が完了したら、サイトはデフォルトのロケールでレンダリングされるようになります。また、ローカライゼーション・ポリシーに指定されている他のロケールに切り替えることもできます。
サイトがデフォルトのロケールで想定どおりにレンダリングされることを確認する必要があります。
サイトに関連付けられたアセットはサイトの移行時に移行されますが、サイトに関連付けられていないアセットは個別に移行する必要があります。
移行を開始する前に、次の点を考慮してください:
アセットを移行するには、次の手順を実行します:
ソース・サーバーおよびターゲット・サーバーの接続詳細を登録します。
ソース・サーバー(アセットの移行元のサーバー)を登録します:
> cec register-server <source_server_name>
          -e http://<source_server>:<source_port>
          -u <source_username> -p <source_password>
          -t pod_ic
ターゲット・サーバー(アセットの移行先のサーバー)を登録します:
> cec-install % cec register-server <target_server_name>
          -e http://<source_server>:<source_port>
          -u <target_username> -p <target_password>
          -t pod_ec
次のコマンドを実行して、アセットのコレクションを移行します:
> cec migrate-content <source_collection_name> --server  <source_server_name>
      --destination <target_server_name> --repository <target_repository_name> --collection  <target_collection_name> --channel
    <target_channel_name>
アセットは、指定したリポジトリ内のターゲット・サーバー上に作成され、コレクションおよびチャネルに関連付けられます。必要に応じて、コレクションおよびチャネルは自動的に作成されます。すべての移行済アセットのデフォルトの言語が、指定したリポジトリに設定されているデフォルトの言語になります。