在一个表单的流程中,多个流程节点包含了操作时间的控件。
通过给日期控件写公式,获取当前时间。
问题是:流程发起时,所有日期控件均获取了流程发起时点的时间,并且在流程流到后续相应节点的时候没有执行公式去再次获取相应的最新当前时间。
所以请做过的朋友帮帮忙,给个思路。非常感谢。
在宜搭流程中,可以使用以下步骤给日期控件赋值当前时间:
from datetime import datetime
# 获取当前时间
now = datetime.now()
# 将当前时间赋值给日期控件
date_control = ... # 获取日期控件对象
date_control.value = now.strftime('%Y-%m-%d')
其中,now
是当前时间,strftime()
方法用于将时间格式化为指定的字符串格式。
您可以使用宜搭表达式语言中的 now() 函数来获取当前时间,并将其赋值给日期控件。
具体来说,您可以在日期控件的默认值表达式中,使用 now() 函数来获取当前时间。例如,假设您的日期控件的字段名为 date_field,您可以将其默认值设置为:
now() 这将在流程发起时,将当前时间赋值给日期控件。如果您希望在流程的后续节点中更新日期控件的值,可以在相应的节点中,通过设置日期控件的值表达式来实现。
例如,假设您希望在流程的第二个节点中更新日期控件的值,您可以将该节点中日期控件的值表达式设置为:
now() 这将在流程流到第二个节点时,将当前时间赋值给日期控件。
需要注意的是,如果您希望流程的后续节点中的日期控件始终显示最新的时间,您需要在每个节点中都设置日期控件的值表达式,并使用 now() 函数来获取当前时间。
您可以尝试在日期控件的公式中使用JavaScript的Date对象,通过getCurrentTime()方法获取当前时间,并将其赋值给日期控件。您可以按照以下步骤进行操作:
打开表单设计器,选择需要设置默认值的日期控件,并点击“公式”按钮。 在公式编辑器中输入以下代码: =new Date().toLocaleString() 上述代码会获取当前时间并将其格式化为字符串,然后将其赋值给日期控件。
点击“确认”按钮保存并关闭公式编辑器。 重新打开表单设计器,并选择需要设置默认值的日期控件,再次点击“公式”按钮。 将原先的公式修改为以下代码: =if(isNull(Value),new Date().toLocaleString(),Value) 上述代码会首先检查当前日期控件是否已经有值,如果没有,则会将当前时间赋值给日期控件;否则不做任何修改,保留原先的值。
点击“确认”按钮保存并关闭公式编辑器。 这样,当您发起一个流程时,所有日期控件都会自动获取当前时间作为默认值。而当流程流转到下一个节点时,日期控件的值不会被修改,仍然保留着发起流程时的值。希望这样能够帮助到您。
要想在宜搭内获取流程节点审批时间,您可以采用数据源调用“获取审批记录”接口,再返回值中可以查看流程信息,其中包括审批时间。详情可参考文档:获取审批记录。
目前审批单的审批时间暂时没有限制,以最后一个审批人审批结束为完成。如果相关审批人一直没有审批的话,发起人可以在审批单下方点击【催办】,审批人就会接收到一条催促处理的DING消息。
宜搭内获取审批节点的时间可以调用宜搭平台接口实现,参考文档:宜搭平台接口
若想在宜搭内查看审批市场,您可以将数据表单放到报表里面,展示列字段选择修改时间和创建时间,再使用公式将两个时间相减得到一个时长即是流程从发起到结束的一个时间,如图配置即可:
另外宜搭流程节点所用审批时长可以在自定义页面用接口获取并展示出来,详情参考文档:自定页页面查看流程系效率。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。