news 2026/2/15 23:25:00

08.05.01.tiptop webserver接口篇(制作接口:自定义查询)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
08.05.01.tiptop webserver接口篇(制作接口:自定义查询)

本页目录:

  • 1、写代码
  • 2、配置
  • 3、测试

写代码

修改注册服务接口代码:/u1/topprod/tiptop/aws/4gl/aws_ttsrv2_service.4gl

  • 添加發佈 Service Function 段落
----------------------- begin waichi001 -------------- WHEN"aws_customizeQueryData"LET l_op=com.WebOperation.CreateDOCStyle("aws_customizeQueryData", p_op_name, g_request, g_response)----------------------- end waichi001 --------------
  • 添加提供服務呼叫
----------------------- begin waichi001 -------------- FUNCTION aws_customizeQueryData()LET g_service="CustomizeQueryData"CALL aws_customize_query_data()END FUNCTION ----------------------- end waichi001 --------------

新增接口实现代码:/u1/topprod/tiptop/aws/4gl/aws_customize_query_data.4gl

# Prog. Version..: '5.30.15-26.01.21(00000)' ##{# Program name...: aws_customize_query_data.4gl# Descriptions...: 自定义查询接口# Date & Author..: 2026/01/21 by DKLi1717DATABASE ds GLOBALS"../../config/top.global"GLOBALS"../4gl/aws_ttsrv2_global.4gl"# @mathodName: aws_customize_query_data# @author:李德凯 2665252078@qq.com# @date:Created in 2026-01-21# @description: 提供取得 ERP 料件資料服務(入口 function)FUNCTION aws_customize_query_data()WHENEVER ERROR CONTINUE CALL aws_ttsrv_preprocess()IF g_status.code="0"THEN CALL aws_customize_query_data_process()END IF CALL aws_ttsrv_postprocess()END FUNCTION# @mathodName: aws_customize_query_data_process# @author:李德凯 2665252078@qq.com# @date:Created in 2026-01-21# @description: 查詢 ERP 料件編號資料FUNCTION aws_customize_query_data_process()DEFINE l_fields STRING, l_sql STRING, l_type STRING, l_node om.DomNode, getNowID STRING, temp_table_name LIKE type_file.chr1000, temp_table_date_name LIKE type_file.chr1000, l_xmlData om.DomNode DEFINE docData om.DomDocument, piData om.DomNode, nodeData om.DomNode, fData om.DomNode LET l_fields=aws_ttsrv_getParameter("setFields")LET l_sql=aws_ttsrv_getParameter("setSql")LET l_type=aws_ttsrv_getParameter("setType")LETgetNowID="s"||FGL_GETPID()IFl_type="Single"THEN -- LET docData=om.DomDocument.create("Test")-- LET piData=docData.getDocumentElement()-- LETnodeData=piData.createChild("Record")-- LETfData=nodeData.createChild("Field")-- CALL fData.setAttribute("setFields",l_fields)-- LETfData=nodeData.createChild("Field")-- CALL fData.setAttribute("setSql",l_sql)-- LETfData=nodeData.createChild("Field")-- CALL fData.setAttribute("setType",l_type)-- CALL piData.writeXml("/u1/out/r1.xml")CALL createTempTable(getNowID,l_fields,l_sql)RETURNING temp_table_name,temp_table_date_name CALL createTempTableToXML(temp_table_name,temp_table_date_name)RETURNING l_xmlData --CALL l_xmlData.writeXml("/u1/out/r1.xml")LET l_node=aws_ttsrv_addMasterRecord(l_xmlData,"pmn_file")CALL dropTempUploadTable(temp_table_name,temp_table_date_name)END IF --CALL createTempTable(getNowID,l_fields,l_sql)RETURNING temp_table_name,temp_table_date_name -- CALL createTempTableToXML(temp_table_name,temp_table_date_name)RETURNING l_xmlData --CALL l_xmlData.writeXml("/u1/out/r2.xml")-- LET l_node=aws_ttsrv_addMasterRecord(l_xmlData,"pmn_file")-- CALL dropTempUploadTable(temp_table_name,temp_table_date_name)END FUNCTION

注意代码做了封装:可参考如下的 s_poi_excel.4gl

  • 07.02.02.tiptop集成篇(4gl扩展功能 集成java:封装java的poi包设配4gl 案例 制作excle)

  • 07.02.03.tiptop集成篇(4gl扩展功能 集成java:封装java的poi包设配4gl 案例 导入excle)

  • 源代码:s_poi_excel.4gl

配置

整合Server端 配置

  • 方式一:界面维护
# 服务代码:CustomizeQueryData# 服务说明:自定义查询取得資料# 对应ERP函数名称:aws_customizeQueryDataexe2 aws_ttcfg2
  • 方式二:数据库插入

    • 可以参考 :GetItemData 使用sql插入

INSERTINTODS.WSR_FILESELECT'CustomizeQueryData'WSR01,WSR02,'自定义查询取得資料'WSR03,'aws_customizeQueryData'WSR04,WSRACTI,SYSDATE WSRDATE,WSRGRUP,WSRMODU,WSRUSER,WSRORIU,WSRORIGFROMDS.WSR_FILEWHEREWSR01='GetItemData'

接口实现的代码编译

# 上传cd/u1/topprod/tiptop/aws/4gl put aws_customize_query_data.4gl# 编译cd/u1/topprod/tiptop/aws/4gl r.c2 aws_customize_query_data

注册服务接口的代码编译

# 备份cd/u1/topprod/tiptop/aws/4glmvaws_ttsrv2_service.4gl aws_ttsrv2_service.4gl20260123DLKLi# 上传cd/u1/topprod/tiptop/aws/4gl put aws_ttsrv2_service.4gl# 编译cd/u1/topprod/tiptop/aws/4gl r.c2 aws_ttsrv2_service

程序链接

  • 方式一:界面维护
# 查询:连结档案:aws_ttsrv2# 表格新增:模组代码:AWS 程序代码:aws_customize_query_data 是否连接:是exe2 p_link aws_ttsrv2cd/u1/topprod/tiptop/aws/4gl r.c2 aws_ttsrv2 r.l2 aws_ttsrv2 exe2 aws_ttsrv2
  • 方式二:数据库
INSERTINTOGAL_FILESELECTgal01,gal02,'aws_customize_query_data'gal03,gal04FROMGAL_FILEWHEREgal01='aws_ttsrv2'ANDgal02='AWS'ANDGAL03='aws_get_item_data'
cd/u1/topprod/tiptop/aws/4gl r.c2 aws_ttsrv2 r.l2 aws_ttsrv2 exe2 aws_ttsrv2 r.r2 aws_ttsrv2 -W http://10.1.2.205:8090

生成WSDL

# 开自己账号终端:查看suBL066912cd/u1/topprod/tiptop/aws/4gl r.r2 aws_ttsrv2 -W http://10.1.2.205:8090# 下载后查询查询CustomizeQueryData是否存在get /u1/out/TIPTOPServiceGateWay.wsdl
  • 浏览器访问:http://10.1.2.205/web/ws/r/aws_ttsrv2?wsdl
    • 查询CustomizeQueryData是否存在

重启webserver

注意:每次修改都按顺序执行一次

# 开使用tiptop的终端终端: 杀进程sutiptopps-ef|grepas.xcf_84kill-9 xxxx# 开使用root的终端终端:使用root账户重启 httpdsuservicehttpd restart# 使用tiptop账号的终端:使用tiptop账号重启webserversutiptop startwsps-ef|grepas.xcf_84

测试

  • 使用Apipost

  • 请求参数
    • url:http://10.1.2.205/web/ws/r/aws_ttsrv2?wsdl
    • 请求方式:POST
    • Header
Content-Type:text/xml;charset=UTF-8 SOAPAction:""
- Body - raw 选xml
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"xmlns:tip="http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay"><soapenv:Header/><soapenv:Body><tip:CustomizeQueryDataRequest><tip:request><![CDATA[<Request><Access><Authenticationuser="xxxx"password="xxxxx"/><Connectionapplication="tiptop"source="10.1.2.205"/><Organizationname="BLPROD"/><Localelanguage="zh_tw"/></Access><RequestContent><Parameter><Record><Fieldname="setFields"value="pmn33,pmn01,pmn02,pmn09,pmn37,pmnud10"/><Fieldname="setSql"value="SELECT pmn33,pmn01,pmn02,pmn09,pmn37,pmnud10 FROM pmn_file WHERE pmn01 ='VFU22-22100017' AND pmn02 IN ('1','2','3') "/><Fieldname="setType"value="Single"/></Record></Parameter><Document /></RequestContent></Request>]]></tip:request></tip:CustomizeQueryDataRequest></soapenv:Body></soapenv:Envelope>

因为公司的接口debug有问题,因此做了写如xml判断,可以get /u1/out/r1.xml 查看

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/16 2:24:15

one_channel_hub 移植到CH584M MCU平台(移除WiFi/网络相关代码)

one_channel_hub 移植到CH584M MCU平台&#xff08;移除WiFi/网络相关代码&#xff09; 一、移植前准备 1. 核心背景 CH584M特性&#xff1a;沁恒微的低功耗MCU&#xff0c;基于RISC-V架构&#xff0c;内置BLE 5.0&#xff0c;无WiFi外设&#xff0c;需适配其裸机/轻量级RTOS开…

作者头像 李华
网站建设 2026/2/15 11:52:12

JDK版本的区别

在IDEA中新建Spring Boot项目时&#xff0c;需要选择JDK版本&#xff0c;这里小记一下&#xff1a; Oracle OpenJDK Oracle 官方维护的开源免费JDK&#xff0c;Java标准实现。 Amazon Corretto 亚马逊基于 OpenJDK 定制的免费、长期支持JDK。 JetBrains Runtime JetBrains&…

作者头像 李华
网站建设 2026/2/9 10:51:04

2024年AI原生应用开源数据集推荐:高质量训练数据获取+处理全攻略

2024 年 AI 原生应用开源数据集推荐&#xff1a;高质量训练数据获取 处理全攻略 摘要/引言 在当今 AI 蓬勃发展的时代&#xff0c;高质量的数据集对于训练出强大且精准的 AI 原生应用至关重要。然而&#xff0c;如何获取合适的开源数据集&#xff0c;并对其进行有效的处理&a…

作者头像 李华
网站建设 2026/2/15 8:02:03

Java计算机毕设之基于Springboot+MySQ基于springboot的个人健康管理系统基于SpringBoot + Vue的个人运动健康管理系统(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/2/12 14:20:09

提示工程架构师如何解决prompt优化的瓶颈?这篇给你答案!

从瓶颈到突破&#xff1a;提示工程架构师的Prompt优化实战指南 引言&#xff1a;你是否也在经历这些Prompt优化的“至暗时刻”&#xff1f; 凌晨三点&#xff0c;你盯着屏幕上的LLM输出&#xff0c;第17次修改Prompt——从“写一篇感人的产品文案”到“写一篇面向职场妈妈的婴…

作者头像 李华
网站建设 2026/2/16 1:33:22

【开题答辩全过程】以 基于web的生鲜农产品信息管理系统为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

作者头像 李华