Skip to main content

OmniOut プロジェクトをデプロイする

学習の目的

この単元を完了すると、次のことができるようになります。

  • プロジェクトを開発モードで実行する。
  • dist フォルダーをコンパイルして、CMS (AEM を含む) にデプロイする。
  • 元の Salesforce への接続を構築する。

プロジェクトを開発モードで実行する

Robert の OmniOut プロジェクトももう少しで完成です。プロとして完璧を追求し、ベストプラクティスにこだわる Robert は、各プロジェクトを開発モードで実行して、不具合がないかチェックします。 

プロジェクトを開発モードで実行します。

  1. ソースコードエディターを使用して、.src フォルダーの index.html ファイルで、JSForceConnectionExample() 関数を見つけます。
  2. const connection オブジェクトに、Salesforce 接続アプリケーションのアクセストークンと組織のインスタンス URL を入力します。
    const connection オブジェクトの accessToken と instanceUrl
  3. this.namespace = 'NAMESPACE' の NAMESPACE をパッケージの名前空間に置き換えます。
  4. ファイルを保存します。
  5. ターミナルコンソールで、npm run watch コマンドを実行してサーバーを再起動し、プロジェクトをローカルで表示します。
  6. エラーを確認して解決し、必要に応じてテストを繰り返します。

Robert が 4 つのプロジェクトをすべて開発モードで実行したところ、特に問題は見つかりませんでした。次のステップに進みましょう。

アプリケーションを CMS にデプロイする

Robert はアプリケーションをコンパイルして、それぞれのプラットフォームにデプロイする必要があります。どのお客様も標準の CMS を所有しています。Healthy Benefits については AEM CMS を使用しているため、追加の手順が必要です。

メモ

ここでは、アプリケーションをコンパイルして CMS にデプロイする手順の例を示します。

標準の CMS (AEM ではない) を使用する

dist フォルダーをコンパイルします。

  1. ソースコードエディターで、npm run build コマンドを実行します。このコマンドにより、OmniOut が dist フォルダーにコンパイルされます。
    ソースコードエディターに表示されている dist フォルダー
  2. dist フォルダーで、必要に応じて次のファイルやフォルダーが存在することを確認します。
    ファイル/フォルダー 必須? 説明
    app.js ファイル (0.app.js などの番号付きファイルを含む) 必須 FlexCard や OmniScript に必要な JavaScript ファイル
    vlocityresources 必須 FlexCard や OmniScript に必要な静的リソース
    index.html 省略可能 OmniOut プロジェクトの実行方法を示すサンプルの index.html ファイル
    newport 省略可能 デフォルトの Newport テーマを使用する場合は必須
    slds 省略可能 Lightning テーマを使用する場合、OmniScript に Image または File 要素が含まれる場合、FlexCard に Image 要素が含まれる場合は必須
    OmniScriptDocuSignReturnPage.html 省略可能 OmniScript に DocuSign アクションが含まれる場合は必須
    OmniScriptLwcDocuSignViewPdf.html 省略可能 OmniScript に DocuSign アクションが含まれる場合は必須
  3. index.html ファイルで、app.js ファイルを参照するスクリプトタグを選択して、アプリケーションの index.html ファイルにコピーします。
  4. index.html ファイルで、OmniScript または FlexCard コンポーネントタグを選択して、アプリケーションの index.html ファイルにコピーします。たとえば、FlexCard コンポーネントタグは、<FlexCard-energyPlan run-mode="localScriptDef"> </FlexCard-energyPlan> のようになります。

アプリケーションをコンパイルして、CMS にデプロイすることができました。AEM にデプロイする場合は、さらなる手順を実行する必要があります。 

AEM CMS を使用する

Healthy Benefits のように、アプリケーションを AEM CMS にデプロイする場合は、OmniOut プロジェクトにリソースパスを設定して、Lightning と Newport スタイルを AEM に読み込む必要があります。

メモ

ここに記載の手順以外の AEM のガイドラインについては、AEM ヘルプファイルの「Salesforce との統合」を参照してください。

接続を作成します。

  1. AEM で Salesforce 接続を作成します。
  2. Salesforce と AEM 間の接続を確認します。

プロジェクトにリソースパスを設定します。

  1. ソースコードエディターで、OmniOut プロジェクトの ./src/index.js ファイルを見つけて開きます。
  2. import { setSldsResourcesUrl, setNewportResourcesUrl } from 'c/salesforceUtils' 行のコメントを解除します。
  3. setSldsResourcesUrl 関数と setNewportResourcesUrl 関数を見つけてコメントを解除します。
  4. ファイルを保存します。

ログイン情報を追加して、アプリケーションをデプロイします。

  1. ソースコードエディターで、./aem.ui.apps/pom.xml ファイルを開きます。
  2. タグを次のように編集します。
    編集するタグ 置換する値 置換後の値
    <crx.host>YOURHOST</crx.host> YOURHOST AEM サーバーのホスト名
    <crx.port>PORT</crx.port> PORT AEM サーバーのポート名
    <crx.username>USERNAME</crx.username> USERNAME AEM サーバーのユーザー名
    <crx.password>PASSWORD</crx.password> PASSWORD AEM サーバーのパスワード
    <publish.crx.host>HOST</publish.crx.host> HOST AEM サーバーのホスト名
    <publsh.crx.port>PORT</publish.crx.port> PORT AEM サーバーのポート名
    <publish.crx.username>USERNAME</publish.crx.username> USERNAME AEM サーバーのユーザー名
    <publish.crx.password>PASSWORD</publish.crx.password> PASSWORD AEM サーバーのパスワード
  3. npm run deploy:aem:clean:full コマンドを実行して、アプリケーションをデプロイします。

    OmniOut コンポーネントが AEM に追加されます。

OmniScript を AEM ページに追加します。 

  1. コンポーネントタグ名を使用して、OmniScript の名前を入力します。ただし、角括弧は削除します。たとえば、OmniScript の種別 = doc、サブタイプ = test、言語 = 英語であれば、vlocityomniscript-doc-test-english というタグを入力します。
  2. 更新した AEM サイトをテストします。

これで Robert が FlexCard を表示して、AEM サイトで OmniScript を起動できます。完成まであと一歩です。最後のタスクは、アプリケーションを元の Salesforce に接続することです。

元の Salesforce に接続する

Robert は接続オブジェクトを構成して、OmniOut プロジェクトを、以前に作成した Salesforce 接続アプリケーションに接続する必要があることを認識しています。接続オブジェクトは、インスタンス URL、名前空間、request 関数を公開します。各アプリケーションの要件に応じて各接続を構成しなければならないことも心得ています。幸いにも、Robert は便利なテンプレートを使用できます。  

OmniScript を使用する OmniOut の接続オブジェクト

OmniOut プロジェクトに OmniScript が含まれている場合は、OmniOut の omnioutcomponentready イベントを受け取った後に接続オブジェクトを渡すイベントハンドラーを作成する必要があります。 

Robert はテンプレートの正しい形式を ./src/index.js ファイルにコピーします。まず、イベントハンドラーと接続オブジェクトを作成します。次に、アプリケーションごとに OmniOut の外部に追加の接続オプションを構成します。

FlexCard を使用するが、OmniScript は使用しない OmniOut の接続オブジェクト

OmniOut プロジェクトに FlexCard があるが、OmniScript はない場合は、initializeDatasourceSdk メソッドを使用してアプリケーションを接続します。 

Robert はテンプレートの正しい形式を ./src/index.js ファイルにコピーします (OmniScript がない場合はイベントハンドラーが不要です)。次に、アプリケーションごとに OmniOut の外部に追加の接続オプションを構成します。

ブログ記事を執筆している Robert

Robert が遂に 4 つの OmniOut プロジェクトを完成させました。どのクライアントも、OmniStudio がオフプラットフォームで実行されることになって喜んでいます。 

Robert は早速この内容をブログにまとめながら、さらに OmniStudio の高度な機能に挑むことに意欲的になっています。

リソース

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む