按照交货日期模拟计算物料可用性的日期

在启用TMS的路径,工厂日历等影响日期计算的前提下,有些项目需要按照客户的交货日期来推算物料可用性日期,发货日期,装载日期等日期

模拟按照装运点与路径以及交货日期计算物料可用日期,见下图:

在这里插入图片描述
实现代码如下:
参数定义
******methods CONVERT_LFDAT_TO_MBDAT
importing
!IM_AUART type AUART "订单类型
!IM_VSTEL type VSTEL "装运点
!IM_ROUTE type ROUTE "路径
!IM_EDATU type VBEP-EDATU "交货日期
!IM_LOCAL_CURRENT_DATE type SY-DATUM default SY-DATLO "本地日期
!IM_LOCAL_CURRENT_TIME type SY-TIMLO default SY-TIMLO ”本地时间
exporting
!EX_MBDAT type VBEP-MBDAT "物料可用性日期
!EX_SCHEDULE_SHIPPING type TVAK-VSTRM
!EX_SCHEDULE_TRANSPORT type TVAK-TRTRM
!EX_SCHEDDU type SCHEDDU_ATP4A
!EX_SHIP_TO_VIEW type KUWEVSCHED
!EX_OPTIONS type SCHEDOPTIONS
exceptions
ERROR .
METHOD CONVERT_LFDAT_TO_MBDAT.

DATA LS_OPTION**S TYPE SCHEDOPTIONS.
IF GS_TVAK IS INITIAL.
按照物料销售订单类型获取对日期应允的操作
SELECT * INTO @GS_TVAK
UP TO 1 ROWS
FROM TVAK
WHERE AUART = @IM_AUART.
ENDSELECT.
IF SY-SUBRC <> 0.
MESSAGE E032(ZSD001) WITH IM_AUART RAISING ERROR.
ENDIF.
ENDIF.
IF GS_TVAK-TENUR IS INITIAL.
LS_OPTIONS-FORWARDS_AUTO = ‘X’.
ELSE.
LS_OPTIONS-ACCEPT_PAST_DATES = ‘X’.
ENDIF.
LS_OPTIONS-TRANSITTIME = ‘X’. "固定 没启用预测相关的审批功能
CALL FUNCTION ‘SD_SCHEDULING’
EXPORTING
IF_SCHEDULE_DIRECTION = ‘-’ "hardcode
IF_SCHEDULE_SHIPPING = GS_TVAK-VSTRM
IF_SCHEDULE_TRANSPORT = GS_TVAK-TRTRM
IF_SHIPPING_POINT = IM_VSTEL
IF_WEIGHT_GROUP = ‘’
IF_LOADING_GROUP = ‘’
IF_TRANSPORT_ROUTE = IM_ROUTE
IF_DATE_TODAY = IM_LOCAL_CURRENT_DATE
IF_TIME_TODAY = IM_LOCAL_CURRENT_TIME
IS_OPTIONS = LS_OPTIONS
IF_DELIVERY_DATE = IM_EDATU
IMPORTING
EF_MATERIAL_AVAIL_DATE = EX_MBDAT
EXCEPTIONS
INVALID_DATE = 1
INVALID_CALENDAR = 2
MISSING_DATE = 3
DATE_AFTER_END = 4
DATE_BEFORE_BEGIN = 5
INVALID_WORKINGHOURS = 6
PARAMETER_ERROR = 7
FATAL_ERROR = 8
OTHERS = 9.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4 RAISING ERROR.
ENDIF.

 CALL FUNCTION 'SD_SCHEDULING_ATP_GET_PARAMS'
  IMPORTING
    EF_SCHEDULE_SHIPPING  = EX_SCHEDULE_SHIPPING
    EF_SCHEDULE_TRANSPORT = EX_SCHEDULE_TRANSPORT
    ES_SCHEDDU            = EX_SCHEDDU
    ES_SHIP_TO_VIEW       = EX_SHIP_TO_VIEW
    ES_OPTIONS            = EX_OPTIONS.

ENDMETHOD.*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值