Qodlyアプリケーションで4D Write Proを使用したダイナミックドキュメントの作成

Deeplからの自動翻訳

ドキュメントの管理と作成が重要なプロフェッショナル環境では、強力で柔軟なツールが不可欠です。デスクトップクライアントから直接、ダイナミックなドキュメントテンプレートをデザインし、データベースから数式やデータを統合し、直感的なウェブインターフェースを介してワンクリックでドキュメントを生成できることを想像してみてください。これこそが、4D Write Proと 4D Qodly Proが可能にすることです!

今週のブログでは、この2つのソリューションが、ドキュメントプロセスを自動化し最適化するために、どのようにお互いを補完し合っているかをご紹介します。4D Write Proでカスタムテンプレートを作成する方法と、4D Qodly Proのおかげで、ウェブユーザーが必要なデータを入力し、ドキュメント生成をトリガーし、さらにデータベースに保存するか、計算された属性で返すかを選択する方法をご紹介します。

このプロセスをデモンストレーションするために、ダウンロード可能なパフォーマンスレビューアプリケーションを使用します。ワークフローを簡素化し、効率を高めながら、ドキュメントの作成・管理方法を変革する準備を整えてください。

パフォーマンス・レビュー・アプリケーション

デスクトップクライアントでテンプレートを作成する

4D Write Proは、強力なテキスト処理ツールであり、その主な強みは、データベースにリンクされたドキュメントテンプレートを作成する機能にあります。この機能により、レター、契約書、請求書、カタログ、経費報告書など、様々な種類の文書を自動生成することができます。

Performance Reviewアプリケーションでは、関係する部門に応じていくつかの文書テンプレートが使用されます。例えば

POテンプレート

 

QAテンプレート

blank

これらのテンプレートには、データベースに直接結びついた動的な計算式が組み込まれており、各部門用にパーソナライズされた文書を簡単に作成できます。

デスクトップ・アプリケーションのフォームを使えば、これらのテンプレートを簡単に作成できます。数式を簡単に追加するために、ドロップダウンリストは、テンプレートに関連するすべての数式を提案します。

blank

これらの数式は、”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のインターフェースコンポーネントに組み込まれたテーブルウィザードが理想的です。

blank

私たちのデータベース構造とシームレスに連動させるため、パフォーマンスレビュー文書に必要な数式を含む設定ファイルを追加しました。例えば

{
    "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".
        }
    ]
}

これらの式を使用すると、スキルとスコアのテーブルを作成するのが非常に簡単になります。テーブルをカスタマイズした結果は以下のとおりです:

blank

テーブルウィザードが提供する設定と機能の詳細については、こちらをご覧ください:

Web Clientでのデータ入力

テンプレートが作成されると、ユーザーは直感的なウェブインターフェイスから必要なデータを入力します。4D Qodly Proのおかげで、このステップはデータベースとシームレスに統合され、入力された情報がテンプレートで定義されたフィールドに確実に対応します。

これらのインターフェースのセットアップの詳細については、以前のブログをご覧ください:

最終ドキュメントの生成

最終ドキュメントは、ウェブインターフェースから直接生成されます。ユーザーが専用ボタンをクリックすると、”On Click “イベントが “selectedReview.generatePDF() “関数をトリガーします。

blank

 

以下は、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という新しい権限を定義します。

 

A dark-themed user interface section with two tabs: "Roles" and "Privileges," with "Privileges" currently selected in purple. Below, a "Privileges" section lists three privilege items:

    "guest" with an info icon.
    "createReview" with edit and delete icons.
    "generatePDF" with edit and delete icons, highlighted with a purple border.

A plus (+) button in the top right allows adding new privileges.

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

 

A dark-themed user interface panel titled "Include a privilege." At the top, several privilege tags such as "createReview," "none," "authentify," "user," and "hr" are displayed. Below, there is a search bar labeled "Search available permissions" and a button to create a permission. Two buttons, "Reset" (red) and "Clear" (purple), are present.

A table lists different permissions with columns for Read, Create, Update, Delete, Execute, and Promote.

    "Department" has no checkboxes selected.
    "Review.generatePDF" has Read and Promote checked.
    "Template" has only Read checked.

On the right, a toggle switch labeled "Show inherited permissions" is set to off.

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

これで完了です!

blank

次のステップ

4D Write Proと4D Qodly Proを組み合わせることで、事前に定義されたテンプレートとリアルタイムのデータをマージして、ダイナミックドキュメントの生成を自動化することができます。このアプローチには多くのメリットがあります:

  • ドキュメントの自動化:ダイナミックテンプレートにより、手作業を削減。
  • ワークフローの最適化:テンプレート作成(デスクトップクライアント)とデータ入力(ウェブクライアント)を明確に分離。
  • 時間の節約と品質の向上:生産性と生成ドキュメントの品質を向上させる実用的なソリューションです。

 

あなたのプロジェクトでこのアプローチを試して、4D Write Proと4D Qodly Proを統合する利点を発見してください。ご意見、ご感想はお気軽にコメントください。

Vanessa Talbot
- プロダクトオーナー - Vanessa Talbotは、2014年6月に4Dプログラムチームに参加しました。プロダクトオーナーとして、彼女はユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換する役割を担っています。また彼女の役割は、実装された機能が顧客のニーズを満たしているかどうかを確認することでもあります。入社以来、4Dにおける主要機能の定義に関わってきました。プリエンプティブ/マルチスレッドの新機能の大部分と、非常に複雑なテーマである組み込みアプリケーションの新アーキテクチャに取り組んできました。VanessaはTelecom Saint-Etienneで学位を取得後、Criminal Research Institute でオーディオビジュアル部門の開発者としてキャリアをスタートさせました。また、メディアや医療の分野でも、技術サポートやプロダクションの分野で働いてきました。