在工作流任务UI中将数据绑定到View

2020-08-23 14:59发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家,

我是UI5和工作流程主题的新手。 但是我创建了从HTML5应用启动的工作流。 批准UI在工作流任务UI中创建。 但是我无法将来自JSONresponse有效负载的数据绑定到视图表单字段上。 我关注了以下博客

https://blogs.sap.com/2017/10/12/part-1a-build-your-custom-html5-application-in-sap-webide-for-workflow/

我要粘贴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">
 <内容>
 
 <属性>
 
 
 <状态>
 
 
 
 
 <!-从这里开始的一切只是一个示例->
 
 <项目>
 
 
 
 
 
 
 
 
 
 <内容>
 
  
  
 
 
  
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
  
 
  
 
 
 <!-示例代码结尾->
 
 


 

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家,

我是UI5和工作流程主题的新手。 但是我创建了从HTML5应用启动的工作流。 批准UI在工作流任务UI中创建。 但是我无法将来自JSONresponse有效负载的数据绑定到视图表单字段上。 我关注了以下博客

https://blogs.sap.com/2017/10/12/part-1a-build-your-custom-html5-application-in-sap-webide-for-workflow/

我要粘贴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">
 <内容>
 
 <属性>
 
 
 <状态>
 
 
 
 
 <!-从这里开始的一切只是一个示例->
 
 <项目>
 
 
 
 
 
 
 
 
 
 <内容>
 
  
  
 
 
  
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
  
 
  
 
 
 <!-示例代码结尾->
 
 


 
付费偷看设置
发送
1条回答
绿领巾童鞋
1楼-- · 2020-08-23 15:36

您的代码和XML的每一行都有大量的空格作为前缀,这使其很难阅读。 也许您可以解决问题,使更多的人可以阅读并理解问题。 谢谢!

一周热门 更多>