鼎捷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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

weijia3624

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

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

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

打赏作者

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

抵扣说明:

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

余额充值