点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我构建了一个简单的UI应用程序,其中包含几个字段(其中一个是数量),并将其附加到用户任务。 一切正常。 现在,我要捕获用户批准工作项时所做的更改。 我想存储值sin工作流上下文,以便可以在工作流的后续步骤中访问它们。 在这方面,我读过很少的博客,其中大多数都在谈论将变量添加到工作流上下文中,但实际上并没有从UI中读取值。 我将下面的代码粘贴到UI5的view和component.js中。
查看XML
<页面> <内容> <输入值=" {/PrNumber}" id =" input6" width =" 100%" editable =" false"/>
我的JSON有效负载来创建WF实例
{ " PreqItem":" 00010", "材料":" 000000000000000011", " Plant":" 5000"," 数量":" 10.000", " Delivdate":" 20181212", " PrNumber":" 0010000550" }
component.js
sap.ui.define([ " sap/ui/core/UIComponent", " sap/ui/设备", " sampleui/sampleui/model/models" ],功能(UIComponent,设备,模型){ "使用严格"; 返回UIComponent.extend(" sampleui.sampleui.Component",{ 元数据:{ 清单:" json" }, /** *该组件在应用程序启动期间由UI5自动初始化,并一次调用init方法。 * @上市 * @override */ 初始化:函数(){ //调用基本组件的init函数 UIComponent.prototype.init.apply(this,arguments); //启用路由 this.getRouter()。initialize(); //设置设备型号 this.setModel(models.createDeviceModel()," device"); //获取任务数据 var startupParameters = this.getComponentData()。startupParameters; var taskModel = startupParameters.taskModel; var taskData = taskModel.getData(); var taskId = taskData.InstanceID; //初始化模型 var contextModel = new sap.ui.model.json.JSONModel("/img/bpmworkflowruntime/rest/v1/task-instances/" + taskId +"/img/context"); contextModel.setDefaultBindingMode(sap.ui.model.BindingMode.TwoWay); this.setModel(contextModel); //添加动作 startupParameters.inboxAPI.addAction({ 行动:"批准", 标签:"批准" },功能(按钮){ this._completeTask(taskId,true); }, 这个); startupParameters.inboxAPI.addAction({ 动作:"拒绝", 标签:"拒绝" },功能(按钮){ this._completeTask(taskId,false); }, 这个); }, _completeTask:函数(taskId,审批状态){ var token = this._fetchToken(); //var quan = sap.ui.getCore()。byId(" input4")。getValue(); $ .ajax({ 网址:"/img/bpmworkflowruntime/rest/v1/task-instances/" + taskId, 方法:" PATCH", contentType:" application/json", 异步:错误, 数据:" {\"状态\":\"已完成\",\"上下文\":{\"新状态\":\"" +批准状态+" \"}}", 标头:{ " X-CSRF-Token":令牌 } }); this._refreshTask(taskId); } ,_fetchToken:function(){ var令牌; $ .ajax({ 网址:"/img/bpmworkflowruntime/rest/v1/xsrf-token", 方法:" GET", 异步:错误, 标头:{ " X-CSRF-Token":"获取" }, 成功:功能(结果,xhr,数据){ 令牌= data.getResponseHeader(" X-CSRF-Token"); } }); 返回令牌; }, _refreshTask:function(taskId){ this.getComponentData()。startupParameters.inboxAPI.updateTask(" NA",taskId); } }); });
您好Sankar,
从工作流的角度来看,如何处理Component.js中的UI模型没有特殊处理,但这是标准的UI5代码。
例如,要访问名为"数据"的UI5模型,您将在Component.js中使用以下代码段:
此致
网格
是的,您的理解是正确的。
一周热门 更多>