Dc 007- Control Framework: Invalid Processing of ABAP Object Control- DUMP
Hello,
we're upgrading to ECC6 and while running ALV report i get a dump that says that i'm trying to edit a control created with ABAP objects techniques using a function module.
It worked just fine in version 46C.
Is it possible to solve the problem without re-writing the program?
Thanks
Moshe
I'm getting the same error when calling the below BAPI. When the BAPI gets an error, I get a shortdump.
This is being when the user selects a convert planned orders button in a custom developed report that uses the SALV_OM alv grid.
"Call BAPI to convert planned orders to production orders
CALL FUNCTION 'BAPI_PRODORD_CREATE_FROM_PLORD'
EXPORTING
planned_order = <s_output>-plnum
order_type = 'ZEPR'
* ORDER_NUMBER =
IMPORTING
production_order = ld_production_order
* PROD_ORDER_TYPE =
return = ld_return
EXCEPTIONS
OTHERS = 1.
Similar Messages
-
Parallel processing using ABAP objects
Hello friends,
I had posted in the performance tuning forum , regarding a performance issue problem , I am reposting it as it involves OO concept .
the link for the previous posting
Link: [Independent processing of elements inside internal table;
Here is the scenario,
I have a internal table with 10 records(indepentent) , and i need to process them .The processing of one record doesnt have any influence on the another . When we go for loop , the performance issue is that , the 10 th record has to wait until the 9 records get processed even though there is no dependency on the output.
Could some one tell a way out to improve the performance..
If i am not clear with the question , i would explain it still clearer...
A internal table has 5 numbers , say( 1,3,4,6,7)
we are trying to find square of each number ,,,
If it is a loop the finding of suare of 7 has to wait until 6 is getting completed and it is waste of time ...
This is related to parallel processing , I have refered to parallel processing documents,But I want to do this conceptually ..
I am not using conventional procedural paradigm but Object orientedness...I am having a method which is performing this action .What am I supposed to do in that regard.
Comradely ,
K.SibiHi,
As examplified by Edward, there is no RFC/asynchronous support for Methods of ABAP Objects as such. You would indeed need to "wrap" your method or ABAP Object in a Function Module, that you can then call with the addition "STARTING NEW TASK". Optionally, you can define a Method that will process the results of the Function Module that is executed asynchronously, as demonstrated as well in Edward's program.
You do need some additional code to avoid the situation where your program takes all the available resources on the Application Server. Theoretically, you cannot bring the server or system down, as there is a system profile parameter that determines the maximum number of asynchronous tasks that the system will allow. However, in a productive environment, it would be a good idea to limit the number of asynchronous tasks started from your program so that other programs can use some as well.
Function Group SPBT contains a set of Function Modules to manage parallel processing. In particular, FM SPBT_INITIALIZE will "initialize" a Server Group and return the maximum number of Parallel Tasks, as well as the number of free ones at the time of the initialization. The other FM of interest is SPBT_GET_CURR_RESOURCE_INFO, that can be called after the Server Group has been initialized, whenever you want to "fork" a new asynchronous task. This FM will give you the number of free tasks available for Parallel Processing at the time of calling the Function Module.
Below is a code snippet showing how these Function Modules could be used, so that your program always leaves a minimum of 2 tasks for Parallel Processing, that will be available for other programs in the system.
IF md_parallel IS NOT INITIAL.
IF md_parallel_init IS INITIAL.
*----- Server Group not initialized yet => Initialize it, and get the number of tasks available
CALL FUNCTION 'SPBT_INITIALIZE'
EXPORTING
GROUP_NAME = ' '
IMPORTING
max_pbt_wps = ld_max_tasks
free_pbt_wps = ld_free_tasks
EXCEPTIONS
invalid_group_name = 1
internal_error = 2
pbt_env_already_initialized = 3
currently_no_resources_avail = 4
no_pbt_resources_found = 5
cant_init_different_pbt_groups = 6
OTHERS = 7.
md_parallel_init = 'X'.
ELSE.
*----- Server Group initialized => check how many free tasks are available in the Server Group
for parallel processing
CALL FUNCTION 'SPBT_GET_CURR_RESOURCE_INFO'
IMPORTING
max_pbt_wps = ld_max_tasks
free_pbt_wps = ld_free_tasks
EXCEPTIONS
internal_error = 1
pbt_env_not_initialized_yet = 2
OTHERS = 3.
ENDIF.
IF ld_free_tasks GE 2.
*----- We have at leasr 2 remaining available tasks => reserve one
ld_taskid = ld_taskid + 1.
ENDIF.
ENDIF.
You may also need to program a WAIT statement, to wait until all asynchronous tasks "forked" from your program have completed their processing. Otherwise, you might find yourself in the situation where your main program has finished its processing, but some of the asynchronous tasks that it started are still running. If you do not need to report on the results of these asynchronous tasks, then that is not an issue. But, if you need to report on the success/failure of the processing performed by the asynchronous tasks, you would most likely report incomplete results in your program.
In the example where you have 10 entries to process asynchronously in an internal table, if you do not WAIT until all asynchronous tasks have completed, your program might report success/failure for only 8 of the 10 entries, because your program has completed before the asynchronous tasks for entries 9 and 10 in your internal table.
Given the complexity of Parallel Processing, you would only consider it in a customer program for situations where you have many (ie, thousands, if not tens of thousands) records to process, that the processing for each record tends to take a long time (like creating a Sales Order or Material via BAPI calls), and that you have a limited time window to process all of these records.
Well, whatever your decision is, good luck. -
Control Framework: Fatal error - GUI cannot be reached-ALV Grid in Bckgrnd
I have an ALV grid which dumps in the background. But works fine in the foreground.
I thought I am not using Control framework anywhere. But I get 'COntrol framework :Fatal error - GU cannot be reached' error.
I am using a docking container that I have split using a splitter.
I have no custom container in my screen. What else could be causing the Control framework error ? Any suggestions is appreciated. But please do not tell me to use 'REUSE_ALV*' or Classical reporting
Here are the PBO modules of my screen and here are my data declarations.
ALV Data declarations :
data :gt_sort type lvc_t_sort,
gr_event_handler TYPE REF TO lcl_event_handler ,
o_docking type ref to cl_gui_docking_container,"Docking Container
o_grid type ref to cl_gui_alv_grid,"Grid
o_split type ref to cl_gui_easy_splitter_container,"Splitter
o_top_container type ref to cl_gui_container, "Top Container
o_bottom_container type ref to cl_gui_container,"Bottom Container
o_document type ref to cl_dd_document. "Document
module status_0100 output.
if o_docking is initial.
set pf-status 'ZSTATUS_0100'.
set titlebar 'ZTITLE_0100'.
Creating Objects
perform create_objects.
Filling top of page
perform fill_top_of_page.
Filling the fieldcatalog table
perform build_fieldcat. "we already got'em
Displaying the output
perform display_output.
endif.
Here is the Form Create_objects called in the PBO.
form create_objects .
Creating Docking Container
CREATE OBJECT o_docking
EXPORTING
RATIO = '95'.
IF sy-subrc eq 0.
Splitting the Docking container
CREATE OBJECT o_split
EXPORTING
PARENT = o_docking
sash_position = 25 "Position of Splitter Bar (in Percent)
with_border = 0. "With Border = 1 Without Border = 0
Placing the containers in the splitter
o_top_container = o_split->top_left_container .
o_bottom_container = o_split->bottom_right_container .
Creating Grid
CREATE OBJECT o_grid
EXPORTING
i_parent = o_bottom_container.
Creating the document
CREATE OBJECT o_document
EXPORTING
style = 'ALV_GRID'.
CREATE OBJECT gr_event_handler .
ENDIF.
endform. " create_objects
form fill_top_of_page .
data : lv_char(255) type c.
Calling the methods for dynamic text
CALL METHOD o_document->add_gap
EXPORTING
width = 140.
CALL METHOD o_document->add_text
EXPORTING
text = 'Plant Attainment Report '
sap_fontsize = 'Large'
sap_color = cl_dd_area=>list_key_int
sap_emphasis = cl_dd_area=>strong. " For bold
Display the data
CALL METHOD o_document->display_document
EXPORTING
parent = o_top_container.
Calling the method of ALV to process top of page
CALL METHOD o_grid->list_processing_events
EXPORTING
i_event_name = 'TOP_OF_PAGE'
i_dyndoc_id = o_document.
endform. " fill_top_of_page
form display_output .
gx_variant-report = sy-repid.
gs_layout-zebra = 'X'.
gs_layout-sel_mode ='X'.
gs_layout-cwidth_opt = 'X'.
call method o_grid->set_table_for_first_display
exporting
is_variant = gx_variant
i_save = 'A'
is_layout = gs_layout
changing
it_fieldcatalog = it_fldcat
it_outtab = <gt_tabletotal>.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
SET HANDLER gr_event_handler->handle_print_top_of_page FOR o_grid .
endform. " display_output
Edited by: Shareen Hegde on Jul 23, 2009 5:03 PM (I have no clue why
.. doesn't work anymore. My code looks messed up..Sorry folks!Nilesh,
If i put all these create objects inside the IF CL_GUI_ALV_GRID=>OFFLINE( ) IS INITIAL. ENDIF , will I be still able to use ,
call method o_grid->set_table_for_first_display
exporting
is_variant = gx_variant
i_save = 'A'
is_layout = gs_layout
changing
it_fieldcatalog = it_fldcat
it_outtab = <gt_tabletotal>.
in background ? WIll I not get - OBJECTS_OBJREF_NOT_ASSIGNED erorr ?
How can I call the set_table_for_first_display without creating the object reference ?
Here is my creat object routine.
form create_objects .
* Creating Docking Container
IF CL_GUI_ALV_GRID=>OFFLINE( ) .
CREATE OBJECT o_docking
EXPORTING
RATIO = '95'.
IF sy-subrc eq 0.
* Splitting the Docking container
CREATE OBJECT o_split
EXPORTING
PARENT = o_docking
sash_position = 25 "Position of Splitter Bar (in Percent)
with_border = 0. "With Border = 1 Without Border = 0
* Placing the containers in the splitter
o_top_container = o_split->top_left_container .
o_bottom_container = o_split->bottom_right_container .
* Creating Grid
CREATE OBJECT o_grid
EXPORTING
i_parent = o_bottom_container.
* Creating the document
CREATE OBJECT o_document
EXPORTING
style = 'ALV_GRID'.
ENDIF.
CREATE OBJECT gr_event_handler .
endif.
endform. " create_objects -
Abap mapping - Error in Control Framework
Hi Gurus,
Scenario: IDOC - -- XI -
Http (post)
i am using ABAP mapping for IDOC to XML. I am able to test it using sxi_mapping_test which gives me output XML. But, when i test the scenario from RWB, it fails with "SYSFAIL" error in inbound queue as per moni.
error - "Error in Control Framework".
Looks like it did not even go to message mapping pipeline step.
Please help.
Thank you,
mkHI,
Hope you have done all the necessary pre-requisites for ABAP mapping
This may help u- http://help.sap.com/saphelp_47x200/helpdata/en/55/bff20efe8c11d4b54a006094b9456f/content.htm
just cross verify with this guide-
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e3ead790-0201-0010-64bb-9e4d67a466b4
Please also try to debug as follows...
put a break point inside your class/method....
goto tcode SXI_MAPPING_TEST....give in the configuation details of your scenario...and when you execute, give the IDOC-XML, copy it from SXMB_MONI where you are getting the error....
when you execute, it shoudl stop at the break point that you had set in your class....continue debugging using 'F6' function key, and check where you are hitting this error...
The chances are that the FM that converts IDOC-XML to flat file format might not have been executed correctly...
Thanks
Swarup -
Error in Control Framework in smart forms programms
IN VF02 smartforms ENTRY form , I add a function about save PDF at local PC. When I print the smartfomrs,There is ERROR message in update modules.
IN SM13 can see the ERROR message.
Function Module: RV_MESSAGE_UPDATE
Status :Update was terminated
Error details: FES 022: Error in Control Framework
THE CODE:
FORM processing USING proc_screen
CHANGING cf_retcode.
******I ADD THE CODE
PERFORM DOWNLOAD_AS_PDF USING lf_fm_name
ls_control_param
ls_composer_param
ls_bil_invoice
nast
repeat
ls_bil_invoice-HD_ORG
ls_spoolid
CHANGING cf_retcode
ENDFORM.
IN DOWNLOAD_AS_PDF FORM ,I USE FUNCTION : P_fm_name(smartforms function) CONVERT_OTF GUI_DOWNLOAD
WHY the UPDATE MODULE have ERROR MESSAGE???
How do I solve this problem???Hello,
Your error message is related to GUI_DOWNLOAD, which is a frontend function.
You simply cannot use it in background, because it puts a file on the
frontend PC where you start the function (WS = WorkStation).
Note that GUI_DOWNLOAD is intendted to be used for dialog user
and will not run at BACKGROUND.
You can review SAP Library: ABAP Programming (BC-ABA)
->Saving Data Externally
->Working with Files
->File Handling in ABAP
Regards,
David -
Component integration: Control framework / create your own gui controls
Hi,
Does anyone know where to find documentation about creating your own gui controls, like cl_gui_picture.
For example we would like to make a zcl_gui_movie !!!
Kind regards
Keld GregersenHi Keld,
Check out /people/thomas.jung3/blog/2004/09/01/using-net-windows-controls-in-the-abap-control-framework
And
/people/thomas.jung3/blog/2005/05/11/using-classic-activex-controls-in-the-abap-control-framework
I have been able to create and use my own control in the SAP GUI - but I'm still trying to figure out how to handle any events raised by that control.
If all you need to do is use the control to display something (like a movie!) it should work...
If you can get some form of event processing working PLEASE let me know!!!
Cheers,
N -
Start BPM process from ABAP report. Need some investigations.
Hi there!
I have to start a BPM process from ABAP report. I found an article http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/10d75b45-7fef-2b10-bc8e-c6012e0a9457?QuickLink=index&overridelayout=true and have done everything it describes but the process doesn't start.
What I've done:
1) Created a service proxy in SE80.
2) Created a logical port in SOAMANAGER.
3) Write a code to start a WebService in ABAP Report.
But when I start a program nothing happens, no errors.
What analysis I did:
1) See logs and traces in SOAMANAGER - there is nothing appears after I start the report.
2) Tried to test connection to my WebService in SM59 - the connection works, but it use a POST method instead of GET:
Error: com.sap.engine.services.webservices.espbase.server.additions.wsa.WSAddressingException: com.sap.SOA.wsr.030104 - Expected request method POST. Found GET.
But I think it is OK and from the report it use a right method.
3) Tried to delete a logical port - the error of communication problem appears. So it means that all settings are right.
4) No logs in NWA logs
My thoughts - if there is not any errors and no result, it can be because the user authorization. E.g. it tried to start a process by a user who doesn't have SAP_BPM_SuperAdmin role. But I can't find a way how to check what really happens. So I want to ask for a help, colleagues:).Dear Kirill Zhuklinets,
Can you share your solution as i am facing the same error while trying to consume BPM webservice from SRM ECC
Error Message from SRM ECC :
Exception occurred in communication framework:Error in HTTP Framework:405Method Not Allowed
Log from BPM Web service
Error: process()
[EXCEPTION]
com.sap.engine.interfaces.webservices.runtime.RuntimeProcessException: com.sap.engine.services.webservices.espbase.server.additions.wsa.WSAddressingException: com.sap.SOA.wsr.030104 - Expected request method POST. Found GET.
Please share your solution..
Regards,
Yasin -
Parallel Processing through ABAP program
Hi,
We are trying to do the parallel processing through ABAP. As per SAP documentation we are using the CALL FUNCTION STARTING NEW TASK DESTINATION.
We have one Z function Module and as per SAP we are making this Function module (FM)as Remote -enabled module.
In this FM we would like to process data which we get it from internal table and would like to send back the processed data(through internal table) to the main program where we are using CALL FUNCTION STARTING NEW TASK DESTINATION.
Please suggest how to achieve this.
We tried out EXPORT -IMPORT option meaning we used EXPORT internal table in the FM with some memory ID and in the main program using IMPORT internal table with the same memory ID. But this option is not working even though ID and name of the internal table is not working.
Also, SAP documentation says that we can use RECEIVE RESULTS FROM FUNCTION 'RFC_SYSTEM_INFO'
IMPORTING RFCSI_EXPORT = INFO in conjunction with CALL FUNCTION STARTING NEW TASK DESTINATION. Documentation also specifies that "RECEIVE is needed to gather IMPORTING and TABLE returns of an asynchronously executed RFC Function module". But while creating the FM remote-enabled we cant have EXPORT or IMPORT parameters.
Please help !
Thanks in advance
Santosh<i>We tried out EXPORT -IMPORT option meaning we used EXPORT internal table in the FM with some memory ID and in the main program using IMPORT internal table with the same memory ID. But this option is not working even though ID and name of the internal table is not working</i>
I think that this is not working because that memory does not work across sessions/tasks. I think that the
IMPORT FROM SHARED BUFFER and EXPORT TO SHARED BUFFER would work. I have used these in the past and it works pretty good.
Also,
here is a quick sample of the "new task" and "recieve" functionality. You can not specify the importing parameters when call the FM. You specify them at the recieving end.
report zrich_0001 .
data: session(1) type c.
data: ccdetail type bapi0002_2.
start-of-selection.
* Call the transaction in another session...control will be stop
* in calling program and will wait for response from other session
call function 'BAPI_COMPANYCODE_GETDETAIL'
starting new task 'TEST' destination 'NONE'
performing set_session_done on end of task
exporting
companycodeid = '0010'
* IMPORTING
* COMPANYCODE_DETAIL = ccdetails
* COMPANYCODE_ADDRESS =
* RETURN =
* wait here till the other session is done
wait until session = 'X'.
write:/ ccdetail.
* FORM SET_session_DONE
form set_session_done using taskname.
* Receive results into messtab from function.......
* this will also close the session
receive results from function 'BAPI_COMPANYCODE_GETDETAIL'
importing
companycode_detail = ccdetail.
* Set session as done.
session = 'X'.
endform.
Hope this helps.
Rich Heilman -
Control Framework tree control event not trigerring
The event handle_node_double_click is not trigerring on the tree controls . I want to display the contents of the nodes on the text editor on trigerring of this event
*& Report ZCONTROLS_TREE_TEDIT_SPITTER
REPORT zcontrols_tree_tedit_spitter.
DATA : editor TYPE REF TO cl_gui_textedit,
tree TYPE REF TO cl_gui_simple_tree.
DATA : container TYPE REF TO cl_gui_custom_container,
splitter TYPE REF TO cl_gui_easy_splitter_container,
right TYPE REF TO cl_gui_container,
left TYPE REF TO cl_gui_container.
DATA : node_itab LIKE node_str OCCURS 0.
CLASS EVENT_HANDLER DEFINITION
CLASS event_handler DEFINITION.
PUBLIC SECTION.
METHODS : handle_node_double_click
FOR EVENT NODE_DOUBLE_CLICK OF cl_gui_simple_tree
IMPORTING node_key.
ENDCLASS. "EVENT_HANDLER DEFINITION
CLASS EVENT_HANDLER IMPLEMENTATION
CLASS event_handler IMPLEMENTATION.
METHOD handle_node_double_click.
perform node_double_click using node_key.
ENDMETHOD. "HANDLE_NODE_DOUBLE_CLICK
ENDCLASS. "EVENT_HANDLER IMPLEMENTATION
data : handler1 type ref to event_handler.
START-OF-SELECTION.
CALL SCREEN 9001.
*& Module start OUTPUT
text
MODULE start OUTPUT.
SET PF-STATUS 'ZSTAT1'.
IF container IS INITIAL.
CREATE OBJECT container
EXPORTING
container_name = 'CONTAINER_NAME'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
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 OBJECT splitter
EXPORTING
parent = container
orientation = 1
name = 'Mohit'
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.
left = splitter->top_left_container.
right = splitter->bottom_right_container.
CREATE OBJECT editor
EXPORTING
parent = right
name = 'MohitEditor'
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
gui_type_not_supported = 5
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 OBJECT tree
EXPORTING
parent = left
node_selection_mode = tree->node_sel_mode_single
name = 'MohitTree'
EXCEPTIONS
lifetime_error = 1
cntl_system_error = 2
create_error = 3
failed = 4
illegal_node_selection_mode = 5
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.
PERFORM fill_tree.
CALL METHOD tree->add_nodes
EXPORTING
table_structure_name = 'NODE_STR'
node_table = node_itab
EXCEPTIONS
error_in_node_table = 1
failed = 2
dp_error = 3
table_structure_name_not_found = 4
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.
create object handler1.
set handler handler1->handle_node_double_click for tree.
ENDIF.
ENDMODULE. " start OUTPUT
*& Module USER_COMMAND_9001 INPUT
text
MODULE user_command_9001 INPUT.
CALL METHOD cl_gui_cfw=>dispatch.
ENDMODULE. " USER_COMMAND_9001 INPUT
*& Form fill_tree
text
--> p1 text
<-- p2 text
FORM fill_tree .
DATA : node LIKE node_str.
CLEAR node.
node-node_key = 'head_mohit'.
node-isfolder = 'X'.
node-text = 'Mohit'.
APPEND node TO node_itab.
CLEAR node.
node-node_key = 'Child1'.
node-relatkey = 'head_mohit'.
node-relatship = cl_gui_simple_tree=>relat_last_child.
node-text = 'Mohit is the best '.
APPEND node TO node_itab.
CLEAR node.
node-node_key = 'Child2'.
node-relatkey = 'head_mohit'.
node-relatship = cl_gui_simple_tree=>relat_last_child.
node-text = 'Mohit is the bestest '.
APPEND node TO node_itab.
CLEAR node.
node-node_key = 'head_JAIN'.
node-isfolder = 'X'.
node-text = 'jAIN'.
APPEND node TO node_itab.
CLEAR node.
node-node_key = 'Child3'.
node-relatkey = 'head_JAIN'.
node-relatship = cl_gui_simple_tree=>relat_next_sibling.
node-text = 'cnh INDIA '.
APPEND node TO node_itab.
CLEAR node.
node-node_key = 'Child4'.
node-relatkey = 'head_JAIN'.
node-relatship = cl_gui_simple_tree=>relat_last_child.
node-text = 'SAP '.
APPEND node TO node_itab.
ENDFORM. " fill_tree
*& Form node_double_click
text
-->P_NODE_KEY text
form node_double_click using p_node_key type TV_NODEKEY.
DATA : node LIKE node_str.
DATA textline(256).
DATA text_table LIKE STANDARD TABLE OF textline.
READ TABLE node_itab WITH KEY node_key = p_node_key
INTO node.
endform. " node_double_click
*& Module exit INPUT
text
module exit input.
CASE sy-ucomm.
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
endmodule. " exit INPUTHello Mohit
Here is a sample routine (taken from BCALV_TREE_02) which you have to add and adapt for your report. It does two things:
1. Register events that should be handled (required but not sufficient for event handling)
2. Set event handler for registered events
The first step is different from ALV grid controls because here all events are already registered with the control (not the control framework).
Set the event handler (statement SET HANDLER) registers the event handling with the control framework.
FORM register_events.
*§4. Event registration: tell ALV Tree which events shall be passed
* from frontend to backend.
DATA: lt_events TYPE cntl_simple_events,
l_event TYPE cntl_simple_event,
l_event_receiver TYPE REF TO lcl_tree_event_receiver.
*§4a. Frontend registration(i): get already registered tree events.
* The following four tree events registers ALV Tree in the constructor
* method itself.
* - cl_gui_column_tree=>eventid_expand_no_children
* (needed to load data to frontend when a user expands a node)
* - cl_gui_column_tree=>eventid_header_context_men_req
* (needed for header context menu)
* - cl_gui_column_tree=>eventid_header_click
* (allows selection of columns (only when item selection activated))
* - cl_gui_column_tree=>eventid_item_keypress
* (needed for F1-Help (only when item selection activated))
* Nevertheless you have to provide their IDs again if you register
* additional events with SET_REGISTERED_EVENTS (see below).
* To do so, call first method GET_REGISTERED_EVENTS (this way,
* all already registered events remain registered, even your own):
call method g_alv_tree->get_registered_events
importing events = lt_events.
* (If you do not these events will be deregistered!!!).
* You do not have to register events of the toolbar again.
*§4b. Frontend registration(ii): add additional event ids
l_event-eventid = cl_gui_column_tree=>eventid_node_double_click.
APPEND l_event TO lt_events.
*§4c. Frontend registration(iii):provide new event table to alv tree
CALL METHOD g_alv_tree->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.
*§4d. Register events on backend (ABAP Objects event handling)
CREATE OBJECT l_event_receiver.
SET HANDLER l_event_receiver->handle_node_double_click FOR g_alv_tree.
ENDFORM. " register_events
Regards
Uwe -
Dispatcher process on ABAP + JAVA system does not start.
Hi all,
Dispatcher process on ABAP + JAVA system does not start.
Can someone help me to solve this issue in a ABAP+JAVA stack system?
service p4 ================= ERROR =================
Core service p4 failed. J2EE Engine cannot be started.
com.sap.engine.frame.ServiceException: <--Localization failed: ResourceBundle='com.sap.engine.frame.KernelResourceBundle', ID='Can't assign requested addres
s (errno:227)
com.sap.engine.services.rmi_p4.dispatcher.TransportMonitor constructor : can't open server socket.', Arguments: []--> : Can't find resource for bundle java
.util.PropertyResourceBundle, key Can't assign requested address (errno:227)
com.sap.engine.services.rmi_p4.dispatcher.TransportMonitor constructor : can't open server socket.
at com.sap.engine.services.rmi_p4.dispatcher.TransportMonitor.<init>(TransportMonitor.java:211)
at com.sap.engine.services.rmi_p4.dispatcher.P4ServiceFrame.start(P4ServiceFrame.java:93)
at com.sap.engine.core.service630.container.ServiceRunner.startCommunicationServiceFrame(ServiceRunner.java:228)
at com.sap.engine.core.service630.container.ServiceRunner.run(ServiceRunner.java:158)
at com.sap.engine.frame.core.thread.Task.run(Task.java:64)
at com.sap.engine.core.thread.impl6.SingleThread.execute(SingleThread.java:78)
at com.sap.engine.core.thread.impl6.SingleThread.run(SingleThread.java:148)
com.sap.engine.frame.ServiceException: <--Localization failed: ResourceBundle='com.sap.engine.frame.KernelResourceBundle', ID='Can't assign requested addres
s (errno:227)
com.sap.engine.services.rmi_p4.dispatcher.TransportMonitor constructor : can't open server socket.', Arguments: []--> : Can't find resource for bundle java
.util.PropertyResourceBundle, key Can't assign requested address (errno:227)
com.sap.engine.services.rmi_p4.dispatcher.TransportMonitor constructor : can't open server socket.
at com.sap.engine.services.rmi_p4.dispatcher.TransportMonitor.<init>(TransportMonitor.java:211)
at com.sap.engine.services.rmi_p4.dispatcher.P4ServiceFrame.start(P4ServiceFrame.java:93)
at com.sap.engine.core.service630.container.ServiceRunner.startCommunicationServiceFrame(ServiceRunner.java:228)
at com.sap.engine.core.service630.container.ServiceRunner.run(ServiceRunner.java:158)
at com.sap.engine.frame.core.thread.Task.run(Task.java:64)
at com.sap.engine.core.thread.impl6.SingleThread.execute(SingleThread.java:78)
at com.sap.engine.core.thread.impl6.SingleThread.run(SingleThread.java:148)
[Framework -> criticalShutdown] Core service p4 failed. J2EE Engine cannot be started.
Nov 9, 2011 6:41:09 AM com.sap.engine.core.Framework [SAPEngine_System_Thread[impl:6]_26] Fatal: Critical shutdown was invoked. Reason is: Core
service p4 failed. J2EE Engine cannot be started.
Please let me know if you need any further information in this regard.
with regards,
RajaHi,
Core service p4 failed. J2EE Engine cannot be started.
com.sap.engine.frame.ServiceException: <--Localization failed: ResourceBundle='com.sap.engine.frame.KernelResourceBundle', ID='Can't assign requested addres
Please reboot the server to free up occupied ports. Later start the sap system.
Regards,
Deepak kori -
User- Control Framework: Fatal error - GUI cannot be reached
Hi,
I am currently working on a Project , were I am facing an issue.
I have Inbound IDoc which come, runs a BDC and then Packs HU via transaction VT02N.
The Problem is when I or some user manually trigger this IDoc via WE19 the code works fine,
But when an external system sends an IDoc we have system user which does the processing and while doing so it gives out an message "User- Control Framework: Fatal error - GUI cannot be re", we cannot debug this. I managed to capture all system message and save them in a file.
Could some one kindly help me with this.
Br,
AmiThi.
you are correct , we have used call transaction in N mode,
But initially it used to work and suddenly its behaving like this.
Br,
AmiT -
ABAP list processing statements in ABAP Objects
Hi,
Based on the Online help "The ABAP statements used for list processing are not yet fully available in ABAP Objects".
Is there any chnage planned about this for the next WAS release?
Thanks,
PeterHi Peter
I believe, most of the measures taken are for some compatibility and performance issues. So, there is no need to expect great changes about this.
*--Serdar -
Error in Control Framework: Background job failed
Hi Experts,
One background job failed with job log: Error in Control Framework in ECC 6.0 system; the job is supposed to produce a XML report. Can anyone please give some idea on this why it could happen? One SAP note 893534 has described same kind of issue but in CRM system. That note even cant be implemeneted in ECC 6.0. Any workaround? Is it a BASIS issue here?
Thanks & Regards,
SKBHello,
please check the variant. We had this problem, and when checking the variant I got a shortdump because the variant did not fit to the program (there were problems with subscreens in the selection screen). After adjusting the variant with program RSVARDOC_610 the variant was ok.
I can not check if this solved the problem because the job runs weekly, and the next job is on Monday. But give it a try...
HTH,
Jens Hoetger -
Error in Control Framework with GUI_DOWNLOAD FM
Dear All,
I am using GUI_DOWNLOAD FM to download a file in PDF format to presentation server.
The code has been written in an enhancement spot in a class "/SCA/CL_SVORDER", method "Print" on an SNC server.
On execution I get the error "Error in Control Framework".
First I tht that this has something to do with the data table. But when I tried to pass a simple table of Integers in ASC format, it gave the same error.
Please assist.
*----Begin of Code Snippet
data: fullpath type STRING value 'D:\temp\PO.pdf',
bin_filesize type I,
filetype type char10 value 'BIN'.
bin_filesize = numbytes.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = bin_filesize
filename = fullpath
FILETYPE = filetype
IMPORTING
FILELENGTH =
tables
data_tab = t_data
FIELDNAMES =
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*----End of Code SnippetHi!
I have the same error, but i need to use CSV Format.
in another program, i used this with XML format.
lv_xml = lr_element->to_xml( ).
Converts the string to xstring
lv_xxml = wd_this->convert_file( lv_xml ).
Shows it in a new browser window
*cl_wd_runtime_services=>attach_file_to_response(*
*i_filename = lco_filename*
*i_content = lv_xxml*
*i_mime_type = lco_mime_type*
*i_in_new_window = abap_FALSE*
*i_inplace = abap_false ).*
Regards! -
Control Framework: Fatal error - GUI cannot be reached
Hello All,
Iam using BDC for creating a ZCR order throught VA01 - Credit Memo request. When executed in the foreground, it works fine.But when ran in background gives an error message - Control Framework: Fatal error - GUI cannot be reached and gives a short Dump for 'RAISE_EXCEPTION'.
Please suggest.Normally, BDC should run the same way whether it is in background of Foreground.
No, BDC does not run the same way in background and foreground
To understand BDC in background : different behavior or termination read those OSS notes :
- [Note 33319 - Batch input: Backgr. runs diff. than in the dialog|https://service.sap.com/sap/support/notes/33319]
- [Note 311440 - Batch input and controls|https://service.sap.com/sap/support/notes/311440]
Also this note of interest :
- [Note 554139 - FAQ 2: Batch input|https://service.sap.com/sap/support/notes/554139]
Regards,
Raymond
Maybe you are looking for
-
Office 2013 Pro Plus Activation not taking ?
Hello All. I'm having issues with the license I received from my CTO. It's a legit license from Microsoft (Downloaded straight from the site). But the activation goes nutty no matter what I do. Details: Windows 7 Pro 64-Bit Office Pro Plus 32-Bit Pr
-
MacBook Pro Audio Problems!
I have been using my new MacBook Pro Retina since Christmas when I got it and loved it. However, I recently noticed that when using my Bose QC15 headphones with it, I was only getting audio in the left channel. I replaced the batteries in the headpho
-
I just want to download free apps and i dont have a bank card yet but it requires for card code what can i do?
-
Xslt emitting functoid with parameters is it possible ?
Hello, I am developing a functoid that emits xslt. We have a requirement to map a header and that map is rather complex and will occur frequently. By putting that complexity inside a single functoid that emist the xslt we now have a nice solution for
-
3ds max, viz and autocad problems with bootcamp
I recently bought a new mac pro 2 quad 3.0 as a workstation. I have two hardrives installed one for mac os system and the other one is for windows and bootcamp. The problem is that after using 3dsmax or any autodesk program for a while. I turn off th