`
JerryWang_SAP
  • 浏览: 1054651 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

如何分析SAP UI5应用的undefined is not a function错误

阅读更多

Recently I meet with an annoying Javascript error “undefined is not a function” during my Fiori development. After debugging the framework code for several hours

 

 

, I finally find a more efficient way to find the exact source code which causes the trouble. I would like to share this small tip with you and hope it could help.

Issue: When I am doing test on my application on a local tomcat, I could only see an empty screen.

For sure there must be some Javascript error occurred.

 

 

Open Chrome console and I see one Uncaught TypeError: undefined is not a function as expected.

 

 

Unfortunately this error is raised in UI5 framework js “UIComponent.js”, after I click the hyperlink in the screenshot above, I am automatically navigated to this file, however I do completely not understand what has happened here, in function ( q, C, U, V ).

 

 

Then I press Ctrl+Alt+Shift+P to switch on debug by marking checkbox “Use Debug Sources”.

 

 

Refresh UI and now the debug resource, UIComponent-dbg.js is loaded instead. Since what I bad need is the context of this error, or callstack, so I set a breakpoint on catch statement, line 47. Relaunch application UI and breakpoint is triggered. I add variable e in Watch Expression:

 

 

Expand variable e in Watch Expressions and put the mouse to stack. The complete callstack is instantly displayed. The topmost callstack shows the error occurs in line 154, column 36 of file ConnectionManager-dbg.js:

 

 

Then I find the root cause here:

 

 

the variable service.serviceUrl is not a String but an object of URI which does not have a method named “indexOf”:

 

 

Conclusion

Although this error is raised in UI framework js file, it is however an absolute application issue: the url of OData is defined in Configuration.js file by application as metadata, and UI framework in the runtime will ask for it by calling some callback functions defined by application and then consume it. Framework will assume always a String for OData service url returned by application. After the following fix is done on application, the issue is fixed.

 

 

Any other alternative solution?

Later on I find another approach to find the position ( line 154, column 36 ) even without debugging.

I test my app with Firefox. To my surprise, it could directly display more detail about this error compared with Chrome: “j.serviceUrl.indexOf is not a function”.

 

 

The Firefox console shows this error occurs in sap-ui-core.js line 80

 

 

However I could not find any hit by searching “indexOf” within this file.

 

 

So I just again switch to Chrome and search serviceUrl.indexOf in Chrome instead, this time I get directly what I am looking for.

 

 

From this cause it seems that these two complementary powerful tool, Chrome and Firefox, could make our life as UI5 developer more easier.

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

0
3
分享到:
评论

相关推荐

    SAP UI5 文档

    SAP UI5(用户界面5)是SAP公司开发的一个用于创建企业级Web应用程序的框架,特别是那些与SAP系统交互的应用程序。SAP UI5建立在HTML5、CSS3和JavaScript的基础上,使用了响应式设计原则,让应用程序可以在各种设备...

    SAP UI5打包成APP

    在如今数字化转型的浪潮中,SAP UI5作为一种面向企业级应用的开发框架,越来越多的企业选择使用它来构建和部署应用程序。SAP UI5以其丰富的控件库、良好的集成性以及适应性而受到企业的青睐。然而,随着移动设备的...

    SAP UI5入门

    本节将详细介绍如何使用 SAP UI5 创建一个简单的移动应用。 ##### 4.1 创建 HTML 页面 首先需要创建一个基本的 HTML 文件作为应用的基础结构。 ##### 4.2 初始化移动应用 接着初始化应用,加载 SAP UI5 的核心库...

    SAP UI5 Reference for SAP HANA

    SAP UI5与SAP HANA的结合,可充分利用SAP HANA的内存计算能力,实现实时数据处理和分析,为用户提供高效、直观的交互体验。 文档《SAP UI5 Reference for SAP HANA》提供了关于如何在SAP HANA平台上开发和运行SAP ...

    SAP UI5入门概述

    OpenUI5 与 SAP UI5 功能相似,但在企业级应用中 SAP UI5 更具优势。 - **UI5 与 SAP Fiori 的关系**:UI5 是具体的前端框架,用于实现 SAP Fiori 所定义的用户体验标准。SAP 官方基于 UI5 构建的一系列应用程序集合...

    sapui5-runtime

    通过使用SAP UI5,开发者可以创建一致的用户体验,无论用户是在桌面、平板还是手机上访问应用。 SAP UI5的核心组成部分包括: 1. **组件库**:SAP UI5包含大量预先构建的UI组件,如表格、图表、按钮、输入字段等,...

    SAPUI5-Training

    - **创建SAPUI5项目**:使用SAPUI5开发工具在Eclipse中创建项目。 - **数据绑定**:SAPUI5支持强大的数据绑定功能,能够自动更新UI显示的数据。 - **OData绑定**:特别地,SAPUI5还支持与OData服务的数据绑定,实现...

    SAPUI5_InstGuide

    1. 引言(Introduction): 简要介绍SAP UI5以及本安装指南的目的和使用范围。文档版本信息和版权声明表明了本指南的合法性和适用的版权范围。 2. 文档使用说明(About this Document): 描述了文档的适用范围、目标...

    SAP UI5 OVERVIEW

    SAP UI5 是一款由 SAP 公司开发的企业级用户界面框架,旨在为业务应用提供现代化、响应式的用户体验。它基于 HTML5 技术栈构建,支持多种设备类型,包括桌面、平板和移动设备。SAP UI5 的核心优势在于其轻量级、易于...

    Tutorial to Develop a SAPUI5 Application with oData Access

    在本教程中,我们将深入探讨如何开发一个使用SAPUI5和oData访问的数据交互应用程序。SAPUI5是SAP提供的一个强大的JavaScript框架,用于构建企业级的Web应用程序。而oData是一种开放的协议,它允许客户端通过HTTP访问...

    SAPUI5 详细讲解

    SAPUI5不仅提供了一套完整的开发工具链,还具备高度的可扩展性和兼容性,是构建现代化企业级Web应用的理想选择。无论是初学者还是经验丰富的开发者,都能从中找到合适的工具和资源,快速构建高质量的业务应用。

    SAPUI5开发环境配置

    SAPUI5(User Interface 5)是一款由SAP公司推出的开源JavaScript框架,用于构建企业级应用。它提供了丰富的UI控制库、灵活的数据绑定机制以及模块化的应用程序架构,使得开发者能够快速地构建高性能的Web应用。为了...

    sap ui5表单例子

    在本文中,我们将深入探讨如何使用SAP UI5创建表单。SAP UI5是SAP公司推出的一款用于构建企业级Web应用程序的开源框架,它提供了丰富的用户界面元素和强大的数据绑定功能,使得开发人员能够轻松创建交互式、响应式的...

    sap ui5通用组件例子

    在 SAP UI5 开发中,通用组件(commons)是开发者常用的一类元素,它们提供了许多基本的用户界面功能,能够帮助构建高效、易用的应用。本资料主要关注 SAP UI5 的通用组件及其在实际开发中的应用示例。 SAP UI5 是...

    SAPUI5概述 学习PPT 内容详细讲解

    讲解SAPUI5如何搭建,如何开发应用。 说明,文档为英文 内容如下: SAPUI5 Overview Runtime Resources Programming Applications SAPUI5 Developer Studio Creating a SAPUI5 Project Resource Handling / ...

    sap ui5工具栏例子

    本示例着重于如何在 SAP UI5 应用中创建、定制和交互工具栏。下面将详细阐述相关知识点。 一、SAP UI5 工具栏的基本概念 SAP UI5 的工具栏是基于 `sap.m.Toolbar` 控件构建的,它是一个可自定义的水平布局容器,...

    sap ui5表格例子

    SAP UI5 提供了 sap.m.Table 控件来实现这一功能,本示例将详细介绍如何使用 SAP UI5 的表格控件进行数据展示和绑定。 首先,创建一个 SAP UI5 应用的基本结构,包括 index.html、manifest.json 和控制器(如:...

    SAPUI5(SAP Fiori)运行环境介绍

    SAP Netweaver是SAP应用和技术平台的核心部分,用于构建、部署、集成和管理企业级应用程序。Netweaver提供了一个全面的技术基础,其中包括SAP Web Application Server(Web AS),它为SAPUI5应用提供了运行环境。 3...

    SAP UI5 官方培训文档(100页+)

    - **历史演变**:UI5最初被称为“Phoenix”,在2011年夏天更名为SAP UI5,因为“Phoenix”这个名称不适合公开使用。 - **主要特性**: - **基于JavaScript**:SAP UI5是一种可扩展的JavaScript基础的HTML5浏览器...

    SAPUI5: Deploy Development Environment - Deploy Development Tool Eclipse 0003

    SAPUI5是SAP开发出的一种用于构建基于HTML5的丰富Web应用程序的框架。它主要用于开发SAP Fiori应用程序,而这些应用程序提供了简化的用户界面和用户体验。SAP Fiori是一种设计语言和一组应用程序,它旨在为SAP软件...

Global site tag (gtag.js) - Google Analytics