鼎捷ERP Tiptop T100/GP Webservice开发详细步骤 完整例子带有源代码 soapui测试 Tiptop Webservice开发源代码4GL完整例子---登陆例子
更多例子请参考 https://pan.baidu.com/s/1Qb1QIUZITfIPPN_WcflscA 提取码: k4tk
1、客制好接口程序,编译自己写的程序(以下有登陆的接口的例子)
2、在aws_ttsr v2_ser vice.4gl里添加服务名称
3、在aws_ttsr v2的link里添加新写的端口程序
4、在aws_ttcfg2(集成服务SERVER端设置作业)里维护
5、关闭aws服务
查找指令:ps -ef|grep 'aws_ttsrv2'
一般会找到3个,grep的那个不管,另2个进程杀掉
指令: kill -9 进程号
6、重启服务
5.1以上版本 重启服务用指令:startws
5.1版本 重启服务用指令:startweb as start
7、打开网页
http://IP地址:端口号/ws/r/aws_ttsrv2?WSDL
8、找到刚才添加的服务名称,就表示成功
# Prog. Version..: '5.30.06-13.03.12(00000)' #
#
# Descriptions...: 掃描作業用戶登錄驗證
# Date & Author..: 2022-12-06 By Lian DATABASE dsGLOBALS "../../../tiptop/config/top.global"GLOBALS "../../../tiptop/aws/4gl/aws_ttsrv2_global.4gl" #TIPTOP Service GatewayDEFINE g_login RECORD username LIKE type_file.chr20,plant LIKE type_file.chr50,realname LIKE type_file.chr50,departcode LIKE type_file.chr20,departname LIKE type_file.chr50,access VARCHAR(4000)END RECORDFUNCTION aws_login_check2()WHENEVER ERROR CONTINUECALL aws_ttsrv_preprocess() #呼叫服務前置處理程序 #FUN-860037IF g_status.code = "0" THENCALL aws_login_check2_process()END IFCALL aws_ttsrv_postprocess() #呼叫服務後置處理程序
END FUNCTIONFUNCTION aws_login_check2_process()DEFINE l_username LIKE type_file.chr20,l_password LIKE type_file.chr50,l_plant LIKE type_file.chr20,l_nn LIKE type_file.num5,l_type LIKE type_file.chr20DEFINE l_node om.DomNodeDEFINE l_sql STRINGDEFINE l_chk_pasword VARCHAR(100)DEFINE l_chk_pasword1 stringINITIALIZE g_login.* TO NULLLET l_username = aws_ttsrv_getParameter("username") #用戶idLET l_password = aws_ttsrv_getParameter("password") #密碼LET l_type = aws_ttsrv_getParameter("type") #取由呼叫端呼叫時給予的 SQL ConditionIF cl_null(l_username) THENLET g_status.code = -1LET g_status.description = '用戶名不能為空!'RETURNEND IFLET l_sql =" SELECT zx10 FROM zx_file WHERE zx01 = '",l_username,"'"PREPARE prep_aaa FROM l_sqlEXECUTE prep_aaa INTO l_chk_paswordIF cl_null(l_chk_pasword) THEN LET g_status.code = -1LET g_status.description = '用戶名不存在,請重新輸入!'RETURNEND IFSELECT zx01,zx08,zx02,zx03 INTO g_login.username,g_login.plant,g_login.realname,g_login.departcode FROM zx_fileWHERE zx01=l_usernameIF SQLCA.SQLCODE THENLET g_status.code = SQLCA.SQLCODELET g_status.sqlcode = SQLCA.SQLCODEEND IFIF NOT cl_null(g_login.username) THEN CALL aws_access2(g_login.username,l_type)END IFIF NOT cl_null(g_login.departcode) THENSELECT gem02 INTO g_login.departname FROM gem_file WHERE gem01=g_login.departcodeEND IFCALL aws_ttsrv_addParameterRecord(base.TypeInfo.create(g_login))END FUNCTIONFUNCTION aws_chk_id_and_password_sec_chkz2(ls_pwd)DEFINE ls_pwd STRINGRETURN aws_chk_id_and_password_hash_dd2("28682266",ls_pwd)END FUNCTIONFUNCTION aws_chk_id_and_password_hash_dd2(p_token,ls_inp) #FUN-C60025DEFINE ls_inp, ls_out STRINGDEFINE ls_demo STRINGDEFINE ls_new1,ls_new2 STRINGDEFINE li_cnt,li_i,li_j,li_move,li_tmp SMALLINTDEFINE lc_gbt07 LIKE type_file.chr1DEFINE p_token STRING #FUN-C60025LET ls_inp = ls_inp.trim() IF p_token <> "28682266" THEN #FUN-C60025 控管進入的token ,避免被外部程式不當使用RETURN ls_inpEND IFSELECT gbt07 INTO lc_gbt07 FROM gbt_file WHERE gbt00="0"IF SQLCA.SQLCODE OR lc_gbt07 IS NULL OR lc_gbt07 <> "Y" THENRETURN ls_inpEND IFLET li_cnt = ls_inp.subString(ls_inp.getLength(),ls_inp.getLength())LET ls_out = ls_inp.subString(1,ls_inp.getLength()-1)IF li_cnt > 0 THENFOR li_j = 1 TO li_cntLET ls_inp = ls_outLET ls_new1="" LET ls_new2=""LET li_i = TRUEFOR li_tmp = ls_inp.getLength() TO 1 STEP -1IF li_i THENLET ls_new2 = ls_inp.subString(li_tmp,li_tmp),ls_new2LET li_i = FALSEELSELET ls_new1 = ls_new1,ls_inp.subString(li_tmp,li_tmp)LET li_i = TRUEEND IFEND FORLET ls_out = ls_new1,ls_new2END FOREND IFLET li_move = ls_out.subString(ls_out.getLength()-1,ls_out.getLength())LET ls_inp = ls_out.subString(1,ls_out.getLength()-2)#SeedLET ls_demo = "7D#wG^>t4H&s3KAz5B!y6C<@x)pLJ(q]1nN_mOl,P8E$v9F[%u0o-MI*r2kQ.jRi:ShT;gUf?VeW+dXc|Yb~Za `='",'"'LET ls_out = ""FOR li_i = 1 TO ls_inp.getLength()LET li_tmp = ls_demo.getIndexOf(ls_inp.subString(li_i,li_i),1) IF li_tmp > 0 THENIF li_tmp < li_move THENLET li_tmp = li_tmp + 91 - li_moveELSELET li_tmp = li_tmp - li_moveEND IF#樣本字串裡存在的LET ls_out = ls_out,ls_demo.subString(li_tmp,li_tmp)ELSE#樣本字串裡不存在的LET ls_out = ls_out,ls_inp.subString(li_i,li_i)END IFEND FORLET ls_out = ls_out.subString(3,ls_out.getLength()-4)RETURN ls_outEND FUNCTIONFUNCTION aws_access2(p_username,p_type)DEFINE p_username LIKE zx_file.zx01DEFINE p_type LIKE type_file.chr20DEFINE l_sql ,ls_sql STRINGDEFINE l_n LIKE type_file.num5DEFINE l_tc_auth RECORD LIKE tc_auth_file.*DEFINE l_access VARCHAR(4000)DEFINE l_t LIKE type_file.num10DEFINE l_tc_authg03 LIKE tc_authg_file.tc_authg03DROP TABLE xCREATE TEMP TABLE x( a VARCHAR(10))DELETE FROM xLET l_n=0LET g_login.access=''SELECT COUNT(*) INTO l_n FROM tc_auth_file WHERE tc_auth01=p_usernameIF l_n=0 THEN LET g_login.access=''ELSE # LET l_t = g_login.access.getLength()
# LET g_login.access= g_login.access.subString(1,l_t-1)
###SELECT to_char(WM_CONCAT(b.a)) INTO g_login.access FROM (SELECT DISTINCT a FROM x) b### SELECT to_char(WM_CONCAT(b.a)) INTO g_login.access FROM (SELECT DISTINCT a FROM x) bLET ls_sql=" SELECT DISTINCT a FROM x " ## PREPARE sina_m3_t2 FROM ls_sql## EXECUTE sina_m3_t2 INTO g_login.access PREPARE access_pre2 FROM ls_sqlDECLARE access_cur2 CURSOR FOR access_pre2FOREACH access_cur2 INTO l_tc_authg03IF STATUS THENEXIT FOREACHEND IFIF cl_null(g_login.access) THENLET g_login.access = l_tc_authg03ELSELET g_login.access =g_login.access,',', l_tc_authg03END IFEND FOREACHEND IFDROP TABLE x
END FUNCTION
<soapenv:Envelopexmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"xmlns:tip="http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay"><soapenv:Header/><soapenv:Body><tip:LoginCheck2Request><tip:request><Request><Access><Authentication password="tiptop" user="user06"/><Connection application="APP" source="" /><Organization name="TIPTOP" /><Locale language="zh_cn" /></Access><RequestContent><Parameter><Record><Field name="username" value="user06" /></Record></Parameter><Document/></RequestContent></Request></tip:request></tip:LoginCheck2Request>
</soapenv:Body>
</soapenv:Envelope>
鼎捷ERP Tiptop T100/GP Webservice开发详细步骤 完整例子带有源代码 soapui测试 Tiptop Webservice开发源代码4GL完整例子---登陆例子相关推荐
- 鼎捷ERP二次开发教程 Tiptop GP开发资料大全 Tipto开发实战经验 鼎捷开发实战例子 Tiptop GP二次开发项目例子 4GL开发Demo 鼎捷二次开发完整例子 鼎捷ERP二次开发入门
本人在ERP实施公司做顾问四五年,参与企业实施ERP十多个项目,非常熟悉企业ERP流程,在实施过程遇到众多问题,提出了不少根据企业具体情况的解决方案. 曾经参与鼎捷Tiptop GP实施十多个项目,具 ...
- 鼎捷ERP二维码整体解决方案 Tiptop GP条码管理系统 鼎捷ERP移动解决方案 鼎捷条码扫描 鼎捷WMS仓库移动扫码 鼎捷安卓PDA扫码方案 Tiptop 出入库盘点出货条码扫码
本人在ERP实施公司做顾问四五年,参与企业实施ERP十多个项目,非常熟悉企业ERP流程,在实施过程遇到众多问题,提出了不少根据企业具体情况的解决方案. 最近定制开发了一套适合企业的条码扫码平台,基于鼎 ...
- 微信小程序开发详细步骤解决方案
什么行业适合使用微信小程序? 01. 什么是微信小程序? 微信内嵌的小程序,不需要下载安装就能使用,具有开发成本低.使用方便等特点,它实现了应用"触手可及",用户通过扫描或搜索就能 ...
- 分享微信小程序开发详细步骤
1.梳理小程序开发功能需求 自己可以用思维导图写出自己想要开发的小程序里面,需要设置哪些功能,这些功能帮助我解决什么问题.然后把想法用文字形式在思维导图中写出来. 如果不知道如果梳理,也可以找专业的产 ...
- 微信小程序开发详细步骤(企业小程序开发流程)
今天珍奶bb给大家简单唠唠微信小程序开发详细步骤(企业小程序开发流程)? 微信小程序制作流程是什么?微信小程序制作模板套用怎么操作?今天珍奶bb给大家简单唠唠微信小程序制作流程是什么? 在唠微信小程序 ...
- 中国35岁以上的程序猿哪去了?,基于android的app开发详细步骤
举几个例子: A,女,前同事,90左右,985硕士,15年毕业,二线互联网公司,干了4年,19年,29岁跑路,高校行政岗事业编,月薪从25K到6K,5:30下班. B.男,读者,85左右,985硕士, ...
- 实战python+django+mysql开发详细步骤及代码学习
开发工具:pycharm 环境:python3.7.4(例子中用的3.6) 下载安装pycharm:http://www.jetbrains.com/pycharm/download/#section ...
- TP5 对接支付宝支付接口开发详细步骤(证书签名方式)
注: 支付宝支付分为支付宝公钥和证书签名方式两种,如果需要使用退款功能要用证书签名方式开发 php接入支付宝证书方式签名 支付宝 PHP SDK 分为老版和新版,老版本的 PHP SDK(v3.4.2 ...
- 餐饮行业管理系统技术开发详细步骤详解
一. 项目介绍 本系统主要应用在餐饮行业,可以适用于中餐.西餐.快餐.火锅.烤肉等,主要功能分前端和后端两部分.前端主要完成就餐客户的餐厅预定及点菜环节,后端主要完成餐厅.餐桌的设置,菜品的设置等 系 ...
最新文章
- 如何找到 SAP Spartacus OCC cms page 发送请求时读取 API endpoint 的代码
- 电商企业怎样用好大数据
- 使用JDBCTemplate实现与Spring结合,方法公用
- 网络编程模型综述 之 UNIX网络I/O模型
- VS2017 控件添加关联变量
- 1月份Github上热门Python开源项目
- 7.8 Cound 练习
- 什么软件可以测试音乐速度,酷狗如何测试电台速度
- 虾皮物流怎么收费?收费标准是什么?
- C#Winform的DataGridView控件使用详解2—DataGridView表格样式设置及表格操作
- 机械臂的力矩前馈控制
- 【生信】初探蛋白质性质和结构分析
- VLC的ACtiveX插件使用方法
- CentOS 7安装LMD杀毒软件
- Speedtest 直装高级版 +支持多平台 —— 强悍网络速度测试工具!
- Shell正则表达式 三剑客之grep
- 说说$strobe,$monitor 和 $display 的差别
- “成语消消乐”隱私政策
- 【考研英语语法】介词 Preposition
- 关键字const是什么含意?