開発者向け機能:サーバスクリプト:context
概要¶
サーバスクリプトでユーザID、サイトIDなどの、ユーザ要求に関する情報を参照する際に使用します。また、スクリプト間のデータ共有、ログ出力、メッセージ出力に使用します。
プロパティ¶
| No | Name | Get | Set | Type | Description |
|---|---|---|---|---|---|
| 1 | UserData | 〇 | 〇 | ExpandoObject | スクリプト間でデータの共有が可能 |
| 2 | QueryStrings | 〇 | - | Object | URLのクエリパラメータの値を取得可能 |
| 3 | Forms | ○ | - | Forms | フォームの情報を取得可能 |
| 4 | FormStringRaw | ○ | - | string | フォーム(項目)に入力した情報 |
| 5 | FormString | ○ | - | string | フォーム(項目)に入力した情報 |
| 6 | Ajax | ○ | - | bool | Ajaxでリクエストしたかどうかのフラグ |
| 7 | Mobile | ○ | - | bool | Mobileでリクエストしたかどうかのフラグ |
| 8 | ApplicationPath | ○ | - | string | アプリケーションパス |
| 9 | AbsoluteUri | ○ | - | string | 絶対URI |
| 10 | AbsolutePath | ○ | - | string | 絶対パス |
| 11 | Url | ○ | - | string | URL |
| 12 | UrlReferrer | ○ | - | string | 前回要求したURL |
| 13 | Controller | ○ | - | string | コントローラ名 |
| 14 | Query | ○ | - | string | URLクエリパラメータ |
| 15 | Action | ○ | - | string | アクション名 |
| 16 | TenantId | ○ | - | int | テナントID |
| 17 | SiteId | ○ | - | long | サイトID |
| 18 | Id | ○ | - | long | レコードID |
| 19 | Groups | ○ | - | IEnumerable | 所属するグループのグループIDのコレクション |
| 20 | TenantTitle | ○ | - | string | テナントのタイトル |
| 21 | SiteTitle | ○ | - | string | サイトのタイトル |
| 22 | RecordTitle | ○ | - | string | レコードのタイトル |
| 23 | DeptId | ○ | - | int | 組織ID |
| 24 | UserId | ○ | - | int | ユーザID |
| 25 | LoginId | ○ | - | string | ログインID |
| 26 | Language | ○ | - | string | 設定言語 |
| 27 | TimeZoneInfo | ○ | - | string | タイムゾーン |
| 28 | HasPrivilege | ○ | - | bool | 操作しているユーザが特権ユーザかどうかのフラグ |
| 29 | ApiVersion | ○ | - | decimal | APIのバージョン |
| 30 | ApiRequestBody | ○ | - | string | APIのリクエスト内容 |
| 31 | RequestDataString | ○ | - | string | リクエストデータ |
| 32 | ContentType | ○ | - | string | レスポンスヘッダの種類 |
| 33 | ServerScript.ScriptDepth | ○ | - | int | サーバスクリプトが実行された回数 |
| 34 | ControlId | ○ | - | string | 要求元コントロールのID |
| 35 | Condition | ○ | - | string | サーバースクリプトの条件の名称 |
| 36 | ReferenceType | ○ | - | string | テーブル種別。記録テーブルの場合'Results'、期限付きテーブルの場合'Issues'を返却 |
| 37 | HttpMethod | ○ | - | string | リクエストのHTTP Method |
メソッド¶
| No | Name | Description |
|---|---|---|
| 1 | AddMessage | ブラウザの画面下部にメッセージを出力します。 |
| 2 | Error | ユーザが要求した作成、更新、削除の操作をキャンセルし、エラーメッセージを出力します。 |
| 3 | Log | ブラウザのコンソールにログを出力します。 |
| 4 | Redirect | ブラウザにページ遷移を実行させます。 |
| 5 | AddResponse | 任意のクライアントレスポンスを返却します。 |
| 6 | ResponseSet | フォームに情報を格納します。 |
使用例①¶
下記の例では、ログインユーザのユーザIDが1以外の場合には、作成者が自分自身のレコードのみ表示するようフィルタします。条件は「ビュー処理時」にチェックします。
使用例②¶
下記の例では、ログインユーザの所属する全てのグループのグループIDをログに出力します。
使用例③¶
下記の例では、条件:更新後に設定した場合に初回更新後のみClassAに1234を入力し再度更新します。
サンプルコード¶
注意事項
コード内の【 ... 】は適宜修正してください。
1. 任意のプロセス実行時にサーバスクリプトを起動する
context.ControlIdで、実行されたプロセスを判定し、任意のサーバスクリプト処理を実行します。
実行結果¶
2. ログインユーザの属性による画面項目制御
ログインユーザの属性(context.HasPrivilege、context.Groupsで判定)と、状況により画面項目の制御(columns.ReadOnly,Hideで制御)を行います。サンプルコードでは以下のような仕様で実装しています。
| ユーザ種類 | 状況 | 制御パターン |
|---|---|---|
| 特権ユーザ | - | パターンA |
| 管理者グループ所属ユーザ(ID1,2) | - | パターンB |
| 上記以外のユーザ | 完了(900) or 保留(910) | パターンC |
| 以外 | パターンD |
| 画面項目 | パターンA | パターンB | パターンC | パターンD | |
|---|---|---|---|---|---|
| タイトル | Title | 編集可 | 編集可 | 読取専用 | 編集可 |
| 内容 | Body | 編集可 | 編集可 | 読取専用 | 編集可 |
| 状況 | Status | 編集可 | 編集可 | 読取専用 | 編集可 |
| 分類A | ClassA | 編集可 | 編集可 | 読取専用 | 編集可 |
| 分類B | ClassB | 編集可 | 読取専用 | 非表示 | 非表示 |
| 日付A | DateA | 編集可 | 読取専用 | 読取専用 | 編集可 |
| 説明A | DescriptionA | 編集可 | 編集可 | 非表示 | 非表示 |
JavaScript¶
条件:画面表示の前
実行結果¶
対応バージョン¶
| 対応バージョン | 内容 |
|---|---|
| 1.4.17.0 以降 | サーバスクリプトにcontext.ReferenceTypeプロパティを追加 |
| 1.4.17.0 以降 | サーバスクリプトにcontext.HttpMethodプロパティを追加 |
関連情報¶
- 開発者向け機能:サーバスクリプト
- 開発者向け機能:サーバスクリプト:context.UserData
- 開発者向け機能:サーバスクリプト:context.QueryStrings
- 開発者向け機能:サーバスクリプト:context.Forms
- 開発者向け機能:サーバスクリプト:context.AddMessage
- 開発者向け機能:サーバスクリプト:context.Error
- 開発者向け機能:サーバスクリプト:context.Log
- 開発者向け機能:サーバスクリプト:context.Redirect
- 開発者向け機能:サーバスクリプト:context.AddResponse
- 開発者向け機能:サーバスクリプト:context.ResponseSet
