Wagby関数を利用する

最終更新日: 2023年7月31日
R8 | R9

利用方法

多くの関数は、接頭語 "ExcelFunction." を付与することで利用できます。

customer.autoid = ExcelFunction.NUMTOJTEXT(1234, 1, 0);

利用できない関数

次の関数はスクリプト内部では利用できません。

同様のことをJavaScriptプログラミングで記述することができます。SUM関数の例をこちらに示します。

Javaクラスによって代替する関数

次の関数は「代替表記」を利用してください。
("p"は暗黙オブジェクトとして、スクリプト内で利用できます。)

区分 関数名 代替表記 注記
数値 RAND() JFCUtils.__rand("項目ID",p)
数値 RANDBETWEEN(開始,終了) JFCUtils.__randbetween("項目ID",p,開始,終了)
文字列 RANDSTR(桁数) JFCUtils.__randstr("項目ID",p,桁数)
日付時刻 TODAY() p.request.getAttribute("__jfc_V_TODAY")
日付時刻 NOW() p.request.getAttribute("__jfc_V_NOW")
日付時刻 NOWM()9.2.2 p.request.getAttribute("__jfc_V_NOWM")
日付時刻 WORKDAY(開始日,日数) HolidayManager.getInstance().getEigyoDayAsSQLDate(開始日,日数)
日付時刻 NETWORKDAYS(開始日,終了日) HolidayManager.getInstance().getRestDay(開始日,終了日)
権限 HASMODELPERMISSION(引数文字列) JFCUtils.isValidPermission(p.user,引数文字列)
権限 HASPRINCIPAL(引数文字列) JFCUtils.hasPrincipal(p.user,引数文字列)
アカウント USERNAME() ((p.user!==null)?p.user.getUsername():"")
アカウント USERINFO(引数文字列) JFCUtils.getJuserAttribute(p,引数文字列)
アカウント JGROUPID() JFCUtils.getJgroupid(p.user)
画面制御 BROWSERTYPE() p.request.getAttribute("__jfc_browser_type")
画面制御 EVENT() JFCUtils.getEvent(p)
画面制御 RESULTSIZE() JFCUtils.getResultSize(p)
画面制御 SCREENID() p.request.getAttribute("__jfc_screen_id")
p.request.getAttribute("__jfc_screen_nid")
(*4)
画面制御 SCREENTYPE() p.request.getAttribute("__jfc_screen_type")
画面制御 WIZARDPAGE() JFCUtils.getWizardPage(p)
国際化 LOCALE() JFCUtils.getLocale(p)
リソース MESSAGE() JFCUtils.Message(p, "M0001")
JFCUtils.Message(p, "M0002", "hello")
リソース ERRORMESSAGE() JFCUtils.ErrorMessage(p, "E0001")
JFCUtils.ErrorMessage(p, "E0002", "hi")
ワークフロー FLOWSTATUS("モデルID",主キー) JfcworkstateServiceImpl.PARTICIPANTNODENAME(p,"モデルID",主キー) (*1)
ワークフロー WF_CURRENT_USERID("モデルID",主キー) JfcworkstateServiceImpl.WFCURRENTUSERID(p,"モデルID",主キー) (*1)
ワークフロー WF_NEXT_USERID("モデルID",主キー) JfcworkstateServiceImpl.WFNEXTUSERID(p,"モデルID",主キー) (*1)
ワークフロー WF_USERID() モデル名(キャメル記法)Helper.wf_nextuserid(p,"モデルID",ストアモデル) (*2)
ワークフロー WF_CURRENT_GROUPID("モデルID",主キー) JfcworkstateServiceImpl.WFCURRENTGROUPID(p,"モデルID",主キー) (*1)
ワークフロー WF_NEXT_GROUPID("モデルID",主キー) JfcworkstateServiceImpl.WFNEXTGROUPID(p,"モデルID",主キー) (*1)
ワークフロー WF_GROUPID() モデル名(キャメル記法)Helper.wf_nextgroupid(p,"モデルID",ストアモデル) (*2)
ワークフロー WF_IS_ADMITUSER() モデル名(キャメル記法)Helper.wf_isadmituser(p,"モデルID",ストアモデル) (*2)
外部連携 REQUEST() p.request
外部連携 SESSION() p.request.getSession() (*3)
外部連携 ISREST() JFCUtils.isRestAPI(p)
外部連携 HTTPSEND(url, "ユーザID:パスワード") ExcelFunction.httpsend(p.request, url, "ユーザID:パスワード")
外部連携 HTTPSEND(url, 接続タイムアウト(ms), 読み込みタイムアウト(ms), リトライ回数) ExcelFunction.httpsend(p.request, url, 接続タイムアウト(ms), 読み込みタイムアウト(ms), リトライ回数)
外部連携 HTTPSEND(url, 接続タイムアウト(ms), 読み込みタイムアウト(ms), リトライ回数, "ユーザID:パスワード") ExcelFunction.httpsend(p.request, url, 接続タイムアウト(ms), 読み込みタイムアウト(ms), リトライ回数, "ユーザID:パスワード")
外部連携 WEBAPI(url, リクエストに付与するヘッダ文字列)9.2.0 ExcelFunction.webapi(p.request, url, リクエストに付与するヘッダ文字列)
外部連携 WEBAPI(url, リトライ回数, リクエストに付与するヘッダ文字列)9.2.0 ExcelFunction.webapi(p.request, url, リトライ回数, リクエストに付与するヘッダ文字列)
外部連携 WEBAPI(url, リクエストに付与するヘッダ文字列, 接続タイムアウト(ms), 読み込みタイムアウト(ms), リトライ回数, リクエストに付与するヘッダ文字列)9.2.0 ExcelFunction.webapi(p.request, url, 接続タイムアウト(ms), 読み込みタイムアウト(ms), リトライ回数, リクエストに付与するヘッダ文字列)
その他 CLIENTHOST()9.1.0 JFCUtils.getRealIP(p)
その他 CLIENTHOSTNAME()9.1.0 JFCUtils.getClientHostname(p) R9.0.0〜R9.0.4までは、JFCUtils#getRealIPを呼び出している。R9.1.0以降はJFCUtils#getClientHostnameを呼び出すようになった。
その他 SERVERHOSTNAME() JFCUtils.getServerIP()
その他 GETENV(環境変数名) JFCUtils.getEnv(環境変数名)
集合関数 AGCOUNT(項目名) JFCUtils.getAggregateCount(p, "モデルID", "項目ID")
集合関数 AGSUM(項目名) JFCUtils.getAggregateSum(p, "モデルID", "項目ID")
集合関数 AGAVG(項目名) JFCUtils.getAggregateAvg(p, "モデルID", "項目ID")
集合関数 AGMAX(項目名) JFCUtils.getAggregateMax(p, "モデルID", "項目ID")
集合関数 AGMIN(項目名) JFCUtils.getAggregateMin(p, "モデルID", "項目ID")
1. スクリプトの先頭でJavaClass型の変数を宣言してください。var JfcworkstateServiceImpl = Java.type("jp.jasminesoft.wagby.app.jfcworkstate.JfcworkstateServiceImpl"); と記述します。パッケージ名を変更している場合は、"jp.jasminesoft.wagby"を適切に読み替えてください。
2. スクリプトの先頭でJavaClass型の変数を宣言してください。var JFCUtils = Java.type("jp.jasminesoft.wagby.app.<モデルID>.<モデルID>Helper"); と記述します。パッケージ名を変更している場合は、"jp.jasminesoft.wagby"を適切に読み替えてください。
3. 関数 SESSION() は HttpSession クラスを指します。Hibernate の Session ではありません。
4. Myが接頭語に付与されたカスタマイズクラスが存在したとき、__jfc_screen_id の戻り値は My が付与されます。一方で __jfc_screen_nid を指定すると My が除かれた(正規化された)戻り値に統一されます。

呼び出される画面によって、処理をスキップさせる

var screen_id = p.request.getAttribute("__jfc_screen_id");
if (screen_id !== null && screen_id === "XXX") { /* 画面名を指定する */
    return;
}
... 処理の本体 ...