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端的开发过程中,有几个常用的方法:

  1. cl_aws_json_getValue()       取得字段值
  2. cl_aws_json_getParam()     取得整个param段
  3. l_json_obj.toFGL()        将param段的数据转换读取到预定义变量
  4. 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:

宣告完变数后:

  1. 初始化JSON内容,参考cl_rest_json_init();
  2. 呼叫addParam()以及addDatakey() function进行增加parameter、datakey的动作;
  3. 透过cl_rest_json_invokeSrv()将request传送出去并且取得执行状态码、回传內容以及错误信息,当状态码为0是代表执行成功;
  4. 使用cl_rest_json_getParam()取得parameter的內容并将其內容透过toFGL()这个function 來转成RECORD形式以利我们取得所需的资讯,反之可从l_errmsg取得错误讯息。


T100 WebService Client 端开发(中台)

宣告应用服务要传给对方产品的主体资料,与接收回传的主体资料RECORD:

T100 WebService与Client端开发相关推荐

  1. 【Apache Mina2.0开发之一】搭建Apache Mina框架并实现Server与Client端消息传递

    Hibernate系列学习阶段到此结束了,那么紧接着进入Apache Mina的开发学习,很多童鞋在微薄和QQ中疑问Himi为什么突然脱离游戏开发了,嘿嘿,其实可能更多的童鞋已经看出来了,Himi在偏 ...

  2. 【Apache Mina2.0开发之一】搭建Apache Mina框架并实现Server与Client端的简单消息传递!

    Hibernate系列学习阶段到此结束了,那么紧接着进入Apache Mina的开发学习,很多童鞋在微薄和QQ中疑问Himi为什么突然脱离游戏开发了,嘿嘿,其实可能更多的童鞋已经看出来了,Himi在偏 ...

  3. 【Apache Mina2.0开发之二】自定义实现Server/Client端的编解码工厂(自定义编码与解码器)!...

    本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/apache-mina/831.html ☞ ...

  4. 64位系统上使用*** Client端

    最近在工作中遇到一个问题,由于想用大于4G的内存,便安装了64位的操作系统,但无论是Windows 2003或是Windows 7等,凡是64位的便不能安装Cisco *** CLient软件. 公司 ...

  5. 飞桨端到端开发套件揭秘:低成本开发的四大秘密武器

    11 月 5 日,在 Wave Summit+2019 深度学习开发者峰会上,飞桨全新发布和重要升级了最新的 21 项进展,在深度学习开发者社区引起了巨大的反响. 很多未到场的开发者觉得遗憾,希望可以 ...

  6. java服务端开发 php_PHP使用thrift做服务端开发

    php中文网最新课程 每日17点准时技术干货分享 php使用thrift做服务端开发 thrift采用接口描述语言定义和创建服务,用二进制格式传输数据,体积更小.效率更高,对于高并发.数据量大和多语言 ...

  7. 第13章 Kotlin 集成 SpringBoot 服务端开发(1)

    第13章 Kotlin 集成 SpringBoot 服务端开发 本章介绍Kotlin服务端开发的相关内容.首先,我们简单介绍一下Spring Boot服务端开发框架,快速给出一个 Restful He ...

  8. Java程序员从笨鸟到菜鸟之(一百零九)一步一步学习webservice(三)开发第一个基于XFire的webservice

    在日常开发中,常用的webservice引擎主要有Axis,axis2,Xfire以及cxf(Xfire的升级版).现在只有axis2和cxf官方有更新.今天我们先以一个比较老的引擎为例.来讲诉一下w ...

  9. 飞桨端到端开发套件揭秘:四大秘密武器,让你的开发效率直线提升

    11 月 5 日,在 Wave Summit+2019 深度学习开发者峰会上,飞桨全新发布和重要升级了最新的 21 项进展,在深度学习开发者社区引起了巨大的反响. 很多未到场的开发者觉得遗憾,希望可以 ...

最新文章

  1. computed set 自定义参数_完全理解Vue的渲染watcher、computed和user watcher
  2. 认识OSSIM中的UUID
  3. centos7.3上yum install nodejs
  4. Win10不能使用Genymotion模拟器的解决方案
  5. bank holiday in uk 2020
  6. Qt Creator使用补充工具栏
  7. C#的变迁史03 - C# 3.0篇
  8. javascript中Array的操作
  9. Intel IPP安装和安装测试
  10. 基于TCP协议的Socket通信,实现文件断点续传
  11. 领导叫我要好好带新人。。。
  12. USB chirp信号测试
  13. 北理珠计算机专业在广东排第几,独立学院排名第一!北理珠这项工作获省教育厅肯定...
  14. win 10 使用技巧总结
  15. 例2.2 圆柱体的表面积
  16. Chrome扩展程序应用商店方式一
  17. Win10 重装系统后,在此计算机上自动解锁此驱动器,提示:数据错误(循环冗余检查)
  18. mysql 删除恢复_MySQL之delete 忘加where条件误删除恢复
  19. PS之如何直接提取其他窗口或网页颜色
  20. 北京中医药大学本科毕业论文答辩PPT模板

热门文章

  1. unity 发光字体_Unity UGUI 使用艺术字体
  2. 大数据与网络安全的问题
  3. AliOS Thing正式开源,走近阿里云的物联网技术
  4. 脉冲编码调制基本知识概念
  5. 拼多多app抓包之代码实现
  6. 哗啦啦王济民:如何解决餐饮供应链供需错配问题
  7. 2018.12.10 第5题:定义两个类,描述如下: [必做题] 5.1定义一个人类Person: 5.1.1定义一个方法sayHello(),可以向对方发出问候语“hello,my name is
  8. 网上流传的所谓冒泡排序加强版,真的加强了吗?
  9. windows 没有远程桌面授权服务器可以提供许可证
  10. 第二周周工作总结及计划表