ドキュメントの管理と作成が重要なプロフェッショナル環境では、強力で柔軟なツールが不可欠です。デスクトップクライアントから直接、ダイナミックなドキュメントテンプレートをデザインし、データベースから数式やデータを統合し、直感的なウェブインターフェースを介してワンクリックでドキュメントを生成できることを想像してみてください。これこそが、4D Write Proと 4D Qodly Proが可能にすることです!
今週のブログでは、この2つのソリューションが、ドキュメントプロセスを自動化し最適化するために、どのようにお互いを補完し合っているかをご紹介します。4D Write Proでカスタムテンプレートを作成する方法と、4D Qodly Proのおかげで、ウェブユーザーが必要なデータを入力し、ドキュメント生成をトリガーし、さらにデータベースに保存するか、計算された属性で返すかを選択する方法をご紹介します。
このプロセスをデモンストレーションするために、ダウンロード可能なパフォーマンスレビューアプリケーションを使用します。ワークフローを簡素化し、効率を高めながら、ドキュメントの作成・管理方法を変革する準備を整えてください。
デスクトップクライアントでテンプレートを作成する
4D Write Proは、強力なテキスト処理ツールであり、その主な強みは、データベースにリンクされたドキュメントテンプレートを作成する機能にあります。この機能により、レター、契約書、請求書、カタログ、経費報告書など、様々な種類の文書を自動生成することができます。
Performance Reviewアプリケーションでは、関係する部門に応じていくつかの文書テンプレートが使用されます。例えば
POテンプレート

QAテンプレート

これらのテンプレートには、データベースに直接結びついた動的な計算式が組み込まれており、各部門用にパーソナライズされた文書を簡単に作成できます。
デスクトップ・アプリケーションのフォームを使えば、これらのテンプレートを簡単に作成できます。数式を簡単に追加するために、ドロップダウンリストは、テンプレートに関連するすべての数式を提案します。

これらの数式は、”WPexpression.json “と呼ばれるJSONファイルで定義されます。
以下はその抜粋です:
{
"式":[{
"name":"Lastname"、
"formula":"この.data.review.Employee.Lastname"
}, {
"name":"Firstname"、
"formula":"This.data.review.Employee.Firstname"
}, {
"name":"CollaboratorName"、
"formula":"This.data.review.Employee.Firstname+名"\"+This.data.review.Employee.Lastname(従業員名)"
}
]
}
4D Write ProとORDAの詳細については、こちらのブログをご覧ください:ORDAと4D Write Pro:パワーカップル
テーブル作成を簡素化するには、4D Write Proのインターフェースコンポーネントに組み込まれたテーブルウィザードが理想的です。

私たちのデータベース構造とシームレスに連動させるため、パフォーマンスレビュー文書に必要な数式を含む設定ファイルを追加しました。例えば
{
"tableDataSource":"This.data.review.Skills.orderBy( \"Group asc\")"、
"columns":[{
"check": true、
"header":"SkillName"、
"source":"この.item.Name"
}, {
"check": false、
"header":"checkCodeI"、
"source":"Choose(This.item.ID_Score=1;"¦"¦")"
}, {
"check": false、
"header":"checkCodeP"、
"source":"Choose(This.item.ID_Score=2;"╱"╱")"
},{
"check": false、
"header":"checkCodeR"、
"source":"Choose(This.item.ID_Score=3;"⇦"⇦")"
},{
"check": false、
"header":"checkCodeE"、
"source":"Choose(This.item.ID_Score=4;"⇦";"⇦")"
},{
"check": true、
"header":"ScoreName"、
"source":"この.item.Score.Name"
},{
"check": true、
"header":"ScoreCode"、
"source":"この.item.Score.Code"
}
],
"breaks":[{
"label":"スキルグループ(SkillGroup)"、
"source":"this.item.グループ"
}
],
"breakFormulas":[{
"label":GroupName": "グループ名"、
"source":"This.item.Group"
}
],
"extraFormulas":[{
"label":"ScoreSkillName"、
"source":"this.data.review.ScoreSkill.Name""スコアスキル名"
},{
"label":"ScoreSkillCode"、
"source":"this.data.review.ScoreSkill.Code".
},{
"label":"checkSkillScoreCodeI"、
"source":"Choose(This.data.review.ID_ScoreSkill=1;"¦"¦")"
}, {
"label":"CheckSkillScoreCodeP"、
"source":"Choose(This.data.review.ID_ScoreSkill=2; ¦"X"; ¦" } { "label": "CheckSkillScoreCodeP".
}, {
"label":"CheckSkillScoreCodeR"、
"source":"Choose(This.data.review.ID_ScoreSkill=3; ¦"X"; ¦" } { "label": "CheckSkillScoreCodeR".
}, {
"label":"CheckSkillScoreCodeE"、
"source":"Choose(This.data.review.ID_ScoreSkill=4; ¦"X"; ¦" } "label": "CheckSkillScoreCodeE".
}
]
}
これらの式を使用すると、スキルとスコアのテーブルを作成するのが非常に簡単になります。テーブルをカスタマイズした結果は以下のとおりです:

テーブルウィザードが提供する設定と機能の詳細については、こちらをご覧ください:
Web Clientでのデータ入力
テンプレートが作成されると、ユーザーは直感的なウェブインターフェイスから必要なデータを入力します。4D Qodly Proのおかげで、このステップはデータベースとシームレスに統合され、入力された情報がテンプレートで定義されたフィールドに確実に対応します。
これらのインターフェースのセットアップの詳細については、以前のブログをご覧ください:
最終ドキュメントの生成
最終ドキュメントは、ウェブインターフェースから直接生成されます。ユーザーが専用ボタンをクリックすると、”On Click “イベントが “selectedReview.generatePDF() “関数をトリガーします。

以下は、PDF文書の生成を管理するコードです:
Function generateDocument()->$doc:Object
var $context :Object
var $template :cs.TemplateEntity
// Create context
$context :=This.createContext()
// Load template
$template :=This.Employee.Departement.Template.Template
// Create 4D Write Pro document
$doc:=WP New($template)
WP SET DATA CONTEXT ($doc;$context)
WP COMPUTE FORMULAS ($doc)
return $doc
exposed Function generatePDF ()
var $WPdoc :Object
var $blob :4D.Blob
// Generate WP document
$WPdoc:=This.generateDocument()
// Convert to PDF
WP EXPORT VARIABLE ($WPdoc;$blob;wk pdf)
// Save in database
This .DocumentPDF:=$blob
This .save()
パーミッション
ウェブアプリケーションでは、ユーザーはテンプレートテーブルにアクセスできません。しかし、”Review.generatePDF “関数はPDFドキュメントを生成するためにこのデータにアクセスする必要があります。これを実現するために、関数に “プロモーション “を設定します。
- generatePDF “権限の作成:役割と権限」ページで、generatePDFという新しい権限を定義します。

- 読み取り権限の付与:DepartmentとTemplateデータクラスに読み取り権限を付与します。これらの権限は、ドキュメントの生成に必要なWrite Proテンプレートを見つけるために不可欠です。
- Review.generatePDF」関数をプロモートする:Review.generatePDF 関数にプロモート・オプションを割り当てます。このプロモートにより、この関数がサーバー上で呼び出されると、自動的にgeneratePDF権限を取得し、通常制限されたデータにアクセスできるようになります。

このメカニズムにより、データアクセスに対する高いセキュリティと制御を維持しながら、許可されたプロセスのみが一時的に権限を拡張して特定のタスクを実行できるようになります。
これで完了です!

次のステップ
4D Write Proと4D Qodly Proを組み合わせることで、事前に定義されたテンプレートとリアルタイムのデータをマージして、ダイナミックドキュメントの生成を自動化することができます。このアプローチには多くのメリットがあります:
- ドキュメントの自動化:ダイナミックテンプレートにより、手作業を削減。
- ワークフローの最適化:テンプレート作成(デスクトップクライアント)とデータ入力(ウェブクライアント)を明確に分離。
- 時間の節約と品質の向上:生産性と生成ドキュメントの品質を向上させる実用的なソリューションです。
あなたのプロジェクトでこのアプローチを試して、4D Write Proと4D Qodly Proを統合する利点を発見してください。ご意見、ご感想はお気軽にコメントください。
