在前面章節中,我們已經寫過 2 個 hello world作業,接下來要將 hello world 呈現在瀏覽器上
回顧 as.xcf 的配置中,有APPLICATION_LIST區塊,可在內部指定觸發的作業。因此可利用此方式將已完成的 hello world 掛載到瀏覽器上 (注意需使用 MENU版。若使用背景DISPLAY版,訊息會掉入 fastcgidispatch 的 LOG 內)
微調一下,加上 基本指令 介紹的ARG_VAL
MAIN
DEFINE ls_title STRING
#加上參數的 hello world
LET ls_title = "Hello World! ",ARG_VAL(1)
MENU ls_title
ON ACTION exit
EXIT MENU
END MENU
END MAIN
執行時,可加上參數成為:
fglrun hello alex
打開您所維護的 as.xcf (若不清楚 as.xcf 可參考 GAS應用服務器的啟動 ),搜尋 gwc-demo,這一段 APPLICATION_LIST 是我們可以參考的樣本,複製一份如下
<APPLICATION Id="ithelp" Parent="defaultwa">
<EXECUTION>
<PATH>/u1/topprd4/ithelp</PATH> <!-- 檔案路徑 -->
<MODULE>hello.42m</MODULE> <!-- 執行作業 -->
</EXECUTION>
</APPLICATION>
設定完成後,重啟 GAS 服務(看是 httpdispatch 或 fastcgidispatch 重啟該服務即可)
重啟後,以瀏覽器連入 http://服務器ip:6394/ua/r/ithelp
(若為崁入式,綁定在 wtopprd4 路徑,則改為 http://服務器ip/wtopprd4/ua/r/ithelp )
說好的參數呢 ?
要打開參數接收的功能,需要將 as.xcf 做一下微調,增加 AllowUrlParameters="TRUE" 設定
<APPLICATION Id="ithelp" Parent="defaultwa">
<EXECUTION AllowUrlParameters="TRUE">
<PATH>/u1/topprd4/ithelp</PATH> <!-- 檔案路徑 -->
<MODULE>hello.42m</MODULE> <!-- 執行作業 -->
</EXECUTION>
</APPLICATION>
重啟後,在網址列上增加 ?Arg=alex 就可傳入參數
範例主機使用 linux (一般鼎新/鼎捷的 T 平台客戶環境),依照下列步驟
若每次均執行as.xcf的異動才能掛載程式,則表示當有新的作業時網站都必須相應停服務。這不是一個好方法,下列調整一下範例,讓服務不用重啟,只需要修改自己的部分即可使用
注意 !! 將之前新增的 APPLICATION 設定記得先清除掉
找尋範例『Id="idp"』並調整如下:(注意:idp只是參考範例,實際是新增下方一行)
<!-- default group for external applications -->
<GROUP Id="_default">$(res.path.app)</GROUP>
<GROUP Id="idp">$(res.path.gip.starter)</GROUP>
<GROUP Id="admin">$(res.path.idp.applications)</GROUP>
<GROUP Id="ithelp">/u1/topprd4/ithelp</GROUP> <!-- 新增本行 -->
調整完成後重新啟動服務。
此時在 fastcgidispatch新增虛擬路徑 ithelp 指向實體路徑 /u1/topprd4/ithelp
該路徑即為上述 hello world 程式的路徑 (該程式命名為 hello.4gl,編譯後為 hello.42m)
新增設定檔案 demo.xcf
<?xml version="1.0" encoding="UTF-8" ?>
<APPLICATION Parent="defaultgwc">
<EXECUTION AllowUrlParameters="TRUE">
<ENVIRONMENT_VARIABLE Id="FGLPROFILE" Concat="APPEND">/u1/genero4/fgl/etc/fglprofile</ENVIRONMENT_VARIABLE>
<PATH>/u1/topprd4/ithelp</PATH> <!-- 檔案路徑 -->
<MODULE>hello.42m</MODULE> <!-- 執行作業 -->
</EXECUTION>
</APPLICATION>
設定完成後,就可以使用 http://服務器ip:6394/ua/r/ithelp/demo?Arg=alex 執行出如下畫面
至此,後續寫出來的各式 4GL 程式均應該可以在網頁上執行。