Form Bridge APIを使用して、XFAベースのHTML5フォームとお使いのアプリケーション間の通信チャネルを開くことができます。 Form Bridge APIには、接続を作成するためのconnect APIが用意されています。
接続 API はハンドラーを引数として受け入れます。XFAベースのHTML5フォームとForm Bridge間の接続が正常に作成されると、ハンドルが呼び出されます。
次のサンプルコードを使用して接続を作成できます。
// Example showing how to connect to FormBridge
window.addEventListener("FormBridgeInitialized",
function(event) {
var fb = event.detail.formBridge;
fb.connect(function() {
//use form bridge functions
})
})
必ず接続を作成してから formRuntime.jsp ファイルを追加してください。
getBridgeVersion()
スクリプティングライブラリのバージョン番号を返す
isConnected() フォーム状態が初期化されたかどうかを確認
入力:なし
出力: XFAフォーム状態が初期化された 場合にtrueを返す
エラー:なし
connect(handler,context) FormBridgeに接続し、接続が確立されてフォーム状態が初期化された後に関数を実行します
必要情報:
出力:なし
エラー:なし
getDataXML(options) 現在のフォームデータをXML形式で返します。
必要情報:
options:次のプロパティが含まれている JavaScript オブジェクト。
出力:なし
エラー:なし
registerConfig(configName, config)ユーザー/ポータル固有の設定をFormBridgeに 登録します。これらの設定はデフォルト設定をオーバーライドします。サポートされている設定は config セクションで指定されています。
必要情報:
configName:オーバーライドする設定の 名前
widgetConfig:ユーザーがフォーム内のデフォルトのウィジェットをカスタムウィジェットで上書きで きるようにします。設定は次のようにオーバーライドされます。
formBridge.registerConfig("widgetConfig":{/*configuration*/})
pagingConfig: ユーザーが、最初のページのみをレンダリングするというデフォルトの動作を上書きできます。設定は次のようにオーバーライドされます。
window.formBridge.registerConfig("pagingConfig":{pagingDisabled: <true | false>, shrinkPageDisabled: <true | false> }).
LoggingConfig:ユーザーが、ログのレベル、カテゴリのログの無効化、またはログコンソールを表示するかサーバーに送信するかを上書きで きます。設定は次のようにオーバーライドできます。
formBridge.registerConfig{
"LoggerConfig" : {
{
"on":`<true *| *false>`,
"category":`<array of categories>`,
"level":`<level of categories>`, "
type":`<"console"/"server"/"both">`
}
}
SubmitServiceProxyConfig:ユーザーが送信を登録し、プロキシサービスをロガーで きるようにします。
window.formBridge.registerConfig("submitServiceProxyConfig",
{
"submitServiceProxy" : "`<submitServiceProxy>`",
"logServiceProxy": "`<logServiceProxy>`",
"submitUrl" : "`<submitUrl>`"
});
config:設定の値
**出力:**data プロパティに設定の元の値が含まれているオブジェクト。
エラー:なし
hideFields(fieldArray) は、SOM式がfieldArrayで提供されるフィールドを非表示にします。指定フィールドの presence プロパティを invisible に設定します
必要情報:
出力:なし
エラー:なし
showFields(fieldArray)fieldArrayにSOM式が提供さ れるフィールドを表示します。提供されたフィールドの presence プロパティを visible に設定します
必要情報:
出力:なし
エラー:なし
hideSubmitButtons() フォーム内のすべての送信ボタンを非表示にする
getFormState()は、フォームの状態を表すJSONを 返します
入力:なし
出力: datapropertyに現在のフォーム状態を表すJSONが含まれている ** オブジェクト。
エラー:なし
restoreFormState(options)optionsオブジェクトで指定されたJSON状態からフォーム状態を 復元します。状態が適用され、操作の完了後にサクセスまたはエラーハンドラーが呼び出されます。
必要情報:
オプション:次のプロパティが含まれる JavaScriptオブジェクト。
出力:なし
エラー:なし
setFocus (som)SOM式で指定されたフィールドに フォーカスを置く
setFieldValue (som,value) 指定したSOM式のフィールドの値を設定
必要情報:
出力:なし
エラー:SOM式が正しくない場合、例外を スローする
getFieldValue (som) 指定したSOM式のフィールドの値を返す
Input:値の取得が必要なフィールドのSOM式が含まれている 配列
Output: 結果がArrayとして datapropertyに格納されているオブジェクト。
エラー:なし
var a = formBridge.getFieldValue(“xfa.form.form1.Subform1.TextField”);
if(a.errors) {
var err;
while((err = a.getNextMessage()) != null)
alert(a.message)
} else {
alert(a.data[0])
}
getFieldProperties(som,property)SOM式で指定されたフィールドの特定のプロパティの値のリストを 取得
必要情報:
出力: 結果が配列として ** datapropertyに含まれているオブジェクト
エラー:なし
setFieldProperties(som,property,values)SOM式で指定されたすべてのフィールドに対して、指定されたプロパティの値を 設定
必要情報:
出力:なし
エラー:なし
// Example 1: FormBridge.restoreFormState
function loadFormState() {
var suc = function(obj) {
//success
}
var err = function(obj) {
while(var t = obj.getNextMessage()) {
$("#errorDiv").append("<div>"+t.message+"</div>");
}
}
var _formState = // load form state from storage
formBridge.restoreFormState({success:suc,error:err,formState:_formState}); // not passing a context means that this will be formBridge itself. Validation errors will be checked.
}
//-----------------------------------------------------------------------------------------------
---
//Example 2: FormBridge.submitForm
function SubmitForm() {
var suc = function(obj) {
var data = obj.data;
// submit the data to a url;
}
var err = function(obj) {
while(var t = obj.getNextMessage()) {
$("#errorDiv").append("<div>"+t.message+"</div>");
}
}
formBridge.submitForm({success:suc,error:err}); // not passing a context means that this will be formBridge itself. Validation errors will be checked.
}