点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
尊敬的专家,
我是UI5和工作流程主题的新手。 但是我创建了从HTML5应用启动的工作流。 批准UI在工作流任务UI中创建。 但是我无法将来自JSONresponse有效负载的数据绑定到视图表单字段上。 我关注了以下博客
我要粘贴View Xml和component.js文件中的代码。
sap.ui.define([ " sap/ui/core/UIComponent", " sap/ui/model/json/JSONModel", " ApprovalUIScreen/模型/模型", " ApprovalUIScreen/model/ContextModel" ],函数(UIComponent,JSONModel,模型,ContextModel){ "使用严格"; 返回UIComponent.extend(" ApprovalUIScreen.Component",{ 元数据:{ 清单:" json" }, appModel:{ isBusy:错误 }, 初始化:函数(){ var that = this; //调用基本组件的init函数 UIComponent.prototype.init.apply(this,arguments); //设置设备型号 this.setModel(models.createDeviceModel()," device"); //设置应用程序模型 this.setModel(new JSONModel(this.appModel)," appModel"); //获取任务实例ID并读取流程上下文 尝试{ var taskId = this._getTaskId(); var p = ContextModel.readContext(that,taskId); p.then(function(oContext){ var oStartupParameters = that.getComponentData()。startupParameters; var oTaskData = oStartupParameters.taskModel.getData(); var oDataModel = new JSONModel({ 上下文:oContext, 任务:{ 说明:"", 标题:oTaskData.TaskTitle, 优先级:oTaskData.Priority, priorityText:oTaskData.PriorityText, 状态:oTaskData.Status, statusText:oTaskData.StatusText, createdOn:oTaskData.CreatedOn, createdBy:oTaskData.CreatedBy } }); //设置任务描述 oStartupParameters.inboxAPI.getDescription(" NA",taskId).done(function(dataDescr){ oDataModel.setProperty("/img/task/description",dataDescr.Description); })。fail(function(errorText){ that._handleError.call(that,Error(errorText)); }); //设置绑定模型 //this.setModel(context); that.setModel(oDataModel," data"); //添加按钮以批准和拒绝 that._addAction(" Approve"," GENERIC_COMPLETE_TITLE"," Accept",function(button){ that._callbackAction(oDataModel," confirm"); }); that._addAction(" Reject"," GENERIC_REJECT_TITLE"," Reject",功能(按钮){ that._callbackAction(oDataModel," Reject"); }); //删除忙碌指示器 that.setBusy(false); },函数(错误){ that._handleError.call(that,err); }); } catch(err){ that._handleError.call(that,err); } }, _callbackAction:函数(oDataModel,action){ var that = this; var _checkAction = false; 如果(操作==="确认"){ _checkAction = that._checkConfirmData(oDataModel.getData()); }其他{ _checkAction = that._checkRejectData(oDataModel.getData()); } 如果(_checkAction){ var taskId = that.oComponentData.inboxHandle.attachmentHandle.detailModel.getData()。InstanceID; var p = ContextModel.triggerComplete(taskId,action,oDataModel.getData()。context); p.then(function(){ that._refreshTask.call(that); },函数(错误){ that._handleError.call(that,err); }); } }, _handleError:函数(err){ //确保忙碌指示灯熄灭 this.setBusy(false); //显示带有错误的消息框 jQuery.sap.require(" sap.m.MessageBox"); sap.m.MessageBox.error(err.toLocaleString(),{ 标题:this.getModel(" i18n")。getResourceBundle()。getText(" GENERIC_ERROR_TITLE") }); }, _checkConfirmData:函数(oData){ //TODO检查数据并返回true或false 返回true; }, _checkRejectData:函数(oData){ //TODO检查数据并返回true或false oData.setProperty("/img/context/userData/Rejected"," X"); 返回false; }, setBusy:函数(isBusy){ var oModel = this.getModel(" appModel"); oModel.setProperty("/img/isBusy",isBusy); oModel.refresh(); }, _getTaskId:function(){ var oCompontentData = this.getComponentData(); 如果(oCompontentData.startupParameters){ var startupParameters = oCompontentData.startupParameters; var taskData = startupParameters.taskModel.getData(); var taskId = taskData.InstanceID; 返回taskId; } 抛出Error(" no startupParameter available"); }, _addAction:函数(sName,sButtonText,sButtonType,fnPressed){ var oCompontentData = this.getComponentData(); 如果(oCompontentData.startupParameters){ var startupParameters = this.getComponentData()。startupParameters; startupParameters.inboxAPI.addAction({ 动作:sName, 标签:this.getModel(" i18n")。getResourceBundle()。getText(sButtonText), 类型:sButtonType },fnPressed,this); } }, _refreshTask:函数(){ this.getComponentData()。startupParameters.inboxAPI.updateTask(" NA",this._getTaskId()); } }); });
<页面标题=" {data>/task/title}" showHeader =" false" showFooter =" false"> <内容><属性> <!-从这里开始的一切只是一个示例-><状态> <项目> <!-示例代码结尾->
<内容>
您的代码和XML的每一行都有大量的空格作为前缀,这使其很难阅读。 也许您可以解决问题,使更多的人可以阅读并理解问题。 谢谢!
一周热门 更多>