When to syncronize automation queue (calling cl_gui_cfw= flush)
Hello,
I'm using OO ALV (using cl_gui_alv_grid class), with checkboxes and user interaction, and it all seems to work OK. But i'm not calling class method cl_gui_cfw=>flush in any point at my program, because I don't clearly understand what's the method's use and need.
Could you please explain this to me? I've already read some SAP help about control framework, automation queue and all but still don't get it (so please try to explain instead of simply pasting SAP help links).
Many thanks
Ok, from your last post i deduce that for every control class (i.e. cl_gui_alv_grid), there's a proxy class in the application server. All that is transparent to the programmer.
But could you give some example of when the necessity arises to use the flush method explicitly?
My ALV code in this case isn't much complicated, i just call the check_changed_data method to detect changes in checkboxes and then call refresh_table_display. But would like to understand this fully so I can be prepared for any case.
EDIT: I guess the need depends on the context of the program being developed. But I understood the concept so I'm closing the thread.
Edited by: Alejandro Bindi on Aug 7, 2008 11:28 PM
Similar Messages
-
What is the functionality CALL METHOD CL_GUI_CFW= FLUSH
Hi,
What is the functionality of method "FLUSH" in class CL_GUI_CFW
Should it be used after every call method CL_GUI_FRONTEND_SERVICES=>......
What is the purpose of using it? What happens if we don't use it?hi
good
The class CL_GUI_CFW contains static methods that apply to all instantiated custom controls when you call them.
You can force a synchronization point in your program by calling a method that is not buffered, or by calling the static method FLUSH.
CLASS event_handler IMPLEMENTATION.
METHOD handle_f1.
DATA row TYPE i.
MESSAGE i888(sabapdocu) WITH text-003.
CALL METHOD sender->get_selection_pos
IMPORTING from_line = row.
CALL METHOD sender->get_line_text
EXPORTING line_number = row
IMPORTING text = field.
CALL METHOD cl_gui_cfw=>set_new_ok_code
EXPORTING new_code = 'F1'.
CALL METHOD cl_gui_cfw=>flush.
ENDMETHOD.
thanks
mrutyun^ -
SUBMIT inside a method & the automation queue
Hi,
I call a method via a tree toolbar button in that calls a standard SAP report using the SUBMIT AND RETURN command. This is done within a screen with several docking containers and split screens attached.
The problem is that when I press the toolbar button, the report (which also has docking container) is presented partially inside my screen.
When I put a BREAK-POINT on the SUBMIT statement it is good and I can see SAP's report with no issues and I do not see my screen. When I take the break point off it is back to the original problem.
This leaves me to think that it is an automation queue problem or something like that.
How can I get over this?
Thanks,
ItayHello Itay
I tried to simulate your situation. Perhaps you get from this sample report (which was copied from BCALV_TREE_DEMO and the adjusted) some ideas how to solve your problem. In my report all controls are displayed properly.
[code]&----
*& Report ZUS_SDN_BCALV_TREE_DEMO_8 *
*& Based on: BCALV_TREE_DEMO *
REPORT zus_sdn_bcalv_tree_demo.
DATA:
gd_okcode TYPE ui_func,
go_docking TYPE REF TO cl_gui_docking_container,
go_splitter TYPE REF TO cl_gui_splitter_container,
go_cell_left TYPE REF TO cl_gui_container,
go_cell_right TYPE REF TO cl_gui_container,
go_grid TYPE REF TO cl_gui_alv_grid.
data:
gt_knb1 type standard table of knb1. " dummy
*$Comment: begin
DATA:
gd_delete_nkey TYPE lvc_nkey.
*$Comment: end
CLASS cl_gui_column_tree DEFINITION LOAD.
CLASS cl_gui_cfw DEFINITION LOAD.
DATA tree1 TYPE REF TO cl_gui_alv_tree.
DATA mr_toolbar TYPE REF TO cl_gui_toolbar.
INCLUDE <icon>.
INCLUDE ZUS_SDN_BCALV_TB_EVENT_RCVR8.
*INCLUDE zus_sdn_bcalv_tb_event_rcvr.
*include bcalv_toolbar_event_receiver.
INCLUDE ZUS_SDN_BCALV_TREE_EVENT_RCVR8.
*INCLUDE zus_sdn_bcalv_tree_event_rcvr.
*include bcalv_tree_event_receiver.
DATA: toolbar_event_receiver TYPE REF TO lcl_toolbar_event_receiver.
DATA: gt_sflight TYPE sflight OCCURS 0, "Output-Table
gt_fieldcatalog TYPE lvc_t_fcat, "Fieldcatalog
ok_code LIKE sy-ucomm. "OK-Code
START-OF-SELECTION.
Create docking container
CREATE OBJECT go_docking
EXPORTING
parent = cl_gui_container=>screen0
ratio = 90
EXCEPTIONS
OTHERS = 6.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Create splitter container
CREATE OBJECT go_splitter
EXPORTING
parent = go_docking
rows = 1
columns = 2
NO_AUTODEF_PROGID_DYNNR =
NAME =
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Get cell container
CALL METHOD go_splitter->get_container
EXPORTING
row = 1
column = 1
RECEIVING
container = go_cell_left.
CALL METHOD go_splitter->get_container
EXPORTING
row = 1
column = 2
RECEIVING
container = go_cell_right.
Create ALV grid
CREATE OBJECT go_grid
EXPORTING
i_parent = go_cell_right
EXCEPTIONS
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL METHOD go_grid->set_table_for_first_display
EXPORTING
i_structure_name = 'KNB1'
CHANGING
it_outtab = gt_knb1
EXCEPTIONS
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Link the docking container to the target dynpro
CALL METHOD go_docking->link
EXPORTING
repid = syst-repid
dynnr = '0100'
CONTAINER =
EXCEPTIONS
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL SCREEN 100.
END-OF-SELECTION.
*& Module PBO OUTPUT
process before output
MODULE pbo OUTPUT.
SET PF-STATUS 'MAIN100'.
IF tree1 IS INITIAL.
PERFORM init_tree.
ENDIF.
CALL METHOD cl_gui_cfw=>flush.
ENDMODULE. " PBO OUTPUT
*& Module PAI INPUT
process after input
MODULE pai INPUT.
translate ok_code to upper case.
CASE ok_code.
WHEN 'EXIT' OR 'BACK' OR 'CANC'.
PERFORM exit_program.
*$Comment: begin
WHEN 'DELETE'.
CALL METHOD tree1->delete_subtree
EXPORTING
i_node_key = gd_delete_nkey " = folder 'AA'
I_UPDATE_PARENTS_EXPANDER = SPACE
I_UPDATE_PARENTS_FOLDER = SPACE
EXCEPTIONS
node_key_not_in_model = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL METHOD tree1->update_calculations
EXPORTING
no_frontend_update = ' '. " do frontend update
*$Comment: end
WHEN OTHERS.
CALL METHOD cl_gui_cfw=>dispatch.
ENDCASE.
CLEAR ok_code.
CALL METHOD cl_gui_cfw=>flush.
ENDMODULE. " PAI INPUT
*& Form build_fieldcatalog
build fieldcatalog for structure sflight
FORM build_fieldcatalog.
get fieldcatalog
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'SFLIGHT'
CHANGING
ct_fieldcat = gt_fieldcatalog.
SORT gt_fieldcatalog BY scrtext_l.
change fieldcatalog
DATA: ls_fieldcatalog TYPE lvc_s_fcat.
LOOP AT gt_fieldcatalog INTO ls_fieldcatalog.
CASE ls_fieldcatalog-fieldname.
WHEN 'CARRID' OR 'CONNID' OR 'FLDATE'.
ls_fieldcatalog-no_out = 'X'.
ls_fieldcatalog-key = ''.
WHEN 'PRICE' OR 'SEATSOCC' OR 'SEATSMAX' OR 'PAYMENTSUM'.
ls_fieldcatalog-do_sum = 'X'.
ENDCASE.
MODIFY gt_fieldcatalog FROM ls_fieldcatalog.
ENDLOOP.
ENDFORM. " build_fieldcatalog
*& Form build_hierarchy_header
build hierarchy-header-information
-->P_L_HIERARCHY_HEADER strucxture for hierarchy-header
FORM build_hierarchy_header CHANGING
p_hierarchy_header TYPE treev_hhdr.
p_hierarchy_header-heading = 'Hierarchy Header'. "#EC NOTEXT
p_hierarchy_header-tooltip =
'This is the Hierarchy Header !'. "#EC NOTEXT
p_hierarchy_header-width = 30.
p_hierarchy_header-width_pix = ''.
ENDFORM. " build_hierarchy_header
*& Form exit_program
free object and leave program
FORM exit_program.
CALL METHOD tree1->free.
LEAVE PROGRAM.
ENDFORM. " exit_program
*& Form build_header
build table for html_header
--> p1 text
<-- p2 text
FORM build_comment USING
pt_list_commentary TYPE slis_t_listheader
p_logo TYPE sdydo_value.
DATA: ls_line TYPE slis_listheader.
LIST HEADING LINE: TYPE H
CLEAR ls_line.
ls_line-typ = 'H'.
LS_LINE-KEY: NOT USED FOR THIS TYPE
ls_line-info = 'ALV-tree-demo: flight-overview'. "#EC NOTEXT
APPEND ls_line TO pt_list_commentary.
STATUS LINE: TYPE S
CLEAR ls_line.
ls_line-typ = 'S'.
ls_line-key = 'valid until'. "#EC NOTEXT
ls_line-info = 'January 29 1999'. "#EC NOTEXT
APPEND ls_line TO pt_list_commentary.
ls_line-key = 'time'.
ls_line-info = '2.00 pm'. "#EC NOTEXT
APPEND ls_line TO pt_list_commentary.
ACTION LINE: TYPE A
CLEAR ls_line.
ls_line-typ = 'A'.
LS_LINE-KEY: NOT USED FOR THIS TYPE
ls_line-info = 'actual data'. "#EC NOTEXT
APPEND ls_line TO pt_list_commentary.
p_logo = 'ENJOYSAP_LOGO'.
ENDFORM. "build_comment
*& Form create_hierarchy
text
--> p1 text
<-- p2 text
FORM create_hierarchy.
DATA: ls_sflight TYPE sflight,
lt_sflight TYPE sflight OCCURS 0.
get data
SELECT * FROM sflight INTO TABLE lt_sflight
UP TO 200 ROWS . "#EC CI_NOWHERE
SORT lt_sflight BY carrid connid fldate.
add data to tree
DATA: l_carrid_key TYPE lvc_nkey,
l_connid_key TYPE lvc_nkey,
l_last_key TYPE lvc_nkey.
LOOP AT lt_sflight INTO ls_sflight.
ON CHANGE OF ls_sflight-carrid.
PERFORM add_carrid_line USING ls_sflight
CHANGING l_carrid_key.
ENDON.
*$Comment: begin
IF ( ls_sflight-carrid = 'AA' ).
gd_delete_nkey = l_carrid_key.
ENDIF.
*$Comment: end
ON CHANGE OF ls_sflight-connid.
PERFORM add_connid_line USING ls_sflight
l_carrid_key
CHANGING l_connid_key.
ENDON.
PERFORM add_complete_line USING ls_sflight
l_connid_key
CHANGING l_last_key.
ENDLOOP.
calculate totals
CALL METHOD tree1->update_calculations.
this method must be called to send the data to the frontend
CALL METHOD tree1->frontend_update.
ENDFORM. " create_hierarchy
*& Form add_carrid_line
add hierarchy-level 1 to tree
-->P_LS_SFLIGHT sflight
-->P_RELEATKEY relatkey
<-->p_node_key new node-key
FORM add_carrid_line USING ps_sflight TYPE sflight
p_relat_key TYPE lvc_nkey
CHANGING p_node_key TYPE lvc_nkey.
DATA: l_node_text TYPE lvc_value,
ls_sflight TYPE sflight.
set item-layout
DATA: lt_item_layout TYPE lvc_t_layi,
ls_item_layout TYPE lvc_s_layi.
ls_item_layout-t_image = '@3P@'.
ls_item_layout-fieldname = tree1->c_hierarchy_column_name.
ls_item_layout-style =
cl_gui_column_tree=>style_intensifd_critical.
APPEND ls_item_layout TO lt_item_layout.
add node
l_node_text = ps_sflight-carrid.
DATA: ls_node TYPE lvc_s_layn.
ls_node-n_image = space.
ls_node-exp_image = space.
CALL METHOD tree1->add_node
EXPORTING
i_relat_node_key = p_relat_key
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = l_node_text
is_outtab_line = ls_sflight
is_node_layout = ls_node
it_item_layout = lt_item_layout
IMPORTING
e_new_node_key = p_node_key.
ENDFORM. " add_carrid_line
*& Form add_connid_line
add hierarchy-level 2 to tree
-->P_LS_SFLIGHT sflight
-->P_RELEATKEY relatkey
<-->p_node_key new node-key
FORM add_connid_line USING ps_sflight TYPE sflight
p_relat_key TYPE lvc_nkey
CHANGING p_node_key TYPE lvc_nkey.
DATA: l_node_text TYPE lvc_value,
ls_sflight TYPE sflight.
set item-layout
DATA: lt_item_layout TYPE lvc_t_layi,
ls_item_layout TYPE lvc_s_layi.
ls_item_layout-t_image = '@3Y@'.
ls_item_layout-style =
cl_gui_column_tree=>style_intensified.
ls_item_layout-fieldname = tree1->c_hierarchy_column_name.
APPEND ls_item_layout TO lt_item_layout.
add node
l_node_text = ps_sflight-connid.
CALL METHOD tree1->add_node
EXPORTING
i_relat_node_key = p_relat_key
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = l_node_text
is_outtab_line = ls_sflight
it_item_layout = lt_item_layout
IMPORTING
e_new_node_key = p_node_key.
ENDFORM. " add_connid_line
*& Form add_cmplete_line
add hierarchy-level 3 to tree
-->P_LS_SFLIGHT sflight
-->P_RELEATKEY relatkey
<-->p_node_key new node-key
FORM add_complete_line USING ps_sflight TYPE sflight
p_relat_key TYPE lvc_nkey
CHANGING p_node_key TYPE lvc_nkey.
DATA: l_node_text TYPE lvc_value.
set item-layout
DATA: lt_item_layout TYPE lvc_t_layi,
ls_item_layout TYPE lvc_s_layi.
ls_item_layout-fieldname = tree1->c_hierarchy_column_name.
ls_item_layout-class = cl_gui_column_tree=>item_class_checkbox.
ls_item_layout-editable = 'X'.
APPEND ls_item_layout TO lt_item_layout.
CLEAR ls_item_layout.
ls_item_layout-fieldname = 'PLANETYPE'.
ls_item_layout-alignment = cl_gui_column_tree=>align_right.
APPEND ls_item_layout TO lt_item_layout.
l_node_text = ps_sflight-fldate.
DATA: ls_node TYPE lvc_s_layn.
ls_node-n_image = space.
ls_node-exp_image = space.
CALL METHOD tree1->add_node
EXPORTING
i_relat_node_key = p_relat_key
i_relationship = cl_gui_column_tree=>relat_last_child
is_outtab_line = ps_sflight
i_node_text = l_node_text
is_node_layout = ls_node
it_item_layout = lt_item_layout
IMPORTING
e_new_node_key = p_node_key.
ENDFORM. " add_complete_line
*& Form register_events
text
--> p1 text
<-- p2 text
FORM register_events.
define the events which will be passed to the backend
DATA: lt_events TYPE cntl_simple_events,
l_event TYPE cntl_simple_event.
define the events which will be passed to the backend
l_event-eventid = cl_gui_column_tree=>eventid_expand_no_children.
APPEND l_event TO lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_checkbox_change.
APPEND l_event TO lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_header_context_men_req.
APPEND l_event TO lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_node_context_menu_req.
APPEND l_event TO lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_item_context_menu_req.
APPEND l_event TO lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_header_click.
APPEND l_event TO lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_item_keypress.
APPEND l_event TO lt_events.
CALL METHOD tree1->set_registered_events
EXPORTING
events = lt_events
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
illegal_event_combination = 3.
IF sy-subrc <> 0.
MESSAGE x208(00) WITH 'ERROR'. "#EC NOTEXT
ENDIF.
set Handler
DATA: l_event_receiver TYPE REF TO lcl_tree_event_receiver.
CREATE OBJECT l_event_receiver.
SET HANDLER l_event_receiver->handle_node_ctmenu_request
FOR tree1.
SET HANDLER l_event_receiver->handle_node_ctmenu_selected
FOR tree1.
SET HANDLER l_event_receiver->handle_item_ctmenu_request
FOR tree1.
SET HANDLER l_event_receiver->handle_item_ctmenu_selected
FOR tree1.
ENDFORM. " register_events
*& Form change_toolbar
text
--> p1 text
<-- p2 text
FORM change_toolbar.
get toolbar control
CALL METHOD tree1->get_toolbar_object
IMPORTING
er_toolbar = mr_toolbar.
CHECK NOT mr_toolbar IS INITIAL.
add seperator to toolbar
CALL METHOD mr_toolbar->add_button
EXPORTING
fcode = ''
icon = ''
butn_type = cntb_btype_sep
text = ''
quickinfo = 'This is a Seperator'. "#EC NOTEXT
add Standard Button to toolbar (for Delete Subtree)
CALL METHOD mr_toolbar->add_button
EXPORTING
fcode = 'DELETE'
icon = '@18@'
butn_type = cntb_btype_button
text = ''
quickinfo = 'Delete subtree'. "#EC NOTEXT
add Dropdown Button to toolbar (for Insert Line)
CALL METHOD mr_toolbar->add_button
EXPORTING
fcode = 'INSERT_LC'
icon = '@17@'
butn_type = cntb_btype_dropdown
text = ''
quickinfo = 'Insert Line'. "#EC NOTEXT
Add SUBMIT-Button
CALL METHOD mr_toolbar->add_button
EXPORTING
fcode = 'SUBMIT'
icon = '@15@'
butn_type = cntb_btype_button
text = ''
quickinfo = 'SUBMIT report'. "#EC NOTEXT
set event-handler for toolbar-control
CREATE OBJECT toolbar_event_receiver.
SET HANDLER toolbar_event_receiver->on_function_selected
FOR mr_toolbar.
SET HANDLER toolbar_event_receiver->on_toolbar_dropdown
FOR mr_toolbar.
ENDFORM. " change_toolbar
*& Form init_tree
text
--> p1 text
<-- p2 text
FORM init_tree.
create fieldcatalog for structure sflight
PERFORM build_fieldcatalog.
create container for alv-tree
DATA: l_tree_container_name(30) TYPE c,
l_custom_container TYPE REF TO cl_gui_custom_container.
l_tree_container_name = 'TREE1'.
IF sy-batch IS INITIAL.
CREATE OBJECT l_custom_container
EXPORTING
container_name = l_tree_container_name
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5.
IF sy-subrc <> 0.
MESSAGE x208(00) WITH 'ERROR'. "#EC
*NOTEXT
ENDIF.
ENDIF.
create tree control
CREATE OBJECT tree1
EXPORTING
parent = go_cell_left
node_selection_mode = cl_gui_column_tree=>node_sel_mode_single
item_selection = 'X'
no_html_header = ''
no_toolbar = ''
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
illegal_node_selection_mode = 5
failed = 6
illegal_column_name = 7.
IF sy-subrc <> 0.
MESSAGE x208(00) WITH 'ERROR'. "#EC NOTEXT
ENDIF.
create Hierarchy-header
DATA l_hierarchy_header TYPE treev_hhdr.
PERFORM build_hierarchy_header CHANGING l_hierarchy_header.
create info-table for html-header
DATA: lt_list_commentary TYPE slis_t_listheader,
l_logo TYPE sdydo_value.
PERFORM build_comment USING
lt_list_commentary
l_logo.
repid for saving variants
DATA: ls_variant TYPE disvariant.
ls_variant-report = sy-repid.
create emty tree-control
CALL METHOD tree1->set_table_for_first_display
EXPORTING
is_hierarchy_header = l_hierarchy_header
it_list_commentary = lt_list_commentary
i_logo = l_logo
i_background_id = 'ALV_BACKGROUND'
i_save = 'A'
is_variant = ls_variant
CHANGING
it_outtab = gt_sflight "table must be emty !!
it_fieldcatalog = gt_fieldcatalog.
create hierarchy
PERFORM create_hierarchy.
add own functioncodes to the toolbar
PERFORM change_toolbar.
register events
PERFORM register_events.
adjust column_width
call method tree1->COLUMN_OPTIMIZE.
ENDFORM. " init_tree[/code]
<b>INCLUDE ZUS_SDN_BCALV_TB_EVENT_RCVR8.</b>
[code]----
INCLUDE ZUS_SDN_BCALV_TB_EVENT_RCVR8 *
CLASS lcl_toolbar_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS: on_function_selected
FOR EVENT function_selected OF cl_gui_toolbar
IMPORTING fcode,
on_toolbar_dropdown
FOR EVENT dropdown_clicked OF cl_gui_toolbar
IMPORTING fcode
posx
posy.
ENDCLASS. "lcl_toolbar_event_receiver DEFINITION
CLASS lcl_toolbar_event_receiver IMPLEMENTATION
CLASS lcl_toolbar_event_receiver IMPLEMENTATION.
METHOD on_function_selected.
DATA: ls_sflight TYPE sflight.
CASE fcode.
WHEN 'SUBMIT'.
SUBMIT zus_sdn_two_alv_grids AND RETURN.
WHEN 'DELETE'.
get selected node
DATA: lt_selected_node TYPE lvc_t_nkey.
CALL METHOD tree1->get_selected_nodes
CHANGING
ct_selected_nodes = lt_selected_node.
CALL METHOD cl_gui_cfw=>flush.
DATA l_selected_node TYPE lvc_nkey.
READ TABLE lt_selected_node INTO l_selected_node INDEX 1.
delete subtree
IF NOT l_selected_node IS INITIAL.
CALL METHOD tree1->delete_subtree
EXPORTING
i_node_key = l_selected_node
i_update_parents_expander = ''
i_update_parents_folder = 'X'.
ELSE.
MESSAGE i227(0h).
ENDIF.
WHEN 'INSERT_LC'.
get selected node
CALL METHOD tree1->get_selected_nodes
CHANGING
ct_selected_nodes = lt_selected_node.
CALL METHOD cl_gui_cfw=>flush.
READ TABLE lt_selected_node INTO l_selected_node INDEX 1.
get current Line
IF NOT l_selected_node IS INITIAL.
CALL METHOD tree1->get_outtab_line
EXPORTING
i_node_key = l_selected_node
IMPORTING
e_outtab_line = ls_sflight.
ls_sflight-seatsmax = ls_sflight-price + 99.
ls_sflight-price = ls_sflight-seatsmax + '99.99'.
CALL METHOD tree1->add_node
EXPORTING
i_relat_node_key = l_selected_node
i_relationship = cl_tree_control_base=>relat_last_child
is_outtab_line = ls_sflight
is_node_layout
it_item_layout
i_node_text = 'Last Child'. "#EC NOTEXT
importing
e_new_node_key
ELSE.
MESSAGE i227(0h).
ENDIF.
WHEN 'INSERT_FC'.
get selected node
CALL METHOD tree1->get_selected_nodes
CHANGING
ct_selected_nodes = lt_selected_node.
CALL METHOD cl_gui_cfw=>flush.
READ TABLE lt_selected_node INTO l_selected_node INDEX 1.
get current Line
IF NOT l_selected_node IS INITIAL.
CALL METHOD tree1->get_outtab_line
EXPORTING
i_node_key = l_selected_node
IMPORTING
e_outtab_line = ls_sflight.
ls_sflight-seatsmax = ls_sflight-price + 99.
ls_sflight-price = ls_sflight-seatsmax + '99.99'.
CALL METHOD tree1->add_node
EXPORTING
i_relat_node_key = l_selected_node
i_relationship = cl_tree_control_base=>relat_first_child
is_outtab_line = ls_sflight
is_node_layout
it_item_layout
i_node_text = 'First Child'. "#EC NOTEXT
importing
e_new_node_key
ELSE.
MESSAGE i227(0h).
ENDIF.
WHEN 'INSERT_FS'.
get selected node
CALL METHOD tree1->get_selected_nodes
CHANGING
ct_selected_nodes = lt_selected_node.
CALL METHOD cl_gui_cfw=>flush.
READ TABLE lt_selected_node INTO l_selected_node INDEX 1.
get current Line
IF NOT l_selected_node IS INITIAL.
CALL METHOD tree1->get_outtab_line
EXPORTING
i_node_key = l_selected_node
IMPORTING
e_outtab_line = ls_sflight.
ls_sflight-seatsmax = ls_sflight-price + 99.
ls_sflight-price = ls_sflight-seatsmax + '99.99'.
CALL METHOD tree1->add_node
EXPORTING
i_relat_node_key = l_selected_node
i_relationship =
cl_tree_control_base=>relat_first_sibling
is_outtab_line = ls_sflight
is_node_layout
it_item_layout
i_node_text = 'First Sibling'. "#EC NOTEXT
importing
e_new_node_key
ELSE.
MESSAGE i227(0h).
ENDIF.
WHEN 'INSERT_LS'.
get selected node
CALL METHOD tree1->get_selected_nodes
CHANGING
ct_selected_nodes = lt_selected_node.
CALL METHOD cl_gui_cfw=>flush.
READ TABLE lt_selected_node INTO l_selected_node INDEX 1.
get current Line
IF NOT l_selected_node IS INITIAL.
CALL METHOD tree1->get_outtab_line
EXPORTING
i_node_key = l_selected_node
IMPORTING
e_outtab_line = ls_sflight.
ls_sflight-seatsmax = ls_sflight-price + 99.
ls_sflight-price = ls_sflight-seatsmax + '99.99'.
CALL METHOD tree1->add_node
EXPORTING
i_relat_node_key = l_selected_node
i_relationship =
cl_tree_control_base=>relat_last_sibling
is_outtab_line = ls_sflight
is_node_layout
it_item_layout
i_node_text = 'Last Sibling'. "#EC NOTEXT
importing
e_new_node_key
ELSE.
MESSAGE i227(0h).
ENDIF.
WHEN 'INSERT_NS'.
get selected node
CALL METHOD tree1->get_selected_nodes
CHANGING
ct_selected_nodes = lt_selected_node.
CALL METHOD cl_gui_cfw=>flush.
READ TABLE lt_selected_node INTO l_selected_node INDEX 1.
get current Line
IF NOT l_selected_node IS INITIAL.
CALL METHOD tree1->get_outtab_line
EXPORTING
i_node_key = l_selected_node
IMPORTING
e_outtab_line = ls_sflight.
ls_sflight-seatsmax = ls_sflight-price + 99.
ls_sflight-price = ls_sflight-seatsmax + '99.99'.
CALL METHOD tree1->add_node
EXPORTING
i_relat_node_key = l_selected_node
i_relationship =
cl_tree_control_base=>relat_next_sibling
is_outtab_line = ls_sflight
is_node_layout
it_item_layout
i_node_text = 'Next Sibling'. "#EC NOTEXT
importing
e_new_node_key
ELSE.
MESSAGE i227(0h).
ENDIF.
ENDCASE.
update frontend
CALL METHOD tree1->frontend_update.
ENDMETHOD. "on_function_selected
METHOD on_toolbar_dropdown.
create contextmenu
DATA: l_menu TYPE REF TO cl_ctmenu,
l_fc_handled TYPE as4flag.
CREATE OBJECT l_menu.
CLEAR l_fc_handled.
CASE fcode.
WHEN 'INSERT_LC'.
l_fc_handled = 'X'.
insert as last child
CALL METHOD l_menu->add_function
EXPORTING
fcode = 'INSERT_LC'
text = 'Insert New Line as Last Child'. "#EC NOTEXT
insert as first child
CALL METHOD l_menu->add_function
EXPORTING
fcode = 'INSERT_FC'
text = 'Insert New Line as First Child'. "#EC NOTEXT
insert as next sibling
CALL METHOD l_menu->add_function
EXPORTING
fcode = 'INSERT_NS'
text = 'Insert New Line as Next Sibling'. "#EC NOTEXT
insert as last sibling
CALL METHOD l_menu->add_function
EXPORTING
fcode = 'INSERT_LS'
text = 'Insert New Line as Last Sibling'. "#EC NOTEXT
insert as first sibling
CALL METHOD l_menu->add_function
EXPORTING
fcode = 'INSERT_FS'
text = 'Insert New Line as First Sibling'. "#EC NOTEXT
ENDCASE.
show dropdownbox
IF l_fc_handled = 'X'.
CALL METHOD mr_toolbar->track_context_menu
EXPORTING
context_menu = l_menu
posx = posx
posy = posy.
ENDIF.
ENDMETHOD. "on_toolbar_dropdown
ENDCLASS. "lcl_toolbar_event_receiver IMPLEMENTATION[/code]
<b>INCLUDE ZUS_SDN_BCALV_TREE_EVENT_RCVR8.</b>
[code]----
INCLUDE ZUS_SDN_BCALV_TREE_EVENT_RCVR8 *
class lcl_tree_event_receiver definition.
public section.
methods handle_node_ctmenu_request
for event node_context_menu_request of cl_gui_alv_tree
importing node_key
menu.
methods handle_node_ctmenu_selected
for event node_context_menu_selected of cl_gui_alv_tree
importing node_key
fcode.
methods handle_item_ctmenu_request
for event item_context_menu_request of cl_gui_alv_tree
importing node_key
fieldname
menu.
methods handle_item_ctmenu_selected
for event item_context_menu_selected of cl_gui_alv_tree
importing node_key
fieldname
fcode.
methods handle_item_double_click
for event item_double_click of cl_gui_alv_tree
importing node_key
fieldname.
methods handle_button_click
for event button_click of cl_gui_alv_tree
importing node_key
fieldname.
methods handle_link_click
for event link_click of cl_gui_alv_tree
importing node_key
fieldname.
methods handle_header_click
for event header_click of cl_gui_alv_tree
importing fieldname.
endclass.
class lcl_tree_event_receiver implementation.
method handle_node_ctmenu_request.
append own functions
call method menu->add_function
exporting fcode = 'USER1'
text = 'Usercmd 1'. "#EC NOTEXT
call method menu->add_function
exporting fcode = 'USER2'
text = 'Usercmd 2'. "#EC NOTEXT
call method menu->add_function
exporting fcode = 'USER3'
text = 'Usercmd 3'. "#EC NOTEXT
endmethod.
method handle_node_ctmenu_selected.
case fcode.
when 'USER1' or 'USER2' or 'USER3'.
message i000(0h) with 'Node-Context-Menu on Node ' node_key
'fcode : ' fcode. "#EC NOTEXT
endcase.
endmethod.
method handle_item_ctmenu_request .
append own functions
call method menu->add_function
exporting fcode = 'USER1'
text = 'Usercmd 1'.
call method menu->add_function
exporting fcode = 'USER2'
text = 'Usercmd 2'.
call method menu->add_function
exporting fcode = 'USER3'
text = 'Usercmd 3'.
endmethod. -
Cl_gui_cfw= flush.
Hi,
May I know, What is the functionality of the following 2 sentenses,
1-cl_gui_cfw=>flush
2-cl_gui_cfw=>false?
ThanQ.Hi,
In OO approach, calling a Control-method does not imply that the method is automatically executed at runtime. Initially, the system buffers methods in a queue, referred to as the Automation Queue, when they are called in the ABAP program. The execution sequence of the methods therefore remains unchanged. However, the methods are only executed if they are transferred to the frontend via Remote Function Call (RFC) using method FLUSH. This means that the Automation Queue is used to reduce the number of RFC calls required.
(Due to the buffering of control methods in the Automation Queue, the method calls and the remaining ABAP code are executed at different times. Method FLUSH thus determines a synchronization point).
While communicating between the Automation Controller and the ABAP Objects Control Framework the automation queue uses GUI RFC calls. To minimize the network load between the backend and frontend, calls from the backend to the frontend are buffered and sent to the frontend in a single batch at defined synchronization points. A synchronization point occurs when you use a method call that is not buffered or explicitly call the generic synchronization method ( CALL METHOD cl_gui_cfw=>flush ).
cl_gui_cfw=>false is method which used to hide the border around the Splitter Container.
CALL METHOD go_splitter_container->set_border
EXPORTING
border = cl_gui_cfw=>false.
For more information, please check this link.
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCCIDOCK/BCCIDOCK.pdf
Regards,
Ferry Lianto -
Why do we use cl_gui_cfw= flush method in Object Oriented ALV programming
Dear Friends,
Please solve my query regarding control framework. Why do we use cl_gui_cfw=>flush method in Object Oriented ALV programming. I studied and found that this method transfers automation queue to Front end. But I could not find any further update on this.
Thanks & Regards
Amit SharmaGenerally this is to restrict the traffic b/w frontend and backend. This means that every operation in Control Framework should be first buffered in the backend and synchronized with the frontend at certain points (one of this point is calling synchronization method cl_gui_cfw=>flush ). This explicit order of synchronization is due to RFC call needed for every communication b/w front/back end. So to avoid to many RFC calls we do it only at certain time.
Please refer [Automation Queue|http://help.sap.com/saphelp_wp/helpdata/en/9b/d080ba9fc111d2bd68080009b4534c/frameset.htm]. I think it explains the concept quite well.
Regards
Marcin -
Use of cl_gui_cfw= flush
Hi all,
what is the use of the class cl_gui_cfw=>flush. in alv object?
Thanks
ANUPAMHi,
Use this method to synchronize the automation queue. The buffered operations are sent to the frontend using GUI RFC. At the frontend, the automation queue is processed in the sequence in which you filled it.
If an error occurs, an exception is triggered. You must catch and handle this error. Since it is not possible to identify the cause of the error from the exception itself, there are tools available in the Debugger and the SAPgui to enable you to do so.
Debugger: Select the option Automation Controller: Always process requests synchronously. The system then automatically calls the method cl_gui_cfw=>flush after each method called by the Automation Controller.
SAPGUI: In the SAPgui settings, under Trace, select Automation. The communication between the application server and the Automation Controller is then logged in a trace file that you can analyze at a later date.
CALL METHOD cl_gui_cfw=>flush
EXCEPTIONS CNTL_SYSTEM_ERROR = 1
CNTL_ERROR = 2.
AWARD IF USEFUL -
CL_GUI_CFW= FLUSH giving short dump
hi,
i have got two servers. one for development and other for quality. in development my CL_GUI_CFW=>FLUSH is working fine, but when i try to execute my prog in quality "flush method" is giving short dump, its returning sy-subrc <> 0.
can anybody suggest possible causes of the same.
The server status are all the same for quality as well as development.
thanks
pratyushHello Pratyush
You may want to have a look at my sample report ZUS_SDN_TWO_ALV_GRIDS_3 in thread
[how to refresh the contents of a grid?|how to refresh the contents of a grid?;.
Most control events do not trigger PAI of the dynpro. Thus, they behave similar like calling a search help or F1 help.
The automatic flushing which occurs at PBO is done the following way:
METHOD handle_user_command.
* define local data
DATA:
ls_row TYPE lvc_s_row,
ls_knb1 TYPE knb1.
CHECK ( sender = go_grid1 ).
CHECK ( e_ucomm = 'SAVE' ).
CALL METHOD go_grid1->get_current_cell
IMPORTING
es_row_id = ls_row.
READ TABLE gt_knb1 INTO ls_knb1 INDEX ls_row-index.
CHECK ( ls_knb1-kunnr IS NOT INITIAL ).
PERFORM entry_show_details.
* Triggers PAI of the dynpro with the specified ok-code
" CALL METHOD cl_gui_cfw=>set_new_ok_code( 'DETAIL' ). " not on 4.6c
CALL METHOD cl_gui_cfw=>set_new_ok_code
EXPORTING
ok_code = 'DETAIL'.
ENDMETHOD. "handle_user_command
Regards
Uwe -
Isdn Layer 1 deactivated when there is no active call
Hi All,
I am in Nairobi Kenya. Here we use ISDN Basic-net3 and my problem is that most of the telco switches here deactivate Layer 1 when there is no active call.
When I try to initiate a call by using the ISDN test call command I get an error to the effect that B channel is not available.
The only way I can initiate a call is I first call the line then and then disconnect. Then I have about 5 seconds to make a test call and pings are successful. How do I make the router initiate a call when layer 1 is deactivated.
the debug isdn q921 out has nothing till a call comes in.
I also understatnd that European ISDN switches deactivate Layer 1 when there no active call. I dont have a problem with one of the switches, coz it does not bring down the line when there is no active call.
Thakx in advance
MartinThanks for the quick response.
It is a cisco 1760
The IOS is c1700-sv3y-mz.122-15.T5.bin
When I try to make a test call the show isdn status initially indicates that the router is trying to activate layer 1 then after 5 seconds it indicates that it is deactivated.
I have not yet configured DDR as indicated in the config file
Building configuration...
Current configuration : 3054 bytes
! Last configuration change at 00:38:54 UTC Mon Aug 9 1993
! NVRAM config last updated at 00:36:54 UTC Mon Aug 9 1993
version 12.2
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
hostname Gill-House
logging queue-limit 100
enable secret xxx
ip subnet-zero
no ip domain lookup
isdn switch-type basic-net3
no voice hpi capture buffer
no voice hpi capture destination
class-map match-all voice-traffic
match ip rtp 16384 16383
policy-map voice
class voice-traffic
priority 24
class class-default
fair-queue
gw-accounting syslog
interface Loopback0
description Loopback interface for VoIP Dial-peers
ip address 128.1.x.x.255.255.255
interface Multilink1
bandwidth 6
ip address 128.1.x.x.255.255.252
ip tcp header-compression iphc-format
ppp multilink
ppp multilink fragment-delay 20
ppp multilink interleave
multilink-group 1
ip rtp header-compression iphc-format
interface FastEthernet0/0
description Gill-House LAN
ip address 128.1.x.x.255.255.0
speed auto
interface Serial0/0
description Link to Head Office
bandwidth 64
no ip address
encapsulation ppp
no fair-queue
ppp multilink
multilink-group 1
interface BRI1/0
ip address 10.10.1.2 255.255.255.0
encapsulation ppp
isdn switch-type basic-net3
isdn point-to-point-setup
keepalive 20
router eigrp 100
passive-interface FastEthernet0/0
passive-interface Loopback0
network 128.1.0.0
no auto-summary
no eigrp log-neighbor-changes
ip classless
no ip http server
logging source-interface Loopback0
logging 128.1.1.179
call rsvp-sync
voice-port 2/0
cptone GB
ring frequency 50
voice-port 2/1
cptone GB
ring frequency 50
dial-peer cor custom
dial-peer voice 2 pots
destination-pattern 101
port 2/0
dial-peer voice 51 voip
destination-pattern 100
session target ipv4:128.1.0.254
ip qos dscp cs5 signaling
dial-peer voice 55 voip
destination-pattern 120
session target ipv4:128.1.31.254
ip qos dscp cs5 signaling
dial-peer voice 52 voip
destination-pattern 102
session target ipv4:128.1.91.254
ip qos dscp cs5 signaling
dial-peer voice 53 voip
destination-pattern 103
session target ipv4:128.1.121.254
ip qos dscp cs5 signaling
dial-peer voice 54 voip
destination-pattern 110
session target ipv4:128.1.21.254
ip qos dscp cs5 signaling
dial-peer voice 56 voip
destination-pattern 130
session target ipv4:128.1.41.254
ip qos dscp cs5 signaling
dial-peer voice 57 voip
destination-pattern 140
session target ipv4:128.1.111.254
ip qos dscp cs5 signaling
dial-peer voice 58 voip
destination-pattern 150
session target ipv4:128.1.61.254
ip qos dscp cs5 signaling
dial-peer voice 59 voip
destination-pattern 160
session target ipv4:128.1.71.254
ip qos dscp cs5 signaling
line con 0
logging synchronous
line aux 0
line vty 0 4
password housing
login
ntp clock-period 17208074
ntp server 128.1.1.211
ntp server 128.1.0.254
end
Gill-House# -
Checking number of queue calls and redirecting
I am wanting to add a variable into my script that checks the number of calls that are currently queued and if the number of queued calls is greater then three any additional calls will be sent down a Call Subflow to another script. I have attached a copy of the script I am using, the issue that I am facing is that when I get a call queued in my Reception CSQ the next call goes down the call subflow when in actually I want the second and third call to queue and the fourth call to go down the call subflow.
Looking at your script you are checking if there are agents logged in, and if so you send the call to Queue Call label, which is below the check for calls in queue, your success node from agents logged in should go to another label that checks calls in queue.
HTH,
Chris -
We can not clear all recents(30 recents call). When Tango show "No recents call". We touch other buttons and come back to Recents button again. It still show 30 recents call.
No one here is going to do anything about it. Send feedback to Apple.
http://www.apple.com/feedback/ipad.html
Basic troubleshooting steps.
17" 2.2GHz i7 Quad-Core MacBook Pro 8G RAM 750G HD + OCZ Vertex 3 SSD Boot HD -
When i came home i called apple to check whether my phone is locked or not and they said that its locked to US Verizon even though when i checked on iphoneimei it said sim status unknown. I put my 2degrees (NZ carrier) in today and it worked fine. I got into the settings and turned off the automatically part of carrier and there were 3 options for me to choose 2degrees vodafone and telecom. Because of that, im quite confused abt whether my phone is locked or not since im from vietnam so i want to know if i can use vietnamese sim card when i go home. Thanks for your help@verizon
Hi tranvietanh - I appreciate you contacting us all the way from New Zealand! I can confirm that the iPhone 5s and all of our other 4G LTE device are not SIM locked. As the carrier in New Zealand may not support the exact same frequencies and cellular bands that we use on our network, we are unable to support the device if using a 3rd party SIM.
Thank you,
YaleK_VZW
Follow us on Twitter @VZWsupport -
i got a macbook pro 13 inch core i5 late 2011 , it came with osx lion and i been using facebook videocalls normaly , now i updated to Mountain lion
but when i use facebook video calls in (safari ,chrome ) i see the window box but i only see my self i can hear my friends but cant see em, they also can see me and hear me but i just see me and hear them .
any ideas ?Your wifi problem sounds very much like the problem I had. The wifi would drop out, the icon showed it was still connected. If I turned it off, I couldn't turn it back on. Another user here pointed me to the problem, which was the wifi cable (the flat cable goint from the card to the motherboard). I found it on ebay for $13 and it's been running fine since I replaced it. This is the repair guide for your machine. The part number will be on there if you click the link.
http://www.ifixit.com/Guide/MacBook+Pro+15-Inch+Unibody+Late+2011+AirPort-Blueto oth+Cable+Replacement/7510 -
I have two different 5s's with two different phone numbers but they are both using the same iCloud/apple account. After upgrading to iOS8 when I get a phone call on one phone both phones ring. One phone is for work and one is for private and I don't need both phones to ring from one call. It's bizarre.......is this supposed to be like this? If so where can I turn it off?? And while we are at it iOS8 has installed iBooks on both of my phones and iTunes won't let me uninstall it. I don't need or want iBooks on my phones.
Hi,
There are two easy fixes to this.
One, you can set up Family Sharing, in which you can have two different iCloud Accounts, yet still share the same apps, music, media etc.
Two, go to Settings and turn-off "Handoff". This can be found under the General page.
Hope this helps! -
How do I change my phone settings on my iPhone 5 so that when I make a phone call while I am on the phone call my phone stays lit up. It never goes black so I am constantly hitting other buttons while I try to talk like mute or FaceTime or speaker! Please help this is so annoying! It's like all I need to do is fix the settings somehow and I have gone through all of my settings and I can't find where to do this!
Is the phone in a case? Try taking it out of the case. If that doesn't work, then your proximity sensor is broken. You'll need to bring your phone to Apple for evaluation.
-
How can i redirect a queued call to a voicemail using CCX editor?
hi buddies, i wonder how can i redirect a queued call to a voicemail of a valid extension using CCX editor?
i just uploaded my script (does not working as i wanted regarding voicemail)if can anybody help me i will be very happy!!first of all i REALLY A REALLY appreciate your reply
but two questions remain:
a) check my attached file is this the VM pilot number?
b) Called Address = "2133" means that the call will be redirected to the voicemail of the 2133 extension? im right??
Maybe you are looking for
-
Blackberry service not working while internet is working
Hi, I bought the blackberry tour 9630 last week online (v 5.0.0.975) and i am battling since then to register the blackberry service. I am new to the BB world , hence I will provide the details of the course of events: -I called my network provider (
-
Hi! Until such time as I can afford a bigger monitor, I would like to connect my TV to my PC. My TV has the red/white/yellow plugin and S-Video plugin while my desktop has the DVI and HDMI ports. What should I buy to convert the signal? Shaylin
-
Automatically populating Assignment Field from Customer Invoice Reference
Dear All I have a situation. I want when a customer invoice is posted the invoice reference mentioned in the Reference field of the document Header should automatically be populated into assignment field Can any one tell me how to get this situation
-
Most of my icons are blank in my bookmarks, next to the website I got a new computer With win 7 and imported them from my old computer. I've deleted some of the websites and relaoded them, still blank, for example BB&T bank. I've installed the plugin
-
Trouble in fop(convert html 2 pdf) source.
to convert html 2 pdf file I found the article from javaworld. (http://www.javaworld.com/javaworld/jw-04-2006/jw-0410-html.html) unfortunately I can't seem to find the two classes below even though import all fop 0.94 library files. are there somethi