サポート > リポジトリ > 業務ロジック > Wagby関数を利用する
ja | en

Wagbyが提供する関数をコードでも利用することができます。

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

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

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

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

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

区分 関数名 代替表記 注記
数値 RAND() JFCUtils.__rand("項目名",p) (*1)
数値 RANDBETWEEN(開始,終了) JFCUtils.__randbetween("項目名",p,開始,終了) (*1)
文字列 RANDSTR(桁数) JFCUtils.__randstr("項目名",p,桁数) (*1)
日付時刻 TODAY() p.request.getAttribute("__jfc_V_TODAY") -
日付時刻 NOW() p.request.getAttribute("__jfc_V_NOW") -
日付時刻 WORKDAY(開始日,日数) HolidayManager.getInstance().getEigyoDayAsSQLDate(開始日,日数) (*2)
日付時刻 NETWORKDAYS(開始日,終了日) HolidayManager.getInstance().getRestDay(開始日,終了日) (*2)
権限 HASMODELPERMISSION(引数文字列) JFCUtils.isValidPermission(p.user,引数文字列) (*1)
権限 HASPRINCIPAL(引数文字列) JFCUtils.hasPrincipal(p.user,引数文字列) (*1)
アカウント USERNAME() ((p.user!=null)?p.user.getUsername():"") -
アカウント USERINFO(引数文字列) JFCUtils.getJuserAttribute(p,引数文字列) (*1)
アカウント JGROUPID() JFCUtils.getJgroupid(p.user) (*1)
画面制御 BROWSERTYPE() p.request.getAttribute("__jfc_browser_type") -
画面制御 EVENT() JFCUtils.getEvent(p) (*1)
画面制御 RESULTSIZE() JFCUtils.getResultSize(p) (*1)
画面制御 SCREENID() p.request.getAttribute("__jfc_screen_id") -
画面制御 WIZARDPAGE() JFCUtils.getWizardPage(p) (*1)
国際化 LOCALE() JFCUtils.getLocale(p) (*1)
リソース MESSAGE() JFCUtils.Message(p, "M0001")
JFCUtils.Message(p, "M0002", "hello")
(*1)
リソース ERRORMESSAGE() JFCUtils.ErrorMessage(p, "E0001")
JFCUtils.ErrorMessage(p, "E0002", "hi")
(*1)
ワークフロー FLOWSTATUS("モデル名",主キー) JfcworkstateServiceImpl.PARTICIPANTNODENAME(p,"モデル名",主キー) (*3)
ワークフロー WF_CURRENT_USERID("モデル名",主キー) JfcworkstateServiceImpl.WFCURRENTUSERID(p,"モデル名",主キー) (*3)
ワークフロー WF_NEXT_USERID("モデル名",主キー) JfcworkstateServiceImpl.WFNEXTUSERID(p,"モデル名",主キー) (*3)
ワークフロー WF_USERID() モデル名(キャメル記法)Helper.wf_nextuserid(p,"モデル名",ストアモデル) (*4)
ワークフロー WF_CURRENT_GROUPID("モデル名",主キー) JfcworkstateServiceImpl.WFCURRENTGROUPID(p,"モデル名",主キー) (*3)
ワークフロー WF_NEXT_GROUPID("モデル名",主キー) JfcworkstateServiceImpl.WFNEXTGROUPID(p,"モデル名",主キー) (*3)
ワークフロー WF_GROUPID() モデル名(キャメル記法)Helper.wf_nextgroupid(p,"モデル名",ストアモデル) (*4)
ワークフロー WF_IS_ADMITUSER() モデル名(キャメル記法)Helper.wf_isadmituser(p,"モデル名",ストアモデル) (*4)
外部連携 REQUEST() p.request -
外部連携 SESSION() p.request.getSession() (*5)
1. R7.11.1 までの Wagby をご利用の場合、スクリプトの先頭でJavaClass型の変数を宣言してください。var JFCUtils = Java.type("jp.jasminesoft.jfc.JFCUtils"); と記述します。R7.11.2 以降の Wagby では不要です。(標準でこの行が含まれます。)
2. R7.11.1 までの Wagby をご利用の場合、スクリプトの先頭でJavaClass型の変数を宣言してください。var HolidayManager = Java.type("jp.jasminesoft.util.HolidayManager"); と記述します。R7.11.2 以降の Wagby では不要です。(標準でこの行が含まれます。)
3. スクリプトの先頭でJavaClass型の変数を宣言してください。var JFCUtils = Java.type("jp.jasminesoft.wagby.app.jfcworkstate.JfcworkstateServiceImple"); と記述します。パッケージ名を変更している場合は、"jp.jasminesoft.wagby"を適切に読み替えてください。
4. スクリプトの先頭でJavaClass型の変数を宣言してください。var JFCUtils = Java.type("jp.jasminesoft.wagby.app.<モデルID>.<モデルID>Helper"); と記述します。パッケージ名を変更している場合は、"jp.jasminesoft.wagby"を適切に読み替えてください。
5. SESSION() は HttpSession クラスを指します。Hibernate の Session ではありません。

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

var screen_id = p.request.getAttribute("__jfc_screen_id");
if (screen_id != null && screen_id == "XXX") { /* 画面名を指定する */
    return;
}
... 処理の本体 ...
画面名の詳細はSCREENID関数の説明をお読みください。