找回密码
 立即注册

QQ登录

只需一步,快速开始

请上传宽度大于 1200px,高度大于 164px 的封面图片
    调整图片尺寸与位置
    滚轮可以放大缩小图片尺寸,按住图片拖动可调整位置,多余的会自动被裁剪掉
取消
张明亮(uid:479338)
简道云应用场景探索者 职业资格认证:FCP-零代码开发工程师
教程:多功能云函数在【试卷类场景】中的应用
距离上一次发【试卷类场景 这次有点儿更彻底】已是一年多一点点了,前些时间对【多功能函数】再次发起了次探索,偶得【多功能云函数在BOM汇总计算中的应用】一文,遂想,要不要将试卷类场景再做一次,毕竟上一次单独建立云函数,是堆了一堆代码。   为什么对多功能函数情有独钟,或许是因为它更便于我“懒”吧,毕竟不用再像过去,每当处理一个场景就需要单独再建立一个云函数,现在这样挺好,放在前端,在简道云中拼接好需要处理的命令即可,再者,复用起来是不是也会更为的方便。     体验链接 https://tnvew1vqtq.jiandaoyun.com/f/62a01da07e76d20007c943e0   参考资料   帮助文档 — 前端事件 https://hc.jiandaoyun.com/open/12115 快速搞定百度云函数 每月100万次免费调用 https://bbs.fanruan.com/thread-139916-1-1.html         核心功能概述   如何随机抽题   1、命令原型 list(range(1,6)) random.sample(range(1,6),5)   2、命令解析 1-5的正序序列 ,1-5的随机序列   3、函数命令 dict(zip(,))   4、返回结果 { "release": { "s": [ 1, 2, 3, 4, 5 ], "r": [ 5, 3, 4, 2, 1 ] }, "string": "{'s': , 'r': }" }   如何随机选项   1、命令原型 ' \n'.join( ,4))) if i !=''])   2、命令解析 将提供的选项进行随即排列并在前面自动添加“A.B.C.D.”   3、函数命令 ' \n'.join( ,4))) if i !='']),' \n'.join( ,4))) if i !='']),' \n'.join( ,3))) if i !='']),' \n'.join( ,3))) if i !='']),' \n'.join( ,3))) if i !=''])   4、返回结果 { "release": [ "A. 软 \nB. 深 \nC. 浅 \nD. 硬", "A. 黄果树瀑布 \nB. 三叠泉瀑布 \nC. 吊水楼瀑布 \nD. 壶口瀑布", "A. 富贵 \nB. 禁戒 \nC. 婚否", "A. 夕颜 \nB. 合欢花 \nC. 夜来香", "A. 青春期和婴儿期 \nB. 胎儿期和婴儿期 \nC. 婴儿期和儿童期" ], "string": "('A. 软 \\nB. 深 \\nC. 浅 \\nD. 硬', 'A. 黄果树瀑布 \\nB. 三叠泉瀑布 \\nC. 吊水楼瀑布 \\nD. 壶口瀑布', 'A. 富贵 \\nB. 禁戒 \\nC. 婚否', 'A. 夕颜 \\nB. 合欢花 \\nC. 夜来香', 'A. 青春期和婴儿期 \\nB. 胎儿期和婴儿期 \\nC. 婴儿期和儿童期')" }   如何解析答案   1、命令原型 '###'.join( for h in for k in ]])   2、命令解析 跟据已选择的选项将本选项所代表的具体内容解析出来   3、函数命令 '&&&'.join( for h in for k in ]]),'###'.join( for h in for k in ]]),'###'.join( for h in for k in ]]),'###'.join( for h in for k in ]]),'###'.join( for h in for k in ]])])   4、返回结果 { "release": "软&&&壶口瀑布###黄果树瀑布###吊水楼瀑布&&&禁戒&&&合欢花&&&胎儿期和婴儿期", "string": "软&&&壶口瀑布###黄果树瀑布###吊水楼瀑布&&&禁戒&&&合欢花&&&胎儿期和婴儿期" }   如何比对答案   1、计算逻辑 (1)  已选择的选项数量与答案的数量一致 (2)  已选择的选项与答案合并去重后与答案的数量一致   2、计算公式 IFS(NOT(ISEMPTY(试卷.答题)),IF(AND(NOT(ISEMPTY(试卷.答题解析)),COUNT(试卷.答题)==试卷.答案数量,COUNT(UNION(SPLIT(试卷.原始答案,试卷.答题解析),"###")))==试卷.答案数量),"正确","错误"))   温馨提示   1、自行搭建或测试中,可以不用管命令的具体含义,拿来拆解下直接用即可,就像吃馒头不一定要非得会种麦子。 2、文中的【函数命令】,说白了就是通过一堆函数的嵌套来实现某个功能,需耐心些、细心些,拼接命令中的固定内容和动态内容。 3、最终通过前端事件前,所有的命令都存在一个【单行文本】中,有些是把子表单中的命令进行了二次拼接,所以看起来可能会很长。 4、测试中,在添加至80道题左右时,云函数不能够正常处理,猜测可能是因为请求类型为get,命令长度超过了限制或返回数据超过了限制,可以用一题一解析的方式处理。 5、特别提示:注意其中的标点符号,也需仅仅只是一个空格,也在起着决定性的作用,上手测吧,从搭建一个【多功能函数】开始。   更多内容   导航:云函数&前端事件 内容集  汇总:论坛中发表过的所有帖子   更多沟通交流可添加微信(zmlnow) 添加时请备注:简道云       都看到这里了 如果您觉得有用 赞一个呗 赏一个呗 偶会更有动力哈  
教程:多功能云函数在【BOM汇总场景】中的应用
  BOM即物料清单,在各种生产计划类的功能中会被广泛使用到,会涉及到成品、半成品、原材料等的统计汇总。   在官方【简单和多级BOM表的使用方法】中已给出两种类别的使用方式 链接:https://bbs.fanruan.com/thread-138269-1-1.html   基于子表单BOM汇总计算所存在的问题   通过分析表单结构会发现,本实例将每个产品所涉及到的半成品与原料解析一个辅助的子表单,然后再结合相对应的数量进行汇总计算,举例:   A产品由Y01、Y02 共计2种原料构成 B产品由Y01、Y02、Y03 共计3种原料构成 C产品由Y01、Y02、Y03、Y04 、Y05共计5种原料构成 D产品由Y01、Y02、Y03、Y04、Y05、Y06 共计6种原料构成 E产品由Y01、Y02、Y03、Y04、Y05、Y06、Y07、Y08 、Y09共计9种原料构成   测试中发现,一次性将所有产品全部添加,在子表单中所形成的计算量不是5条数据,而是25条数据 ,即每个产品所涉及到的每一种原料都将是辅助表单的一条数据,其中同一种原料,因在不同的产品中都曾涉及到,也会多次重复出现,经常使用子表单的道友都知道,目前子表单的上限是200条数据,那么就会出现“可计算的上限由原料出现的次数决定”这一问题,且如果每个产品所涉及到原料数量如果不同,那么极有可能这个上限便是不可预估的。   在测试BOM功能时,使用的场景是餐厅,即: 对给定量的餐品汇总所要用到的原料各是多少?        餐品原料一般会涉及到主料与辅料,单一餐品合下来,需要个10余种原料的也不少,可能还会更多,当同时添加10多个餐品计划时,这时所涉及到的原料次数可能就已经小200次了,如果是宴席,还会涉及到凉菜与热菜,这样一样预估,明显仅是做一次餐品计划极有可能支撑不住一次宴会。   破解“可计算的上限由原料出现的次数决定”的基本逻辑   那么,如何解决“可计算的上限由原料出现的次数决定”这一问题?   第一步,在原表单中,计算出每一个指定量餐品所需的原料数量; 第二步,不通过子表单,对所有餐品,所需的原料进行汇总计算。   因涉及到对一组数据的实时计算,如果不用子表单,在简道云可能暂不易实现, 以下为,借助“云函数”的基本实现逻辑:   通过“云函数”实现BOM汇总计算的基本逻辑   计算指定量餐品所需原料数量   假设有如下一份餐品: 餐品:西红柿炒鸡蛋 原料:鸡蛋清150g,鸡蛋黄150g,西红柿150g,香葱50g 份数:10    原料可分解为: 鸡蛋清#g,鸡蛋黄#g,西红柿#g,香葱#g 150,150,150,50 注:可在另一份表单中提前制作好,用的时候直接调取过来。   云函数中的计算方式为: dict(zip('鸡蛋清#g,鸡蛋黄#g,西红柿#g,香葱#g'.split(','),]))   通过云函数会收到以下结果: { "release": { "鸡蛋清#g": 1500, "鸡蛋黄#g": 1500, "西红柿#g": 1500, "香葱#g": 500 }, "string": "{'鸡蛋清#g': 1500, '鸡蛋黄#g': 1500, '西红柿#g': 1500, '香葱#g': 500}" }   汇总现所有餐品所需原料数量   这里有两种方式均可   方式一:对数据进新重构和解析   基本会涉及到UNION()、SPLIT()、CONCATENATE()、COUNT()这四个函数的灵活使用。可参考以下资料,方法尚未实测,逻辑上应该是行的通,以下是两份参考资料。   汇总当前表单内多个子表单的数字字段值 https://bbs.fanruan.com/thread-138467-1-1.html   一张表单“ 搞懂 ”子表单,内含多种子表单操作 https://bbs.fanruan.com/thread-138159-1-1.html   方式二:通过云函数   为呈现计算方式,另加入了10份回锅肉与10份芹菜炒肉丝   在云函数中的计算方式为: dict(functools.reduce(operator.add,map(collections.Counter,))) 尾部每一个{}都代表一个餐品所涉及到的原料,另需要在原代码头部添加如下代码: import collections, functools, operator   通过云函数会收到以下结果: { "release": { "鸡蛋清#g": 1500, "鸡蛋黄#g": 1500, "西红柿#g": 1500, "香葱#g": 500, "肥肉#g": 1500, "瘦肉#g": 4000, "青椒#g": 1500, "红椒#g": 1000, "芹菜茎#g": 2000 }, "string": "{'鸡蛋清#g': 1500, '鸡蛋黄#g': 1500, '西红柿#g': 1500, '香葱#g': 500, '肥肉#g': 1500, '瘦肉#g': 4000, '青椒#g': 1500, '红椒#g': 1000, '芹菜茎#g': 2000}" }   至此,基于云函数的实现逻辑已分享完毕,单次可计算的上限由【原料出现总次数】转变为【原料类别总个数】,理论上不超过200个就没问题,但需注意可传参数长度上限的问题,最好结合场景实测或咨询下官方。   注:在实际应用中,可将第一步与第二步的云函数计算合并为一,可降低云函数的调用次数。 dict(functools.reduce(operator.add,map(collections.Counter,])),dict(zip('肥肉#g,瘦肉#g,青椒#g,红椒#g'.split(','),])),dict(zip('瘦肉#g,青椒#g,芹菜茎#g,红椒#g'.split(','),]))])))   参考资料   python 如何将列表中的每个元素乘以一个数字 https://blog.csdn.net/weixin_39717026/article/details/111481122   python 将两个列表中的元素一一对应转化为字典的方法 https://blog.csdn.net/qq_27381427/article/details/111769150   Python 列表套字典把具有相同键的值进行求和 https://blog.csdn.net/weixin_43997319/article/details/124255237   两种计算方式对比   通过子表单汇总计算 当计划添加至近30条(子表单内容108条)后,会逐渐出现卡顿的问题,因上限问题最后添加至计划55条(子表单198条)。     通过云函数汇总计算 本次测试共添加100条,尚未触及可传递上限,理论上可达200条(须实测),点击【开始汇总】后无太过明显卡顿。     延伸思考   自去年6月份,写下【多功能云函数,让后台走到前端,激活更多灵活性】这个贴子,至今已有小一年了,曾也有所怀疑过,莫非它所能支撑的也就是获取正序序列、随机序列这些简单的功能吗?故而,在本次案例中,没有像传统的那样,单独去写一个云函数,而是基于“多功能云函数”再次进行了探索,在测试过程中,发现了更多的用法,以及最后所呈现的复合性命令,之于简道云,愚觉得其价值尚被低估中,仅“一次搭建多场景复用”这一特性就决定了在简道云中它会更便于传播与使用,如果官方可以推出一个类“多功能函数”的功能或插件,将会更便于道友间的分享。   快速搞定百度云函数 每月100万次免费调用 https://bbs.fanruan.com/thread-139916-1-1.html    更多内容 导航:云函数&前端事件 内容集  汇总:论坛中发表过的所有帖子   更多沟通交流可添加微信(zmlnow) 添加时请备注:简道云       都看到这里了 如果您觉得有用 赞一个呗 赏一个呗 偶会更有动力哈
教程:如何解决链接中含中文无法使用的问题
在一些特定场景中,或许我们会用到拼接链接,用以辅助,比如,企业信息查询。 注:实际应用场景可使用官方【企业信息查询】插件   下面以“爱企查”为例:     经观察可发现,爱企查中的链接,有以下特征   完整链接:https://aiqicha.baidu.com/s?q=简道云&t=0   链接前缀:https://aiqicha.baidu.com/s?q= 公司名称:简道云 链接后缀:&t=0   也就是说前缀与后缀是固定的,应用中我们只是需要把要查询的公司名称,与之拼接起来即可。      在简道云实操中,你会发现,原本文本字段,如果内容是链接,字段权限仅是可见的情况下,链接是可以直接点击的,但是,链接中如果包含中文就会失效。   直接复制粘贴爱企查中的链接会发现,中文部分变成了一串编码 https://aiqicha.baidu.com/s?q=%E7%AE%80%E9%81%93%E4%BA%91&t=0   编码的部分可通过【前端事件 + 云函数】的方式解决   百度云函数代码如下:   # -*- coding: utf-8 -*- def handler(event, context): return {"value":event}   如何使用云函数: 快速搞定百度云函数 每月100万次免费调用 https://bbs.fanruan.com/thread-139916-1-1.html   现在,链接中含中文的问题就解决了,在简道云中只需要再给字段添加一个公式: CONCATENATE("https://aiqicha.baidu.com/s?q=",转码内容,"&t=0")   延伸内容:   拼接链接不只是企业查询这一个场景,百度、抖音,也均可以,如果通过简道云做的有知识库与百科类的场景,也许就会用到,甚至于,如果在网可找到一些开放性的接口,场景会更为丰富。   更多内容:   导航:云函数&前端事件 内容集  汇总:论坛中发表过的所有帖子   更多沟通交流可添加微信(zmlnow) 添加时请备注:简道云       都看到这里了 如果您觉得有用 赞一个呗 赏一个呗 偶会更有动力哈
教程:快速搞定百度云函数 每月100万次免费调用 【附多功能云函数代码】
最近这些天,一直在测百度云函数,大体的心得是,整体设置上可能会更为简便一些,当然前期因为不熟悉,会随到各种问题,便在不停的一边百度一边测试,基本是把去年测试腾讯云函数的步骤又走了一遍,当然主要的原因还是因为自身编程的底子弱,其实也说不上底子,曾经学过,后来一直没用,去年才又因云函数,用到了一些。   云函数功能体验链接:   多功能云函数: https://tnvew1vqtq.jiandaoyun.com/f/628ba5f272d37c0008621533 企业信息查询: https://tnvew1vqtq.jiandaoyun.com/f/628cb6512e8fe700081d02b6   测试中遇到的问题:   主要问题是传参数这块,与之前的腾讯云函数有所不同,这块解决了,基本也就没啥问题了。   URL参数的配置支持以下几种格式: 1、简单URL,不包含参数,例如:/user。 2、带参数的URL,使用{param}指定路径参数,例如 /user/{id}/posts 中,{id} 即为匹配参数。当请求 /user/123/posts 时,会识别参数id: 123。 3、带贪婪匹配路径参数的URL,使用{param+}指定贪婪匹配路径参数,它会匹配当前位置直到 URL 结尾的所有剩余部分,例如 /path/{filepath+}。例如请求 /file/aaa/bbb/cccddd时,会识别参数 file: aaa/bbb/cccddd。 详情链接:https://cloud.baidu.com/doc/CFC/s/kjzmgugty   快速上手百度云函数   如何开通百度云函数   百度云函数开通入口链接:https://cloud.baidu.com/ 百度云函数帮助文档链接:https://cloud.baidu.com/doc/CFC/index.html     可参照下面的截图进行,因之前已开通过,截图可能会有不完整.                   此处需要多注意下,目前在测试中主要使用的是{param+}的方式,即带贪婪匹配路径参数的URL。     函数代码中需要注意传参数的问题 经测,通过“带贪婪匹配路径参数的URL”传过来的参数,获取方式为: event     # 多功能函数 # -*- coding: utf-8 -*- import json import random import urllib.parse import requests import re import collections, functools, operator def handler(event, context): string=urllib.parse.unquote(event) if( "requests" in string): eval(string) s={} s="已发送" return { "isBase64Encoded": False, "statusCode": 200, "headers": {"Content-Type": "application/json"}, "body": json.dumps(s) } else: r={} r=eval(string) r=str(r) return { "isBase64Encoded": False, "statusCode": 200, "headers": {"Content-Type": "application/json"}, "body": json.dumps(r) }   简道云 前端事件 相关设置     如何添加及使用前端事件 参考内容:https://hc.jiandaoyun.com/open/12115 此处的URL来自于【百度云函数 > 触发器 > URL路径】     注意返回值设置,这一部经常容易出错,可以多试下 参考内容:https://hc.jiandaoyun.com/open/12209     更多内容:   导航:云函数&前端事件 内容集  汇总:论坛中发表过的所有帖子   更多沟通交流可添加微信(zmlnow) 添加时请备注:简道云       都看到这里了 如果您觉得有用 赞一个呗 赏一个呗 偶会更有动力哈
预告:如何搞定百度云函数
  前些时间,有看到,腾讯云函数,要开始收费了,遂就开始了百度云函数的折腾,还好此刻经反复尝试终于是可以使用了,此刻的心情犹如去年5月份折腾讯云函数,特先向各道友告知下,目前百度云函数的免费调用额度为每月100万次。   教程已发布 内容链接 快速搞定百度云函数 每月100万次免费调用 https://bbs.fanruan.com/thread-139916-1-1.html   百度云函数 详情链接:https://cloud.baidu.com/doc/CFC/index.html       前端事件功能测试     多功能云函数:多处文本替换     多功能云函数:随机序列     写在最后   先感谢下腾讯,感谢曾提供的免费机会,如果是公司使用,建议可以考虑下付费,功能与服务应该是会更佳;个人因主要是以测试为主,遂开始了测试百度云函数,免费性的对于测试来说是够用,影响或许不大,来回调整可能会有些麻烦,中间代码部分基本是相通的,换了平台需要解决的是基础设置及基本的框架,先这了,后续再熟悉下、整理下,会发布。
分享:自定义邮件通知 + 手机邮箱,可以这么玩
前一些时间开方平台上线了“自定义邮件通知”功能,相比“SendCloud邮件通知”与“腾讯云邮件通知插件”,自认为,设置上可能会更为简便一些。   之前在【自建云函数 邮件通知功能为你插上翅膀】中曾写到过,群通知是一对多,邮件通知是一对一,并且免费,基于这一特性,部分功能还是可以延伸想一下的,毕竟“免费”。   手机邮箱,可能很多人,像我一样,之前都没太注意到,也许也只有当收到账单提醒时,才会意识到还有个手机邮箱,其实,现在移动、联通、电信,默认状态下手机邮箱都是在开着的(感觉是),登上去后,就会看到很多已收到的话费账单。   那为什么,我们不给它也利用起来呢,如果你的表单里有手机号,或者说可以关联到手机号,那么一些不是那么重要的通知类信息完全也可以顺带的给发送进去,比如消费的详单,比如提交信息的回单等等,还不用让用户额外填写邮箱信息。   补充一句,通过智能助手调用自定义邮箱插件和通过前端事件调用云函数中的邮件,到底有什么区别,其区别主要就在于智能助手与前端事件,智能助手是后置触发,即提交数据后触发,前端事件是前置触发,即在未提交数据前触发,再者就是智能助手相对前端事件来说是稀缺资源。   功能测试   好了,现在来看看这次的主题:自定义邮箱插件 + 手机邮箱 测试链接:https://tnvew1vqtq.jiandaoyun.com/f/628657b5ec06b600093c9785   测试中发现,刚开始移动号收到邮件后,会有短信提醒,后来通过微信小程序提醒后,短信就没收到了,具体逻辑尚不清楚。这样不就是短信免费白漂了,是不是梳理清楚,就可以"薅羊毛"了,比如会员注册,前端事件的形式获取手机注册验证码,智能助手的形式发送注册成功通知。       如何实现   自定义邮件通知,这里就不多说了,可以看下官方的帮助文档,比较详细 帮助文档链接:https://hc.jiandaoyun.com/open/14354   找到是哪家运营商   先来看下对应的邮箱   移动:XXXXXX @ 139.com 联通:XXXXXX @ 189.cn 电信:XXXXXX @ wo.cn   如何识别手机号是哪家运营商   方法一:通过单选按钮组,让用户自己选; 方法二:通过各种公式组合,抓取前缀,让系统来识别; 方法三:通过前端事件交给API,让第三方来解决。   这里用了方法三,还好经过各种baidu及测试,找到了一个免费的,至于有没有什么限制,目前还不清楚。   原文链接:https://blog.51cto.com/u_4436396/2051011   用的是360的那个接口   接口地址:   https://cx.shouji.360.cn/phonearea.php?number=185****1034 注,此处隐藏了部分手机号信息,使用时请注意   返回内容:   {   "code": 0,   "data": {     "province": "北京",     "city": "",     "sp": "联通"   } }   前端事件设置如下:        拼出一个邮箱地址   通过以上接口,结合前端事件,就可以搞定手机号是哪家运营商的问题了,然后结合之前提到的其对应的邮箱就可以拼出一个完整的邮箱地址,公式如下:    CONCATENATE(手机号,IFS(运营商=="移动","@139.com",运营商=="联通","@wo.cn",运营商=="电信","@189.cn"))    好了,基本的框架就是这样,您还能想到哪些应用场景,欢迎留言讨论。     更多内容:   导航:云函数&前端事件 内容集  汇总:论坛中发表过的所有帖子   更多沟通交流可添加微信(zmlnow) 添加时请备注:简道云       都看到这里了 如果您觉得有用 赞一个呗 赏一个呗 偶会更有动力哈
高效:这样批量处理格式化数据更高效,数据工厂中的类SPLIT()功能
前些时间,有道友在群里提出了,如何在EXCEL中实现类简道云中的SPLIT() 功能?当然,在导入的时候直接按分割符处理这样会更便捷,不过,在实际中,去让别人掌握,可能学习成本会高,就在尝试如何用公式来实现。     后续,在与一餐饮公司沟通中,遇到了外卖订单分派问题,订单是从第三方平台导出,客户的部分有效信息是拼接在同一个字段中,如果想借用简道云实现自动分派订单,就需要把信息批量导入,然后用数据工厂进行自动化处理,前提是需要把有效信息先从字段中分别解析出来。   于此整理一下,以便相互交流学习。   关于SPLIT() 函数   SPLIT() 原本只是一个将文本按指定字符串分割成数组的函数,在广大道友的广泛实践下应用场景是越来越广,从下拉框到子表单,从辅助计数到信息解析,都能见到它的身影。     在数据工厂中,却无SPLIT() ,原本在表单中很容易解决的问题,到了这里却变的有些麻烦,常见的如处理批量处理导入的格式化数据。   比如下面一组数据,在同一个字段中,纯文本格式: 姓名;年龄;性别;联系方式:身份证号;联系地址;兴趣爱好 如果想要导入简道云,就只能先在EXCEL中预处理一下?或者直接在简道云中再输入一遍?   日常中,通过其它平台导出的数据,可能也会遇到类似的情形,数据会拼接在一起,放在了同一个字段里,某些数据的长度还非固定,就像上面提到的联系地址与兴趣爱好。   功能测试链接   https://tnvew1vqtq.jiandaoyun.com/f/627e598481f76300072d1ffb     分割公式原型   原字段集: 第1个字段;第2个字段;第N个字段;最后1个字段   公式原理: 基于前面已解析出的字段的长度来确定本次解析的内容   辅助字段: CONCATENATE(原字段集,分割符)   公式原型: LEFT(RIGHT(辅助字段,LEN(辅助字段)-LEN(CONCATENATE(前面所有字段))-前面所有字段个数*LEN(分割符)),SEARCH(分割符,RIGHT(辅助字段,LEN(辅助字段)-LEN(CONCATENATE(前面所有字段))-前面所有字段个数*LEN(分割符)))-1)   表单相关设置     数据工厂相关设置       辅助字段 公式: CONCATENATE(原字段集,分割符)   第1个字段 公式: LEFT(RIGHT(辅助字段,LEN(辅助字段)-LEN(CONCATENATE(第1个字段))-1*LEN(分割符)),SEARCH(分割符,RIGHT(辅助字段,LEN(辅助字段)-LEN(CONCATENATE(第1个字段))-1*LEN(分割符)))-1)     第2个字段 公式: LEFT(RIGHT(辅助字段,LEN(辅助字段)-LEN(CONCATENATE(第1个字段))-1*LEN(分割符)),SEARCH(分割符,RIGHT(辅助字段,LEN(辅助字段)-LEN(CONCATENATE(第1个字段))-1*LEN(分割符)))-1)   第3个字段 公式: LEFT(RIGHT(辅助字段,LEN(辅助字段)-LEN(CONCATENATE(第1个字段,第2个字段))-2*LEN(分割符)),SEARCH(分割符,RIGHT(辅助字段,LEN(辅助字段)-LEN(CONCATENATE(第1个字段,第2个字段))-2*LEN(分割符)))-1)   第4个字段 公式: LEFT(RIGHT(辅助字段,LEN(辅助字段)-LEN(CONCATENATE(第1个字段,第2个字段,第3个字段))-3*LEN(分割符)),SEARCH(分割符,RIGHT(辅助字段,LEN(辅助字段)-LEN(CONCATENATE(第1个字段,第2个字段,第3个字段))-3*LEN(分割符)))-1)   第5个字段 公式: 在进行编辑时,系统提醒“公式嵌套层级超出限制”。     本次总结:   在刚开始准备写本内容时,公式原型还是第一张图中所示,第1个字段与最后1个字段都需要再分别处理一下,后来再想,可否再统一一下,便就有了最后的原型;倒是觉得多点几下换个参数,要比多掌握两个公式,学习成本会更低一些;因现在,尚未遇到再在EXCEl中用这个功能,公式便就没有再更新,结合一下,应该是也可以做到,一个公式搞定,多个字段仅需继续向右拉公式即可。   更多内容:   导航:云函数&前端事件 内容集  汇总:论坛中发表过的所有帖子   更多沟通交流可添加微信(zmlnow) 添加时请备注:简道云       都看到这里了 如果您觉得有用 赞一个呗 赏一个呗 偶会更有动力哈
分享:我与简道云 七年之养 如愿而至
大体算起来接触简道云已有7个年头了,到底是怎么结的缘,至今已是一个悬案。   最初接触简道云应该是在2015年左右,依稀记得那份小窃喜,就像是发现了一块新大陆,拖拖拽拽就能做一个简单的应用,不再受限于不会开发这个屏碍,原始人发现了石器,脑袋里的天马终也不必只是行空。   常与朋友说我是一个“懒人”,不仅是自己懒,也看不得别人费力,曾有谬论:如果一件事在重复性的工作上需要花费大量精力,那一定是方法上还不够得当,现今还没找到它的最优解。   2015年,以新媒体运营就职于一家刚起步的超市连锁公司。业务人员在外面巡店订货,当日的订单都会发至群里,然后由行政人员整理后录至系统内,订单过来的时间都比较集中,又都是手写订单,难免会出错,不仅会影响到客户的订货效率与体验,也不利于业务管理人员的实时管理。在与业务管理人员沟通后,先试着通过简道云做了报单汇总功能,解决了管理人员这一端实时管理的需求,后续又结合门店做了门店订货功能,实现了门店可以自助下单。这是将简道云结合工作的初次尝试,在解决实际需求的同时,也培养了自己的差异化的价值,同时也有了更多的成就感。   2017年,就职于一家较上规模的团餐公司,我所在的企划岗位隶属于行政人事部,公司下面有很多个项目,过去人事管理这块基本是基于传统的纸质化管理或EXCEL,也曾想过要上系统,因为种种原因一直没找到合适的,后来,我说我试一下,通过简道云看是否可以解决这个问题,一同事说:“这些软件,人家都是需要投几万、几十万请专业团队做的,你能做的了吗?”我说:“100%的实现可能做不到,实现个80%-90%应该是可以做到。”   最有意思的莫过于,曾在这里做过一个至今都感觉极其简单的应用“自动门关闭登记”,其场景是:每天谁最后一个离开办公室,负责检查一下办公室,然后扫码登记电源、门窗、大门等是否均已关闭;至今想来,若抛开功能的多寡来说,这算是一次理想的实践,简单、高频,基本人人都会用到,多年后,在一次发朋友圈时写到:一个应用,首先是要“可用”,其次是要“易用”,最后是要“好用”。   曾就职于一家培训公司,有感于课程中的“品牌积分榜”,曾做过许多企业文化建设与信息技术结合的设想,由于不具备软件开发能力,多是无疾而终,2018年,借学习集团“点数银行”之机,工作之余,经过近半年摸索做了第一版“积分管理系统”,通过后续不断的修补与优化。2019年5月份,在公司开始小范围逐步试行,8月中旬上线“文化之星”任务,做年度总结时,自己也没想到已有800多条,整理的同时“精选”了60余条,它们是一个个碎片化的一线故事,很小,却有温度,若给予时间,最终有可能会是一部厚重的、有温度的企业历史画卷。   2019年,基于“积分管理”平台,公司文化性的工作逐步实现了接入与互通,比如各项目上的社会荣誉、甲方表扬信,各员工的好人好事、合理化建议,以及公司内刊奖励等等,就像最初在做“积分管理”平台宣讲时所述:积分管理平台是企业文化建设的量化体系、引导体系、评优体系,为公司柔性管理提供体系支持与技术支持,让每位家人发现更为完整的、丰富的自己,为现职员工乃至离职员工提供一个非岗位价值的实现平台。   2017年至2020年,在这里的三年间,由青涩到成熟,由质疑到信赖,就像多次与同事和朋友提到过的那样,感谢公司,感谢上司,感谢同事,在共同不断的试错与努力中,得以发现简道云的实用价值。2022年1月份,在远程协助处理一些事情时,与同事查看了《2021年度简道云工作价值报告》,投入1956.75元,节约了2997小时,节省了134880元,6893%回报率。   2020年合同到期,从公司出来后,与朋友一起决定做一些事情,起初定位在,将“积分管理”平台进一步的优化与丰富化,为其他公司提供商业级的服务,后续因一些原因,暂未展开。随后,切入到了教培领域,结合“积分管理”与当前的业务场景,开发了学情系统,每位家长不仅可以实时的收到学员的每次动态,同时阶段性变化也做了可视化的处理,各类指标清晰明了,更便于老师做定制化、个性化的辅导方案。   2021年5月份,在一位道友的建议下,在简道云官方论坛写了第一遍贴子,后续机缘巧合,将简道云与云函数做了结合性尝试,并做了系列性的相关探索与分享,7月底受邀官方“零代码引路人第四期:《云函数+前端事件 激活你的更多应用场景》”主题分享,至今,论坛内容浏览90000余次,突然发现,虽人未至,全国各地间接的有了些“朋友”,突然发现,这条路自己并非“孤勇者”,突然发现,简道云更像一个养了多年的孩子。   一路走来,对我而言,简道云已不再只是一个工具、一个零代码应用搭建平台,已成为一种赋能方式,可以快速地基于工作需求搭建功能型应用,可以快速地把管理思路变成一个管理工具,而今,它也不再是只局限于工作场景,正在逐步地生活化,在探索与分享中变得更为有趣、好玩,也许,它将会成为一种生活方式。   它,可以简单的只有一个表单、几个字段;它,也可以复杂的一个功能套一个功能、一个系统套一个系统;它是什么?因你而不同、因你而定义、因你而荣耀。   逐梦的路上,从不缺乏质疑,沉下来,了解自己,了解需求,有些路,总需要有人先默默地走,走到绽放,走到可以成为一条共同的路,未来可期,共同见证。         更多内容 导航:云函数&前端事件 内容集  汇总:论坛中发表过的所有帖子   更多沟通交流可添加微信(zmlnow) 添加时请备注:简道云       都看到这里了 如果您觉得有用 赞一个呗 赏一个呗 偶会更有动力哈
实验:外链如何也能实现类流程的功能
  以下内容仅为一个思想实验,现尚未着手测试,之前有想过,未整理,刚在群里讨论时,有道友提到外链目前使用时的一些瓶颈,比如节点负责人、消息推送,索性把想法整理了一下,有点费数据,有点费开发,以下内容仅做参考。   参考资料:   案例:【微信增强 + 扩展字段】还可以这么玩儿 分享:来吧,送你 5000个 扩展字段 突破:自建云函数 邮件通知功能为你插上翅膀 场景:腾讯云函数&腾讯云短信,在前端事件中如何应用?   实现步骤:   1、正常的流程是在一个表单里 ABCDE依次完成 2、基于外链场景的流程,可以把流程拆成一个一个的表单用来承接每个节点要完成的内容 3、微信OpenID可以解决身份识别,外链扩展,可以添加至5000个,也就是说等同于提供了5000个信息编号 4、在处理A节点信息时为其添加信息编号,提交时通过短信或邮件通知B节点负责人 5、同时需要把代表B节点的表单链接通知给B节点负责人 6、表单链接的构成为,正常链接 + 信息编号 7、B节点负责人打开链接后,会通过信息编号,从A节点的表单中提取相关信息 8、为便于信息后续汇总,下一节点需要包含之前节点的所有信息,不需要当前负责人看的,可以设置为不可见 9、依次类推,就像俄罗斯套娃,统计或汇总时,最后一个节点提供的信息即为完整信息。   更多内容:   导航:云函数&前端事件 内容集  汇总:论坛中发表过的所有帖子   更多沟通交流可添加微信(zmlnow) 添加时请备注:简道云       都看到这里了 如果您觉得有用 赞一个呗 赏一个呗 偶会更有动力哈
分享:来吧,送你 5000个 扩展字段
对于扩展字段的使用,在【微信增强 + 扩展字段】还可以这么玩儿 中已做过相关分享,此处不再累赘,可直接过去进行查阅。     那为什么还要再写上这一篇呢,主要是因为近期看到了官方的一次更新, 扩展字段现在支持批量编辑了,这个意义还是蛮大的,至少使用时不会再那么痛苦,不需要再一个一个的添加,另外值得分享一下的有以下两点: 1、据本次测试扩展字段的上限为5000; 2、批量编辑时所添加的内容会自动去重。   扩展字段使用场景( 帮助文档 ) 在分销场景中,能够对每个渠道添加不同的扩展字段,收集信息后便于查看数据来源。 在学校管理中,可以对每个班级设置不同的扩展字段,收集信息后便于查看各班信息上报情况。 在公司管理中,可以对各地区的分公司设置不同的扩展字段,收集信息后便于查看各分公司的通讯信息。   本次测试案例 测试链接:https://tnvew1vqtq.jiandaoyun.com/f/624b9a70ab4eec00074e7d1d?ext=1001   注:仅为功能性测试,并不适于日常使用。   1、添加了一个公式,可转二维码,有需要的可以试试。      公式:CONCATENATE("https://api.pwmqr.com/qrcode/create/?url=",链接) 2、已整理的 5000个扩展字段值,日常使用时,可与其它值进行绑定,需要用时,可通过数据联动或其它方式匹配对应的值。       扩展字段相关资料 帮助文档:https://hc.jiandaoyun.com/doc/14130   更多内容:   导航:云函数&前端事件 内容集  汇总:论坛中发表过的所有帖子   更多沟通交流可添加微信(zmlnow) 添加时请备注:简道云       都看到这里了 如果您觉得有用 赞一个呗 赏一个呗 偶会更有动力哈
案例:子流程巧变智能助手,微信增强更“丝滑”
按线性逻辑,一般情况下打算长期通过外链使用微信增强功能,比如把自己的员工通过外链纳入进来(可以节省部分用户数),会先建立一个类用户管档案的表单,让用户先注册,然后再使用其它功能。   如果想节省注册这个步骤,就需要用到智能助手,在用户于其它表单提交时通过智能助手把相关注册信息回写到注册表中。    这样就会产生一个问题,需要用掉一个甚至多个智能助手,而智能助手,在简道云中,不管是免费用户还是付费用户都是较有限的系统资源,每当此时,开发者或许都会纠结,到底是用还是不用。    曾在【巧用微信openid 让你的外链表单也能飞起来】中,提出过:通过流程表单中的子流程功能,是不是可以变相的实现智能助手新增数据的功能。    本次一起来看下如何让子流程变成假智能助手。    功能说明:      本测试案例中,用户常用的表单为【每日心情】,新用户第一次使用时,会提醒填写相关注册信息,在提交时会通过子流程,把相关注册信息写入到【用户注册表单】,以便于后续其它延伸功能调用或便于统计。 用户后续再使用【每日心情】时,会通过mapx函数直接调取复用,当然也可以通过数据联动的方式来实现。    【每日心情】表单中,当选择“今日心情”后,会自动随机出现一条“今日寄语”,内容来自《答案之书》(网上找的,不确定是否真的出自这里),不必过去当真,仅做为一个小趣味。   功能测试:  https://tnvew1vqtq.jiandaoyun.com/dash/62408378c4d11f00078dc754 点击【参与今日打卡】与【我的打卡记录】可体验相关功能   【扫码测试】   实现逻辑:    1、【用户注册】与【每日心情】表单均需要是流程表单,其中【每日心情】需要打开微信增强功能。 【用户注册】表单,流程中“自动提交”节点负责人选择“流程负责人”,并将“节点限时处理”设置为“流程到达该节点1分钟后”自动提交。 【每日心情】表单,子流程“用户注册”子流程发起人可以选择一位固定用户,以其名义发起,并设置好相关的“数据传递”内容。     2、在【每日心情】中,会通过“注册检测”字段,来确定是新用户还是老用户。 MAPX("count",微信OpenID,微信OpenID,微信OpenID)+MAPX("count",微信OpenID,微信OpenID,微信OpenID)+0 第1个Mapx统计的是【用户注册】表单,第2个Mapx统计的是【每日心情】表单,一个应该是够用,为了防止意外这里两个都用了。     3、后续主要为“显隐规则”的灵活使用。 当“注册检测”等于0或为空时,代表是新用户,显示相关需要填写的注册信息 当“注册检测”大于0时,代表是老用户,直接显示“打卡信息”(已参于打卡X次)     4、如何仅查阅自己提交的数据。 单独建立一个表单,以关联查询的方式进行呈现,须用获取到的微信OpenID做为过滤条件。   延伸思考:    本例功能上,其实没什么可说的,也就仅是一取巧而已,在过去的一些测试中,刚好发现了子流程的这一特性,再者,在某些场景里,或许也可将子流程作为一个总的“开关”,用来触发“智能助手”,而非直接各个表单来触发,这样有可能会大大节省“智能助手”使用数量。   更多内容:   导航:云函数&前端事件 内容集  汇总:论坛中发表过的所有帖子   更多沟通交流可添加微信(zmlnow) 添加时请备注:简道云       都看到这里了 如果您觉得有用 赞一个呗 赏一个呗 偶会更有动力哈   
案例:【微信增强 + 扩展字段】还可以这么玩儿
让众道友备受期待、心心念着的微信增强功能,这次是彻底放开了,大有一种普大喜奔的感觉,一般情况下官网的更新日志要稍早于微信公众号上一些,昨晚大半夜一交流群里,突然就炸了,原来竟有道友提前看到了这个消息。   曾在【巧用微信openid 让你的外链表单也能飞起来】中写到过:   当外链时,用户身份识别这一核心问题,不再是问题,可实现及应用的场景绝非仅只是上述中所提到的,泛用户的背后将是更为广阔的泛场景,“飞”是一种形态,可以以更高的视角来参与整体功能的规划,而非仅如以前的辅助,简道云也将不再仅是适用于公司内部的信息化管理工具,将会新生更多的可能。   本次更新内容:   1.微信字段与扩展字段支持作为本表字段被调用 2.CRM工商信息联通上线 3.选择上级部门直接递归选择下级部门 4.仪表盘支持自动刷新,定时展示更新后的图表 5.关联数据优化 点击查阅本次更新详情     全程无感式在线投票   看到本次更新后,在想做一个什么样的小案例测试一下功能呢,结合之前的一些想法就有了这版“在线投票”,当然仅是测试,部分细节未做过多优化。 在线投票是一个很常规的应用场景,也有很多专门性的产品,那么在简道云中又可以实现到哪一步?过去在简道云中做投票类的场景,会涉及到这两个问题: 1、为了能识别是哪些用户投了票(比如防止重复性投票),要么使用是内链直接识别用户,要么在使用外链时要求输入手机号或姓名之类; 2、投票页面,一般是有选框类字段来进行承载,如果要投张三就选张三,如果要投李四就选李四。 直观看来,没问题啊,投票不都是这样吗?那,有没有一种可能,类似于H5页面那种,直接点“张三”进去就是为张三投票?   实现逻辑   用户识别这块,不用多说,直接通过“微信增强”功能就可以实现,并且还可以利用公式,通过微信OpenID与日期及其它字段的结合实现更为丰富的投票规则。 投票选项这块如何实现的更为“丝滑”呢,基本逻辑就是链接也要带“身份识别(参数)”,在简道云中具备这个特性的是【公开发布 > 外联扩展】,我们来看一下扩展连接的基本构成:     外链扩展    https://tnvew1vqtq.jiandaoyun.com/f/623c133b576fb2000812b2c4?ext=1001 1、蓝色字体部分是表单原始外链 2、黑色字体部分是统一的连接符 3、红色字体部分是扩展字段内容 打破原有外链扩展只是为了区分信息收集渠道这个固有概念,逆向思考下,如何通过红色字体部分的扩展字段实现【链接也可以带“身份识别(参数)”】。 经测实现方式如下: 1、在投票表单中,提前建立好扩展字段,比如1001、1002、1003、… 等 2、在候选表单中,设置候选人员或作品时,为其设置投票编号,与扩展字段相对应,比如1001、1002、1003、… 等 3、在候选表单中,通过公式直接组合出对应的投票链接,CONCATENATE(投票链接,"?ext=",投票编号) 这样一个带“身份识别(参数)”的链接就构建成了。需要注意的是,扩展字段目前仅是在外链中可以使用,如果想将用户的现有信息提取过来,需要提前做好相关的身份信息绑定。   实现效果   体验链接:https://tnvew1vqtq.jiandaoyun.com/f/623c25837c0fc600070760d2 按相关提示操作,基本可以体验到所有内容。       延伸思考   先期待一下,希望内链也可以进行扩展,这样内链也可以采用这种方式了。 每一次新的尝试都是对未来的一次技术沉淀,就像外链扩展的应用场景也并非只有标识信息渠道与辅助在线投票一样,可以想象一下,如果可以直接在链接上加入值,而非是通过扩展字段的形式,比如在原链接的后缀上加入?x=1&y=2&z=3,就代表分别为x、y、z三个变量进行了赋值,同时在表单中也可以直接调用,当然为了更便于统一实现,也可以默认?后面的为一个字符串,用户获取后再进行二次解析即可,那就是真正的带“参数”的链接了,实现的场景就更为灵活了,想象一下,比如基于链接的裂变与追溯等。   一个问题   有没有哪位道友试过或知道,外联扩展的有没有上限,上限是多少?   更多内容:   导航:云函数&前端事件 内容集  汇总:论坛中发表过的所有帖子   更多沟通交流可添加微信(zmlnow) 添加时请备注:简道云       都看到这里了 如果您觉得有用 赞一个呗 赏一个呗 偶会更有动力哈
案例:巧用微信openid 让你的外链表单也能飞起来
2022年,开年第一更新,终于是等到了微信增强功能升级。     微信增强更新内容如下:   微信字段(微信昵称/性别/openid):默认值、关联数据/查询、扩展功能、表单发布等。 如,通过 数据联动 设置默认值时,可以调用微信昵称/性别/openid:设置数据关联和联动的显示字段、填充字段以及联动/过滤条件等,仅支持使用关联表单、联动表单的系统字段,暂不支持使用当前表单的系统字段。   表单外链所遇到的问题:   如我般“急性子”的朋友可能已做过测试,测试的感觉怎么说呢,像是终于扯开了一个口子,但还不够OPEN,内链和外链结合着用,问题应该是不大,那如果纯粹是外链呢?   举个例子,仅通过外链,在微信中如何无感的解决用户识别问题?如何知道这条数据是张三提交的,而不是李四提交的。   这个问题涉及到的场景会很多,比如一线员工的外链打卡,比如教培场景中面向家长等,都有一个共同的特点,用户量不好预估,可能会多,使用到的功能单一,如果加入到通讯录,成本会很高(每年每人将近100元)。过去常用的拆中的方式是,通过外链(每次填写手机号)来解决,但终归是不够便捷。   终于等到微信增强功能升级了,这个问题看似可以解决了,你会发现,直接拿来用,还是不行,表单不能够自己调用自己的系统字段(openid),就像是看着张三不知道他就是张三。   又是白兴奋一场吗?莫及,可以解决! 测试了半天,终于一个小demo出来了!   外链表单也可以做身份识别:   案例:在线订餐 链接:https://t2gotn5svx.jiandaoyun.com/dash/61e93496ad7b4d00075a8527 扫码:微信扫码           说明:【用户注册】与【在线订餐】表单均为外链表单,并开启微信增强静默获取功能,所提交数据后经后台自动处理后,已在纯外链表单中实现用户识别。     本案例中核心功能的实现逻辑:   本功能中,额外用到的主要有:流程表单、数据工厂。 1、建立一个辅助表单(流程表单),主要用来当子流程用,解决数据回传问题;      帮助文档:子流程  https://hc.jiandaoyun.com/doc/12149 2、【用户注册】表单,以流程表单的方式建立,在流程中激活辅助表单,并向它传入openid等字段,辅助表单再将openid等字段进行回传; 3、通过以上步骤,即可实现表单内,openid像其它文本字段一样的灵活调用; 4、重复第2步的内容,建立【在线订餐】表单; 5、通过数据工厂的横向连接功能,将相关表单中的数据连接起来,再通过仪表盘,即可实现最终的效果。      帮助文档:数据工  https://hc.jiandaoyun.com/doc/10985     关于本案的延伸思考:   1、外链用户提交后,能不能再对他进行一些通知类的后处理呢,比如短信、邮件等。 2、通过流程表单中的子流程功能,是不是可以变相的实现智能助手新增数据的功能。   当外链时,用户身份识别这一核心问题,不再是问题,可实现及应用的场景绝非仅只是上述中所提到的,泛用户的背后将是更为广阔的泛场景,“飞”是一种形态,可以以更高的视角来参与整体功能的规划,而非仅如以前的辅助,简道云也将不再仅是适用于公司内部的信息化管理工具,将会新生更多的可能。   更多内容:   导航:云函数&前端事件 内容集  汇总:论坛中发表过的所有帖子   更多沟通交流可添加微信(zmlnow) 添加时请备注:简道云       都看到这里了 如果您觉得有用 赞一个呗 赏一个呗 偶会更有动力哈
案例:一张表单“ 搞懂 ”子表单,内含多种子表单操作
说起子表单,最初是受益于牛中伟道友相关帖子的启发,而后,就有了一段时间对于子表单的探索,本次所带来的案例,基本囊括了子表单常见的、不太常见的各种操作,如果放在实际开发中,或许会采用更为简单的方式,而非如此案例中一样,当时之所以选择这种方式,仅算是对技术的一种探索兴趣吧。   安装链接:   https://jiandaoyun.com/a/607aa1c0892f630007e7f622   本案例围绕工作管理展开,比如:工作计划、工作总结、逾期提醒,以及已完成事项汇总、动态统计、公示栏等,在安装前,不妨想一下,如果只用一张表单,你会怎么来实现,仅借此文我们进行一次沟通、碰撞,欢迎在评论区写下你的想法或指出本案例的不足之处。   涉及内容:   1、多个子表单如何相互调用数据 2、子表单中的数据如何按类梳理 3、子表单中的数据如何自动排序 4、如何调用已提交的子表单数据 5、如何灵活使用字段的显隐规则   功能概要:   1、本应用基于用户名称进行统计汇总,各项内容均为动态显示; 2、基本使用逻辑为①工作计划②工作总结③逾期事项; 3、本应用将基于所设置的归档周期于次周或次月第一次操作时进行自动归档; 4、工作总结时,完成日期超过或等于当成日期的“待完成”事项会计入逾期事项(“已取消”事项不计入); 5、新增事项是指未在计划内的当日新增事项,原则上应为当日新增且需当日完成的内容,跨时段的应在工作计划中填写; 6、根据各事项的完成状态,会一直循环汇总,因子表单可容纳数据有上限,工作计划、工作总结、逾期事项、已完成事项各自的条数不可多于180条; 7、具备公示栏管理权限的人员,可修订公示栏内容,为“显示”状态时会呈现在“公标栏”处,为“锁定”状态或跨月时会自动隐藏。   应用截图:     更多内容:   导航:云函数&前端事件 内容集  汇总:论坛中发表过的所有帖子   更多沟通交流可添加微信(zmlnow) 添加时请备注:简道云       都看到这里了 如果您觉得有用 赞一个呗 赏一个呗 偶会更有动力哈
案例:快速上手 DIY 函数公式的 5 个步骤
编写公式并没有想象中的那么难:   你会做青椒炒肉丝和番茄炒鸡蛋这两道菜吗?不会做,也没关系,只要知道就可以! 现在,你就有了一套“一荤一素”的搭配方式,它就可以看成是一个公式,简单吧!   青椒炒肉丝(青椒,肉丝) 番茄炒鸡蛋 (番茄,鸡蛋) 一荤一素(青椒炒肉丝,番茄炒鸡蛋)   公式的本质就是: 结合一个或多个已知的函数,通过运算的方式,得出所需要的结果。   在翻论坛问答时看到如下一个问题:   简道云:“日期范围”根据填写日期算填写日期所属周的第一天(星期一)的日期及最后一天(星期日)的日期,填写日期已默认为当时,“日期范围”字段怎么写公式 ?   那么,在日常使用简道云时,我们如何去推导一个公式呢,本篇借用这个问题,一起来推导下。   常用 推导公式的 5 个步骤:   1、明确需求:需要有一个清晰的需求,最好写在纸上; 2、分析需求:将需求进行尽量多次拆解,看看都有哪些部分组成或有什么样的规律; 3、查找函数:围绕相关分析,找到相应的或较为接近的函数; 4、分步实现:结合前期的分析和查找到的函数,分步解决每一个部分; 5、整合结果:将分布实现的有效公式整合为一个公式。   如何 通过5个步骤 推导公式:   1、明确需求:需要有一个清晰的需求,最好写在纸上;   计算出指定日期所在周的开始日期与结束日期分别是什么,以及显示本周的日期范围。   2、分析需求:将需求进行尽量多次拆解,看看都有哪些部分组成或有什么样的规律;   通过分析本次的问题可以得出以下内容: 一周有7天,以1至7代替,指定日期是其中的某一个数字 当指定日期为星期三时,以3代替,那么: 1=3-2 7=3+4 当指定日期为星期四时,以4代替,那么: 1=4-3 7=4+3 假如指定日期的星期为 X , 那么结合以上规律可以得出以公式: 1= X - ( X - 1 ) 7= X + ( 7 - X )   3、查找函数:围绕相关分析,找到相应的或较为接近的函数;   结合本次问题及相关分析,可以大体猜测到用到的函数与日期和星期相关 下面分别以“日期”与“星期”为关键词在 帮助文档 中检索,找到感觉有用的函数   TEXT(date, text_format)  将日期转换成特定格式的文本     DATE(year,month,day,hour,minute,second) 将年月日(时分秒)转换为日期对象。     4、分步实现:结合前期的分析和查找到的函数,分步解决每一个部分;   根据当前日期计算是星期几(当前星期) TEXT(DATE(当前日期),"E") 观测结果会发现,当为周日时,会显示为“0”,这时候可以通过 IF( ) 函数进行一下优化 IF(TEXT(DATE(当前日期),"E")=="0","7",TEXT(DATE(当前日期),"E")) 因为需要的是后期用到的是数字而非文本,可以通过 VALUE( ) 函数再进行一下优化 VALUE(IF(TEXT(DATE(当前日期),"E")=="0","7",TEXT(DATE(当前日期),"E")))     结合DATE( )函数,分别计算出开始日期与结束日期 在这个问题中会发现,主要变化的是“日”,“年”和“月”都保持不变,需要分别用到 YEAR( ) 、MONTH( ) 、DAY( ) 三个函数提取当前日期的年、月、日,然后通过DATE( )函数生成新的日期。 结合 1= X - ( X - 1 ),7= X + ( 7 - X ) 这两个计算方式,可以得出以下公式: 本周开始日期:DATE(YEAR(当前日期),MONTH(当前日期),DAY(当前日期)-(当前星期-1)) 本周结束日期:DATE(YEAR(当前日期),MONTH(当前日期),DAY(当前日期)+(7-当前星期))     5、整合结果:将分布实现的有效公式整合为一个公式。   通过 CONCATENATE( ) 函数,组合分步实现的各公式,并实现预期效果 CONCATENATE(TEXT(DATE(DATE(YEAR(当前日期),MONTH(当前日期),DAY(当前日期)-(VALUE(IF(TEXT(DATE(当前日期),"E")=="0","7",TEXT(DATE(当前日期),"E")))-1))),"yyyy-MM-dd")," ~ ",TEXT(DATE(DATE(YEAR(当前日期),MONTH(当前日期),DAY(当前日期)+(7-VALUE(IF(TEXT(DATE(当前日期),"E")=="0","7",TEXT(DATE(当前日期),"E")))))),"yyyy-MM-dd"))     推导公式的方式 不只这一种:   以上只是常规情况下的按部就班的线性推导方式,当对简道云中的函数有一定了解后,多发散思维,多实践尝试,或许会遇到更为精简、高效的实现方式,比如曾对金额转大写公式的一次优化尝试,详细内容可查阅 【妙简:懒人福音 金额大写公式也可以这么简单】。   多看下帮助文档中函数部分的内容,编写公式,其实并没有想象中的那么难,特别是对于比较熟悉EXCEL函数的朋友来说,会更容易上手,当遇上较为复杂的问题时,往往需要的是一次次的尝试,需要的是更多一点的耐心。   更多内容:   导航:云函数&前端事件 内容集  汇总:论坛中发表过的所有帖子   更多沟通交流可添加微信(zmlnow) 添加时请备注:简道云       都看到这里了 如果您觉得有用 赞一个呗 赏一个呗 偶会更有动力哈
“抄”能力:如何快速搞定帆软FCP认证【零代码开发工程师】
我们先来看一下,官方对“FCP”的定义: FCP-零代码开发工程师,适用于助力企业实现信息化管理的工程师,通过该认证,意味着能深入了解并利用简道云解决实际业务中遇到的问题。   由此可见,FCP所代表的是助力企业信息化且解决实施过程中所遇到的问题。而不只是简单的“拖、拉、拽”,那么如何通过FCP认证这个契机,快速提高自己的开发水平以及通过认证呢? 本人将结合自身的认证经历以及多年来在简道云中的探索过程,借此文与您一起做一次探讨。   一个认知 :简道云有什么   工欲善其事,必先利其器,想要更灵活的使用简道云,对它的了解与熟悉,是必不可少的,可以结合自身的需求,选择对它的掌握程度,通过“简道云功能地图”我们来了解一下。   摘自:企业零代码应用开发白皮书   两个准备:大胆假设、细心求证   上手简道云,很重要的一个心态是“用”,“用”是操作性技能很重要的学习与成长方式,首先,要先学会照着学、照着搬,搬的过程就是快速了解的过程,再者,要积极去发现如何在工作与生活中融入简道云,这个过程将会极大的提高成就感,乃至激发更多探索的兴趣。 对于未知的事物,每一步都是探索,每一步都是求证,当我们遇到一个具体的场景时,不要担心它的复杂性,再复杂的事物,也可以一步步地解构成一个个简单的事物,现遇到的大多数信息处理,都可以分拆成三步:输入、处理、输出,基于简道云,我们可以做以下考虑:   阶段 输入 处理 输出 初级 表单 流程 仪表盘 探索 表单 流程、函数与公式 智能助手、聚合表、数据工厂 开放平台-插件、前端事件等 仪表盘   每一个人的成长经历基本上都是由最简单的表单开始,然后到一个功能型的应用,再到更为综合的实用场景,在功能开发中,本人基本上也是复刻了这个过程。 第一步:结合需求,建立基本框架:模块 > 表单 > 字段 第二步:评估需要用到的系统资源:短信类、智能助手、聚合表、数据工厂、插件、前端事件等 第三步:结合自己的开发习惯,进行功能的搭建与优化等,本人的搭建流程如下:   搭建流程 流程说明 基本表单 结合给定字段,搭建基本表单 表单优化 字段布局、公式应用、显隐规则、新增辅助表单、高级功能应用等 基本流程 结合给定流程,搭建基本流程 流程优化 结合实际场景完善流程 报表设计 结合要求,通过仪表盘,设计各类分析报表 功能测试 结合给定要求测试各项功能,以及纠错与优化   三处宝藏:帮助中心、方案中心、帆软论坛   在功能的搭建过程中,难免会遇到自己不熟悉的或不会的地方,有些是有一定性思路,有些是完全陌生,这时候需要学会借力,其实,答案早已存在,只是不均匀的分布在不同的地方,以下三个地方基本可以解决你80%左右的问题。   帮助中心:https://hc.jiandaoyun.com/blog 通过上方链接进来,你会看到如下的内容,基本是已经归类整理好的各种实用内容。     方案中心:https://www.jiandaoyun.com/index/solution_center 如果实在不知道怎么学习简道云,不妨做过简单了解后,直接拆一个官方的方案,边拆边学。     帆软论坛:https://bbs.fanruan.com/topic/212-1.html 想要深度学习简道云,建议来这里逛一逛,有疑难杂症也可以来这里碰碰运气。     四个建议:建立新号、关注细节、贴近实战、精益求精   1、建立新号:某种程度来说,这是在做信息类工作,需要有最基本的安全意识,建立新号是最直接简单的方式; 2、关注细节:需求本身就是一道阅读题,需要解决的“真实问题”往往藏在细节之中,不注意的时候很容易忽略; 3、贴近实战:以终为始,如果放在实际场景中,这个功能谁会用,TA会怎么用,有没有更为高效的解决方式; 4、精益求精:如果时间允许,可以从头到尾过一下已开发功能,有无遗漏项,认证不是开始,当然也不是结束。   五个步骤:标红、搜索、对标、套用、优化   前文中已提到三处宝藏,其对于我们来说,就像是使用简道云的工具书,就像小时候学“字”一样,只要掌握了基本的检索方式,它就是一个“宝”。以下两个案例代表了两种不同的解决方式:   1、妙简:懒人福音 金额大写公式也可以这么简单 (点击查阅) 2、案例:如何通过简道云自动向会员发送生日短信 (点击查阅)   案例一,较为简单,其实就是一个公式的问题,记得以前曾看到过,所以用到时,就直接检索出来,拿来用,以及做了优化。   案例二,是一个较为综合的问题,需要把问题进行解构,解构成一个个独立的小问题,比如“自动”两个字就预示了大概率要用到智能助手。   在功能搭建过程中,基本可以参照以下五个步骤来解决问题:   1、标红:将疑难问题进行标记,做延后处理,先将基本框架搭起来; 2、搜索:在“三处宝藏”中依次去搜索标红的疑难问题; 3、对标:有答案的可以直接用,没有的,要找到能够做对标的问题; 4、套用:有时候是套用一个公式,有时候可以套用一个功能模块; 5、优化:直接找到的不一定适合自己,可以按个人习惯进行优化。   结语分享:简道云之三阶九段   对于新人,这像是一次检阅,对于老人,这像是一次回炉;无论认证是否通过,能够从中得以成长,也算是一种收获,最后,谨以曾整理的简道云“三阶九段”,相勉励,共精进。   初级阶段 一段:堆字段,基本的表单搭建 二段:套公式,套用已有的公式 三段:表套表,多表间相互调用 中级阶段 四段:子表单,灵活使用子表单 五段:写公式,用公式解决问题 六段:善规划,灵活使用各资源 高级阶段 七段:重体验,能注重用户体验 八段:拓场景,能拓展实用场景 九段:承未来,能以未来为起点   更多内容 导航:云函数&前端事件 内容集  汇总:论坛中发表过的所有帖子   更多沟通交流可添加微信(zmlnow) 添加时请备注:简道云       都看到这里了 如果您觉得有用 赞一个呗 赏一个呗 偶会更有动力哈  
案例:如何通过简道云自动向会员发送生日短信
昨天有道友加微信问到:如何通过简道云自动向会员发送生日短信? 刚开始以为并不复杂,当上手去测试时,发现这个需求,需要用到的功能还是挺综合的,涉及到了云短信、短信通知插件、数据工厂、智能助手、流程等,基本上是对简道云的各个模块都有所涉及。   一、前提说明:   1、在测试中发现【数据工厂】中自动同步过来的数据,在【智能助手】中通过【新增数据】不会触发动作。 2、全自动发送生日短信,需要用到【开放平台】中的【短信通知】插件 3、免费版用户,可以考虑结合【前端事件】,做半自动的,比如按文中方法自动筛选出当天生日会员,然后通过【子表单+前端事件】的方式进行手动触发发送短信。 参考资料:腾讯云函数&腾讯云短信,在前端事件中如何应用?   二、功能设置:   1、开通短信功能【SendCloud】或者【腾讯云短信】 2、在【开放平台】开通相对应的【短信通知】 插件,并设定好     3、【会员档案】表单里需要包含【生日】字段,或在数据工厂中通过计算【出生日期】获得,格式为:月-日 (比如:11-27) 4、通过【数据工厂】动态筛选出生日的会员,需要【添加计算字段】 (1)当前日期:LEFT(TEXT(DATE(TODAY()),"yyyy-MM-dd"),10) (2)生日判断:IF(生日==RIGHT(当前日期,5),1,0) 5、在【数据工厂】通过筛选功能,筛选出当日生日的会员 6、在【数据工厂】打开【将输出表数据同步到表单】功能,并根据需要设定规则,将更新的数据自动同步到【生日短信】表单     7、将【生日短信】表单,调整为流程表单,审批节点设定【节点限时处理】为【自动提交】     8、添加【智能助手】,【触发动作】为【修改数据】,【触发条件】为【流程状态】等于【流转完成】     9、在【智能助手】中添加执行动作,选择开通的【短信通知】插件,并进行相关设置。(前期调试时,可以选【新增数据】)     三、更多内容:   导航:云函数&前端事件 内容集    更多沟通交流可添加微信(zmlnow) 添加时请备注:简道云         都看到这里了 如果您觉得有用 赞一个呗 赏一个呗 偶会更有动力哈   编辑于 2021-11-28 02:29
场景:腾讯云函数&腾讯云短信,在前端事件中如何应用?
标准版及以,现在可以通过开放平台中提供的短信通知插件可直接使用短信功能,经测,已比较方便; 免费版如果有发送短信通知的需求,可以尝试下本次的方法; 本次提供的代码,可以支持到单号多变量,相关参数设置均已移入简道云表单中,也就是说,代码直接贴进去并设置好,其它的在简道云中修订即可; 考虑到兼顾安全性,使用的是Post方式传参,参数多数写在Header部分。   一、参考资料:   腾讯云短信相关设置 https://hc.jiandaoyun.com/open/12483 腾讯云函数入门资料 https://bbs.fanruan.com/thread-135549-1-1.html Python 代码参考来源 https://blog.csdn.net/qq_34156628/article/details/106323335   二、云函数代码与设置:   完成了腾讯云短信相关设置便可以开始下面腾讯云函数部分了。   云函数代码部分   # 通过腾讯云函数与腾讯云短信向手机发送短信 import json from qcloudsms_py import SmsSingleSender from qcloudsms_py.httpclient import HTTPError import urllib.request import random import ssl ssl._create_default_https_context = ssl._create_unverified_context def main_handler(event, context): i=event #SDKAppID k=event #App Key s=event #短信签名 p=event #接收短信的手机号 t=event #模板信息ID m=event #短信变量内容 m = ssender = SmsSingleSender(i,k) ssender.send_with_param(86, p,t,m,sign=s,extend='',ext='') return { "isBase64Encoded": False, "statusCode": 200, "headers": {"Content-Type": "application/json"}, "body": json.dumps() }   API触发相关设置     三、表单相关设置     四、前端事件设置:     五、扩展学习   云短信验证码相关思路 https://hc.jiandaoyun.com/open/12219 阿里云短信发送案例 https://hc.jiandaoyun.com/open/12255     六、更多内容:   导航:云函数&前端事件 内容集    更多沟通交流可添加微信(zmlnow) 添加时请备注:简道云         都看到这里了 如果您觉得有用 赞一个呗 赏一个呗 偶会更有动力哈 编辑于 2021-11-12 11:27
妙简:懒人福音 金额大写公式也可以这么简单
在日常使用简道云中,很多场景下需要将录入的数字字段的值转换为大写,比如合同中的金额需要转成大写进行打印。(这句话来自帮助文档)     温馨提示   2022-05-11更新中,官方已新增金额大写公式 RMBCAP ( ) ,详见  帮助文档 以下内容现可作为一种公式优化的思路,仅供相互交流学习。   一、现有方法总结   目前可使用的方式有两种,当然也可以说三种: 1、加个文本框,直接自己填上去; 壹、贰、叁、肆、伍、陆、柒、捌、玖、拾 2、抄段公式,对录入的数字进行处理; 帮助文档 https://hc.jiandaoyun.com/blog/11399 3、通过云函数,进行处理。 金额大写云函数 https://bbs.fanruan.com/thread-135653-1-1.html   二、帮助文档公式   方法一、三没什么可说的了,本次来谈下方法二。 近期,因事要用到这个公式,记得帮助文档中有,就查了下,本打算直接拿来用的; 一看,懵了,这个不适用于我这种懒人,每次多达27处需要手动替换。   CONCATENATE("人民币",IF(金额>=0,IF(INT(金额)-金额==0,TEXT(INT(金额),"")+"元",IF(INT(金额*10)-金额*10==0,TEXT(INT(金额),"")+"元"+TEXT(INT(金额*10)-INT(金额)*10,"")+"角",TEXT(INT(金额),"")+"元"+TEXT(INT(金额*10)-INT(金额)*10,"")+"角"+TEXT(INT(金额*100)-INT(金额*10)*10,"")+"分")),IF(INT(金额*-1)-金额*-1==0,"负"+TEXT(INT(金额*-1),"")+"元",IF(INT(金额*10*-1)-金额*10*-1==0,"负"+TEXT(INT(金额*-1),"")+"元"+TEXT(INT(金额*10*-1)-INT(金额*-1)*10,"")+"角","负"+TEXT(INT(金额*-1),"")+"元"+TEXT(INT(金额*10*-1)-INT(金额*-1)*10,"")+"角"+TEXT(INT(金额*100*-1)-INT(金额*10*-1)*10,"")+"分"))))   三、最新优化公式   如果多处使用,想想都可怕,每次都是27次啊,造吧,看看有没有更简单的方式; 还真给摸索出来了,感谢 SPLIT( ); 效果及公式如下,仅需要手动替换 4 处或者更少。 效果体验 https://tnvew1vqtq.jiandaoyun.com/f/61816ad243662500074552e3   CONCATENATE(IF(金额<0,"负",""),SPLIT(CONCATENATE(TEXT(INT(SPLIT(TEXT(金额,""),".")),""),"圆",TEXT(INT(SPLIT(SPLIT(TEXT(金额,""),"."),"")),""),"角",TEXT(INT(SPLIT(SPLIT(TEXT(金额,""),"."),"")),""),"分"),"-"),"整")   四、公式优化思路   1、经测试可发现,通过text()基本已可以得到预想的值,有出入的仅为角和分; 2、那么不妨通过split()基于小数点直接分割成左右两部分,各处理各的,然后拼接起来; 3、左边部分通过text(数值,"")即可以得到对应的大写; 4、右边部分继续用split()分割,第一位即是角,第二位即是分; 5、将相应分割出来的数字经text()转为大写,与圆角分拼在一起,即为所要最终大写。   五、更多内容 导航:云函数&前端事件 内容集    更多沟通交流可添加微信(zmlnow) 添加时请备注:简道云       都看到这里了 如果您觉得有用 赞一个呗 赏一个呗 偶会更有动力哈
卧槽:通过云函数简道云变身小网盘
因简道云附件上传容量有限,请谨慎使用,容量大户可以忽略。话不多说,进入正题。   测试结果:   在简道云中多数字段已可以跨表单获取值,但目前图片与附件仍是不可获取,在实际实用中或许会用到,那么有没有可能做到呢?跨表单后,直接呈现为图片或文件,这样接近完美的解决办法暂时没,但可以做到获取其网址,用户通过点击网址可以查阅。目前的测试结果为:   电脑端:点击后会直接下载 手机端:点击后会跳转到浏览器打开   注:测试时,是在同一张表单中通过mapx函数实现,实际使用中,可通过常规方式,跨表单获取已上传内容的网址。     功能原理:   通过查阅前端事件的相关资料及测试会发现,当图片或附件作为参数时,会将其本身的网址传递过去,由此可见实现方法,其实并不难,原理就是:将图片或附件以参数的形式传给云函数,然后再让云函数传回来。   本次测试,是直接在之前的多功能函数上进行,多功能函数相关内容可通过零代码引路人第四期直播( https://edu.fanruan.com/video/207 )进行了解。     功能设置:   获取图片网址:你的云函数访问网址?string=“图片字段” 获取附件网址:你的云函数访问网址?string=“附件字段”   注意事项:   无论图片还是附件,均需要设置为单次单个文件。 文件名称最好为数字或字母。 是否为永久性网址暂不可知。 网址中所带的token是否会存在安全性问题暂不可知。   其它说明:   因涉及到上传容量问题,不方便提供测试链接,请谅解。    更多内容   导航:云函数&前端事件 内容集    更多沟通交流可添加微信(zmlnow) 添加时请备注:简道云         都看到这里了 如果您觉得有用 赞一个呗 赏一个呗 偶会更有动力哈 编辑于 2021-8-23 21:22
12下一页
个人成就
内容被浏览132,279
加入社区1年343天
贡献:6825

联系社区管理员|联系帆软|《帆软社区协议》|手机版|帆软社区|Copyright © 帆软软件有限公司 ( 苏ICP备18065767号-7 )

GMT+8, 2022-8-11 04:47 , Processed in 0.484779 second(s), 101 queries , Gzip On.

返回顶部