我要感謝CRM On Premise, 由於在這個產品上作開發讓我得以使用WebClient UI框架。有些朋友以爲這個SAP本身發明的基於HTML+ABAP的MVC框架,和如今流行的三駕馬車(Angular, React, Vue)相比顯得很笨重,也缺乏一些他們認爲現代UI框架必不可少的一些功能。node
這個見解我我的不是徹底認同,除了諸如React的Virtual DOM rendering和三駕馬車都支持的雙向綁定以外,不少這三個框架都支持的功能,SAP WebClient UI勉強提及來也都支持,只是實現得沒那麼優雅。掌握WebClient UI,除了能幫咱們完成平常工做,從開闊工程師的視野來講也是很好的一種方式,畢竟國內幾乎每位開發人員都能接觸基於HMTL+JavaScript的UI框架,可是WebClient UI則否則。web
下面是我在SAP community寫的關於WebClient UI的42篇文章列表,按照發布時間羅列。ajax
1. How to quickly locate the source code where a given message is raised in WebClient UIsession
這篇文章講述如何經過快速找到UI上看到的錯誤信息是在哪行ABAP代碼拋出來的,方便您排錯。框架
2. A real case: how to open external url ( ABAP webdynpro ) via pop up window in CRMless
如何在WebClient UI裏經過彈出窗口打開ABAP Webdynpro的頁面,用於中央電視臺CRM項目
3. how to navigate to ABAP webdynpro page via CRM navigation frameworkide
注意和第二篇文章區分開: 經過這篇文章介紹的方式打開的ABAP Webdynpro是顯示在一個新的頁面上,而非彈出窗口。
4. Three ways to control the visibility of an assignment block in overview page in web client UI
三種方式控制WebClient UI上某個Assignment block根據運行時某種條件動態地顯示或者隱藏
5. 一個奇怪的問題: 用戶登陸後選擇了業務角色後一直顯示這個頁面,進不去任何應用了。引發這個問題的緣由:
6. 縮略圖的顯示原理
https://blogs.sap.com/2013/12/04/display-thumbnail-in-crm-ui-with-the-help-of-attachment/
7. 在WebClient UI裏顯示PDF
https://blogs.sap.com/2013/12/17/another-way-to-preview-pdf-in-crm-web-client-ui-with-little-coding/
8. 這個技巧我我的以爲頗有用,把WebClient UI運行時產生的錯誤信息自動存到你指定的Z表裏,排錯時直接去Z表裏找錯誤信息,省去了不少調試的時間。
https://blogs.sap.com/2013/12/21/how-to-persist-the-ui-exception-so-you-can-view-them-later/
9. WebClient UI和ABAP Webdynpro的性能比較
這是manager交代下來的任務,用於中聯重科的CRM項目。
10. 若是在CRM WebClient UI裏混用ABAP Webdynpro, 會遇到哪些坑?
SAP官方不推薦用ABAP Webdynpro的技術在CRM裏進行二次開發。下面這個文章裏介紹了緣由 - 兩種UI框架有着大相徑庭的:
session管理
後退按鈕的實現
UI configuration的實現
Data loss的實現
消息顯示的UI區域設計
https://blogs.sap.com/2014/01/08/issue-lists-of-using-abap-webdynpro-in-crm-ui/
11. WebClient UI的delta handling
又一個詭異的問題,這個問題最後是託個人同事到SAP德國找到一個WebClient UI專家才最終弄明白。
https://blogs.sap.com/2014/01/19/automatic-delta-handling-in-webclient-ui/
12. "超時消息"並不是真正是你的會話超時了
有時您在UI上作了一些操做,您會當即看到這個會話超時的提示,然而實際上這個頁面是一個提示,每每意味着後臺ABAP的應用裏執行出了某些錯誤,這些錯誤被WebClient UI框架捕獲到,而後執行一個通用的錯誤處理分支:顯示該超時提示頁面。
13. 我本身寫的一個小工具,方便我調試用的。文章裏有介紹其具體用途。
https://blogs.sap.com/2014/03/03/a-small-component-repository-parse-tool-and-its-usage/
14. WebClient UI 框架原理性介紹
UI configuration的determine邏輯講解: 介紹當您點了F2以後,這些顯示信息的由來
https://blogs.sap.com/2014/03/07/ui-configuration-determination-logic-introduction/
文本的determine邏輯:
https://blogs.sap.com/2014/03/07/ui-text-label-determination-logic/
15. Webclient UI Switch related processing
介紹了這兩個switch背後的故事:
https://blogs.sap.com/2014/03/08/webclient-ui-switch-related-processing/
16. 一個具體的排錯分享
我在WebClient UI的開發裏已經完成了工具欄的繪製,可是最終顯示的UI上看不到工具欄顯示。如何經過本身debug找到哪裏出了問題?
https://blogs.sap.com/2014/04/24/how-to-investigate-bsp-tag-issue-by-yourself/
17. 如何處理白屏問題
有時咱們在WebClient UI上操做,而後就白屏了。如何找到線索?
https://blogs.sap.com/2014/05/13/another-small-tip-to-deal-with-empty-screen-issue/
18. WebClient UI源碼搜索工具
爲提升我工做效率而寫的, 由於RS_ABAP_SOURCE_SCAN不支持搜索WebClient UI組件裏包含的ABAP代碼。
https://blogs.sap.com/2014/05/26/webclient-ui-source-code-search-tool/
19. 下拉菜單的排錯
爲何這個下拉菜單裏一個可選項也沒有?
https://blogs.sap.com/2014/06/18/dropdown-list-issue-in-crm-webclient-ui-a-very-funny-trouble-shooting-process/
20. 一次WebClient UI裏的AJAX嘗試
21. WebClient UI裏同時上傳多個附件的嘗試
在2014年的時候,WebClient UI尚未這個功能,因此我作了一個原型:
https://blogs.sap.com/2014/08/23/attachment-multiple-upload/
22. 使用您喜歡的文本編輯器進行WebClient UI
比較冷門,可能也沒什麼實際用處,可是證實了SAPGUI的flexibility(靈活性)
https://blogs.sap.com/2014/12/05/use-notepad-to-edit-your-webclient-ui-component-view/
23. 一個案例: Chrome development tool如何用在WebClient UI問題的排錯
https://blogs.sap.com/2016/06/17/how-webui-passes-table-selected-row-information-to-abap-backend/
24. 每一個BSP應用的字節大小
這個需求是一個德國同事提給個人,我寫了一個工具來計算:
https://blogs.sap.com/2016/06/17/a-simple-tool-to-calculate-the-total-size-of-a-bsp-application/
25. 使用加強工具建立的擴展字段(extension field)是如何被WebClient UI繪製出來的。好比下面這種字段:
https://blogs.sap.com/2016/12/22/how-extension-field-created-by-aet-is-rendered-in-web-client-ui/
26. WebClient UI擴展字段的原理講解
https://blogs.sap.com/2014/02/21/insight-into-calculated-fields-created-by-aet/
27. 用ABAP代碼給WebClient UI擴展字段添加自定義行爲
https://blogs.sap.com/2017/01/11/define-your-extension-field-with-custom-behavior-in-aet/
28. 如何建立下下拉列表類型的WebClient UI擴展字段
https://blogs.sap.com/2017/01/12/create-extension-field-with-type-code-list-via-aet/
29. 本身寫的小工具: 能快速找出一些WebClient UI component, 這些component裏至少包含一個Context node, 綁定到了某個指定名稱的Genil model節點, 好比"Product".
我在作CRM Addon的開發時,會有不少這種查找的需求,用工具實現查找能節省大量時間。
https://blogs.sap.com/2017/03/01/repository-information-system-for-webclient-ui-component/
30. 白屏問題的又一分析案例
點擊WebClient UI裏某個超連接以後,就看到了這個白屏:
https://blogs.sap.com/2017/03/20/an-example-to-analyze-webclient-ui-empty-screen-issue/
31. Fiori and CRM WebClient UI – Stateless and Stateful, but how?
https://blogs.sap.com/2017/03/30/fiori-and-crm-webclient-ui-stateless-and-stateful-but-how/
32. Stateless and Stateful – Different behavior in application side
介紹這個選擇字段選中和取消會有什麼不一樣的效果:
https://blogs.sap.com/2017/03/31/stateless-and-stateful-different-behavior-in-application-side/
33. 在WebClient UI裏顯示PDF的又一種作法
https://blogs.sap.com/2017/05/01/add-table-line-item-preview-functionality-in-webclient-ui/
34. 將WebClient UI裏的表格導出成PDF
如圖:
https://blogs.sap.com/2017/05/03/export-webclient-ui-table-to-pdf/
35. 介紹WebClient UI的會話重啓實現原理, 講述這個Memory Threshold字段背後的故事
https://blogs.sap.com/2017/05/24/webui-session-restart-logic/
36. 在WebClient UI裏顯示帶動畫效果的倒數計時
如圖:
https://blogs.sap.com/2017/05/27/dipslay-count-down-in-webclient-ui/
37. 自開發的WebClient UI 倉庫信息系統(Repository Information System)
SE80裏的倉庫信息系統不支持WebClient UI的查詢, 我本身寫了一個,至少能知足我本身項目的須要。
38. 介紹WebClient UI workbench裏Context node的屬性文件夾下面這些字段具體是從哪裏帶出來的
https://blogs.sap.com/2017/08/21/the-logic-how-the-field-list-under-attributes-folder-is-populated/
39. 經過transaction launcher把ABAP Webdynpro UI嵌入到WebClient UI裏
40. 如何實現one hit navigation
我不知道怎麼把這個概念譯成中文,其行爲就是:若是搜索的結果只有一條記錄,會自動進入這條記錄的明細界面,而不會停留在搜索結果的UI上。
https://blogs.sap.com/2017/10/14/how-to-implement-one-hit-navigation/
41. 如何用WebClient UI的加強工具AET建立表格類型的加強字段
42. WebClient UI, Fiori和Cloud for Customer的Direct Navigation(直接導航)實現講解
https://blogs.sap.com/2017/11/05/direct-navigation-in-crm-webui-crm-fiori-and-c4c/
43. WebClient UI和Cloud for Customer裏表格寬度自定義的實現原理講解
https://blogs.sap.com/2017/11/21/how-table-column-resize-works-in-crm-and-cloud-for-customer/
要獲取更多Jerry的原創技術文章,請關注公衆號"汪子熙"或者掃描下面二維碼: