1. form FRM_GET_WORKING_DAYS
  2. TABLES pt_days
  3. CHANGING pv_duration.
  4. DATA:ls_xt001w TYPE t001w,
  5. lv_sdate TYPE sy-datum,
  6. lv_edate TYPE sy-datum.
  7. * Get the factory calendar for specific plant
  8. SELECT SINGLE * FROM t001w INTO ls_xt001w
  9. WHERE werks IN s_plant. " Use your plant
  10. * Set start date
  11. CONCATENATE sy-datum+0(6) '01' INTO lv_sdate.
  12. * End date
  13. CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
  14. EXPORTING
  15. date = lv_sdate
  16. days = 0
  17. months = 1
  18. signum = '+'
  19. years = 0
  20. IMPORTING
  21. calc_date = lv_edate
  22. EXCEPTIONS
  23. OTHERS = 2.
  24. * Get working days in between
  25. CALL FUNCTION 'DURATION_DETERMINE'
  26. EXPORTING
  27. factory_calendar = ls_xt001w-fabkl
  28. IMPORTING
  29. duration = pv_duration " In days
  30. CHANGING
  31. start_date = lv_sdate
  32. end_date = lv_edate
  33. EXCEPTIONS
  34. factory_calendar_not_found = 1
  35. date_out_of_calendar_range = 2
  36. date_not_valid = 3
  37. unit_conversion_error = 4
  38. si_unit_missing = 5
  39. parameters_not_valid = 6
  40. OTHERS = 7.
  41. WHILE lv_sdate < lv_edate.
  42. CALL FUNCTION 'DATE_CHECK_WORKINGDAY'
  43. EXPORTING
  44. date = lv_sdate
  45. factory_calendar_id = ls_xt001w-fabkl
  46. message_type = 'I'
  47. EXCEPTIONS
  48. DATE_AFTER_RANGE = 1
  49. DATE_BEFORE_RANGE = 2
  50. DATE_INVALID = 3
  51. DATE_NO_WORKINGDAY = 4
  52. FACTORY_CALENDAR_NOT_FOUND = 5
  53. MESSAGE_TYPE_INVALID = 6
  54. OTHERS = 7
  55. .
  56. IF sy-subrc eq 0.
  57. append lv_sdate to pt_days.
  58. ENDIF.
  59. CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
  60. EXPORTING
  61. date = lv_sdate
  62. days = 1
  63. months = 0
  64. signum = '+'
  65. years = 0
  66. IMPORTING
  67. calc_date = lv_sdate
  68. EXCEPTIONS
  69. OTHERS = 2.
  70. ENDWHILE.
  71. 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. 【SpringBoot】SpringBoot拦截器实战和 Servlet3.0自定义Filter、Listener

    =================6.SpringBoot拦截器实战和 Servlet3.0自定义Filter.Listener ============ 1.深入SpringBoot2.x过滤器Fi ...

  2. iuplua test on luaforwindows

    SW https://github.com/rjpcomputing/luaforwindows/releases Steps Install lua for windows write a bat ...

  3. lavarel mongo 操作

    本人使用环境   Ubuntu 18.04 LTS php7.2 lavarel5.5 mongodb的安装 mongodb 服务的安装   这个链接中有最全面最新的安装文档 https://docs ...

  4. jenkins搭配git 从远程端拉取代码回来执行的问题

    jenkins上git 拉取回来的代码是在 工作区的文件夹里面(默认每次拉取最新的版本下来的)(不是自己本地仓库的那个)  (晕~~,一开始以为是拉取回自己的本地仓库) 找到jenkins git里面 ...

  5. centos 设置中文环境

    方法1: [hl@localhost ~]$ LANG=zh_CN.UTF-8 #只对当前shell有效,临时设置 [hl@localhost ~]$ ll 总用量 drwxrwxr-x. hl hl ...

  6. nodejs+mocha+supertest+chai进行测试(only demo)

    1.nodejs安装成功 (上一篇:brew install nodejs) 2.mocha安装成功 npm install -g mocha 解释: -g代表global,全局的意思.此处mocha ...

  7. Android开发 assets目录

    Android资源文件分类: Android资源文件大致可以分为两种: 第一种是res目录下存放的可编译的资源文件: 这种资源文件系统会在R.Java里面自动生成该资源文件的ID,所以访问这种资源文件 ...

  8. python grib气象数据可视化

    基于Python的Grib数据可视化           利用Python语言实现Grib数据可视化主要依靠三个库——pygrib.numpy和matplotlib.pygrib是欧洲中期天气预报中心 ...

  9. 注解_Annotation

    ---恢复内容开始--- 一.什么是注解 注解,英文Annotation,它不是程序本身,是对程序的解释,在这里我会想到为什么不能使用注释呢,因为注解是关于程序对信息的处理的流程的一些说明,而且格式也 ...

  10. 来自Github的优秀源码(python操作iframe框架网页)

    #Please use your username and password for academia in codeimport timefrom selenium import webdriver ...