‎2006 Jan 17 4:59 AM
Error description: No entries are made in the ZRKILOG for the repeated time for the
company code 1001.
Carry out an extensive test for ABAP, as the operation is massively affected.
here the report :ZRKILOG
and the table name :ZRKILOG
PROGRAM ZRKILOG.
DATA: OK_CODE LIKE SY-UCOMM,
GT_ZRKILOG TYPE TABLE OF ZRKILOG,
G_CONTAINER TYPE SCRFNAME VALUE 'BCALV_GRID_DEMO_0100_CONT1',
GRID1 TYPE REF TO CL_GUI_ALV_GRID,
G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
tables: zrkilog.
Selektionsbildschirm
selection-screen begin of block 3 with frame.
selection-screen begin of block 1 with frame title text-002.
selection-screen begin of block 2 with frame title text-001.
select-options: s_kostl for zrkilog-kostl,
s_bukrs for zrkilog-bukrs.
selection-screen end of block 2.
selection-screen end of block 1.
selection-screen end of block 3.
----
MAIN *
----
SELECT * FROM ZRKILOG INTO TABLE gt_ZRKILOG where kostl in s_kostl
and bukrs in s_bukrs
and sperrkz ne 'X'.
CALL SCREEN 100.
----
MODULE PBO OUTPUT *
----
MODULE PBO OUTPUT.
SET PF-STATUS 'MAIN100'.
IF G_CUSTOM_CONTAINER IS INITIAL.
CREATE OBJECT G_CUSTOM_CONTAINER
EXPORTING CONTAINER_NAME = G_CONTAINER.
CREATE OBJECT GRID1
EXPORTING I_PARENT = G_CUSTOM_CONTAINER.
CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING I_STRUCTURE_NAME = 'ZRKILOG_A'
CHANGING IT_OUTTAB = GT_ZRKILOG.
ENDIF.
ENDMODULE.
----
MODULE PAI INPUT *
----
MODULE PAI INPUT.
to react on oi_custom_events:
call method cl_gui_cfw=>dispatch.
ETHOD DISPATCH .
...
FCODE: %_GC<ID><EV><Cargo>
( 4)( 4)( 4)(60)
!! SPACEs must be in between here
ignore ok_code
ignore is_systemdispatch
CLASS CL_GUI_OBJECT DEFINITION LOAD.
DATA DUMMY TYPE REF TO CL_GUI_OBJECT. CREATE OBJECT DUMMY."Workaround
data: l_event type event_stck_line_type,
l_event_object type ref to lcl_event,
l_event_tab type cntl_events,
l_one_event type cntl_event.
RETURN_CODE = CL_GUI_CFW=>RC_NOEVENT.
FIELD-SYMBOLS: <F> type any.
DATA: EVENTID TYPE I,
IS_SHELLEVENT TYPE CHAR1,
CARGO TYPE SYUCOMM,
MY_SHELL TYPE I.
DATA: SLEN TYPE I.
DATA: F TYPE SYUCOMM, F1(10), F2(10), F3(20).
Check if Control-Event
SLEN = STRLEN( SAVE_OK_CODE ).
IF SLEN <= 4.
EXIT. "// RC_NOEVENT
ENDIF.
ASSIGN SAVE_OK_CODE+0(4) TO <F>.
CASE <F>.
WHEN '%_GC'.
Ocx Event
WHEN '%_GS'.
Shell Event
IS_SHELLEVENT = TRUE.
*... Create as many dynpro proxies as necessary (ShellId 10...19)
CALL METHOD LCL_DYNPRO_PROXY=>INIT.
WHEN OTHERS.
EXIT. "// RC_NOEVENT
ENDCASE.
SLEN = SLEN - 4.
Parse the Parameters
ASSIGN SAVE_OK_CODE+4(SLEN) TO <F>.
F = <F>.
CONDENSE F.
SPLIT F AT ' ' INTO F1 F2 F3.
Shellid
IF F1 CO ' -0123456789'.
MY_SHELL = F1.
ELSE.
EXIT. "// RC_NOEVENT
ENDIF.
Eventid
IF F2 CO ' -0123456789'.
EVENTID = F2.
ELSE.
EXIT. "// RC_NOEVENT
ENDIF.
Cargo
CLEAR CARGO.
CARGO = F3.
Find the object (Unique)
READ TABLE CFW_SUBSCRIBERLIST INTO CFW_SUBSCRIBER
WITH KEY SHELLID = MY_SHELL
binary search.
IF SY-SUBRC NE 0.
exit with 'not found, not subsribed
RETURN_CODE = CL_GUI_CFW=>RC_UNKNOWN.
EXIT. "// RC_unknown
ENDIF.
if the entry is not found, the event my come from a control
created by the function module based framework
Check for systemevents.
DATA: CURRENT_EVENT TYPE CNTL_EVENT.
READ TABLE CFW_SYSTEMEVENTS INTO CURRENT_EVENT WITH KEY
EVENTID = EVENTID
SHELLID = MY_SHELL
IS_SHELLEVENT = IS_SHELLEVENT.
IF SY-SUBRC = 0.
the event is known as a systemevent.
RETURN_CODE = CL_GUI_CFW=>RC_NODISPATCH.
EXIT.
ELSE.
call method lcl_friend_of_gui_control=>get_reg_events_internal
exporting control = CFW_SUBSCRIBER-REF
importing events = l_event_tab
exceptions others = 1.
if sy-subrc ne 0.
RETURN_CODE = CL_GUI_CFW=>RC_UNKNOWN.
EXIT. "// RC_unknown
ENDIF.
read table l_event_tab with key eventid = eventid
into l_one_event.
if sy-subrc ne 0 or not l_one_event-is_systemevent is initial.
RETURN_CODE = CL_GUI_CFW=>RC_UNKNOWN.
EXIT. "// RC_unknown
endif.
the event is a 'normal' event
RETURN_CODE = CL_GUI_CFW=>RC_FOUND.
GL 8.1.99
the dispatch method might create a new stacklevel
=> clear SY-UCOMM and SAVE_OK_CODE first
CLEAR SAVE_OK_CODE.
G.Loff 5.1.99 / W.Schuster
Clear, Sy-Ucomm would be restored on next 'schlapp' otherwise
clear sy-ucomm.
Create event object
create object l_event_object
exporting event_object = cl_gui_control=>cur_event.
l_event-event_object = l_event_object.
SYSTEM-CALL KERNEL_INFO 'DYNPRO_STACK_POS' l_event-stackpos.
call method push_event
exporting current_event = l_event.
CLEAR SYSTEM_STATE. " Kompatibilitaet
Special treadment for drag & drop events !
ShellEvent Drag Drop !
if IS_SHELLEVENT = 'X' and eventid = 15.
call method handle_dragdrop_event
exporting
SHELLID = MY_SHELL
CARGO = CARGO.
else.
Notify object
CALL METHOD CFW_SUBSCRIBER-REF->DISPATCH
EXPORTING
EVENTID = EVENTID
IS_SHELLEVENT = IS_SHELLEVENT
CARGO = CARGO
IS_SYSTEMDISPATCH = SPACE.
endif.
call method pop_event
exporting current_event = l_event.
ENDIF.
ENDMETHOD.
CASE OK_CODE.
WHEN 'EXIT'.
PERFORM EXIT_PROGRAM.
WHEN OTHERS.
do nothing
ENDCASE.
CLEAR OK_CODE.
ENDMODULE.
----
FORM EXIT_PROGRAM *
----
FORM EXIT_PROGRAM.
CALL METHOD G_CUSTOM_CONTAINER->FREE.
METHOD FREE.
DATA L_CHILD TYPE REF TO CL_GUI_CONTROL.
LOOP AT CHILDREN INTO L_CHILD.
CALL METHOD L_CHILD->FREE
exceptions others = 1.
ENDLOOP.
CLEAR CHILDREN.
CALL METHOD SUPER->FREE
exceptions cntl_error = 1
cntl_system_error = 2
others = 3.
case sy-subrc.
when 0.
when 1.
raise cntl_error.
when others.
raise cntl_system_error.
endcase.
ENDMETHOD.
CALL METHOD CL_GUI_CFW=>FLUSH.
METHOD FLUSH .
...
data: rc like sy-subrc, msgli like sy-msgli.
CALL FUNCTION 'AC_FLUSH_CALL'
EXPORTING
SYSTEM_FLUSH = ' '
IMPORTING
MESSAGE_NR = rc
MESSAGE_TEXT = msgli.
sy-subrc = rc.
sy-msgli = msgli.
CASE SY-SUBRC.
WHEN 0.
WHEN 1.
system_error
MESSAGE ID 'CNDP' TYPE 'X' NUMBER 007 RAISING CNTL_SYSTEM_ERROR.
WHEN 2.
method_call_error
MESSAGE ID 'CNDP' TYPE 'X' NUMBER 006 RAISING CNTL_ERROR.
WHEN 3.
property_set_error
MESSAGE ID 'CNDP' TYPE 'X' NUMBER 006 RAISING CNTL_ERROR.
WHEN 4.
property_get_error
MESSAGE ID 'CNDP' TYPE 'X' NUMBER 006 RAISING CNTL_ERROR.
WHEN OTHERS.
RAISE CNTL_ERROR.
ENDCASE.
ENDMETHOD.
LEAVE PROGRAM.
ENDFORM.
‎2006 Jan 17 5:23 AM
Suresh,
could you please explain what exactly you are trying to achieve in this program?
regards
Ravi