レンダリングヘルパー
単体テストを簡単に行えるように、純粋なロジックを独自のファイルに保存します。 これにより、レコード を{{dot.path}} トークンに平坦化し、それらを置き換えます。
The handler
ハンドラは生成されたCoreApiClient
を使用してCRMデータを読み書きします。 テンプレートをロードし、ターゲットレコードをロードし、
本文を埋め、documentを作成します。
loadRecordValuesはPerson vs.a Company に対して異なるクエリを実行し、
結果を平坦化します。
load-record-values.tsを参照してください。
ツールとワークフローアクションとして公開する
一つのdefineLogicFunction は複数のトリガーを持つことができます。 ここでは、toolTriggerSettings
をAIエージェントから呼び出すことができ、workflowActionTriggerSettings をビジュアルワークフロービルダーの
ステップに変換します。 どちらもJSONスキーマを使用して入力を記述します。
templateId と recordId を説明するプレーンな JSON スキーマです —
は generate-document-input.schema.ts を参照してください。
アクセスを許可
ロジック関数はアプリのロールとして実行されます。 テンプレートとレコード を読み込み、ドキュメントを作成する必要があります。これはsrc/roles/default-role.ts で許可します。
UPLOAD_FILEでは、次のセクションで生成されたPDFをアップロードできます。
詳細な権限については、 Roles を参照してください。
実際の PDF ファイルを添付する
レンダリングされたテキストフィールドは役に立ちますが、ユーザは実際のドキュメントを望んでいます。 PDFを生成して、ダウンロード可能なファイルとしてレコードに保存しましょう。 まず、document オブジェクトに FILES フィールドを指定し、PDFを保持します。 アプリはファイルフィールドに
をアップロードするので、このフィールドはアップロードのルートとなります。
generate-document-pdf.ts。
これは、Markdown を marked.lexer でトークンにパースし、その後 pdf-lib を使ってレイアウトします。実際の見出し、太字/斜体 のラン、箇条書きおよび番号付きリスト、引用ブロックや罫線などを備え、単なるテキストの羅列ではなく、テンプレート自体を洗練された複数ページの A4 レイアウトとしてレンダリングします。

pdf-lib に組み込まれているフォントは WinAnsi エンコーディングを使用しているため、西ヨーロッパ言語のアクセント付き文字はそのままレンダリングされます。ヘルパーはスマートクォートやダッシュをマッピングし、エンコードできない文字は削除します。 ラテン語以外の文字 (中国語、アラビア語、キリル文字) をレンダリングすることは、
が Unicode フォントを埋め込むことを意味します。
uploadFile は、あなたのアプリが所有するファイルフィールドにバイト
をルートします。返されたidはあなたが保存したものです。

uploadFile は app-owned ファイル項目だけを対象にしています (アップロードには常にフィールドを所有する
アプリとUPLOAD_FILE ロールフラグが必要です)。 そのため、PDF
は file フィールド上に配置されています。録音には
call-recorder app
が使用するパターンと同じです。次へ: HTTP ルート →
HTTP 経由で関数を提供し、ドキュメントを Web ページとして表示します。