[GAS] 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

https://ithelp.ithome.com.tw/upload/images/20210908/20051169bXbCPa2Krl.png

配置到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 )
https://ithelp.ithome.com.tw/upload/images/20210908/20051169RgLqMHjlcP.png

说好的参数呢 ?

要打开参数接收的功能,需要将 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 就可传入参数
https://ithelp.ithome.com.tw/upload/images/20210908/20051169Ig3TqXhjq4.png

简单粗暴的重启

范例主机使用 linux (一般鼎新/鼎捷的 T 平台客户环境),依照下列步骤
https://ithelp.ithome.com.tw/upload/images/20210908/20051169A8IASEvNVf.png

  1. 先使用 ps 查询服务 (范例为崁入式) Process ID
  2. 使用 kill -9 Process_id 清理掉原有的 fastcgidispatch
  3. 重启服务,记得指定读取的 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 执行出如下画面
https://ithelp.ithome.com.tw/upload/images/20210908/20051169tRzVzas4m4.png

至此,後续写出来的各式 4GL 程序均应该可以在网页上执行。


<<:  Leetcode 挑战 Day 06 [66. Plus One]

>>:  OpenStack Keystone 介绍

【Day25】反馈元件 - Skeleton

元件介绍 Skeleton 是一个骨架载入元件(Skeleton Screen Loading),跟...

Day1 - 前言

杂谈 今年是个很特别的一年,对威尔猪来说也是,从没写过任何形式的笔记或文章,也没什麽特别规划,居然就...

【Day 14】jQuery基本语法

jQuery的基本语法: 1.前面都会有美元 $ 的符号 2. $(CSS选择器).执行的动作() ...

Day-15 Pytorch 的 Regression 实作

那我们之前看过了 Python 的 Easy Regression 实作,昨天也看过了 Pytor...

Day 21 - Vue Router基本概念(1)

如同我们前面几天提到的,Vue的核心是用来处理状态、版面、以及元件的逻辑。 但是当整个网站逐渐发展成...