SAP CRM WebClient UI的on_new_focus應該怎麼理解
# 問題
我在做練習16時(第3步的e,f),發現有一句這樣的描述:
Double click on method CONNECT_NODES.Make Value node ‘Competitors’
dependent from BTAdminH.
METHOD connect_nodes.
DATA: coll_wrapper TYPE REF TO cl_bsp_wd_collection_wrapper.
coll_wrapper = btadminh->get_collection_wrapper( ).
SET HANDLER me->competitors->on_new_focus FOR coll_wrapper ACTIVATION
iv_activate.
ENDMETHOD.
這種所謂的dependent關係我在debug時發現沒發生任何的實際效果,按理說這裡設定了handler為on_new_focus應該透過raise event來呼叫,但是其最後是透過直接呼叫方法名來呼叫的。你是怎麼理解的?以及這裡的所謂dependent有什麼特別的應用場景麼?
# 回答
UI上兩個field放到同一個header view,比如product ID和product description( 相同level),但是他們綁的Genil mode裡面的field卻不是相同level,而是存在父子關係。
這種情況下需要用到connect_nodes. 目的是parent node發生變化時,自動重新整理child node,確保ui上顯示的兩個field的value是正確的。
總之,如果UI上同一level的field來自不同的UI component context node,這些context node對應繫結到的Genil mode裡面的node之間存在父子關係,則UI component context node裡面所有的child context node都應該實現on_new_focus.
這是一個比較典型的例子:
你的疑問,我猜你是對這個例子裡面直接call event handler,而不是在程式碼裡面用raise event觸發它,對吧?
你可以在connect_nodes和create_produom兩個方法裡面設定一個斷點,當你在ui上建立一個新的product時候,後者會先觸發,此時前者還未執行,因此new focus的event還未register。
而後者觸發的原因正是這個程式碼裡面manual call event handler的地方:
為什麼要加21行呢?其實這就牽涉到model node和value node的區別。在product creation scenario裡面,我們期望user在ui上的輸入沒有任何錯誤之後,才會真正走完4個level,最後在DB建立product。那麼在ui 輸入透過validation之前,所有ui輸入都是存在value node裡,然後當ui的輸入透過validation 這一時間點之後,由value node轉成model node。
2743 register了2818的new focus事件
這裡2818 拋了new focus的事件,
2743 收到事件,處理:
你把你highlight的22~25註釋掉會有什麼問題?我在product的例子裡在debugger裡面跳過這行,然後再執行下去,似乎沒問題。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2675663/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SAP CRM WebClient UI和Fiori UI混搭並存WebclientUI
- SAP CRM WebClient UI異常的持久化機制WebclientUI持久化
- 將SAP CRM WebClient UI的表格匯出成PDFWebclientUI
- SAP CRM WebClient UI的Delta處理機制介紹WebclientUI
- SAP CRM WebClient UI html 格式的 Text 顯示邏輯WebclientUIHTML
- SAP CRM WebClient UI 支援的一些 url 引數WebclientUI
- 在SAP CRM WebClient UI中用javascript觸發ABAP eventWebclientUIJavaScript
- SAP CRM WebClient UI和Hybris backoffice UI開發的相同點WebclientUI
- SAP CRM WebClient UI表格編輯模式的除錯明細WebclientUI模式除錯
- SAP CRM WebClient UI Text Type 顯示的過濾邏輯WebclientUI
- 使用Selenium自動化測試SAP CRM WebClient UIWebclientUI
- 在SAP CRM WebClient UI裡開啟ABAP Webdynpro頁面WebclientUI
- SAP CRM WebClient UI和ABAP Webdynpro頁面的互相跳轉WebclientUI
- SAP CRM WebClient UI Text 可編輯與否的控制邏輯WebclientUI
- SAP CRM WebClient UI和Hybris的controller是如何被呼叫的WebclientUIController
- Hybris service layer和SAP CRM WebClient UI架構的橫向比較WebclientUI架構
- SAP CRM WebClient UI cross component跳轉的一個具體例子WebclientUIROS
- SAP CRM WebClient UI和Hybris Commerce的懶載入機制WebclientUI
- SAP CRM WebClient UI上以html格式顯示note的問題討論WebclientUIHTML
- SAP WebClient UI的白屏問題分析WebclientUI
- SAP CRM WebClient UI上將text area裡的文字清空的後臺處理WebclientUI
- 如何把SAP CRM WebClient UI上某個欄位高亮加粗顯示WebclientUI
- Jerry答網友提問:SAP CRM WebClient UI裡的EXT,STRUCT等含義WebclientUIStruct
- 如何證明CRM WebClient UI上的應用是有狀態(Stateful)的WebclientUI
- 小程式的ui應該怎麼設計?UI
- ABAP Webdynpro和CRM WebClient UI不同的UI表現機制WebclientUI
- SAP WebClient UI的會話重啟原理WebclientUI會話
- 三種動態控制SAP CRM WebClient UI assignment block顯示與否的方法WebclientUIBloC
- Product settype在CRM WebClient UI架構中的地位WebclientUI架構
- 如何在SAP WebClient UI裡使用jChartFXWebclientUI
- 使用note++開發SAP WebClient UIWebclientUI
- 在SAP WebClient UI裡顯示倒數計時的UIWebclientUI
- 如何使用SAP CRM WebClient UI實現一個類似新浪微博的字數統計器WebclientUI
- Angular的scope. apply和CRM WebClient UI的modify方法AngularAPPWebclientUI
- 如何將SAP WebClient UI的表格匯出成PDFWebclientUI
- SAP WebClient UI One Hit Navigation的實現方法WebclientUINavigation
- 如何在CRM WebClient UI裡使用HANA Live ReportWebclientUI
- SAP CRM系統排名?SAP CRM辦公系統怎麼選?什麼是使用者口碑最好的SAP CRM系統?