Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Abap 如何在装运日期前14天获得到期日?_Abap_Function Module - Fatal编程技术网

Abap 如何在装运日期前14天获得到期日?

Abap 如何在装运日期前14天获得到期日?,abap,function-module,Abap,Function Module,要求在装运日期前14天设定付款期限。因此,我的基准日期将是装运日期。如何获取“基线日期-14天”的到期日,因为我搜索的所有资源只显示基线日期+天 我试图在OBB8中设置天数=-14,但系统不允许这样 这就是我如何更改的NET\u DUE\u DATE\u GETFM FUNCTION NET_DUE_DATE_GET. *"---------------------------------------------------------------------- *"

要求在装运日期前14天设定付款期限。因此,我的基准日期将是装运日期。如何获取“基线日期-14天”的到期日,因为我搜索的所有资源只显示基线日期+天

我试图在OBB8中设置天数=-14,但系统不允许这样

这就是我如何更改的
NET\u DUE\u DATE\u GET
FM

    FUNCTION NET_DUE_DATE_GET.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"       IMPORTING
*"             VALUE(I_ZFBDT) LIKE  BSID-ZFBDT
*"             VALUE(I_ZBD1T) LIKE  BSID-ZBD1T
*"             VALUE(I_ZBD2T) LIKE  BSID-ZBD2T
*"             VALUE(I_ZBD3T) LIKE  BSID-ZBD3T
*"             VALUE(I_SHKZG) LIKE  BSID-SHKZG
*"             VALUE(I_REBZG) LIKE  BSID-REBZG
*"             VALUE(I_KOART) LIKE  RFPOS-KOART DEFAULT 'D'
*"       EXPORTING
*"             VALUE(E_FAEDT) LIKE  RFPOS-FAEDT
*"----------------------------------------------------------------------

* ------ Initialisierung -----------------------------------------------
  CLEAR: E_FAEDT.

* ------ ZFBDT muß gesetzt sein ----------------------------------------
  CHECK NOT I_ZFBDT IS INITIAL.

* ------ REFEZ = späteste Tage aus Skontolinie -------------------------
  E_FAEDT   = I_ZFBDT.
  SEITZFBDT = SY-DATLO - I_ZFBDT.

*------- ... REFEZ = Späteste Tage aus Skontolinie ---------------------
  IF I_ZBD3T NE 0.
    REFEZ = I_ZBD3T.
  ELSE.
    IF I_ZBD2T NE 0.
      REFEZ = I_ZBD2T.
    ELSE.
      REFEZ = I_ZBD1T.
    ENDIF.
  ENDIF.

*------- REFEZ = 0 bei Gutschriften ohne Rechnungsbezug und ohne Valuta
if i_rebzg eq space.
  CASE I_KOART.
    WHEN 'D'.
      IF I_SHKZG = 'H'.
        REFEZ = 0.
      ENDIF.
    WHEN 'K'.
      IF I_SHKZG = 'S'.
        REFEZ = 0.
      ENDIF.
  ENDCASE.
endif.
*------- Fälligkeitsdatum setzen ---------------------------------------
  E_FAEDT = E_FAEDT + REFEZ.
ENDFUNCTION.

更改FM以满足我的要求是一个好主意吗?

您不应该修改标准功能模块。如果要通过FM执行此操作,主要做法是将其复制到Z功能模块,然后根据需要进行更改

或者,这取决于你是如何使用FM的,计算是如此的基本,我建议你只是在你的报告或自定义屏幕,你正在做的计算。如果您认为您将在多个程序中使用计算,那么使用功能模块进行计算可能是有意义的,但根据您试图实现的目标,您会知道这一点


稍后……

更改标准FM以实现定制需求不是最佳解决方案。你想在哪里得到这个日期?在报告中?关于FI发票创建?在发票过帐时?我想将此到期日放入发票(将输出发送到ZCI2)。或者,除了更改FM之外,还有其他解决方案吗?从哪里获取装运日期(基线日期)?是的,从obb8中设置的基线日期获取。从vtts dptbg获取的so装运日期(计划开始装运日期)