Skip to Content
avatar image
Former Member

SAPUI5 APP for Workflow Error -- - Cannot read property ‘startupParameters’ of undefined

I made a SAPUI5 APP for inserting to the workflow according to this artical:

How to build a simple approval UI

When I build the APP, there was an error facing:

Uncaught TypeError: Cannot read property 'startupParameters' of undefined

In the project, the wrong code that caused the error is in the Component.js:

var startupParameters = this.getComponentData().startupParameters;

in Debug, this.getComponentData() is undifined, it doesn't get a return value.

Does anybody know how could I solve the issue?

Here is the whole code:

Component.js

sap.ui.define([
	"sap/ui/core/UIComponent",
	"sap/ui/Device",
	"LaunchWorkflow/model/models"
], function(UIComponent, Device, models) {
	"use strict";


	return UIComponent.extend("LaunchWorkflow.Component", {


		metadata: {
			manifest: "json"
		},


		/**
		 * The component is initialized by UI5 automatically during the startup of the app and calls the init method once.
		 * @public
		 * @override
		 */
		init: function() {
			// call the base component's init function
			UIComponent.prototype.init.apply(this, arguments);
			// enable routing
			this.getRouter().initialize();
			
			var startupParameters = this.getComponentData().startupParameters;
			var taskModel = startupParameters.taskModel;
			var taskData = taskModel.getData();
			var taskId = taskData.InstanceID;


			// initialize model
			var contextModel = new sap.ui.model.json.JSONModel("/bpmworkflowruntime/rest/v1/task-instances/" + taskId + "/context");
			contextModel.setDefaultBindingMode(sap.ui.model.BindingMode.OneWay);
			this.setModel(contextModel);			
			//add actions
			startupParameters.inboxAPI.addAction({
				action: "Approve",
				label: "Approve"
			}, function(button){
				this._completeTask(taskId, true);
			}, this);
			startupParameters.inboxAPI.addAction({
				action: "Reject",
				label: "Reject"
			}, function(button){
				this._completeTask(taskId, false);
			}, this);
		},
		_completeTask: function(taskId, approvalStatus) {
			var token = this._fetchToken();
			$.ajax({
				url: "/bpmworkflowruntime/rest/v1/task-instances/" + taskId,
				method: "PATCH",
				contentType: "application/json",
				async: false,
				data: "{\"status\": \"COMPLETED\", \"context\": {\"approved\":\"" + approvalStatus + "\"}}",
				headers: {
					"X-CSRF-Token": token
				}
			});
			this._refreshTask(taskId);
		},
		_fetchToken: function() {
			var token;
			$.ajax({
				url: "/bpmworkflowruntime/rest/v1/xsrf-token",
				method: "GET",
				async: false,
				headers: {
					"X-CSRF-Token": "Fetch"
				},
				success: function(result, xhr, data) {
					token = data.getResponseHeader("X-CSRF-Token");
				}
			});
			return token;
		},
		_refreshTask: function(taskId) {
			this.getComponentData().startupParameters.inboxAPI.updateTask("NA", taskId);
		}
	});
});

here is the image the APP after launching:

approve-reject.jpg (118.4 kB)
Add comment
10|10000 characters needed characters exceeded

  • Hi,

    As I saw your comments exchange with the writer of the blog, I understand your question has been resolved. Please close this question and specify the solution.

  • Get RSS Feed

2 Answers

  • Best Answer
    Jan 24 at 07:18 PM

    Hi - I would normally suggest that you're experiencing this problem as you're running your task UI app outside the context of the My Inbox app (e.g. testing it directly from within the SAP Web IDE) - but as you've shown a screenshot of the app running successfully, I'm a little confused.

    But I'm going to guess that this is the problem despite the successful screenshot ... and point you to a post I wrote recently that describes this challenge, and how I overcame it. Look in particular at the section headed "Testing only".

    https://blogs.sap.com/2018/01/22/discovering-scp-workflow-component-startup/

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      Hi DJ,

      I'm very new in workflow. Recently I've read lots of articles were written by you and other experts. I'll read this blog you mentioned, and I'm glad to discuss it with you very soon.

      Best Regards,

      Joy Lee

  • Jan 12 at 05:22 AM

    Hello, Junyi, I guess this issue is because the cache from the server not be cleaned. You could just rebuild your project, thanks

    Add comment
    10|10000 characters needed characters exceeded