OnSheetで作成したワークブックに対しRuleを設定しOnSheetの編集画面に機能追加します。
OnSheetとの連携の概要や必要な設定については、OnSheetとの連携についてを参照してください。
| 入力 | フォーマット | すべて |
|---|---|---|
| 接続数 | 無制限 | |
| 説明 | 入力ストリームは使用せず、すべて無視します。 | |
| 出力 | フォーマット | HTML |
| 説明 | ワークブックにRuleを設定した画面を返すHTMLを返します。 |
| 名前 | プロパティ型 | マッピング | 説明 | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| コネクション名 | connection | - | OnSheetサーバーへの接続情報を定義した汎用コネクションを指定します。 | |||||||||||||||
| ワークブック | string | 入力&出力 |
Ruleを設定するOnSheetのワークブックを指定します。 ワークブックの指定方法は以下のいずれかです。
|
|||||||||||||||
| タイトル | string | 入力&出力 |
生成する画面のタイトルを指定します。 省略時はワークブック名になります。 |
|||||||||||||||
| 表示 | group | - | 画面に表示するUI部品を設定するプロパティ群です。 | |||||||||||||||
| メニューバー | boolean | 入力&出力 | メニューバーを表示するかどうかを指定します。 | |||||||||||||||
| ツールバー | boolean | 入力&出力 | ツールバーを表示するかどうかを指定します。 | |||||||||||||||
| 数式バー | boolean | 入力&出力 | 数式バーを表示するかどうかを指定します。 | |||||||||||||||
| ステータスバー | boolean | 入力&出力 | ステータスバーを表示するかどうかを指定します。 | |||||||||||||||
| 行番号 | boolean | 入力&出力 | 行番号を表示するかどうかを指定します。 | |||||||||||||||
| 列番号 | boolean | 入力&出力 | 列番号を表示するかどうかを指定します。 | |||||||||||||||
| 種別 | boolean | 入力&出力 |
Ruleの設定を元のワークブック自体に行うか、一時的なコピーの画面に行うかを指定します。
|
|||||||||||||||
| ルールシートを削除 | boolean | 入力&出力 | 種別プロパティが入力画面の場合のみ表示されます。 ルール設定シート(「#Rule」という名前のシート)を削除するかどうかを指定します。 |
|||||||||||||||
| 共有設定 | choice | - | 種別プロパティが入力画面の場合のみ表示されます。 生成された入力画面のアクセス権を指定します。
|
|||||||||||||||
| 共有するユーザー名 | string | 入力&出力 | 共有設定プロパティがユーザー指定の場合のみ表示されます。 アクセス権を与えるユーザーをカンマ区切りで指定します。 |
|||||||||||||||
| スクリプト | string | 入力&出力 | 生成する画面に差し込むJavaScriptを指定します。 | |||||||||||||||
| 言語 | choice | - |
生成する画面の言語を指定します。
|
| コミット | 何もしません。 |
|---|---|
| ロールバック | 何もしません。 |
| タイプ | パラ メータ | エラー処理フロー へのストリーム | エラー コード | 説明 |
|---|---|---|---|---|
| 汎用 | なし | コンポーネントの入力ストリーム | なし | OnSheetサーバーに接続できなかった場合 |
| なし | 指定のワークブックが見つからない場合 |
OnSheetコンポーネントを使用するためにはあらかじめ汎用コネクションにOnSheetサーバー接続用の設定をしておく必要があります。コネクション設定では以下のパラメータを定義します。
| パラメータ名 | 設定内容 |
|---|---|
| url |
OnSheetサーバーのWebAPIのURLを指定します。 URLは通常「http://<ホスト名>/api/v1/rpc」です。 |
| appKey |
OnSheetサーバーのアプリケーションキーを指定します。 アプリケーションキーの生成方法についてはOnSheetのWebAPIガイドを参照してください。 |
| organisation | OnSheetサーバーにログインするユーザーの法人名を指定します。 |
| user | OnSheetサーバーにログインするユーザー名を指定します。 |
| password | OnSheetサーバーにログインするユーザーのパスワードを指定します。 |
| useProxy |
FSMCで設定したプロキシーサーバを使用する場合「true」を指定します。 プロキシサーバを使用しない場合は設定不要です。 |
本コンポーネントではOnSheetの画面に何らかの機能追加を行う設定を「Rule」と呼んでいます。
などの複数のRuleが定義されており、これらを組み合わることでOnSheetの画面に機能追加を行うことが可能です。
またRuleの設定を計算テンプレートに対して行うことができるので、作成した画面をマルチユーザーで使用する
Webアプリケーションの入力インターフェースとして利用することもできます。
種別を「入力画面」とした場合、本コンポーネントは指定したワークブックの一時的なコピー(計算テンプレート)を
作成し、そこにRuleを設定したビューを返します。
そこで入力した内容は元のワークブックには一切反映されずブラウザを終了した時に破棄されます。
一方、種別を「元画面」とした場合、指定したワークブック自体にRuleを設定したビューを返します。
この場合は画面上で修正した内容がすべて元のワークブックにも反映されます。
ただしRuleが設定されるのはあくまで本コンポーネントが生成した一時的なビューなのでOnSheetサーバーに
ログインして指定したワークブックを開いてもそこでRuleが有効になるわけではありません。
Ruleは本コンポーネントのプロパティとして設定するのではなくワークブックプロパティに指定するワークブック上で行います。
具体的にはRuleを設定するワークブックに「#Rule」という名前のワークシートを作成し、そのシート上で、
ことでRuleが本コンポーネントにより設定されます。
設定できるRuleには以下のものがあります。
| Rule名(A列) | 概要 | パラメータ | |
|---|---|---|---|
| ShowRangeList | 指定のセル範囲の編集時に選択リストを表示します。 選択リストは別のセル範囲に定義します。 | B列 | 編集時にリストを表示する対象セル範囲 |
| C列 | リスト化するセル範囲 指定範囲の先頭のセルの値は選択リストのタイトルになります。 |
||
| ShowStaticList | 指定のセル範囲の編集時に選択リストを表示します。 選択リストはパラメータで指定します。 | B列 | 編集時にリストを表示する対象セル範囲 |
| C列 | 選択リストのタイトル | ||
| D列 | リスト化する文字列をカンマ区切りで指定 | ||
| ShowHttpList | 指定のセル範囲の編集時に選択リストを表示します。 選択リストはフローで作成します。 | B列 | 編集時にリストを表示する対象セル範囲 |
| C列 | リストを作成するフローを実行設定したURL | ||
| D列 |
(オプション) リストをキャッシュするかどうかを指定します。 キャッシュする場合、リスト作成のフローは一度しか実行されません。 省略時はFalseになります。 |
||
| E列 |
(オプション) リスト作成するフローに渡すパラメータを指定します。 パラメータは「<パラメータ名>=<セル名>」の形式でカンマ区切りで複数指定できます。 |
||
| ShowCalendar | 指定のセル範囲の編集時にカレンダーを表示します。 | B列 | 編集時にカレンダーを表示する対象セル範囲 |
| CheckNumber | 指定のセル範囲の入力値が整数であるかどうかをチェックします。 | B列 | 値をチェックする対象セル範囲 |
| C列 | (オプション)値の最小値 | ||
| D列 | (オプション)値の最大値 | ||
| E列 | (オプション)値が不正だった場合のメッセージ | ||
| F列 | (オプション)値が不正だった場合のセルの背景色 | ||
| G列 | (オプション)値が正当だった場合のセルの背景色 | ||
| CheckRegexp | 指定のセル範囲の入力値を正規表現でチェックします。 | B列 | 値をチェックする対象セル範囲 |
| C列 | 値のチェックに用いる正規表現 | ||
| D列 |
(オプション) C列で指定した正規表現にマッチした場合をエラーとするか、マッチしなかった場合をエラーとするかを指定します。 省略時はTrueになります。 |
||
| E列 | (オプション)値が不正だった場合のメッセージ | ||
| F列 | (オプション)値が不正だった場合のセルの背景色 | ||
| G列 | (オプション)値が正当だった場合のセルの背景色 | ||
| ObserveCell | 指定のセル範囲のセルが編集された時に背景色を変更します。 | B列 | 編集を監視する対象セル |
| C列 |
(オプション)監視する変更の種別を指定します。 local - ローカルでの編集のみを監視します。 remote - リモートでの編集のみを監視します。 all - ローカルとリモートの両方の編集を監視します。 省略時にはlocalになります。 |
||
| D列 |
(オプション)編集時に設定する背景色を指定します。 省略時には0xCCFFFFになります。 |
||
| KickHttp | 指定のセル範囲のセルが編集された時にフローを実行します。 | B列 | 編集を監視する対象セル範囲 |
| C列 | セル編集時に実行するフローを実行設定したURL | ||
| D列 |
(オプション) 実行するフローに渡すパラメータを指定します。 パラメータは「<パラメータ名>=<セル名>」の形式でカンマ区切りで複数指定できます。 |
||
| AlertCell |
指定のセルに書き込まれた文字列を警告ダイアログで表示します。 ※このRuleは種別プロパティが入力画面の場合のみ有効です。 | B列 | 監視するの対象セル |
| ConfirmCell |
指定のセルに書き込まれた文字列を確認ダイアログで表示し、はいが選択された場合にフローを実行します。 ※このRuleは種別プロパティが入力画面の場合のみ有効です。 | B列 | 監視するの対象セル |
| EvalCell |
指定のセルに書き込まれた文字列をスクリプトとして実行します。 ※このRuleは種別プロパティが入力画面の場合のみ有効です。 | B列 | 監視するの対象セル |
セル範囲の指定は以下の書式で行います。
<シート名>!<セル位置>[:<セル位置>] //例 「Sheet1!A1:C10」「Sheet1:B5」
シート名の省略や名前付きセル範囲の指定はできません。
「#Rule」シートのA列が上記Rule名以外だった場合はその行は無視されます。
設定できるRuleは最大で100個です。
セルが編集状態になった時に同じワークブック内に定義した選択用のリストを表示するRuleです。
B列にリスト表示を行うセル(範囲指定可)を指定し、C列にリスト化するセル範囲を指定します。
リスト化するセル範囲の先頭セルの文字列が選択リストのタイトルとなり、残りのセルの文字列が選択リストのアイテムとなります。
セル範囲中の空白セルは無視され、リストに含まれません。
またセル範囲の文字列の変更は次に選択リストが表示される際に反映されます。
セルが編集状態になった時に静的に定義した選択用のリストを表示するRuleです。
B列にリスト表示を行うセル(範囲指定可)を指定し、C列に選択リストのタイトルを、D列に選択リストをカンマ区切りで指定します。
//D列の指定方法 営業部,開発部,企画部
セルが編集状態になった時にHttp経由でフローを実行しそのレスポンスを選択リストとして表示するRuleです。
B列にリスト表示を行うセル(範囲指定可)を指定し、C列に選択リストを作成するために実行するフローのURLを指定します。
指定するフローはこのコンポーネントが実行されているフローと同一サーバー上でなければなりません。
(逆から言えばURLの指定は相対パスで構いません。)
D列、E列の指定はオプション項目なので省略が可能です。
D列は実行結果をキャッシュするかどうかの指定です。
TRUEを指定した場合、Httpリクエストによるフローの実行は初回に1度だけ実行されそれ以降はキャッシュが使用されます。
(ただしE列でパラメータが指定された場合はここでの指定に関わらず毎回Httpリクエストが発行されます。)
E列では実行するフローに渡すパラメータを指定できます。
例えば
dept=Sheet1!C3,empid=Sheet1!C4
とするとSheet1のC3セルの値がdeptパラメータの値として、C4セルの値がempidパラメータの値としてHttpリクエストに渡されます。
(つまり実行するフローのHttpStartコンポーネントでParameterListのフィールドとして定義しておくことによってその値をフロー内で利用できます。)
実行するフローは出力ストリームとして「title」という文字列と「items」という文字列の配列を持つJSONテキストを返すように作成します。
{
"title" : "部署一覧",
"items" : [ "営業部", "開発部", "企画部"]
}
このようなJSONテキストはParameterList型のストリームで
title: String items: String[]
というフィールド定義を行いHttpEndコンポーネントでJSON変換を行うことで作成することができます。
出力ストリームを
{
"error" : "部署が見つかりません",
}
のように「error」という文字列を持つJSONテキストにした場合選択リストは表示されず代わりに指定のメッセージでエラーダイアログが表示されます。
ShowRangeListでは表示するリストは同一ワークブック内のどこかに定義されている必要があります。
つまり選択リストの内容はユーザーの目にするところにありますし、編集も可能です。
(そしてユーザーの編集結果は即座に選択リストに反映されます。)
ShowStaticListは選択リストが固定的な場合に適しており、 「種別=入力画面」かつ 「ルールシートを削除=はい」の場合はユーザーの目から 完全に隠すことができます。
ShowHttpListはDBを使用するなど外部のデータソースから選択リストを作成する場合に使用します。
またパラメータによって選択リストの内容を動的に切り替えることができるのもこれだけです。
セルが編集状態になった時に日付入力のためのカレンダーを表示するRuleです。
B列にカレンダーを表示を行うセル(範囲指定可)を指定します。
日付の表示形式はセルの書式設定に従います。
セルの編集完了時に入力値をチェックし、値が指定の範囲内の整数でない場合はエラーダイアログを表示するRuleです。
B列にチェックを行うセル(範囲指定可)を指定します。
C列以降はオプション項目なので省略が可能です。
C列、D列には値の最小値、最大値を指定できます。
指定の最小値より小さい値または最大値より大きい値を指定した場合にはエラーとなります。
省略時には最小値(または最大値)のチェックは行われません。
E列にエラーメッセージを指定することで値が不正な場合のエラーメッセージを変更することができます。
省略時にはエラーメッセージは「設定値が不正です」となります。
F列、G列に値が不正な場合と正当な場合の背景色を指定することでに入力された値に応じて背景色を変更することができます。
値の指定方法は「0xFF0000」のように16進数値で行います。
省略時には背景色の変更は行われません。
セルの編集完了時に入力値をチェックし、不正な場合にはエラーダイアログを表示した上で背景色を赤色にするRuleです。
チェック内容は正規表現で指定します。
B列にチェックを行うセル(範囲指定可)を指定し、C列にチェックする正規表現を指定します。
D列以降はオプション項目なので省略が可能です。
TRUEの場合はC列で指定した正規表現にマッチしなかった場合にエラーとなり、
FALSEの場合はマッチした場合にエラーとなります。
省略時にはTRUEとなります。
E列にエラーメッセージを指定することで値が不正な場合のエラーメッセージを変更することができます。
省略時にはエラーメッセージは「設定値が不正です」となります。
F列、G列に値が不正な場合と正当な場合の背景色を指定することでに入力された値に応じて背景色を変更することができます。
値の指定方法は「0xFF0000」のように16進数値で行います。
省略時には背景色の変更は行われません。
指定のセル範囲の値が変更された時にセルの背景色を変更するRuleです。
B列に監視を行うセル(範囲指定可)を指定しェックする正規表現を指定します。
C列、D列はオプション項目なので省略が可能です。
C列は監視するセルの変更がユーザーの手によって行われたもの(local)を対象とするか
(KickHttpで起動されたフローによって)サーバー側で行われたもの(remote)を対象とするかを指定します。
両方を対象とする場合は「all」を指定します。
C列、D列はオプション項目なので省略が可能です。
C列は監視するセルの変更がユーザーの手によって行われたもの(local)を対象とするか
(KickHttpで起動されたフローによって)サーバー側で行われたもの(remote)を対象とするかを指定します。
両方を対象とする場合は「all」を指定します。
省略時は「local」となります。
D列には変更を感知した時に設定する背景色を指定します。
色の指定は「0xCCFFFF」のように16進数値で行います。
省略時は「0xCCFFFF」になります。
指定のセル範囲の値が変更された時にHttpRequestを発行するRuleです。
B列に監視を行うセル(範囲指定可)を指定し、C列に実行するフローのURLを指定します。
指定するフローはこのコンポーネントが実行されているフローと同一サーバー上でなければなりません。
(逆から言えばURLの指定は相対パスで構いません。)
D列指定はオプション項目なので省略が可能です。
D列ではShowHttpListの場合と同様の書式でHttpリクエストに渡すパラメータを指定できます。
ただしKickHttpの場合はShowHttpListと異なりパラメータの定義を行わずとも標準で付加されるパラメータとして以下のものあります。
| bookId | ワークブックID |
|---|---|
| sheetId | シートID |
| sheetName | シート名 |
| cellName | KickHttpのトリガーとなったセルのセル名 |
| cellValue | KickHttpのトリガーとなったセルの値 |
bookIdやsheetNameを利用することで現在表示中のワークブックに対してフローの中から値を設定することが可能になります。
指定のセルに値がリモートから書き込まれた時にそれを警告ダイアログで表示するRuleです。
B列に監視を行うセルを指定します。
KickHttpやボタンによって実行されたフローの中からこのセルに値を書き込むことで警告ダイアログを表示させることができます。
表示するメッセージの中にはHTMLのタグが自由に使用できます。
このRuleは「種別=元画面」の場合は無視されます。
指定のセルに値がリモートから書き込まれた時に確認ダイアログを表示し、「はい」が選択された時にHttpリクエストを実行するRuleです。
B列に監視を行うセルを指定します。
KickHttpやボタンによって実行されたフローの中からこのセルに値を書き込むことでユーザーの意思を確認した上で次の処理に進ませることができます。
AlertCellと組み合わせることによって
というような実行確認の処理を作成することができます。
ConfrimCellに書き込む値は確認メッセージと次に実行するURLをカンマで区切って指定します。
メッセージにはHTMLのタグが使用でき、URLの指定には相対パスが使用できます。
本当に削除しますか?,../Project1/Flow1
このRuleは「種別=元画面」の場合は無視されます。
指定のセルにJavaScriptコードがリモートから書き込まれた時にそれを実行するRuleです。
B列に監視を行うセルを指定します。
KickHttpやボタンによって実行されたフローの中からこのセルにJavaScriptコードを書き込むことでそのスクリプトをクライアント側で実行することができます。
書き込む値は実行可能なJavaScriptコードでなければなりません。
alert("JavaScriptによるメッセージ表示です。");
※技術的にはここでのスクリプトでOnSheet自体を操作することも可能ですが、OnSheetのJavaScriptAPIは原則非公開でありバージョンアップ時の互換性は保証されていません。
このRuleは「種別=元画面」の場合は無視されます。