使用ABAP和JavaScript代碼生成PDF文件的幾種方式
ABAP

方法1:使用ABAP + Adobe Lifecycle Enterprise Service
詳細(xì)步驟參考我的博客Convert word document into PDF via Adobe Livecycle Enterprise service
方法2:使用ABAP Webdynpro里的InteravtiveForm控件 + Adobe Form Template
詳細(xì)步驟參考我的博客Another way to preview PDF in CRM web client UI with little coding
方法3:使用CRM content management的PDF template
具體參考我的博客Create Webservice enabled Adobe PDF attachment in CRM Application.
方法4:利用ABAP代碼手動(dòng)生成PDF的二進(jìn)制內(nèi)容
具體參考我的博客Export WebClient UI table to PDF
方法5: 利用SAP Cloud for Customer(C4C)里Cloud Application Studio的Print Form功能
具體步驟參考我的博客Step by Step to create an Adobe Print form in Cloud application Studio.
參考我博客里的這個(gè)例子:http://jerrywang.vip/jerry_test/pdf.html
點(diǎn)擊按鈕Generate PDF后,會(huì)調(diào)用開(kāi)源javaScript庫(kù)jspdf.debug.js,將下圖中的這段高亮的段落文字轉(zhuǎn)換成PDF文件。
CRM WebClient UI和Hybris backoffice UI開(kāi)發(fā)的相同點(diǎn)
CRM WebClient和Hybris backoffice的UI開(kāi)發(fā)都不需要開(kāi)發(fā)人員手寫原生的html代碼。
CRM WebClient UI
在CRM WebUI workbench里,開(kāi)發(fā)人員需要寫下圖這些SAP封裝的tag:
這些Tag能在事物碼SE80里找到:
Hybris backoffice UI
比如我通過(guò)backoffice左邊倒L形的工作中心列表查看優(yōu)惠券列表,這個(gè)列表實(shí)際上是一棵樹(shù),根節(jié)點(diǎn)是Marketing。
上圖界面是通過(guò)在XML文件里定義Hybris封裝的tag來(lái)實(shí)現(xiàn)的,原理和CRM WebClient UI類似。
按照第15行的注釋,這種開(kāi)發(fā)方式可以理解成"Configuration-based development"。第17行定義了一個(gè)類型為explorer-tree的控件。
第19行用navigation-node定義marketing這個(gè)根節(jié)點(diǎn),id為這個(gè)節(jié)點(diǎn)的屬性。
Hybris wiki上有這些Hybris封裝的tag的詳細(xì)用法:
類似的,下面這個(gè)表格包含了6列:
該表格是用listview這個(gè)tag實(shí)現(xiàn)的,下圖即是6列對(duì)應(yīng)的定義:
Simple search的界面:
XML文件里顯示Simple search實(shí)際執(zhí)行時(shí)基于couponId和name兩個(gè)字段進(jìn)行搜索:
ABAP Netweaver
在SAP基于Netweaver的ABAP應(yīng)用里,應(yīng)用開(kāi)發(fā)人員用Open SQL訪問(wèn)數(shù)據(jù)庫(kù), 這些Open SQL會(huì)被Database interface(數(shù)據(jù)庫(kù)接口)轉(zhuǎn)換成各種數(shù)據(jù)庫(kù)提供商支持的原生SQL語(yǔ)句然后執(zhí)行。
Netweaver 支持的數(shù)據(jù)庫(kù)提供商在表DBCON的DBMS字段里能看到:
除了普通的ABAP Open SQL的語(yǔ)句用于業(yè)務(wù)數(shù)據(jù)的增刪查改之外,SAP CRM和C4C里還支持Enterprise Search(有時(shí)也成為simple search,模糊搜索), 就是類似Google搜索一樣,用戶只需要指定待搜索值,而無(wú)需指定該搜索值對(duì)應(yīng)的搜索條件。
在這兩個(gè)產(chǎn)品里的Enterprise Search實(shí)現(xiàn)原理實(shí)際上是應(yīng)用程序發(fā)起一個(gè)RFC(Remote Function Call)到TREX服務(wù)器上拿到查詢結(jié)果。
關(guān)于SAP TREX介紹請(qǐng)參考wikipedia.
https://en.wikipedia.org/wiki/TREX_search_engine
Hybris
Hybris里也有和CRM WebUI里的API層起同樣作用的層,封裝了對(duì)DB的操作。
Hybris里對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)實(shí)現(xiàn)是封裝在大量以DAO(Data Access Object)結(jié)尾的Java class實(shí)現(xiàn)的,相當(dāng)于SAP CRM API層的那些function module。
隨便點(diǎn)開(kāi)一個(gè)DAO看實(shí)現(xiàn),里面也是拼SQL語(yǔ)句然后拋到DB去執(zhí)行:
上圖代碼里拼裝的SQL語(yǔ)句也不是數(shù)據(jù)提供商相關(guān)的原生SQL語(yǔ)言,而是一種新的語(yǔ)言,稱為Flexible Search。類似ABAP的OPEN SQL一樣,它將Hybris應(yīng)用訪問(wèn)數(shù)據(jù)庫(kù)層的代碼和底層數(shù)據(jù)庫(kù)解耦。
在Hybris幫助文檔上能看到支持的數(shù)據(jù)庫(kù)列表:
在Hybris開(kāi)發(fā)環(huán)境下使用的數(shù)據(jù)庫(kù)名叫HSQLDB: 一個(gè)輕量級(jí)的純Java開(kāi)發(fā)的開(kāi)放源代碼的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)
ABAP ERP JavaScript
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。