form FRM_GET_WORKING_DAYS
TABLES pt_days
CHANGING pv_duration. DATA:ls_xt001w TYPE t001w,
lv_sdate TYPE sy-datum,
lv_edate TYPE sy-datum. * Get the factory calendar for specific plant
SELECT SINGLE * FROM t001w INTO ls_xt001w
WHERE werks IN s_plant. " Use your plant * Set start date
CONCATENATE sy-datum+0(6) '01' INTO lv_sdate. * End date
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
date = lv_sdate
days = 0
months = 1
signum = '+'
years = 0
IMPORTING
calc_date = lv_edate
EXCEPTIONS
OTHERS = 2. * Get working days in between CALL FUNCTION 'DURATION_DETERMINE'
EXPORTING
factory_calendar = ls_xt001w-fabkl
IMPORTING
duration = pv_duration " In days
CHANGING
start_date = lv_sdate
end_date = lv_edate
EXCEPTIONS
factory_calendar_not_found = 1
date_out_of_calendar_range = 2
date_not_valid = 3
unit_conversion_error = 4
si_unit_missing = 5
parameters_not_valid = 6
OTHERS = 7. WHILE lv_sdate < lv_edate.
CALL FUNCTION 'DATE_CHECK_WORKINGDAY'
EXPORTING
date = lv_sdate
factory_calendar_id = ls_xt001w-fabkl
message_type = 'I'
EXCEPTIONS
DATE_AFTER_RANGE = 1
DATE_BEFORE_RANGE = 2
DATE_INVALID = 3
DATE_NO_WORKINGDAY = 4
FACTORY_CALENDAR_NOT_FOUND = 5
MESSAGE_TYPE_INVALID = 6
OTHERS = 7
.
IF sy-subrc eq 0.
append lv_sdate to pt_days.
ENDIF. CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
date = lv_sdate
days = 1
months = 0
signum = '+'
years = 0
IMPORTING
calc_date = lv_sdate
EXCEPTIONS
OTHERS = 2. ENDWHILE.
endform.

We can get working days easily by 'describe table lines ' of pt_days ,this is merely a demo of FM usage,not making an unnecessary move

随机推荐

  1. 【java多线程】队列系统之说说队列Queue

    转载:http://benjaminwhx.com/2018/05/05/%E8%AF%B4%E8%AF%B4%E9%98%9F%E5%88%97Queue/ 1.简介 Queue(队列):一种特殊的 ...

  2. java post json sample

    import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; public class Te ...

  3. PostgreSQL Oracle 兼容性之 - sys_guid()

    Oracle 使用sys_guid()用来产生UUID值.  在PostgreSQL中有类似的函数,需要安装uuid-ossp插件.  如果用户不想修改代码,还是需要使用sys_guid()函数的话, ...

  4. sqlserver乱码问题解决

    * 如果是自己创建的数据库那么就应该在一开始就选择排序规则中的:Chinese_PRC_CI_AS 1.改变排序规则方法: 右击创建的数据库,属性→选项→排序规则中选择:Chinese_PRC_CI_ ...

  5. python修改字典的值(update map value)

    mydict.update({'newkey':'newvalue'})

  6. Linux(CentOS-7) 下载 解压 安装 redis 操作的一些基本命令

    使用xshell 连接到虚拟机,并且创建 一个redis目录:创建文件命令:mkdir 文件名ls:查看当前文件里面的所有文件 使用xftp 将下载的linux版本 reids上传动新建的redis目 ...

  7. Web项目中得到访问者的真实ip

    Web项目中得到访问者的真实ip 描述:最近要实现个功能是要记录管理员登录的真实ip,但在项目中如果直接使用request.getRemoteAddr()获得ip的话,获得的可能不是真实ip,是因为使 ...

  8. 关于CPU CACHE工作机制的学习

    转自:http://blog.csdn.net/notbaron/article/details/48143409 1.  存储层次结构 由于两个不谋而合的因素如下: l  硬件:由于不同存储技术的访 ...

  9. Sqlserver 2016 R Service环境安装的各种错误(坑)解决办法

    相信很多朋友都会慕名Sqlserver 2016的R语言功能,将自己的数据库升级到Sqlserver 2016,但是当你安装完Sqlserver 2016的R语言组件之后,你会发现并不能直接使用,比如 ...

  10. Django多个中间件的执行顺序

    Django中的中间件是一个轻量级.底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出.中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django框架的健 ...