PDA

Ver la Versión Completa : user_exit con INCLUDE


rhein
24/05/08, 00:31:51
Hola a todos, nuevamente recurro al foro para solucionar un problema.
Estoy con una ampliacion para la FB08 que anula contabilizacion y estoy agregando otra contabilizacion con un call transaccion y le inclui un INCLUDE con los form para batch-input y me reclama que no puedo incluirlo en el user_exit, no entiendo porque el programa del user es un reporte.

de antemano gracias
rhein

rhein
26/05/08, 15:38:52
Este es el mensaje que me envia:

Include ZBATCHINPUT
Incorrect nesting: Before the statement "FORM", the structure
introduced by "FUNCTION" must be concluded by "ENDFUNCTION" . . . . . .
. .

este es mi codigo:
*&---------------------------------------------------------------------*
*& Include ZXF48U01
*&---------------------------------------------------------------------*

INCLUDE ZBATCHINPUT.

TABLES: bkpf.
DATA: BEGIN OF doc_head OCCURS 0.
INCLUDE STRUCTURE bkpf.
DATA: END OF doc_head.

doc_head[] = doc_head_tab[].

* Verificar que sea una anulacion
IF doc_head-tcode = 'FB08'.

IF doc_head-blart = 'KZ'. "pago a proveedores

SELECT SINGLE * FROM bkpf
WHERE xblnr = doc_head-stblg "en referencia original
AND blart = 'AB'. "documento contable

IF sy-subrc = 0.

* Anular clase documento AB
REFRESH bdcdata.
CLEAR bdcdata.
perform bdc_dynpro using 'SAPMF05A' '0105'.
perform bdc_field using 'BDC_CURSOR' 'RF05A-BELNS'.
perform bdc_field using 'BDC_OKCODE' '=BU'.
perform bdc_field using 'RF05A-BELNS' bkpf-belnr.
perform bdc_field using 'BKPF-BUKRS' bkpf-bukrs.
perform bdc_field using 'RF05A-GJAHS' bkpf-gjahr.
perform bdc_field using 'UF05A-STGRD' '01'.

CALL TRANSACTION 'FB08' USING BDCDATA
MODE MODO_BI
UPDATE 'S'
MESSAGES INTO ti_mensajes.

ENDIF. "IF sy-subrc = 0.
ENDIF. "IF doc_head_tab-blart = 'KZ'.
ENDIF. "IF doc_head_tab-tcode = 'FB08'.


estoy aproblemado, por favor quien me puede ayudar.

gracias
Rhein

ecm
27/05/08, 07:24:54
Es que ese include no lo puedes poner ahí.
Tu include ZXF48U01 está en algún grupo de funciones. El programa de control del grupo de funciones es SAPL*. En el programa de control tiene un include que se llama ZX*ZZZ ó algo así que tiene puesto un comentario al lado " Subprograms and Modules. Es en este include donde tienes que meter tu include de definición de rutinas.

rhein
27/05/08, 14:25:45
Gracias ECM, probare inmediatamente.