Oracle Content Management (OCM)- APEXと統合したWebサイトを作成してみよう！ その1

# 目次

* [はじめに](#はじめに)
* [1：OCMとAPEXを統合するためのIAMアプリのセットアップ](#1-ocmとapexを統合するためのoamアプリのセットアップ)
* [2：コンテンツ・リポジトリのセットアップ](#2-コンテンツリポジトリのセットアップ)
* 3：既存のテンプレートからWebサイトの作成
* 4：APEXアプリケーションのセットアップ
* 5：OCMとAPEXの統合
* 6：まとめ


# はじめに

このラボでは、Oracle Content Management（OCM）とOracle Application Express（APEX）アプリケーションを統合して、利用する方法を紹介します。コンテンツ・リポジトリ、デジタル・アセットを設定し、最後にAPIと埋め込みUIオプションを使用してWebサイトを作成します。

※こちらの記事は、**Yuan Yuan Deng**さんの協力の下に作成しました。

## Oracle Content Management(OCM)とは
Oracle Content Managementは、クラウドファイル共有（EFSS：Enterprise File Sync & Sharing）、デジタルアセット管理（DAM：Digital Asset Management）、Webコンテンツ管理（CMS：Content Mamangement System）の３つの機能がワンセットに統合された便利なクラウドサービスです。
3つの機能をそれぞれ専用のツールで導入した場合に比べ、手作業によるファイルコピーなどの手間を減らせるだけでなく、その際に発生するファイルの取り違いなどの人的ミスも防げます。
Oracle Content Managementならば、データを一箇所でまとめて保管することができ、ロールベースのアクセス制御で使える機能やデータを一元的に管理可能。セキュアでガバナンスの効いたデータ活用基盤が手に入ります。
![スクリーンショット 2022-05-24 11.29.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/e506f5e1-a997-4a0c-2afb-167fa8034390.png)
[商品の詳細はこちらを参照ください。](https://www.oracle.com/jp/cloud/paas/dx/overview/)


## 前提条件

1. こちらのチュートリアルを進めるためには、Oracle Cloud Infrastructure(OCI)を契約、またはトライアルを申請し、OCMのインスタンスを作成しておいてください。
詳しくは下記を参照ください。
[Oracle Content Managementインスタンスを作成する](https://oracle-japan.github.io/ocitutorials/content-management/create_oce_instance/)

2. OCMユーザー権限を有すること。具体的には、次のロールが付与されていること。

   - CECContentAdministrator

   - CECDeveloperUser

   - CECEnterpriseUser

   - CECRepositoryAdministrator

   - CECServiceAdministrator

3. APEXワークスペースは、事前に作成されています。

   Oracle Application Express（APEX）は、Oracle Database用のローコード開発プラットフォームです。
   
   APEXワークスペースは、APEXアプリケーションを定義する論理ドメインです。各ワークスペースは、テーブル、ビュー、パッケージなどのデータベース・オブジェクトを格納するために使用される1つ以上のデータベース・スキーマ（データベース・ユーザー）に関連付けられています。
   
   このラボは、APEX21.1がインストールされている任意のOracleデータベースで実行できます。次のものが含まれます。
   
    - APEXアプリケーション開発サービス
   
    - Oracle Autonomous Database（ATP、ADW）
   
    - 無料の「開発専用」apex.oracle.comサービス  
   
   APEXアプリケーション開発サービス、 Autonomous Data Warehouse（ADW）、およびAutonomous Transaction Processing （ATP）は、完全に管理されたサービスであり、APEXと統合および構成されています。最初にAPEXにアクセスするときは、APEXインスタンス管理者としてログインしてワークスペースを作成する必要があります。  

# 1. OCMとAPEXを統合するためのOAMアプリのセットアップ

Oracle Cloud Infrastructureには、Oracle Cloud Infrastructure Identity and Access Management (OCI IAM)というユーザー管理、認証の仕組みがあります。OCI IAMはデフォルトでOracle Identity Cloud Service (IDCS) とフェデレーション設定が行われており、IDCSユーザーを使用してOCIコンソールなどにログインを行うことが可能です。

このセッションでは、IAMアプリを作成する手順について説明します。また、作成されたIAMアプリにOCMロールを割り当てます。IAMではなく、IDCSを利用している場合は、IDCSコンソールでアプリケーションを作成してください。

* OCMとAPEXを統合するためのIAMアプリの作成
* OCMロールをIAMアプリに割り当てる

## 1.1 OCMとAPEXを統合するためのIAMアプリの作成 <a id="1"></a>

1. Webブラウザで、以下のURLにアクセスします。  
   - https://cloud.oracle.com  
   
2. Oracle Cloudのダッシューボードにログインします。OCI コンソールのサイド・ナビゲーション・メニューをクリックして「**アイデンティティとセキュリティ**」を選択し、「**ドメイン**」をクリックします。  
  ![1_task1_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/2317e9e5-3480-86f9-94f1-ebbb42e2ad21.png)

3. 「**Default**」ドメインをクリックして、詳細ページに移動します。「**ドメインURL**」をコピーして、エディタなどに保存しておきます。  
![1_task1_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/21654a04-4155-09d8-0659-a9d180f5bf62.png)

4. 左側のメニューから「**アプリケーション**」をクリックし、「**アプリケーションの追加**」ボタンをクリックします。  
![1_task1_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/47fa50c2-f4d8-58c7-8a03-004de8d90624.png)

5. 「アプリケーションの追加」ウィンドウで、「**機密アプリケーション**」を選択し、「**ワークフローの起動**」ボタンをクリックします。  
![1_task1_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/d3d55ee4-371f-786c-6c54-0b65373c0494.png)

6. 以下の項目を入力し、「**次**」ボタンをクリックします。  
   - 名前：`OCM-APEX Integration`  

   - 説明：`App to call OCM API from APEX`  

![1_task1_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/a3a581ac-1981-9448-b431-0e76d413fe2b.png)
7. 「**このアプリケーションをクライアントとして今すぐ構成します**」を選択します。「認可」セクションで、「許可される権限付与タイプ」として「**クライアント資格証明**」を選択します。  
![1_task1_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/e0383c8f-ce21-d225-cf89-987d5b96b7e9.png)
8. 「トークン発行ポリシー」セクションまで下にスクロールし、「認可されたリソース」として「**特定**」を選択し、「**リソースの追加**」にチェックを入れ、「**スコープの追加**」をクリックします。  
![1_task1_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/3eefc132-39f3-fcd0-480c-93a9140bfbb2.png)
9. リストから、作成したOCMインスタンスを選択します。これは、`CECSAUTO_ <インスタンス名>CECSAUTO`のような名前になります。 たとえば、以下は`oce02`という名前で作成されたインスタンスであり、強調表示された行はそのインスタンスに対応しています。 `urn:opc:cec:all`で終わるものを選択し、「**追加**」ボタンをクリックします。  
![1_task1_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/d670983d-5e3d-ab91-d6a2-3ffb612c29d4.png)
10. スコープURLをコピーして、「**次**」ボタンをクリックします。  
![1_task1_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/08b37165-231a-d7d3-3125-12d7145a8f98.png)
11. そのまま「**終了**」をクリックします。  
![1_task1_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/6b54cbaf-fb32-4a36-5d4f-69a53ddd5c05.png)
12. アプリケーションは非アクティブ化された状態に追加されています。「**アクティブ化**」ボタンをクリックして、アプリケーションをアクティブ化します。  
![1_task1_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/48b5179c-d206-ec74-2908-6d66abf6f58d.png)
13. 確認ダイアログが表示されます。「**アプリケーションのアクティブ化**」ボタンをクリックします。  
![1_task1_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/f1f7c577-5615-339a-b726-b59433e6f49f.png)
14. 「一般情報」セクションまで下にスクロールして、「**クライアントID**」と「**クライアント・シークレット**」をコピーします。  
![1_task1_13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/e299a069-2730-c7ab-45e5-e29c9ba9352b.png)


## 1.2 OCMロールをIAMアプリに割り当てる<a id="2"></a>

1. ページ上部のパンくずリストで「**Defaultドメイン**」に戻り、左側のメニューから「**Oracle Cloudサービス**」を選択します。  
![1_task2_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/0716fe8c-2005-1688-0df5-2e4f896cad48.png)

2. OCMインスタンスに対応するアプリケーション名（**CECSAUTO_**<インスタンス名>**CECSAUTO**）をクリックします。  
![1_task2_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/2b61a857-cd88-79be-19b1-74e978fd2ede.png)

3. アプリケーションの詳細画面の左側にあるリソース・メニューから「**アプリケーション・ロール**」をクリックします。  
![1_task2_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/caaf9621-4a52-afbd-d867-3314571ea57e.png)

4. ロール「**CECEnterpriseUser**」を選択し、右側のアイコンをクリックします。 「**アプリケーションの割当て**」を選択します。  
![1_task2_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/57ec5822-f637-8413-45c1-099c8f440aa0.png)

5. 前のタスクで作成したアプリケーション「**OCM-APEX Integration**」を選択し、「**割当て**」ボタンをクリックします。  
![1_task2_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/458806ee-9692-3071-e220-7c05e0fed154.png)


# 2. コンテンツ・リポジトリのセットアップ

Oracle Content Managementには、Webサイト、マーケティング資料、電子メール・キャンペーン、オンライン・ストア、ブログなど、様々なチャネルで使用するすべてのアセットを管理するための強力な機能が備わっています。

Oracle Content Managementのコンテンツ管理構造は、リポジトリで構成されています。
リポジトリは、基本的にプロジェクト、グループまたはキャンペーンに必要なすべてのアセットを格納するために使用される大きな"バケット"です。 
アセットは、ブログ投稿、ケーススタディ、製品情報などの構造化コンテンツを表すコンテンツ・アイテムと、画像や動画、PDF文書などのファイル形式のコンテンツ（非構造化データ）を表すデジタル・アセットが含まれます。

このセッションでは、デジタル・アセットとリポジトリを作成する手順について説明します。また、作成されたリポジトリへのアクセス権限をIAMアプリケーションに付与します。

* カスタム・デジタル・アセット・タイプの作成
* アセット・リポジトリの作成
* リポジトリへのアクセスをIAMアプリに付与
* デジタル・アセットの登録  


## 2.1 カスタム・デジタル・アセット・タイプの作成<a id="1"></a>

1. Webブラウザを起動し、OCMにログインします。

2. 左側のサイト・ナビゲーションから「**コンテンツ**」をクリックし、コンテンツの管理画面に切り替えます。プルダウンリストは自動的に「リポジトリ」と選択されます。「**リポジトリ▼**」をクリックし、「**アセット・タイプ**」を選択します。  
![3_task1_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/33df492b-dd12-a876-f9a3-dbdf178924f3.png)

3. 「**アセット・タイプ**」が選択されていることを確認し、「**作成**」をクリックします。  
    ![3_task1_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/c15a3768-d029-6b56-e95e-81b959c4e177.png)

4. 「アセット・タイプの作成」ダイアログが表示されます。以下の項目を入力し、「**作成**」ボタンをクリックします。    

   - 名前：`Contract`    

   - アセット・タイプの選択：`デジタル・アセット・タイプの作成`  

  ![3_task1_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/40a3aa6c-f1b7-354c-376c-ca1b6b4cee5a.png)
   5. 「**メディア・タイプ**」タブで「pdf」を検索し、pdf（application / pdf）を選択します。 「**追加**」ボタンをクリックして、このファイル・タイプのサポートを追加します。アセット・タイプはリストされたファイル・タイプのドキュメントのみを受け入れます。 複数のファイル・タイプを含めることができます。  
![3_task1_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/540f661b-4f82-2158-06a2-64b7cd3ad518.png)
6. 「**定義**」タブに移動します。テキスト・データ・フィールドを左側から「**デジタル・アセット・タイプ定義**」領域にドラッグ&ドロップします。  ![3_task1_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/33b24e6c-5bfb-69ed-e65e-3af0369a7636.png)
7. 「テキスト設定」ダイアログが表示されます。以下の項目を入力し、「**次**」ボタンをクリックします。  

   - このフィールドの表示名の指定：`Contract Name`  
   - データ・フィールド値の数：`単一の値`  
   - このフィールドにはコンテンツが必要です：チェックを入れたまま    

![3_task1_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/b91be5b4-6665-e2f0-ad58-4f2a606c390e.png)
8. Contract Name（契約名）フィールドの外観を設定します。デフォルトのままにして、「**OK**」をクリックします。  
![3_task1_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/bb8b7be8-209b-2612-7e86-1f52fa7ef911.png)
9. 次にParty Name（パーティー名）フィールドを作成します。「データ・フィールド」の「**テキスト**」を、先程作成した「Contract Name」の下にドラッグ&ドロップします。「テキスト設定」ダイアログが表示されます。以下の項目を入力し、「**次**」ボタンをクリックします。  

   - このフィールドの表示名の指定：`Party Name`
   - データ・フィールド値の数：`単一の値`  
   - このフィールドにはコンテンツが必要です：チェックを外す  

![3_task1_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/dd60cc9b-a1dd-9d5c-1aba-220580c4d598.png)
10. Party Name（パーティー名）フィールドの外観を設定します。デフォルトのままにして、「**OK**」をクリックします。
11. 次にExpiry Date（有効期限）フィールドを作成します。「データ・フィールド」の「**日付**」を、先程作成した「Party Name」の下にドラッグ&ドロップします。「日付設定」ダイアログが表示されます。以下の項目を入力し、「**次**」ボタンをクリックします。  

 - このフィールドの表示名の指定：`Expiry Date`  
 - このフィールドにはコンテンツが必要です：チェックを外す  

![3_task1_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/daa5eaf6-65e7-4a31-c63f-d7c612f7cf0d.png)
12. Expiry Date（有効期限）フィールドの外観を設定します。デフォルトのままにして、「**OK**」をクリックします。
13. Auto Renewal（自動更新）フィールドを作成します。「データ・フィールド」の「**ブール**」を、先程作成した「Expiry Date」の下にドラッグ&ドロップします。「ブール設定」ダイアログが表示されます。以下の項目を入力し、「**次**」ボタンをクリックします。  

- このフィールドの表示名の指定：`Auto Renewal`  

- このフィールドにはコンテンツが必要です：チェックを外す    

![3_task1_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/ffc3c26a-cf9f-796c-0a1e-29f59af497fa.png)
14. Auto Renewal（自動更新）フィールドの外観を設定します。デフォルトのままにして、「**OK**」をクリックします。  
![3_task1_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/71e4fa13-3a4c-1393-5f29-ea79f459985a.png)
15. 次の図のようにすべてのフィールドが作成されていることを確認し、「**保存**」ボタンをクリックします。  
![3_task1_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/68cada01-61a5-c453-3f18-081477f8ffaf.png)
16. アセット・タイプが正常に保存されたことを確認します。  
![3_task1_13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/043988f4-07fd-460c-84d5-6d2e5d10a520.png)



## 2.2 アセット・リポジトリの作成<a id="2"></a>

1. 左側のサイト・ナビゲーションから「**コンテンツ**」をクリックし、「**リポジトリ**」が選択されていることを確認し、「**作成**」→ 「**アセット・リポジトリ**」をクリックします。  
![3_task2_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/3f76afc8-31bf-6dcf-2847-605653e0ff61.png)
2. 以下の項目を入力し、「**保存**」ボタンをクリックします。  
   - 名前：`Demo`  
   - アセット・タイプ：File、ImageとContract を選択  

![3_task2_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/be6d09f8-a6d5-7f39-18a2-3880c401f7de.png)
3. リポジトリが正常に作成されたことを確認します。  
![3_task2_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/74f6b7e2-dd7a-8da2-7972-b52218763683.png)

## 2.3 リポジトリへのアクセスをIAMアプリに付与<a id="3"></a>


1. リポジトリ「**Demo**」が選択されている状態で、「**メンバー**」をクリックします。  
![3_task2_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/c06d0aea-c2ea-8412-5b5a-e75fff74ebad.png)
2. ユーザーとグループはアプリケーション「**OCM-APEX Integration**」を選択します。ロールに「**マネージャ**」を選択し、「**追加**」ボタンをクリックします。  
![3_task2_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/07629ac8-013b-f6b8-d9c0-7c8c61acf90f.png)
3. IAMアプリケーション「**OCM-APEX Integration**」がリポジトリ「**Demo**」のメンバーとして追加されていることを確認し、「**完了**」ボタンをクリックします。    
![3_task2_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/30f81494-9fde-e236-1023-208bb1dbb14d.png)



## 2.4 デジタル・アセットの登録<a id="4"></a>

1. ナビゲーションから「**アセット**」に切り替えます。フィルタ・パネルに「**Demo**」が選択されていることを確認し、右上の「**追加**」→「**このコンピュータから追加**」をクリックします。   
![3_task3_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/a974f533-cf52-d1ef-442f-dac2c0c5929b.png)
2. デスクトップより任意のPDFファイルを選択し、「**開く**」をクリックします。  
![3_task3_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/11ae4a59-d031-18fa-5121-3358863344dd.png)
3. PDFファイルの右側にあるアイコンをクリックします。  
![3_task3_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/9dc1e6fd-5465-04dc-e7bf-5ef4cdf7bc01.png)
4. 以下の項目を入力し、「**完了**」ボタンをクリックします。  
   - 言語：`英語`  
   - 翻訳不能：チェックを入れる  
   - Contract Name： `Cyphria IT Project`  
   - Party Name：`Cyphria`   
   - Expiry Date：  任意の日付  

![3_task3_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/5551af67-3f27-6ffa-e898-b33ac234b1e8.png)
5. 「**完了**」ボタンをクリックします。  
![3_task3_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/255bb2b8-71c2-deb0-14a4-f53714380a12.png)
6. PDFファイルがリポジトリ「**Demo**」にアップロードされたことを確認します。  
![3_task3_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597244/a7073994-598a-de4b-7039-257ed33e4880.png)

[その2に続きます](https://qiita.com/shinwata/items/ad7c548b627b46412a9f)