JSONデータサービスの使用
デザイナーにてJSONデータセットを追加し、データを帳票にバインディングします。
JSONデータサービスの使用
e-FormからJSON文字列を取得
membership-odiparam.ozr
をmembership-jsonset.ozr
にコピーし、membership-jsonset.ozr
ファイルを開きます。
フォームをプレビューし、入力フィールドを入力します。
ビューアの右上にあるEtc アイコン(
)をクリックして”入力データコピー (json)”を選択します。
メモ帳を開き、クリップボードの文字列を貼り付けて、テキストファイル(
jsonset.txt
)として保存します。
JSONデータサービスの作成

データ情報タブでDataServiceを右クリックして”JSONデータセットの追加”を選択します。
”JSONデータセットの追加”ダイアログでパスをクリックし、デザインタイムのデータセットとランタイムデータセットに
jsonset.txt
ファイルを追加します。必要ある場合、デフォルトのデータセット名のJSON_Set1を変更します(例:jsonsetに変更)。
画面の下段でJSONデータの文字セットが設定できます。
データセット名を右クリックしてセットの構成を選択します。
ルートノードの$記号を右クリックし、基準JSONPATH指定を選択します。
データセットに含めたいすべてのフィールド項目を選択し、フィールドの追加を選択します。
画面の下部に追加されたフィールドが表示されます。OKをクリックします。
データ情報タブのDataService下の
jsonset
データセットにフィールドが追加されたことが確認できます。member
データセットの代わりにDataServiceのjsonset
が使用できるようになりました。ODIのmembership
を削除し、member
データセットフィールドのマッピングをすべてjsonset
のDataServiceのマッピングに置き換えます。プレビューをします。
jsonset.txt
の値をフォームの入力コンポーネントに入力できます。
JSONデータセットにデータを渡すためのパラメータの作成
アプリケーションからJSONデータを取得してフォームファイルに渡すには、先ず、OZFormParamの下に
jsondata
パラメータを追加する必要があります。その後、
jsondata
からjsonset
にデータを渡す必要があります。jsonset
を右クリックして編集を選択します。ランタイムデータセットの適用方法からパラメータ(データ)を選択した後、パラメータ...をクリックします。
パラメータ設定ダイアログでjsondataパラメーターを選択します。
OKを2回クリックします。
ファイルを保存します。

JSONデータをe-Formに送信
以下のようにアプリケーションからJSONデータをフォームファイルに渡すことができます。
JSON文字列についてはエスケープ処理が必要です。
<script type="text/javascript" >
var serverUrl = "https://" + location.host;
var jsondata = "{\"memberNo\":\"1011\",\"photo\":\"\",\"firstName\":\"John\",\"lastName\":\"Kim\",\"yyyy\":\"1979\",\"mm\":\"09\",\"dd\":\"05\",\"gender\":\"M\",\"contactNo\":\"010-6369-7777\",\"email\":\"[email protected]\",\"memberType\":\"Trial\",\"fromDate\":\"2019-12-24\",\"toDate\":\"2020-12-24\",\"cardType\":\"VISA\",\"cardHolder\":\"\",\"cardNo\":\"1111-2222-3333-4444\",\"cardExpMM\":\"11\",\"cardExpYY\":\"24\",\"agreeCheck\":\"N\",\"applicant\":\"John\",\"sign\":\"\",\"signDateTime\":\"signDateTime\"}";
function SetOZParamters_OZViewer(){
var oz = document.getElementById("OZViewer");
oz.sendToActionScript("information.debug", "true"); // viewer console
oz.sendToActionScript("connection.servlet",serverUrl + "/oz/server");
oz.sendToActionScript("connection.reportname","/eform/membership-jsonset.ozr");
oz.sendToActionScript("connection.pcount", "1");
oz.sendToActionScript("connection.args1", "jsondata=" + jsondata);
oz.sendToActionScript("etcmenu.copyinputdata_json", "true"); // enable [Copy input data (json)] option in etc menu
return true;
}
start_ozjs("OZViewer", serverUrl + "/oz/HTML5viewer/");
</script>
最終更新
役に立ちましたか?