关于crm:SAP-C4C-OBNObject-Based-Navigation不能工作的原因分析

2次阅读

共计 3228 个字符,预计需要花费 9 分钟才能阅读完成。

My series of Cloud Application Studio Blogs

  • How to detect EditMode in an Embedded Component
  • Step by step to enable your custom BO with attachment upload functionality
  • Step by step to create an Adobe Print form in Cloud application Studio
  • How to render PDF which displays picture from the image attachment of your custom BO
  • How to get current logged on business user’s employee information and assigned organization unit via ABSL
  • How to implement dynamic access control based on custom BO using OWL
  • How to make Code List Restriction work when control field and restricted field are not on the same BO
  • How to implement custom number range using custom business object
  • Two approaches to create Code List in Cloud Studio
  • Create Dynamic Code List via Custom Business Object Association
  • Step by step to develop Thing Type based navigation and BO Object based navigation
  • Put Extension field into embedded component and make it visible in Standard UI
  • One possible cause that embedded component fails to display in UI
  • Step by step to create HTML Mashup and make it visible in UI
  • Step by step to enable Text Collection for your custom BO
  • Automatically send an Email notification to line manager via Workflow in Account application
  • Step by step to create Object Value Selector in Cloud Application Studio
  • Two approaches to fill an UI field with dedicated logic implemented in Cloud Application Studio
  • How to execute BO action on multiple selected BO instances in AdvancedListPane
  • How to add custom validation logic on mobile phone field in Contact TI
  • An example about how I analyze why some OBN button does not work
  • Step by step to create OBN button which navigates from standard UI to custom UI

I have created two OBN button in Service Request TI item table’s toolbar via extensibility explorer.

My expectation is that once button“toStandardQC”is pressed, the standard Service Request QC view will be displayed, see example below.
And When button“Jerry Create”is clicked, a new custom QC view will be displayed instead. As you can see from screenshot above, the“Jerry Create”button is disabled in the runtime. Why?

Here below is how I analyze this issue.

(1) In design time the enable attribute of this button is set as true as expected. Note down the name of automatically generated event handler for onClick event:EV_NAME_f8067313a9424b3e89b2370b3b2a1f5a

If you set breakpoint in file ButtonWrapper, function initializeControl, you can observe that the instance of this button is created in the runtime.

(2) The enable property of OBN button is bound to the automatically generated data model field, whose path is/EventHandler/EV_NAME_f8067313a9424b3e89b2370b3b2a1f5a.Enabled.
For the button“JerryCreate”, the value of bound model field is false, so in the runtime this OBN button is disabled.

Just check the other OBN button which works correctly, and the bound data field has value“true”.

You can also inspect the data model field value by appending“debugMode=true”in C4C URL and check value from Client Inspector in the popup.

(3) Now we need to figure out why data model field for“Jerry Create”button is determined as false in the runtime.
In Chrome development tool, check the HTTP response for ServiceRequest TI page. Search the response by keyword“1f5a”:

In the hit you can find the root cause: the OBN target – my custom new QC view, is not put to any work center yet.

So solution is quite simple, just create a new work center, a new work center view and put this new QC view to the work center view, and assign the work center view to my test user.

After that the“Jerry Create”OBN button works as well:

Once created, the new custom QC view could be displayed correctly as well.

For the complete solution for this OBN enablement, please refer to blog Step by step to create OBN button which navigates from standard UI to custom UI.

要获取更多 Jerry 的原创文章,请关注公众号 ” 汪子熙 ”:

正文完
 0