コンテンツにスキップ
「プリザンター入門」発売中!

サイト設定の更新(部分追加/更新/削除)

概要

APIでスタイル、スクリプト、HTML、サーバスクリプト、プロセス、状況による制御の追加、更新、削除を行うことができます。

事前準備

APIの操作を行うユーザのAPIキーの作成を実施してください。

リクエスト

下記のリクエスト形式でJSONデータを送信します。

設定項目 値
HTTPメソッド POST
Content-Type application/json
文字コード UTF-8
URL http://{サーバー名}/api/items/{サイトID}/updatesitesettings(※1)
Body 下記の パラメータ、 JSON を参照してください。

(※1){サーバー名}、{サイトID}の部分は、適宜、環境に合わせて編集してください。

パラメータ

リクエストで指定するパラメータについては以下の通りです。

パラメータ データ型 説明
ApiVersion 数値 APIバージョンを指定します。
ApiKey 文字列 APIキーを指定します。
Styles オブジェクト配列 スタイルのオブジェクトを指定します。詳細については下記の Stylesのパラメータ を参照してください。
Scripts オブジェクト配列 スクリプトのオブジェクトを指定します。詳細については下記の Scriptsのパラメータ を参照してください。
Htmls オブジェクト配列 HTMLのオブジェクトを指定します。詳細については下記の Htmlsのパラメータ を参照してください。
ServerScripts オブジェクト配列 サーバスクリプトのオブジェクトを指定します。詳細については下記の ServerScriptsのパラメータ を参照してください。
Processes オブジェクト配列 プロセスのオブジェクトを指定します。詳細については下記の Processesのパラメータ を参照してください。
StatusControls オブジェクト配列 状況による制御のオブジェクトを指定します。詳細については下記の StatusControlsのパラメータ を参照してください。

Stylesのパラメータ

Stylesのパラメータ一覧
パラメータ データ型 必須 設定例 説明
Id 数値 ○ 3 IDを指定します。存在しないIDの場合は追加、存在するIDの場合は更新として処理されます。
Title 文字列 ○ サンプルスタイル タイトルを指定します。
Disabled 真偽値 - false 無効を指定します。
Body 文字列 - header#Header スタイルを指定します。
StyleAll 真偽値 - true 出力先の 全て の有効/無効を指定します。
StyleNew 真偽値 - false 出力先の 新規作成 の有効/無効を指定します。
StyleEdit 真偽値 - false 出力先の 編集 の有効/無効を指定します。
StyleIndex 真偽値 - false 出力先の 一覧 の有効/無効を指定します。
StyleCalendar 真偽値 - false 出力先の カレンダー の有効/無効を指定します。
StyleCrosstab 真偽値 - false 出力先の クロス集計 の有効/無効を指定します。
StyleGantt 真偽値 - false 出力先の ガントチャート の有効/無効を指定します。
StyleBurnDown 真偽値 - false 出力先の バーンダウンチャート の有効/無効を指定します。
StyleTimeSeries 真偽値 - false 出力先の 時系列チャート の有効/無効を指定します。
StyleKamban 真偽値 - false 出力先の カンバン の有効/無効を指定します。
StyleImageLib 真偽値 - false 出力先の 画像ライブラリ の有効/無効を指定します。
DraftOutputMode 数値 - 1 ドラフト表示時(URLの ?Draft= クエリパラメータがDraftKeyの値と一致する場合)の出力制御を指定します。省略時は既定値0として扱われます。

0:ドラフト表示かどうかに関わらず、常に出力します。(既定値)
1:ドラフト表示時のみ出力します。
2:ドラフト表示時は出力せず、それ以外の場合(通常表示時)に出力します。
本機能の詳細は「ドラフト機能」を参照してください。
DraftKey 文字列 - mydraftkey ドラフト表示の確認時にクエリパラメータの値として使用するドラフトキーを指定します。省略または空文字の場合は既定値1として扱われます。( ?Draft=1 と一致)
本機能の詳細は「ドラフト機能」を参照してください。
Delete 数値 - 0 本パラメータの値には 0 または 1 を指定します。1 が設定されている場合、Idで指定したスタイルを削除します。

Scriptsのパラメータ

Scriptsのパラメータ一覧
パラメータ データ型 必須 設定例 説明
Id 数値 ○ 3 IDを指定します。存在しないIDの場合は追加、存在するIDの場合は更新として処理されます。
Title 文字列 ○ サンプルスクリプト タイトルを指定します。
Disabled 真偽値 - false 無効を指定します。
Body 文字列 - console.log('sample script'); スクリプトを指定します。
ScriptAll 真偽値 - true 出力先の 全て の有効/無効を指定します。
ScriptNew 真偽値 - false 出力先の 新規作成 の有効/無効を指定します。
ScriptEdit 真偽値 - false 出力先の 編集 の有効/無効を指定します。
ScriptIndex 真偽値 - false 出力先の 一覧 の有効/無効を指定します。
ScriptCalendar 真偽値 - false 出力先の カレンダー の有効/無効を指定します。
ScriptCrosstab 真偽値 - false 出力先の クロス集計 の有効/無効を指定します。
ScriptGantt 真偽値 - false 出力先の ガントチャート の有効/無効を指定します。
ScriptBurnDown 真偽値 - false 出力先の バーンダウンチャート の有効/無効を指定します。
ScriptTimeSeries 真偽値 - false 出力先の 時系列チャート の有効/無効を指定します。
ScriptKamban 真偽値 - false 出力先の カンバン の有効/無効を指定します。
ScriptImageLib 真偽値 - false 出力先の 画像ライブラリ の有効/無効を指定します。
DraftOutputMode 数値 - 1 ドラフト時(URLの ?Draft= クエリパラメータがDraftKeyの値と一致する場合)の制御を指定します。省略時は既定値0として扱われます。

0:ドラフトかどうかに関わらず、常に動作します。(既定値)
1:ドラフト時のみ動作します。
2:ドラフト時は動作せず、それ以外の場合(通常動作時)に動作します。
本機能の詳細は「ドラフト機能」を参照してください。
DraftKey 文字列 - mydraftkey ドラフト表示の確認時にクエリパラメータの値として使用するドラフトキーを指定します。省略または空文字の場合は既定値1として扱われます。( ?Draft=1 と一致)
本機能の詳細は「ドラフト機能」を参照してください。
Delete 数値 - 0 本パラメータの値には 0 または 1 を指定します。1 が設定されている場合、Idで指定したスクリプトを削除します。

Htmlsのパラメータ

Htmlsのパラメータ一覧
パラメータ データ型 必須 設定例 説明
Id 数値 ○ 3 IDを指定します。存在しないIDの場合は追加、存在するIDの場合は更新として処理されます。
Title 文字列 ○ サンプルHTML タイトルを指定します。
HtmlPositionType 文字列 ○ Headtop HTMLの挿入位置を指定します。本パラメータの値には HeadTop / HeadBottom / BodyScriptTop / BodyScriptBottom のいずれかを指定します。
Disabled 真偽値 - false 無効を指定します。
Body 文字列 - \
sample html\
HTMLを指定します。
HtmlAll 真偽値 - true 出力先の 全て の有効/無効を指定します。
HtmlNew 真偽値 - false 出力先の 新規作成 の有効/無効を指定します。
HtmlEdit 真偽値 - false 出力先の 編集 の有効/無効を指定します。
HtmlIndex 真偽値 - false 出力先の 一覧 の有効/無効を指定します。
HtmlCalendar 真偽値 - false 出力先の カレンダー の有効/無効を指定します。
HtmlCrosstab 真偽値 - false 出力先の クロス集計 の有効/無効を指定します。
HtmlGantt 真偽値 - false 出力先の ガントチャート の有効/無効を指定します。
HtmlBurnDown 真偽値 - false 出力先の バーンダウンチャート の有効/無効を指定します。
HtmlTimeSeries 真偽値 - false 出力先の 時系列チャート の有効/無効を指定します。
HtmlKamban 真偽値 - false 出力先の カンバン の有効/無効を指定します。
HtmlImageLib 真偽値 - false 出力先の 画像ライブラリ の有効/無効を指定します。
DraftOutputMode 数値 - 1 ドラフト表示時(URLの ?Draft= クエリパラメータがDraftKeyの値と一致する場合)の出力制御を指定します。省略時は既定値0として扱われます。

0:ドラフト表示かどうかに関わらず、常に出力します。(既定値)
1:ドラフト表示時のみ出力します。
2:ドラフト表示時は出力せず、それ以外の場合(通常表示時)に出力します。
本機能の詳細は「ドラフト機能」を参照してください。
DraftKey 文字列 - mydraftkey ドラフト表示の確認時にクエリパラメータの値として使用するドラフトキーを指定します。省略または空文字の場合は既定値1として扱われます。( ?Draft=1 と一致)
本機能の詳細は「ドラフト機能」を参照してください。
Delete 数値 - 0 本パラメータの値には 0 または 1 を指定します。1 が設定されている場合、Idで指定したHTMLを削除します。

ServerScriptsのパラメータ

ServerScriptsのパラメータ一覧
パラメータ データ型 必須 設定例 説明
Id 数値 ○ 3 IDを指定します。存在しないIDの場合は追加、存在するIDの場合は更新として処理されます。
Title 文字列 ○ サンプルサーバスクリプト タイトルを指定します。
Name 文字列 ○ SampleServerScript 名称を指定します。
Body 文字列 - context.Log('sample server script'); サーバスクリプトを指定します。
ServerScriptWhenloadingSiteSettings 真偽値 - true 条件の サイト設定読み込み時 の有効/無効を指定します。
ServerScriptWhenViewProcessing 真偽値 - false 条件の ビュー処理時 の有効/無効を指定します。
ServerScriptWhenloadingRecord 真偽値 - false 条件の レコード読み込み時 の有効/無効を指定します。
ServerScriptBeforeFormula 真偽値 - false 条件の 計算式の前 の有効/無効を指定します。
ServerScriptAfterFormula 真偽値 - false 条件の 計算式の後 の有効/無効を指定します。
ServerScriptBeforeCreate 真偽値 - false 条件の 作成前 の有効/無効を指定します。
ServerScriptAfterCreate 真偽値 - false 条件の 作成後 の有効/無効を指定します。
ServerScriptBeforeUpdate 真偽値 - false 条件の 更新前 の有効/無効を指定します。
ServerScriptAfterUpdate 真偽値 - false 条件の 更新後 の有効/無効を指定します。
ServerScriptBeforeDelete 真偽値 - false 条件の 削除前 の有効/無効を指定します。
ServerScriptAfterDelete 真偽値 - false 条件の 削除後 の有効/無効を指定します。
ServerScriptBeforeBulkDelete 真偽値 - false 条件の 一括削除前 の有効/無効を指定します。
ServerScriptAfterBulkDelete 真偽値 - false 条件の 一括削除後 の有効/無効を指定します。
ServerScriptBeforeOpeningPage 真偽値 - false 条件の 画面表示の前 の有効/無効を指定します。
ServerScriptBeforeOpeningRow 真偽値 - false 条件の 行表示の前 の有効/無効を指定します。
ServerScriptShared 真偽値 - false 条件の 共有 の有効/無効を指定します。
Delete 数値 - 0 本パラメータの値には 0 または 1 を指定します。1 が設定されている場合、Idで指定したサーバスクリプトを削除します。

Processesのパラメータ

Processesのパラメータ一覧
パラメータ データ型 必須 設定例 説明
Id 数値 ○ 3 IDを指定します。存在しないIDの場合は追加、存在するIDの場合は更新として処理されます。
Name 文字列 ○ A1_申請(共通) 名称を指定します。
DisplayName 文字列 - A1_申請(共通) 表示名を指定します。
ScreenType 数値 - 10 画面種別を指定します。新規作成は10、編集は20を指定してください。
CurrentStatus 数値 - 100 現在の状況で選択する状況のコード値を指定してください。「*」の場合は-1を指定します。
ChangedStatus 数値 - 200 変更後の状況で選択する状況のコード値を指定してください。「*」の場合は-1を指定します。
Description 文字列 - 申請を行い、課長に承認を依頼する 説明を指定します。
Tooltip 文字列 - 申請を行い、承認を依頼します ツールチップを指定します。
Icon 文字列 - ui-icon-mail-closed jQueryのアイコンの名称を指定します。
指定がない場合、画面上のボタンには"ui-icon-disk"が設定されます。
・https://api.jqueryui.com/resources/icons-list.html
ConfirmationMessage 文字列 - 記入した内容で申請してよろしいですか 確認メッセージを指定します。
SuccessMessage 文字列 - 申請しました 成功メッセージを指定します。
OnClick 文字列 - console.log('Processを実行しました。'); プロセス機能で追加されたボタンクリック時に実行するスクリプトを指定します。
ExecutionType 数値 - 10 実行種別を指定します。指定内容は以下の通りです。
0:追加したボタン
10:新規または更新
ActionType 数値 - 10 アクション種別を指定します。指定内容は以下の通りです。
0:保存
10:ポストバック
90:無し
AllowBulkProcessing 真偽値 - true 一括処理を許可をチェックする場合にtrueを指定します。
ValidationType 数値 - 0 入力検証種別を指定します。指定内容は以下の通りです。
0:マージ
10:置換
90:無し
ValidateInputs オブジェクト配列 - - プロセスの入力検証のオブジェクトを指定します。詳細については下記の ValidateInputsのパラメータ を参照してください。
View オブジェクト - - プロセスの条件のオブジェクトを指定します。詳細については下記の Viewのパラメータ を参照してください。
DataChanges オブジェクト配列 - - プロセスのデータの変更のオブジェクトを指定します。詳細については下記の DataChangesのパラメータ を参照してください。
AutoNumbering オブジェクト - - プロセスの自動採番のオブジェクトを指定します。詳細については下記の AutoNumberingのパラメータ を参照してください。
Notifications オブジェクト配列 - - プロセスの通知のオブジェクトを指定します。詳細については下記の Notificationsのパラメータ を参照してください。
Depts 配列 - [1,2] プロセスのアクセス制御で権限付与する組織を指定します。組織IDを指定します。
Groups 配列 - [3,4,5] プロセスのアクセス制御で権限付与するグループを指定します。グループIDを指定します。
Users 配列 - [11,12,13,14] プロセスのアクセス制御で権限付与するユーザを指定します。ユーザIDを指定します。
Delete 数値 - 0 本パラメータの値には 0 または 1 を指定します。1 が設定されている場合、Idで指定したプロセスを削除します。

ValidateInputsのパラメータ

パラメータ データ型 必須 設定例 説明
Id 数値 ○ 3 IDを指定します。存在しないIDの場合は追加、存在するIDの場合は更新として処理されます。
ColumnName 文字列 ○ Title 項目を指定します。表示名ではなくカラム名で指定します。
Required 真偽値 - true 入力必須にする場合はtrueを指定します。
ClientRegexValidation 文字列 - ^0[789]0\d{8}$ クライアント正規表現を指定します。ColumnNameで分類項目や説明項目などを指定した場合に有効となります。
ServerRegexValidation 文字列 - ^0[789]0\d{8}$ サーバ正規表現を指定します。ColumnNameで分類項目や説明項目などを指定した場合に有効となります。
RegexValidationMessage 文字列 - 携帯電話番号の入力に誤りがあります。 正規表現でエラーとなった場合に表示するエラーメッセージを指定します。
Max 数値 - 99999 入力可能な最大値を指定します。ColumnNameで数値項目などを指定した場合に有効となります。
Min 数値 - 0 入力可能な最小値を指定します。ColumnNameで数値項目などを指定した場合に有効となります。
Delete 数値 - 0 本パラメータの値には 0 または 1 を指定します。1 が設定されている場合、Idで指定したプロセスを削除します。

Viewのパラメータ

パラメータ データ型 必須 設定例 説明
Incomplete 真偽値 - true 未完了をチェックする場合はtrueを指定します。
Own 真偽値 - true 自分をチェックする場合はtrueを指定します。
ColumnFilterHash 文字列 - 条件を指定します。詳細は「View」の「ColumnFilterHash」を参照してください。
Search 文字列 - -インプリム 検索キーワードを指定します。
ErrorMessage 文字列 - 条件を満たしていません。 エラーメッセージを指定します。

DataChangesのパラメータ

パラメータ データ型 必須 設定例 説明
Id 数値 ○ 3 IDを指定します。存在しないIDの場合は追加、存在するIDの場合は更新として処理されます。
Type 文字列 - InputValue 変更種別を指定します。指定内容は下記の通りです
CopyValue:値のコピー
CopyDisplayValue:表示名のコピー
InputValue:値の入力
InputDate:日付の入力
InputDateTime:日時の入力
InputDept:組織の入力
InputUser:ユーザの入力
ColumnName 文字列 - ClassA 項目を指定します。表示名ではなくカラム名で指定します。
Value 文字列 - ClassB
123
7,Days
コピー元または値を指定します。コピー元の場合はカラム名で項目を指定します。値の場合は入力したい任意の文字列を指定します。変更種別が「日付の入力」または「日時の入力」の場合は『値,期間』を指定します。期間は以下の内容で指定します。
Days:日
Months:月
Years:年
Hours:時
Minutes:分
Seconds:秒
BaseDateTime 文字列 - CurrentDate 変更種別が「日付の入力」または「日時の入力」の場合における基準日時を指定します。カラム名での指定の他、以下の内容で指定できます。
CurrentDate:現在の日付
CurrentTime:現在の時刻

AutoNumberingのパラメータ

「テーブルの管理:エディタ:項目の詳細設定:自動採番」を合わせて参照ください。

パラメータ データ型 必須 設定例 説明
ColumnName 文字列 - ClassA 項目を指定します。表示名ではなくカラム名で指定します。
Format 文字列 - [yyyyMMdd]-[分類A]-[NNNN] 書式を指定します。
ResetType 文字列 - Year リセット種別を指定します。指定内容は下記の通りです
Year:年
Month:月
Day:日
String:文字列
Default 数値 - 1 既定値を指定します。
Step 数値 - 1 ステップを指定します。

Notificationsのパラメータ

「テーブルの管理:通知」を合わせて参照ください。

パラメータ データ型 必須 設定例 説明
Id 数値 ○ 3 IDを指定します。存在しないIDの場合は追加、存在するIDの場合は更新として処理されます。
Type 数値 ○ 1 通知種別を指定します。指定内容は以下の通りです。
1:メール
2:Slack
3:ChagWork
4:Line
5:Lineグループ
6:Teams
7:Rocket.Chat
8:InCircle
Subject 文字列 ○ 申請しました 件名を指定します。 "[表示名]" と記載することで項目の値を利用できます。
Address 文字列 ○ test@example.com 任意のメールアドレス、WebHook、roomIDのURL、またはLINEのUserID、GroupIDを指定します。
Token 文字列 - xxx... 取得したchatworkのトークンまたはLINEボットアカウントのアクセストークンまたはInCircleのトークンを指定します。
Body 文字列 ○ 申請内容:[内容] 内容を指定します。"[表示名]" と記載することで項目の値を利用できます。

StatusControlsのパラメータ

StatusControlsのパラメータ一覧
パラメータ データ型 必須 設定例 説明
Id 数値 ○ 3 IDを指定します。存在しないIDの場合は追加、存在するIDの場合は更新として処理されます。
Name 文字列 ○ 01_申請待(共通) 名称を指定します。
Description 文字列 - 起票時は承認項目を非表示とすべき 説明を指定します。
Status 数値 - 100 状況のコード値を指定してください。「*」の場合は-1を指定します。
ReadOnly 真偽値 - true レコードの制御-読取専用をチェックする場合はtrueを指定します。
ColumnHash オブジェクト - { "Status": "ReadOnly", "Owner": "Hidden", "ClassA": "Requied" } 「"カラム名": "設定内容"」の形式で指定します。カラム名は項目を指定します。設定内容は以下内容で指定します。
Requied:入力必須
ReadOnly:読取専用
Hidden:非表示
View オブジェクト - - 状況による制御の条件のオブジェクトを指定します。詳細については下記の Viewのパラメータ を参照してください。
Depts 配列 - [1,2] プロセスのアクセス制御で権限付与する組織を指定します。組織IDを指定します。
Groups 配列 - [3,4,5] プロセスのアクセス制御で権限付与するグループを指定します。グループIDを指定します。
Users 配列 - [11,12,13,14] プロセスのアクセス制御で権限付与するユーザを指定します。ユーザIDを指定します。
Delete 数値 - 0 本パラメータの値には 0 または 1 を指定します。1 が設定されている場合、Idで指定したプロセスを削除します。

Viewのパラメータ

パラメータ データ型 必須 設定例 説明
Id 数値 ○ 3 IDを指定します。存在しないIDの場合は追加、存在するIDの場合は更新として処理されます。
Incomplete 真偽値 ○ true 未完了をチェックする場合はtrueを指定します。
Own 真偽値 - true 自分をチェックする場合はtrueを指定します。
ColumnFilterHash 文字列 - - 条件を指定します。詳細は「View」の「ColumnFilterHash」を参照してください。
Search 文字列 - 検索キーワードを指定します。

JSON

送信するリクエスト(JSON)のサンプルは以下の通りです。設定の変更は指定したパラメータのものが対象となります。
※ScriptsにあるId:1のスクリプトの場合、Title、Body、ScriptAllだけが設定変更の対象となります。Disabled等の指定していないパラメータの値は変更しません。

{
    "ApiVersion": 1.1,
    "ApiKey": "xxxxx...",
    "Scripts": [
        {
            "Id": 1,
            "Title": "sample script 1",
            "Body": "console.log('script 1');",
            "ScriptAll": true
        },
        {
            "Id": 2,
            "Title": "sample script 2",
            "Body": "console.log('script 2');",
            "ScriptAll": true
        }
    ],
    "ServerScripts": [
        {
            "Id": 9,
            "Title": "sample serverscript 9",
            "Name": "SampleServerScript9",
            "Body": "context.Log('sample serverscript 9');",
            "ServerScriptWhenloadingSiteSettings": true
        },
        {
            "Id": 10,
            "Title": "test10",
            "Delete": 1
        }
    ],
    "Styles": [
        {
            "Id": 2,
            "Title": "test2",
            "StyleNew": false,
            "DraftOutputMode": 1,
            "DraftKey": "mydraftkey"
        }
    ],
    "Htmls": [
        {
            "Id": 3,
            "Title": "sample html 3",
            "HtmlPositionType": "HeadTop",
            "Body": "<div>sample html 3</div>"
        }
    ],
    "Processes": [
        {
            "Id": 1,
            "Name": "A1_申請(共通)",
            "DisplayName": "申請",
            "CurrentStatus": 100,
            "ChangedStatus": 200,
            "Description": "申請を行い、課長に承認を依頼する",
            "Tooltip": "申請を行い、承認を依頼します",
            "Icon": "ui-icon-mail-closed",
            "ConfirmationMessage": "記入した内容で申請してよろしいですか",
            "SuccessMessage": "申請しました",
            "ValidateInputs": [
                {
                    "Id": 1,
                    "ColumnName": "NumA",
                    "Required": true,
                    "Min": 1.0,
                    "Max": 5000000.0
                },
                {
                    "Id": 4,
                    "Delete": 1
                }
            ],
            "View": {
                "Own": true
            },
            "DataChanges": [
                {
                    "Id": 1,
                    "Type": "InputDateTime",
                    "ColumnName": "DateA",
                    "BaseDateTime": "CurrentTime",
                    "Value": "0,Days"
                },
                {
                    "Id": 5,
                    "Delete": 1
                }
            ]
        },
        {
            "Id": 17,
            "Name": "E4_経理による差戻",
            "Delete": 1
        }
    ],
    "StatusControls": [
        {
            "Id": 1,
            "Name": "01_申請待(共通)",
            "Description": "起票時は承認項目を非表示とすべき",
            "Status": 100,
            "ColumnHash": {
                "Status": "ReadOnly",
                "Owner": "Hidden",
                "ClassA": "Hidden",
                "DateA": "Required",
               "DescriptionB": "ReadOnly",
            }
        },
        {
            "Id": 11,
            "Name": "06-4_完了γ",
            "Delete": 1
        }
    ],
    "VerUp": true
}

レスポンス

下記の形式でJSONデータが返却されます。

サイト設定の更新(部分追加/更新/削除)ができた場合

{
    "Id": 6714,
    "StatusCode": 200,
    "Message": "\" 記録テーブル \" を更新しました。"
}

サイトの管理権限がないユーザのAPIキーを用いた場合

{
    "Id": 123,
    "StatusCode": 403,
    "Message": "この操作を行うための権限がありません。"
}

必須パラメータが存在しなかった場合

{
    "Id": 123,
    "StatusCode": 404,
    "Message": "指定された情報は見つかりませんでした。"
}

サンプルコード

コード内の【 ... 】 は適宜修正してください。
1. JavaScriptファイルを任意のサイトすべてに登録する

任意のフォルダに格納されたJavaScriptファイルを読み取り、コード内に指定されたサイトのサーバスクリプトにコードを追加していきます。

Python(api_site_update_sitesettings.py)
# osに関する機能を利用するためのライブラリ
import os

# jsonを扱うためのライブラリ
import json

# Path操作のためのライブラリ
from pathlib import Path

# 型ヒント用ライブラリ
from typing import List, Optional

# HTTPリクエスト送信用のライブラリ
import requests

# =========
# 設定
# =========
BASE_URL = "【URL】"
API_KEY = "【APIキー】"

# 更新対象サイトID(複数)
SITE_IDS: List[int] = [【サイトID】, 【サイトID】]

# ServerScript情報の指定
SERVER_SCRIPT_NAME = "【サーバスクリプト名】"  # 例:任意のサーバスクリプト名
SERVER_SCRIPT_ID = 【サーバスクリプトID】
# サーバスクリプトの条件を配列形式で指定
# 条件は欄外参照
SERVER_SCRIPT_CONDITIONS = [
    {
        "Type": "【サーバスクリプト条件】",
        "Enabled": True,
    },
    {
        "Type": "【サーバスクリプト条件】",
        "Enabled": True,
    },
]

# ローカルのJSファイル(Bodyに入れる内容)
JS_FILE_PATH = r"【パス名】\【javascriptファイル名】"

# タイムアウト等
TIMEOUT_SEC = 30

def read_js_file(path: str) -> str:
    p = Path(path)
    if not p.exists():
        raise FileNotFoundError(f"JS file not found: {p}")
    # Pleasanter側で改行含めてそのまま扱いたいので text で読む
    return p.read_text(encoding="utf-8")

def build_payload(
    body_js: str, script_name: str, script_id: Optional[int] = None
) -> dict:
    # ServerScripts 要素(最小限)
    script_obj = {
        "Name": script_name,
        "Title": script_name,
        "Body": body_js,
    }
    if script_id is not None:
        script_obj["Id"] = script_id

    for SERVER_SCRIPT_CONDITION in SERVER_SCRIPT_CONDITIONS:
        script_obj[SERVER_SCRIPT_CONDITION["Type"]] = SERVER_SCRIPT_CONDITION["Enabled"]

    # パターンA:直に配列
    payload = {
        "ApiVersion": 1,
        "ApiKey": API_KEY,
        "ServerScripts": [script_obj],
    }
    return payload

def update_site_settings(site_id: int, payload: dict) -> requests.Response:
    url = f"{BASE_URL.rstrip('/')}/api/items/{site_id}/updatesitesettings"
    headers = {
        "Content-Type": "application/json",
    }
    return requests.post(
        url, headers=headers, data=json.dumps(payload), timeout=TIMEOUT_SEC
    )

def main():
    body_js = read_js_file(JS_FILE_PATH)
    print(f"body_js={body_js}")

    # 例:全サイト同じ ServerScript 名を更新
    for site_id in SITE_IDS:
        payload = build_payload(
            body_js=body_js, script_name=SERVER_SCRIPT_NAME, script_id=SERVER_SCRIPT_ID
        )

        try:
            resp = update_site_settings(site_id, payload)
        except requests.RequestException as e:
            print(f"[ERROR] site_id={site_id} request failed: {e}")
            continue

        if resp.ok:
            print(f"[OK] site_id={site_id} updated. status={resp.status_code}")
        else:
            # 失敗時はレスポンス本文を出して原因を追えるように
            print(f"[NG] site_id={site_id} status={resp.status_code}")
            print(resp.text)

if __name__ == "__main__":
    main()
条件の設定
条件 設定値
サイト設定の読み込み時 ServerScriptWhenloadingSiteSettings
ビュー処理時 ServerScriptWhenViewProcessing
レコード読み込み時 ServerScriptWhenloadingRecord
計算式の前 ServerScriptBeforeFormula
計算式の後 ServerScriptAfterFormula
作成前 ServerScriptBeforeCreate
作成後 ServerScriptAfterCreate
更新前 ServerScriptBeforeUpdate
更新後 ServerScriptAfterUpdate
削除前 ServerScriptBeforeDelete
削除後 ServerScriptAfterDelete
一括削除前 ServerScriptBeforeBulkDelete
一括削除後 ServerScriptAfterBulkDelete
画面表示の前 ServerScriptBeforeOpeningPage
行表示の前 ServerScriptBeforeOpeningRow
共有 ServerScriptShared

設定例

SERVER_SCRIPT_CONDITIONS = [
    {
        "Type": "ServerScriptBeforeOpeningPage",
        "Enabled": True,
    },
    {
        "Type": "ServerScriptBeforeOpeningRow",
        "Enabled": True,
    },
]

実行
>python api_site_update_sitesettings.py
実行結果
body_js=【ここに挿入されるbodyの内容が表示されます】

[OK] site_id=9001 updated. status=200
[OK] site_id=9002 updated. status=200

対応バージョン

対応バージョン 内容
1.4.11.0 以降 ProcessesのパラメータにIconを追加
1.4.16.0 以降 ServerScriptsのパラメータにServerScriptBeforeBulkDeleteおよびServerScriptAfterBulkDeleteを追加
1.5.6.0 以降 VerUpを追加
1.5.7.0 以降 Styles・Scripts・HtmlsのパラメータにDraftOutputModeおよびDraftKeyを追加

関連情報