{<section id="cs_t1client.description" >}
#應用 a00 樣板自動產生(Version:)
#+ Version..: T100-ERP-1.01.(SD版次:,PR版次:) Build-
#+
#+ Filename...: cs_t1client
#+ Description: T1雲
#+ Creator....: tiptop(-- ::)
#+ Modifier...: () -SD/PR- {</section>} {<section id="cs_t1client.global" >}
#應用 p00 樣板自動產生(Version:)
#add-point:註解編寫項目 #end add-point IMPORT os
#add-point:增加匯入項目
IMPORT util
IMPORT xml
IMPORT com
#end add-point SCHEMA ds GLOBALS "../../cfg/top_global.inc"
#add-point:增加匯入變數檔 #end add-point {</section>} {<section id="cs_t1client.free_style_variable" >}
#add-point:free_style模組變數(Module Variable) #end add-point {</section>} {<section id="cs_t1client.global_variable" >}
#add-point:自定義模組變數(Module Variable) #end add-point {</section>} {<section id="cs_t1client.other_dialog" >} {</section>} {<section id="cs_t1client.other_function" readonly="Y" >} ################################################################################
# Descriptions...: 通过账号密码获取令牌
# Memo...........:
# Usage..........: CALL cs_t1client_get_token()
# RETURNING r_success,r_token
# Input parameter:
# Return code....: r_success 成功否
# : r_token 回传的令牌
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_get_token()
##此函数给作业czzi001调用,其他别调用,避免造成token与数据表的不一致
DEFINE lb_result BOOLEAN
DEFINE ls_resp STRING # 應用服務回傳XML
DEFINE ls_url STRING
DEFINE r_token STRING LET ls_url = "http://***.***.*.*.***:8080",
"/api/getToken",
"?user=*********&password=**********&appid=***********&clientType=pc"
DISPLAY "URL=\n" , ls_url , "\n" CALL cs_t1client_http_posturl(ls_url) RETURNING lb_result,ls_resp
IF lb_result=TRUE THEN
#解析JSON
CALL cs_t1client_parse_json(ls_resp) RETURNING r_token
DISPLAY ls_resp #显示一下回传的JSON
DISPLAY r_token
RETURN r_token
ELSE
# 顯示錯誤訊息
DISPLAY ls_resp
RETURN
END IF RETURN END FUNCTION ################################################################################
# Descriptions...: 提交url
# Memo...........:
# Usage..........: CALL cs_t1client_http_posturl(p_url)
# RETURNING r_body
# Input parameter: p_url url内容
# Return code....: r_body body内容
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_http_posturl(p_url)
DEFINE l_http_req com.HTTPRequest
DEFINE l_http_res com.HTTPResponse
DEFINE p_url STRING
DEFINE l_succ BOOLEAN
DEFINE l_str STRING
DEFINE l_body STRING # initial parameter
LET l_succ = FALSE
LET l_str = "" TRY
# 設置 HttpRequest START
LET l_http_req = com.HttpRequest.Create(p_url) # 建立請求 requesst 物件
CALL l_http_req.setTimeOut() # 設定 request timeout
CALL l_http_req.setMethod("GET") # 設定Http method
CALL l_http_req.setCharset("UTF-8") # 設定編碼
CALL l_http_req.doRequest() # send request LET l_http_res = l_http_req.getResponse() #取得回傳 response 物件
IF l_http_res.getStatusCode() != THEN
# server 回傳報錯
LET l_succ = FALSE
LET l_str = "HTTP Error ("||l_http_res.getStatusCode()||") ", l_http_res.getStatusDescription()
ELSE
# 取得 server 回傳 body content string
LET l_succ = TRUE
LET l_str = l_http_res.getTextResponse() # 取得 response body字串
#DISPLAY l_str
END IF
CATCH
#get error from genero
LET l_succ = FALSE
LET l_str = "ERROR :",STATUS||" ("||SQLCA.SQLERRM||")"
END TRY # 回傳結果
RETURN l_succ,l_str END FUNCTION ################################################################################
# Descriptions...: 解析回传的json
# Memo...........:
# Usage..........: CALL cs_t1client_parse_json(p_str)
# RETURNING
# Input parameter: p_str json 字符串
# :
# Return code....:
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_parse_json(p_str)
DEFINE p_str STRING
DEFINE l_json util.JSONObject
DEFINE r_token STRING
DEFINE i INTEGER
DISPLAY p_str
LET l_json = util.JSONObject.parse(p_str) FOR i= TO l_json.getLength()
DISPLAY i, ": ", l_json.name(i), "=", l_json.get(l_json.name(i))
IF l_json.name(i) = "token" THEN
LET r_token = l_json.get(l_json.name(i))
END IF
END FOR
RETURN r_token
END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL cs_t1client_get_create(p_type,p_token)
# RETURNING 回传参数
# Input parameter: p_type 类型
# : p_token 令牌
# Return code....: 数据包(STRING类的JSON)
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_get_create(p_type,p_token)
DEFINE p_type LIKE type_t.chr1000
DEFINE p_token STRING
DEFINE lb_result BOOLEAN
DEFINE ls_resp STRING # 應用服務回傳XML
DEFINE ls_url STRING
DEFINE r_token STRING
DEFINE l_json util.JSONObject LET ls_url = "http://***.***.*.*.***:8080",
"/apiData/getCreate",
"?token=",p_token,"&itemType=",p_type,""
DISPLAY "URL=\n" , ls_url , "\n" CALL cs_t1client_http_get(ls_url) RETURNING lb_result,ls_resp
IF lb_result=TRUE THEN
#解析JSON
LET l_json = util.JSONObject.parse(ls_resp)
CALL cs_t1client_http_prasejsontest(l_json)
#CALL cs_t1client_parse_json(ls_resp) RETURNING r_token
DISPLAY ls_resp #显示一下回传的JSON
DISPLAY ls_resp
RETURN ls_resp
ELSE
# 顯示錯誤訊息
DISPLAY ls_resp
RETURN
END IF RETURN END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL s_aooi150_ins (传入参数)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_modify_data(p_str,p_itemcode,p_itemname,p_createtype,p_remark)
DEFINE p_str STRING
DEFINE l_json util.JSONObject
DEFINE r_str STRING
DEFINE rec RECORD
value STRING,
text STRING,
css util.JSONObject
END RECORD
DEFINE p_itemcode LIKE type_t.chr1000
DEFINE p_itemname LIKE type_t.chr1000
DEFINE p_createtype LIKE type_t.chr1000
DEFINE p_remark LIKE type_t.chr1000
DEFINE i,j INTEGER
DISPLAY p_str
LET l_json = util.JSONObject.parse(p_str)
FOR i= TO l_json.getLength()
#DISPLAY i, ": ", l_json.name(i), "=", l_json.get(l_json.name(i))
IF l_json.name(i) = "ItemCode" THEN
LET rec.value = p_itemcode
LET rec.text = p_itemcode
LET rec.css = util.JSONObject.parse("{}")
CALL l_json.put(l_json.name(i),rec)
END IF
IF l_json.name(i) = "ItemName" THEN
LET rec.value = p_itemname
LET rec.text = p_itemname
LET rec.css = util.JSONObject.parse("{}")
CALL l_json.put(l_json.name(i),rec)
END IF
IF l_json.name(i) = "CreateType" THEN
LET rec.value = p_createtype
LET rec.text = p_createtype
LET rec.css = util.JSONObject.parse("{}")
CALL l_json.put(l_json.name(i),rec)
END IF
IF l_json.name(i) = "Remark" THEN
LET rec.value = p_remark
LET rec.text = p_remark
LET rec.css = util.JSONObject.parse("{}")
CALL l_json.put(l_json.name(i),rec)
END IF
END FOR LET r_str = l_json.toString()
RETURN r_str
END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL s_aooi150_ins (传入参数)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_i193_create(p_token,p_itemtype,p_str)
DEFINE p_itemtype LIKE type_t.chr1000
DEFINE p_token STRING
DEFINE p_str STRING
DEFINE lb_result BOOLEAN
DEFINE ls_resp STRING # 應用服務回傳XML
DEFINE ls_url STRING
DEFINE r_token STRING LET ls_url = "http://***.***.*.*.***:8080",
"/apiData/create"
# "?token=",p_token,"&itemType=",p_itemtype,"" DISPLAY "URL=\n" , ls_url , "\n"
LET p_str = "token=",p_token,"&itemType=",p_itemtype,"&dataString=",p_str,""
#LET p_str = " "
CALL cs_t1client_http_post(ls_url,p_str) RETURNING lb_result,ls_resp IF lb_result=TRUE THEN
#解析JSON
#CALL cs_t1client_parse_json(ls_resp) RETURNING r_token DISPLAY ls_resp #显示一下回传的JSON
DISPLAY ls_resp
#RETURN ls_resp
ELSE
# 顯示錯誤訊息
DISPLAY ls_resp
#RETURN
END IF #RETURN
END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL s_aooi150_ins (传入参数)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_http_get(p_url)
DEFINE l_http_req com.HTTPRequest
DEFINE l_http_res com.HTTPResponse
DEFINE p_url STRING
DEFINE l_succ BOOLEAN
DEFINE l_str STRING
DEFINE l_body STRING
DEFINE p_method LIKE type_t.chr100 # initial parameter
LET l_succ = FALSE
LET l_str = "" TRY
# 設置 HttpRequest START
LET l_http_req = com.HttpRequest.Create(p_url) # 建立請求 requesst 物件
CALL l_http_req.setTimeOut() # 設定 request timeout
CALL l_http_req.setMethod("GET") # 設定Http method
CALL l_http_req.setCharset("UTF-8") # 設定編碼
DISPLAY l_http_req
CALL l_http_req.doRequest() # 設定Http method LET l_http_res = l_http_req.getResponse() #取得回傳 response 物件
IF l_http_res.getStatusCode() != THEN
# server 回傳報錯
LET l_succ = FALSE
LET l_str = "HTTP Error ("||l_http_res.getStatusCode()||") ", l_http_res.getStatusDescription()
ELSE
# 取得 server 回傳 body content string
LET l_succ = TRUE
LET l_str = l_http_res.getTextResponse() # 取得 response body字串
#DISPLAY l_str
END IF
CATCH
#get error from genero
LET l_succ = FALSE
LET l_str = "ERROR :",STATUS||" ("||SQLCA.SQLERRM||")"
END TRY # 回傳結果
RETURN l_succ,l_str
END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL s_aooi150_ins (传入参数)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_http_post(p_url,p_str)
DEFINE l_http_req com.HTTPRequest
DEFINE l_http_res com.HTTPResponse
DEFINE p_url STRING
DEFINE l_succ BOOLEAN
DEFINE l_str STRING
DEFINE l_body STRING
DEFINE p_str STRING # initial parameter
LET l_succ = FALSE
LET l_str = "" TRY
# 設置 HttpRequest START
LET l_http_req = com.HttpRequest.Create(p_url) # 建立請求 requesst 物件
CALL l_http_req.setTimeOut() # 設定 request timeout
CALL l_http_req.setMethod("POST")
CALL l_http_req.setCharset("UTF-8") # 設定編碼
DISPLAY l_http_req
CALL l_http_req.doFormEncodedRequest(p_str,true) # send request LET l_http_res = l_http_req.getResponse() #取得回傳 response 物件
IF l_http_res.getStatusCode() != THEN
# server 回傳報錯
LET l_succ = FALSE
LET l_str = "HTTP Error ("||l_http_res.getStatusCode()||") ", l_http_res.getStatusDescription()
ELSE
# 取得 server 回傳 body content string
LET l_succ = TRUE
LET l_str = l_http_res.getTextResponse() # 取得 response body字串
#DISPLAY l_str
### add ljr s
IF l_str NOT LIKE '%"success":true%' THEN
LET l_succ = FALSE
DISPLAY l_str
END IF
### add ljr e
END IF
CATCH
#get error from genero
LET l_succ = FALSE
LET l_str = "ERROR :",STATUS||" ("||SQLCA.SQLERRM||")"
END TRY ### LJR ADD 记录错误信息
#IF l_succ = FALSE THEN
CALL cs_t1client_log_insert(p_url,p_str,l_succ,l_str)
#END IF # 回傳結果
RETURN l_succ,l_str
END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL s_aooi150_ins (传入参数)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_parse_output_json(p_str)
DEFINE p_str STRING
DEFINE l_json util.JSONObject
DEFINE r_token STRING
DEFINE i INTEGER
DEFINE r_success LIKE type_t.chr100
DEFINE r_error LIKE type_t.chr100
DEFINE r_errcode LIKE type_t.chr1000 DISPLAY p_str
LET l_json = util.JSONObject.parse(p_str) FOR i= TO l_json.getLength()
DISPLAY i, ": ", l_json.name(i), "=", l_json.get(l_json.name(i))
IF l_json.name(i) = "success" THEN
LET r_success = l_json.get(l_json.name(i))
END IF
IF l_json.name(i) = "error" THEN
LET r_error = l_json.get(l_json.name(i))
END IF
IF l_json.name(i) = "errcode" THEN
LET r_errcode = l_json.get(l_json.name(i))
END IF
END FOR
RETURN r_success,r_error,r_errcode
END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL s_aooi150_ins (传入参数)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_http_prasejsontest(p_str)
DEFINE p_str util.JSONObject
DEFINE l_json util.JSONObject
DEFINE r_token STRING
DEFINE i,j INTEGER
DEFINE r_success LIKE type_t.chr100
DEFINE r_error LIKE type_t.chr100
DEFINE r_errcode LIKE type_t.chr1000
DEFINE l_jsona util.JSONObject #DISPLAY p_str
#LET l_json = util.JSONObject.parse(p_str)
LET l_json = p_str
FOR i= TO l_json.getLength() IF l_json.getType(l_json.name(i)) = "json" THEN
LET l_jsona = l_json.get(l_json.name(i))
CALL cs_t1client_http_prasejsontest(l_jsona)
ELSE
DISPLAY i, ": ", l_json.name(i), "=", l_json.get(l_json.name(i))
END IF END FOR END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL s_aooi150_ins (传入参数)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_getId_byItemCode(p_token,p_itemType,p_itemCode)
###根据ItemCode获取内码Id,针对lookup和dropdown类型字段
DEFINE p_itemType STRING
DEFINE p_itemCode STRING
DEFINE p_token STRING
###
DEFINE l_url STRING
DEFINE l_wc STRING
DEFINE l_str STRING
###
DEFINE l_result BOOLEAN
DEFINE l_resp STRING # 應用服務回傳XML
DEFINE l_json util.JSONObject
DEFINE l_data util.JSONArray
DEFINE l_json2 util.JSONObject
DEFINE l_json3 util.JSONObject
DEFINE i,j INTEGER
DEFINE r_id STRING
INITIALIZE r_id TO NULL
###
LET l_url = "http://***.***.*.*.***:8080","/apiData/query"
###
LET l_wc = "{\"logic\":\"and\",condition :[{\"property\":\"ItemCode\",\"operators\":\"doubleEqual\",\"valueType\":\"string\",\"value\":\"",p_itemCode,"\" }]}"
LET l_str = "token=",p_token,"&itemType=",p_itemType,"&filterString=",l_wc
###
CALL cs_t1client_http_post(l_url,l_str) RETURNING l_result,l_resp
###
IF l_result=TRUE THEN
#解析JSON
DISPLAY l_resp
LET l_json = util.JSONObject.parse(l_resp)
FOR i= TO l_json.getLength() #遍历1
IF l_json.name(i) = "data" THEN
LET l_data = l_json.get(l_json.name(i)) #获取到data的jsonArray
IF NOT l_data.getLength() > THEN
EXIT FOR
END IF
LET l_json2 = l_data.get() #用JsonObject接收JsonArray.get
FOR j= TO l_json2.getLength() #遍历2
IF l_json2.name(j) = "Id" THEN
LET l_json3 = l_json2.get(l_json2.name(j)) #jsonArray是[]的,json是{}的,注意用哪个来接收
LET r_id = l_json3.get("value")
EXIT FOR
END IF
END FOR
END IF
END FOR
RETURN r_id
ELSE
# 顯示錯誤訊息
DISPLAY l_resp
RETURN NULL
END IF END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL s_aooi150_ins (传入参数)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_create(p_token,p_itemtype,p_str)
DEFINE p_itemtype LIKE type_t.chr1000
DEFINE p_token STRING
DEFINE p_str STRING
DEFINE lb_result BOOLEAN
DEFINE ls_resp STRING # 應用服務回傳XML
DEFINE ls_url STRING
###
LET ls_url = "http://***.***.*.*.***:8080",
"/apiData/create"
###
LET p_str = "token=",p_token,"&itemType=",p_itemtype,"&dataString=",p_str,""
###
CALL cs_t1client_http_post(ls_url,p_str) RETURNING lb_result,ls_resp
###
IF lb_result=TRUE THEN
DISPLAY ls_resp #显示一下回传的JSON
RETURN TRUE
ELSE
DISPLAY ls_resp
RETURN FALSE
END IF END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL s_aooi150_ins (传入参数)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_getId_byBillNo(p_token,p_itemType,p_BillNo)
###根据 T1的订单单号BillNo 获取订单内码Id
DEFINE p_itemType STRING
DEFINE p_BillNo STRING
DEFINE p_token STRING
###
DEFINE l_url STRING
DEFINE l_wc STRING
DEFINE l_str STRING
###
DEFINE l_result BOOLEAN
DEFINE l_resp STRING # 應用服務回傳XML
DEFINE l_json util.JSONObject
DEFINE l_data util.JSONArray
DEFINE l_json2 util.JSONObject
DEFINE l_json3 util.JSONObject
DEFINE i,j INTEGER
DEFINE r_id STRING
INITIALIZE r_id TO NULL
###
LET l_url = "http://***.***.*.*.***:8080","/apiData/query"
###
LET l_wc = "{\"logic\":\"and\",condition :[{\"property\":\"BillNo\",\"operators\":\"doubleEqual\",\"valueType\":\"string\",\"value\":\"",p_BillNo,"\" }]}"
LET l_str = "token=",p_token,"&itemType=",p_itemType,"&filterString=",l_wc
###
CALL cs_t1client_http_post(l_url,l_str) RETURNING l_result,l_resp
###
IF l_result=TRUE THEN
#解析JSON
DISPLAY l_resp
LET l_json = util.JSONObject.parse(l_resp)
FOR i= TO l_json.getLength() #遍历1
IF l_json.name(i) = "data" THEN
LET l_data = l_json.get(l_json.name(i)) #获取到data的jsonArray
IF NOT l_data.getLength() > THEN
EXIT FOR
END IF
LET l_json2 = l_data.get() #用JsonObject接收JsonArray.get
FOR j= TO l_json2.getLength() #遍历2
IF l_json2.name(j) = "Id" THEN
LET l_json3 = l_json2.get(l_json2.name(j)) #jsonArray是[]的,json是{}的,注意用哪个来接收
LET r_id = l_json3.get("value")
EXIT FOR
END IF
END FOR
END IF
END FOR
RETURN r_id
ELSE
# 顯示錯誤訊息
DISPLAY l_resp
RETURN NULL
END IF END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL s_aooi150_ins (传入参数)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_delete(p_token,p_itemtype,p_str)
DEFINE p_itemtype LIKE type_t.chr1000
DEFINE p_token STRING
DEFINE p_str STRING
DEFINE lb_result BOOLEAN
DEFINE ls_resp STRING # 應用服務回傳XML
DEFINE ls_url STRING
###
LET ls_url = "http://***.***.*.*.***:8080",
"/apiData/delete"
###
LET p_str = "token=",p_token,"&itemType=",p_itemtype,"&idString=",p_str,""
###
CALL cs_t1client_http_post(ls_url,p_str) RETURNING lb_result,ls_resp
###
IF lb_result=TRUE THEN
DISPLAY ls_resp #显示一下回传的JSON
RETURN TRUE
ELSE
DISPLAY ls_resp
RETURN FALSE
END IF END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL s_aooi150_ins (传入参数)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_getWhat_bywhat(p_token,p_itemType,p_itemW,p_itemStr,p_get)
###
DEFINE p_token STRING #令牌
DEFINE p_itemType STRING #T1表单类型
DEFINE p_itemW STRING #where 条件
DEFINE p_itemStr STRING #where 条件 值
DEFINE p_get STRING #取T1的值
##
DEFINE l_url STRING
DEFINE l_wc STRING
DEFINE l_str STRING
###
DEFINE l_result BOOLEAN
DEFINE l_resp STRING # 應用服務回傳XML
DEFINE l_json util.JSONObject
DEFINE l_data util.JSONArray
DEFINE l_json2 util.JSONObject
DEFINE l_json3 util.JSONObject
DEFINE i,j INTEGER
DEFINE r_id STRING
INITIALIZE r_id TO NULL
###
LET l_url = "http://***.***.*.*.***:8080","/apiData/query"
###
LET l_wc = "{\"logic\":\"and\",condition :[{\"property\":\"",p_itemW,"\",\"operators\":\"doubleEqual\",\"valueType\":\"string\",\"value\":\"",p_itemStr,"\" }]}"
LET l_str = "token=",p_token,"&itemType=",p_itemType,"&filterString=",l_wc
###
CALL cs_t1client_http_post(l_url,l_str) RETURNING l_result,l_resp
###
IF l_result=TRUE THEN
#解析JSON
DISPLAY l_resp
LET l_json = util.JSONObject.parse(l_resp)
FOR i= TO l_json.getLength() #遍历1
IF l_json.name(i) = "data" THEN
LET l_data = l_json.get(l_json.name(i)) #获取到data的jsonArray
IF NOT l_data.getLength() > THEN
EXIT FOR
END IF
LET l_json2 = l_data.get() #用JsonObject接收JsonArray.get
FOR j= TO l_json2.getLength() #遍历2
IF l_json2.name(j) = p_get THEN
LET l_json3 = l_json2.get(l_json2.name(j)) #jsonArray是[]的,json是{}的,注意用哪个来接收
LET r_id = l_json3.get("value")
EXIT FOR
END IF
END FOR
END IF
END FOR
RETURN r_id
ELSE
# 顯示錯誤訊息
DISPLAY l_resp
RETURN NULL
END IF END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL s_aooi150_ins (传入参数)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_query(p_token,p_itemType,p_filterString)
DEFINE p_token STRING #令牌
DEFINE p_itemType STRING #单据类型
DEFINE p_filterString STRING #过滤json数据表
DEFINE l_url STRING
DEFINE l_str STRING
DEFINE l_result BOOLEAN
DEFINE l_resp STRING # 應用服務回傳XML
DEFINE l_json util.JSONObject
DEFINE l_data util.JSONArray
DEFINE l_json2 util.JSONObject
DEFINE i INTEGER
DEFINE r_json STRING
INITIALIZE r_json TO NULL
###
LET l_url = "http://***.***.*.*.***:8080","/apiData/query" LET l_str = "token=",p_token,"&itemType=",p_itemType,"&filterString=",p_filterString
###
CALL cs_t1client_http_post(l_url,l_str) RETURNING l_result,l_resp ###
IF l_result=TRUE THEN
#解析JSON
DISPLAY l_resp
LET l_json = util.JSONObject.parse(l_resp)
FOR i= TO l_json.getLength() #遍历1
IF l_json.name(i) = "data" THEN
LET l_data = l_json.get(l_json.name(i)) #获取到data的jsonArray
IF NOT l_data.getLength() > THEN
EXIT FOR
END IF
LET l_json2 = l_data.get() #用JsonObject接收JsonArray.get
LET r_json = l_json2.tostring()
EXIT FOR
END IF
END FOR
RETURN r_json
ELSE
# 顯示錯誤訊息
DISPLAY l_resp
RETURN NULL
END IF END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL s_aooi150_ins (传入参数)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_update(p_token,p_itemType,p_id,p_dataString)
DEFINE p_token STRING #令牌
DEFINE p_itemType STRING #单据类型
DEFINE p_id STRING #内码ID
DEFINE p_dataString STRING #表单JSON数据包 DEFINE l_url STRING
DEFINE l_str STRING
DEFINE l_result BOOLEAN
DEFINE l_resp STRING # 應用服務回傳XML
###
LET l_url = "http://***.***.*.*.***:8080","/apiData/update" LET l_str = "token=",p_token,"&itemType=",p_itemType,"&id=",p_id,"&dataString=",p_dataString
###
CALL cs_t1client_http_post(l_url,l_str) RETURNING l_result,l_resp
###
IF l_result=TRUE THEN
DISPLAY l_resp
RETURN TRUE
ELSE
DISPLAY l_resp
RETURN FALSE
END IF END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL s_aooi150_ins (传入参数)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_get_entryCreate(p_token,p_itemType,p_entryName)
DEFINE p_itemType STRING
DEFINE p_token STRING
DEFINE p_entryName STRING DEFINE lb_result BOOLEAN
DEFINE ls_resp STRING # 應用服務回傳XML
DEFINE ls_url STRING
DEFINE r_token STRING
DEFINE l_json util.JSONObject LET ls_url = "http://***.***.*.*.***:8080",
"/apiData/getEntryCreate",
"?token=",p_token,"&itemType=",p_itemType,"&entryName=",p_entryName,""
DISPLAY "URL=\n" , ls_url , "\n" CALL cs_t1client_http_get(ls_url) RETURNING lb_result,ls_resp
IF lb_result=TRUE THEN
#解析JSON
LET l_json = util.JSONObject.parse(ls_resp)
CALL cs_t1client_http_prasejsontest(l_json)
#CALL cs_t1client_parse_json(ls_resp) RETURNING r_token
DISPLAY ls_resp #显示一下回传的JSON
DISPLAY ls_resp
RETURN ls_resp
ELSE
# 顯示錯誤訊息
DISPLAY ls_resp
RETURN
END IF RETURN END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL s_aooi150_ins (传入参数)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_getId_fromStr(p_str)
###获取STRING里的内码Id
DEFINE p_str STRING
###
DEFINE l_json util.JSONObject
DEFINE l_json2 util.JSONObject
DEFINE i INTEGER
DEFINE r_id STRING
INITIALIZE r_id TO NULL
IF NOT cl_null(p_str) THEN
#解析JSON
LET l_json = util.JSONObject.parse(p_str)
FOR i= TO l_json.getLength() #遍历1
IF l_json.name(i) = "Id" THEN
LET l_json2 = l_json.get(l_json.name(i))
LET r_id = l_json2.get("value")
EXIT FOR
END IF
END FOR
RETURN r_id
ELSE
RETURN NULL
END IF END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL s_aooi150_ins (传入参数)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_getWhat_fromStr(p_str,p_w)
###获取STRING里的内码Id
DEFINE p_str STRING
DEFINE p_w STRING
###
DEFINE l_json util.JSONObject
DEFINE l_json2 util.JSONObject
DEFINE i INTEGER
DEFINE r_id STRING
INITIALIZE r_id TO NULL
IF NOT cl_null(p_str) THEN
#解析JSON
LET l_json = util.JSONObject.parse(p_str)
FOR i= TO l_json.getLength() #遍历1
IF l_json.name(i) = p_w THEN
LET l_json2 = l_json.get(l_json.name(i))
LET r_id = l_json2.get("value")
EXIT FOR
END IF
END FOR
RETURN r_id
ELSE
RETURN NULL
END IF
END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL s_aooi150_ins (传入参数)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_getId_fromDropDown(p_token,p_typeId,p_name)
###从T1 DropDown类型中,根据NAME获取内码ID
DEFINE p_token STRING
DEFINE p_typeId STRING
DEFINE p_name STRING
DEFINE l_url STRING
DEFINE l_str STRING
DEFINE l_result BOOLEAN
DEFINE l_resp STRING # 應用服務回傳XML
DEFINE r_id STRING #返回ID
DEFINE i,k INT
DEFINE l_json util.JSONObject
DEFINE l_data util.JSONArray
DEFINE l_json2 util.JSONObject
###
LET l_url = "http://***.***.*.*.***:8080","/apiData/getDropDowItems"
###
LET l_str = "token=",p_token,"&typeId=",p_typeId
###
CALL cs_t1client_http_post(l_url,l_str) RETURNING l_result,l_resp
###
IF l_result=TRUE THEN
#解析JSON
DISPLAY l_resp
LET l_json = util.JSONObject.parse(l_resp)
FOR i= TO l_json.getLength() #遍历1
IF l_json.name(i) = "data" THEN
LET l_data = l_json.get(l_json.name(i)) #获取到data的jsonArray
IF NOT l_data.getLength() > THEN
EXIT FOR
END IF
FOR k= TO l_data.getLength()
LET l_json2 = l_data.get(k) #用JsonObject接收JsonArray.get
IF l_json2.get("name") = p_name THEN
LET r_id = l_json2.get("id")
EXIT FOR
END IF
END FOR
END IF
END FOR
RETURN r_id
ELSE
# 顯示錯誤訊息
DISPLAY l_resp
RETURN NULL
END IF
END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL s_aooi150_ins (传入参数)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_getWhats_byWhat(p_token,p_itemType,p_itemW,p_itemStr,p_get)
##返回JsonArray的ID集合
DEFINE p_token STRING
DEFINE p_itemType STRING #类型
DEFINE p_itemW STRING #参数
DEFINE p_itemStr STRING #参数值
DEFINE p_get STRING #取值
##
DEFINE l_url STRING
DEFINE l_wc STRING
DEFINE l_str STRING
###
DEFINE l_result BOOLEAN
DEFINE l_resp STRING # 應用服務回傳XML
DEFINE l_json util.JSONObject
DEFINE l_data util.JSONArray
DEFINE l_json2 util.JSONObject
DEFINE l_json3 util.JSONObject
DEFINE i,j,k INTEGER
DEFINE r_id STRING
INITIALIZE r_id TO NULL
###
LET l_url = "http://***.***.*.*.***:8080","/apiData/query"
###
LET l_wc = "{\"logic\":\"and\",condition :[{\"property\":\"",p_itemW,"\",\"operators\":\"doubleEqual\",\"valueType\":\"string\",\"value\":\"",p_itemStr,"\" }]}"
LET l_str = "token=",p_token,"&itemType=",p_itemType,"&filterString=",l_wc
###
CALL cs_t1client_http_post(l_url,l_str) RETURNING l_result,l_resp
###
IF l_result=TRUE THEN
#解析JSON
DISPLAY l_resp
LET l_json = util.JSONObject.parse(l_resp)
FOR i= TO l_json.getLength() #遍历1
IF l_json.name(i) = "data" THEN
LET l_data = l_json.get(l_json.name(i)) #获取到data的jsonArray
IF NOT l_data.getLength() > THEN
EXIT FOR
END IF
FOR k= TO l_data.getLength()
LET l_json2 = l_data.get(k) #用JsonObject接收JsonArray.get
IF k != THEN
LET r_id = ",",r_id
END IF
FOR j= TO l_json2.getLength() #遍历2
IF l_json2.name(j) = p_get THEN
LET l_json3 = l_json2.get(l_json2.name(j)) #jsonArray是[]的,json是{}的,注意用哪个来接收
LET r_id = l_json3.get("value"),r_id
EXIT FOR
END IF
END FOR
END FOR
END IF
END FOR
RETURN r_id
ELSE
# 顯示錯誤訊息
DISPLAY l_resp
RETURN NULL
END IF
END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL s_aooi150_ins (传入参数)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_getIds_byKBillNo(p_token,p_itemType,p_KBillNo)
##根据T1 采购申请的返回单号,获取内码ID,可能存在多个内码ID,返回JsonArray的ID集合
DEFINE p_token STRING
DEFINE p_KBillNo STRING
DEFINE p_itemType STRING
##
DEFINE l_url STRING
DEFINE l_wc STRING
DEFINE l_str STRING
###
DEFINE l_result BOOLEAN
DEFINE l_resp STRING # 應用服務回傳XML
DEFINE l_json util.JSONObject
DEFINE l_data util.JSONArray
DEFINE l_json2 util.JSONObject
DEFINE l_json3 util.JSONObject
DEFINE i,j,k INTEGER
DEFINE r_id STRING
INITIALIZE r_id TO NULL
###
LET l_url = "http://***.***.*.*.***:8080","/apiData/query"
###
LET l_wc = "{\"logic\":\"and\",condition :[{\"property\":\"KBillNo\",\"operators\":\"doubleEqual\",\"valueType\":\"string\",\"value\":\"",p_KBillNo,"\" }]}"
LET l_str = "token=",p_token,"&itemType=",p_itemType,"&filterString=",l_wc
###
CALL cs_t1client_http_post(l_url,l_str) RETURNING l_result,l_resp
###
IF l_result=TRUE THEN
#解析JSON
DISPLAY l_resp
LET l_json = util.JSONObject.parse(l_resp)
FOR i= TO l_json.getLength() #遍历1
IF l_json.name(i) = "data" THEN
LET l_data = l_json.get(l_json.name(i)) #获取到data的jsonArray
IF NOT l_data.getLength() > THEN
EXIT FOR
END IF
FOR k= TO l_data.getLength()
LET l_json2 = l_data.get(k) #用JsonObject接收JsonArray.get
IF k != THEN
LET r_id = ",",r_id
END IF
FOR j= TO l_json2.getLength() #遍历2
IF l_json2.name(j) = "Id" THEN
LET l_json3 = l_json2.get(l_json2.name(j)) #jsonArray是[]的,json是{}的,注意用哪个来接收
LET r_id = "\"",l_json3.get("value"),"\"",r_id
EXIT FOR
END IF
END FOR
END FOR
END IF
END FOR
IF NOT cl_null(r_id) THEN
LET r_id = "[",r_id,"]"
END IF
RETURN r_id
ELSE
# 顯示錯誤訊息
DISPLAY l_resp
RETURN NULL
END IF
END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL s_aooi150_ins (传入参数)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_getToken()
###从数据表zztcuc_t中获取TOKEN
DEFINE l_token LIKE zztcuc_t.zztcuc001
DEFINE l_rel BOOLEAN #检测token是否有效
##
SELECT zztcuc001 INTO l_token FROM zztcuc_t WHERE zztcucent=g_enterprise
IF cl_null(l_token) THEN
# INITIALIZE g_errparam TO NULL
# LET g_errparam.extend = ""
# LET g_errparam.code = 'cwss-00001' #获取令牌失败
# LET g_errparam.popup = FALSE
# CALL cl_err()
RETURN
END IF
CALL cs_t1client_checkToken(l_token) RETURNING l_rel
IF l_rel = TRUE THEN
RETURN l_token
ELSE
RETURN
END IF
END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL s_aooi150_ins (传入参数)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_checkToken(p_token)
##检测token是否有效,返回TRUE/FALSE
DEFINE p_token STRING
DEFINE l_url STRING
DEFINE lb_result BOOLEAN
DEFINE ls_resp STRING # 應用服務回傳XML
###
LET l_url = "http://***.***.*.*.***:8080","/api/checkToken",
"?token=",p_token
CALL cs_t1client_http_posturl(l_url) RETURNING lb_result,ls_resp
###
IF lb_result=TRUE THEN
#解析JSON
IF NOT cl_null(ls_resp) THEN
IF ls_resp LIKE '%凭证无效%' THEN
DISPLAY ls_resp
RETURN FALSE
ELSE
RETURN TRUE
END IF
ELSE #为空,返回FALSE
DISPLAY ls_resp
RETURN FALSE
END IF
ELSE
# 顯示錯誤訊息
DISPLAY ls_resp
RETURN FALSE
END IF END FUNCTION ################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL s_aooi150_ins (传入参数)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION cs_t1client_log_insert(p_url,p_str,p_succ,p_rel)
###记录T1日志,xmtcuc_t
DEFINE p_url LIKE xmtcuc_t.xmtcuc001
DEFINE p_str LIKE xmtcuc_t.xmtcuc002
DEFINE p_succ LIKE xmtcuc_t.xmtcuc003
DEFINE p_rel LIKE xmtcuc_t.xmtcuc004
DEFINE l_docno LIKE xmtcuc_t.xmtcucdocno
DEFINE l_user LIKE xmtcuc_t.xmtcuc005
DEFINE l_time LIKE xmtcuc_t.xmtcuc006
DEFINE
l_date LIKE type_t.chr30,
l_chr LIKE type_t.chr30,
l_verno LIKE type_t.chr30,
l_sql string ###单号自增
# LET l_date = g_today using 'yyyymmdd'
# LET l_chr = l_date CLIPPED
#
# LET l_sql = "SELECT MAX(SUBSTR(xmtcucdocno,LENGTH(xmtcucdocno)-4,5)) ",
# " FROM xmtcuc_t ",
# " WHERE SUBSTR(xmtcucdocno,1,LENGTH(xmtcucdocno)-5) = '",l_chr,"'"
# PREPARE t101_pr2 FROM l_sql
# EXECUTE t101_pr2 INTO l_verno
# IF SQLCA.sqlcode THEN
# INITIALIZE g_errparam TO NULL
# LET g_errparam.extend = "xmtcuc_t: ",SQLERRMESSAGE
# LET g_errparam.code = SQLCA.sqlcode
# LET g_errparam.popup = TRUE
# CALL cl_err()
# RETURN
# END IF
#
# IF cl_null(l_verno) THEN
# LET l_docno = l_chr,""
# ELSE
# LET l_verno = l_verno +
# LET l_docno = l_chr,l_verno USING '&&&&&'
# END IF ## LJR 单号自增并发多重复出错,采用时间毫秒级做单号
LET l_sql = "select to_char(systimestamp, 'yymmddhh24missff') from dual"
PREPARE t101_pr2 FROM l_sql
EXECUTE t101_pr2 INTO l_verno
IF SQLCA.sqlcode THEN
INITIALIZE g_errparam TO NULL
LET g_errparam.extend = "xmtcuc_t: ",SQLERRMESSAGE
LET g_errparam.code = SQLCA.sqlcode
LET g_errparam.popup = TRUE
CALL cl_err()
RETURN
END IF
LET l_docno = l_verno ###插入到数据表
LET l_user = g_user
LET l_time = cl_get_current() CALL s_transaction_begin()
INSERT INTO xmtcuc_t (xmtcucent,xmtcucsite,xmtcucdocno,xmtcuc001,xmtcuc002,xmtcuc003,xmtcuc004,xmtcuc005,xmtcuc006)
VALUES (g_enterprise,g_site,l_docno,p_url,p_str,p_succ,p_rel,l_user,l_time)
IF SQLCA.sqlcode THEN
INITIALIZE g_errparam TO NULL
LET g_errparam.extend = "xmtcuc_t: ",SQLERRMESSAGE
LET g_errparam.code = SQLCA.sqlcode
LET g_errparam.popup = TRUE
CALL s_transaction_end('N','')
CALL cl_err()
RETURN
END IF
CALL s_transaction_end('Y','') END FUNCTION {</section>}

T100——接口代码记录,jsonArray和json的更多相关文章

  1. 记录一次用宝塔部署微信小程序Node.js后端接口代码的详细过程

    一直忙着写毕设,上一次写博客还是元旦,大半年过去了.... 后面会不断分享各种新项目的源码与技术.欢迎关注一起学习哈! 记录一次部署微信小程序Node.js后端接口代码的详细过程,使用宝塔来部署. 我 ...

  2. 我的第一个python web开发框架(33)——接口代码重构

    前面ORM模块我们已经完成了开发,接下来要做的就是对项目代码进行重构了.因为对底层数据库操作模块(db_helper.py)进行了改造,之前项目的接口代码全都跑不起来了. 在写ORM模块时,我们已经对 ...

  3. MVVM 代码记录

      一.XML <Page x:Class="MVVM.MainPage" xmlns="http://schemas.microsoft.com/winfx/20 ...

  4. python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)

    简介 有些 post 的请求参数是 json 格式的,这个前面发送post 请求里面提到过,需要导入 json模块处理.现在企业公司一般常见的接口因为json数据容易处理,所以绝大多数返回数据也是 j ...

  5. Swagger结合mustache模板生成后台接口代码、以及前后台建模代码

    之前项目中使用的的thrift来建模,维护前后台模型以及rest接口,前台使用的是angular2: 但是使用thrift只能生成建模,后台的rest接口的Controller文件还是需要手动去写,一 ...

  6. 教你如何帮助前端同学快速生成API接口代码

    最近我们团队开源的后端微服务框架go-zero增长势头比较迅猛,这篇文章我讲讲go-zero对前端团队的作用,并通过一个示例来给大家演示我们是怎么做的,希望能给后端的同学也可以帮助前端同学提高开发效率 ...

  7. 数据库记录转换成json格式 (2011-03-13 19:48:37) (转)

    http://blog.sina.com.cn/s/blog_621768f30100r6v7.html 数据库记录转换成json格式 (2011-03-13 19:48:37) 转载▼ 标签: 杂谈 ...

  8. Java认证:JavaRunnable线程编写接口代码

    Java认证:JavaRunnable线程编写接口代码.JavaRunnable线程如何才能更好的适应目前的编程环境呢?下面我们就看看如何才能更好的进行相关环境.希望下面的文章对大家有所帮助.Java ...

  9. 基于gulp编写的一个简单实用的前端开发环境好了,安装完Gulp后,接下来是你大展身手的时候了,在你自己的电脑上面随便哪个地方建一个目录,打开命令行,然后进入创建好的目录里面,开始撸代码,关于生成的json文件请点击这里https://docs.npmjs.com/files/package.json,打开的速度看你的网速了注意:以下是为了演示 ,我建的一个目录结构,你自己可以根据项目需求自己建目

    自从Node.js出现以来,基于其的前端开发的工具框架也越来越多了,从Grunt到Gulp再到现在很火的WebPack,所有的这些新的东西的出现都极大的解放了我们在前端领域的开发,作为一个在前端领域里 ...

随机推荐

  1. mac -bash: ll: command not found

    在linux系统下我们经常使用ll.la命令.但在mac系统时缺没有. 提示:-bash: ll: command not found. 这是因为ll.la不是真的命令,而是一些常用命令和参数搭配的别 ...

  2. Kettle环境的安装

    Kettle是绿色免安装的,下载完解压之后找到Spoon.bat,直接执行就好 欢迎界面 Kettle主要分为转换和作业2类 新建一个转换demo 创建了一个转换demo后,由于是数据抽取,因此我们抽 ...

  3. 我的zshrc文件设置备份

    # If you come from bash you might have to change your $PATH. # export PATH=$HOME/bin:/usr/local/bin: ...

  4. javascript实现集合Set、字典Dictionary、HashTable

    集合是由一组无序且唯一(即不能重复)的项组成的.这个数据结构使用了与有限集合相同的数学概念,但应用在计算机科学的数据结构中. function Set() { this.items = {}; } S ...

  5. 单调队列优化dp(捡垃圾的机器人)

    /************************************************************************* > File Name: a.cpp > ...

  6. POJ3009-Curling 2.0(WA)

    POJ3009-Curling 2.0 题意: 要求把一个冰壶从起点“2”用最少的步数移动到终点“3” 其中0为移动区域,1为石头区域,冰壶一旦想着某个方向运动就不会停止,也不会改变方向(想想冰壶在冰 ...

  7. openstack核心组件--cinder存储服务(6)

    一.cinder 介绍:   理解 Block Storage 操作系统获得存储空间的方式一般有两种: 通过某种协议(SAS,SCSI,SAN,iSCSI 等)挂接裸硬盘,然后分区.格式化.创建文件系 ...

  8. plantuml语法

    活动图(新语法) 当前活动图(activity diagram)的语法有诸多限制和缺点,比如代码难以维护. 所以从V7947开始提出一种全新的.更好的语法格式和软件实现供用户使用(beta版). 就像 ...

  9. RDD的cache 与 checkpoint 的区别

    问题:cache 与 checkpoint 的区别? 关于这个问题,Tathagata Das 有一段回答: There is a significant difference between cac ...

  10. Java数组(4):数组实用功能

    Java标准类库的System.arraycopy()方法,及在java.utils.Arrays类中一套用于数组的static方法,都是操纵数组实用功能.下面分别介绍. (1) 数组的复制 (2)  ...