{"id":5246,"date":"2019-08-25T11:15:12","date_gmt":"2019-08-25T03:15:12","guid":{"rendered":"http:\/\/www.hefeiyu.com\/?p=5246"},"modified":"2019-08-22T11:17:13","modified_gmt":"2019-08-22T03:17:13","slug":"t100-xml%e6%8e%a5%e5%8f%a3%e4%bb%a3%e7%a0%81%e8%ae%b0%e5%bd%95","status":"publish","type":"post","link":"https:\/\/www.hefeiyu.com\/?p=5246","title":{"rendered":"T100\u2014\u2014XML\u63a5\u53e3\u4ee3\u7801\u8bb0\u5f55"},"content":{"rendered":"<pre class=\"pure-highlightjs\"><code class=\"null\">PRIVATE FUNCTION cwssp002_process()\r\n   #add-point: \u670d\u52d9\u908f\u8f2f\u4e3b\u8981\u8655\u7406\u6bb5\u7684ADP\r\n    DEFINE l_node xml.DomNode\r\n    DEFINE l_node2 xml.DomNode\r\n    DEFINE l_cnt1      LIKE type_t.num5\r\n    DEFINE l_cnt2      LIKE type_t.num5\r\n    DEFINE l_j    INTEGER\r\n    DEFINE l_i    INTEGER\r\n    DEFINE l_success   LIKE type_t.num5\r\n    \r\n    DEFINE l_pmaa096 LIKE pmaa_t.pmaa096\r\n    DEFINE l_pmaa097 LIKE pmaa_t.pmaa097\r\n    \r\n    CALL s_transaction_begin()\r\n    LET l_cnt1 = awsp900_01_getMasterRecordLength(\"xmdk_t\")\r\n    FOR l_j=1 TO l_cnt1\r\n        INITIALIZE g_xmdk_m.* TO NULL\r\n        ##########\u4e00\u822c\u680f\u4f4d\u7ed9\u503c\r\n        LET g_xmdk_m.xmdkent = g_enterprise\r\n        LET g_xmdk_m.xmdksite = g_site        \r\n        LET g_xmdk_m.xmdkownid = g_user\r\n        LET g_xmdk_m.xmdkowndp = g_dept\r\n        LET g_xmdk_m.xmdkcrtid = g_user\r\n        LET g_xmdk_m.xmdkcrtdp = g_dept \r\n        LET g_xmdk_m.xmdkcrtdt = cl_get_current()\r\n        LET g_xmdk_m.xmdkmodid = g_user\r\n        LET g_xmdk_m.xmdkmoddt = cl_get_current()\r\n        LET g_xmdk_m.xmdkstus = 'N'\r\n        LET g_xmdk_m.xmdk000 = '6'\r\n        LET g_xmdk_m.xmdkud008 = 'N'\r\n        LET g_xmdk_m.xmdkud009 = 'N'\r\n        LET g_xmdk_m.xmdkud005 = 'N'\r\n        LET g_xmdk_m.xmdk045 = '1'\r\n        LET g_xmdk_m.xmdk082 = '1'\r\n        LET g_xmdk_m.xmdk014 = 'N'\r\n        LET g_xmdk_m.xmdk084 = '1'\r\n        LET g_xmdk_m.xmdk042 = '1'\r\n        LET g_xmdk_m.xmdk043 = '1'\r\n        LET g_xmdk_m.xmdk085 = '1'\r\n        LET g_xmdk_m.xmdk046 = '1'\r\n        LET g_xmdk_m.xmdk083 = 'N'\r\n        LET g_xmdk_m.xmdkud011 = '100'\r\n        LET g_xmdk_m.xmdkstus = 'N'\r\n#        LET g_xmdk_m.xmdk003 = g_user\r\n#        LET g_xmdk_m.xmdk004 = g_dept\r\n        LET g_xmdk_m.xmdk030 = '10'\r\n        ##########\r\n        LET l_node = awsp900_01_getMasterRecord(l_j,\"xmdk_t\")\r\n        LET g_xmdk_m.xmdkdocno = awsp900_01_getRecordField(l_node,\"xmdkdocno\")\r\n        LET g_xmdk_m.xmdkdocdt = awsp900_01_getRecordField(l_node,\"xmdkdocdt\")\r\n        LET g_xmdk_m.xmdk001 = g_xmdk_m.xmdkdocdt\r\n        LET g_xmdk_m.xmdk007 = awsp900_01_getRecordField(l_node,\"xmdk007\")\r\n        LET g_xmdk_m.xmdk054 = awsp900_01_getRecordField(l_node,\"xmdk054\")\r\n        LET g_xmdk_m.xmdkua001 = awsp900_01_getRecordField(l_node,\"xmdkua001\")\r\n        #\r\n        SELECT pmaa096,pmaa097 INTO l_pmaa096,l_pmaa097 FROM pmaa_t WHERE pmaaent = g_enterprise AND pmaa001 = g_xmdk_m.xmdk007\r\n        LET g_xmdk_m.xmdk003 = l_pmaa096\r\n        LET g_xmdk_m.xmdk004 = l_pmaa097\r\n        IF cl_null(g_xmdk_m.xmdk003) THEN\r\n            LET g_xmdk_m.xmdk003 = g_user\r\n            LET g_xmdk_m.xmdk004 = g_dept\r\n        END IF\r\n        #\r\n        IF NOT s_aooi200_chk_slip(g_site,'',g_xmdk_m.xmdkdocno,'axmt600') THEN   #\u68c0\u67e5\u5355\u636e\u522b\r\n            LET g_status.code = \"aoo-00291\"\r\n            LET g_status.sqlcode = 'aoo-00291'\r\n            LET g_status.description='\u5355\u636e\u522b\uff1a',g_xmdk_m.xmdkdocno,'\u4e0d\u5b58\u5728'\r\n            LET l_success = FALSE\r\n            CALL s_transaction_end('N','0')\r\n            LET l_return.timestamp=cl_get_current()    \r\n            LET l_return.result=g_xmdk_m.xmdkdocno\r\n            CALL awsp900_01_addParameterRecord(util.JSONObject.fromFGL(l_return))\r\n            RETURN                                       \r\n        END IF\r\n        \r\n        IF NOT cl_null(g_xmdk_m.xmdk007) THEN   #\u68c0\u67e5\u5ba2\u6237\u7f16\u53f7\u662f\u5426\u5b58\u5728\r\n            INITIALIZE g_chkparam.* TO NULL\r\n            LET g_chkparam.arg1 = g_xmdk_m.xmdk007\r\n            LET g_chkparam.arg2 = g_site\r\n            IF NOT cl_chk_exist(\"v_pmaa001_3\") THEN\r\n                LET g_status.code = \"sub-00416\"\r\n                LET g_status.sqlcode = \"sub-00416\"\r\n                LET g_status.description = g_xmdk_m.xmdk007\r\n                LET l_return.timestamp = cl_get_current()    \r\n                LET l_return.result = g_xmdk_m.xmdkdocno\r\n                CALL awsp900_01_addParameterRecord(util.JSONObject.fromFGL(l_return))\r\n                CALL s_transaction_end('N','0')   \r\n                LET l_success = FALSE\r\n                RETURN                 \r\n            END IF \r\n        END IF\r\n        \r\n        CALL s_aooi200_gen_docno(g_site,g_xmdk_m.xmdkdocno,g_today,'axmt600')   #\u751f\u6210\u9500\u9000\u5355\u53f7\r\n            RETURNING l_success,g_xmdk_m.xmdkdocno\r\n        \r\n        IF l_success THEN\r\n            CALL s_axmt540_client_partner(g_xmdk_m.xmdkdocno,g_xmdk_m.xmdk007,'1') RETURNING g_xmdk_m.xmdk008   #\u5e36\u51fa\u6536\u6b3e\u5ba2\u6236\r\n            CALL s_axmt540_client_partner(g_xmdk_m.xmdkdocno,g_xmdk_m.xmdk007,'2') RETURNING g_xmdk_m.xmdk009   #\u5e36\u51fa\u6536\u8ca8\u5ba2\u6236\r\n            CALL s_axmt540_client_partner(g_xmdk_m.xmdkdocno,g_xmdk_m.xmdk007,'3') RETURNING g_xmdk_m.xmdk202   #\u5e36\u51fa\u767c\u7968\u5ba2\u6236\r\n            CALL cwssp002__xmdk007_default()        #\u5e36\u51fa\u5ba2\u6236\u9810\u8a2d\u8cc7\u6599\r\n        ELSE\r\n            CALL s_transaction_end('N','0')\r\n            LET g_status.code = \"cwssp002\"\r\n            LET g_status.sqlcode = \"cwssp002\"\r\n            LET g_status.description= \"\u751f\u6210\u9500\u9000\u5355\u53f7\u51fa\u9519\uff01\"\r\n            LET l_success = FALSE     \r\n            LET l_return.timestamp=cl_get_current()    \r\n            LET l_return.result=g_xmdk_m.xmdkdocno\r\n            CALL awsp900_01_addParameterRecord(util.JSONObject.fromFGL(l_return))\r\n            RETURN\r\n        END IF\r\n        \r\n        INSERT INTO xmdk_t VALUES  g_xmdk_m.*\r\n        \r\n        IF SQLCA.sqlcode THEN\r\n            LET g_status.code = \"cwssp002\"\r\n            LET g_status.sqlcode = SQLCA.sqlcode\r\n            LET g_status.description='INSERT INTO xmdk_t \u51fa\u9519\uff01'\r\n            LET l_success = FALSE\r\n            CALL s_transaction_end('N','0')        \r\n            LET l_return.timestamp=cl_get_current()    \r\n            LET l_return.result=g_xmdk_m.xmdkdocno\r\n            CALL awsp900_01_addParameterRecord(util.JSONObject.fromFGL(l_return))\r\n            RETURN\r\n        END IF\r\n        \r\n        LET l_cnt2 = awsp900_01_getDetailRecordLength(l_node,\"xmdl_t\")      #\u5355\u8eab\u5f00\u59cb\r\n        FOR l_i=1 TO l_cnt2\r\n            INITIALIZE g_xmdl_d.* TO NULL\r\n            LET g_xmdl_d.xmdlent = g_enterprise\r\n            LET g_xmdl_d.xmdlsite = g_site\r\n            LET g_xmdl_d.xmdl007 = '1'\r\n            LET g_xmdl_d.xmdl013 = 'N'\r\n            LET g_xmdl_d.xmdl023 = 'Y'\r\n            LET g_xmdl_d.xmdl041 = 'N'\r\n            #171201 LJR ADD S\r\n            LET g_xmdl_d.xmdl025 = g_xmdk_m.xmdk012     #\u7a0e\u79cd        \r\n            LET g_xmdl_d.xmdl026 = g_xmdk_m.xmdk013     #\u7a0e\u7387\r\n            LET g_xmdl_d.xmdl087 = 'Y'  #\u9700\u81ea\u7acb\u5e94\u6536\u5426\r\n            LET g_xmdl_d.xmdlud011 = 0  #\u7ed3\u7b97\u5355\u4ef7\r\n            LET g_xmdl_d.xmdlud012 = 0      #\u7ed3\u7b97\u91d1\u989d\r\n            LET g_xmdl_d.xmdlud013 = 0      #\u7ed3\u7b97\u672a\u7a0e\u91d1\u989d\r\n            LET g_xmdl_d.xmdlud014 = 0      #\u7ed3\u7b97\u7a0e\u989d\r\n            #171201 LJR ADD E\r\n            \r\n            LET g_xmdl_d.xmdl038 = 0      #\u4e3b\u8d26\u5957\u5df2\u7acb\u8d26\u6570\u91cf\r\n            LET g_xmdl_d.xmdl039 = 0      #\u8d26\u5957\u4e8c\u5df2\u7acb\u8d26\u6570\u91cf\r\n            LET g_xmdl_d.xmdl040 = 0      #\u8d26\u5957\u4e09\u5df2\u7acb\u8d26\u6570\u91cf\r\n            \r\n            LET l_node2 = awsp900_01_getDetailRecord(l_node,l_i,\"xmdl_t\")\r\n            LET g_xmdl_d.xmdlseq = awsp900_01_getRecordField(l_node2,\"xmdlseq\")\r\n            LET g_xmdl_d.xmdlud001 = awsp900_01_getRecordField(l_node2,\"xmdlud001\")\r\n            LET g_xmdl_d.xmdl008 = awsp900_01_getRecordField(l_node2,\"xmdl008\")\r\n            LET g_xmdl_d.xmdl018 = awsp900_01_getRecordField(l_node2,\"xmdl018\")\r\n            LET g_xmdl_d.xmdl051 = awsp900_01_getRecordField(l_node2,\"xmdl051\")\r\n            IF NOT cl_null(g_xmdk_m.xmdkdocno) THEN \r\n                LET g_xmdl_d.xmdldocno=g_xmdk_m.xmdkdocno\r\n            END IF\r\n            \r\n            IF NOT cwssp002__xmdl008_chk(g_xmdl_d.xmdl008) THEN  #\u6599\u53f7\u68c0\u6d4b\r\n                LET g_status.code = \"cwssp002\"\r\n                LET g_status.sqlcode = SQLCA.sqlcode\r\n                LET g_status.description='\u6599\u53f7',g_xmdl_d.xmdl008,'\u68c0\u6d4b\u4e0d\u901a\u8fc7\uff01'\r\n                LET l_success = FALSE\r\n                LET l_return.timestamp=cl_get_current()    \r\n                LET l_return.result=g_xmdk_m.xmdkdocno\r\n                CALL s_transaction_end('N','0')\r\n                CALL awsp900_01_addParameterRecord(util.JSONObject.fromFGL(l_return))\r\n                RETURN\r\n            END IF\r\n            \r\n            CALL cwssp002__xmdl008_default()    #\u6599\u53f7\u5e26\u51fa\u5176\u4ed6\u9879\r\n\r\n            INSERT INTO xmdl_t VALUES  g_xmdl_d.*\r\n            \r\n            IF SQLCA.sqlcode THEN\r\n                LET g_status.code = \"cwssp002\"\r\n                LET g_status.sqlcode = SQLCA.sqlcode\r\n                LET g_status.description='INSERT INTO xmdl_t \u51fa\u9519\uff01'\r\n                LET l_success = FALSE\r\n                LET l_return.timestamp=cl_get_current()    \r\n                LET l_return.result=g_xmdk_m.xmdkdocno\r\n                CALL s_transaction_end('N','0')\r\n                CALL awsp900_01_addParameterRecord(util.JSONObject.fromFGL(l_return))\r\n                RETURN\r\n            END IF\r\n            \r\n            INITIALIZE g_xmdm_d.* TO NULL   #\u591a\u5e93\u50a8\u6279\u51fa\u8d27\u660e\u7ec6\r\n            LET g_xmdm_d.xmdment = g_enterprise\r\n            LET g_xmdm_d.xmdmsite = g_site\r\n            LET g_xmdm_d.xmdmdocno = g_xmdk_m.xmdkdocno\r\n            LET g_xmdm_d.xmdmseq = g_xmdl_d.xmdlseq\r\n            LET g_xmdm_d.xmdmseq1 = 1\r\n            LET g_xmdm_d.xmdm001 = g_xmdl_d.xmdl008\r\n            LET g_xmdm_d.xmdm005 = g_xmdl_d.xmdl014\r\n            LET g_xmdm_d.xmdm008 = g_xmdl_d.xmdl017\r\n            LET g_xmdm_d.xmdm009 = g_xmdl_d.xmdl018\r\n            LET g_xmdm_d.xmdm010 = g_xmdl_d.xmdl019\r\n            LET g_xmdm_d.xmdm011 = g_xmdl_d.xmdl020\r\n            \r\n            INSERT INTO xmdm_t VALUES  g_xmdm_d.*\r\n            \r\n            IF SQLCA.sqlcode THEN\r\n                LET g_status.code = \"cwssp002\"\r\n                LET g_status.sqlcode = SQLCA.sqlcode\r\n                LET g_status.description='INSERT INTO xmdm_t \u51fa\u9519\uff01'\r\n                LET l_success = FALSE\r\n                LET l_return.timestamp=cl_get_current()    \r\n                LET l_return.result=g_xmdk_m.xmdkdocno\r\n                CALL s_transaction_end('N','0')\r\n                CALL awsp900_01_addParameterRecord(util.JSONObject.fromFGL(l_return))\r\n                RETURN\r\n            END IF\r\n             \r\n        END FOR\r\n        \r\n    END FOR\r\n    \r\n    IF l_success THEN\r\n        LET l_return.timestamp=cl_get_current()   \r\n        LET l_return.result=g_xmdk_m.xmdkdocno\r\n        CALL s_transaction_end('Y','0')\r\n    ELSE\r\n        LET g_status.code = \"wss-00199\"\r\n        LET g_status.description = \"\u9500\u9000\u5355\u751f\u6210\u51fa\u9519\uff01\"  \r\n        LET l_return.timestamp=cl_get_current()    \r\n        CALL s_transaction_end('N','0')        \r\n    END IF\r\n    CALL awsp900_01_addParameterRecord(util.JSONObject.fromFGL(l_return))\r\n   \r\n   #end add-point\r\nEND FUNCTION<\/code><\/pre>\n<p>XML<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"null\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?&gt;\r\n&lt;request type=\"sync\" key=\"d7cd4a500f2d7563313681298995c97f\"&gt;\r\n    &lt;host prod=\"XSEB\" ver=\"1.0\" ip=\"xx.xx.xx.xx\" lang=\"zh_CN\" timezone=\"+8\" timestamp=\"20151201131129815\" acct=\"tiptop\"\/&gt;\r\n    &lt;service prod=\"T100\" name=\"Axmt600Update\" srvver=\"1.0\" id=\"topprd\"\/&gt;\r\n    &lt;datakey type=\"FOM\"&gt;\r\n        &lt;key name=\"EntId\"&gt;60&lt;\/key&gt;\r\n        &lt;key name=\"CompanyId\"&gt;D&lt;\/key&gt;\r\n    &lt;\/datakey&gt;\r\n    &lt;payload&gt;\r\n        &lt;param key=\"data\" type=\"XML\"&gt;\r\n        &lt;![CDATA[\r\n         &lt;Request&gt;\r\n            &lt;RequestContent&gt;\r\n               &lt;Document&gt;\r\n                  &lt;RecordSet id=\"1\"&gt;\r\n                     &lt;Master name=\"xmdk_t\"&gt;\r\n                        &lt;Record&gt;\r\n                           &lt;Field name=\"xmdkdocno\" value=\"8901\"\/&gt;\r\n                           &lt;Field name=\"xmdkdocdt\" value=\"2017\/12\/01\"\/&gt;\r\n                           &lt;Field name=\"xmdk007\" value=\"A0120004\"\/&gt;\r\n                           &lt;Field name=\"xmdk054\" value=\"\u6d4b\u8bd5\u5355\"\/&gt;\r\n                           &lt;Detail name=\"xmdl_t\"&gt;\r\n                              &lt;Record&gt;\r\n                                 &lt;Field name=\"xmdlseq\" value=\"1\"\/&gt;\r\n                                 &lt;Field name=\"xmdlud001\" value=\"BX057-03\"\/&gt;\r\n                                 &lt;Field name=\"xmdl008\" value=\"3151220003\"\/&gt;\r\n                                 &lt;Field name=\"xmdl018\" value=\"20\"\/&gt;\r\n                                 &lt;Field name=\"xmdl051\" value=\"\u6d4b\u8bd51\"\/&gt;\r\n                              &lt;\/Record&gt;\r\n                             &lt;Record&gt;\r\n                                 &lt;Field name=\"xmdlseq\" value=\"2\"\/&gt;\r\n                                 &lt;Field name=\"xmdlud001\" value=\"BAA32-4\"\/&gt;\r\n                                 &lt;Field name=\"xmdl008\" value=\"3101010001\"\/&gt;\r\n                                 &lt;Field name=\"xmdl018\" value=\"10\"\/&gt;\r\n                                 &lt;Field name=\"xmdl051\" value=\"\u6d4b\u8bd52\"\/&gt;\r\n                              &lt;\/Record&gt;\r\n                           &lt;\/Detail&gt;\r\n                        &lt;\/Record&gt;\r\n                     &lt;\/Master&gt;\r\n                 &lt;\/RecordSet&gt;\r\n             &lt;\/Document&gt;\r\n         &lt;\/RequestContent&gt;\r\n      &lt;\/Request&gt;\r\n      ]]&gt;\r\n     &lt;\/param&gt;\r\n    &lt;\/payload&gt;\r\n&lt;\/request&gt;<\/code><\/pre>\n<p>DEFINE\u00a0gx_payload_request\u00a0\u00a0xml.DomDocument<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"null\">################################################################################\r\n# Descriptions...: \u53d6\u5f97 Request XML &lt;Document&gt; \u7bc0\u9ede\u4e2d\u7684\u55ae\u6a94\u7b46\u6578\u500b\u6578\r\n# Memo...........:\r\n# Usage..........: CALL awsp900_01_getMasterRecordLength(p_name)\r\n#                  RETURNING \u56de\u4f20\u53c2\u6570\r\n# Input parameter: \u4f20\u5165\u53c2\u6570\u53d8\u91cf1   \u4f20\u5165\u53c2\u6570\u53d8\u91cf\u8bf4\u660e1\r\n#                : \u4f20\u5165\u53c2\u6570\u53d8\u91cf2   \u4f20\u5165\u53c2\u6570\u53d8\u91cf\u8bf4\u660e2\r\n# Return code....: \u56de\u4f20\u53c2\u6570\u53d8\u91cf1   \u56de\u4f20\u53c2\u6570\u53d8\u91cf\u8bf4\u660e1\r\n#                : \u56de\u4f20\u53c2\u6570\u53d8\u91cf2   \u56de\u4f20\u53c2\u6570\u53d8\u91cf\u8bf4\u660e2\r\n# Date &amp; Author..: \u65e5\u671f By \u4f5c\u8005\r\n# Modify.........:\r\n################################################################################\r\nPUBLIC FUNCTION awsp900_01_getMasterRecordLength(p_name)\r\n    DEFINE p_name   STRING\r\n    DEFINE l_list   xml.DomNodeList\r\n    DEFINE l_cnt    INTEGER\r\n\r\n\r\n    #--------------------------------------------------------------------------#\r\n    # \u641c\u5c0b &lt;Document&gt; \u6709\u591a\u5c11\u7b46\u5c0d\u61c9\u7684 &lt;Master&gt; \u7bc0\u9ede                             #\r\n    #--------------------------------------------------------------------------#\r\n    IF cl_null(p_name) THEN\r\n       LET l_list = gx_payload_request.selectByXPath(\"\/\/Document\/RecordSet\/Master\")\r\n    ELSE\r\n       LET l_list = gx_payload_request.selectByXPath(\"\/\/Document\/RecordSet\/Master[@name=\\\"\" || p_name || \"\\\"]\",\"\")  \r\n    END IF\r\n\r\n    LET l_cnt = l_list.getCount()\r\n    RETURN l_cnt\r\nEND FUNCTION<\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"null\">################################################################################\r\n# Descriptions...: \u53d6\u5f97 Request XML \u4e2d\u6307\u5b9a\u7684\u55ae\u6a94\u7bc0\u9ede Dom Node\r\n# Memo...........:\r\n# Usage..........: CALL awsp900_01_getMasterRecord(p_i,p_name)\r\n#                  RETURNING \u56de\u4f20\u53c2\u6570\r\n# Input parameter: \u4f20\u5165\u53c2\u6570\u53d8\u91cf1   \u4f20\u5165\u53c2\u6570\u53d8\u91cf\u8bf4\u660e1\r\n#                : \u4f20\u5165\u53c2\u6570\u53d8\u91cf2   \u4f20\u5165\u53c2\u6570\u53d8\u91cf\u8bf4\u660e2\r\n# Return code....: \u56de\u4f20\u53c2\u6570\u53d8\u91cf1   \u56de\u4f20\u53c2\u6570\u53d8\u91cf\u8bf4\u660e1\r\n#                : \u56de\u4f20\u53c2\u6570\u53d8\u91cf2   \u56de\u4f20\u53c2\u6570\u53d8\u91cf\u8bf4\u660e2\r\n# Date &amp; Author..: \u65e5\u671f By \u4f5c\u8005\r\n# Modify.........:\r\n################################################################################\r\nPUBLIC FUNCTION awsp900_01_getMasterRecord(p_i,p_name)\r\n    DEFINE p_i      INTEGER,\r\n           p_name   STRING\r\n    DEFINE l_list   xml.DomNodeList\r\n    DEFINE l_i      INTEGER\r\n    DEFINE l_node   xml.DomNode    \r\n    DEFINE l_list2  xml.DomNodeList\r\n\r\n    IF cl_null(p_i) OR p_i = 0 THEN\r\n       RETURN NULL\r\n    END IF\r\n\r\n    IF cl_null(p_name) THEN\r\n       LET l_list = gx_payload_request.selectByXPath(\"\/\/Document\/RecordSet\/Master\")\r\n    ELSE\r\n       LET l_list = gx_payload_request.selectByXPath(\"\/\/Document\/RecordSet\/Master[@name=\\\"\" || p_name || \"\\\"]\", \"\") \r\n    END IF\r\n\r\n    FOR l_i = 1 TO l_list.getCount()\r\n        LET l_node = l_list.getitem(l_i)\r\n        IF l_i = p_i THEN\r\n           #\u5f80\u4e0b\u53d6\u5f97 &lt;Record&gt; \u7bc0\u9ede\u56de\u50b3\r\n           LET l_list2 = l_node.getElementsByTagName(\"Record\")\r\n           LET l_node = l_list2.getitem(1)\r\n           EXIT FOR\r\n        END IF\r\n    END FOR\r\n\r\n    RETURN l_node\r\nEND FUNCTION<\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"null\">################################################################################\r\n# Descriptions...: \u53d6\u5f97 Request XML &lt;Document&gt; \u7bc0\u9ede\u4e2d\u7684\u55ae\u8eab\u7b46\u6578\u500b\u6578\r\n# Memo...........:\r\n# Usage..........: CALL awsp900_01_getDetailRecordLength(p_node,p_name)\r\n#                  RETURNING \u56de\u4f20\u53c2\u6570\r\n# Input parameter: \u4f20\u5165\u53c2\u6570\u53d8\u91cf1   \u4f20\u5165\u53c2\u6570\u53d8\u91cf\u8bf4\u660e1\r\n#                : \u4f20\u5165\u53c2\u6570\u53d8\u91cf2   \u4f20\u5165\u53c2\u6570\u53d8\u91cf\u8bf4\u660e2\r\n# Return code....: \u56de\u4f20\u53c2\u6570\u53d8\u91cf1   \u56de\u4f20\u53c2\u6570\u53d8\u91cf\u8bf4\u660e1\r\n#                : \u56de\u4f20\u53c2\u6570\u53d8\u91cf2   \u56de\u4f20\u53c2\u6570\u53d8\u91cf\u8bf4\u660e2\r\n# Date &amp; Author..: \u65e5\u671f By \u4f5c\u8005\r\n# Modify.........:\r\n################################################################################\r\nPUBLIC FUNCTION awsp900_01_getDetailRecordLength(p_node,p_name)\r\n    DEFINE p_node    xml.DomNode,\r\n           p_name    STRING\r\n    DEFINE l_list    xml.DomNodeList\r\n    DEFINE l_list2   xml.DomNodeList\r\n    DEFINE l_node    xml.DomNode\r\n    DEFINE l_detail  xml.DomNode\r\n    DEFINE l_i       INTEGER\r\n    DEFINE l_cnt     INTEGER\r\n\r\n    IF p_node IS NULL THEN\r\n       RETURN 0\r\n    END IF\r\n\r\n    LET l_node = p_node.getParentNode()   #\u5f9e &lt;Record&gt; \u53d6 &lt;Master&gt; \u7236\u7bc0\u9ede\r\n    LET l_node = l_node.getParentNode()   #\u518d\u5f9e &lt;Master&gt; \u53d6 &lt;RecordSet&gt; \u7236\u7bc0\u9ede\r\n\r\n    #--------------------------------------------------------------------------#\r\n    # \u641c\u5c0b &lt;RecordSet&gt; \u6709\u5c0d\u61c9\u7684 &lt;Detail&gt; \u7bc0\u9ede                                  #\r\n    #--------------------------------------------------------------------------#\r\n    IF cl_null(p_name) THEN\r\n       LET l_list = l_node.selectByXPath(\"\/\/Detail\/Record\")\r\n       RETURN l_list.getCount()\r\n    ELSE\r\n       #LET l_list = l_node.selectByXPath(\"\/\/Detail[@name=\\\"\" || p_name || \"\\\"]\/Record\" , \"\")\r\n       LET l_list = l_node.getElementsByTagName(\"Detail\") \r\n    END IF\r\n\r\n    FOR l_i = 1 TO l_list.getCount()\r\n        LET l_detail = l_list.getitem(l_i)\r\n        IF l_detail.getAttribute(\"name\") = p_name THEN\r\n           LET l_list2 = l_detail.getElementsByTagName(\"Record\")\r\n           RETURN l_list2.getCount()\r\n        END IF\r\n    END FOR\r\n    LET l_cnt = 0   #\u627e\u4e0d\u5230\r\n    RETURN l_cnt\r\nEND FUNCTION<\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"null\">################################################################################\r\n# Descriptions...: \u53d6\u5f97 Request XML \u4e2d\u6307\u5b9a\u7684\u55ae\u6a94\u7bc0\u9ede Dom Node\r\n# Memo...........:\r\n# Usage..........: CALL awsp900_01_getDetailRecord(p_node,p_i,p_name)\r\n#                  RETURNING \u56de\u4f20\u53c2\u6570\r\n# Input parameter: \u4f20\u5165\u53c2\u6570\u53d8\u91cf1   \u4f20\u5165\u53c2\u6570\u53d8\u91cf\u8bf4\u660e1\r\n#                : \u4f20\u5165\u53c2\u6570\u53d8\u91cf2   \u4f20\u5165\u53c2\u6570\u53d8\u91cf\u8bf4\u660e2\r\n# Return code....: \u56de\u4f20\u53c2\u6570\u53d8\u91cf1   \u56de\u4f20\u53c2\u6570\u53d8\u91cf\u8bf4\u660e1\r\n#                : \u56de\u4f20\u53c2\u6570\u53d8\u91cf2   \u56de\u4f20\u53c2\u6570\u53d8\u91cf\u8bf4\u660e2\r\n# Date &amp; Author..: \u65e5\u671f By \u4f5c\u8005\r\n# Modify.........:\r\n################################################################################\r\nPUBLIC FUNCTION awsp900_01_getDetailRecord(p_node,p_i,p_name)\r\n    DEFINE p_node    xml.DomNode,\r\n           p_i       INTEGER,\r\n           p_name    STRING\r\n    DEFINE l_list    xml.DomNodeList\r\n    DEFINE l_list2   xml.DomNodeList\r\n    DEFINE l_node    xml.DomNode\r\n    DEFINE l_node2   xml.DomNode\r\n    DEFINE l_detail  xml.DomNode  \r\n    DEFINE l_i       INTEGER\r\n\r\n\r\n    IF p_node IS NULL THEN\r\n       RETURN 0\r\n    END IF\r\n\r\n    LET l_node = p_node.getParentNode()   #\u5f9e &lt;Record&gt; \u53d6 &lt;Master&gt; \u7236\u7bc0\u9ede\r\n    LET l_node = l_node.getParentNode()   #\u518d\u5f9e &lt;Master&gt; \u53d6 &lt;RecordSet&gt; \u7236\u7bc0\u9ede\r\n\r\n    #--------------------------------------------------------------------------#\r\n    # \u641c\u5c0b &lt;RecordSet&gt; \u6709\u5c0d\u61c9\u7684 &lt;Detail&gt; \u7bc0\u9ede                                  #\r\n    #--------------------------------------------------------------------------#\r\n    IF cl_null(p_name) THEN\r\n       LET l_list = l_node.selectByXPath(\"\/\/Detail\/Record\")\r\n    ELSE\r\n       #LET l_list = l_node.selectByXPath(\"\/\/Detail[@name=\\\"\" || p_name || \"\\\"]\/Record\" , \"\")\r\n       LET l_list = l_node.getElementsByTagName(\"Detail\")    \r\n    END IF\r\n\r\n    FOR l_i = 1 TO l_list.getCount()\r\n        LET l_detail = l_list.getitem(l_i)\r\n        IF l_detail.getAttribute(\"name\") = p_name THEN\r\n           LET l_list2 = l_detail.getElementsByTagName(\"Record\")\r\n           LET l_node2 = l_list2.getitem(p_i)  #\u53d6\u51fa\u6307\u5b9a\u7684Record\r\n           EXIT FOR\r\n        END IF\r\n        #LET l_node2 = l_list.getitem(l_i)\r\n\r\n        #----------------------------------------------------------------------#\r\n        # \u82e5\u641c\u5c0b\u7684\u55ae\u8eab &lt;Record&gt; \u7bc0\u9ede\u9806\u5e8f\u8207\u547c\u53eb\u6642\u50b3\u5165\u7684\u503c\u76f8\u540c\u6642                 #\r\n        #----------------------------------------------------------------------#\r\n        #IF l_i = p_i THEN\r\n        #   EXIT FOR\r\n        #END IF\r\n    END FOR\r\n\r\n    RETURN l_node2\r\nEND FUNCTION<\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"null\">################################################################################\r\n# Descriptions...: \u53d6\u5f97\u6307\u5b9a\u7684 \u55ae\u982d \/ \u55ae\u8eab \u7bc0\u9ede\u4e2d\u7684\u6b04\u4f4d\u503c\r\n# Memo...........:\r\n# Usage..........: CALL awsp900_01_getRecordField(p_node,p_name)\r\n#                  RETURNING \u56de\u4f20\u53c2\u6570\r\n# Input parameter: \u4f20\u5165\u53c2\u6570\u53d8\u91cf1   \u4f20\u5165\u53c2\u6570\u53d8\u91cf\u8bf4\u660e1\r\n#                : \u4f20\u5165\u53c2\u6570\u53d8\u91cf2   \u4f20\u5165\u53c2\u6570\u53d8\u91cf\u8bf4\u660e2\r\n# Return code....: \u56de\u4f20\u53c2\u6570\u53d8\u91cf1   \u56de\u4f20\u53c2\u6570\u53d8\u91cf\u8bf4\u660e1\r\n#                : \u56de\u4f20\u53c2\u6570\u53d8\u91cf2   \u56de\u4f20\u53c2\u6570\u53d8\u91cf\u8bf4\u660e2\r\n# Date &amp; Author..: \u65e5\u671f By \u4f5c\u8005\r\n# Modify.........:\r\n################################################################################\r\nPUBLIC FUNCTION awsp900_01_getRecordField(p_node,p_name)\r\n    DEFINE p_node    xml.DomNode,\r\n           p_name    STRING\r\n    DEFINE l_value   STRING\r\n    DEFINE l_list    xml.DomNodeList\r\n    DEFINE l_node    xml.DomNode\r\n    DEFINE l_i       LIKE type_t.num10\r\n    DEFINE l_name    STRING\r\n\r\n    IF p_node IS NULL OR cl_null(p_name) THEN\r\n       RETURN NULL\r\n    END IF\r\n\r\n    #--------------------------------------------------------------------------#\r\n    # \u63a5\u8457\u5c0b\u627e\u662f\u5426\u70ba\u5c0d\u61c9\u540d\u7a31\u7684 &lt;Field&gt; \u6b04\u4f4d                                    #\r\n    #--------------------------------------------------------------------------#\r\n    #LET l_list = p_node.selectByXPath(\"\/\/Field[@name=\\\"\" || p_name || \"\\\"]\" ,\"\")\r\n    #IF l_list.getCount() != 0 THEN   #\u627e\u7684\u5230\u7bc0\u9ede\u624d\u53d6\u503c\r\n    #   LET l_node = l_list.getitem(1)\r\n    #   LET l_value = l_node.getAttribute(\"value\")\r\n    #END IF\r\n    \r\n    LET l_list = p_node.getElementsByTagName(\"Field\")\r\n    IF l_list.getCount() &gt; 0 THEN   #\u627e\u7684\u5230\u7bc0\u9ede\u624d\u53d6\u503c\r\n       FOR l_i = 1 TO l_list.getCount()\r\n           LET l_node = l_list.getitem(l_i)\r\n           LET l_name = l_node.getAttribute(\"name\")\r\n           IF l_name = p_name THEN\r\n              LET l_value = l_node.getAttribute(\"value\")\r\n              EXIT FOR\r\n           END IF\r\n       END FOR\r\n    END IF\r\n\r\n    RETURN l_value\r\nEND FUNCTION<\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"null\">################################################################################\r\n# Descriptions...: \u63cf\u8ff0\u8bf4\u660e\r\n# Memo...........:\r\n# Usage..........: CALL awsp900_01_addParameterRecord(p_json_record)\r\n#                  RETURNING \u56de\u4f20\u53c2\u6570\r\n# Input parameter: \u4f20\u5165\u53c2\u6570\u53d8\u91cf1   \u4f20\u5165\u53c2\u6570\u53d8\u91cf\u8bf4\u660e1\r\n#                : \u4f20\u5165\u53c2\u6570\u53d8\u91cf2   \u4f20\u5165\u53c2\u6570\u53d8\u91cf\u8bf4\u660e2\r\n# Return code....: \u56de\u4f20\u53c2\u6570\u53d8\u91cf1   \u56de\u4f20\u53c2\u6570\u53d8\u91cf\u8bf4\u660e1\r\n#                : \u56de\u4f20\u53c2\u6570\u53d8\u91cf2   \u56de\u4f20\u53c2\u6570\u53d8\u91cf\u8bf4\u660e2\r\n# Date &amp; Author..: \u65e5\u671f By \u4f5c\u8005\r\n# Modify.........:\r\n################################################################################\r\nPUBLIC FUNCTION awsp900_01_addParameterRecord(p_json_record)\r\n   DEFINE p_json_record     util.JSONObject\r\n   \r\n   WHENEVER ERROR CONTINUE\r\n\r\n   IF p_json_record.getLength() = 0 THEN \r\n      display \"json length: 0\"\r\n      RETURN NULL\r\n   END IF\r\n\r\n   CALL awsp900_01_buildRecord(g_pnode, p_json_record)       #\u4f9d\u7167\u50b3\u5165\u7684\u8cc7\u6599\u65b0\u589e\u56de\u50b3\u53c3\u6578\u8cc7\u6599\r\nEND FUNCTION<\/code><\/pre>\n<p>DEFINE\u00a0g_resdoc\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0xml.DomDocument\u00a0\u00a0\u00a0#Response XML Dom Document, #FUN-910058<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"null\">################################################################################\r\n# Descriptions...: \u63cf\u8ff0\u8bf4\u660e\r\n# Memo...........:\r\n# Usage..........: CALL awsp900_01_buildRecord(p_node, p_json_record)\r\n#                  RETURNING \u56de\u4f20\u53c2\u6570\r\n# Input parameter: \u4f20\u5165\u53c2\u6570\u53d8\u91cf1   \u4f20\u5165\u53c2\u6570\u53d8\u91cf\u8bf4\u660e1\r\n#                : \u4f20\u5165\u53c2\u6570\u53d8\u91cf2   \u4f20\u5165\u53c2\u6570\u53d8\u91cf\u8bf4\u660e2\r\n# Return code....: \u56de\u4f20\u53c2\u6570\u53d8\u91cf1   \u56de\u4f20\u53c2\u6570\u53d8\u91cf\u8bf4\u660e1\r\n#                : \u56de\u4f20\u53c2\u6570\u53d8\u91cf2   \u56de\u4f20\u53c2\u6570\u53d8\u91cf\u8bf4\u660e2\r\n# Date &amp; Author..: \u65e5\u671f By \u4f5c\u8005\r\n# Modify.........:\r\n################################################################################\r\nPUBLIC FUNCTION awsp900_01_buildRecord(p_node,p_json_record)\r\nDEFINE p_node         xml.DomNode\r\nDEFINE p_json_record  util.JSONObject\r\n#DEFINE l_list1    xml.DomNodeList,                                 \r\n#       l_list2    xml.DomNodeList\r\nDEFINE l_node     xml.DomNode,\r\n       l_child    xml.DomNode, \r\n       l_record   xml.DomNode,\r\n       l_field    xml.DomNode\r\nDEFINE l_i        INTEGER,\r\n       l_j        INTEGER\r\nDEFINE l_name     STRING,\r\n       l_value    STRING \r\nDEFINE l_k        INTEGER         #FUN-D80090\r\n               \r\n    LET l_node = g_resdoc.createElement(\"Record\")  #\u65bc &lt;Master&gt; \/ &lt;Detail&gt; \/ &lt;Parameter&gt;\u4e0b\u5efa\u7acb &lt;Record&gt; \u7bc0\u9ede\r\n    CALL p_node.appendChild(l_node)\r\n\r\n    FOR l_i = 1 TO p_json_record.getLength()\r\n \r\n       INITIALIZE l_name TO NULL\r\n       INITIALIZE l_value TO NULL\r\n\r\n       #\u53d6\u5f97\u6b04\u4f4d\u540d\u7a31\u548c\u6b04\u4f4d\u503c\r\n       LET l_name = p_json_record.name(l_i)\r\n       LET l_value = p_json_record.get(p_json_record.name(l_i))\r\n\r\n       LET l_child = g_resdoc.createElement(\"Field\") #\u65bc &lt;Record&gt; \u4e0b\u5efa\u7acb &lt;Field&gt; \u7bc0\u9ede\r\n       CALL l_node.appendChild(l_child)\r\n       CALL l_child.setAttribute(\"name\", l_name)\r\n       CALL l_child.setAttribute(\"value\", l_value)\r\n    END FOR\r\nEND FUNCTION<\/code><\/pre>\n<p><img decoding=\"async\" src=\"http:\/\/www.hefeiyu.com\/wp-content\/uploads\/2019\/08\/312546-20190603105024342-216047281.png\" alt=\"\" \/><\/p>\n<p>\u8f6c\u8f7d\u8bf7\u6ce8\u660e\uff1a<a href=\"https:\/\/www.hefeiyu.com\">\u8d6b\u975e\u57df<\/a> &raquo; <a href=\"https:\/\/www.hefeiyu.com\/?p=5246\">T100\u2014\u2014XML\u63a5\u53e3\u4ee3\u7801\u8bb0\u5f55<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>PRIVATE FUNCTION cwssp002_process() #add-point: \u670d\u52d9\u908f\u8f2f\u4e3b\u8981\u8655\u7406\u6bb5\u7684ADP DEFINE l_node xml.DomNode DEFINE l_node2 xml.DomNode DEFINE l_c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[490],"tags":[11,176],"class_list":["post-5246","post","type-post","status-publish","format-standard","hentry","category-490","tag-t100","tag-xml"],"_links":{"self":[{"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/posts\/5246","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5246"}],"version-history":[{"count":1,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/posts\/5246\/revisions"}],"predecessor-version":[{"id":5248,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/posts\/5246\/revisions\/5248"}],"wp:attachment":[{"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}