Difference between revisions of "SAP SD BADI"
From SapWiki
| (One intermediate revision by the same user not shown) | |||
| Line 64: | Line 64: | ||
endmethod.</nowiki> | endmethod.</nowiki> | ||
| + | |||
| + | ==Modificar nro doc ref. al crear una factura con la trn. VF01== | ||
| + | Ampliación SDVFX009 (función EXIT_SAPLV60A_001 es llamada en la función Standard RV_INVOICE_DOCUMENT_ADD), para modificar el N° del XBLNR. | ||
| + | |||
| + | [[Category:BADI]] | ||
Latest revision as of 16:59, 20 June 2026
BADI SD_COND_SAVE_A
VK11 - VK12 : Badi para manipular datos antes de grabar. No es útil para validación de datos
method IF_EX_SD_COND_SAVE_A~CONDITION_SAVE_EXIT.
data ls_vake type VAKEVB.
data: c_dlimit type p value 60,
l_dlimit(2) type n.
data l_d type p.
data l_m(50) type c VALUE 'p.planificación mayor a & días'.
FIELD-SYMBOLS: <fs_number> TYPE any table.
FIELD-SYMBOLS <fs> type any.
DATA: lw_var(40) TYPE c.
l_dlimit = c_dlimit.
REPLACE '&' INTO l_m WITH l_dlimit.
loop at CT_VAKE into ls_vake.
l_d = ls_vake-datbi - ls_vake-datab.
if l_d > c_dlimit.
* CALL FUNCTION 'MESSAGES_INITIALIZE'. "clear the buffer messages
* CALL FUNCTION 'MESSAGE_STORE' "add your message
* EXPORTING
* arbgb = '0K' "Message class
* msgty = 'E' "Message type
* MSGV1 = 'Período de validez'
* MSGV2 = ls_vake-datab
* MSGV3 = ls_vake-datbi
* MSGV4 = l_m
* txtnr = '000'. "Message number
*
* IF SY-SUBRC <> 0.
** Implement suitable error handling here
* ENDIF.
*
* CALL FUNCTION 'MESSAGES_SHOW'.
*
* CALL FUNCTION 'MESSAGES_INITIALIZE'.
* clear sy-ucomm.
* MESSAGE ' ' TYPE 'E' .
* EXIT.
* lw_var = '(SAPMV13A)NUMBER_CHANGE[]'.
* ASSIGN (lw_var) TO <fs_number>.
* IF sy-subrc = 0 AND <fs_number> IS ASSIGNED.
* clear <fs_number>[].
* endif.
lw_var = '(SAPMV13A)FCODE'.
ASSIGN (lw_var) TO <fs>.
IF sy-subrc = 0 AND <fs> IS ASSIGNED.
<fs> = 'ENT1'.
endif.
* MESSAGE E000(0k) WITH 'Período de validez'
* ls_vake-datab
* ls_vake-datbi
* l_m.
endif.
endloop.
endmethod.
Modificar nro doc ref. al crear una factura con la trn. VF01
Ampliación SDVFX009 (función EXIT_SAPLV60A_001 es llamada en la función Standard RV_INVOICE_DOCUMENT_ADD), para modificar el N° del XBLNR.