亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
801
2025-04-01
當試圖打開一個Opportunity時,
系統會進行如下一系列的權限檢查:
1. 檢查Authorization object CRM_ORD_OP:
此處會檢查當前user的partner function和partner function category的設置情況:
如果檢查失敗,會拋出error message:
2. 進行第二輪針對CRM_ORD_LP的檢查:
3. 如果再失敗,進行第三輪對CRM_OPP的權限檢查:
45代表Allow:
4. 如果再失敗,進行第四輪對CRM_ORD_RS的權限檢查:
如果都失敗,將看到如下錯誤信息:
可以用一張圖概括:
1. 使用業務角色ANALYTICSPRO登錄WebClient UI:
2. 點擊新建按鈕:
為新建的報表分配一個HANA Live Query:
指定Query的參數:
上圖WebClient UI選擇的參數都定義在HANA studio里:
給報表添加屬性:
添加measure:
之后報表即可在WebClient UI里成功渲染:
并且也能在CRM Fiori的Customer Report應用里看到該report。
如果想獲得更多關于上圖提到的Fiori應用,請查看我的公眾號文章 SAP Fiori應用的三種部署方式
SAP的Fiori應用是通過OData和后臺交互的。在使用Fiori應用時您可能會遇到這樣的錯誤消息:
這個錯誤消息沒有包含有助于partner或者客戶定位問題根源的線索。
下面是如何在后臺找出問題根源的步驟。
1. 在Fiori前臺系統上使用事務碼/IWFND/ERROR_LOG找到當前OData出錯對應的錯誤日志:
關于Fiori前后臺系統的區分,參考我的微信公眾號文章SAP Fiori應用的三種部署方式
2. 點擊工具欄上的按鈕"Active Source"。然后我們會被自動帶到拋出錯誤消息的代碼位置,即下圖的第86行。這個代碼是Fiori前臺系統進行出錯處理的框架代碼,我們就在第86行設置一個斷點。
返回Fiori UI重現錯誤,斷點觸發,默認的調用棧是上圖設置的斷點,即方法HANDLE_RFC_FAILURE內部。此時我們跳到調用棧的外面一層,即方法CALL_BACKEND, 如下圖所示。這個方法的exceptions參數lv_rfc_message的內容即具體的錯誤消息。
如果您夠細心,您或許會發現有的SAP Fiori應用的footerbar區域內的按鈕有高亮顯示,有的則沒有。
如何自己分析這兩種按鈕的實現原理?
還是借助Chrome Development Tool。更多Chrome development tool的使用技巧,參考我的博客
Chrome Development Tool tips used in my daily work
使用network tab可以觀察到實現高亮實現的CSS class:
記下這個css class的名稱sapMBtnEmphasized:
由此可見,這個class是在如下代碼處設置的:
只要Fiori應用程序的controller是繼承自BaseDetailController,則edit button一定會highlight:
一個很小的tip:比如我想把UI5表格控件里的每列設置成寬度根據顯示的內容自適應,需要知道應該調用控件的哪個方法來實現。
一種辦法當然是查SAP幫助文檔,得知需要調用控件的公有方法setAutoSizable。
另一種辦法是在debugger里研究,因為根據經驗,這種公有方法的名稱按照慣例一般都是以set開頭,如下圖:
根據經驗從調試器里的set自動完成列表里的所有條目定位到應該調用setAutoResizable這個方法。下一個問題就是這個方法到底應該傳什么參數進去。
直接在調試器里執行方法getMetadata, 展開返回的結果:
在_mProperties的autoResizable里得知這個set方法應該傳一個boolean類型的參數進去:
反思
這種思路是在runtime時獲取控件的元數據,這和Java的反射,ABAP的RTTI實際上異曲同工。
API ERP
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。