資源描述:
《如何在genero中調(diào)用webservice》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、如何在Genero(Tiptop)中調(diào)用WebServices?1.什么是WebServices?它是一種構(gòu)建應(yīng)用程序的普遍模型,可以在任何支持網(wǎng)絡(luò)通訊的操作系統(tǒng)中實(shí)施運(yùn)行,它是一種新的web應(yīng)用程序分支,是自包含、自描述、模塊化的應(yīng)用,可以發(fā)布、定位、通過(guò)web調(diào)用。WebService是一個(gè)應(yīng)用組件,它邏輯性的為其他應(yīng)用程序提供數(shù)據(jù)與服務(wù),各應(yīng)用程序通過(guò)網(wǎng)絡(luò)協(xié)議和規(guī)定的一些標(biāo)準(zhǔn)數(shù)據(jù)格式(Http,XML,Soap)來(lái)訪問(wèn)WebService,通過(guò)WebService內(nèi)部執(zhí)行得到所需結(jié)果。WebService可以執(zhí)行從簡(jiǎn)單的請(qǐng)求到
2、復(fù)雜商務(wù)處理的任何功能。一旦部署以后,其他WebService應(yīng)用程序可以發(fā)現(xiàn)并調(diào)用它部署的服務(wù)。實(shí)際上,WebSerice的主要目標(biāo)是跨平臺(tái)的可互操作性。為了達(dá)到這一目標(biāo),WebService完全基于XML、XSD等獨(dú)立于平臺(tái)、獨(dú)立于軟件供應(yīng)商的標(biāo)準(zhǔn),是創(chuàng)建可互操作的、分布式應(yīng)用程序的新平臺(tái)。在以下三種情況下,使用WebService會(huì)帶來(lái)極大的好處:1)跨防火墻的通訊2)應(yīng)用程序集成3)B2B的集成4)軟件和數(shù)據(jù)重用不過(guò),也有一些情況,WebService根本不能帶來(lái)任何好處。一、單機(jī)應(yīng)用程序二、局域網(wǎng)的統(tǒng)購(gòu)應(yīng)用程序(此種集成,
3、使用DCOM比SOAP/HTTP效率高的多)2.背景說(shuō)明鼎新的TiptopERP系統(tǒng),采用法國(guó)4js公司的Genero開(kāi)發(fā)工具,也就是俗稱(chēng)的第四代開(kāi)發(fā)語(yǔ)音(4gl),其前身來(lái)源于Informix數(shù)據(jù)庫(kù),后經(jīng)過(guò)4js公司的擴(kuò)展,目前已可以兼容多種數(shù)據(jù)庫(kù),比如重量級(jí)的Oracle,DB2等,還有一些輕量級(jí)的,如GeneroDB,mySQL等。因?yàn)門(mén)iptop系統(tǒng)通常運(yùn)行在Unix/Linux平臺(tái),跟基于SQLServer數(shù)據(jù)庫(kù)的應(yīng)用程序集成的時(shí)候便顯得異常困難。雖然可以使用如Oracle的透明網(wǎng)關(guān)之類(lèi)的解決方法,但是卻受到頗多限制(Or
4、acle也只限Win平臺(tái)),因此使用WebService的方式就順利成章了。所幸,Genero中已經(jīng)提供了針對(duì)WebService的解決方案,而且相當(dāng)?shù)暮?jiǎn)單。本人使用的Tiptop版本為GP5.X。鼎新已經(jīng)在其產(chǎn)品包中提供了很多關(guān)于WebServices的程序,本文不打算討論這些針對(duì)ERP的WebServices,就從Genero的底層開(kāi)始,探討如何使用4gl調(diào)用WebService函數(shù),來(lái)實(shí)現(xiàn)ERP數(shù)據(jù)跟另外一個(gè)系統(tǒng)(數(shù)據(jù)庫(kù)平臺(tái)為SQLServer)的同步。除了實(shí)現(xiàn)數(shù)據(jù)庫(kù)同步外,還可以實(shí)現(xiàn)其他復(fù)雜的業(yè)務(wù)邏輯,本文僅拋磚引玉,如果你
5、有更好的方案,可以同作者交流。如果需在在Genero中提供WebService服務(wù)函數(shù),另開(kāi)文章探討。3.測(cè)試本文檔需要具備的條件?lIIS(InternetInformationServices),WebServer,部署webservies的服務(wù)器lVisualStudio2005,開(kāi)發(fā)WebServices服務(wù)函數(shù)。當(dāng)然也可以使用其他開(kāi)發(fā)工具開(kāi)發(fā),本文以C#為例說(shuō)明。lGeneroStudio,開(kāi)發(fā)客戶(hù)端4gl程序,可以是其他工具,如UE、VI等。l程序要達(dá)到的目的:ERP有一個(gè)基本檔aooi040,用來(lái)輸入員工基本信息,員工
6、的工號(hào)為Key值,不允許在ERP中直接修改。程序最終看到的結(jié)果:在ERP中新增、修改、刪除數(shù)據(jù)記錄時(shí),同時(shí)在另一個(gè)系統(tǒng)的SQLServer數(shù)據(jù)庫(kù)的數(shù)據(jù)也會(huì)同步更新。SQLSERVER的數(shù)據(jù)結(jié)構(gòu)如下:CREATETABLE[dbo].[Employee]([ID][int]IDENTITY(1,1)NOTNULL,[EmpCode][varchar](8)COLLATEChinese_PRC_CI_ASNOTNULL,[EmpName][varchar](30)COLLATEChinese_PRC_CI_ASNULL,[EmpDept
7、][varchar](6)COLLATEChinese_PRC_CI_ASNULL,[CreateDate][smalldatetime]NULL,CONSTRAINT[PK_Employee]PRIMARYKEYCLUSTERED([EmpCode]ASC)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY])ON[PRIMARY]1.服務(wù)端程序的開(kāi)發(fā)?1)創(chuàng)建ASP.NETWeb服務(wù)應(yīng)用程序,如下圖:2)程序代碼如下:(省去中間IDE中處理若干)usingSystem;usingSystem.Data;usin
8、gSystem.Web;usingSystem.Collections;usingSystem.Web.Services;usingSystem.Web.Services.Protocols;usingSystem.Component