T100——接口代码记录,jsonArray和json

   1 {
"cs_t1client.description" >} 2 #應用 a00 樣板自動產生(Version:2) 3 #+ Version..: T100-ERP-1.01.00(SD版次:4,PR版次:4) Build-000143 4 #+ 5 #+ Filename...: cs_t1client 6 #+ Description: T1雲 7 #+ Creator....: tiptop(2017-07-14 14:17:17) 8 #+ Modifier...: 00000() -SD/PR- 9 10 {
} 11 12 {
"cs_t1client.global" >} 13 #應用 p00 樣板自動產生(Version:3) 14 #add-point:註解編寫項目 15 16 #end add-point 17 18 IMPORT os 19 #add-point:增加匯入項目 20 IMPORT util 21 IMPORT xml 22 IMPORT com 23 #end add-point 24 25 SCHEMA ds 26 27 GLOBALS "../../cfg/top_global.inc" 28 #add-point:增加匯入變數檔 29 30 #end add-point 31 32 {
} 33 34 {
"cs_t1client.free_style_variable" >} 35 #add-point:free_style模組變數(Module Variable) 36 37 #end add-point 38 39 {
} 40 41 {
"cs_t1client.global_variable" >} 42 #add-point:自定義模組變數(Module Variable) 43 44 #end add-point 45 46 {
} 47 48 {
"cs_t1client.other_dialog" >} 49 50 51 {
} 52 53 {
"cs_t1client.other_function" readonly="Y" >} 54 55 ################################################################################ 56 # Descriptions...: 通过账号密码获取令牌 57 # Memo...........: 58 # Usage..........: CALL cs_t1client_get_token() 59 # RETURNING r_success,r_token 60 # Input parameter: 61 # Return code....: r_success 成功否 62 # : r_token 回传的令牌 63 # Date & Author..: 日期 By 作者 64 # Modify.........: 65 ################################################################################ 66 PUBLIC FUNCTION cs_t1client_get_token() 67 ##此函数给作业czzi001调用,其他别调用,避免造成token与数据表的不一致 68 DEFINE lb_result BOOLEAN 69 DEFINE ls_resp STRING # 應用服務回傳XML 70 DEFINE ls_url STRING 71 DEFINE r_token STRING 72 73 LET ls_url = "http://***.***.*.*.***:8080", 74 "/api/getToken", 75 "?user=*********&password=**********&appid=***********&clientType=pc" 76 DISPLAY "URL=\n" , ls_url , "\n" 77 78 CALL cs_t1client_http_posturl(ls_url) RETURNING lb_result,ls_resp 79 IF lb_result=TRUE THEN 80 #解析JSON 81 CALL cs_t1client_parse_json(ls_resp) RETURNING r_token 82 DISPLAY ls_resp #显示一下回传的JSON 83 DISPLAY r_token 84 RETURN r_token 85 ELSE 86 # 顯示錯誤訊息 87 DISPLAY ls_resp 88 RETURN 0 89 END IF 90 91 RETURN 0 92 93 94 95 END FUNCTION 96 97 ################################################################################ 98 # Descriptions...: 提交url 99 # Memo...........: 100 # Usage..........: CALL cs_t1client_http_posturl(p_url) 101 # RETURNING r_body 102 # Input parameter: p_url url内容 103 # Return code....: r_body body内容 104 # Date & Author..: 日期 By 作者 105 # Modify.........: 106 ################################################################################ 107 PUBLIC FUNCTION cs_t1client_http_posturl(p_url) 108 DEFINE l_http_req com.HTTPRequest 109 DEFINE l_http_res com.HTTPResponse 110 DEFINE p_url STRING 111 DEFINE l_succ BOOLEAN 112 DEFINE l_str STRING 113 DEFINE l_body STRING 114 115 116 # initial parameter 117 LET l_succ = FALSE 118 LET l_str = "" 119 120 TRY 121 # 設置 HttpRequest START 122 LET l_http_req = com.HttpRequest.Create(p_url) # 建立請求 requesst 物件 123 CALL l_http_req.setTimeOut(60) # 設定 request timeout 124 CALL l_http_req.setMethod("GET") # 設定Http method 125 CALL l_http_req.setCharset("UTF-8") # 設定編碼 126 CALL l_http_req.doRequest() # send request 127 128 LET l_http_res = l_http_req.getResponse() #取得回傳 response 物件 129 IF l_http_res.getStatusCode() != 200 THEN 130 # server 回傳報錯 131 LET l_succ = FALSE 132 LET l_str = "HTTP Error ("||l_http_res.getStatusCode()||") ", l_http_res.getStatusDescription() 133 ELSE 134 # 取得 server 回傳 body content string 135 LET l_succ = TRUE 136 LET l_str = l_http_res.getTextResponse() # 取得 response body字串 137 #DISPLAY l_str 138 END IF 139 CATCH 140 #get error from genero 141 LET l_succ = FALSE 142 LET l_str = "ERROR :",STATUS||" ("||SQLCA.SQLERRM||")" 143 END TRY 144 145 # 回傳結果 146 RETURN l_succ,l_str 147 148 END FUNCTION 149 150 ################################################################################ 151 # Descriptions...: 解析回传的json 152 # Memo...........: 153 # Usage..........: CALL cs_t1client_parse_json(p_str) 154 # RETURNING 155 # Input parameter: p_str json 字符串 156 # : 157 # Return code....: 158 # Date & Author..: 日期 By 作者 159 # Modify.........: 160 ################################################################################ 161 PUBLIC FUNCTION cs_t1client_parse_json(p_str) 162 DEFINE p_str STRING 163 DEFINE l_json util.JSONObject 164 DEFINE r_token STRING 165 DEFINE i INTEGER 166 DISPLAY p_str 167 LET l_json = util.JSONObject.parse(p_str) 168 169 FOR i=1 TO l_json.getLength() 170 DISPLAY i, ": ", l_json.name(i), "=", l_json.get(l_json.name(i)) 171 IF l_json.name(i) = "token" THEN 172 LET r_token = l_json.get(l_json.name(i)) 173 END IF 174 END FOR 175 RETURN r_token 176 END FUNCTION 177 178 ################################################################################ 179 # Descriptions...: 描述说明 180 # Memo...........: 181 # Usage..........: CALL cs_t1client_get_create(p_type,p_token) 182 # RETURNING 回传参数 183 # Input parameter: p_type 类型 184 # : p_token 令牌 185 # Return code....: 数据包(STRING类的JSON) 186 # Date & Author..: 日期 By 作者 187 # Modify.........: 188 ################################################################################ 189 PUBLIC FUNCTION cs_t1client_get_create(p_type,p_token) 190 DEFINE p_type LIKE type_t.chr1000 191 DEFINE p_token STRING 192 DEFINE lb_result BOOLEAN 193 DEFINE ls_resp STRING # 應用服務回傳XML 194 DEFINE ls_url STRING 195 DEFINE r_token STRING 196 DEFINE l_json util.JSONObject 197 198 199 LET ls_url = "http://***.***.*.*.***:8080", 200 "/apiData/getCreate", 201 "?token=",p_token,"&itemType=",p_type,"" 202 DISPLAY "URL=\n" , ls_url , "\n" 203 204 CALL cs_t1client_http_get(ls_url) RETURNING lb_result,ls_resp 205 IF lb_result=TRUE THEN 206 #解析JSON 207 LET l_json = util.JSONObject.parse(ls_resp) 208 CALL cs_t1client_http_prasejsontest(l_json) 209 #CALL cs_t1client_parse_json(ls_resp) RETURNING r_token 210 DISPLAY ls_resp #显示一下回传的JSON 211 DISPLAY ls_resp 212 RETURN ls_resp 213 ELSE 214 # 顯示錯誤訊息 215 DISPLAY ls_resp 216 RETURN 0 217 END IF 218 219 RETURN 0 220 221 222 223 END FUNCTION 224 225 ################################################################################ 226 # Descriptions...: 描述说明 227 # Memo...........: 228 # Usage..........: CALL s_aooi150_ins (传入参数) 229 # RETURNING 回传参数 230 # Input parameter: 传入参数变量1 传入参数变量说明1 231 # : 传入参数变量2 传入参数变量说明2 232 # Return code....: 回传参数变量1 回传参数变量说明1 233 # : 回传参数变量2 回传参数变量说明2 234 # Date & Author..: 日期 By 作者 235 # Modify.........: 236 ################################################################################ 237 PUBLIC FUNCTION cs_t1client_modify_data(p_str,p_itemcode,p_itemname,p_createtype,p_remark) 238 DEFINE p_str STRING 239 DEFINE l_json util.JSONObject 240 DEFINE r_str STRING 241 DEFINE rec RECORD 242 value STRING, 243 text STRING, 244 css util.JSONObject 245 END RECORD 246 DEFINE p_itemcode LIKE type_t.chr1000 247 DEFINE p_itemname LIKE type_t.chr1000 248 DEFINE p_createtype LIKE type_t.chr1000 249 DEFINE p_remark LIKE type_t.chr1000 250 DEFINE i,j INTEGER 251 DISPLAY p_str 252 LET l_json = util.JSONObject.parse(p_str) 253 FOR i=1 TO l_json.getLength() 254 #DISPLAY i, ": ", l_json.name(i), "=", l_json.get(l_json.name(i)) 255 IF l_json.name(i) = "ItemCode" THEN 256 LET rec.value = p_itemcode 257 LET rec.text = p_itemcode 258 LET rec.css = util.JSONObject.parse("{}") 259 CALL l_json.put(l_json.name(i),rec) 260 END IF 261 IF l_json.name(i) = "ItemName" THEN 262 LET rec.value = p_itemname 263 LET rec.text = p_itemname 264 LET rec.css = util.JSONObject.parse("{}") 265 CALL l_json.put(l_json.name(i),rec) 266 END IF 267 IF l_json.name(i) = "CreateType" THEN 268 LET rec.value = p_createtype 269 LET rec.text = p_createtype 270 LET rec.css = util.JSONObject.parse("{}") 271 CALL l_json.put(l_json.name(i),rec) 272 END IF 273 IF l_json.name(i) = "Remark" THEN 274 LET rec.value = p_remark 275 LET rec.text = p_remark 276 LET rec.css = util.JSONObject.parse("{}") 277 CALL l_json.put(l_json.name(i),rec) 278 END IF 279 END FOR 280 281 LET r_str = l_json.toString() 282 RETURN r_str 283 END FUNCTION 284 285 ################################################################################ 286 # Descriptions...: 描述说明 287 # Memo...........: 288 # Usage..........: CALL s_aooi150_ins (传入参数) 289 # RETURNING 回传参数 290 # Input parameter: 传入参数变量1 传入参数变量说明1 291 # : 传入参数变量2 传入参数变量说明2 292 # Return code....: 回传参数变量1 回传参数变量说明1 293 # : 回传参数变量2 回传参数变量说明2 294 # Date & Author..: 日期 By 作者 295 # Modify.........: 296 ################################################################################ 297 PUBLIC FUNCTION cs_t1client_i193_create(p_token,p_itemtype,p_str) 298 DEFINE p_itemtype LIKE type_t.chr1000 299 DEFINE p_token STRING 300 DEFINE p_str STRING 301 DEFINE lb_result BOOLEAN 302 DEFINE ls_resp STRING # 應用服務回傳XML 303 DEFINE ls_url STRING 304 DEFINE r_token STRING 305 306 307 308 LET ls_url = "http://***.***.*.*.***:8080", 309 "/apiData/create" 310 # "?token=",p_token,"&itemType=",p_itemtype,"" 311 312 DISPLAY "URL=\n" , ls_url , "\n" 313 LET p_str = "token=",p_token,"&itemType=",p_itemtype,"&dataString=",p_str,"" 314 #LET p_str = " " 315 CALL cs_t1client_http_post(ls_url,p_str) RETURNING lb_result,ls_resp 316 317 318 IF lb_result=TRUE THEN 319 #解析JSON 320 #CALL cs_t1client_parse_json(ls_resp) RETURNING r_token 321 322 DISPLAY ls_resp #显示一下回传的JSON 323 DISPLAY ls_resp 324 #RETURN ls_resp 325 ELSE 326 # 顯示錯誤訊息 327 DISPLAY ls_resp 328 #RETURN 0 329 END IF 330 331 #RETURN 0 332 END FUNCTION 333 334 ################################################################################ 335 # Descriptions...: 描述说明 336 # Memo...........: 337 # Usage..........: CALL s_aooi150_ins (传入参数) 338 # RETURNING 回传参数 339 # Input parameter: 传入参数变量1 传入参数变量说明1 340 # : 传入参数变量2 传入参数变量说明2 341 # Return code....: 回传参数变量1 回传参数变量说明1 342 # : 回传参数变量2 回传参数变量说明2 343 # Date & Author..: 日期 By 作者 344 # Modify.........: 345 ################################################################################ 346 PUBLIC FUNCTION cs_t1client_http_get(p_url) 347 DEFINE l_http_req com.HTTPRequest 348 DEFINE l_http_res com.HTTPResponse 349 DEFINE p_url STRING 350 DEFINE l_succ BOOLEAN 351 DEFINE l_str STRING 352 DEFINE l_body STRING 353 DEFINE p_method LIKE type_t.chr100 354 355 356 # initial parameter 357 LET l_succ = FALSE 358 LET l_str = "" 359 360 TRY 361 # 設置 HttpRequest START 362 LET l_http_req = com.HttpRequest.Create(p_url) # 建立請求 requesst 物件 363 CALL l_http_req.setTimeOut(60) # 設定 request timeout 364 CALL l_http_req.setMethod("GET") # 設定Http method 365 CALL l_http_req.setCharset("UTF-8") # 設定編碼 366 DISPLAY l_http_req 367 CALL l_http_req.doRequest() # 設定Http method 368 369 370 371 LET l_http_res = l_http_req.getResponse() #取得回傳 response 物件 372 IF l_http_res.getStatusCode() != 200 THEN 373 # server 回傳報錯 374 LET l_succ = FALSE 375 LET l_str = "HTTP Error ("||l_http_res.getStatusCode()||") ", l_http_res.getStatusDescription() 376 ELSE 377 # 取得 server 回傳 body content string 378 LET l_succ = TRUE 379 LET l_str = l_http_res.getTextResponse() # 取得 response body字串 380 #DISPLAY l_str 381 END IF 382 CATCH 383 #get error from genero 384 LET l_succ = FALSE 385 LET l_str = "ERROR :",STATUS||" ("||SQLCA.SQLERRM||")" 386 END TRY 387 388 # 回傳結果 389 RETURN l_succ,l_str 390 END FUNCTION 391 392 ################################################################################ 393 # Descriptions...: 描述说明 394 # Memo...........: 395 # Usage..........: CALL s_aooi150_ins (传入参数) 396 # RETURNING 回传参数 397 # Input parameter: 传入参数变量1 传入参数变量说明1 398 # : 传入参数变量2 传入参数变量说明2 399 # Return code....: 回传参数变量1 回传参数变量说明1 400 # : 回传参数变量2 回传参数变量说明2 401 # Date & Author..: 日期 By 作者 402 # Modify.........: 403 ################################################################################ 404 PUBLIC FUNCTION cs_t1client_http_post(p_url,p_str) 405 DEFINE l_http_req com.HTTPRequest 406 DEFINE l_http_res com.HTTPResponse 407 DEFINE p_url STRING 408 DEFINE l_succ BOOLEAN 409 DEFINE l_str STRING 410 DEFINE l_body STRING 411 DEFINE p_str STRING 412 413 414 # initial parameter 415 LET l_succ = FALSE 416 LET l_str = "" 417 418 TRY 419 # 設置 HttpRequest START 420 LET l_http_req = com.HttpRequest.Create(p_url) # 建立請求 requesst 物件 421 CALL l_http_req.setTimeOut(60) # 設定 request timeout 422 CALL l_http_req.setMethod("POST") 423 CALL l_http_req.setCharset("UTF-8") # 設定編碼 424 DISPLAY l_http_req 425 CALL l_http_req.doFormEncodedRequest(p_str,true) # send request 426 427 428 429 LET l_http_res = l_http_req.getResponse() #取得回傳 response 物件 430 IF l_http_res.getStatusCode() != 200 THEN 431 # server 回傳報錯 432 LET l_succ = FALSE 433 LET l_str = "HTTP Error ("||l_http_res.getStatusCode()||") ", l_http_res.getStatusDescription() 434 ELSE 435 # 取得 server 回傳 body content string 436 LET l_succ = TRUE 437 LET l_str = l_http_res.getTextResponse() # 取得 response body字串 438 #DISPLAY l_str 439 ###171013 add ljr s 440 IF l_str NOT LIKE '%"success":true%' THEN 441 LET l_succ = FALSE 442 DISPLAY l_str 443 END IF 444 ###171013 add ljr e 445 END IF 446 CATCH 447 #get error from genero 448 LET l_succ = FALSE 449 LET l_str = "ERROR :",STATUS||" ("||SQLCA.SQLERRM||")" 450 END TRY 451 452 ###171027 LJR ADD 记录错误信息 453 #IF l_succ = FALSE THEN 454 CALL cs_t1client_log_insert(p_url,p_str,l_succ,l_str) 455 #END IF 456 457 # 回傳結果 458 RETURN l_succ,l_str 459 END FUNCTION 460 461 ################################################################################ 462 # Descriptions...: 描述说明 463 # Memo...........: 464 # Usage..........: CALL s_aooi150_ins (传入参数) 465 # RETURNING 回传参数 466 # Input parameter: 传入参数变量1 传入参数变量说明1 467 # : 传入参数变量2 传入参数变量说明2 468 # Return code....: 回传参数变量1 回传参数变量说明1 469 # : 回传参数变量2 回传参数变量说明2 470 # Date & Author..: 日期 By 作者 471 # Modify.........: 472 ################################################################################ 473 PUBLIC FUNCTION cs_t1client_parse_output_json(p_str) 474 DEFINE p_str STRING 475 DEFINE l_json util.JSONObject 476 DEFINE r_token STRING 477 DEFINE i INTEGER 478 DEFINE r_success LIKE type_t.chr100 479 DEFINE r_error LIKE type_t.chr100 480 DEFINE r_errcode LIKE type_t.chr1000 481 482 DISPLAY p_str 483 LET l_json = util.JSONObject.parse(p_str) 484 485 FOR i=1 TO l_json.getLength() 486 DISPLAY i, ": ", l_json.name(i), "=", l_json.get(l_json.name(i)) 487 IF l_json.name(i) = "success" THEN 488 LET r_success = l_json.get(l_json.name(i)) 489 END IF 490 IF l_json.name(i) = "error" THEN 491 LET r_error = l_json.get(l_json.name(i)) 492 END IF 493 IF l_json.name(i) = "errcode" THEN 494 LET r_errcode = l_json.get(l_json.name(i)) 495 END IF 496 END FOR 497 RETURN r_success,r_error,r_errcode 498 END FUNCTION 499 500 ################################################################################ 501 # Descriptions...: 描述说明 502 # Memo...........: 503 # Usage..........: CALL s_aooi150_ins (传入参数) 504 # RETURNING 回传参数 505 # Input parameter: 传入参数变量1 传入参数变量说明1 506 # : 传入参数变量2 传入参数变量说明2 507 # Return code....: 回传参数变量1 回传参数变量说明1 508 # : 回传参数变量2 回传参数变量说明2 509 # Date & Author..: 日期 By 作者 510 # Modify.........: 511 ################################################################################ 512 PUBLIC FUNCTION cs_t1client_http_prasejsontest(p_str) 513 DEFINE p_str util.JSONObject 514 DEFINE l_json util.JSONObject 515 DEFINE r_token STRING 516 DEFINE i,j INTEGER 517 DEFINE r_success LIKE type_t.chr100 518 DEFINE r_error LIKE type_t.chr100 519 DEFINE r_errcode LIKE type_t.chr1000 520 DEFINE l_jsona util.JSONObject 521 522 #DISPLAY p_str 523 #LET l_json = util.JSONObject.parse(p_str) 524 LET l_json = p_str 525 FOR i=1 TO l_json.getLength() 526 527 IF l_json.getType(l_json.name(i)) = "json" THEN 528 LET l_jsona = l_json.get(l_json.name(i)) 529 CALL cs_t1client_http_prasejsontest(l_jsona) 530 ELSE 531 DISPLAY i, ": ", l_json.name(i), "=", l_json.get(l_json.name(i)) 532 END IF 533 534 END FOR 535 536 END FUNCTION 537 538 ################################################################################ 539 # Descriptions...: 描述说明 540 # Memo...........: 541 # Usage..........: CALL s_aooi150_ins (传入参数) 542 # RETURNING 回传参数 543 # Input parameter: 传入参数变量1 传入参数变量说明1 544 # : 传入参数变量2 传入参数变量说明2 545 # Return code....: 回传参数变量1 回传参数变量说明1 546 # : 回传参数变量2 回传参数变量说明2 547 # Date & Author..: 日期 By 作者 548 # Modify.........: 549 ################################################################################ 550 PUBLIC FUNCTION cs_t1client_getId_byItemCode(p_token,p_itemType,p_itemCode) 551 ###根据ItemCode获取内码Id,针对lookup和dropdown类型字段 552 DEFINE p_itemType STRING 553 DEFINE p_itemCode STRING 554 DEFINE p_token STRING 555 ### 556 DEFINE l_url STRING 557 DEFINE l_wc STRING 558 DEFINE l_str STRING 559 ### 560 DEFINE l_result BOOLEAN 561 DEFINE l_resp STRING # 應用服務回傳XML 562 DEFINE l_json util.JSONObject 563 DEFINE l_data util.JSONArray 564 DEFINE l_json2 util.JSONObject 565 DEFINE l_json3 util.JSONObject 566 DEFINE i,j INTEGER 567 DEFINE r_id STRING 568 INITIALIZE r_id TO NULL 569 ### 570 LET l_url = "http://***.***.*.*.***:8080","/apiData/query" 571 ### 572 LET l_wc = "{\"logic\":\"and\",condition :[{\"property\":\"ItemCode\",\"operators\":\"doubleEqual\",\"valueType\":\"string\",\"value\":\"",p_itemCode,"\" }]}" 573 LET l_str = "token=",p_token,"&itemType=",p_itemType,"&filterString=",l_wc 574 ### 575 CALL cs_t1client_http_post(l_url,l_str) RETURNING l_result,l_resp 576 ### 577 IF l_result=TRUE THEN 578 #解析JSON 579 DISPLAY l_resp 580 LET l_json = util.JSONObject.parse(l_resp) 581 FOR i=1 TO l_json.getLength() #遍历1 582 IF l_json.name(i) = "data" THEN 583 LET l_data = l_json.get(l_json.name(i)) #获取到data的jsonArray 584 IF NOT l_data.getLength() > 0 THEN 585 EXIT FOR 586 END IF 587 LET l_json2 = l_data.get(1) #用JsonObject接收JsonArray.get 588 FOR j=1 TO l_json2.getLength() #遍历2 589 IF l_json2.name(j) = "Id" THEN 590 LET l_json3 = l_json2.get(l_json2.name(j)) #jsonArray是[]的,json是{}的,注意用哪个来接收 591 LET r_id = l_json3.get("value") 592 EXIT FOR 593 END IF 594 END FOR 595 END IF 596 END FOR 597 RETURN r_id 598 ELSE 599 # 顯示錯誤訊息 600 DISPLAY l_resp 601 RETURN NULL 602 END IF 603 604 END FUNCTION 605 606 ################################################################################ 607 # Descriptions...: 描述说明 608 # Memo...........: 609 # Usage..........: CALL s_aooi150_ins (传入参数) 610 # RETURNING 回传参数 611 # Input parameter: 传入参数变量1 传入参数变量说明1 612 # : 传入参数变量2 传入参数变量说明2 613 # Return code....: 回传参数变量1 回传参数变量说明1 614 # : 回传参数变量2 回传参数变量说明2 615 # Date & Author..: 日期 By 作者 616 # Modify.........: 617 ################################################################################ 618 PUBLIC FUNCTION cs_t1client_create(p_token,p_itemtype,p_str) 619 DEFINE p_itemtype LIKE type_t.chr1000 620 DEFINE p_token STRING 621 DEFINE p_str STRING 622 DEFINE lb_result BOOLEAN 623 DEFINE ls_resp STRING # 應用服務回傳XML 624 DEFINE ls_url STRING 625 ### 626 LET ls_url = "http://***.***.*.*.***:8080", 627 "/apiData/create" 628 ### 629 LET p_str = "token=",p_token,"&itemType=",p_itemtype,"&dataString=",p_str,"" 630 ### 631 CALL cs_t1client_http_post(ls_url,p_str) RETURNING lb_result,ls_resp 632 ### 633 IF lb_result=TRUE THEN 634 DISPLAY ls_resp #显示一下回传的JSON 635 RETURN TRUE 636 ELSE 637 DISPLAY ls_resp 638 RETURN FALSE 639 END IF 640 641 END FUNCTION 642 643 ################################################################################ 644 # Descriptions...: 描述说明 645 # Memo...........: 646 # Usage..........: CALL s_aooi150_ins (传入参数) 647 # RETURNING 回传参数 648 # Input parameter: 传入参数变量1 传入参数变量说明1 649 # : 传入参数变量2 传入参数变量说明2 650 # Return code....: 回传参数变量1 回传参数变量说明1 651 # : 回传参数变量2 回传参数变量说明2 652 # Date & Author..: 日期 By 作者 653 # Modify.........: 654 ################################################################################ 655 PUBLIC FUNCTION cs_t1client_getId_byBillNo(p_token,p_itemType,p_BillNo) 656 ###根据 T1的订单单号BillNo 获取订单内码Id 657 DEFINE p_itemType STRING 658 DEFINE p_BillNo STRING 659 DEFINE p_token STRING 660 ### 661 DEFINE l_url STRING 662 DEFINE l_wc STRING 663 DEFINE l_str STRING 664 ### 665 DEFINE l_result BOOLEAN 666 DEFINE l_resp STRING # 應用服務回傳XML 667 DEFINE l_json util.JSONObject 668 DEFINE l_data util.JSONArray 669 DEFINE l_json2 util.JSONObject 670 DEFINE l_json3 util.JSONObject 671 DEFINE i,j INTEGER 672 DEFINE r_id STRING 673 INITIALIZE r_id TO NULL 674 ### 675 LET l_url = "http://***.***.*.*.***:8080","/apiData/query" 676 ### 677 LET l_wc = "{\"logic\":\"and\",condition :[{\"property\":\"BillNo\",\"operators\":\"doubleEqual\",\"valueType\":\"string\",\"value\":\"",p_BillNo,"\" }]}" 678 LET l_str = "token=",p_token,"&itemType=",p_itemType,"&filterString=",l_wc 679 ### 680 CALL cs_t1client_http_post(l_url,l_str) RETURNING l_result,l_resp 681 ### 682 IF l_result=TRUE THEN 683 #解析JSON 684 DISPLAY l_resp 685 LET l_json = util.JSONObject.parse(l_resp) 686 FOR i=1 TO l_json.getLength() #遍历1 687 IF l_json.name(i) = "data" THEN 688 LET l_data = l_json.get(l_json.name(i)) #获取到data的jsonArray 689 IF NOT l_data.getLength() > 0 THEN 690 EXIT FOR 691 END IF 692 LET l_json2 = l_data.get(1) #用JsonObject接收JsonArray.get 693 FOR j=1 TO l_json2.getLength() #遍历2 694 IF l_json2.name(j) = "Id" THEN 695 LET l_json3 = l_json2.get(l_json2.name(j)) #jsonArray是[]的,json是{}的,注意用哪个来接收 696 LET r_id = l_json3.get("value") 697 EXIT FOR 698 END IF 699 END FOR 700 END IF 701 END FOR 702 RETURN r_id 703 ELSE 704 # 顯示錯誤訊息 705 DISPLAY l_resp 706 RETURN NULL 707 END IF 708 709 END FUNCTION 710 711 ################################################################################ 712 # Descriptions...: 描述说明 713 # Memo...........: 714 # Usage..........: CALL s_aooi150_ins (传入参数) 715 # RETURNING 回传参数 716 # Input parameter: 传入参数变量1 传入参数变量说明1 717 # : 传入参数变量2 传入参数变量说明2 718 # Return code....: 回传参数变量1 回传参数变量说明1 719 # : 回传参数变量2 回传参数变量说明2 720 # Date & Author..: 日期 By 作者 721 # Modify.........: 722 ################################################################################ 723 PUBLIC FUNCTION cs_t1client_delete(p_token,p_itemtype,p_str) 724 DEFINE p_itemtype LIKE type_t.chr1000 725 DEFINE p_token STRING 726 DEFINE p_str STRING 727 DEFINE lb_result BOOLEAN 728 DEFINE ls_resp STRING # 應用服務回傳XML 729 DEFINE ls_url STRING 730 ### 731 LET ls_url = "http://***.***.*.*.***:8080", 732 "/apiData/delete" 733 ### 734 LET p_str = "token=",p_token,"&itemType=",p_itemtype,"&idString=",p_str,"" 735 ### 736 CALL cs_t1client_http_post(ls_url,p_str) RETURNING lb_result,ls_resp 737 ### 738 IF lb_result=TRUE THEN 739 DISPLAY ls_resp #显示一下回传的JSON 740 RETURN TRUE 741 ELSE 742 DISPLAY ls_resp 743 RETURN FALSE 744 END IF 745 746 END FUNCTION 747 748 ################################################################################ 749 # Descriptions...: 描述说明 750 # Memo...........: 751 # Usage..........: CALL s_aooi150_ins (传入参数) 752 # RETURNING 回传参数 753 # Input parameter: 传入参数变量1 传入参数变量说明1 754 # : 传入参数变量2 传入参数变量说明2 755 # Return code....: 回传参数变量1 回传参数变量说明1 756 # : 回传参数变量2 回传参数变量说明2 757 # Date & Author..: 日期 By 作者 758 # Modify.........: 759 ################################################################################ 760 PUBLIC FUNCTION cs_t1client_getWhat_bywhat(p_token,p_itemType,p_itemW,p_itemStr,p_get) 761 ### 762 DEFINE p_token STRING #令牌 763 DEFINE p_itemType STRING #T1表单类型 764 DEFINE p_itemW STRING #where 条件 765 DEFINE p_itemStr STRING #where 条件 值 766 DEFINE p_get STRING #取T1的值 767 ## 768 DEFINE l_url STRING 769 DEFINE l_wc STRING 770 DEFINE l_str STRING 771 ### 772 DEFINE l_result BOOLEAN 773 DEFINE l_resp STRING # 應用服務回傳XML 774 DEFINE l_json util.JSONObject 775 DEFINE l_data util.JSONArray 776 DEFINE l_json2 util.JSONObject 777 DEFINE l_json3 util.JSONObject 778 DEFINE i,j INTEGER 779 DEFINE r_id STRING 780 INITIALIZE r_id TO NULL 781 ### 782 LET l_url = "http://***.***.*.*.***:8080","/apiData/query" 783 ### 784 LET l_wc = "{\"logic\":\"and\",condition :[{\"property\":\"",p_itemW,"\",\"operators\":\"doubleEqual\",\"valueType\":\"string\",\"value\":\"",p_itemStr,"\" }]}" 785 LET l_str = "token=",p_token,"&itemType=",p_itemType,"&filterString=",l_wc 786 ### 787 CALL cs_t1client_http_post(l_url,l_str) RETURNING l_result,l_resp 788 ### 789 IF l_result=TRUE THEN 790 #解析JSON 791 DISPLAY l_resp 792 LET l_json = util.JSONObject.parse(l_resp) 793 FOR i=1 TO l_json.getLength() #遍历1 794 IF l_json.name(i) = "data" THEN 795 LET l_data = l_json.get(l_json.name(i)) #获取到data的jsonArray 796 IF NOT l_data.getLength() > 0 THEN 797 EXIT FOR 798 END IF 799 LET l_json2 = l_data.get(1) #用JsonObject接收JsonArray.get 800 FOR j=1 TO l_json2.getLength() #遍历2 801 IF l_json2.name(j) = p_get THEN 802 LET l_json3 = l_json2.get(l_json2.name(j)) #jsonArray是[]的,json是{}的,注意用哪个来接收 803 LET r_id = l_json3.get("value") 804 EXIT FOR 805 END IF 806 END FOR 807 END IF 808 END FOR 809 RETURN r_id 810 ELSE 811 # 顯示錯誤訊息 812 DISPLAY l_resp 813 RETURN NULL 814 END IF 815 816 817 END FUNCTION 818 819 ################################################################################ 820 # Descriptions...: 描述说明 821 # Memo...........: 822 # Usage..........: CALL s_aooi150_ins (传入参数) 823 # RETURNING 回传参数 824 # Input parameter: 传入参数变量1 传入参数变量说明1 825 # : 传入参数变量2 传入参数变量说明2 826 # Return code....: 回传参数变量1 回传参数变量说明1 827 # : 回传参数变量2 回传参数变量说明2 828 # Date & Author..: 日期 By 作者 829 # Modify.........: 830 ################################################################################ 831 PUBLIC FUNCTION cs_t1client_query(p_token,p_itemType,p_filterString) 832 DEFINE p_token STRING #令牌 833 DEFINE p_itemType STRING #单据类型 834 DEFINE p_filterString STRING #过滤json数据表 835 DEFINE l_url STRING 836 DEFINE l_str STRING 837 DEFINE l_result BOOLEAN 838 DEFINE l_resp STRING # 應用服務回傳XML 839 DEFINE l_json util.JSONObject 840 DEFINE l_data util.JSONArray 841 DEFINE l_json2 util.JSONObject 842 DEFINE i INTEGER 843 DEFINE r_json STRING 844 INITIALIZE r_json TO NULL 845 ### 846 LET l_url = "http://***.***.*.*.***:8080","/apiData/query" 847 848 LET l_str = "token=",p_token,"&itemType=",p_itemType,"&filterString=",p_filterString 849 ### 850 CALL cs_t1client_http_post(l_url,l_str) RETURNING l_result,l_resp 851 852 ### 853 IF l_result=TRUE THEN 854 #解析JSON 855 DISPLAY l_resp 856 LET l_json = util.JSONObject.parse(l_resp) 857 FOR i=1 TO l_json.getLength() #遍历1 858 IF l_json.name(i) = "data" THEN 859 LET l_data = l_json.get(l_json.name(i)) #获取到data的jsonArray 860 IF NOT l_data.getLength() > 0 THEN 861 EXIT FOR 862 END IF 863 LET l_json2 = l_data.get(1) #用JsonObject接收JsonArray.get 864 LET r_json = l_json2.tostring() 865 EXIT FOR 866 END IF 867 END FOR 868 RETURN r_json 869 ELSE 870 # 顯示錯誤訊息 871 DISPLAY l_resp 872 RETURN NULL 873 END IF 874 875 876 END FUNCTION 877 878 ################################################################################ 879 # Descriptions...: 描述说明 880 # Memo...........: 881 # Usage..........: CALL s_aooi150_ins (传入参数) 882 # RETURNING 回传参数 883 # Input parameter: 传入参数变量1 传入参数变量说明1 884 # : 传入参数变量2 传入参数变量说明2 885 # Return code....: 回传参数变量1 回传参数变量说明1 886 # : 回传参数变量2 回传参数变量说明2 887 # Date & Author..: 日期 By 作者 888 # Modify.........: 889 ################################################################################ 890 PUBLIC FUNCTION cs_t1client_update(p_token,p_itemType,p_id,p_dataString) 891 DEFINE p_token STRING #令牌 892 DEFINE p_itemType STRING #单据类型 893 DEFINE p_id STRING #内码ID 894 DEFINE p_dataString STRING #表单JSON数据包 895 896 DEFINE l_url STRING 897 DEFINE l_str STRING 898 DEFINE l_result BOOLEAN 899 DEFINE l_resp STRING # 應用服務回傳XML 900 ### 901 LET l_url = "http://***.***.*.*.***:8080","/apiData/update" 902 903 LET l_str = "token=",p_token,"&itemType=",p_itemType,"&id=",p_id,"&dataString=",p_dataString 904 ### 905 CALL cs_t1client_http_post(l_url,l_str) RETURNING l_result,l_resp 906 ### 907 IF l_result=TRUE THEN 908 DISPLAY l_resp 909 RETURN TRUE 910 ELSE 911 DISPLAY l_resp 912 RETURN FALSE 913 END IF 914 915 END FUNCTION 916 917 ################################################################################ 918 # Descriptions...: 描述说明 919 # Memo...........: 920 # Usage..........: CALL s_aooi150_ins (传入参数) 921 # RETURNING 回传参数 922 # Input parameter: 传入参数变量1 传入参数变量说明1 923 # : 传入参数变量2 传入参数变量说明2 924 # Return code....: 回传参数变量1 回传参数变量说明1 925 # : 回传参数变量2 回传参数变量说明2 926 # Date & Author..: 日期 By 作者 927 # Modify.........: 928 ################################################################################ 929 PUBLIC FUNCTION cs_t1client_get_entryCreate(p_token,p_itemType,p_entryName) 930 DEFINE p_itemType STRING 931 DEFINE p_token STRING 932 DEFINE p_entryName STRING 933 934 DEFINE lb_result BOOLEAN 935 DEFINE ls_resp STRING # 應用服務回傳XML 936 DEFINE ls_url STRING 937 DEFINE r_token STRING 938 DEFINE l_json util.JSONObject 939 940 941 LET ls_url = "http://***.***.*.*.***:8080", 942 "/apiData/getEntryCreate", 943 "?token=",p_token,"&itemType=",p_itemType,"&entryName=",p_entryName,"" 944 DISPLAY "URL=\n" , ls_url , "\n" 945 946 CALL cs_t1client_http_get(ls_url) RETURNING lb_result,ls_resp 947 IF lb_result=TRUE THEN 948 #解析JSON 949 LET l_json = util.JSONObject.parse(ls_resp) 950 CALL cs_t1client_http_prasejsontest(l_json) 951 #CALL cs_t1client_parse_json(ls_resp) RETURNING r_token 952 DISPLAY ls_resp #显示一下回传的JSON 953 DISPLAY ls_resp 954 RETURN ls_resp 955 ELSE 956 # 顯示錯誤訊息 957 DISPLAY ls_resp 958 RETURN 0 959 END IF 960 961 RETURN 0 962 963 END FUNCTION 964 965 ################################################################################ 966 # Descriptions...: 描述说明 967 # Memo...........: 968 # Usage..........: CALL s_aooi150_ins (传入参数) 969 # RETURNING 回传参数 970 # Input parameter: 传入参数变量1 传入参数变量说明1 971 # : 传入参数变量2 传入参数变量说明2 972 # Return code....: 回传参数变量1 回传参数变量说明1 973 # : 回传参数变量2 回传参数变量说明2 974 # Date & Author..: 日期 By 作者 975 # Modify.........: 976 ################################################################################ 977 PUBLIC FUNCTION cs_t1client_getId_fromStr(p_str) 978 ###获取STRING里的内码Id 979 DEFINE p_str STRING 980 ### 981 DEFINE l_json util.JSONObject 982 DEFINE l_json2 util.JSONObject 983 DEFINE i INTEGER 984 DEFINE r_id STRING 985 INITIALIZE r_id TO NULL 986 IF NOT cl_null(p_str) THEN 987 #解析JSON 988 LET l_json = util.JSONObject.parse(p_str) 989 FOR i=1 TO l_json.getLength() #遍历1 990 IF l_json.name(i) = "Id" THEN 991 LET l_json2 = l_json.get(l_json.name(i)) 992 LET r_id = l_json2.get("value") 993 EXIT FOR 994 END IF 995 END FOR 996 RETURN r_id 997 ELSE 998 RETURN NULL 999 END IF 1000 1001 END FUNCTION 1002 1003 ################################################################################ 1004 # Descriptions...: 描述说明 1005 # Memo...........: 1006 # Usage..........: CALL s_aooi150_ins (传入参数) 1007 # RETURNING 回传参数 1008 # Input parameter: 传入参数变量1 传入参数变量说明1 1009 # : 传入参数变量2 传入参数变量说明2 1010 # Return code....: 回传参数变量1 回传参数变量说明1 1011 # : 回传参数变量2 回传参数变量说明2 1012 # Date & Author..: 日期 By 作者 1013 # Modify.........: 1014 ################################################################################ 1015 PUBLIC FUNCTION cs_t1client_getWhat_fromStr(p_str,p_w) 1016 ###获取STRING里的内码Id 1017 DEFINE p_str STRING 1018 DEFINE p_w STRING 1019 ### 1020 DEFINE l_json util.JSONObject 1021 DEFINE l_json2 util.JSONObject 1022 DEFINE i INTEGER 1023 DEFINE r_id STRING 1024 INITIALIZE r_id TO NULL 1025 IF NOT cl_null(p_str) THEN 1026 #解析JSON 1027 LET l_json = util.JSONObject.parse(p_str) 1028 FOR i=1 TO l_json.getLength() #遍历1 1029 IF l_json.name(i) = p_w THEN 1030 LET l_json2 = l_json.get(l_json.name(i)) 1031 LET r_id = l_json2.get("value") 1032 EXIT FOR 1033 END IF 1034 END FOR 1035 RETURN r_id 1036 ELSE 1037 RETURN NULL 1038 END IF 1039 END FUNCTION 1040 1041 ################################################################################ 1042 # Descriptions...: 描述说明 1043 # Memo...........: 1044 # Usage..........: CALL s_aooi150_ins (传入参数) 1045 # RETURNING 回传参数 1046 # Input parameter: 传入参数变量1 传入参数变量说明1 1047 # : 传入参数变量2 传入参数变量说明2 1048 # Return code....: 回传参数变量1 回传参数变量说明1 1049 # : 回传参数变量2 回传参数变量说明2 1050 # Date & Author..: 日期 By 作者 1051 # Modify.........: 1052 ################################################################################ 1053 PUBLIC FUNCTION cs_t1client_getId_fromDropDown(p_token,p_typeId,p_name) 1054 ###从T1 DropDown类型中,根据NAME获取内码ID 1055 DEFINE p_token STRING 1056 DEFINE p_typeId STRING 1057 DEFINE p_name STRING 1058 DEFINE l_url STRING 1059 DEFINE l_str STRING 1060 DEFINE l_result BOOLEAN 1061 DEFINE l_resp STRING # 應用服務回傳XML 1062 DEFINE r_id STRING #返回ID 1063 DEFINE i,k INT 1064 DEFINE l_json util.JSONObject 1065 DEFINE l_data util.JSONArray 1066 DEFINE l_json2 util.JSONObject 1067 ### 1068 LET l_url = "http://***.***.*.*.***:8080","/apiData/getDropDowItems" 1069 ### 1070 LET l_str = "token=",p_token,"&typeId=",p_typeId 1071 ### 1072 CALL cs_t1client_http_post(l_url,l_str) RETURNING l_result,l_resp 1073 ### 1074 IF l_result=TRUE THEN 1075 #解析JSON 1076 DISPLAY l_resp 1077 LET l_json = util.JSONObject.parse(l_resp) 1078 FOR i=1 TO l_json.getLength() #遍历1 1079 IF l_json.name(i) = "data" THEN 1080 LET l_data = l_json.get(l_json.name(i)) #获取到data的jsonArray 1081 IF NOT l_data.getLength() > 0 THEN 1082 EXIT FOR 1083 END IF 1084 FOR k=1 TO l_data.getLength() 1085 LET l_json2 = l_data.get(k) #用JsonObject接收JsonArray.get 1086 IF l_json2.get("name") = p_name THEN 1087 LET r_id = l_json2.get("id") 1088 EXIT FOR 1089 END IF 1090 END FOR 1091 END IF 1092 END FOR 1093 RETURN r_id 1094 ELSE 1095 # 顯示錯誤訊息 1096 DISPLAY l_resp 1097 RETURN NULL 1098 END IF 1099 END FUNCTION 1100 1101 ################################################################################ 1102 # Descriptions...: 描述说明 1103 # Memo...........: 1104 # Usage..........: CALL s_aooi150_ins (传入参数) 1105 # RETURNING 回传参数 1106 # Input parameter: 传入参数变量1 传入参数变量说明1 1107 # : 传入参数变量2 传入参数变量说明2 1108 # Return code....: 回传参数变量1 回传参数变量说明1 1109 # : 回传参数变量2 回传参数变量说明2 1110 # Date & Author..: 日期 By 作者 1111 # Modify.........: 1112 ################################################################################ 1113 PUBLIC FUNCTION cs_t1client_getWhats_byWhat(p_token,p_itemType,p_itemW,p_itemStr,p_get) 1114 ##返回JsonArray的ID集合 1115 DEFINE p_token STRING 1116 DEFINE p_itemType STRING #类型 1117 DEFINE p_itemW STRING #参数 1118 DEFINE p_itemStr STRING #参数值 1119 DEFINE p_get STRING #取值 1120 ## 1121 DEFINE l_url STRING 1122 DEFINE l_wc STRING 1123 DEFINE l_str STRING 1124 ### 1125 DEFINE l_result BOOLEAN 1126 DEFINE l_resp STRING # 應用服務回傳XML 1127 DEFINE l_json util.JSONObject 1128 DEFINE l_data util.JSONArray 1129 DEFINE l_json2 util.JSONObject 1130 DEFINE l_json3 util.JSONObject 1131 DEFINE i,j,k INTEGER 1132 DEFINE r_id STRING 1133 INITIALIZE r_id TO NULL 1134 ### 1135 LET l_url = "http://***.***.*.*.***:8080","/apiData/query" 1136 ### 1137 LET l_wc = "{\"logic\":\"and\",condition :[{\"property\":\"",p_itemW,"\",\"operators\":\"doubleEqual\",\"valueType\":\"string\",\"value\":\"",p_itemStr,"\" }]}" 1138 LET l_str = "token=",p_token,"&itemType=",p_itemType,"&filterString=",l_wc 1139 ### 1140 CALL cs_t1client_http_post(l_url,l_str) RETURNING l_result,l_resp 1141 ### 1142 IF l_result=TRUE THEN 1143 #解析JSON 1144 DISPLAY l_resp 1145 LET l_json = util.JSONObject.parse(l_resp) 1146 FOR i=1 TO l_json.getLength() #遍历1 1147 IF l_json.name(i) = "data" THEN 1148 LET l_data = l_json.get(l_json.name(i)) #获取到data的jsonArray 1149 IF NOT l_data.getLength() > 0 THEN 1150 EXIT FOR 1151 END IF 1152 FOR k=1 TO l_data.getLength() 1153 LET l_json2 = l_data.get(k) #用JsonObject接收JsonArray.get 1154 IF k != 1 THEN 1155 LET r_id = ",",r_id 1156 END IF 1157 FOR j=1 TO l_json2.getLength() #遍历2 1158 IF l_json2.name(j) = p_get THEN 1159 LET l_json3 = l_json2.get(l_json2.name(j)) #jsonArray是[]的,json是{}的,注意用哪个来接收 1160 LET r_id = l_json3.get("value"),r_id 1161 EXIT FOR 1162 END IF 1163 END FOR 1164 END FOR 1165 END IF 1166 END FOR 1167 RETURN r_id 1168 ELSE 1169 # 顯示錯誤訊息 1170 DISPLAY l_resp 1171 RETURN NULL 1172 END IF 1173 END FUNCTION 1174 1175 ################################################################################ 1176 # Descriptions...: 描述说明 1177 # Memo...........: 1178 # Usage..........: CALL s_aooi150_ins (传入参数) 1179 # RETURNING 回传参数 1180 # Input parameter: 传入参数变量1 传入参数变量说明1 1181 # : 传入参数变量2 传入参数变量说明2 1182 # Return code....: 回传参数变量1 回传参数变量说明1 1183 # : 回传参数变量2 回传参数变量说明2 1184 # Date & Author..: 日期 By 作者 1185 # Modify.........: 1186 ################################################################################ 1187 PUBLIC FUNCTION cs_t1client_getIds_byKBillNo(p_token,p_itemType,p_KBillNo) 1188 ##根据T1 采购申请的返回单号,获取内码ID,可能存在多个内码ID,返回JsonArray的ID集合 1189 DEFINE p_token STRING 1190 DEFINE p_KBillNo STRING 1191 DEFINE p_itemType STRING 1192 ## 1193 DEFINE l_url STRING 1194 DEFINE l_wc STRING 1195 DEFINE l_str STRING 1196 ### 1197 DEFINE l_result BOOLEAN 1198 DEFINE l_resp STRING # 應用服務回傳XML 1199 DEFINE l_json util.JSONObject 1200 DEFINE l_data util.JSONArray 1201 DEFINE l_json2 util.JSONObject 1202 DEFINE l_json3 util.JSONObject 1203 DEFINE i,j,k INTEGER 1204 DEFINE r_id STRING 1205 INITIALIZE r_id TO NULL 1206 ### 1207 LET l_url = "http://***.***.*.*.***:8080","/apiData/query" 1208 ### 1209 LET l_wc = "{\"logic\":\"and\",condition :[{\"property\":\"KBillNo\",\"operators\":\"doubleEqual\",\"valueType\":\"string\",\"value\":\"",p_KBillNo,"\" }]}" 1210 LET l_str = "token=",p_token,"&itemType=",p_itemType,"&filterString=",l_wc 1211 ### 1212 CALL cs_t1client_http_post(l_url,l_str) RETURNING l_result,l_resp 1213 ### 1214 IF l_result=TRUE THEN 1215 #解析JSON 1216 DISPLAY l_resp 1217 LET l_json = util.JSONObject.parse(l_resp) 1218 FOR i=1 TO l_json.getLength() #遍历1 1219 IF l_json.name(i) = "data" THEN 1220 LET l_data = l_json.get(l_json.name(i)) #获取到data的jsonArray 1221 IF NOT l_data.getLength() > 0 THEN 1222 EXIT FOR 1223 END IF 1224 FOR k=1 TO l_data.getLength() 1225 LET l_json2 = l_data.get(k) #用JsonObject接收JsonArray.get 1226 IF k != 1 THEN 1227 LET r_id = ",",r_id 1228 END IF 1229 FOR j=1 TO l_json2.getLength() #遍历2 1230 IF l_json2.name(j) = "Id" THEN 1231 LET l_json3 = l_json2.get(l_json2.name(j)) #jsonArray是[]的,json是{}的,注意用哪个来接收 1232 LET r_id = "\"",l_json3.get("value"),"\"",r_id 1233 EXIT FOR 1234 END IF 1235 END FOR 1236 END FOR 1237 END IF 1238 END FOR 1239 IF NOT cl_null(r_id) THEN 1240 LET r_id = "[",r_id,"]" 1241 END IF 1242 RETURN r_id 1243 ELSE 1244 # 顯示錯誤訊息 1245 DISPLAY l_resp 1246 RETURN NULL 1247 END IF 1248 END FUNCTION 1249 1250 ################################################################################ 1251 # Descriptions...: 描述说明 1252 # Memo...........: 1253 # Usage..........: CALL s_aooi150_ins (传入参数) 1254 # RETURNING 回传参数 1255 # Input parameter: 传入参数变量1 传入参数变量说明1 1256 # : 传入参数变量2 传入参数变量说明2 1257 # Return code....: 回传参数变量1 回传参数变量说明1 1258 # : 回传参数变量2 回传参数变量说明2 1259 # Date & Author..: 日期 By 作者 1260 # Modify.........: 1261 ################################################################################ 1262 PUBLIC FUNCTION cs_t1client_getToken() 1263 ###从数据表zztcuc_t中获取TOKEN 1264 DEFINE l_token LIKE zztcuc_t.zztcuc001 1265 DEFINE l_rel BOOLEAN #检测token是否有效 1266 ## 1267 SELECT zztcuc001 INTO l_token FROM zztcuc_t WHERE zztcucent=g_enterprise 1268 IF cl_null(l_token) THEN 1269 # INITIALIZE g_errparam TO NULL 1270 # LET g_errparam.extend = "" 1271 # LET g_errparam.code = 'cwss-00001' #获取令牌失败 1272 # LET g_errparam.popup = FALSE 1273 # CALL cl_err() 1274 RETURN 0 1275 END IF 1276 CALL cs_t1client_checkToken(l_token) RETURNING l_rel 1277 IF l_rel = TRUE THEN 1278 RETURN l_token 1279 ELSE 1280 RETURN 0 1281 END IF 1282 END FUNCTION 1283 1284 ################################################################################ 1285 # Descriptions...: 描述说明 1286 # Memo...........: 1287 # Usage..........: CALL s_aooi150_ins (传入参数) 1288 # RETURNING 回传参数 1289 # Input parameter: 传入参数变量1 传入参数变量说明1 1290 # : 传入参数变量2 传入参数变量说明2 1291 # Return code....: 回传参数变量1 回传参数变量说明1 1292 # : 回传参数变量2 回传参数变量说明2 1293 # Date & Author..: 日期 By 作者 1294 # Modify.........: 1295 ################################################################################ 1296 PUBLIC FUNCTION cs_t1client_checkToken(p_token) 1297 ##检测token是否有效,返回TRUE/FALSE 1298 DEFINE p_token STRING 1299 DEFINE l_url STRING 1300 DEFINE lb_result BOOLEAN 1301 DEFINE ls_resp STRING # 應用服務回傳XML 1302 ### 1303 LET l_url = "http://***.***.*.*.***:8080","/api/checkToken", 1304 "?token=",p_token 1305 CALL cs_t1client_http_posturl(l_url) RETURNING lb_result,ls_resp 1306 ### 1307 IF lb_result=TRUE THEN 1308 #解析JSON 1309 IF NOT cl_null(ls_resp) THEN 1310 IF ls_resp LIKE '%凭证无效%' THEN 1311 DISPLAY ls_resp 1312 RETURN FALSE 1313 ELSE 1314 RETURN TRUE 1315 END IF 1316 ELSE #为空,返回FALSE 1317 DISPLAY ls_resp 1318 RETURN FALSE 1319 END IF 1320 ELSE 1321 # 顯示錯誤訊息 1322 DISPLAY ls_resp 1323 RETURN FALSE 1324 END IF 1325 1326 END FUNCTION 1327 1328 ################################################################################ 1329 # Descriptions...: 描述说明 1330 # Memo...........: 1331 # Usage..........: CALL s_aooi150_ins (传入参数) 1332 # RETURNING 回传参数 1333 # Input parameter: 传入参数变量1 传入参数变量说明1 1334 # : 传入参数变量2 传入参数变量说明2 1335 # Return code....: 回传参数变量1 回传参数变量说明1 1336 # : 回传参数变量2 回传参数变量说明2 1337 # Date & Author..: 日期 By 作者 1338 # Modify.........: 1339 ################################################################################ 1340 PUBLIC FUNCTION cs_t1client_log_insert(p_url,p_str,p_succ,p_rel) 1341 ###记录T1日志,xmtcuc_t 1342 DEFINE p_url LIKE xmtcuc_t.xmtcuc001 1343 DEFINE p_str LIKE xmtcuc_t.xmtcuc002 1344 DEFINE p_succ LIKE xmtcuc_t.xmtcuc003 1345 DEFINE p_rel LIKE xmtcuc_t.xmtcuc004 1346 DEFINE l_docno LIKE xmtcuc_t.xmtcucdocno 1347 DEFINE l_user LIKE xmtcuc_t.xmtcuc005 1348 DEFINE l_time LIKE xmtcuc_t.xmtcuc006 1349 DEFINE 1350 l_date LIKE type_t.chr30, 1351 l_chr LIKE type_t.chr30, 1352 l_verno LIKE type_t.chr30, 1353 l_sql string 1354 1355 ###单号自增 1356 # LET l_date = g_today using 'yyyymmdd' 1357 # LET l_chr = l_date CLIPPED 1358 # 1359 # LET l_sql = "SELECT MAX(SUBSTR(xmtcucdocno,LENGTH(xmtcucdocno)-4,5)) ", 1360 # " FROM xmtcuc_t ", 1361 # " WHERE SUBSTR(xmtcucdocno,1,LENGTH(xmtcucdocno)-5) = '",l_chr,"'" 1362 # PREPARE t101_pr2 FROM l_sql 1363 # EXECUTE t101_pr2 INTO l_verno 1364 # IF SQLCA.sqlcode THEN 1365 # INITIALIZE g_errparam TO NULL 1366 # LET g_errparam.extend = "xmtcuc_t: ",SQLERRMESSAGE 1367 # LET g_errparam.code = SQLCA.sqlcode 1368 # LET g_errparam.popup = TRUE 1369 # CALL cl_err() 1370 # RETURN 1371 # END IF 1372 # 1373 # IF cl_null(l_verno) THEN 1374 # LET l_docno = l_chr,"00001" 1375 # ELSE 1376 # LET l_verno = l_verno + 1 1377 # LET l_docno = l_chr,l_verno USING '&&&&&' 1378 # END IF 1379 1380 ##171114 LJR 单号自增并发多重复出错,采用时间毫秒级做单号 1381 LET l_sql = "select to_char(systimestamp, 'yymmddhh24missff') from dual" 1382 PREPARE t101_pr2 FROM l_sql 1383 EXECUTE t101_pr2 INTO l_verno 1384 IF SQLCA.sqlcode THEN 1385 INITIALIZE g_errparam TO NULL 1386 LET g_errparam.extend = "xmtcuc_t: ",SQLERRMESSAGE 1387 LET g_errparam.code = SQLCA.sqlcode 1388 LET g_errparam.popup = TRUE 1389 CALL cl_err() 1390 RETURN 1391 END IF 1392 LET l_docno = l_verno 1393 1394 1395 ###插入到数据表 1396 LET l_user = g_user 1397 LET l_time = cl_get_current() 1398 1399 CALL s_transaction_begin() 1400 INSERT INTO xmtcuc_t (xmtcucent,xmtcucsite,xmtcucdocno,xmtcuc001,xmtcuc002,xmtcuc003,xmtcuc004,xmtcuc005,xmtcuc006) 1401 VALUES (g_enterprise,g_site,l_docno,p_url,p_str,p_succ,p_rel,l_user,l_time) 1402 IF SQLCA.sqlcode THEN 1403 INITIALIZE g_errparam TO NULL 1404 LET g_errparam.extend = "xmtcuc_t: ",SQLERRMESSAGE 1405 LET g_errparam.code = SQLCA.sqlcode 1406 LET g_errparam.popup = TRUE 1407 CALL s_transaction_end('N','0') 1408 CALL cl_err() 1409 RETURN 1410 END IF 1411 CALL s_transaction_end('Y','0') 1412 1413 END FUNCTION 1414 1415 {
}

 

转载于:https://www.cnblogs.com/xiaoli9627/p/8528201.html

你可能感兴趣的:(json)