将DueDate移至上一个工作日

2020-09-08 10:14发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我们将SAP Business One设置为将发票到期日期移至下一个工作日,并将周六,周日视为周末。 例如,当前的SAP Business One将DueDate移至星期一作为周末之后的下一个工作日。 我正在做的是将DueDate移至星期五,即前一个工作日。 我的FMS查询以某种方式检测出DueDate是否是周末,但无法使用DateAdd更改DueDate。 任何建议,建议将不胜感激。

这是我的FMS查询:

声明@DocDooDate日期='2019-06-23'/*出于测试目的手动设置DueDate */
 声明@Day nvarchar(100)=日期名称(工作日,@ DocDooDate)
 打印@Day
/*检查DueDate是否为周日日曜日*/
 如果@Day ='日曜日'
 开始
 声明@NewDocDooDate date =(Dateadd(day,-2,@DocDooDate));
 打印@DocDooDate
 结束
/*检查DueDate是否是星期六土曜日*/
 否则,如果@Day ='土曜日'
 开始
 SET @NewDocDooDate =(Dateadd(day,-1,@DocDooDate));
 打印@DocDooDate
 结束
 其他
/*如果DueDate不是周末,那么根本不要更改DueDate */
 开始
 设置@DocDooDate = @DocDooDate
 结束
 

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我们将SAP Business One设置为将发票到期日期移至下一个工作日,并将周六,周日视为周末。 例如,当前的SAP Business One将DueDate移至星期一作为周末之后的下一个工作日。 我正在做的是将DueDate移至星期五,即前一个工作日。 我的FMS查询以某种方式检测出DueDate是否是周末,但无法使用DateAdd更改DueDate。 任何建议,建议将不胜感激。

这是我的FMS查询:

声明@DocDooDate日期='2019-06-23'/*出于测试目的手动设置DueDate */
 声明@Day nvarchar(100)=日期名称(工作日,@ DocDooDate)
 打印@Day
/*检查DueDate是否为周日日曜日*/
 如果@Day ='日曜日'
 开始
 声明@NewDocDooDate date =(Dateadd(day,-2,@DocDooDate));
 打印@DocDooDate
 结束
/*检查DueDate是否是星期六土曜日*/
 否则,如果@Day ='土曜日'
 开始
 SET @NewDocDooDate =(Dateadd(day,-1,@DocDooDate));
 打印@DocDooDate
 结束
 其他
/*如果DueDate不是周末,那么根本不要更改DueDate */
 开始
 设置@DocDooDate = @DocDooDate
 结束
 
付费偷看设置
发送
3条回答
微wx笑
1楼-- · 2020-09-08 10:53

嗨,

我不确定该查询如何工作。 如果工作日是星期天,则声明@NewDocDooDate,但是如果工作日是星期六,则也可以尝试设置它。 如果工作日是其他日子,则根本不设置@NewDocDooDate。

您实际上返回哪个变量?

当您说" ...它不能 要更改DueDate ...",您是否测试过是否可以使用格式化搜索开始更改截止日期?

如果可以完成,您可以测试以下版本的查询:

声明@DocDooDate datetime ='2019-06-23'/*出于测试目的手动设置DueDate */
 打印@DocDooDate
 声明@NewDocDooDate日期时间= @DocDooDate
 打印@NewDocDooDate
 声明@Day nvarchar(100)=日期名称(工作日,@DocDooDate)
 打印@Day
/* Checkif DueDate是星期天日曜日*/
 如果@Day ='日曜日'
  开始
   SET @NewDocDooDate = Dateadd(day,-2,@DocDooDate)
  结束
/* Checkif DueDate是星期六土曜日*/
 否则@Day ='土曜日'
  开始
   SET @NewDocDooDate = Dateadd(day,-1,@DocDooDate)
  结束
/*如果DueDate不是周末,则完全不要更改DueDate */
 其他
  开始
   SET @NewDocDooDate = @DocDooDate
  结束
 打印@NewDocDooDate
 SELECT @NewDocDooDate 

问候

Johan

lukcy2020
2楼-- · 2020-09-08 10:53

Johan

感谢修订查询。 它可以在SSMS(SQL Server Management Studio)下运行,但在转换为FMS查询时不起作用(即在修改后的查询中将@DocDooDate设置为$ [$ 12.0.0]之后)

在另一个音符上。

  • 我可以使用销售A/R发票中分配给DueDate的另一个FMS查询(SELECT DATEADD(dd,-3,$ [$ 12.0.0])更改DueDate。但是,我需要单击放大镜以更改DueDate 。如果在销售应收发票中添加过帐日期后可以自动更改DueDate,那将是很好的选择。
  • 同一FMS查询无法检测到DueDate是星期六还是星期日,因此,如果DueDate是工作日(星期一至星期五),并且如果有人单击放大镜,DueDate将被移回3天(例如,星期四-> 星期一)。
大道至简
3楼-- · 2020-09-08 10:53

自上一篇文章以来有了新的发展。

FMS查询现在可以检测Duedate是周六还是周日,并将其成功移至上周的周五。 如果是星期一,我需要将Duedate移至上周的星期五。 这是FMS查询的测试版本。

最后一个障碍仍然存在-单击放大镜玻璃以移动DueDate。 在应收发票中添加过帐日期后,我需要Duedate自动更改。 FMS Query设置为根据"过帐日期"自动填充,但不会自动更改。 任何建议或古怪的想法,将不胜感激。

 FMS查询(已成功测试):
 当Datepart(WEEKDAY,$ [$ 12.0.0])='1'时的SELECT情况DateAdd(dd,-2,$ [$ 12.0.0])当Datepart(WEEKDAY,$ [$ 12.0.0])='2'THEN  DateAdd(dd,-3,$ [$ 12.0.0])当Datepart(WEEKDAY,$ [$ 12.0.0])='7'时DateAdd(dd,-1,$ [$ 12.0.0])否则$ [$ 12.0。  0]结束

一周热门 更多>