鼎捷ERP Tiptop T100/GP Webservice开发详细步骤 完整例子带有源代码 soapui测试 Tiptop Webservice开发源代码4GL完整例子---登陆例子

 更多例子源码下载 https://pan.baidu.com/s/1Qb1QIUZITfIPPN_WcflscA?pwd=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 ds
 
 
GLOBALS "../../../tiptop/config/top.global"
 
GLOBALS "../../../tiptop/aws/4gl/aws_ttsrv2_global.4gl"   #TIPTOP Service Gateway
 
 

DEFINE 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 RECORD
                   
FUNCTION aws_login_check2()
    
    WHENEVER ERROR CONTINUE
 
    CALL aws_ttsrv_preprocess()    #呼叫服務前置處理程序 #FUN-860037
    
    IF g_status.code = "0" THEN
       CALL aws_login_check2_process()
    END IF
 
    CALL aws_ttsrv_postprocess()   #呼叫服務後置處理程序
END FUNCTION
 
 
FUNCTION 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.chr20
    DEFINE l_node  om.DomNode

    DEFINE l_sql   STRING
    DEFINE l_chk_pasword VARCHAR(100)
    DEFINE l_chk_pasword1 string
    
    INITIALIZE g_login.* TO NULL
    LET l_username = aws_ttsrv_getParameter("username")   #用戶id
    LET l_password = aws_ttsrv_getParameter("password")   #密碼
    LET l_type = aws_ttsrv_getParameter("type")                    #取由呼叫端呼叫時給予的 SQL Condition
  
    IF cl_null(l_username) THEN
         LET g_status.code = -1
         LET g_status.description = '用戶名不能為空!'
         RETURN
    END IF

      LET l_sql =" SELECT zx10 FROM zx_file WHERE zx01 = '",l_username,"'"
       PREPARE prep_aaa FROM l_sql
        EXECUTE prep_aaa INTO l_chk_pasword
        IF cl_null(l_chk_pasword) THEN 
                 LET g_status.code = -1
                 LET g_status.description = '用戶名不存在,請重新輸入!'
                 RETURN
        END IF
        

             SELECT zx01,zx08,zx02,zx03 INTO g_login.username,g_login.plant,g_login.realname,g_login.departcode 
                    FROM zx_file
           WHERE zx01=l_username
           IF SQLCA.SQLCODE THEN
                  LET g_status.code = SQLCA.SQLCODE
                  LET g_status.sqlcode = SQLCA.SQLCODE
         END IF
         IF NOT cl_null(g_login.username) THEN 
                 CALL aws_access2(g_login.username,l_type)
         END IF
         IF NOT cl_null(g_login.departcode) THEN
             SELECT gem02 INTO g_login.departname FROM gem_file WHERE gem01=g_login.departcode
         END IF
      CALL aws_ttsrv_addParameterRecord(base.TypeInfo.create(g_login))
    	    
END FUNCTION

FUNCTION aws_chk_id_and_password_sec_chkz2(ls_pwd)
   DEFINE ls_pwd     STRING

      RETURN aws_chk_id_and_password_hash_dd2("28682266",ls_pwd)

END FUNCTION

FUNCTION aws_chk_id_and_password_hash_dd2(p_token,ls_inp) #FUN-C60025
 
   DEFINE ls_inp, ls_out  STRING
   DEFINE ls_demo         STRING
   DEFINE ls_new1,ls_new2 STRING
   DEFINE li_cnt,li_i,li_j,li_move,li_tmp  SMALLINT
   DEFINE lc_gbt07        LIKE type_file.chr1
   DEFINE p_token         STRING    #FUN-C60025

   LET ls_inp = ls_inp.trim() 

   IF p_token <> "28682266" THEN    #FUN-C60025 控管進入的token ,避免被外部程式不當使用
      RETURN ls_inp
   END IF
 
   SELECT gbt07 INTO lc_gbt07 FROM gbt_file WHERE gbt00="0"
   IF SQLCA.SQLCODE OR lc_gbt07 IS NULL OR lc_gbt07 <> "Y" THEN
      RETURN ls_inp
   END IF
 
   LET 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 THEN
      FOR li_j = 1 TO li_cnt
         LET ls_inp = ls_out
         LET ls_new1="" LET ls_new2=""
         LET li_i = TRUE
         FOR li_tmp = ls_inp.getLength() TO 1 STEP -1
            IF li_i THEN
               LET ls_new2 = ls_inp.subString(li_tmp,li_tmp),ls_new2
               LET li_i = FALSE
            ELSE
               LET ls_new1 = ls_new1,ls_inp.subString(li_tmp,li_tmp)
               LET li_i = TRUE
            END IF
         END FOR
         LET ls_out = ls_new1,ls_new2
      END FOR
 
   END IF
 
   LET li_move = ls_out.subString(ls_out.getLength()-1,ls_out.getLength())
   LET ls_inp = ls_out.subString(1,ls_out.getLength()-2)
 
   #Seed
   LET 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 THEN
         IF li_tmp < li_move THEN
            LET li_tmp = li_tmp + 91 - li_move
         ELSE
            LET li_tmp = li_tmp - li_move
         END 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 IF
   END FOR
 
   LET ls_out = ls_out.subString(3,ls_out.getLength()-4)
   RETURN ls_out
 
END FUNCTION
	
FUNCTION aws_access2(p_username,p_type)
    DEFINE  p_username  LIKE zx_file.zx01
     DEFINE  p_type  LIKE type_file.chr20
    DEFINE  l_sql   ,ls_sql    STRING
    DEFINE  l_n         LIKE type_file.num5
    DEFINE  l_tc_auth   RECORD LIKE tc_auth_file.*
    DEFINE  l_access    VARCHAR(4000)
    DEFINE  l_t         LIKE type_file.num10
 DEFINE l_tc_authg03   LIKE tc_authg_file.tc_authg03
      
    DROP TABLE x
                                                                            
    CREATE TEMP TABLE x(                                                                  
                 a VARCHAR(10))
    DELETE FROM x
    LET l_n=0
    LET g_login.access=''
    SELECT COUNT(*) INTO l_n FROM  tc_auth_file WHERE tc_auth01=p_username
    IF 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)  b
 
   LET 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_sql
       DECLARE access_cur2 CURSOR FOR access_pre2
       FOREACH access_cur2 INTO  l_tc_authg03
          IF STATUS THEN
            EXIT FOREACH
          END IF
         IF cl_null(g_login.access) THEN
            LET g_login.access  = l_tc_authg03
         ELSE
              LET g_login.access  =g_login.access,',', l_tc_authg03
         END IF
      END FOREACH
      
    END IF
    DROP TABLE x
END FUNCTION

<soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:tip="http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay">
    <soapenv:Header/>
    <soapenv:Body>
        <tip:LoginCheck2Request>
            <tip:request>
                &lt;Request>
                    &lt;Access>
                        &lt;Authentication password="tiptop" user="user06"/>
                        &lt;Connection application="APP" source="" />
                        &lt;Organization name="TIPTOP" />
                        &lt;Locale language="zh_cn" />
                    &lt;/Access>
                    &lt;RequestContent>
                        &lt;Parameter>
                            &lt;Record>
                                &lt;Field name="username" value="user06" />
                            &lt;/Record>
                        &lt;/Parameter>
                    &lt;Document/>
                    &lt;/RequestContent>
                &lt;/Request>
            </tip:request>
    </tip:LoginCheck2Request>
</soapenv:Body>
</soapenv:Envelope>

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 鼎捷Tiptop ERP是一款由鼎捷软件开发的企业资源计划(ERP)系统。它为企业提供了一站式解决方案,可以帮助企业管理各种业务流程、提高管理效率、优化资源配置、降低运营成本、提高竞争力。 鼎捷Tiptop ERP支持模块化构建,包括采购管理、销售管理、财务管理、人力资源管理、生产管理、库存管理等主要业务模块,以及强大的业务分析、报表功能,提供了全面的企业管理解决方案。此外,为了满足不同企业的需求,鼎捷Tiptop ERP提供了可定制化的服务,使得企业可以根据自身业务特点进行个性化配置和功能扩展。 鼎捷Tiptop ERP在实施过程中重视用户参与,提供全面的培训和技术支持,确保企业能够高效地使用系统,提升企业管理水平和效率。目前,该系统已被广泛应用于制造业、零售业、医疗等多个行业,为企业提供了可靠的信息化支持。 总之,鼎捷Tiptop ERP是一款全面的企业管理解决方案,适用于各类企业管理需求,具有可定制化、易操作、易扩展等特点,是企业信息化建设的重要选择。 ### 回答2: 鼎捷Tiptop ERP是一款完整的企业资源规划软件解决方案。该软件可以帮助企业实现全面的IT赋能和数字化转型,提升企业管理效率和竞争力。该软件拥有多个模块,可以满足各种企业不同的需求,包括财务管理、供应链管理、生产制造、客户关系管理、人力资源管理等。此外,鼎捷Tiptop ERP还拥有丰富的BI(Business Intelligence)报表和分析功能,能够帮助企业实时掌握业务运营情况和趋势,帮助企业制定更加科学的决策。 鼎捷Tiptop ERP不仅可以在企业内部部署,还可以提供云端服务,帮助企业进行SAAS(Software as a Service)模式部署,减少IT总体成本和风险。此外,该软件也可以与第三方系统进行接口联动和数据交换,实现IT资源共享和互通。 总的来说,鼎捷Tiptop ERP是一款功能全面、操作简便、灵活可定制、性价比高的企业管理软件解决方案,适合各种规模和行业的企业使用,旨在助力企业实现数字化转型和可持续发展。 ### 回答3: 鼎捷Tiptop ERP是一款全面的企业资源规划软件,在企业管理中发挥着重要的作用。该软件的设计旨在将所有企业数据集成在一个平台上,包括订单管理、库存管理、采购管理、销售管理、财务会计等等。借助鼎捷Tiptop ERP,企业可以全面展示其整个生产和供应链及各部分的运作,帮助企业管理者做出更为精准的决策,实现更高效的生产和运营管理。 此外,鼎捷Tiptop ERP还具备高度的可扩展性和灵活性,可以灵活地根据不同的企业需求进行定制和升级,以适应企业的发展和变化。 鼎捷Tiptop ERP的主要特点包括强大的数据及分析功能,基于角色的安全体系,支持多语言、多货币和多地区的功能,以及高度的流程自动化和实时监控。这些功能和特点可以帮助企业高效地管理其操作和数据,提高生产效率、降低成本、增强业务合规性、提升客户满意度和市场竞争力。 总之,作为一款稳定、强大且多功能齐备的企业管理软件,鼎捷Tiptop ERP可以帮助企业在竞争激烈的市场环境下更好地实现企业管理的升级和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weijia3624

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值