CUSTOMIZE RECIPES
標準機能で足りないときの実現レシピ
グラフと集計、帳票出力と印刷、多段の承認ワークフロー、明細の一括入力、期限の通知、入力チェック、計算式、別のテーブルの値の参照、ほかのシステムとの連携、社外の人の入力、自動採番、アクセス制御について、標準機能でできる範囲と、足りないときの実現のしかたをまとめました。スクリプト・サーバスクリプト・API・拡張SQLのどれを使うかを題材ごとに示し、手順とサンプルコードはマニュアルの該当ページへご案内します。
題材から探す
プリザンターは、標準機能で作ったアプリに、足りないところだけをコードで補えます。題材ごとに、まず標準機能でできることを確かめ、そのうえで足りない部分の実現のしかたをご覧ください。
| 題材 | 標準機能でできること | 足りないときの手段 |
|---|---|---|
| グラフ・集計・ダッシュボードで見せたい | 分析チャート、時系列チャート、クロス集計、一覧画面の集計、ダッシュボード | ダッシュボードのカスタムHTML、APIで外部のツールとつなぐ |
| 帳票出力・印刷・PDF出力をしたい | CSVファイルへのエクスポート、ブラウザでの印刷 | 決まった書式のExcel・PDFは認定パートナーのソリューション、スタイル(CSS)で印刷時の表示を整える、APIで外部のツールとつなぐ |
| 多段の承認ワークフローを作りたい | プロセス、状況による制御 | サーバスクリプトで承認ルートを自動で設定する |
| 明細をまとめて入力したい・取り込みたい | リンク(親子のテーブル)、一覧編集、CSVファイルのインポート | APIでまとめて作成・更新する、スクリプト・サーバスクリプトでレコードを作る |
| 期限が近づいたら自動で知らせたい | リマインダー、通知 | サーバスクリプトで通知を送る、バックグラウンドサーバスクリプト |
| 業務に合わせた入力チェックを入れたい | 入力必須、入力検証(正規表現)、状況による制御 | スクリプト・サーバスクリプトで独自の検証を行う |
| 計算式で足りない計算をしたい | 計算式(既定・拡張) | サーバスクリプトで計算する、スクリプトで値を入れる |
| 別のテーブルの値を引きたい(リンク・ルックアップ) | リンク、ルックアップ、サマリ | スクリプト・サーバスクリプトでレコードを取得する、拡張SQLで外部のデータベースを参照する |
| ほかのシステムとつなぎたい(API) | 通知(HTTPクライアント)、CSVファイルのインポート・エクスポート | API、サーバスクリプト(httpClient)、拡張SQL |
| 社外の人に入力してもらいたい(フォーム) | フォーム(期間を限った公開) | APIで外部のプログラムから登録する |
| 番号を自動で振りたい(自動採番) | 項目の自動採番 | プロセスの自動採番で、決まったタイミングで振る |
| 人や部署で見せる範囲を変えたい(権限・アクセス制御) | テーブル・レコード・項目・ビュー・プロセスのアクセス制御 | サーバスクリプト・拡張SQLで、見せるレコードを条件で絞る |
グラフ・集計・ダッシュボードで見せたい
テーブルには、集計とチャートの表示が標準で用意されています。まず標準の表示で足りるかを確かめ、足りない部分を、ダッシュボードのカスタムHTMLや、APIでつないだ外部のツールで補います。
標準機能でできること
- 分析チャート:状況・担当者・分類などの項目ごとに、件数・合計・平均・最大・最小を円グラフで表示します。円グラフは複数並べられます
- 時系列チャート:分類項目ごとの件数や、数値項目の合計・平均などを、面または折れ線のチャートで表示します。横軸は、日付項目や履歴から選べます
- クロス集計:列に分類項目か日付項目、行に分類項目か数値項目を選んで集計します。バージョン1.5.8.0以降では、セルをクリックして、集計の対象になったレコードを一覧で確かめられます
- 一覧画面の集計:レコードの件数や、数値項目の合計・平均などを、一覧画面に表示します。フィルタをかけると、その条件で集計し直します
- ダッシュボード:タイムライン・カレンダー・カンバン・一覧などのパーツを並べられます。カレンダーと一覧のパーツでは、複数のテーブルのレコードをまとめて表示できます
分析チャートと時系列チャートの有効・無効は、テーブルの管理で切り替えられます。
足りないときの実現のしかた
| 手段 | できること |
|---|---|
| ダッシュボードのカスタムHTML | ダッシュボードに、指定したHTMLを表示するパーツを置けます。外部のツールで作ったグラフを埋め込んだり、スクリプト・スタイルと組み合わせたりして使います |
| APIで外部のツールとつなぐ | 複数レコード取得のAPIや、テーブルのエクスポートのAPIでデータを取り出し、外部のツールで集計やグラフ化を行います。複数レコード取得のAPIが1回で返す件数には上限があり、続きを取得する方法はFAQにあります |
| スクリプトのイベント | 分析チャート・時系列チャート・クロス集計の画面を読み込んだときに、スクリプトの処理を実行できます |
| データベースのビュー | データベースを直接参照するツールを使う場合に向けて、プリザンターで設定した日本語の表示名でデータベースのビューを作るサンプルが、FAQにあります(SQL Serverの環境向け) |
| 認定パートナーのソリューション | グラフ表示やデータの可視化のソリューションを、認定パートナーが提供しています |
マニュアルの該当ページ
標準機能
マニュアル:レコードの分析チャート表示
マニュアル:レコードの時系列チャート表示
マニュアル:レコードのクロス集計表示
マニュアル:レコードの集計
マニュアル:ダッシュボード機能
足りないとき
マニュアル:ダッシュボード機能:カスタムHTML
マニュアル:API:複数レコード取得
マニュアル:API:テーブルのエクスポート
FAQ:APIで200レコードを超えるデータを取得したい
マニュアル:スクリプト:イベント発火
FAQ:プリザンターに設定した日本語の表示名でデータベースのビューを作成したい
認定パートナーが提供するソリューション(BI・視覚化)
うまくいかないときは、年間サポートで書き方を聞けます。
年間サポートで聞けること
帳票出力・印刷・PDF出力をしたい
帳票の出し方は、何をしたいかで選びます。入力したデータを帳票に出力して印刷することについて、マニュアルのFAQでは、認定パートナーが提供するソリューションを使う方法を案内しています。
やりたいことから選ぶ
- 画面をそのまま印刷できればよい:ブラウザの印刷機能で印刷します。印刷のときの表示は、スタイル(CSS)で整えられます
- 決まった書式のExcel・PDFで出したい:認定パートナーのソリューションを使います。Excel・PDFで帳票を出力するツールや、帳票出力の実装を代行するサービスがあり、無償で公開されているものもあります
- 自分で作る:エクスポートやAPIでデータを取り出し、表計算ソフトなど外部のツールで帳票の形にします
標準機能でできること
- エクスポート:一覧画面で選んだレコード(選ばなければすべてのレコード)を、CSVファイルに書き出せます。書き出す項目の順序などは、テーブルの管理の「エクスポート」で書式として設定できます
- 印刷:画面は、ブラウザの印刷機能で印刷します
足りないときの実現のしかた
| 手段 | できること |
|---|---|
| スタイル(CSS) | 印刷のときだけ、画面下部のコマンドボタンなどを非表示にできます。下のコードは、マニュアルのFAQに載っているサンプルです |
| 認定パートナーのソリューション | Excel・PDFで帳票を出力するソリューションを、認定パートナーが提供しています |
| APIで外部のツールとつなぐ | APIでレコードを取り出し、表計算ソフトなど外部のツールで帳票の形にします。Excel VBAからAPIでレコードを取得して、シートに転記するサンプルがFAQにあります |
| プロセスのボタン | プロセス機能のボタンには、スクリプトを実行するアクションを設定できます。マニュアルでは設定例として、状況が承認済み以降のときに画面を印刷する「印刷」ボタンを挙げています |
| サーバスクリプトでのファイル出力 | テーブルのデータを、サーバー上のフォルダにCSVファイルとしてエクスポートするサンプルがあります。使うには、パラメータ(Script.json)での設定が要ります |
@media print {
#MainCommandsContainer { /* コマンドボタン */
display:none;
}
#Footer { /* Copyright表記 */
display:none;
}
}
テーブルの管理の「スタイル」に登録して使います。手順は、下のFAQにあります。
マニュアルの該当ページ
標準機能
マニュアル:レコードのエクスポート
マニュアル:テーブルの管理:エクスポート(書式の設定)
足りないとき
FAQ:印刷時に画面下部のコマンドボタンを非表示にしたい
マニュアル:開発者ガイド:スタイル
FAQ:入力したデータを帳票に出力して印刷したい
認定パートナーが提供するソリューション(Excel・帳票出力)
FAQ:ExcelからPleasanterへアクセスしたい
マニュアル:応用編:プロセスと状況による制御
マニュアル:サーバスクリプトによるファイルエクスポートサンプル
うまくいかないときは、年間サポートで書き方を聞けます。
年間サポートで聞けること
多段の承認ワークフローを作りたい
申請・承認・差戻しの流れは、標準機能の「プロセス」と「状況による制御」で作れます。金額によって承認の段数が変わる稟議申請の例が、設定のしかたと合わせてマニュアルにあります。承認者を所属や金額から自動で決めたい場合は、サーバスクリプトを足します。
標準機能でできること
- プロセス:状況を進めるボタン、入力検証、状況ごとの条件、ボタンを表示する相手のアクセス制御、自動採番、ボタンを押したときの通知を設定できます
- 状況による制御:状況に応じて、レコードを読取専用にしたり、項目ごとに入力必須・読取専用・非表示を設定したりできます
- 多段の例:マニュアルのサンプルコード集に、申請金額に応じて最大3段階の承認を経て経理で確定する、差戻しつきの承認プロセスを、プロセスと状況による制御で作る例があります。デモ環境の「稟議申請の例」で、設定を確かめられます
インポート・一括更新・APIでレコードを登録・更新するときは、状況による制御の読取専用や入力必須の設定は働きません。
足りないときの実現のしかた
| 手段 | できること |
|---|---|
| サーバスクリプト | 申請者の所属部署と申請金額から承認ルートを自動で設定し、決裁者へのメール通知、承認時の次の決裁者への更新、承認された申請の読取専用化までを行う例が、サンプルコード集にあります。6つのサーバスクリプトで構成されていて、インポートして試せるサイトパッケージも公開されています |
| スクリプト | 編集画面のスクリプトから、指定したプロセスを実行できます($p.execProcess) |
| 流れを図で確かめる | Enterprise EditionのSite Visualizerで、設定したプロセスの流れを図で確かめられます(プロセス図表示は、バージョン1.5.4.0以降) |
マニュアルの該当ページ
標準機能
マニュアル:テーブルの管理:プロセス
マニュアル:テーブルの管理:状況による制御
マニュアル:応用編:プロセスと状況による制御
FAQ:稟議申請などのワークフロー(承認プロセス)をプロセス機能で実現する
FAQ:項目の非表示や読取専用などの状態変更を「状況による制御」機能で実現する
FAQ:利用シーンにあわせた通知設定をしたい(承認担当者のグループへの通知の例)
足りないとき
マニュアル:サンプルコード集
FAQ:稟議申請などのワークフロー(承認プロセス)をサーバスクリプトで実現する
FAQ:稟議申請ワークフローの例のサイトパッケージをインポートする
マニュアル:スクリプト:$p.execProcess
マニュアル:Site Visualizer:プロセス図表示
プリザンターで作るワークフローの紹介
うまくいかないときは、年間サポートで書き方を聞けます。
年間サポートで聞けること
明細をまとめて入力したい・取り込みたい
1件の見出しに複数の明細がつくデータは、見出しのテーブルと明細のテーブルを分けて、リンクで親子の関係にできます。明細をまとめて入れるには、一覧画面での編集、CSVファイルのインポート、APIなどの方法があります。
標準機能でできること
- リンク:テーブルの間に親子の関係を設定できます。親のレコードの編集画面に、リンクした子のレコードの一覧と、子のテーブルへの新規作成ボタンが表示されます
- サマリ:子のレコードの件数や、数値項目の合計・平均・最大・最小を、親のレコードの数値項目に入れられます
- 一覧編集:一覧編集種別を「一覧画面で編集」にすると、編集画面に移らずに、一覧画面でレコードを編集できます。タイトル・内容の項目やコメントの項目は編集できないなどの制限があります
- インポート:CSVファイルから、レコードをまとめて取り込めます。キーにする項目を指定して、すでにあるレコードを更新することもできます
足りないときの実現のしかた
| 手段 | できること |
|---|---|
| API(レコード一括作成・更新) | 1回のリクエストで、複数のレコードを作成・更新できます。キーに指定した項目が一致するレコードは更新し、一致するレコードが無ければ新しく作ります。1回に扱える件数の上限は、パラメータ(General.jsonのBulkUpsertMax)で決まります。途中でエラーが起きると、それ以降の処理は中止されます |
| API(レコードのインポート) | CSVファイルを読み込んでレコードを作成・更新するバッチ処理のサンプルが、FAQにあります |
| スクリプト | 画面のスクリプトから、レコードを作成できます($p.apiCreate)。更新ボタンを押したあとに、別のテーブルにレコードを作るサンプルがFAQにあります |
| サーバスクリプト | サーバー側で、指定したテーブルにレコードを作成できます(items.Create)。サーバー上のフォルダに置いたCSVファイルをインポートするサンプルもあります |
{
"ApiVersion": "1.1",
"ApiKey": "(APIキー)",
"Keys": [
"ClassA"
],
"KeyNotFoundCreate": true,
"Data": [
{
"Title": "新機能XXを開発する1",
"ClassHash": {
"ClassA": "RC0001"
}
},
{
"Title": "新機能XXを開発する2",
"ClassHash": {
"ClassA": "RC0002"
}
}
]
}
マニュアルに載っているサンプルです。このJSONを、/api/items/{サイトID}/bulkupsert にPOSTします。この例では、分類Aをキーにしています。APIキーは、環境に合わせて読み替えてください。
マニュアルの該当ページ
標準機能
マニュアル:応用編:リンク
マニュアル:テーブルの管理:サマリ
マニュアル:レコードの一覧編集
マニュアル:テーブルの管理:一覧編集種別
マニュアル:レコードのインポート
マニュアル:インポート時のキー項目指定
足りないとき
マニュアル:API:レコード一括作成・更新
FAQ:バッチ処理でCSVファイルを読み込んで対象のレコードを作成または更新したい
マニュアル:スクリプト:$p.apiCreate
FAQ:更新ボタンを押したタイミングで別テーブルに新規レコードを作成したい
マニュアル:サーバスクリプト:items.Create
マニュアル:サーバスクリプトによるファイルインポートサンプル
うまくいかないときは、年間サポートで書き方を聞けます。
年間サポートで聞けること
期限が近づいたら自動で知らせたい
期日をもとにした通知は、標準機能の「リマインダー」で設定できます。標準の条件や宛先で足りない場合は、サーバスクリプトから通知を送ります。
標準機能でできること
- リマインダー:期日を過ぎたレコードや、指定した範囲内で期日が近づいたレコードを、指定した時刻と周期(毎日・毎週・毎月など)で通知します。通知には、メールやチャットツールを使えます
- 対象の絞り込み:状況が完了・保留のレコードは、既定では通知されません。条件にビューを指定して、対象を絞ることもできます
- 宛先:固定のメールアドレスのほか、レコードの担当者・管理者や、項目に書かれたメールアドレスを宛先にできます
- 通知:レコードの作成・更新・削除のときに通知します。ビューと組み合わせて、通知する条件を指定できます
リマインダーを使うには、あらかじめサーバー側でリマインダー機能を有効にしておきます。
足りないときの実現のしかた
| 手段 | できること |
|---|---|
| サーバスクリプト | 通知のオブジェクトを作り、任意のタイミングで通知を送れます(notifications.New・notification.Send)。下のコードは、マニュアルに載っているメール送信のサンプルです |
| バックグラウンドサーバスクリプト | サーバスクリプトを、毎時・毎日・毎週・毎月などのスケジュールで実行できます。設定できるのは特権ユーザだけで、パラメータ(Script.json)で有効にしておく必要があります。処理によっては、テナント全体に負荷がかかることがあります |
let notification = notifications.New();
notification.Address = 'xxxxx@example.com';
notification.CcAddress = 'yyyyy@example.com';
notification.BccAddress = 'zzzzz@example.com';
notification.Title = '通知テスト';
notification.Body = 'サーバスクリプトから通知しています。';
notification.Send();
使うには、パラメータ(Notification.json)で、対象の通知種別を有効にしておきます。
マニュアルの該当ページ
標準機能
マニュアル:テーブルの管理:リマインダー
マニュアル:リマインダーの宛先を動的に設定する
マニュアル:プリザンターのリマインダー機能を有効化する
マニュアル:テーブルの管理:通知
足りないとき
マニュアル:サーバスクリプト:notifications
マニュアル:サーバスクリプト:notification.Send
マニュアル:テナント管理機能:バックグラウンドサーバスクリプト
マニュアル:大規模環境でリマインダー利用におけるDBの定常負荷を低減する
うまくいかないときは、年間サポートで書き方を聞けます。
年間サポートで聞けること
業務に合わせた入力チェックを入れたい
入力必須と、正規表現による入力検証は、標準機能で設定できます。標準の設定で表せないチェックは、スクリプトやサーバスクリプトで行います。
標準機能でできること
- 入力必須:項目ごとに、入力必須を設定できます
- 入力検証:タイトル・内容・分類・説明・コメントの項目は、入力した内容を正規表現で検証し、エラーメッセージを表示できます。項目からフォーカスが移ったときの検証と、レコードの作成・更新のときの検証を設定できます
- 状況による制御:状況に応じて、項目を入力必須にできます。日付が未入力のときに、別の項目を入力必須にする設定例がFAQにあります
- プロセス:プロセスのボタンごとに、入力検証を設定できます
足りないときの実現のしかた
| 手段 | できること |
|---|---|
| スクリプト | 独自の入力検証を行い、結果をメッセージで表示できます($p.events.before_validate)。サンプルがFAQにあります。スクリプトはブラウザ上で動くため、APIでの更新やインポートのときには働きません |
| サーバスクリプト | レコードの作成前・更新前・削除前に判定を行い、エラーのときは処理をキャンセルして、メッセージを画面に表示できます(context.Error)。コードの例は、開発者向けのページにあります |
マニュアルの該当ページ
標準機能
マニュアル:項目の詳細設定:入力必須
マニュアル:項目の詳細設定:入力検証
FAQ:日付が未入力の場合に別の分類項目を入力必須にしたい
マニュアル:プロセス:入力検証
足りないとき
FAQ:独自の入力検証を行い、その結果によりメッセージを表示したい
マニュアル:スクリプト:$p.events.before_validate
マニュアル:サーバスクリプト:context.Error
開発者向けのページ(サーバスクリプトで更新を止めるコードの例)
うまくいかないときは、年間サポートで書き方を聞けます。
年間サポートで聞けること
計算式で足りない計算をしたい
項目の値を使った計算は、テーブルの管理の「計算式」で設定できます。計算式で表せない計算や、状況などの値に応じて項目の値を決めたい場合は、サーバスクリプトやスクリプトで補います。
標準機能でできること
- 計算式(既定):数値項目を対象に、四則演算と、かっこによる計算順序の変更ができます
- 計算式(拡張):数値・分類・日付・説明・チェックの項目を使い、関数(日付・時刻、文字列、論理、数学、統計など)と場合分けの計算ができます。関数を使うときは「拡張」を選びます
- 計算のタイミング:画面を表示したとき、レコードを追加・更新・削除したときに計算します。計算式を足す前に作ったレコードには、「同期」で反映します
- 条件つきの計算:ビューのフィルタ条件を満たすときと、満たさないときとで、別の計算式を使えます
計算式(拡張)でエラーが起きたときは、計算結果は表示されませんが、レコードの更新は正常に終わります。
足りないときの実現のしかた
| 手段 | できること |
|---|---|
| サーバスクリプト | 実行する条件に「計算式の前」「計算式の後」があり、計算式の実行の前後で項目の値を変えられます。誕生日から年齢を計算するサンプルと、状況の値から進捗率を設定するサンプルが、FAQにあります |
| スクリプト | 画面で項目の値を変えたときに、別の項目の値を変えられます($p.on・$p.set)。サンプルがFAQにあります |
マニュアルの該当ページ
標準機能
マニュアル:テーブルの管理:計算式
マニュアル:計算式(既定)
マニュアル:計算式(拡張)
マニュアル:計算式(拡張)の関数
足りないとき
FAQ:編集画面を登録・更新する際に誕生日から年齢を自動計算したい
FAQ:状況項目の値により進捗率を自動で指定する
マニュアル:サーバスクリプト:条件
FAQ:ある項目の値を特定の値に変更したときに別の項目の値を変更する
うまくいかないときは、年間サポートで書き方を聞けます。
年間サポートで聞けること
別のテーブルの値を引きたい(リンク・ルックアップ)
顧客や商品などのマスタのテーブルは、リンクでつなぎ、選んだレコードの値をルックアップで項目に転記できます。転記で足りない取り方は、スクリプトやサーバスクリプトでレコードを取得して補います。
標準機能でできること
- リンク:親のテーブルのタイトルを、子のテーブルの分類項目に選択肢として表示します。選択肢に親のタイトル以外の項目を出したり、画面の項目の値で選択肢を絞り込んだりもできます
- ルックアップ:リンク先のレコードを選んだときに、その項目の値を自分のテーブルの項目に転記します。たとえば商談のテーブルで顧客を選ぶと、顧客のテーブルの住所や電話番号を転記できます。組織・グループ・ユーザの情報も転記できます
- 一覧画面:リンクしたテーブルの、タイトル以外の項目を一覧に表示できます
- サマリ:子のレコードの件数や、数値項目の合計・平均などを、親のレコードの数値項目に入れられます
ルックアップは転記した値を登録するので、親のテーブルの値をあとで変えても、転記した値は変わりません。複数選択にした項目では使えません。
足りないときの実現のしかた
| 手段 | できること |
|---|---|
| スクリプト | リンク先のレコードを $p.apiGet で取得し、その値を項目に入れるサンプルが、FAQにあります |
| サーバスクリプト | 指定したレコードや、指定したテーブルのレコードを取得できます(items.Get) |
| 親・子・孫のサマリ | サマリは子から親への1階層だけで働きます。孫の結果を親に反映するには、スクリプトかサーバスクリプトを使います(FAQ) |
| 拡張SQL | 外部のデータベースのテーブルを参照する方法が、FAQにあります(SQL Serverはリンクサーバー、PostgreSQLはFDWを使います) |
マニュアルの該当ページ
標準機能
マニュアル:応用編:リンク
マニュアル:項目の詳細設定:ルックアップ
FAQ:ルックアップ機能を使用して組織・ユーザ・グループの情報を取得する
FAQ:親テーブル、子テーブルの項目を一覧画面に表示したい
マニュアル:テーブルの管理:サマリ
足りないとき
FAQ:親テーブルの項目の値を子テーブルの項目に転記したい
マニュアル:スクリプト:$p.apiGet
マニュアル:サーバスクリプト:items.Get
FAQ:親・子・孫とリンクしているとき、孫テーブルのサマリ結果が親テーブルに反映されない
FAQ:プリザンターから外部DBのテーブルを参照したい
うまくいかないときは、年間サポートで書き方を聞けます。
年間サポートで聞けること
ほかのシステムとつなぎたい(API)
ほかのシステムとのデータのやり取りは、APIで行います。コードを書かずにできるのは、CSVファイルのインポート・エクスポートと、レコードの作成・更新・削除のときに通知を送ることです。
標準機能でできること
- 通知:レコードの作成・更新・削除のときに、メールやチャットツールに通知します。通知種別に「HTTPクライアント」を選ぶと、指定したURLにリクエスト(GET・POST・PUT・DELETE)を送れます(バージョン1.3.17.0以降。パラメータ(Notification.json)で有効にします)
- インポート・エクスポート:CSVファイルで、レコードを取り込んだり書き出したりできます
足りないときの実現のしかた
| 手段 | できること |
|---|---|
| API | ほかのシステムから、レコードの取得・作成・更新・削除、一括作成・更新、インポート、エクスポートなどを行えます。外部のプログラムから使うには、ユーザごとにAPIキーを作成します |
| サーバスクリプト(httpClient) | サーバスクリプトから、外部のサービスに接続してAPIを呼び出せます |
| 拡張SQL | SQL Serverのリンクサーバーや、PostgreSQLのDBリンクを使って、別のシステムのデータベースに対してSQLを実行できます。APIから呼び出して実行することもできます。テーブルの権限の確認は行われないため、SQLの中で確認が要ります |
| FAQのサンプル | バッチ処理でCSVファイルを読み込んでレコードを作成・更新するサンプルと、Excel VBAからAPIでレコードを取得するサンプルがあります |
マニュアルの該当ページ
標準機能
マニュアル:テーブルの管理:通知
マニュアル:HTTPクライアントで通知できるように設定する
マニュアル:レコードのインポート
マニュアル:レコードのエクスポート
足りないとき
マニュアル:API
マニュアル:APIキーの作成
マニュアル:サーバスクリプト:httpClient
マニュアル:拡張SQL
FAQ:プリザンターから外部DBのテーブルを参照したい
FAQ:バッチ処理でCSVファイルを読み込んで対象のレコードを作成または更新したい
FAQ:ExcelからPleasanterへアクセスしたい
うまくいかないときは、年間サポートで書き方を聞けます。
年間サポートで聞けること
社外の人に入力してもらいたい(フォーム)
プリザンターのアカウントを持たない社外の人には、フォーム機能でテーブルを期間を限って公開し、レコードを作成してもらえます(バージョン1.4.23.0以降)。
標準機能でできること
- フォーム:記録テーブルまたは期限付きテーブルを、公開アドレスで、アカウントを持たない外部のユーザに公開します。外部のユーザは、公開アドレスからレコードを作成できます
- 公開の期間:開始日時と終了日時を設定できます(UTCで設定します)。期間外にアクセスした人には、利用できない旨を表示します。送信したあとに、回答者への伝達事項を表示できます
- 入力する項目:公開する画面の項目は、ふだんのエディタの設定で作ります
- 安全に使うための設定:CAPTCHA(Cloudflare Turnstile・Google reCAPTCHA)を使えます。SSL/TLSの導入が推奨されています
使うには、パラメータ(Form.json)でフォーム機能を有効にし、プリザンターを再起動します。ログインしているユーザの権限で動く一部のスクリプト・サーバスクリプトは、フォームでは動きません。
足りないときの実現のしかた
フォームで足りない場合の代わりの作り方は、マニュアルにはサンプルがありません。ほかのシステムやWebサイトからデータを登録する場合は、APIを使います(ほかのシステムとつなぎたい)。
| 手段 | できること |
|---|---|
| API | 外部のプログラムから、APIキーを使ってレコードを作成できます |
マニュアルの該当ページ
標準機能
マニュアル:テーブルの管理:フォーム
マニュアル:フォーム:基本設定
マニュアル:フォーム:より安全に利用するための設定
マニュアル:パラメータ:Form.json
足りないとき
マニュアル:API:レコード作成
うまくいかないときは、年間サポートで書き方を聞けます。
年間サポートで聞けること
番号を自動で振りたい(自動採番)
管理番号などの連番は、項目の「自動採番」で振れます(バージョン1.3.1.0以降)。作成したときではなく、承認したときなど決まったタイミングで番号を振りたい場合は、プロセスの自動採番を使います。
標準機能でできること
- 自動採番:タイトル・内容・分類・説明の項目に、書式に沿って番号を振ります。[NNNN]は固定長、[n]は可変長の連番です。日付([yyyyMM]など)や、ほかの項目の値も書式に入れられます(例:[yyyyMM]-[支店]-[部門]-[NNN] → 202203-横浜支店-営業部-001)
- 振り直し:年・月・日ごと、または連番以外の部分の文字列が変わったときに、連番を振り直せます(支店ごと・月ごとの連番など)
- 開始の値と間隔:既定値(開始の値)と、ステップ(間隔)を設定できます
足りないときの実現のしかた
| 手段 | できること |
|---|---|
| プロセスの自動採番 | 項目の自動採番は、レコードを作成したときに働きます。プロセスの自動採番は、レコードを更新したときにも使え、プロセスの条件やアクセス制御と組み合わせて、決まったタイミングで番号を振れます。プロセスの一括処理では、採番の順序を指定できません |
人や部署で見せる範囲を変えたい(権限・アクセス制御)
誰が何を見られるか、変えられるかは、テーブル・レコード・項目のそれぞれに、ユーザ・組織・グループの単位で設定できます。条件によって見せるレコードを絞りたい場合は、サーバスクリプトや拡張SQLを使います。
標準機能でできること
- テーブルのアクセス制御:テーブル(サイト)ごとに、読取り・作成・更新・削除などの権限を、ユーザ・組織・グループに付けます。フォルダに設定すると、配下のテーブルに引き継げます
- レコードのアクセス制御:特定のレコードだけに権限を付けられます。テーブルの管理で、レコードの作成時・更新時に、作成した人の組織や、担当者・管理者などへ自動で権限を付ける設定もできます(すでにあるレコードの権限は変わりません)
- 項目のアクセス制御:作成時・読取り時・更新時のそれぞれで、項目を使える人を制限します。読取りの権限が無い人には、項目が表示されません
- ビューとプロセスのボタン:ビューを使える人や、プロセスのボタンを表示する人を指定できます(例:経理部の人だけに「支払」ボタンを表示する)
読取り時のアクセス制御を設定した項目をタイトルの結合に入れると、タイトルの上ではアクセス制御が働きません。
足りないときの実現のしかた
サーバスクリプトも、ログインしているユーザの権限で実行されます。アクセス権の無い操作はできません。
| 手段 | できること |
|---|---|
| サーバスクリプト(view.Filters) | ビューの処理のときに、ユーザに見せるレコードを条件で制限できます。レコードのアクセス制御と違い、レコード1件ずつに権限を設定する必要がありません |
| 拡張SQL(OnSelectingWhere) | 一覧に出すレコードを所属組織で分けるサンプルが、FAQにあります(本社の人は全件、ほかの組織の人は同じ組織で登録されたレコードだけを見る例) |
| サーバスクリプト(items.Update) | レコードを更新するときに、レコードのアクセス制御を設定する例があります |
| 権限の一覧を確かめる | Enterprise EditionのOperations Toolsで、アクセス権限の設定を一覧で確かめ、CSVに出力できます |
マニュアルの該当ページ
標準機能
マニュアル:アクセス制御の概要
マニュアル:テーブルの管理:サイトのアクセス制御
マニュアル:テーブルの管理:レコードのアクセス制御
マニュアル:テーブルの管理:項目のアクセス制御
マニュアル:ビュー:アクセス制御
マニュアル:プロセス:アクセス制御
足りないとき
マニュアル:サーバスクリプト:view.Filters
FAQ:一覧表示するレコードを所属組織別に分けたい
マニュアル:サーバスクリプト:items.Update
誰が何を見られるかを一覧で確かめる(Enterprise Editionのツール)
うまくいかないときは、年間サポートで書き方を聞けます。
年間サポートで聞けること
どの手段を選ぶか
まず、テーブルの管理の設定(標準機能)で足りるかを確かめます。足りない部分だけを、次の手段で補います。手段によって、動く場所と、向いていることが違います。
下の表の手段は、すべて無料のCommunity Editionで使えます。年間サポートサービスを契約すると、スクリプトの書き方を開発元に聞けること(開発機能についてのアドバイス、サンプルスクリプトの提供)と、Enterprise Editionのツール(Code Assist・Site Visualizerなど)が加わります。
年間サポートで聞けることと、Enterprise Editionで使えるもの
| 手段 | 動く場所・設定する場所 | 向いていること・注意 | マニュアル |
|---|---|---|---|
| スクリプト | ブラウザ上で動くJavaScriptです。テーブルの管理の「スクリプト」に登録します | 標準機能ではできない画面の操作や、画面上のデータの加工に向いています。APIでの更新やインポートのときには、データを加工できません | 開発者ガイド:スクリプト |
| スタイル | ブラウザに適用されるCSSです。テーブルの管理の「スタイル」に登録します | 画面の見た目や、印刷のときの表示を変えるのに向いています | 開発者ガイド:スタイル |
| サーバスクリプト | サーバー側で動くJavaScriptです。テーブルの管理の「サーバスクリプト」に登録し、実行する条件(作成前・更新後・画面表示の前など)を選びます | 条件分岐、計算、文字列の処理、レコードの操作、メールやチャットへの通知、動的なアクセス制御に向いています。APIでの更新やインポートのときにも、データの加工などを行えます | 開発者ガイド:サーバスクリプト 実行する条件 |
| バックグラウンドサーバスクリプト | サーバー側で、スケジュールに沿って動きます。テナントの管理で、特権ユーザが設定します | 毎時・毎日・毎週・毎月など、決まったタイミングで動かす処理に向いています。処理によっては、テナント全体に負荷がかかることがあります | テナント管理機能:バックグラウンドサーバスクリプト |
| API | 他のシステムから、HTTPとJSONで呼び出します。APIキーを作成して使います | 他のシステムとのデータの入出力に向いています。レコードの取得・作成・更新・削除、一括作成・更新、インポート、エクスポートなどができます | 開発者ガイド:API |
| 拡張SQL | データベースに対して実行されるSQLです。SQLをJSON形式のパラメータファイルにして、サーバーの専用のフォルダに置いて登録します | レコードの作成前・更新後などのタイミングで任意のSQLを実行したり、APIやサーバスクリプトから呼び出したりできます。テーブルの権限の確認は行われないため、SQLの中で確認が要ります。誤って使うと、プリザンターを利用できなくなったり、データを壊したりするおそれがあるため、十分な検証とテストが要ります | 開発者ガイド:拡張SQL |
| 拡張機能(拡張スクリプト・拡張スタイル・拡張サーバスクリプトなど) | サーバーのパラメータのフォルダに、ファイルを置いて設定します | テーブルごとではなく、システム全体に共通の処理や見た目を足すのに向いています | 開発者ガイド:拡張機能 |
スクリプトとサーバスクリプトは、ログインしているユーザの権限で実行されます。
マニュアル:開発者ガイド
拡張の仕組みの全体像と、コードの例(開発者向けのページ)
作り込むときの注意
スクリプトやサーバスクリプトは、その会社だけの要件を手早く形にするのに向いています。一方で、標準機能で足りない部分をスクリプトで無理に作り込むと、動作が遅くなったり、作った人にしか直せなくなったりすることがあります。バージョンアップのたびに、動作の確認も要ります。
- バージョンアップ:プリザンターを上げるたびに、足した処理の動作を確かめます。新しいバージョンで変わったことは、リリースノートで確かめられます
- 性能:サーバスクリプトでレコードの読み書きを行うと、サーバー側の処理の負荷が増えることがあります。実行時間がタイムアウトの時間を超えると、処理が止まります
- サンプルコード:マニュアルのサンプルコードは、すべてのケースでの動作を保証するものではありません。お使いの環境で動作を確かめてから使います
- 引き継ぎ:スクリプトで足した処理は、作った方が保守します。担当者が替わると、引き継ぎが要ります
- 環境の移行:サイトパッケージで別の環境へ移すと、サイトIDやレコードIDが変わります。スクリプトの中にIDを直接書いている場合は、移したあとに書き換えが要ります
- 生成AIで書いたスクリプト:AIに書かせたスクリプトも、作った方が保守することと、バージョンアップのたびに動作を確かめることは同じです
マニュアル:リリースノート
マニュアル:サーバスクリプト:items(注意事項)
マニュアル:サンプルコードのご利用について(免責事項)
マニュアル:サイトパッケージのインポート
バージョンアップ・環境移行の進め方
作る人や使う部署が増えるとき(部署から全社へ:全社で使うときのガイド)
生成AIとプリザンターを組み合わせる
多くの利用者に役立つ機能なら
ほかの利用者にも役立つ汎用的な機能であれば、スクリプトで作り込むほかに、2つの方法があります。機能の要望としてGitHubのIssueに書く方法と、技術支援サービスの「標準機能追加」で、プリザンター本体の標準機能として追加する開発を開発元に依頼する方法です。
標準機能で足りないとき(スクリプトで作り込む場合と、標準機能の追加を依頼する場合の違い)
GitHub:プリザンターのIssue(機能の要望)
スクリプトの編集と反映の手間を減らすツール
Enterprise Editionに含まれるCode Assist(Visual Studio Codeの拡張機能)を使うと、Visual Studio Codeでスクリプト・サーバスクリプト・スタイルなどを保存したときに、同時にプリザンターへ登録・更新されます。自社の環境に構築したCommunity Editionでは、トライアル機能で90日間試せます。
マニュアル:Code Assist
Code Assist・Site Visualizerなどで、困りごとがどう変わるか(Enterprise Editionのツール)
90日間のトライアルのご案内
困ったとき
年間サポートで質問する
年間サポートサービスでは、「スクリプトをどう書けばよいか」といった質問を、開発元のサポートエンジニアにできます。開発機能についてのアドバイスや、サンプルスクリプトの提供を受けられます。機能の要望は、年間サポートでは受け付けていません。GitHubのIssueにお書きください。
認定パートナーに頼む
構築を任せたい場合は、認定パートナーを探せます。帳票出力やデータの可視化など、認定パートナーが提供するソリューションもあります。
CONTACT
作り込みで迷ったら
標準機能でどこまでできるか、スクリプトによる拡張や他のシステムとの連携をどう進めるか、費用など、お気軽にご相談ください。