页面树结构
转至元数据结尾
转至元数据起始

一天,小张找到我,问:“我们这边的有一个的PAD,是安卓的系统,需要和医院里的HIS集成获得病床的输液情况,但是医院HIS系统已经用了很久了,没有restful api只有中间表,我能不能在DWF中补充写一个后端脚本,通过DWF的restful api获取数据呢?"。

“可以的“,我答到:”你可以在PAD调用DWF中的restful api,执行一个后端脚本操作,通过DWF集成HIS系统的数据库,查询信息后返回PAD“。

“哦?那我应该怎么做?”,小胖忙问到。

技术路线

新建后端脚本操作

首先,需要在DWF内新建一个后端脚本操作,如下图所示,选择implement动作,然后在实现方式里选择后端脚本,与HIS系统集成的逻辑可以放到这里。

关于后端脚本的写法在 第九章 后端脚本调用第三方服务 中有详细介绍这里,就不多讲了。你可以通过Java.type引入JDBC链接,在后端脚本里访问数据库,也可以调用其他的restful api。

图-创建后端脚本操作

调用restful api启动后端脚本

然后,通过restful api调用是DWF后端脚本可以通过:/dwf/v1/meta/operations/{operationName}/execute完成,其作用就是提示DWF服务器执行一个指定的后端脚本,其中:

  • operationName:是一个指定英文名的操作,这个英文名就是在建立操作时的英文名。

这个restful api中可以传递一个JSON对象,包含若干属性,用于指定目标的类,以及两个对象的数组,属性的作用如下所示:

  • className:操作绑定的实体类或者关联类对应的英文名
  • objs:一个对象的数组,第一个元素对应在后端脚本中的this.obj
  • selectedOjbs:一个对象数组,对应后端脚本中的this.selectedOjbs

下面的代码是假设在DWF中通过脚本调restful api启动AppTask类的attachHexagons操作,从而启动后端脚本的例程,如果在PAD调用可以按照特定平台调用restful api接口调用。

    var param = {
        className: "AppTask",
        objs: [appTask],
        selectedObjs: hexgons,
    };
    this.dwf_axios.post("meta/operations/attachHexagons/execute",param).then(res => {
        this.freshData();
    });

尾声

小张:“好,我知道了,那如果我希望是执行后返回一些结果应该怎么做?” 

我:"目前,在后端脚本之中,你可以通过对this.res赋值的方式向前端返回一些字符串“

“明白了,我回去试试“。

  • 无标签