Skip to main content

サーバー側ドキュメント生成について学ぶ

学習の目的 

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

  • サーバー側ドキュメント生成の利点と機能を説明する。
  • サーバー側ドキュメント生成を使用するケースを挙げる。
  • そのまま使用できるサンプルをカスタマイズしてすばやく実装する。

ドキュメント生成への別のアプローチ

従来、ドキュメント生成はクライアントマシンで実行される、ブラウザーベースのプロセスでした。ドキュメントを生成して PDF に変換するには、多くの場合ユーザー操作が必要でした。Sophia のチームが作成する必要があるドキュメントの多くはこのプロセスで用が足ります。

ドキュメント生成プロセスの改善点について話し合う Felix と Sophia。

ただし、別のアプローチが必要なドキュメントもあります。チームは処理に時間がかかる非常にページ数の多い契約を生成することがあります。またチームが入力する必要のないドキュメント種別もあり、これについては生成を自動化できそうです。Felix はこの非効率性に気付き、サーバー側ドキュメント生成を実装することにします。 

サーバー側ドキュメント生成の機能

サーバー側ドキュメント生成を使用してさまざまなことを行えます。Felix の次のジャーニーを見ていく前に、利点と機能を確認しておきましょう。

  • API を使用してドキュメント生成を自動化する。API を使用してドキュメントを生成できます。ユーザー入力は必要ありません。API をコールするように OmniScript を設定して、ブラウザークライアントに依存せずにサーバー側ドキュメント生成を実行します。
  • 複数のソースからドキュメント生成を起動する。サーバー側ドキュメント生成はさまざまな方法で起動できます。たとえば、バックエンド Apex コード、Integration Procedure、OmniScript を使用できます。
  • 大きなドキュメントや複数のドキュメントを一括生成する。サーバー側ドキュメント生成にはブラウザーのリソースではなく Salesforce のコンピューティングリソースが使用されるため、レンダリングの負荷が高い大量のデータを含むドキュメントに適しています。また、複数のドキュメントを同時に生成する一括処理もサポートされています。
  • サンプルアセットを使用してソリューションを短時間で実装する。すばやく実装できるように、Industries Document Generation にはソリューションを設定する開始点として使用できるアセットがいくつか用意されています。アセットには、サンプルの Integration Procedure、サーバー側 OmniScript、Lightning Web コンポーネントが含まれています。

サーバー側ドキュメント生成を使用するケース

サーバー側ドキュメント生成を使用するのが適しているのはどのような場合でしょうか?

  • ドキュメントのレンダリングの負荷が高い。たとえば、ドキュメントに含まれているトークン、表、行数が多い場合です。Infiwave の場合、注文が大きく、大量のデータをドキュメントに取り込むことが多い企業顧客契約ドキュメントがこのプロファイルに当てはまります。
  • 一括処理が必要なドキュメントがいくつかある。たとえば、オフィス勤務者向けのカスタム商品について営業担当がマルチサイトの見積ドキュメントを生成したいとします。この場合、オフィスのロケーションごとに別々の見積が必要です。サーバー側ドキュメント生成を使用すれば、すべてのロケーションの見積ドキュメントを同時に生成することができます。
  • トリガーでドキュメントを生成する。トリガーは、レコードの状況が変更されたときなど、何にでも設定できます。Sophia のチームはいくつかのレポートを生成して Sophia に送信する必要があります。サーバー側ドキュメント生成を使用すれば、時間を大幅に節約できます。たとえば、商談の状況が「商談成立」に変更されるたびに、商談レポートを自動的に生成して、商談レコードに添付することができます。

ドキュメント生成フロー

サーバー側ドキュメント生成フローの内部で何が行われているかを見てみましょう。次の図はプロセスを示しています。

サーバー側ドキュメント生成フローを示す図

この図では、ドキュメント生成プロセスは Integration Procedure、OmniScript、または Apex コードから起動されます。これにより BPO (ベースプラットフォームオブジェクト) 要求が生成されてキューに追加されます。このプロセスでは、複数の BPO を同時に生成することが可能で、BPO はデキューメカニズムによってリモート API がコールされるまでキューで待機します。リモート API メソッドは、Salesforce のコンピューティングリソースをプロセス専用に確保する Hyperforce で実行されます。メソッドはキューから要求を取り出してドキュメントを生成します。ドキュメントが生成されたら、コンテンツドキュメントとして Salesforce に保存されます。

サーバー側ドキュメント生成を迅速に実装する

Salesforce はお客様がソリューションを迅速にロールアウトできるようにしたいと考えています。そのため、プロジェクトの開始点として使用できるアセットを提供しています。サーバー側ドキュメント生成もドキュメントテンプレートの作成から始まります。 

Felix が使用するアセットを見てみましょう。

サンプル OmniScript

Industries Document Generation パッケージには、docGenerationSample/SingleDocxServersideLwc というサンプルのサーバー側 OmniScript が含まれています。Felix はこのサンプルを、Infiwave が大口顧客のために生成する必要があるドキュメントのマルチサイト見積テンプレートのベースとして使用します。Felix はサンプルの新しいバージョンを作成して作業を開始します。

サンプル Integration Procedure

Industries Document Generation パッケージにはサンプル Integration Procedure も含まれています。各サンプルは Apex クラスのさまざまなメソッドを呼び出し、Microsoft Word、Microsoft PowerPoint、または PDF ドキュメントを生成します。Integration Procedure は以前生成した .docx または .pptx ファイルを PDF に変換することもできます。出力ドキュメントの形式は Integration Procedure で指定されたインプットパラメーターに応じて異なります。

サーバー側ドキュメント生成のサンプル OmniScript

Felix はサンプル OmniScript を使用して Infiwave の営業チームのためにドキュメント生成プロセスを作成します。サンプルはテンプレートをテストするために使用したり、独自の OmniScript を作成するための開始点として使用できます。エンドユーザーはレコードページから OmniScript を起動してドキュメントを生成できます。 

[OmniScript] タブにある「docGenerationSample/SingleDocxServersideLwc」という名前のサンプル OmniScript を見つけてください。 

Felix はサンプル OmniScript の新しいバージョンを作成します。このバージョンを新しいドキュメント生成 OmniScript の開始点として使用します。そうすると、元のサンプル OmniScript はそのまま変更されないため、また後で新しい OmniScript に使用できます。

サンプル OmniScript の要素と、Felix がユースケースに合わせてカスタマイズする手順を一緒に見ていきましょう。サンプルのサーバー側ドキュメント生成 OmniScript には、OmniScript が呼び出されると順次実行されるいくつかのステップが含まれています。 

画像内のプラスアイコン (+) が示すホットスポットをクリックすると詳細が表示されます。

サンプルの OmniStudio Integration Procedure

Industries Document Generation にはサンプルの OmniStudio Integration Procedure が含まれていて、サーバー側ドキュメント生成の実装に役立てることができます。OmniScript はサンプル Integration Procedure をコールしますが、カスタマイズしてスタンドアロンとして使用することもできます。各サンプルは Apex クラスのさまざまなメソッドを呼び出し、Microsoft Word、Microsoft PowerPoint、または PDF ドキュメントを生成します。

Integration Procedure

トリガー条件

出力

DocumentServiceGateway_DocGeneration

ServiceFunction 値が Server-Side Document Generation (サーバー側ドキュメント生成) に設定される

指定された入力パラメーターに応じて、.docx、.pptx、または pdf ドキュメントを生成できます。

DocumentServiceGateway_DocGenerationWithTokenData

ServiceFunction 値が Server-Side Document Generation w/ Token Data (トークンデータを使用するサーバー側ドキュメント生成) に設定される

指定された入力パラメーターとトークンデータに応じて、.docx、.pptx、または pdf ドキュメントを生成できます。

DocumentServiceGateway_DocGenerationPDF

ServiceFunction 値が Server-Side PDF Generation (サーバー側 PDF 生成) に設定される

以前に生成された .docx または .pptx ドキュメントに応じて pdf ドキュメントが生成されます。

メモ

デフォルトではサーバー側ドキュメント生成は無効になっています。この機能を有効化するには、「Request Access to Server-Side Document Generation (サーバー側ドキュメント生成へのアクセス権の要求)」ナレッジ記事を参照してください。

さらに詳しく知るには

Salesforce のお客様は、次の学習ジャーニーで、デジタルトランスフォーメーションの優れたツールや業種別アプリケーションに関するスキルの習得方法を確認できます。

Salesforce パートナーは、上記の同じ学習ジャーニーに加え、Partner Learning Camp (ログインが必要) にあるパートナー向けリソースも利用できます。#AlwaysBeLearning 

リソース 

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

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

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