真实体验|微信新推出的工作流表现如何?

news2025/1/2 4:30:58

以小程序公众号消息推送为例,全面真实体验微信工作流新能力。详解到底能不能用?谁适合用?

上周微信云开发上线了「工作流」能力。支持通过拖拉拽的方式搭建流程,支持调用、时间、消息通知、支付等多种驱动场景的业务计算,主要目的是降低开发门槛,提升开发效率。

一、什么是工作流?

工作流这个概念我们并不陌生,其概念发端于上世纪70年代,正常解释为:对工作流程及其各操作步骤之间业务规则的抽象、概括描述。

说白了就是我们在做任何任务时(不管是线下任务还是线上任务),在组织团队中或者合作关系的他人之间,按照既定的规则完成工作的过程,都可以用一个流程图来清楚的表达出来。

下面是企业员工入职流程的流程图,无需繁杂的文字描述,任何人都能够通过该图清楚整个流程,这其实就是一种工作流。

为实现特定的业务目标,多个参与者之间按某种预定规则传递文档、信息或者任务可以被称为特定业务目标的工作流程。

而如果使用计算机对上述工作流程抽象实现,让计算机能够参与其中,自动化的完成信息交互或者相关任务的设计,就被称为工作流。

二、微信推出的工作流体验

在小程序开发中,除了业务数据的增删改查之外,还有些业务需要对接外部的平台。比如

1.小程序用户在客服中发送消息,需要根据消息关键词自动匹配相应回答并显示。

2.小程序接收到用户支付后,完成订单的状态扭转和相应的通知发送。

3.小程序用户撤销信息授权时,执行相关的数据库信息删除工作。

4........

我们在与这些外部平台来做连接的过程中,会发现其都是可抽象化的,可以简化成若干个事件驱动。比如微信支付成功或失败,就可以转化为微信支付的事件驱动,当支付完成时,特定的执行什么事情。

单纯用代码来实现时,我们需要做很多事情,包括事件监听链接的配置,事件内容解析,同步或异步回复。开发成本还是比较高的,并且有时候受经验限制会没办法对接的非常好。

工作流将微信相关的事件整合进来,你可以通过配置关键信息,直接接入事件的触发,然后根据你自己的业务逻辑设计整个处理链路。

比如接收小程序用户消息做自动回复的工作流如下:

在触发上直接配置小程序appid和token,就可以完成接入。

我们以消息自动回复举例子,完成整个工作流的体验

1.  首先需要在小程序开发者工具IDE中,打开云开发云函数控制面板,新建时选择工作流,然后创建消息触发,如下图演示:

工作流是由触发器节点开始的,目前支持的触发器节点如下:

2. 对触发器节点配置一些基本信息,我们点击触发节点,在右侧抽屉栏中对应的填写appid,以及token还有解密AESkey

这样我们就配置好了触发节点,通过模拟数据或者实际监听推送来完成后续的工作流建设。

当你需要真实的调试时,需要在小程序后台配置相关的信息,下图appid、token、EncodingAESKey和url需要对应的填入公众号或者小程序后台。

3. 我们添加一些条件判断,用来判断事件监听的类型,针对不同的类型分开处理。比如「用户消息」和「撤销信息」我们就需要对应的做不同的流程。

我们可以通过模拟数据或者真实监听来看到触发时接收的消息结构,以便于后面我们做相关判断处理。如下图我们知道接收文本消息时,MsgType 为 text。

接下来我们做个判断,来区分用户发送文本消息和图片消息,如流程演示:

添加条件分支并编辑的操作如上,我们相对应的做出监听图片以及其他的分支,如下图:

4. 有了条件分支我们就可以相对应的做处理了,在这里为了简化演示,我们直接用被动回复来做(主要注意被动回复只在公众号生效,小程序需要调用接口回消息)。返回的格式我们还是要遵循微信文档描述的响应模式。

我们来实践一下,如下图:

对应的我们给所有的条件都设置上返回内容,当遇到我们没有匹配的MsgType时,直接返回空消息告诉微信服务器我们收到消息了,就不用持续发送了。

5. 设置完毕后,我们就开始整体流程调试,点击右上角「流程调试」,前面我们配置小程序后台之后,我们就可以在调试时主动发送小程序客服消息来实现触发。如下演示:

我们可以看到我们的判断逻辑生效了,工作流会根据我们发送的消息类型完成扭转。

如果调试没有问题,就可以发布了,发布后你可能需要在公众号或者小程序后台更改一下推送URL为正式URL,之前的是调试用的。

除了由微信消息触发之外,工作流还提供了很多触发节点,比如HTTP调用,组件访问,微信支付事件等。

以上就是一些基本的操作介绍,如果你觉得这样操作点击很多,你想在现成的上面修改,可以在开通时直接选择相应的模板,这些模板都是常见场景可用的。

三、总结

工作流通过将判断逻辑和接入节点抽象化,来做到所见及所得的逻辑编写,上手门槛很低,只需要有一定的逻辑思维就可以自己构建一个基本的工作流,配合一些简单的代码编写,完成稍微复杂的工作流不是问题。

有的时候作为产品经理在策划功能的时候,都喜欢用UI界面做前端设计,用流程图做后端逻辑设计。产品经理可以用工作流来自己搭建验证策划的功能,跟研发同学沟通会更加轻松,甚至自己就可以实现一些基础的,不用麻烦研发同学,自力更生了。

另外工作流的模板可以共建起来,任何人都可以上传自己制作的工作流给其他人用。如果场景和工作流节点有其他需求,可以在这里提交。

如果你在使用中有任何疑点或者寻求方案,可以联系微信云服务的架构师。

关于本文中提出的观点和内容,如果你有其他补充和意见,欢迎在文章下留言~

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

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

相关文章

开源图床LightPicture搭建本地图片管理系统并实现无公网IP远程访问

文章目录 1.前言2. Lightpicture网站搭建2.1. Lightpicture下载和安装2.2. Lightpicture网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 现在的手机越来越先进,功能也越来越多,而手机…

工具 | WSL | WSL动不动就卡死

工具 | WSL | WSL动不动就卡死 PS C: Users flyer> ws1 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败 Error code: Ws1/Service/0x8007274c wsl动不动就卡住 Error code: Wsl/Service/0x8007274c

文心一言 VS 讯飞星火 VS chatgpt (181)-- 算法导论13.4 4题

四、用go语言,在 RB-DELETE-FIXUP 代码的哪些行中,可能会检查或修改哨兵 T.nil ? 文心一言: RB-DELETE-FIXUP 是红黑树中的一个操作,用于在删除一个节点后进行必要的调整以保持红黑树的性质。在这个过程中&#xff0…

Alinx ZYNQ 7020 LED调试--in RAM

设置拨码开关为JTAG方式 烧写LED bit stream a. 点击“Program device”烧录程序到FPGA中(重新上电程序就丢失了) b. /01_led/led.runs/impl_1/led.bit 程序烧录到Flash中 ZYNQ与以往的直接烧录Flash不同,首先必须PS,然后烧…

新定义51单片机(RD8G37)实现测距测速仪

本文描述用新定义51单片机(RD8G37)超声波一体测距传感器实现简单的测距测速仪。 测距仪演示效果 新定义RD8G37Q48RJ开发板 超声波测距模块: 8位并口屏 1、main.c unsigned short timeConsuming0; unsigned int oldDistance;void rectClearS…

Linux基础命令(超详细)

1、Linux命令入门 命令: 告诉我们要做什么事 选项: 规定做事的方式参数: 规定对谁做这件事 ls命令 # ls 展示目录中的文件信息 ls # -a 展示所有文件内容,包括隐藏文件(以点开头的文件内容) # -l 以列表形式详细展示文件内容 # -h 以合适的单位展示文件大小, 配合-l进行使用 #…

Google推广之关键字匹配类型

做过线上推广的小伙伴们应该都知道,关键字有肯定和否定形式,今天我们主要跟大家分享肯定式关键字的四种匹配类型。不同匹配面向的客户群体不尽相同,比如,我们可以使用“广泛匹配”类型,向广泛的受众群体展示广告&#…

电梯节能落座-智慧停车场️,电梯不仅可载人也可以载汽车!

电梯不仅可载人也可以载汽车哦! 在北京市丰台区,有这么一个智慧停车场🅿️ ,共298个停车位,全部智能一体化,简直是“豪华” “智能” 的象征。 523能源:小伍,你跑题了... 小伍&am…

2023年的年度总结PPT不一样了?

添加图片注释,不超过 140 字(可选) 到了年终,需要撰写年度总结和制定计划了吗? 找不到合适的 PPT 模板? 感到缺乏灵感? 为做 PPT 绞尽脑汁? 为何不试试 AI 写 PPT 呢&#xff1f…

Docker篇之修改docker默认磁盘占用目录

一、前言 通常情况下,当我们默认安装docker服务时,在不指定默认存储路径时,docker会自动创建目录,经常会出现打满根目录的情况。 默认存储路径为:/var/lib/docker 下 可通过如下进行查询: docker info输出…

Pandas.DataFrame.drop() 删除行或列 详解 含代码 含测试数据集 随Pandas版本持续更新

关于Pandas版本: 本文基于 pandas2.1.2 编写。 关于本文内容更新: 随着pandas的stable版本更迭,本文持续更新,不断完善补充。 Pandas稳定版更新及变动内容整合专题: Pandas稳定版更新及变动迭持续更新。 Pandas API参…

web3.0基本概念简析

web3.0概念简析 web3.0的发展史 web1.0 仅用于展示,无法进行点赞评论等交互 web2.0 不仅可以展示,还可以上传视频、图片等,用户可以参与创作内容并获取收益。但还是中心化的模型 缺点 1 机械化的人机验证 2 账户安全无法保证 多年未登陆…

Mechanics 1-Mechanics Toolkit(课件-编辑中)

1.1 Quantities,Units&Modelling 1.1.1 Scalars(标量) & Vectors(矢量) Scalars: 跑步速度5m/s 实际应用中为什么要引入Vector? 这个数据如果在导弹拦截中够用吗? 除了速率(Speed),还需要发射方向(direction) 因此用Spe…

[C++] opencv - Mat::convertTo函数介绍和使用场景

Mat::convertTo()函数 Converts an array to another data type with optional scaling. 该函数主要用于数据类型的相互转换。 The method converts source pixel values to the target data type. saturate_cast<> is applied at the end to avoid possible overf…

安装Sql2012提示:需要更新以前的Visual Studio 2010 实例

解决方案&#xff1a;先卸载visual studio 2010 ,安装SQL2012

net 8.0 + mysql 数据库的应用与实现

首先引入nutget包 第二步根目录创建一个文件夹名字自取&#xff0c;再建一个SqlContent类 using Microsoft.EntityFrameworkCore; using System.Data.Entity; using DbContext Microsoft.EntityFrameworkCore.DbContext;namespace YuanFuTouBao2022Core.Dao {public class Sql…

C语言位域定义与使用

参考文章&#xff1a; 【C语言】详解位域定义与使用_c 语言定义位-CSDN博客 代码有修改&#xff0c;主要是变量初始化&#xff0c;原程序可能相应内存不能写。且第二个字节F不好区分各位。 #include <stdio.h>typedef struct {unsigned short b1 : 1;unsigned short b…

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用相机日志跟踪功能(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用相机日志跟踪功能&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机NEOAPI SDK和短曝光功能的技术背景Baumer工业相机通过NEOAPI SDK使用相机日志跟踪功能1.引用合适的类文件2.通过NEOAPI SDK使用相机日志跟踪功能3.通…

群晖NAS搭建WebDav结合内网穿透实现公网访问本地影视资源

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

SAP 中的外部接口:预扣税

文章目录 1 Introduction2 implementation3 Summary 1 Introduction We use BP create WTAX_TYPE ,I don’t find a bapi. We will update for it . We will impement WTax type , WTax code ,Subject in the ‘BP’. 2 implementation UPDATE lfbw SET witht gs_alv-wit…