T100 WebService与Client端开发
T100 WebService Server端开发:
开发流程:1.服务注册;2.服务程序签出;3.服务程序撰写;4.服务程序上传
1.azzi700注册服务规格编号,然后签出就可以写程序了:
2.宣告JSON组成Requent和Response的内容:
#add-point:自定義客戶專用模組變數(Module Variable)
PRIVATE TYPE type_detail RECORD #传入单身数组isagseq LIKE isag_t.isagseq, #项次isag001 LIKE isag_t.isag001, #来源类型isag002 LIKE isag_t.isag002, #来源单号isag003 LIKE isag_t.isag003, #来源项次isag009 LIKE isag_t.isag009, #料号isag004 LIKE isag_t.isag004, #发票数量isag005 LIKE isag_t.isag005, #发票单位isag101 LIKE isag_t.isag101, #原币单价isag105 LIKE isag_t.isag105 #原币税后金额END RECORD
PRIVATE TYPE type_master RECORD #传入单头数组isaf003 LIKE isaf_t.isaf003, #账款客户 isafdocdt LIKE isaf_t.isafdocdt, #单据日期 isaf018 LIKE isaf_t.isaf018, #税率isafud001 LIKE isaf_t.isafud001, #EDB对账单号items DYNAMIC ARRAY OF type_detailEND RECORD
PRIVATE TYPE type_return RECORD #返回数组code LIKE type_t.chr20,sqlcode LIKE type_t.chr20,description LIKE type_t.chr1000,orderNo LIKE type_t.chr50 #EDB销退单单号END RECORD
3.从json中读取request数据:
#取回 datakey 資料內容LET g_ent = cl_aws_json_getValue("datakey","EntId")LET g_company = cl_aws_json_getValue("datakey","CompanyId")LET l_json_obj = cl_aws_json_getParam()#將data 轉入l_master recordCALL l_json_obj.toFGL(l_master)IF l_json_obj IS NULL THENLET g_status.code = "wss-00216" #讀入json 發生問題RETURNEND IF#检查传入datakey是否为空IF cl_null(g_ent) THENLET g_status.code = "wss-00138"LET l_str = cl_replace_err_msg(cl_getmsg('wss-00138',g_dlang),'EntId')LET g_status.description = l_strRETURNEND IFIF cl_null(g_company) THENLET g_status.code = "wss-00138"LET l_str = cl_replace_err_msg(cl_getmsg('wss-00138',g_dlang),'CompanyId')LET g_status.description = l_strRETURNEND IF
4.返回response的json:
#返回值
CALL cl_aws_json_addParam(util.JSONObject.fromFGL(l_return))
在Server端的开发过程中,有几个常用的方法:
- cl_aws_json_getValue() 取得字段值
- cl_aws_json_getParam() 取得整个param段
- l_json_obj.toFGL() 将param段的数据转换读取到预定义变量
- cl_aws_json_addParam(util.JSONObject.fromFGL(l_return)) 将返回变量自动加入response的json中
T100 WebService Client端开发:
宣告JSON组成Request所必须的内容,参考下列的type_service 的RECORD,先将这些必要宣告出来以利后面调用:
type type_service RECODEprod STRING,name STRING,ip STRINGEND RECODE
举例说明:
程序开始先宣告会调用到模组变数,如type_service,接着对这些变数进行初始化,像是预设的参数内容以及预设的服务产品、服务名称、ip:
宣告完变数后:
- 初始化JSON内容,参考cl_rest_json_init();
- 呼叫addParam()以及addDatakey() function进行增加parameter、datakey的动作;
- 透过cl_rest_json_invokeSrv()将request传送出去并且取得执行状态码、回传內容以及错误信息,当状态码为0是代表执行成功;
- 使用cl_rest_json_getParam()取得parameter的內容并将其內容透过toFGL()这个function 來转成RECORD形式以利我们取得所需的资讯,反之可从l_errmsg取得错误讯息。
T100 WebService Client 端开发(中台)
宣告应用服务要传给对方产品的主体资料,与接收回传的主体资料RECORD:
T100 WebService与Client端开发相关推荐
- 【Apache Mina2.0开发之一】搭建Apache Mina框架并实现Server与Client端消息传递
Hibernate系列学习阶段到此结束了,那么紧接着进入Apache Mina的开发学习,很多童鞋在微薄和QQ中疑问Himi为什么突然脱离游戏开发了,嘿嘿,其实可能更多的童鞋已经看出来了,Himi在偏 ...
- 【Apache Mina2.0开发之一】搭建Apache Mina框架并实现Server与Client端的简单消息传递!
Hibernate系列学习阶段到此结束了,那么紧接着进入Apache Mina的开发学习,很多童鞋在微薄和QQ中疑问Himi为什么突然脱离游戏开发了,嘿嘿,其实可能更多的童鞋已经看出来了,Himi在偏 ...
- 【Apache Mina2.0开发之二】自定义实现Server/Client端的编解码工厂(自定义编码与解码器)!...
本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/apache-mina/831.html ☞ ...
- 64位系统上使用*** Client端
最近在工作中遇到一个问题,由于想用大于4G的内存,便安装了64位的操作系统,但无论是Windows 2003或是Windows 7等,凡是64位的便不能安装Cisco *** CLient软件. 公司 ...
- 飞桨端到端开发套件揭秘:低成本开发的四大秘密武器
11 月 5 日,在 Wave Summit+2019 深度学习开发者峰会上,飞桨全新发布和重要升级了最新的 21 项进展,在深度学习开发者社区引起了巨大的反响. 很多未到场的开发者觉得遗憾,希望可以 ...
- java服务端开发 php_PHP使用thrift做服务端开发
php中文网最新课程 每日17点准时技术干货分享 php使用thrift做服务端开发 thrift采用接口描述语言定义和创建服务,用二进制格式传输数据,体积更小.效率更高,对于高并发.数据量大和多语言 ...
- 第13章 Kotlin 集成 SpringBoot 服务端开发(1)
第13章 Kotlin 集成 SpringBoot 服务端开发 本章介绍Kotlin服务端开发的相关内容.首先,我们简单介绍一下Spring Boot服务端开发框架,快速给出一个 Restful He ...
- Java程序员从笨鸟到菜鸟之(一百零九)一步一步学习webservice(三)开发第一个基于XFire的webservice
在日常开发中,常用的webservice引擎主要有Axis,axis2,Xfire以及cxf(Xfire的升级版).现在只有axis2和cxf官方有更新.今天我们先以一个比较老的引擎为例.来讲诉一下w ...
- 飞桨端到端开发套件揭秘:四大秘密武器,让你的开发效率直线提升
11 月 5 日,在 Wave Summit+2019 深度学习开发者峰会上,飞桨全新发布和重要升级了最新的 21 项进展,在深度学习开发者社区引起了巨大的反响. 很多未到场的开发者觉得遗憾,希望可以 ...
最新文章
- computed set 自定义参数_完全理解Vue的渲染watcher、computed和user watcher
- 认识OSSIM中的UUID
- centos7.3上yum install nodejs
- Win10不能使用Genymotion模拟器的解决方案
- bank holiday in uk 2020
- Qt Creator使用补充工具栏
- C#的变迁史03 - C# 3.0篇
- javascript中Array的操作
- Intel IPP安装和安装测试
- 基于TCP协议的Socket通信,实现文件断点续传
- 领导叫我要好好带新人。。。
- USB chirp信号测试
- 北理珠计算机专业在广东排第几,独立学院排名第一!北理珠这项工作获省教育厅肯定...
- win 10 使用技巧总结
- 例2.2 圆柱体的表面积
- Chrome扩展程序应用商店方式一
- Win10 重装系统后,在此计算机上自动解锁此驱动器,提示:数据错误(循环冗余检查)
- mysql 删除恢复_MySQL之delete 忘加where条件误删除恢复
- PS之如何直接提取其他窗口或网页颜色
- 北京中医药大学本科毕业论文答辩PPT模板
热门文章
- unity 发光字体_Unity UGUI 使用艺术字体
- 大数据与网络安全的问题
- AliOS Thing正式开源,走近阿里云的物联网技术
- 脉冲编码调制基本知识概念
- 拼多多app抓包之代码实现
- 哗啦啦王济民:如何解决餐饮供应链供需错配问题
- 2018.12.10 第5题:定义两个类,描述如下: [必做题] 5.1定义一个人类Person: 5.1.1定义一个方法sayHello(),可以向对方发出问候语“hello,my name is
- 网上流传的所谓冒泡排序加强版,真的加强了吗?
- windows 没有远程桌面授权服务器可以提供许可证
- 第二周周工作总结及计划表