PRIVATE FUNCTION cwssp002_process()
#add-point: 服務邏輯主要處理段的ADP
DEFINE l_node xml.DomNode
DEFINE l_node2 xml.DomNode
DEFINE l_cnt1 LIKE type_t.num5
DEFINE l_cnt2 LIKE type_t.num5
DEFINE l_j INTEGER
DEFINE l_i INTEGER
DEFINE l_success LIKE type_t.num5
DEFINE l_pmaa096 LIKE pmaa_t.pmaa096
DEFINE l_pmaa097 LIKE pmaa_t.pmaa097
CALL s_transaction_begin()
LET l_cnt1 = awsp900_01_getMasterRecordLength("xmdk_t")
FOR l_j=1 TO l_cnt1
INITIALIZE g_xmdk_m.* TO NULL
##########一般栏位给值
LET g_xmdk_m.xmdkent = g_enterprise
LET g_xmdk_m.xmdksite = g_site
LET g_xmdk_m.xmdkownid = g_user
LET g_xmdk_m.xmdkowndp = g_dept
LET g_xmdk_m.xmdkcrtid = g_user
LET g_xmdk_m.xmdkcrtdp = g_dept
LET g_xmdk_m.xmdkcrtdt = cl_get_current()
LET g_xmdk_m.xmdkmodid = g_user
LET g_xmdk_m.xmdkmoddt = cl_get_current()
LET g_xmdk_m.xmdkstus = 'N'
LET g_xmdk_m.xmdk000 = '6'
LET g_xmdk_m.xmdkud008 = 'N'
LET g_xmdk_m.xmdkud009 = 'N'
LET g_xmdk_m.xmdkud005 = 'N'
LET g_xmdk_m.xmdk045 = '1'
LET g_xmdk_m.xmdk082 = '1'
LET g_xmdk_m.xmdk014 = 'N'
LET g_xmdk_m.xmdk084 = '1'
LET g_xmdk_m.xmdk042 = '1'
LET g_xmdk_m.xmdk043 = '1'
LET g_xmdk_m.xmdk085 = '1'
LET g_xmdk_m.xmdk046 = '1'
LET g_xmdk_m.xmdk083 = 'N'
LET g_xmdk_m.xmdkud011 = '100'
LET g_xmdk_m.xmdkstus = 'N'
# LET g_xmdk_m.xmdk003 = g_user
# LET g_xmdk_m.xmdk004 = g_dept
LET g_xmdk_m.xmdk030 = '10'
##########
LET l_node = awsp900_01_getMasterRecord(l_j,"xmdk_t")
LET g_xmdk_m.xmdkdocno = awsp900_01_getRecordField(l_node,"xmdkdocno")
LET g_xmdk_m.xmdkdocdt = awsp900_01_getRecordField(l_node,"xmdkdocdt")
LET g_xmdk_m.xmdk001 = g_xmdk_m.xmdkdocdt
LET g_xmdk_m.xmdk007 = awsp900_01_getRecordField(l_node,"xmdk007")
LET g_xmdk_m.xmdk054 = awsp900_01_getRecordField(l_node,"xmdk054")
LET g_xmdk_m.xmdkua001 = awsp900_01_getRecordField(l_node,"xmdkua001")
#
SELECT pmaa096,pmaa097 INTO l_pmaa096,l_pmaa097 FROM pmaa_t WHERE pmaaent = g_enterprise AND pmaa001 = g_xmdk_m.xmdk007
LET g_xmdk_m.xmdk003 = l_pmaa096
LET g_xmdk_m.xmdk004 = l_pmaa097
IF cl_null(g_xmdk_m.xmdk003) THEN
LET g_xmdk_m.xmdk003 = g_user
LET g_xmdk_m.xmdk004 = g_dept
END IF
#
IF NOT s_aooi200_chk_slip(g_site,'',g_xmdk_m.xmdkdocno,'axmt600') THEN #检查单据别
LET g_status.code = "aoo-00291"
LET g_status.sqlcode = 'aoo-00291'
LET g_status.description='单据别:',g_xmdk_m.xmdkdocno,'不存在'
LET l_success = FALSE
CALL s_transaction_end('N','0')
LET l_return.timestamp=cl_get_current()
LET l_return.result=g_xmdk_m.xmdkdocno
CALL awsp900_01_addParameterRecord(util.JSONObject.fromFGL(l_return))
RETURN
END IF
IF NOT cl_null(g_xmdk_m.xmdk007) THEN #检查客户编号是否存在
INITIALIZE g_chkparam.* TO NULL
LET g_chkparam.arg1 = g_xmdk_m.xmdk007
LET g_chkparam.arg2 = g_site
IF NOT cl_chk_exist("v_pmaa001_3") THEN
LET g_status.code = "sub-00416"
LET g_status.sqlcode = "sub-00416"
LET g_status.description = g_xmdk_m.xmdk007
LET l_return.timestamp = cl_get_current()
LET l_return.result = g_xmdk_m.xmdkdocno
CALL awsp900_01_addParameterRecord(util.JSONObject.fromFGL(l_return))
CALL s_transaction_end('N','0')
LET l_success = FALSE
RETURN
END IF
END IF
CALL s_aooi200_gen_docno(g_site,g_xmdk_m.xmdkdocno,g_today,'axmt600') #生成销退单号
RETURNING l_success,g_xmdk_m.xmdkdocno
IF l_success THEN
CALL s_axmt540_client_partner(g_xmdk_m.xmdkdocno,g_xmdk_m.xmdk007,'1') RETURNING g_xmdk_m.xmdk008 #帶出收款客戶
CALL s_axmt540_client_partner(g_xmdk_m.xmdkdocno,g_xmdk_m.xmdk007,'2') RETURNING g_xmdk_m.xmdk009 #帶出收貨客戶
CALL s_axmt540_client_partner(g_xmdk_m.xmdkdocno,g_xmdk_m.xmdk007,'3') RETURNING g_xmdk_m.xmdk202 #帶出發票客戶
CALL cwssp002__xmdk007_default() #帶出客戶預設資料
ELSE
CALL s_transaction_end('N','0')
LET g_status.code = "cwssp002"
LET g_status.sqlcode = "cwssp002"
LET g_status.description= "生成销退单号出错!"
LET l_success = FALSE
LET l_return.timestamp=cl_get_current()
LET l_return.result=g_xmdk_m.xmdkdocno
CALL awsp900_01_addParameterRecord(util.JSONObject.fromFGL(l_return))
RETURN
END IF
INSERT INTO xmdk_t VALUES g_xmdk_m.*
IF SQLCA.sqlcode THEN
LET g_status.code = "cwssp002"
LET g_status.sqlcode = SQLCA.sqlcode
LET g_status.description='INSERT INTO xmdk_t 出错!'
LET l_success = FALSE
CALL s_transaction_end('N','0')
LET l_return.timestamp=cl_get_current()
LET l_return.result=g_xmdk_m.xmdkdocno
CALL awsp900_01_addParameterRecord(util.JSONObject.fromFGL(l_return))
RETURN
END IF
LET l_cnt2 = awsp900_01_getDetailRecordLength(l_node,"xmdl_t") #单身开始
FOR l_i=1 TO l_cnt2
INITIALIZE g_xmdl_d.* TO NULL
LET g_xmdl_d.xmdlent = g_enterprise
LET g_xmdl_d.xmdlsite = g_site
LET g_xmdl_d.xmdl007 = '1'
LET g_xmdl_d.xmdl013 = 'N'
LET g_xmdl_d.xmdl023 = 'Y'
LET g_xmdl_d.xmdl041 = 'N'
#171201 LJR ADD S
LET g_xmdl_d.xmdl025 = g_xmdk_m.xmdk012 #税种
LET g_xmdl_d.xmdl026 = g_xmdk_m.xmdk013 #税率
LET g_xmdl_d.xmdl087 = 'Y' #需自立应收否
LET g_xmdl_d.xmdlud011 = 0 #结算单价
LET g_xmdl_d.xmdlud012 = 0 #结算金额
LET g_xmdl_d.xmdlud013 = 0 #结算未税金额
LET g_xmdl_d.xmdlud014 = 0 #结算税额
#171201 LJR ADD E
LET g_xmdl_d.xmdl038 = 0 #主账套已立账数量
LET g_xmdl_d.xmdl039 = 0 #账套二已立账数量
LET g_xmdl_d.xmdl040 = 0 #账套三已立账数量
LET l_node2 = awsp900_01_getDetailRecord(l_node,l_i,"xmdl_t")
LET g_xmdl_d.xmdlseq = awsp900_01_getRecordField(l_node2,"xmdlseq")
LET g_xmdl_d.xmdlud001 = awsp900_01_getRecordField(l_node2,"xmdlud001")
LET g_xmdl_d.xmdl008 = awsp900_01_getRecordField(l_node2,"xmdl008")
LET g_xmdl_d.xmdl018 = awsp900_01_getRecordField(l_node2,"xmdl018")
LET g_xmdl_d.xmdl051 = awsp900_01_getRecordField(l_node2,"xmdl051")
IF NOT cl_null(g_xmdk_m.xmdkdocno) THEN
LET g_xmdl_d.xmdldocno=g_xmdk_m.xmdkdocno
END IF
IF NOT cwssp002__xmdl008_chk(g_xmdl_d.xmdl008) THEN #料号检测
LET g_status.code = "cwssp002"
LET g_status.sqlcode = SQLCA.sqlcode
LET g_status.description='料号',g_xmdl_d.xmdl008,'检测不通过!'
LET l_success = FALSE
LET l_return.timestamp=cl_get_current()
LET l_return.result=g_xmdk_m.xmdkdocno
CALL s_transaction_end('N','0')
CALL awsp900_01_addParameterRecord(util.JSONObject.fromFGL(l_return))
RETURN
END IF
CALL cwssp002__xmdl008_default() #料号带出其他项
INSERT INTO xmdl_t VALUES g_xmdl_d.*
IF SQLCA.sqlcode THEN
LET g_status.code = "cwssp002"
LET g_status.sqlcode = SQLCA.sqlcode
LET g_status.description='INSERT INTO xmdl_t 出错!'
LET l_success = FALSE
LET l_return.timestamp=cl_get_current()
LET l_return.result=g_xmdk_m.xmdkdocno
CALL s_transaction_end('N','0')
CALL awsp900_01_addParameterRecord(util.JSONObject.fromFGL(l_return))
RETURN
END IF
INITIALIZE g_xmdm_d.* TO NULL #多库储批出货明细
LET g_xmdm_d.xmdment = g_enterprise
LET g_xmdm_d.xmdmsite = g_site
LET g_xmdm_d.xmdmdocno = g_xmdk_m.xmdkdocno
LET g_xmdm_d.xmdmseq = g_xmdl_d.xmdlseq
LET g_xmdm_d.xmdmseq1 = 1
LET g_xmdm_d.xmdm001 = g_xmdl_d.xmdl008
LET g_xmdm_d.xmdm005 = g_xmdl_d.xmdl014
LET g_xmdm_d.xmdm008 = g_xmdl_d.xmdl017
LET g_xmdm_d.xmdm009 = g_xmdl_d.xmdl018
LET g_xmdm_d.xmdm010 = g_xmdl_d.xmdl019
LET g_xmdm_d.xmdm011 = g_xmdl_d.xmdl020
INSERT INTO xmdm_t VALUES g_xmdm_d.*
IF SQLCA.sqlcode THEN
LET g_status.code = "cwssp002"
LET g_status.sqlcode = SQLCA.sqlcode
LET g_status.description='INSERT INTO xmdm_t 出错!'
LET l_success = FALSE
LET l_return.timestamp=cl_get_current()
LET l_return.result=g_xmdk_m.xmdkdocno
CALL s_transaction_end('N','0')
CALL awsp900_01_addParameterRecord(util.JSONObject.fromFGL(l_return))
RETURN
END IF
END FOR
END FOR
IF l_success THEN
LET l_return.timestamp=cl_get_current()
LET l_return.result=g_xmdk_m.xmdkdocno
CALL s_transaction_end('Y','0')
ELSE
LET g_status.code = "wss-00199"
LET g_status.description = "销退单生成出错!"
LET l_return.timestamp=cl_get_current()
CALL s_transaction_end('N','0')
END IF
CALL awsp900_01_addParameterRecord(util.JSONObject.fromFGL(l_return))
#end add-point
END FUNCTION
XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<request type="sync" key="d7cd4a500f2d7563313681298995c97f">
<host prod="XSEB" ver="1.0" ip="xx.xx.xx.xx" lang="zh_CN" timezone="+8" timestamp="20151201131129815" acct="tiptop"/>
<service prod="T100" name="Axmt600Update" srvver="1.0" id="topprd"/>
<datakey type="FOM">
<key name="EntId">60</key>
<key name="CompanyId">D</key>
</datakey>
<payload>
<param key="data" type="XML">
<![CDATA[
<Request>
<RequestContent>
<Document>
<RecordSet id="1">
<Master name="xmdk_t">
<Record>
<Field name="xmdkdocno" value="8901"/>
<Field name="xmdkdocdt" value="2017/12/01"/>
<Field name="xmdk007" value="A0120004"/>
<Field name="xmdk054" value="测试单"/>
<Detail name="xmdl_t">
<Record>
<Field name="xmdlseq" value="1"/>
<Field name="xmdlud001" value="BX057-03"/>
<Field name="xmdl008" value="3151220003"/>
<Field name="xmdl018" value="20"/>
<Field name="xmdl051" value="测试1"/>
</Record>
<Record>
<Field name="xmdlseq" value="2"/>
<Field name="xmdlud001" value="BAA32-4"/>
<Field name="xmdl008" value="3101010001"/>
<Field name="xmdl018" value="10"/>
<Field name="xmdl051" value="测试2"/>
</Record>
</Detail>
</Record>
</Master>
</RecordSet>
</Document>
</RequestContent>
</Request>
]]>
</param>
</payload>
</request>
DEFINE gx_payload_request xml.DomDocument
################################################################################
# Descriptions...: 取得 Request XML <Document> 節點中的單檔筆數個數
# Memo...........:
# Usage..........: CALL awsp900_01_getMasterRecordLength(p_name)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION awsp900_01_getMasterRecordLength(p_name)
DEFINE p_name STRING
DEFINE l_list xml.DomNodeList
DEFINE l_cnt INTEGER
#--------------------------------------------------------------------------#
# 搜尋 <Document> 有多少筆對應的 <Master> 節點 #
#--------------------------------------------------------------------------#
IF cl_null(p_name) THEN
LET l_list = gx_payload_request.selectByXPath("//Document/RecordSet/Master")
ELSE
LET l_list = gx_payload_request.selectByXPath("//Document/RecordSet/Master[@name=\"" || p_name || "\"]","")
END IF
LET l_cnt = l_list.getCount()
RETURN l_cnt
END FUNCTION
################################################################################
# Descriptions...: 取得 Request XML 中指定的單檔節點 Dom Node
# Memo...........:
# Usage..........: CALL awsp900_01_getMasterRecord(p_i,p_name)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION awsp900_01_getMasterRecord(p_i,p_name)
DEFINE p_i INTEGER,
p_name STRING
DEFINE l_list xml.DomNodeList
DEFINE l_i INTEGER
DEFINE l_node xml.DomNode
DEFINE l_list2 xml.DomNodeList
IF cl_null(p_i) OR p_i = 0 THEN
RETURN NULL
END IF
IF cl_null(p_name) THEN
LET l_list = gx_payload_request.selectByXPath("//Document/RecordSet/Master")
ELSE
LET l_list = gx_payload_request.selectByXPath("//Document/RecordSet/Master[@name=\"" || p_name || "\"]", "")
END IF
FOR l_i = 1 TO l_list.getCount()
LET l_node = l_list.getitem(l_i)
IF l_i = p_i THEN
#往下取得 <Record> 節點回傳
LET l_list2 = l_node.getElementsByTagName("Record")
LET l_node = l_list2.getitem(1)
EXIT FOR
END IF
END FOR
RETURN l_node
END FUNCTION
################################################################################
# Descriptions...: 取得 Request XML <Document> 節點中的單身筆數個數
# Memo...........:
# Usage..........: CALL awsp900_01_getDetailRecordLength(p_node,p_name)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION awsp900_01_getDetailRecordLength(p_node,p_name)
DEFINE p_node xml.DomNode,
p_name STRING
DEFINE l_list xml.DomNodeList
DEFINE l_list2 xml.DomNodeList
DEFINE l_node xml.DomNode
DEFINE l_detail xml.DomNode
DEFINE l_i INTEGER
DEFINE l_cnt INTEGER
IF p_node IS NULL THEN
RETURN 0
END IF
LET l_node = p_node.getParentNode() #從 <Record> 取 <Master> 父節點
LET l_node = l_node.getParentNode() #再從 <Master> 取 <RecordSet> 父節點
#--------------------------------------------------------------------------#
# 搜尋 <RecordSet> 有對應的 <Detail> 節點 #
#--------------------------------------------------------------------------#
IF cl_null(p_name) THEN
LET l_list = l_node.selectByXPath("//Detail/Record")
RETURN l_list.getCount()
ELSE
#LET l_list = l_node.selectByXPath("//Detail[@name=\"" || p_name || "\"]/Record" , "")
LET l_list = l_node.getElementsByTagName("Detail")
END IF
FOR l_i = 1 TO l_list.getCount()
LET l_detail = l_list.getitem(l_i)
IF l_detail.getAttribute("name") = p_name THEN
LET l_list2 = l_detail.getElementsByTagName("Record")
RETURN l_list2.getCount()
END IF
END FOR
LET l_cnt = 0 #找不到
RETURN l_cnt
END FUNCTION
################################################################################
# Descriptions...: 取得 Request XML 中指定的單檔節點 Dom Node
# Memo...........:
# Usage..........: CALL awsp900_01_getDetailRecord(p_node,p_i,p_name)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION awsp900_01_getDetailRecord(p_node,p_i,p_name)
DEFINE p_node xml.DomNode,
p_i INTEGER,
p_name STRING
DEFINE l_list xml.DomNodeList
DEFINE l_list2 xml.DomNodeList
DEFINE l_node xml.DomNode
DEFINE l_node2 xml.DomNode
DEFINE l_detail xml.DomNode
DEFINE l_i INTEGER
IF p_node IS NULL THEN
RETURN 0
END IF
LET l_node = p_node.getParentNode() #從 <Record> 取 <Master> 父節點
LET l_node = l_node.getParentNode() #再從 <Master> 取 <RecordSet> 父節點
#--------------------------------------------------------------------------#
# 搜尋 <RecordSet> 有對應的 <Detail> 節點 #
#--------------------------------------------------------------------------#
IF cl_null(p_name) THEN
LET l_list = l_node.selectByXPath("//Detail/Record")
ELSE
#LET l_list = l_node.selectByXPath("//Detail[@name=\"" || p_name || "\"]/Record" , "")
LET l_list = l_node.getElementsByTagName("Detail")
END IF
FOR l_i = 1 TO l_list.getCount()
LET l_detail = l_list.getitem(l_i)
IF l_detail.getAttribute("name") = p_name THEN
LET l_list2 = l_detail.getElementsByTagName("Record")
LET l_node2 = l_list2.getitem(p_i) #取出指定的Record
EXIT FOR
END IF
#LET l_node2 = l_list.getitem(l_i)
#----------------------------------------------------------------------#
# 若搜尋的單身 <Record> 節點順序與呼叫時傳入的值相同時 #
#----------------------------------------------------------------------#
#IF l_i = p_i THEN
# EXIT FOR
#END IF
END FOR
RETURN l_node2
END FUNCTION
################################################################################
# Descriptions...: 取得指定的 單頭 / 單身 節點中的欄位值
# Memo...........:
# Usage..........: CALL awsp900_01_getRecordField(p_node,p_name)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION awsp900_01_getRecordField(p_node,p_name)
DEFINE p_node xml.DomNode,
p_name STRING
DEFINE l_value STRING
DEFINE l_list xml.DomNodeList
DEFINE l_node xml.DomNode
DEFINE l_i LIKE type_t.num10
DEFINE l_name STRING
IF p_node IS NULL OR cl_null(p_name) THEN
RETURN NULL
END IF
#--------------------------------------------------------------------------#
# 接著尋找是否為對應名稱的 <Field> 欄位 #
#--------------------------------------------------------------------------#
#LET l_list = p_node.selectByXPath("//Field[@name=\"" || p_name || "\"]" ,"")
#IF l_list.getCount() != 0 THEN #找的到節點才取值
# LET l_node = l_list.getitem(1)
# LET l_value = l_node.getAttribute("value")
#END IF
LET l_list = p_node.getElementsByTagName("Field")
IF l_list.getCount() > 0 THEN #找的到節點才取值
FOR l_i = 1 TO l_list.getCount()
LET l_node = l_list.getitem(l_i)
LET l_name = l_node.getAttribute("name")
IF l_name = p_name THEN
LET l_value = l_node.getAttribute("value")
EXIT FOR
END IF
END FOR
END IF
RETURN l_value
END FUNCTION
################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL awsp900_01_addParameterRecord(p_json_record)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION awsp900_01_addParameterRecord(p_json_record)
DEFINE p_json_record util.JSONObject
WHENEVER ERROR CONTINUE
IF p_json_record.getLength() = 0 THEN
display "json length: 0"
RETURN NULL
END IF
CALL awsp900_01_buildRecord(g_pnode, p_json_record) #依照傳入的資料新增回傳參數資料
END FUNCTION
DEFINE g_resdoc xml.DomDocument #Response XML Dom Document, #FUN-910058
################################################################################
# Descriptions...: 描述说明
# Memo...........:
# Usage..........: CALL awsp900_01_buildRecord(p_node, p_json_record)
# RETURNING 回传参数
# Input parameter: 传入参数变量1 传入参数变量说明1
# : 传入参数变量2 传入参数变量说明2
# Return code....: 回传参数变量1 回传参数变量说明1
# : 回传参数变量2 回传参数变量说明2
# Date & Author..: 日期 By 作者
# Modify.........:
################################################################################
PUBLIC FUNCTION awsp900_01_buildRecord(p_node,p_json_record)
DEFINE p_node xml.DomNode
DEFINE p_json_record util.JSONObject
#DEFINE l_list1 xml.DomNodeList,
# l_list2 xml.DomNodeList
DEFINE l_node xml.DomNode,
l_child xml.DomNode,
l_record xml.DomNode,
l_field xml.DomNode
DEFINE l_i INTEGER,
l_j INTEGER
DEFINE l_name STRING,
l_value STRING
DEFINE l_k INTEGER #FUN-D80090
LET l_node = g_resdoc.createElement("Record") #於 <Master> / <Detail> / <Parameter>下建立 <Record> 節點
CALL p_node.appendChild(l_node)
FOR l_i = 1 TO p_json_record.getLength()
INITIALIZE l_name TO NULL
INITIALIZE l_value TO NULL
#取得欄位名稱和欄位值
LET l_name = p_json_record.name(l_i)
LET l_value = p_json_record.get(p_json_record.name(l_i))
LET l_child = g_resdoc.createElement("Field") #於 <Record> 下建立 <Field> 節點
CALL l_node.appendChild(l_child)
CALL l_child.setAttribute("name", l_name)
CALL l_child.setAttribute("value", l_value)
END FOR
END FUNCTION
转载请注明:赫非域 » T100——XML接口代码记录