「インクルード」の使用例
インクルード機能を使用するにあたり、プリザンターでの設定と、拡張サーバスクリプトの設定が必要となります。
今回は「単価と数量で合計金額を計算する」という簡単な要件で設定を行います。
■プリザンターでの設定
任意のテーブルを用意し、編集画面に「数値A(単価)」「数値B(数量)」「数値C(合計金額)」を表示します。
数値Aと数値Bは「自動ポストバック」にチェックを入れ、「自動ポストバック時に返却する項目」に NumC と記述します。
次に、サーバスクリプトを設定します。新規作成ボタンをクリックし、任意のタイトル、条件に「画面表示の前」を設定し、スクリプト欄に以下を記述します。
「インクルード」を使用する場合は、以下のようにサーバスクリプト中に「//Include」で始まる一行追記します。前述の通り、//Include はサーバスクリプトの任意の位置に記述して使用します。
Name が "TrialCalculation" の拡張サーバスクリプトを読み込み、//Include を記述した位置(今回は最後)に挿入します。
// 単価(NumA), 数量(NumB) に入力されている値を読み取り
var unitPrice = model.NumA;
var quantity = model.NumB;
// 合計金額を計算
model.NumC = CalcTotalPrice(unitPrice, quantity);
//Include: TrialCalculation
■拡張サーバスクリプトの設定
拡張サーバスクリプトは、.¥Pleasanter¥App_Data¥Parameters¥ExtendedServerScripts¥ 配下(Windows使用時の標準パス)にJSON形式で作成し、JSONファイルとして保存します。
下記の例では、サイトID:21455 で、"BeforeOpeningPage": true により画面表示の前にBodyに記述されたスクリプトが実行されます。
プリザンターでの設定で行ったサーバスクリプトに記述した通り、ここでは "Name": "TrialCalculation" と設定します。設定項目の詳細については、マニュアル をご確認ください。
これらを任意のファイル名で、ファイルの拡張子を必ず json にして保存します。(例:CCSBlog292.json)
{
"Name": "TrialCalculation",
"SiteIdList": [21455],
"BeforeOpeningPage": true,
"Body": "function CalcTotalPrice(unitPrice,quantity){return unitPrice*quantity;}"
}
なお、拡張スクリプトのJSONファイルやスクリプトファイルの反映には、プリザンターの再起動が必要です。Windows環境の場合はIIS、Linux環境の場合はプリザンターのサービスを再起動してください。
※拡張サーバスクリプトに誤りがあるとプリザンターがエラーで閲覧できなくなる場合があります。十分注意して設定してください。
プリザンターでの設定、拡張サーバスクリプトの設定後にプリザンターの再起動まで完了したら、実際の動きを見てみましょう。
単価と数量が入力されると、合計金額が計算されることが確認できますね。


まとめ
いかがでしたか?
今回ご紹介した「インクルード」は拡張性が高い反面、少しハードルが高いと感じられるかもしれません。しかしながら、一度仕組みを構築すれば複数のスクリプト間のコード管理が容易になり、運用効率や保守性は大きく向上します。
前回の「コードの共有」でご紹介した内容とあわせて、「サーバスクリプトを上手く使えていない」というお悩みを解消する一助となれば幸いです。
弊社ではプリザンターをご使用中、または、これからご使用になられる方向けに 各種書籍の販売 、プリザンターからの Excel帳票出力・PDF帳票出力の支援パック販売 を行っております。
また、年間サポート では日々の操作や設定に関するご質問、トラブル発生時の調査などの技術サポート、プリザンターをより活用いただくための拡張コンテンツをご提供しております。
プリザンターの導入からスクリプト開発、年間サポートなど、ビジネスをあらゆる角度から全力サポートいたします。ぜひお気軽にご相談ください!
※ご相談の内容によっては有料となる場合がございます。予めご了承ください。
☆☆☆
ブログ内容への質問や追加説明をご希望の方は【 問い合わせフォーム 】からお気軽にお問い合わせください
☆☆☆
共通関数などコードの一元管理を実現
こんにちは、シーイーシーカスタマサービスの森山です。
「サーバースクリプトを上手く使えていない」という方のお困りごとの解消の一助として、前回の記事でご紹介した「コードの共有」に続き、今回は「インクルード」についてご紹介します。
「インクルード」は、拡張サーバスクリプトで記述した内容をテーブルに設定したサーバスクリプト内の任意の位置に挿入できる機能です。
前回ご紹介した「コードの共有」は、サーバスクリプトの先頭に読み込まれ処理されるのに対し、「インクルード」は必要な箇所に自由にスクリプトを組み込めることが大きな特徴です。
これにより、より柔軟にコード全体の構成を管理できるようになります。
「インクルード」を使うことで、以下のようなメリットが得られます。
・コード全体の可読性向上
必要な部分に必要なコードを挿入することで、スクリプトが長くなりすぎることを防ぎ、可読性を維持できます。特に、同じ処理を複数のスクリプトで利用したい場合でも、コードを一か所にまとめて管理できるため、複雑化を抑えやすくなります。
・効率的なメンテナンス
「コードの共有」と同様に、重複した処理部分をまとめておけば、修正やメンテナンスが必要になった際に一括で変更できるため、複数箇所に同様の修正を施す作業を減らすことができます。結果として、保守性が大幅に向上します。
・書き方の柔軟性
「コードの共有」はサーバスクリプトの先頭で読み込まれるのに対し、「インクルード」は必要な位置にスクリプトを挿入できます。例えば、条件分岐や変数宣言の直後に外部コードを挿入したい場合など、レイアウトに合わせた制御が行えるため、カスタマイズがしやすくなります。
ただし、「インクルード」を使うには拡張サーバスクリプトを設定する必要があり、プリザンターの画面上のみで設定することはできません。
導入時には管理者や開発チームで運用ルールを決め、作業手順を周知徹底することをお勧めします。
以上を踏まえて、実際の設定を交えながら「インクルード」機能をご紹介します。