サポート > リポジトリ > 関数 > 外部連携
ja | en

外部システムとの連携に関する4個の関数を紹介します。

HTTPSEND(urlを示す文字列)

urlに示した(外部)サイトへアクセスし、ページ情報を取得します。

HTTPSEND("http://wagby.com")

url部に JSONを返す REST API サーバを指定することで、外部の値を取得することに活用できます。後述するJSONPATH関数との組み合わせを想定しています。

このメソッドは HTTP GET のみに対応しています。POST や PUT などの用途にはお使い頂けません。またリクエストヘッダの指定なども行うことはできません。

ISREST()

現在のやりとりが、REST API 経由の場合はtrueを返します。そうでない場合(画面からの操作またはアップロード更新、ダウンロードなど)はfalseを返します。

JSONPATH(JSONオブジェクトが格納された文字列, JSON Path 文字列)

JSON形式の文字列を解析して、JSON Path で指定された値を取得します。

JSONPATH(${jsondata},"$.Items[0].Item.title")

上記の例では、jsondata項目に設定されたJSONデータを解析して、タイトルを取得するものです。

JSON Path は「Java JsonPath」というライブラリを使っています。http://jsonpath.curiousconcept.com/で、JSON Pathの動作を試すことができます。

REQUEST()

REQUEST("名前")

この関数は、Wagby とは異なるシステムで用意された Web フォーム(例:PHP や Perl などで用意したフォーム)から Wagby へ POST するといったケースで用いられることを想定しています。

指定した名前で、Java が管理するリクエストオブジェクトから値を取得します。 Wagby 以外のページから遷移されたとき、HTTP GET/POST パラメータを直接、受け取ることができます。戻り値の型は文字列型です。

REQUEST("id")

Webフォームから送信されてくる名前が、対象項目の名前(英語)と一致している場合、REQUEST関数の引数は省略できます。

REQUEST関数の戻り値の型は文字列型です。この値を数字型や日付型項目にセットする場合は、TEXT関数などを用いて文字列から数値、日付へ変換してください。

(型)SESSION()

(型)SESSION("名前")

この関数はJavaによるカスタマイズ開発を行う方向けに用意されました。

指定した名前で、Java が管理するセッションオブジェクトから値を取得します。戻り値の型は任意のため、必ず型を明示してください。

(String)SESSION("item1")

セッションオブジェクトのキー名が、対象項目の名前(英語)と一致している場合、SESSION関数の引数は省略できます。

SESSION関数は開発者がJavaコードをカスタマイズし、セッションオブジェクトに値を格納したものを「受け取る」ために使うことができます。値を受け取る場合、必ずセッションオブジェクトに格納したオブジェクトの型でキャストしてください。(型の指定をしないか、誤った型を指定するとコンパイル時にエラーとなります。)

型についての補足

格納するオブジェクトと「型」の関係は次のとおりです。

格納するオブジェクト 明示する「型」の記述方法
整数型(Integer)
文字列型(String)
日付型(java.sql.Date)
時間型(java.sql.Time)
日付時間型(java.sql.Timestamp)
ファイル型(ファイル名)(String)
1バイト整数(Byte)
2バイト整数(Short)
4バイト整数(Integer)
8バイト整数(Long)
4バイト浮動小数点数(Float)
8バイト浮動小数点数(Double)
固定値 (作成日/更新日)(java.sql.Timestamp)
その他 (URL型/メールアドレス型など)(String)

(型)ATTRIBUTE("名前")

一回の処理(ユーザがボタン押下など何らかの操作を行なった結果サーバとの通信が生じ、サーバでの処理が終わった後にブラウザの画面が書き換わるまで)のたびに「p.request」というオブジェクトが生成されます。処理が終わると破棄されます。つまり p.request オブジェクトの「生存期間」は一回の処理の開始から終了まで、となります。

ATTRIBUTE 関数は、この p.request に格納された値を取得するものです。戻り値の型を明示するため、ATTRIBUTE 関数の前に型を指定してください。オブジェクトと型の関係は SESSION 関数の説明と同じです。

p.requestに値をセットする

この p.request オブジェクトに「値」を格納する場合は p.request.setAttribute メソッドを用います。引数はキー名(文字列)と、格納したいオブジェクトです。この関数は提供されていません。スクリプトを使って値をセットするようにしてください。(応用例 : 親キー以外の項目値を用いて子モデル一覧表示を行う