這篇文章主要講解了“ABAP Netweaver里的寄生式編程語言有哪些”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“ABAP Netweaver里的寄生式編程語言有哪些”吧!
成都創(chuàng)新互聯(lián)是專業(yè)的賓陽網(wǎng)站建設(shè)公司,賓陽接單;提供成都網(wǎng)站設(shè)計、成都做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行賓陽網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!在Netweaver里隱藏了這樣一個包:SJAVASCRIPT,光看名字就知道它要干啥了。
Netweaver的C/C++內(nèi)核實現(xiàn)了一個微型的JavaScript引擎,其接口通過ABAP類CL_JAVA_SCRIPT暴露,可以讓ABAP開發(fā)人員在Netweaver里編寫和執(zhí)行JavaScript語言。
這個類于2000年2月創(chuàng)建,這個時間點Jerry還在讀高中,囧。
如果您想使用Netweaver里這個JavaScript引擎操練操練ECMAScript 6.0規(guī)范里定義的那些新特性,比如Class關(guān)鍵字,異步操作和Async函數(shù)等,那Jerry覺得您應該是想多了,因為這個類已經(jīng)明確標注為obsolete,因此SAP不建議使用在生產(chǎn)代碼里,風險自擔。
當然,執(zhí)行包里的報表SJSEU,把一些教科書上的JavaScript代碼粘貼進去玩玩,是沒有任何問題的。比如下面這段用JavaScript遞歸實現(xiàn)的整數(shù)階乘代碼,
可以正常運行在ABAP Netweaver里:
在Jerry看來,不存在必須在ABAP Netweaver里執(zhí)行JavaScript的場景。如果大家有基于JavaScript的應用需要和Netweaver里的ABAP應用集成,SAP推薦的做法是把這些JavaScript應用部署在SAP Cloud Platform上。
把品質(zhì)各異的紅寶石鑲嵌到頭盔,鎧甲,武器和盾牌上,能獲得下表里定義的各種屬性加成。
SAP Cloud for Customer的開發(fā)人員,想必在UI designer里都編寫過Ruby代碼:
帶著這個好奇心,我打開包含了這段Ruby代碼的UI視圖,發(fā)現(xiàn)在編寫完畢Ruby代碼后,保存激活時,Netweaver后臺會自動把這些Ruby代碼轉(zhuǎn)換成對應的JavaScript代碼,最后瀏覽器執(zhí)行的當然就是后者,即轉(zhuǎn)換后的JavaScript代碼。
也就是說,SAP Cloud for Customer的Netweaver系統(tǒng)里,存在一個微型的Ruby解析器。
因為C4C后臺沒有對客戶和Partners開發(fā),因此我無法像CL_JAVA_SCRIPT那樣,貼出這個Ruby解析器的ABAP實現(xiàn)類的名稱和代碼,不過其原理和CL_JAVA_SCRIPT一樣,都是使用ABAP的關(guān)鍵字SYSTEM-CALL,調(diào)用ABAP內(nèi)核的Ruby接口。
Netweaver里的ABSL和前面介紹的兩種精簡版語言引擎JavaScript和Ruby有所區(qū)別——ABSL是一門DSL-Domain Specific Language(領(lǐng)域特定語言).
Wikipedia對領(lǐng)域特定語言的定義是“為了解決某一類任務而專門設(shè)計的計算機語言”,Martin Fowler則認為,
“DSL通過在表達能力上做的妥協(xié)換取在某一領(lǐng)域內(nèi)的高效”。
而ABSL,則是SAP為了確保C4C partners能夠高效安全地在多租戶云上開發(fā)自定義邏輯而設(shè)計出的一門寄生于ABAP Netweaver的領(lǐng)域特定語言。
我們在Cloud Application Studio里編寫完ABSL,保存激活后,ABAP Netweaver后臺就會自動生成對應的ABAP代碼。同之前介紹的JavaScript和Ruby一樣,在C4C的ABAP Netweaver后臺,存在一個針對ABSL的語言解析器和編譯器來完成ABS對應的ABAP代碼的生成。
C4C的運行時,執(zhí)行的就是轉(zhuǎn)換后生成的ABAP代碼。
Jerry 2011年還在SAP BYD部門工作時,也曾經(jīng)參與過基于ABSL生成對應的ABAP代碼的開發(fā)工作,當時我所在的團隊負責的任務是把Cloud Application Studio里編寫的Application Exit ABSL代碼,轉(zhuǎn)換成ABAP Netweaver里的BAdI模型和對應的ABAP代碼。
最后再來說說C/C++. 人類是異形的宿主,而C/C++則是ABAP的宿主。這一點在Jerry之前的文章 聊聊C語言和ABAP里已經(jīng)闡述清楚了。
我們可以在F1喚出的ABAP幫助文檔里根據(jù)關(guān)鍵字“Kernel"查找出ABAP kernel的相關(guān)信息:
在SAP內(nèi)部的Netweaver服務器上,我們是能夠查看這些C/C++的源代碼的,只是我不能將這些代碼貼出來:
感謝各位的閱讀,以上就是“ABAP Netweaver里的寄生式編程語言有哪些”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對ABAP Netweaver里的寄生式編程語言有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
分享文章:ABAPNetweaver里的寄生式編程語言有哪些-創(chuàng)新互聯(lián)
鏈接地址:http://aaarwkj.com/article22/cdppcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站導航、手機網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、建站公司、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容