微软 Power Apps model drven app 模型驱动应用使用Plugin插件实现业务流程跳转阶段功能

微软 Power Apps model drven app 模型驱动应用使用Plugin插件实现业务流程跳转阶段功能

在这里插入图片描述
模型驱动应用使用插件实现跳转业务流程阶段跳转功能

在实际操作中总会遇到使用业务流程的需求,那么如何使用plugin实现跳转阶段的功能呢
在这里插入图片描述
需求背景是主表上有业务流程,子表上有一个选项集字段,选项集字段包含所有的业务流程阶段,在更新子表的选项集时主表的业务流程阶段也需要同步跳转。
由于创建和更新查询不同,所以可以写两个plugin 也可以写在一个中使用message去控制

//创建时执行
if (Context.MessageName=="Create"){//查询刚刚触发创建的业务流程(业务流程实体)string strXml = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>";strXml += "<entity name='new_start'>";strXml += "<attribute name='businessprocessflowinstanceid' />";strXml += "<attribute name='bpf_name' />";strXml += "<attribute name='createdon' />";strXml += "<attribute name='bpf_new_salesopportunityid' />";strXml += "<attribute name='activestageid' />";strXml += "<attribute name='statecode' />";strXml += "<attribute name='statuscode' />";strXml += "<attribute name='createdby' />";strXml += "<attribute name='processid' />";strXml += "<order attribute='bpf_name' descending='false' />";strXml += "<filter type='and'>";strXml += "<condition attribute='businessprocessflowinstanceid' operator='eq' value='" + target.Id + "' />";strXml += "</filter>";strXml += "</entity>";strXml += "</fetch>";EntityCollection start = Service.RetrieveMultiple(new FetchExpression(strXml));if (start.Entities.Count > 0){Entity Entitytag = Service.Retrieve("new_salesopportunity", start.Entities[0].GetAttributeValue<EntityReference>("bpf_new_salesopportunityid").Id, new ColumnSet("new_phase", "new_businesstype"));//如果包含阶段if (Entitytag.Contains("new_phase")){//查询需要跳转的阶段(流程阶段值实体)string StageFetch = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>";StageFetch += "<entity name='processstage'>";StageFetch += "<attribute name='processstageid' />";StageFetch += "<attribute name='processid' />";StageFetch += "<attribute name='stagename' />";StageFetch += "<order attribute='stagename' descending='false' />";StageFetch += "<filter type='and'>";//这里是阶段id 也可以再查一次,这里不大严谨就直接放入了idStageFetch += "<condition attribute='processid' operator='eq' value='{5674a97c-e2d7-4ae6-9dfa-15a8ad0fa340}' />";//根据选项集的name搜索我们要跳转的阶段StageFetch += "<condition attribute='stagename' operator='eq' value='" + Entitytag.GetAttributeValue<EntityReference>("new_phase").Name + "' />";StageFetch += "</filter>";StageFetch += "</entity>";StageFetch += "</fetch>";EntityCollection steges = Service.RetrieveMultiple(new FetchExpression(StageFetch));if (steges.Entities.Count > 0){//修改流程阶段Entity getProcess = new Entity("new_start");getProcess.Id = start.Entities[0].Id;getProcess["activestageid"] = new EntityReference("processstage", steges.Entities[0].Id);//更新流程阶段Service.Update(getProcess);}}}}

下面是update时执行,我把它拆开了

else if (Context.MessageName == "Update"){Entity Entitytag = Service.Retrieve("new_salesopportunity", target.Id, new ColumnSet("new_phase", "new_businesstype"));if (target.Contains("new_phase")){//查询需要跳转的阶段(update时候直接查询流程阶段实体即可)string StageFetch = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>";StageFetch += "<entity name='processstage'>";StageFetch += "<attribute name='processstageid' />";StageFetch += "<attribute name='processid' />";StageFetch += "<attribute name='stagename' />";StageFetch += "<order attribute='stagename' descending='false' />";StageFetch += "<filter type='and'>";StageFetch += "<condition attribute='processid' operator='eq' value='{5674a97c-e2d7-4ae6-9dfa-15a8ad0fa340}' />";StageFetch += "<condition attribute='stagename' operator='eq' value='" + Entitytag.GetAttributeValue<EntityReference>("new_phase").Name + "' />";StageFetch += "</filter>";StageFetch += "</entity>";StageFetch += "</fetch>";EntityCollection steges = Service.RetrieveMultiple(new FetchExpression(StageFetch));if (steges.Entities.Count > 0){//查询触发创建的业务流程string strXml = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>";strXml += "<entity name='new_start'>";strXml += "<attribute name='businessprocessflowinstanceid' />";strXml += "<attribute name='bpf_name' />";strXml += "<attribute name='createdon' />";strXml += "<attribute name='bpf_new_salesopportunityid' />";strXml += "<attribute name='activestageid' />";strXml += "<attribute name='statecode' />";strXml += "<attribute name='statuscode' />";strXml += "<attribute name='createdby' />";strXml += "<attribute name='processid' />";strXml += "<order attribute='bpf_name' descending='false' />";strXml += "<filter type='and'>";strXml += "<condition attribute='bpf_new_salesopportunityid' operator='eq' value='" + target.Id + "' />";strXml += "</filter>";strXml += "</entity>";strXml += "</fetch>";EntityCollection start = Service.RetrieveMultiple(new FetchExpression(strXml));if (start.Entities.Count>0){//修改流程阶段Entity getProcess = new Entity("new_start");getProcess.Id = start.Entities[0].Id;getProcess["activestageid"] = new EntityReference("processstage", steges.Entities[0].Id);//更新流程阶段Service.Update(getProcess);}}}}

然后把这个plugin注册在子表上的create 和 update 即可,这里看具体的业务需求实现
当然如果觉得plugin麻烦也可以同理写一个前端的js来实现。
在这里插入图片描述

感谢大佬指正 小Monkey
如果你觉得有用的话,就留个赞吧!蟹蟹

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/640920.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Python环境中运行R语言的配环境实用教程

前情提要 在做一些生物信息与医学统计的工作&#xff0c;本来偷懒希望只靠python完成的&#xff0c;结果还是需要用R语言&#xff0c;倒腾了一会儿&#xff0c;调成功了&#xff0c;就记录一下这个过程。 我的环境&#xff1a; win10, pycharm, R-4.3.2 首先&#xff0c;我们…

Redis 面试题 | 05.精选Redis高频面试题

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

muduo网络库剖析——线程Thread类

muduo网络库剖析——线程Thread类 前情从muduo到my_muduo 概要框架与细节成员函数使用方法 源码结尾 前情 从muduo到my_muduo 作为一个宏大的、功能健全的muduo库&#xff0c;考虑的肯定是众多情况是否可以高效满足&#xff1b;而作为学习者&#xff0c;我们需要抽取其中的精…

OpenCV书签 #差值哈希算法的原理与相似图片搜索实验

1. 介绍 差值哈希算法&#xff08;Difference Hash Algorithm&#xff0c;简称dHash&#xff09; 是哈希算法的一种&#xff0c;主要可以用来做以图搜索/相似图片的搜索工作。 2. 原理 差值哈希算法通过计算相邻像素的差异来生成哈希&#xff0c;即通过缩小图像的每个像素与平…

高效构建Java应用:Maven的使用总结

一、Maven简介和快速入门 1.1 Maven介绍 Maven-Introduction Maven 是一款为 Java 项目构建管理、依赖管理的工具&#xff08;软件&#xff09;&#xff0c;使用 Maven 可以自动化构建、测试、打包和发布项目&#xff0c;大大提高了开发效率和质量。 总结&#xff1a;Maven…

excel(wps)之vlookup函数合并sheet数据

VLOOKUP函数是Excel中的一个纵向查找函数&#xff0c;它与LOOKUP函数和HLOOKUP函数属于一类函数&#xff0c;在工作中都有广泛应用&#xff0c;例如可以用来核对数据&#xff0c;多个表格之间快速导入数据等函数功能。功能是按列查找&#xff0c;最终返回该列所需查询列序所对应…

DEB方式安装elastic search7以及使用

参考&#xff1a;https://www.cnblogs.com/anech/p/15957607.html 1、安装elastic search7 #手动下载安装 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.1-amd64.deb wget https://artifacts.elastic.co/downloads/elasticsearch/elastics…

深度学习(4)--Keras安装

目录 Keras安装: 1.1.安装CUDA/cuDDN工具包 1.1.1.安装前准备 1.1.2.安装CUDA 1.1.3.安装cuDDN 1.2.安装Anaconda 1.3.安装tensorflow框架 1.3.1.使用cmd安装 1.3.2.使用Anaconda Prompt安装 1.4.安装Keras框架 1.5.打开jupyter notebook&#xff0c;执行import调用 Keras…

18.鸿蒙HarmonyOS App(JAVA)日期选择器-时间选择器

18.鸿蒙HarmonyOS App(JAVA)日期选择器-时间选择器 点击button按钮触发事件显示月份与获取的时间 Button button3 (Button) findComponentById(ResourceTable.Id_button3);button3.setClickedListener(new Component.ClickedListener() {Overridepublic void onClick(Compon…

基于springboot酒店预订系统

开发工具&#xff1a;IDEA 服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8 项目构建&#xff1a;maven 数据库&#xff1a;mysql5.7 前端技术&#xff1a;AdminLTEjQueryvue.jselementuijsp 服务端技术&#xff1a;springbootmybatis 本系统功能包括&#xff1a; 一、…

实验:MySQL 客户端SocketTimeout 抓包分析

实验准备 服务端环境准备 服务器信息 阿里云 99 大洋白嫖机 $ cat /proc/version Linux version 5.15.0-83-generic (builddlcy02-amd64-027) (gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #92-Ubuntu SMP Mon Aug 14 09:30:42 UT…

特斯拉FSD的神经网络(Tesla 2022 AI Day)

这是特斯拉的全自动驾驶&#xff08;Full Self Driver&#xff09;技术结构图&#xff0c;图中把自动驾驶模型拆分出分成了几个依赖的模块&#xff1a; 技术底座&#xff1a;自动标注技术处理大量数据&#xff0c;仿真技术创造图片数据&#xff0c;大数据引擎进不断地更新&…

UML中的实现关系

在UML&#xff08;统一建模语言&#xff09;中&#xff0c;“实现”关系是指一个类&#xff08;实现类&#xff09;实现一个接口或抽象类的方法的情况。这种关系通常用于指定类如何实现某个特定的接口规范。 UML中的实现关系 在UML类图中&#xff0c;实现关系用一条带有空心箭…

win10 任务栏设置透明

先看效果图 第一步&#xff1a;按下“Win R”组合键&#xff0c;输入“regedit”并回车&#xff0c;打开注册表编辑器。 第二步&#xff1a;在注册表中找到路径“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced”。 第三步&#xff1a;在…

机器人3D视觉引导半导体塑封上下料

半导体塑封上下料是封装工艺中的重要环节&#xff0c;直接影响到产品的质量和性能。而3D视觉引导技术的引入&#xff0c;使得这一过程更加高效、精准。它不仅提升了生产效率&#xff0c;减少了人工操作的误差&#xff0c;还为半导体封装技术的智能化升级奠定了坚实的基础。 传统…

RK3568笔记十一:mpp编解码

若该文为原创文章&#xff0c;转载请注明原文出处。 主要是想测试MPP的解码&#xff0c;为后续做测试。 一、环境 1、平台&#xff1a;rk3568 2、开发板:ATK-RK3568正点原子板子 3、环境&#xff1a;buildroot 二、编译 使用的是正点原子提供的虚拟机&#xff0c;搭建好环…

yolov5 opencv dnn部署自己的模型

yolov5 opencv dnn部署自己的模型 github开源代码地址使用github源码结合自己导出的onnx模型推理自己的视频推理条件c部署c 推理结果 github开源代码地址 yolov5官网还提供的dnn、tensorrt推理链接本人使用的opencv c github代码,代码作者非本人&#xff0c;也是上面作者推荐的…

mysql进阶-执行计划

目录 1. 概念 2. 使用 3. 具体相关字段含义 3.1 id 3.2 select_type 3.3 table 3.4 partition 3.5 type 3.6 possible_key 3.7 key 3.8 key_len 3.9 ref 3.10 row 3.11 filtered 3.12 extra 1. 概念 一条语句通过优化器之后&#xff0c;会生成具体的执行计划用…

HuoCMS|免费开源可商用CMS建站系统HuoCMS 2.0下载(thinkphp内核)

HuoCMS是一套基于ThinkPhp6.0Vue 开发的一套HuoCMS建站系统。 HuoCMS是一套内容管理系统同时也是一套企业官网建设系统&#xff0c;能够帮过用户快速搭建自己的网站。可以满足企业站&#xff0c;外贸站&#xff0c;个人博客等一系列的建站需求。HuoCMS的优势: 可以使用统一后台…

VSCode Python Windows环境下创建虚拟环境,隔离每个项目的依赖pip包,推荐使用!

VSCode Python Windows环境下创建虚拟环境 Visual Studio Code 可以隔离不同项目的pip依赖包&#xff0c;防止不同版本的干扰**&#xff08;推荐使用&#xff09;** 先在python官网https://www.python.org/downloads/下载需要的python版本&#xff08;我选择了3.9.8&#xff09…