U811.1接口EAI系列之一--通用把XML传送给EAI处理方法--PowerBuilder语言
生活随笔
收集整理的這篇文章主要介紹了
U811.1接口EAI系列之一--通用把XML传送给EAI处理方法--PowerBuilder语言
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.前面配置參考:http://www.cnblogs.com/spring_wang/p/3393147.html
2.pb通用調EAI方法代碼如下:
//==================================================================== // 函數: .gf_interface_eai( ) //-------------------------------------------------------------------- // 描述: //-------------------------------------------------------------------- // 參數: // value datawindow adw_data 查詢時,接收數據的數據窗口 // value string as_xml 上傳U8 EAI的XML字符串 // value string as_proc //操作 增、刪、改、查 // value string as_u8key //返回的U8關鍵字,有時候返回不回來最新的 //-------------------------------------------------------------------- // 返回: integer成功返回1,失敗返回0 //-------------------------------------------------------------------- // 修改歷史: // //==================================================================== oleobject ixmldom//接收XML文件,分析數據用 OLEObject xmlhttp//EAI連接及發送數據用 integer li_result//返回值 string ls_return string ls_succeed//0:成功,其它:失敗 string ls_dsc//錯誤描述 string ls_u8key//U8關鍵字,對于憑證,為U8憑證號 string ls_voucher_type//憑證字 string ls_u8period//憑證U8會計期間 long ll_return string ls_data//從數據窗口讀取的XML數據 long ll_pos string ls_roottagxmlhttp = CREATE OLEObject xmlhttp.ConnectToNewObject("MSXML2.XMLHTTP") //創建XMLHTTP對象 xmlhttp.open("POST", "http://localhost/u8eai/import.asp", False) xmlhttp.send (as_xml) //發送Request消息 ls_return = xmlhttp.responseText //獲取返回Response消息 destroy xmlhttpixmldom = CREATE OLEObject ll_return = ixmldom.connecttonewobject( "microsoft.xmldom")//創建DOM對象 if ll_return <> 0 then//創建失敗 destroy ixmldomReturn 0 end if iXMLDOM.loadXML(ls_return)//需要注意:查詢數據成功時,返回的字符串中沒有succeed關鍵字,此時直接取值,會報錯 //所以,需要先判斷是否成功 if as_proc = 'Query' thenll_pos = pos(ls_return,'succeed=')if ll_pos > 0 thenls_succeed = iXMLDOM.selectSingleNode("ufinterface").childNodes(0).Attributes.getNamedItem("succeed").Text//獲取成功失敗標識end if elsels_succeed = iXMLDOM.selectSingleNode("ufinterface").childNodes(0).Attributes.getNamedItem("succeed").Text//獲取成功失敗標識 end ifif ls_succeed <> '0' and not gf_str_isnull(ls_succeed) thenls_dsc = iXMLDOM.selectSingleNode("ufinterface").childNodes(0).Attributes.getNamedItem("dsc").Text//獲取錯誤描述 messagebox(ls_succeed,ls_dsc)destroy ixmldom//生成失敗日志 Return 0 end ifif as_proc = 'Query' then//如果是查詢,將數據導入到對應數據窗口中ls_return = gf_replaceall(ls_return,'<?xml version="1.0"?>','',1)//先去掉固定頭ls_return = mid(ls_return,pos(ls_return,'>')+1,len(ls_return)-pos(ls_return,'>'))//將參數相關去掉ls_return = '<ufinterface>' + ls_return//增加固定頭ls_return = '<?xml version="1.0"?>' + ls_return//增加固定頭gf_writefile(blob(ls_return),'Import.xml')//必須先生成XML文件adw_data.ImportFile(XML!,'Import.xml')//將XML文件導入數據窗口 elseif as_proc = 'Delete' then//刪除暫不處理 else//如果是修改/新增U8數據,需要更新日志ls_roottag = Trim(iXMLDOM.selectSingleNode("ufinterface").Attributes.getNamedItem("request-roottag").Text)if ls_roottag = 'voucher' thenls_voucher_type = iXMLDOM.selectSingleNode("ufinterface").childNodes(0).Attributes.getNamedItem("voucher_type").Text//憑證類別字ls_voucher_type = iXMLDOM.selectSingleNode("ufinterface").childNodes(0).Attributes.getNamedItem("accounting_period").Text//憑證會計期間ls_u8key = iXMLDOM.selectSingleNode("ufinterface").childNodes(0).Attributes.getNamedItem("u8accounting_period").Text//憑證號elsels_u8key = iXMLDOM.selectSingleNode("ufinterface").childNodes(0).Attributes.getNamedItem("key").Text//生成U8數據的關鍵字end if//更新日志 end if destroy ixmldom as_u8key = ls_u8key Return 1
原創:王春天 2013.11.04
地址:http://www.cnblogs.com/spring_wang/p/3406230.html
?
轉載于:https://www.cnblogs.com/spring_wang/p/3406230.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的U811.1接口EAI系列之一--通用把XML传送给EAI处理方法--PowerBuilder语言的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 推荐五星级C语言学习网站
- 下一篇: PHP array_merge() 函数