真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何分析SAPABAP關鍵字語法圖和ABAP代碼自動生成工具CodeComposer

這篇文章將為大家詳細講解有關如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer,文章內(nèi)容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于網(wǎng)站建設、成都網(wǎng)站建設、沛縣網(wǎng)絡推廣、小程序開發(fā)、沛縣網(wǎng)絡營銷、沛縣企業(yè)策劃、沛縣品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供沛縣建站搭建服務,24小時服務熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com

小編做SAP CRM Fiori應用開發(fā)時,在學習JavaScript時,讀過這本書:

如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer

書中使用這種語法圖講解JavaScript的語法:

如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer

其實ABAP幫助文檔里也存在類似的語法圖,只是藏在一個不起眼的角落,不為大家所熟知:

如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer

以關鍵字APPEND為例,查看其語法圖:

如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer

單擊超鏈接,語法圖就展示出來了,我覺得比幫助文檔里的文字描述直觀得多:

如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer

點擊問號,可以查看圖里每個組成部分的詳細說明:

如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer

我們有時候發(fā)現(xiàn)編寫的ABAP代碼,運行時不能按照自己的期望工作,往往是因為對ABAP幫助文檔里描述的ABAP關鍵字的功能理解得似是而非。如果你閱讀有的關鍵字幫助文檔時,感到晦澀難懂時,不妨換個角度,看一看它的語法圖,說不定能夠豁然開朗。

Jerry之前學習過SAP Commerce,在搭建開發(fā)環(huán)境執(zhí)行ant all命令行進行項目構建時,發(fā)現(xiàn)會自動生成大量的.java文件。我的同事告訴我,這些Java文件的內(nèi)容,是基于一個叫做Velocity的Java模板引擎生成的。

如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer

這些位于Hybris安裝包內(nèi),以.vm結尾的文件,即Velocity的模板文件:

如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer

打開這些模板文件,發(fā)現(xiàn)由下圖藍色區(qū)域所示的靜態(tài)內(nèi)容和紅色區(qū)域所示的變量組成。

如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer

在基于這些模板文件生成Java文件時,以$開頭的變量會被運行時計算出的實際值替換,例如$currentDateTime被替換成實際執(zhí)行ant all命令行構建項目的時間戳。

一個基于上圖模板文件生成的Java文件的例子:

如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer

那么ABAP里有沒有類似Java Velocity這種模板引擎呢?

和JavaScript一樣,ABAP里也有字符串模板(String Template)的概念:

如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer

ABAP字符串模板定義在兩根豎線之內(nèi),如上圖第14行代碼所示。字符串模板里包含靜態(tài)的字符串文本和ABAP變量名。在運行時,這些充當占位符的ABAP變量會被其實際包含的值所取代。

下圖是JavaScript里的字符串模板的一個例子,只不過分隔符從ABAP的豎線換成了單引號:

如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer

使用ABAP的字符串模板,我們同樣可以實現(xiàn)類似Java Velocity動態(tài)生成代碼的需求。Jerry之前的文章  淺談Java和SAP ABAP的靜態(tài)代理和動態(tài)代理,以及ABAP面向切面編程的嘗試 曾經(jīng)介紹過。

將需要動態(tài)創(chuàng)建的ABAP類的源代碼用字符串模板拼湊好,存儲到內(nèi)表lt_source中,然后調用關鍵字GENERATE SUBROUTINE POOL,創(chuàng)建生命周期只存在于當前會話期間內(nèi)的臨時ABAP類。

如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer

如果想生成全局ABAP類,即生成之后能夠持久化在ABAP服務器上,并且能夠通過SE24和SE80打開,則將拼湊好的包含ABAP類實現(xiàn)源代碼的內(nèi)表傳給ABAP類的創(chuàng)建API,即函數(shù)SEO_CLASS_CREATE_COMPLETE.

下圖代碼根據(jù)內(nèi)表mt_sourcecode里存儲的內(nèi)容,在$TMP包下創(chuàng)建了一個新的ABAP類。

如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer

以上就是ABAP最常用的兩種自動生成代碼的方式。

其實還有第三種方式,應用在SAP一些框架比如BRFplus自動生成ABAP類的場景里:

如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer

可以通過關鍵字ABAP CODE COMPOSER找到幫助文檔。

如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer

下面Jerry就通過一個實際的例子介紹如何使用ABAP Code Composer自動生成代碼。

和Java Velocity思路一樣,我們基于一個ABAP模板自動生成新的代碼。創(chuàng)建一個ABAP Include充當模板,取名ZSINGLETON:

如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer

模板代碼如下,定義了一個用單例設計模式(Singleton)實現(xiàn)的ABAP類的基本骨架。

如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer

這個ABAP模板里以$開頭和$結尾的變量,作用和Java Velocity里的變量類似,充當占位符的角色,運行時被模板的調用者傳入的實際值替換。

而@if和@end, 和Velocity的#if與#end一樣,在根據(jù)模板生成實際代碼時,提供了簡單的條件分支處理和控制功能。

我的ZSINGLETON模板里總共定義了4個變量:

  • $I_PARAM-class$

  • $I_PARAM-global$

  • $I_PARAM-interface$

  • $I_PARAM-exception$

最后寫一個ABAP程序,使用Code Composer消費ZSINGLETON模板,將上述4個變量的實際值傳入,生成一個可以持久化保存的ABAP單例類,名稱為第18行代碼指定的ZCL_JERRY.

如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer

下圖是通過ABAP模板和ABAP Code Composer生成的ABAP類的源代碼,可以看到之前模板里通過$定義的變量,已經(jīng)被調用模板生成ABAP類時傳入的實際值替換了。

如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer

關于如何分析SAP ABAP關鍵字語法圖和ABAP代碼自動生成工具Code Composer就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


網(wǎng)頁名稱:如何分析SAPABAP關鍵字語法圖和ABAP代碼自動生成工具CodeComposer
分享URL:http://weahome.cn/article/gohosh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部