sy-uccom en punto de ampliacion
Buen día a todos.
Tengo un problema con un requerimiento, me pidieron crear un punto de ampliación en la transacción IPM2 y mandar un popup para ver que ordenes se va a autorizar despues de seleccionarlas, eso no hay problema ya lo manda el popup, el problema es no puedo hacer que me reconozca el user-command ya le intente de varias formas y no funciona, me manda el siguiente error "Incorrect nesting: Before the statement "FORM", th Zeile: 159". les envio el codigo para que lo vean, la verdad no se porque ese error
*Tabla auxiliar a revisar
*Data: Begin Of t_sel_tab Occurs 0.
* Include structure sel_tab.
*Data: End Of t_sel_tab.
*Tabla de Operaciones
Data: t_operations like table of bapi_alm_order_operation_e with header line,
*Tabla de componentes
t_components like table of bapi_alm_order_component_e with header line,
*Tabla de usuarios
ti_zpmiw32 like table of zpm_iw32 with header line
*Tabla auxiliar a revisar
* t_sel_tab like table of sel_tab with header line
.
TYPE-POOLS: SLIS.
* Declaration of Fieldcatalog
DATA: FLDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
Data: Begin Of t_sel_tab Occurs 0,
check(1) Type c.
Include Structure sel_tab.
Data: End Of t_sel_tab.
*Tabla de avisos de la bapi
Data: Begin Of t_return Occurs 0.
Include Structure bapiret2.
Data: End Of t_return.
*Areas de trabajo
Data: wa_header Like bapi_alm_order_header_e
.
*Variables y constantes
Constants: c_ipm(4) Type c Value 'IPM2',
c_pm0(4) Type c Value 'PM03',
c_x(1) Type c Value 'X'
.
Data: cancel(1) TYPE c
.
*Se revisa que el usuario este en la tabla ZPM_IW32 Tx zpmre018
Select *
From zpm_iw32
Into Table ti_zpmiw32
For All entries In sel_tab
Where bname eq sy-uname
And .
.
.
.
.
.
*Se revisa que la tabla contenga datos y que sea la tx IPM2
If sy-subrc eq space And sy-tcode eq c_ipm.
*Se toman los datos a modificar en una tabla auxiliar
* t_sel_tab[] = sel_tab[].
Loop At sel_tab.
Move-corresponding sel_tab To t_sel_tab.
Append t_sel_tab.
Clear t_sel_tab.
EndLoop.
*Se barre la tabla auxiliar y se toman los datos
Loop At sel_tab.
*Se ejecuta la bapi y se dejan las operaciones con clave PM03 y los
*componente no marcados para borrar
Clear: wa_header, t_operations, t_components, t_sel_tab.
Refresh: t_operations, t_components.
CALL FUNCTION 'BAPI_ALM_ORDER_GET_DETAIL'
EXPORTING
NUMBER = sel_tab-aufnr
IMPORTING
ES_HEADER = wa_header
TABLES
ET_OPERATIONS = t_operations
ET_COMPONENTS = t_components
RETURN = t_return
.
Delete t_operations Where control_key ne c_pm0.
Delete t_components Where delete_ind eq c_x.
*se revisa que las tablas contengan datos
If t_operations[] Is initial And t_components[] Is Initial.
Delete t_sel_tab Where objnr eq sel_tab-objnr.
EndIf.
EndLoop.
If Not t_sel_tab[] Is Initial.
FLDCAT-FIELDNAME = 'AUFNR'.
FLDCAT-COL_POS = 0.
FLDCAT-outputlen = 12.
FLDCAT-SELTEXT_M = 'ORDEN'.
APPEND FLDCAT.
CLEAR FLDCAT.
FLDCAT-FIELDNAME = 'AUFSTAT'.
FLDCAT-COL_POS = 1.
FLDCAT-outputlen = 8.
FLDCAT-SELTEXT_M = 'STATUS'.
APPEND FLDCAT.
CLEAR FLDCAT.
FLDCAT-FIELDNAME = 'KTEXT'.
FLDCAT-COL_POS = 2.
FLDCAT-outputlen = 40.
FLDCAT-SELTEXT_M = 'TEXTO'.
APPEND FLDCAT.
CLEAR FLDCAT.
CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
I_TITLE = 'AUTORIZAR ORDENES'
I_SELECTION = c_x
I_ZEBRA = c_x
I_SCREEN_START_COLUMN = 10
I_SCREEN_START_LINE = 10
I_SCREEN_END_COLUMN = 80
I_SCREEN_END_LINE = 20
I_CHECKBOX_FIELDNAME = 'CHECK'
I_TABNAME = 'T_SEL_TAB'
IT_FIELDCAT = FLDCAT[]
I_CALLBACK_PROGRAM = sy-repid
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IMPORTING
e_exit = cancel
TABLES
T_OUTTAB = T_SEL_TAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF SY-XCODE eq '&AC1'.
Leave to Screen 500.
ENDIF.
FORM user_command USING ucomm LIKE sy-ucomm
sfields TYPE slis_selfield.
EndForm.
EndIf.
EndIf.
|