文章来自:iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天 (ithome.com.tw)
GBC上运作的Hello world!
在前面章节中,我们已经写过 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 (若不清楚 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 平台客户环境),依照下列步骤
- 先使用 ps 查询服务 (范例为崁入式) Process ID
- 使用 kill -9 Process_id 清理掉原有的 fastcgidispatch
- 重启服务,记得指定读取的 as.xcf 档案路径,并加入背景执行符号
不想一直重启服务
若每次均执行as.xcf的异动才能挂载程序,则表示当有新的作业时网站都必须相应停服务。这不是一个好方法,下列调整一下范例,让服务不用重启,只需要修改自己的部分即可使用
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 程序均应该可以在网页上执行。
转载请注明:赫非域 » [day8]GBC上运作的Hello world!