Difference between revisions of "SAP SD ABAP"

From SapWiki
(Created page with "==Leer flujo de documentos== <nowiki> FUNCTION Z_PEDIDO_FROM_FACTURA. *"---------------------------------------------------------------------- *"*'Interfase local *" IM...")
 
Line 1: Line 1:
−
==Leer flujo de documentos==
+
==Leer flujo de documentos FM RV_ORDER_FLOW_INFORMATION==
 
  <nowiki>
 
  <nowiki>
 
FUNCTION Z_PEDIDO_FROM_FACTURA.
 
FUNCTION Z_PEDIDO_FROM_FACTURA.
Line 58: Line 58:
  
 
ENDFUNCTION.</nowiki>
 
ENDFUNCTION.</nowiki>
 +
 +
===Programa ribelf20===
 +
===FM DISPLAY_DOCUMENT_FLOW_ALV===

Revision as of 19:56, 24 June 2026

Leer flujo de documentos FM RV_ORDER_FLOW_INFORMATION

FUNCTION Z_PEDIDO_FROM_FACTURA.
*"----------------------------------------------------------------------
*"*'Interfase local
*"       IMPORTING
*"             VALUE(FACTURA)
*"       EXPORTING
*"             VALUE(XVBAK) LIKE  VBAK STRUCTURE  VBAK
*"       EXCEPTIONS
*"              FACTURA_NO_EXISTE
*"----------------------------------------------------------------------
  TABLES: VBRK,
          VBAK,
          TVFK.
  DATA COMWA LIKE VBCO6 .
  DATA VBFA_TAB LIKE VBFA OCCURS 5 WITH HEADER LINE.

  CLEAR XVBAK.

  SELECT SINGLE * FROM VBRK WHERE VBELN EQ FACTURA.
  IF SY-SUBRC EQ 0.
    SELECT SINGLE * FROM TVFK WHERE FKART EQ VBRK-FKART.

    COMWA-MANDT = SY-MANDT.
    COMWA-VBELN = FACTURA.
    CALL FUNCTION 'RV_ORDER_FLOW_INFORMATION'
         EXPORTING
*         AUFBEREITUNG  = '2'
             BELEGTYP      = ' '       "pedido
              COMWA         = COMWA
*    IMPORTING
*         BELEGTYP_BACK =
         TABLES
              VBFA_TAB      = VBFA_TAB
         EXCEPTIONS
              NO_VBFA       = 1
              NO_VBUK_FOUND = 2
              OTHERS        = 3.
    IF TVFK-BLART EQ 'DA' AND TVFK-KALVG EQ 'Z'. "factura anticipada

      READ TABLE VBFA_TAB WITH KEY VBELN = VBRK-VBELN.
      SELECT SINGLE * FROM VBAK WHERE VBELN EQ VBFA_TAB-VBELV.
    ELSEIF TVFK-BLART EQ 'DA' AND TVFK-KALVG EQ 'A'. "factura standard.
      READ TABLE VBFA_TAB WITH KEY VBELN = VBRK-VBELN.
      READ TABLE VBFA_TAB WITH KEY VBELN = VBFA_TAB-VBELV.
      SELECT SINGLE * FROM VBAK WHERE VBELN EQ VBFA_TAB-VBELV.
    ELSEIF TVFK-BLART EQ 'DD' OR TVFK-BLART EQ 'DF'. "nota credito
                                       "nota debito
      READ TABLE VBFA_TAB WITH KEY VBTYP_N = 'C'.
      SELECT SINGLE * FROM VBAK WHERE VBELN EQ VBFA_TAB-VBELN.
    ENDIF.
    XVBAK = VBAK.

  ELSE.
    RAISE FACTURA_NO_EXISTE.
  ENDIF.

ENDFUNCTION.

Programa ribelf20

FM DISPLAY_DOCUMENT_FLOW_ALV