BOS单据转换流程中选单过滤条件设置了与当前日期有关的关键字段,过了当前日期不生效的问题怎么解决?

栏目:k3wise知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

BOS单据转换流程中选单过滤条件设置了与当前日期有关的关键字段,过了当前日期不生效的问题怎么解决?

问题描述:

自定义BOS单据,设置了系统自带单据与自定义单据的单据转换流程,,设置选单条件为“单据日期之前3天”,设置的当天是生效的,第二天就不生效了,始终还是过滤前一天之前3天的单据,无法根据当前系统日期进行判断。

解决方案:

      在设计的时候为了提升性能,单据流转关系选单过滤条件存储的是解析后的过滤方案,所以对过滤界面设置的方案中与日期相关的条件并没有支持到。这个问题受到框架的限制,无法从程序上根本解决。经过分析可以通过脚本处理,变通的解决该问题。

      

     以下是进行脚本处理的样例,实际操作请参考样例进行对应的修改,样例代码:

--1.查询获取到源单及目标单据的类型:FClassTypeID

select FID,* from ICClassType where FName_CHS LIKE '采购增值税发票%'   --FClassTypeID=1000004

select FID,* from ICClassType where FName_CHS LIKE '进项增值税发票%'   --FClassTypeID=1000110

 

--2.根据源单和目标单的FClassTypeID查看配置完成的选单过滤条件:FCondition

select FCondition,* from ICClassLink where FSourClassTypeID=1000110 and FDestClassTypeID=1000004

 

--3.更新过滤条件(注意:不同的场景更新的语句不同,以下只是例子:日期字段在今天之前天,其中的-3则表示前天)

--update ICClassLink set FCondition='(t_IncomSpecInvoice.kprq BETWEEN convert(char(10),dateadd(dd,-3,GETDATE()),120) AND convert(char(10),GETDATE(),120)+'' 23:59:59'') '

--where FSourClassTypeID=1000110 and FDestClassTypeID=1000004

 

--例句2:日期字段在今天之前天或者某日期字段等于今天的SQL

update ICClassLink set FCondition='(t_IncomSpecInvoice.kprq BETWEEN convert(char(10),dateadd(dd,-3,GETDATE()),120) AND convert(char(10),GETDATE(),120)+'' 23:59:59''  

 OR t_IncomSpecInvoice.kprq BETWEEN convert(char(10),GETDATE(),120) AND convert(char(10),GETDATE(),120)+'' 23:59:59'' ) '

where FSourClassTypeID=1000110 and FDestClassTypeID=1000004

 

以上的样例修改前后对比:

以下是操作步骤,实际的单据请参考样例进行对应的修改:

1.  查询获取到源单及目标单据的类型:FClassTypeID

 

2.  根据源单和目标单的FClassTypeID查看配置完成的选单过滤条件:FCondition

 

3.  更新过滤条件(注意:不同的场景更新的语句不同,以下只是例子:日期字段在今天之前天,其中的-3则表示前天)

 

备注:

1.  注意,通过脚本修改了对应的过滤条件数据后,则不能要再通过BOS设计器修改对应的选单过滤条件,否则会被保存时覆盖哦!!!

2.  修改数据前记得备份,以免数据错误更新,最好现在测试账套验证完成,再到正式账套中处理。

3.  以上脚本只是样例,请按照实际情况进行修改。

    

 



BOS单据转换流程中选单过滤条件设置了与当前日期有关的关键字段,过了当前日期不生效的问题怎么解决?

问题描述:自定义BOS单据,设置了系统自带单据与自定义单据的单据转换流程,,设置选单条件为“单据日期之前3天”,设置的当天是生效的,第...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息