Powerbuilder如何建立網際網路服務
PowerBuilder 要建立網路服務,基本上需要兩個物件:
只是這個物件不能直接建立,必須先建立Class (類別),
並且寫入處理回傳資料的程式碼(script),再建立(instance)成為物件才能使用:
(以PB10)
首先先建立一個Standard Class
再選擇 Types 為 internetResult
並且命名為 n_internetresult ,
然後開啟 n_internetresult 建立一個 instance 變數
然後,可以在 n_internetresult 找到一個內建函數:
以下程式碼,我們可以試著讀取一個網頁的內容:
inetinet直接建立(instance)就可以了,例如:
internetResult
inet linet
linet = Create inet
而接收inet傳回的資料就需要 internetResult 了,只是這個物件不能直接建立,必須先建立Class (類別),
並且寫入處理回傳資料的程式碼(script),再建立(instance)成為物件才能使用:
(以PB10)
首先先建立一個Standard Class
Standard Class |
再選擇 Types 為 internetResult
如果是PB6的版本就先建立User object
User Object
>再選擇新建(new) >選擇 Standard Class
Standard Class
再選擇 Types 為 internetResult
並且命名為 n_internetresult ,
然後開啟 n_internetresult 建立一個 instance 變數
String is_text
然後,可以在 n_internetresult 找到一個內建函數:
internetData(blob data)寫入以下script:
is_text = String(data , EncodingUTF8!)
//如果網頁回傳的實際編碼(不是內容編碼,不要搞錯)是ansi編碼就使用EncodingANSI!)
//PB6的string轉換無法指定編碼方式,一律都是ANSI編碼
Return 1
所以,當你建立好類別 n_internetresult 就可以開始使用網路服務了。以下程式碼,我們可以試著讀取一個網頁的內容:
inet linet
n_internetresult lir_html
integer li_rtn
string ls_htmlText
linet = Create inet
lir_html = Create n_internetresult
li_rtn = linet.GetURL("http://www.mydomain.com/index.html",lir_html)
if li_rtn = 1 then
//取得網頁內容
ls_htnlText = lir_html.is_text
else
messagebox("GET URL" , "Internet error!")
return
end if
messageBox("HTML DATA" , ls_htmlText)
Destroy lir_html
Destroy linet
留言
powerbuilder目前還是快速上手的MIS/ERP開發工具之一,目前在台灣,它的問題有幾個:
1.人力:現成人才難找,幾乎都是公司內訓完成,程度有的差很多。
2.資源:幾乎都要到國外網站/論壇去找。
3.費用:自從Sybase被SAP買下之後,採購費用高出很多很多,對於中小企業負擔太重。
4.環境:有windows與linux版本。
5.展望:個人認為應用程式開發無可置疑,但是與目前全WEB化的開發還是有一段落差(一言難盡),缺點是與其他不同種語言開發程式整合有不小隔閡(不容易懂,也有版本問題)。
微軟dotNet的部分,
1.人力:學的人多,比較好找,可是因為微軟開發工具版本關係,程度不深的人寫出來的程式容易出問題。
2.資源:普遍,但夠程度的在國內比較不多。
3.費用:微軟收費尚屬合理。
4.環境:只適合微軟作業系統環境。
5.展望:個人認為它屬於全特性開發工具,但也因為這樣的特性,在開發某些MIS/ERP程式碼會過於冗長,WEB支援特性不錯,但是對於第三方開發AP呼叫使用WebService有很高門檻。缺點是互動式WEB頁面開發有時候會覺得太複雜。