Abap oo constructor prob
data: g_dock type ref to cl_gui_docking_container,
g_split type ref to cl_gui_easy_splitting_container,
g_cont type ref to cl_gui_container.
create object g_dock " this is a constructor
exporting
*side = cl_gui_docking_container=>dock_at_top* ..... "pls explain this syntax in general
extension = 200.
'dock_at_top' is a constant in the attributes component of the class 'cl_gui_docking_container'.
1.) we are already creating an instance of this class as 'g_dock'.
so instead of writing 'g_dock -> dock_at_top', why are we using ' clgui_docking_container=>dock_at_top_ '. pls explain this.
2.) pls clarify 1 thing ....the syntax ...
"create object g_dock
exporting
it is a constructor method, so why are we writing 'cl_gui_docking_container=>dock_at_top' instead of writing only 'dock_at_top'
pls help.
detailed answers will be appreciated, thnks in adv
Hi Akash,
The replies to your question are good, in case you are not clear, let me try my bit
1.) we are already creating an instance of this class as 'g_dock'.
so instead of writing 'g_dock -> dock_at_top', why are we using ' clgui_docking_container=>dock_at_top_ '. pls explain this.
You mean to say something like this,
data: g_dock type ref to cl_gui_docking_container,
g_split type ref to cl_gui_easy_splitting_container,
g_cont type ref to cl_gui_container.
create object g_dock " this is a constructor
exporting
*side = g_dock=>dock_at_top* ..... "pls explain this syntax in general
extension = 200.
Well, as Marcin said object G_DOCK is not yet created at this point, so it is not possible to get a reference to any of it's attributes(constant/static/instance), when you try to compile the above code it will throw a compile error that g_dock=>dock_at_top is not known. Now if your question is how "cl_gui_docking_container=>dock_at_top" is valid syntax, the compiler checks if the global class "cl_gui_docking_container" exists and if yes, then checks for a constant attribute "DOCK_AT_TOP" within it.
2.) pls clarify 1 thing ....the syntax ...
"create object g_dock
exporting
it is a constructor method, so why are we writing 'cl_gui_docking_container=>dock_at_top' instead of writing only 'dock_at_top'
Again, "DOCK_AT_TOP" doesn't have any existence on its own, an attribute irrespective of whether it is constant/static/instance...will always be accessed via it's class reference, and again you cannot use g_dock until it's instance has been created already, not while creating it's instance.
Not sure if i understood your doubt in the above post, the parameter SIDE of the constructor let's you choose where do you want the container to show up top, left, bottom etc...by default it will be left, so if you do not pass anything to the parameter side, it will be created on the left. Now if you want it to be in any other place other than left then you have to specify the same by passing the corresponding value.
@TREASURE - My understanding is that the below is incorrect, and would hold good only within the class and not outside of it.
You could just have
DOCK_AT_TOP
Regards,
Chen
Edited by: Chen K V on Jun 6, 2011 4:54 PM
Edited by: Chen K V on Jun 6, 2011 4:56 PM
Similar Messages
-
Unknown Error: PDF_TEST_00 not returned Responds
Hi Gurus,
I am trying to execute some AIF using the T Code: FMBB, but just before calling the form itself, my testing program got stuck and does not longer respond. No messages, no outputs, nothing after that.
Have been to all of the step in this link: (Adobe Document Services http://help.sap.com/erp2005_ehp_03/helpdata/EN/37/504b8cbc2848a494facfdc09a359b1/frameset.htm)
-Others steps I have done so far: Checking the IIOP Service and the Startup Properties
- I execute the Report FP_TEST_00.
Here is when it all comes, run the report, choosing a printer up to the
Parameters for printing AIF(Device Type: Post2) then I got a never-ending wait
cursor so the system is not longer responding. No Errors, no output, nothing at all.
I come to check the other test to resolve the error, according to the guide:
1. Checking the ABAP Connection:
execute the report FP_PDF_TEST_00
so good!, the report shows the version number of the Adobe document services as the guide says.
2. Checking the User and Password:
Server : dr6server.
J2EE Instance : 03.
Port : 50300.
SID : DRA
URL = http://dr6server:50300/AdobeDocumentServices/Config
Enter the URL in Web browser and Choose rpdata(test. )., enter the ADSUser and
password and the system displays the version number of the Adobe document
services in the response area, test successful!
3. Checking the Destination Service and the ICF Service
execute the report FP_CHECK_DESTINATION_SERVICE.
- Here the problem comes again, I just run the report above then got no respond at all. I could
Identify the line code where it does not continue:
l_soapresponse = adsobject->run( ).
- Apparently there are problems with the configuration of ADS, although already set ADS_AGENT with his role SAP_BC_FP_ICF, ADS_User with his role ADS_CALLERS, FP_ICF_DATA_ <SID> already been created in J2EE , install and configure the credentials of ADOVE successfully, the HTTP connection(RFC Destination 'ADS') was created successfully , and check the ICF in browser and the visual j2ee administrator and a test was successful only lacking in AS ABAP that gives me the error.
- Configuration of the Web Service for Basic Authentication have been use as step by step guide
configuration But the problem with the reports:
FP_TEST_00,FP_CHECK_DESTINATION_SERVICE. remains.
Can anyone please explain me where and how should I set the ADS to make this test successful.
Thanks in advance
regardsHello Maarten ,
first of all thank you for your quick reaction.
I run the program both ways, but there is no single answer falls into a cycle as infinity,
The service was created in the visual Administrator previously said that according to what the guide configuration, in the visual amdministrador -> Services -> Destinations. I introduced FP_ICF_DATA_DRA (ID system is DRA).
assign a name = "DR6SERVER" and port = "8003" which I found in the T-code SICF, authentication Basic client = "300" user = ADS_AGENT and passw (previously established with AS Abap Role = "SAP_BC_FP_ICF" probe save and test and the response was "GET HTTP response code 200" Test success.
but still not responding the report.
even probe "http://DR6SERVER:8003/sap/bc/fp/form/layout/fp_test_00.xdp"
both in the Administrator visual-> Services -> Destinations and in the browser and generates response.
Do you have another ideas solving my problem?
Thanks in advance
regards
Miguel -
Private constructor in abap OO
Hi folks,
I'd like to create a factory method in a class. The factory method returns objects (corresponding to certain keys) of the class by first checking an internal map for the key and then returning the pertaining object if an entry for that key exists or creating a new object (and putting it into the table) if it doesn't.
Now I wanted to declare the actual constructor <i>private</i>, but found SE80 prohibits changing the accessibility of constructors - there are always public?!
Is there a way to achieve private accessibility of constructors, what does <i>Instantiation - private</i> on the properties tab of a class mean (as opposed to possibly changing the constructor to private)?
Great if someone could shed some light onto this.
Regards,
Sebastian> since you can not call the constructor directly there
> is no need to declare the constructor as private.
well, that is almost a philosophical question. I mean in a way I do call the constructor directly: it is called immediately after using the <i>create object</i> command.. but I know what you mean
> To avoid that an instance can be created from outside
> the class jsut declare it as
> class lcl_class definition create private.
>
> or if it is global:
> go to tab properties and set choose private in the
> instantiation.
> ...
> With create private only methods of this class can
> create an instance of this class...
That is, only methods of this class can call the constructor (use <i>create object</i>), right?
This would indeed have the desired effect that creation of this class' objects (somewhere outside the class) was only possible through the factory and not by calling the constructor.
Thanks, Sebastian -
Getting prob while creating view in webdynpro ABAP application
Hi Guys,
I am facing a problem while creating a view for webdynpro ABAP application. It is giving an error as "ICF service "/sap/public/bc/WebDynpro/ViewDesigner" inactive".
can anybody let me know how to solve this problem.
Thanks In Advance
Regards
RavikumarI think check Internet explorer Tools ->Internet Options ->Connections.>Lan Connections> if the proxy or anyting checkbox is clicked coz it doesn't work with Internet on .
Please reward if useful. -
ABAP OO - 2 Attributes are Key Fields - Constructor & m_por-instid
Hi,
we are running 6.40
In my class there are 2 attributes that are key.
In my CONSTRUCTOR, how do I set m_por-instid when I have two attributes as key? Do I concatenate the 2 attributes into a variable and then do m_por-instid = variable?
Any other ideas?
Much thanks and regards,
CristianaHi,
Kjetil is spot on about the structure. It's easy enough:
On the types tab create a type t_key, then click on the code-arrow-icon-thingy between the type and description fields
types:
begin of t_key,
po_number type ebeln,
item_number type ebelp,
end of t_key .
then in your methods:
data: lv_key type t_key.
lv_key-po_number = im ebeln.
lv_key-item_number = im_ebelp.
m_por-instid = lv_key.
Regarding reducing the key to 32 characters, it's not a Microsofty idea for a change. It is a standard 32 byte GUID which is compatible with anything that talks BPEL, WF-XML, SOAP or similar. If you need longer keys then you need to work with persistent class GUIDs - i.e. get your key fields and use the GUID from a persistent class.
It's even documented <a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/4d/e52f6af36db84999a937146382f0e6/frameset.htm">in the SAP help</a>
Hope that helps,
Mike -
Prob creating ABAP Proxy-Interface use external and interna msg definition
Hi,
I've created a service interface using external definition (message type for request and response), imported via WSDL file. However, while creating ABAP proxy in SPROXY, it gave the error message "Interface uses external and internal message definition". I searched through the forum, the questions were raised but no definite answer was found. Is it not possible to generate a proxy if there is any external definition used?
Details of the error message:
Message no. SPRX122
Diagnosis
In a message interface you can use messages from different sources:
Message types and fault message types edited in the Enterprise Services Repository
Messages imported into the Enterprise Services Repository (external definitions, RFC, IDoc)
In the current message interface, message types from different sources have been used. Since messages from these different sources must be handled differently during proxy generation, such a mixture of messages within a message interface is not possible.
System Response
The interface cannot be generated.
Procedure
Change the interface definition accordingly in the Enterprise Services Repository.
p/s: My external definition is actually derived from a ABAP FM web service. The reason why i used external definition is that i try to avoid the tedious steps of hard-coding all the data types for the request and response message types.
Any help would be highly appreciated.
- juliusHi Arvind,
For technical reasons, proxy generation and the respective editors in the Integration Builder do not support the entire language range of XML schema and WSDL. For an overview of which language elements are supported, see the Excel spreadsheet in the SAP Service Marketplace at service.sap.com/xi ® Media Library ® Documentation: SAP XI 3.0 (SP11) u2013 Supported XML Schema and WSDL (EN).
I couldnt find the above document in the service market place. Any hint to find it?
Thanks.
- julius -
Prob with RFC destination - 4.5B 2 XI ABAP
Hi,
I created an RFC destination type 3(R/3 connection) in 4.5B, to address Integration Server.
It gives the following error.
<b>Connection error : Conversation 09163404 not found / CPI-C error CM_PARAMETER_ERROR</b>
Can any one guide me on this.
-Naveen.Hi,
Please check on 'Authorisation to Read Metadata'at the end
http://help.sap.com/saphelp_nw04/helpdata/en/67/6d0540ba5ee569e10000000a155106/content.htm
Regards
Vijaya -
Hello,
i discovered that method calling in the class-inheritance of ABAP Objects doesn't work similar to other OO languages.
Example:
1 Superclass named "Z_CLASS"
1 Subclass of "Z_CLASS" named "Z_SUB"
Z_CLASS defines a method "initialize" and has a constructor which calls "initialize".
Z_SUB redefines the method "initialize" assigning some values to instance-attributes.
If i instantiate a new "Z_SUB"-object then the contructor of "Z_CLASS" is called which calls ITS OWN "initialize" not the one of the subclass. For comparison: Java would call the initialize of the subclass.
I have to implement a constructor in every subclass of "Z_CLASS" which calls the super constructor and the own "initialize" after that to solve this problem. This isn't the proper OO way!
Did i miss something or am i right?
Thanks in advance,
StefanCheck out this, it might be helpfull...
INTERFACE I_COUNTER
INTERFACE i_counter.
METHODS: initialize.
ENDINTERFACE.
CLASS C_COUNTER1 DEFINITION
CLASS c_counter1 DEFINITION.
PUBLIC SECTION.
INTERFACES i_counter.
METHODS: constructor.
DATA count TYPE i.
ENDCLASS.
CLASS C_COUNTER1 IMPLEMENTATION
CLASS c_counter1 IMPLEMENTATION.
METHOD constructor.
CALL METHOD me->i_counter~initialize.
ENDMETHOD.
METHOD i_counter~initialize.
count = count + 10.
write:/ 'count from super', count.
ENDMETHOD.
ENDCLASS.
CLASS C_COUNTER2 DEFINITION
CLASS c_counter2 DEFINITION INHERITING FROM c_counter1.
PUBLIC SECTION.
METHODS: constructor,
initialize.
DATA count1 TYPE i.
ENDCLASS.
CLASS C_COUNTER2 IMPLEMENTATION
CLASS c_counter2 IMPLEMENTATION.
METHOD constructor.
CALL METHOD super->constructor.
CALL METHOD me->initialize.
ENDMETHOD.
METHOD initialize.
count = ( count / 10 ).
write:/ 'count from sub', count.
ENDMETHOD.
ENDCLASS.
DATA: count TYPE REF TO c_counter2.
START-OF-SELECTION.
CREATE OBJECT count TYPE c_counter2. -
ABAP Runtime Error while executing planning folder
Hi experts.
We have a situation where I can access our planning folders but that's not the case for one of our user. She encountered with an ABAP Runtime Error as follow:
Appreciate if anyone can help me out with this.
Runtime Error RAISE_EXCEPTION
Date and Time 20.04.2007 16:50:23
ShrtText
Exception condition "X_MESSAGE" raised.
What happened?
The current ABAP/4 program encountered an unexpected
situation.
What can you do?
Print out the error message (using the "Print" function)
and make a note of the actions and input that caused the
error.
To resolve the problem, contact your SAP system administrator.
You can use transaction ST22 (ABAP Dump Analysis) to view and administer
termination messages, especially those beyond their normal deletion
date.
is especially useful if you want to keep a particular message.
Error analysis
A RAISE statement in the program "SAPLRSSBR" raised the exception
condition "X_MESSAGE".
Since the exception was not intercepted by a superior program
in the hierarchy, processing was terminated.
Short description of exception condition:
Cancel
For detailed documentation of the exception condition, use
Transaction SE37 (Function Library). You can take the called
function module from the display of active calls.
How to correct the error
You may able to find an interim solution to the problem
in the SAP note system. If you have access to the note system yourself,
use the following search criteria:
"RAISE_EXCEPTION" C
"SAPLRSSBR" or "LRSSBRU03"
"RSSB_AUTHORITY_IOBJVL_CHECK"
or
"SAPLRSSBR" "X_MESSAGE"
or
"UPB_PM_CUST_START " "X_MESSAGE"
If you cannot solve the problem yourself and you wish to send
an error message to SAP, include the following documents:
1. A printout of the problem description (short dump)
To obtain this, select in the current display "System->List->
Save->Local File (unconverted)".
2. A suitable printout of the system log
To obtain this, call the system log through transaction SM21.
Limit the time interval to 10 minutes before and 5 minutes
after the short dump. In the display, then select the function
"System->List->Save->Local File (unconverted)".
3. If the programs are your own programs or modified SAP programs,
supply the source code.
To do this, select the Editor function "Further Utilities->
Upload/Download->Download".
4. Details regarding the conditions under which the error occurred
or which actions and input led to the error.
System environment
SAP Release.............. "640"
Application server....... "S53KJ165"
Network address.......... "10.1.53.165"
Operating system......... "AIX"
Release.................. "5.3"
Hardware type............ "00C3A11F4C00"
Character length......... 8 Bits
Pointer length........... 64 Bits
Work process number...... 3
Short dump setting....... "full"
Database server.......... "S53KJ170"
Database type............ "ORACLE"
Database name............ "BWP"
Database owner........... "SAPBWP"
Character set............ "en_US.ISO8859-1"
SAP kernel............... "640"
Created on............... "Oct 29 2006 20:42:11"
Created in............... "AIX 1 5 00538A4A4C00"
Database version......... "OCI_920 "
Patch level.............. "155"
Patch text............... " "
Supported environment....
Database................. "ORACLE 9.2.0.., ORACLE 10.1.0.., ORACLE
10.2.0.."
SAP database version..... "640"
Operating system......... "AIX 1 5, AIX 2 5, AIX 3 5"
Memory usage.............
Roll..................... 16128
EM....................... 16759712
Heap..................... 0
Page..................... 57344
MM Used.................. 10079624
MM Free.................. 2487240
SAP Release.............. "640"
User and Transaction
Client.............. 350
User................ "S51643"
Language key........ "E"
Transaction......... "UPSPL "
Program............. "SAPLRSSBR"
Screen.............. "SAPLUPB_PM_ALV 1000"
Screen line......... 2
Information on where terminated
The termination occurred in the ABAP program "SAPLRSSBR" in
"RSSB_AUTHORITY_IOBJVL_CHECK".
The main program was "UPB_PM_CUST_START ".
The termination occurred in line 416 of the source code of the (Include)
program "LRSSBRU03"
of the source code of program "LRSSBRU03" (when calling the editor 4160).
Source Code Extract
Line
SourceCde
386
l_s_range-low = l_activity.
387
APPEND l_s_range TO l_sx_auth_check_detail-range.
388
INSERT l_sx_auth_check_detail INTO TABLE <l_sx_auth_check>-auth_check_detail.
389
390
CALL FUNCTION 'RSSB_AUTHORITY_IOBJVL_REDUCED'
391
EXPORTING
392
i_infocube = g_sx_iobjvl_check-infocube
393
i_uname = l_uname
394
i_th_hierarchy = g_sx_iobjvl_check-hierarchy
395
i_message = i_message
396
i_activity_force_check = i_activity_force_check
397
CHANGING
398
c_tsx_auth_check_detail = <l_sx_auth_check>-auth_check_detail
399
c_tx_no_auth = l_tx_no_auth
400
c_ts_auth_tlevel = e_ts_auth_tlevel
401
EXCEPTIONS
402
user_not_authorized = 1
403
auth_check_failure = 2
404
auth_check_error = 3
405
inherited_error = 4
406
x_message = 5.
407
IF sy-subrc = 0.
408
REFRESH l_tx_no_auth.
409
CR 20050826 HW873685 SP29 Part 2/3 begin
410
SY-SUBRC = 2 means Auth-Obj missing in users profiles, we need this later
411
ELSEIF sy-subrc = 2.
412
ao_missing = rs_c_true.
413
e_subrc = 2.
414
CR 20050826 HW873685 SP29 Part 2/3 end
415
ELSEIF sy-subrc = 5.
>>>>>
RAISE x_message.
417
ELSE.
418
e_subrc = 2.
419
ENDIF.
420
421
correct the kid now
422
LOOP AT l_tx_no_auth INTO l_sx_no_auth.
423
l_sx_no_auth-kid = <l_sx_auth_check>-kid.
424
APPEND l_sx_no_auth TO e_tx_no_auth.
425
ENDLOOP.
426
427
ENDLOOP.
428
429
End LOOP: Check all SUBNR (FEMS)
430
431
432
CR 20050826 HW873685 SP29 Part 3/3 begin
433
If an Auth-Obj. is missing, no SUBNR can be authorized. Due to OLAP-logic
434
this means empty no_auth table
435
IF ao_missing = rs_c_true.
Contents of system fields
Name
Val.
SY-SUBRC
5
SY-INDEX
1
SY-TABIX
0
SY-DBCNT
0
SY-FDPOS
1
SY-LSIND
0
SY-PAGNO
0
SY-LINNO
1
SY-COLNO
1
SY-PFKEY
210
SY-UCOMM
SELECT
SY-TITLE
Execute All Cost Element
SY-MSGTY
E
SY-MSGID
R7
SY-MSGNO
057
SY-MSGV1
0CO_AREA
SY-MSGV2
A
SY-MSGV3
SY-MSGV4
Active Calls/Events
No. Ty. Program Include Line
Name
40 FUNCTION SAPLRSSBR LRSSBRU03 416
RSSB_AUTHORITY_IOBJVL_CHECK
39 FORM SAPLRSDRC LRSDRCF15 113
AUTHORITY_CHECK
38 FORM SAPLRSDRC LRSDRCF27 57
BASIC_QUERY_DATA_GET_ROLAP
37 FUNCTION SAPLRSDRC LRSDRCU05 44
RSDRC_BASIC_QUERY_DATA_GET
36 FUNCTION SAPLRSDRC LRSDRCU15 189
RSDRC_BASIC_CUBE_DATA_GET
35 FORM SAPLRSDRC LRSDRCF25 373
DATA_GET
34 FUNCTION SAPLRSDRC LRSDRCU02 249
RSDRC_CUBE_DATA_GET
33 FUNCTION SAPLRSDRI LRSDRIU01 352
RSDRI_INFOPROV_READ
32 FORM /1SEM/UPCBW_350TMWPA01 UPC_BWINTERFC__FIX 174
DATA_READ
31 FUNCTION SAPLUPCBW LUPCBWU06 56
UPC_BW_DATA_READ
30 FUNCTION SAPLUPC1 LUPC1U06 67
UPC_DATA_READ
29 METHOD /1SEM/CL_DATA_350TMWPA01======CP UPC_DATA_READ_DB 25
/1SEM/CL_DATA_350TMWPA01=>IF_SEM_DATA_INTERNAL~READ_DB
28 METHOD /1SEM/CL_BUFFER_350TMWPA01====CP UPC_BUFFER_GET 167
/1SEM/CL_BUFFER_350TMWPA01=>IF_SEM_BUFFER~GET
27 METHOD /1SEM/CL_BUFFER_350TMWPA01====CP UPC_BUFFER_READ 5
/1SEM/CL_BUFFER_350TMWPA01=>IF_SEM_BUFFER~READ
26 METHOD /1SEM/CL_DATA_350TMWPA01======CP UPC_DATA_READ 46
/1SEM/CL_DATA_350TMWPA01=>IF_SEM_DATA~READ
25 FORM 45AJEHYBGH37F61DTX80Q9ZFP UPP_PLAN 395
READ_TRANSACTION_DATA
24 FORM 45AJEHYBGH37F61DTX80Q9ZFP UPP_PLAN 561
GET_DATA
23 FORM 45AJEHYBGH37F61DTX80Q9ZFP UPP_PLAN 800
EC500_SELECT_DATABASE
22 FORM SAPLUPP_PP_KERNEL LUPP_PP_KERNELF97 575
SELECT_DATABASE
21 FORM SAPLUPP_PP_KERNEL LUPP_PP_KERNELF97 464
SELECT_AND_FIND_HEADER_COMBI
20 FORM SAPLUPP_PP_KERNEL LUPP_PP_KERNELF97 217
LOGICAL_SCREEN_FILL_HEADER
19 FORM SAPLUPP_PP_KERNEL LUPP_PP_KERNELF97 60
LOGICAL_SCREEN_FILL
18 FUNCTION SAPLUPP_PP_KERNEL LUPP_PP_KERNELU01 114
UPP_PP_KERNEL_CONSTRUCTOR
17 METHOD CL_UPB_PL_ALV=================CP CL_UPB_PL_ALV=================CM01E 176
CL_UPB_PL_ALV=>CONSTRUCTOR
16 FORM SAPLUPB_PM_ALV LUPB_PM_ALVF01 623
OUTPUT_CREATE
15 FORM SAPLUPB_PM_ALV LUPB_PM_ALVF01 202
OUTPUT_INIT
14 FORM SAPLUPB_PM_ALV LUPB_PM_ALVF01 1062
OUTPUT_PROCESS
13 FORM SAPLUPB_PM_ALV LUPB_PM_ALVF01 1225
OUTPUT_SWITCH_TO_LAYOUT
12 FORM SAPLUPB_PM_ALV LUPB_PM_ALVF05 748
INIT_CONTROLS
11 MODULE (PBO) SAPLUPB_PM_ALV LUPB_PM_ALVO01 13
STATUS
10 FUNCTION SAPLUPB_PM_ALV LUPB_PM_ALVU01 24
UPB_PM_ALV_START
9 METHOD CL_UPB_PM_APPLC===============CP CL_UPB_PM_APPLC===============CM00A 88
CL_UPB_PM_APPLC=>EXECUTE_PM
8 METHOD CL_UPB_PM_ADMIN===============CP CL_UPB_PM_ADMIN===============CM00L 76
CL_UPB_PM_ADMIN=>PAI_ONE_NODE
7 METHOD CL_UPB_PM_ADMIN===============CP CL_UPB_PM_ADMIN===============CM00L 23
CL_UPB_PM_ADMIN=>PAI_ONE_NODE
6 METHOD CL_UPB_PM_ADMIN===============CP CL_UPB_PM_ADMIN===============CM003 121
CL_UPB_PM_ADMIN=>PAI
5 FORM SAPLUPB_PM LUPB_PMF04 80
USER_COMMAND_0210
4 MODULE (PAI) SAPLUPB_PM LUPB_PMI04 11
USER_COMMAND_0210
3 FUNCTION SAPLUPB_PM LUPB_PMU22 86
UPB_PM_MAIN
2 FORM UPB_PM_CUST_START UPB_PM_START_ADMIN 251
PM_START
1 EVENT UPB_PM_CUST_START UPB_PM_START_ADMIN 14
START-OF-SELECTION
Chosen variables
Name
Val.
No. 40 Ty. FUNCTION
Name RSSB_AUTHORITY_IOBJVL_CHECK
I_ACTIVITY
03
33
03
I_ACTIVITY_FORCE_CHECK
2
0
I_MESSAGE
X
5
8
I_SX_IOBJVL_CHECK
ZCTMWMA05 ####
5454544332222222222222222222222222222222222222222222222222222222222222222222222222222222220000
A34D7D1050000000000000000000000000000000000000000000000000000000000000000000000000000000000000
I_UNAME
S51643
533333222222
351643000000
E_SUBRC
0
0000
0000
E_TS_AUTH_TLEVEL
Table[initial]
E_TX_NO_AUTH
Table[initial]
RSSB_C_AUTH_KEYFIGURE
1KYFNM
3454442222
1B96ED0000
SY-REPID
SAPLRSSBR
5454555452222222222222222222222222222222
310C233220000000000000000000000000000000
SYST-REPID
SAPLRSSBR
5454555452222222222222222222222222222222
310C233220000000000000000000000000000000
%_SPACE
2
0
RS_C_RANGE_SIGN
IE
44
95
SY-SUBRC
5
0000
0005
L_TX_NO_AUTH
Table[initial]
SY-XFORM
CONVERSION_EXIT
444545544454545222222222222222
3FE65239FEF5894000000000000000
SYST
0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1. ###################################################à##############
0000000000000000000000000002000000000000000000000000000000000000000000000000000E00000000000000
0001000000000000000000000000000000000000000000010001000000010000000000000000000000000000000000
L_SX_NO_AUTH
############ÿÿÿÿ
000000000000FFFF
000000000000FFFF
L_SX_NO_AUTH-KID
Table[initial]
<L_SX_AUTH_CHECK>-KID
Table IT_33029[1x4]
FUNCTION-POOL=RSSBRDATA=G_SX_IOBJVL_CHECK-AUTH_CHECK[1]-KID
Table reference: 2052
TABH+ 0(20) = 07000000908D2FD0000000000000000000000000
TABH+ 20(20) = 00000804000081050000000100000004FFFFFFFF
TABH+ 40(16) = 040002F1000003480001432821000000
store = 0x07000000908D2FD0
ext1 = 0x0000000000000000
shmId = 0 (0x00000000)
id = 2052 (0x00000804)
label = 33029 (0x00008105)
fill = 1 (0x00000001)
leng = 4 (0x00000004)
loop = -1 (0xFFFFFFFF)
xtyp = TYPE#000003
occu = 1 (0x00000001)
access = 2 (ItAccessSorted)
idxKind = 0 (ItIndexNone)
uniKind = 1 (ItUnique)
keyKind = 2 (table_line)
cmpMode = 5 (cmpSingle)
occu0 = 0
collHash = 0
groupCntl = 0
rfc = 0
unShareable = 0
mightBeShared = 1
sharedWithShmTab = 0
isShmLockId = 0
gcKind = 0
isUsed = 1
>>>>> Shareable Table Header Data <<<<<
tabi = 0x07000000908E0CC8
pghook = 0x0000000000000000
idxPtr = 0x0000000000000000
refCount = 1 (0x00000001)
tstRefCount = 0 (0x00000000)
lineAdmin = 1 (0x00000001)
lineAlloc = 1 (0x00000001)
store_id = 6998 (0x00001B56)
shmIsReadOnly = 0 (0x00000000)
>>>>> 1st level extension part <<<<<
regHook = Not allocated
hsdir = Not allocated
ext2 = Not allocated
>>>>> 2nd level extension part <<<<<
tabhBack = Not allocated
delta_head = Not allocated
pb_func = Not allocated
pb_handle = Not allocated
No. 39 Ty. FORM
Name AUTHORITY_CHECK
I_TH_SFC
Table IT_32090[14x128]
FUNCTION=RSDRC_BASIC_CUBE_DATA_GETDATA=L_TH_SFC
Table reference: 1757
TABH+ 0(20) = 070000009052D8F8070000009081372800000000
TABH+ 20(20) = 000006DD00007D5A0000000E00000080FFFFFFFF
TABH+ 40(16) = 040002DB000017C80010839401000000
store = 0x070000009052D8F8
ext1 = 0x0700000090813728
shmId = 0 (0x00000000)
id = 1757 (0x000006DD)
label = 32090 (0x00007D5A)
fill = 14 (0x0000000E)
leng = 128 (0x00000080)
loop = -1 (0xFFFFFFFF)
xtyp = TYPE#000099
occu = 16 (0x00000010)
access = 4 (ItAccessHashed)
idxKind = 0 (ItIndexNone)
uniKind = 1 (ItUnique)
keyKind = 3 (user defined)
cmpMode = 2 (cmpSingleMcmpR)
occu0 = 1
collHash = 0
groupCntl = 0
rfc = 0
unShareable = 0
mightBeShared = 0
sharedWithShmTab = 0
isShmLockId = 0
gcKind = 0
isUsed = 1
>>>>> Shareable Table Header Data <<<<<
tabi = 0x0700000090811F18
pghook = 0x0000000000000000
idxPtr = 0x070000009052D950
refCount = 0 (0x00000000)
tstRefCount = 0 (0x00000000)
lineAdmin = 16 (0x00000010)
lineAlloc = 16 (0x00000010)
store_id = 6872 (0x00001AD8)
shmIsReadOnly = 0 (0x00000000)
>>>>> 1st level extension part <<<<<
regHook = 0x0700000090813588
hsdir = 0x0000000000000000
ext2 = 0x0000000000000000
>>>>> 2nd level extension part <<<<<
tabhBack = Not allocated
delta_head = Not allocated
pb_func = Not allocated
pb_handle = Not allocated
CL_RSO_REPOSITORY=>P_C_BAL_LOG_SUBOBJEC_INST
SY-REPID
SAPLRSDRC
5454554542222222222222222222222222222222
310C234230000000000000000000000000000000
L_S_RANGE-LOW
1ROWCOUNT
354544545222222222222222222222222222222222222222222222222222
12F73F5E4000000000000000000000000000000000000000000000000000
<L_S_SFK>-KYFNM
1ROWCOUNT
354544545222222222222222222222
12F73F5E4000000000000000000000
RSDRC_C_QUERYMODE-CUMULATIVE
C
4
3
S_S_COB_PRO
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
L_SX_SELDR-RANGE+8(8)
Table IT_32110[2x136]
FUNCTION-POOL=RSDRCFORM=AUTHORITY_CHECKDATA=L_SX_SELDR
Table reference: 1902
TABH+ 0(20) = 0700000090813D10000000000000000000000000
TABH+ 20(20) = 0000076E00007D6E0000000200000088FFFFFFFF
TABH+ 40(16) = 040002DB00001AA00010254421000000
store = 0x0700000090813D10
ext1 = 0x0000000000000000
shmId = 0 (0x00000000)
id = 1902 (0x0000076E)
label = 32110 (0x00007D6E)
fill = 2 (0x00000002)
leng = 136 (0x00000088)
loop = -1 (0xFFFFFFFF)
xtyp = TYPE#000112
occu = 16 (0x00000010)
access = 1 (ItAccessStandard)
idxKind = 0 (ItIndexNone)
uniKind = 2 (ItUniqueNon)
keyKind = 2 (table_line)
cmpMode = 8 (cmpManyEq)
occu0 = 1
collHash = 0
groupCntl = 0
rfc = 0
unShareable = 0
mightBeShared = 1
sharedWithShmTab = 0
isShmLockId = 0
gcKind = 0
isUsed = 1
>>>>> Shareable Table Header Data <<<<<
tabi = 0x07000000908800F8
pghook = 0x0000000000000000
idxPtr = 0x0000000000000000
refCount = 1 (0x00000001)
tstRefCount = 0 (0x00000000)
lineAdmin = 16 (0x00000010)
lineAlloc = 16 (0x00000010)
store_id = 6876 (0x00001ADC)
shmIsReadOnly = 0 (0x00000000)
>>>>> 1st level extension part <<<<<
regHook = Not allocated
hsdir = Not allocated
ext2 = Not allocated
>>>>> 2nd level extension part <<<<<
tabhBack = Not allocated
delta_head = Not allocated
pb_func = Not allocated
pb_handle = Not allocated
L_S_RANGE
IEQ1ROWCOUNT
4453545445452222222222222222222222222222222222222222222222222222222222222222222222222222222222
95112F73F5E40000000000000000000000000000000000000000000000000000000000000000000000000000000000
L_TSX_SELDR
Table IT_32094[13x120]
FUNCTION-POOL=RSDRCFORM=AUTHORITY_CHECKDATA=L_TSX_SELDR
Table reference: 1870
TABH+ 0(20) = 0700000090813AE007000000908DF36800000000
TABH+ 20(20) = 0000074E00007D5E0000000D00000078FFFFFFFF
TABH+ 40(16) = 040002DB000018A8000C4B9C01000000
store = 0x0700000090813AE0
ext1 = 0x07000000908DF368
shmId = 0 (0x00000000)
id = 1870 (0x0000074E)
label = 32094 (0x00007D5E)
fill = 13 (0x0000000D)
leng = 120 (0x00000078)
loop = -1 (0xFFFFFFFF)
xtyp = TYPE#000103
occu = 12 (0x0000000C)
access = 2 (ItAccessSorted)
idxKind = 1 (ItIndexLinear)
uniKind = 1 (ItUnique)
keyKind = 3 (user defined)
cmpMode = 3 (cmpSingleMcmpU)
occu0 = 1
collHash = 0
groupCntl = 0
rfc = 0
unShareable = 0
mightBeShared = 0
sharedWithShmTab = 0
isShmLockId = 0
gcKind = 0
isUsed = 1
>>>>> Shareable Table Header Data <<<<<
tabi = 0x070000009087FB40
pghook = 0x0700000090813D68
idxPtr = 0x0700000090813DA0
refCount = 0 (0x00000000)
tstRefCount = 0 (0x00000000)
lineAdmin = 36 (0x00000024)
lineAlloc = 36 (0x00000024)
store_id = 6875 (0x00001ADB)
shmIsReadOnly = 0 (0x00000000)
>>>>> 1st level extension part <<<<<
regHook = 0x07000000908DED00
hsdir = 0x0000000000000000
ext2 = 0x0000000000000000
>>>>> 2nd level extension part <<<<<
tabhBack = Not allocated
delta_head = Not allocated
pb_func = Not allocated
pb_handle = Not allocated
L_SX_SELDR
00001KYFNM ########300 0 ####ÿÿÿÿ#### 0 ######## ####ÿÿ
333334544422222222222222222222222222000000003332223222220000FFFF0000223200000000222222220000FF
00001B96ED00000000000000000000000000000000003000000000000000FFFF0000000000000000000000000000FF
G_RUNNING
0
0000
0000
L_BASICCUBE
ZCTMWMA05
545454433222222222222222222222
A34D7D105000000000000000000000
L_TH_FREE
Table IT_32093[6x30]
FUNCTION-POOL=RSDRCFORM=AUTHORITY_CHECKDATA=L_TH_FREE
Table reference: 1763
TABH+ 0(20) = 0700000090813760000000000000000000000000
TABH+ 20(20) = 000006E300007D5D000000060000001EFFFFFFFF
TABH+ 40(16) = 040002DB00001B800010831401000000
store = 0x0700000090813760
ext1 = 0x0000000000000000
shmId = 0 (0x00000000)
id = 1763 (0x000006E3)
label = 32093 (0x00007D5D)
fill = 6 (0x00000006)
leng = 30 (0x0000001E)
loop = -1 (0xFFFFFFFF)
xtyp = TYPE#000116
occu = 16 (0x00000010)
access = 4 (ItAccessHashed)
idxKind = 0 (ItIndexNone)
uniKind = 1 (ItUnique)
keyKind = 2 (table_line)
cmpMode = 2 (cmpSingleMcmpR)
occu0 = 1
collHash = 0
groupCntl = 0
rfc = 0
unShareable = 0
mightBeShared = 0
sharedWithShmTab = 0
isShmLockId = 0
gcKind = 0
isUsed = 1
>>>>> Shareable Table Header Data <<<<<
tabi = 0x07000000908137B8
pghook = 0x0000000000000000
idxPtr = 0x07000000908139B0
refCount = 0 (0x00000000)
tstRefCount = 0 (0x00000000)
lineAdmin = 16 (0x00000010)
lineAlloc = 16 (0x00000010)
store_id = 6874 (0x00001ADA)
shmIsReadOnly = 0 (0x00000000)
>>>>> 1st level extension part <<<<<
regHook = Not allocated
hsdir = Not allocated
ext2 = Not allocated
>>>>> 2nd level extension part <<<<<
tabhBack = Not allocated
delta_head = Not allocated
pb_func = Not allocated
pb_handle = Not allocated
SYST-REPID
SAPLRSDRC
5454554542222222222222222222222222222222
310C234230000000000000000000000000000000
L_SX_IOBJVL_CHECK
ZCTMWMA05 ####
5454544332222222222222222222222222222222222222222222222222222222222222222222222222222222220000
A34D7D1050000000000000000000000000000000000000000000000000000000000000000000000000000000000000
L_ACTIVITY
03
33
03
SY-UNAME
S51643
533333222222
351643000000
S_MULTICUBE
222222222222222222222222222222
000000000000000000000000000000
E_SUBRC
0
0000
0000
%_VIASELSCR
0
4
S_CHANM
222222222222222222222222222222
000000000000000000000000000000
I_RAISE_EXCEPTION
X
5
8
RS_C_TRUE
X
5
8
SCREEN
2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
No. 38 Ty. FORM
Name BASIC_QUERY_DATA_GET_ROLAP
E_T_DATA
Table[initial]
E_END_OF_DATA
2
0
C_FIRST_CALL
X
5
8
S_S_QPARAM
XX 0 ##ÿÿÿÿ####DB-VIEW R ###dABAP-TABLE
25523200FFFF0000442544522222222222222222222222222222222222222222222222520006444525444422222222
08800000FFFF000042D6957000000000000000000000000000000000000000000000002000041210D412C500000000
C_S_QPARAM-AUTHORITY_CHECK
R
5
2
RSDRC_C_AUTHCHK-NONE
2
0
RSJOBINFO
00000000000000 ####
222222222222222222222222222222223333333333333322222222222222222222222222222222220000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000
RSD_C_DPANM
0REQUID 0CHNGID 0RECORDTP 0IOB
3545544222222222222222222222223444444222222222222222222222223544454552222222222222222222223444
025159400000000000000000000000038E794000000000000000000000000253F244000000000000000000000009F2
SPACE
2
0
I_BASICCUBE
ZCTMWMA05
545454433222222222222222222222
A34D7D105000000000000000000000
I_TH_SFC
Table IT_32090[14x128]
I_TH_SFK
Table IT_32091[2x128]
FUNCTION=RSDRC_BASIC_CUBE_DATA_GETDATA=L_TH_SFK
Table reference: 1767
TABH+ 0(20) = 0700000090887AC00700000090813CD800000000
TABH+ 20(20) = 000006E700007D5B0000000200000080FFFFFFFF
TABH+ 40(16) = 040002DB000018380010839421000000
store = 0x0700000090887AC0
ext1 = 0x0700000090813CD8
shmId = 0 (0x00000000)
id = 1767 (0x000006E7)
label = 32091 (0x00007D5B)
fill = 2 (0x00000002)
leng = 128 (0x00000080)
loop = -1 (0xFFFFFFFF)
xtyp = TYPE#000101
occu = 16 (0x00000010)
access = 4 (ItAccessHashed)
idxKind = 0 (ItIndexNone)
uniKind = 1 (ItUnique)
keyKind = 3 (user defined)
cmpMode = 2 (cmpSingleMcmpR)
occu0 = 1
collHash = 0
groupCntl = 0
rfc = 0
unShareable = 0
mightBeShared = 1
sharedWithShmTab = 0
isShmLockId = 0
gcKind = 0
isUsed = 1
>>>>> Shareable Table Header Data <<<<<
tabi = 0x0700000090884C90
pghook = 0x0000000000000000
idxPtr = 0x0700000090827A98
refCount = 1 (0x00000001)
tstRefCount = 0 (0x00000000)
lineAdmin = 16 (0x00000010)
lineAlloc = 16 (0x00000010)
store_id = 6857 (0x00001AC9)
shmIsReadOnly = 0 (0x00000000)
>>>>> 1st level extension part <<<<<
regHook = 0x0700000090813B38
hsdir = 0x0000000000000000Have you check or trace Authorization??
In DUMP:
Information on where terminated
The termination occurred in the ABAP program "SAPLRSSBR" in
"RSSB_AUTHORITY_IOBJVL_CHECK".
The main program was "UPB_PM_CUST_START ". -
Difference between abap object and function
hi all,
i read the book on abap object of the difference between abap object and classical abap.
i know that there is only 1 instance of a specific function group but somehow i still not so clear why subsequent vehicle cannot use the same function. i also can use the do and loop to call the function? if cannot then why?
hope can get the advice.
thanks
using function *********
function-pool vehicle.
data speed type i value 0.
function accelerate.
speed = speed + 1.
endfunction.
function show_speed.
write speed.
endfunction.
report xx.
start-of-selection.
*vehicle 1
call function 'accelerate'.
call function 'accelerate'.
call function 'show_speed'.
*vehicle 2
*vehicle 3
*****abap object*******
report xx.
data: ov type ref to vehicle,
ov_tab type table of ref to vehicle.
start-of-selection.
do 5 times.
create object ov.
append ov to ov_tab.
enddo.
loop at ov_tab into ov.
do sy-tabix times.
call method ov->accelerate.
enddo.
call method ov->show_speed.
endloop.Hi
Now try this:
REPORT ZTEST_VEHICLEOO .
PARAMETERS: P_CAR TYPE I,
P_READ TYPE I.
* CLASS vehicle DEFINITION
CLASS VEHICLE DEFINITION.
PUBLIC SECTION.
CLASS-DATA: MAX_SPEED TYPE I,
MAX_VEHICLE TYPE I,
NR_VEHICLES TYPE I.
CLASS-METHODS CLASS_CONSTRUCTOR.
METHODS CONSTRUCTOR.
METHODS ACCELERATE.
METHODS SHOW_SPEED.
METHODS GET_SPEED EXPORTING E_SPEED TYPE I.
PRIVATE SECTION.
DATA: SPEED TYPE I,
NR_VEHICLE TYPE I..
ENDCLASS.
* CLASS vehicle IMPLEMENTATION
CLASS VEHICLE IMPLEMENTATION.
METHOD CLASS_CONSTRUCTOR.
NR_VEHICLES = 0.
ENDMETHOD.
METHOD CONSTRUCTOR.
NR_VEHICLES = NR_VEHICLES + 1.
NR_VEHICLE = NR_VEHICLES.
ENDMETHOD.
METHOD ACCELERATE.
SPEED = SPEED + 1.
IF MAX_SPEED < SPEED.
MAX_SPEED = SPEED.
MAX_VEHICLE = NR_VEHICLE.
ENDIF.
ENDMETHOD.
METHOD SHOW_SPEED.
WRITE: / 'Speed of vehicle nr.', NR_VEHICLE, ':', SPEED.
ENDMETHOD.
METHOD GET_SPEED.
E_SPEED = SPEED.
ENDMETHOD.
ENDCLASS.
DATA: OV TYPE REF TO VEHICLE,
OV_TAB TYPE TABLE OF REF TO VEHICLE.
DATA: V_TIMES TYPE I,
FL_ACTION.
DATA: V_SPEED TYPE I.
START-OF-SELECTION.
DO P_CAR TIMES.
CREATE OBJECT OV.
APPEND OV TO OV_TAB.
ENDDO.
LOOP AT OV_TAB INTO OV.
IF FL_ACTION = SPACE.
FL_ACTION = 'X'.
V_TIMES = SY-TABIX * 2.
ELSE.
FL_ACTION = SPACE.
V_TIMES = SY-TABIX - 2.
ENDIF.
DO V_TIMES TIMES.
CALL METHOD OV->ACCELERATE.
ENDDO.
CALL METHOD OV->SHOW_SPEED.
ENDLOOP.
SKIP.
WRITE: / 'Higher speed', VEHICLE=>MAX_SPEED, 'for vehicle nr.',
VEHICLE=>MAX_VEHICLE.
SKIP.
READ TABLE OV_TAB INTO OV INDEX P_READ.
IF SY-SUBRC <> 0.
WRITE: 'No vehicle', P_READ.
ELSE.
CALL METHOD OV->GET_SPEED IMPORTING E_SPEED = V_SPEED.
WRITE: 'Speed of vehicle', P_READ, V_SPEED.
ENDIF.
Try to repeat this using a function group and I think you'll undestand because it'll be very hard to do it.
By only one function group how can u read the data of a certain vehicle?
Yes you can create in the function group an internal table where u store the data of every car: in this way u use the internal table like it was an instance, but you should consider here the example is very simple. Here we have only the speed as characteristic, but really we can have many complex characteristics.
Max -
Splash screen ABAP (Was 6.20) SAPGui 6.20
I love splash screens. A small pop-up window with a picture should come for say 5 to 10 seconds and disappear by a timer task.
Giving such timer splash screens at START or END makes the application attractive. I do it in VB PB & Java.
How to do Slash screen in ABAP SAP GUI 6.20 WAS 6.20?
Should be thrown up as a "floating" popup.
Regards & Hopeful
-jncWith good tips from Thomas Jung
I made 2 function modules to suit my whims.
SAP being a serious Businesss Software you cannot have too many JPGs floating around! One or two is fun.
In Function group uou need two screens 0806 & 2009 which are essentially blank.
I put 2 title Bars - 0806 "SAP - JOB in Progress"; 2009 - "SAP - JOB OVER!!"
Code listing for function: ZJNC_START_SPLASH
Description: Show Splash at Start
FUNCTION zjnc_start_splash.
""Local interface:
*" IMPORTING
*" REFERENCE(IMAGEFILE) TYPE C DEFAULT 'THANKS.JPG'
*" REFERENCE(WIDTH) TYPE I DEFAULT 415
*" REFERENCE(HEIGHT) TYPE I DEFAULT 274
*" REFERENCE(TIMEOUT) TYPE I DEFAULT 3
*" REFERENCE(CALLBACK) TYPE C
Global data declarations
MOVE imagefile TO g_name.
MOVE width TO picwidth.
MOVE height TO picheight.
MOVE timeout TO pictimeout.
MOVE callback TO piccallback.
TRANSLATE piccallback TO UPPER CASE.
PERFORM getpicurl.
CALL SCREEN 0806.
ENDFUNCTION.
Code listing for function: ZJNC_END_SPLASH
Description: Show Splash at End
FUNCTION ZJNC_END_SPLASH.
""Local interface:
*" IMPORTING
*" REFERENCE(IMAGEFILE) TYPE C DEFAULT 'THANKS.JPG'
*" REFERENCE(WIDTH) TYPE I DEFAULT 415
*" REFERENCE(HEIGHT) TYPE I DEFAULT 274
*" REFERENCE(TIMEOUT) TYPE I DEFAULT 3
Global data declarations
MOVE imagefile TO g_name.
MOVE width TO picwidth.
MOVE height TO picheight.
MOVE timeout TO pictimeout.
PERFORM getpicurl.
CALL SCREEN 2009.
ENDFUNCTION.
Code listing for: LZUTILTOP
TOP level Include of Function Group ZUTIL
Author Jayanta Narayan Choudhuri
Flat 302
395 Jodhpur Park
Kolkata 700 068
Email [email protected]
URL: http://www.geocities.com/ojnc
FUNCTION-POOL zutil. "MESSAGE-ID ..
TYPE-POOLS: abap.
DATA: graphic_url(255),
g_result TYPE i,
g_linesz TYPE i,
g_filesz TYPE i,
g_name(100).
TYPES: t_graphic_line(256) TYPE x.
DATA: graphic_line TYPE t_graphic_line,
graphic_table TYPE TABLE OF t_graphic_line.
DATA: picwidth TYPE i,
picheight TYPE i,
pictimeout TYPE i,
piccallback(60) TYPE c,
first TYPE boolean.
CLASS ZCL_ES_SPLASH_SCREEN DEFINITION
CLASS zcl_es_splash_screen DEFINITION.
PUBLIC SECTION.
EVENTS on_close.
METHODS constructor
IMPORTING
!i_num_secs TYPE i DEFAULT 5
!i_url TYPE c
!i_width TYPE i
!i_height TYPE i.
PROTECTED SECTION.
METHODS handle_end_of_timer
FOR EVENT finished OF cl_gui_timer.
PRIVATE SECTION.
DATA container TYPE REF TO cl_gui_dialogbox_container.
DATA image TYPE REF TO cl_gui_picture.
DATA timer TYPE REF TO cl_gui_timer.
ENDCLASS. "ZCL_ES_SPLASH_SCREEN DEFINITION
CLASS ZCL_ES_SPLASH_SCREEN IMPLEMENTATION
CLASS zcl_es_splash_screen IMPLEMENTATION.
METHOD constructor.
DATA: image_width TYPE i,
image_height TYPE i.
COMPUTE image_width = i_width + 30.
COMPUTE image_height = i_height + 50.
CREATE OBJECT container
EXPORTING
width = 10
height = 10
top = 10
left = 10
name = 'DialogSplash'.
CALL METHOD container->set_caption
EXPORTING
caption = g_name.
CREATE OBJECT image
EXPORTING
parent = container.
CALL METHOD image->load_picture_from_url
EXPORTING
url = i_url.
image->set_display_mode( image->display_mode_normal_center ).
cl_gui_cfw=>flush( ).
container->set_metric( EXPORTING metric = image->metric_pixel ).
DATA: myleft TYPE i,
mytop TYPE i.
COMPUTE myleft = ( 800 - image_width ) / 2.
COMPUTE mytop = ( 600 - image_height ) / 2.
IF myleft < 0.
MOVE 0 TO myleft.
ENDIF.
IF mytop < 0.
MOVE 0 TO mytop.
ENDIF.
container->set_position(
EXPORTING
height = image_height
left = myleft
top = mytop
width = image_width ).
cl_gui_cfw=>update_view( ).
CREATE OBJECT timer.
timer->interval = i_num_secs.
SET HANDLER me->handle_end_of_timer FOR timer.
timer->run( ).
cl_gui_cfw=>flush( ).
ENDMETHOD. "constructor
METHOD handle_end_of_timer.
I wanted NAMASTE to remain until JOB was complete.
IF container IS NOT INITIAL.
container->free( ).
CLEAR container.
FREE container.
ENDIF.
IF timer IS NOT INITIAL.
timer->free( ).
CLEAR timer.
FREE timer.
ENDIF.
cl_gui_cfw=>flush( ).
RAISE EVENT on_close.
ENDMETHOD. "handle_end_of_timer
ENDCLASS. "ZCL_ES_SPLASH_SCREEN IMPLEMENTATION
CLASS lcl_event_handler DEFINITION
CLASS lcl_event_handler DEFINITION.
PUBLIC SECTION.
CLASS-METHODS: on_close FOR EVENT on_close OF zcl_es_splash_screen.
ENDCLASS. "lcl_event_handler DEFINITION
CLASS lcl_event_handler IMPLEMENTATION
CLASS lcl_event_handler IMPLEMENTATION.
METHOD on_close.
IF sy-dynnr = 2009.
LEAVE PROGRAM.
ELSE.
MOVE abap_false TO first.
PERFORM (piccallback) IN PROGRAM (sy-cprog).
ENDIF.
ENDMETHOD. "on_close
ENDCLASS. "lcl_event_handler IMPLEMENTATION
DATA: splash TYPE REF TO zcl_es_splash_screen.
*& Module STATUS_0806 OUTPUT
MODULE status_0806 OUTPUT.
IF first IS INITIAL.
first = abap_true.
SET TITLEBAR 'TITLE0806'.
CREATE OBJECT splash
EXPORTING
i_num_secs = pictimeout
i_url = graphic_url
i_width = picwidth
i_height = picheight.
SET HANDLER lcl_event_handler=>on_close FOR splash.
ENDIF.
ENDMODULE. " STATUS_0806 OUTPUT
*& Module STATUS_2009 OUTPUT
MODULE status_2009 OUTPUT.
IF first IS INITIAL.
first = abap_true.
SET TITLEBAR 'TITLE2009'.
CREATE OBJECT splash
EXPORTING
i_num_secs = pictimeout
i_url = graphic_url
i_width = picwidth
i_height = picheight.
SET HANDLER lcl_event_handler=>on_close FOR splash.
ENDIF.
ENDMODULE. " STATUS_2009 OUTPUT
*& Form getpicurl
FORM getpicurl.
OPEN DATASET g_name FOR INPUT IN BINARY MODE.
REFRESH graphic_table.
CLEAR g_filesz.
DO.
CLEAR graphic_line.
READ DATASET g_name INTO graphic_line ACTUAL LENGTH g_linesz.
ADD g_linesz TO g_filesz.
APPEND graphic_line TO graphic_table.
IF sy-subrc <> 0.
EXIT.
ENDIF.
ENDDO.
CLOSE DATASET g_name.
CLEAR graphic_url.
CALL FUNCTION 'DP_CREATE_URL'
EXPORTING
type = 'IMAGE'
subtype = 'GIF'
TABLES
data = graphic_table
CHANGING
url = graphic_url
EXCEPTIONS
dp_invalid_parameter = 1
dp_error_put_table = 2
dp_error_general = 3
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.
EXIT.
ENDIF.
ENDFORM. "getpicurl
Extracted by Direct Download Enterprise version 1.2 - E.G.Mellodew. 1998-2004 UK. -
Hi ,
I am working with a scenerio where i have 2 diff system to send the data depending upong the sending payload data.
I am using ABAP mapping where i am able to send accros the data, below is my code
METHOD IF_MAPPING~EXECUTE.
BREAK-POINT.
* initialize iXML
TYPE-POOLS: IXML.
CLASS CL_IXML DEFINITION LOAD.
DATA: L_IXML TYPE REF TO IF_IXML.
*creating the Interface by calling the create method in class C_IXML
CALL METHOD CL_IXML=>CREATE
EXPORTING
TYPE = 0
RECEIVING
RVAL = L_IXML.
create stream factory
DATA: STREAMFACTORY TYPE REF TO IF_IXML_STREAM_FACTORY.
CALL METHOD L_IXML->CREATE_STREAM_FACTORY
RECEIVING
RVAL = STREAMFACTORY.
create input stream
DATA: ISTREAM TYPE REF TO IF_IXML_ISTREAM.
CALL METHOD STREAMFACTORY->CREATE_ISTREAM_XSTRING
EXPORTING
STRING = SOURCE
RECEIVING
RVAL = ISTREAM.
*This iXML factory can create an empty XML document object named IDOCUMENT.
initialize input document
DATA: IDOCUMENT TYPE REF TO IF_IXML_DOCUMENT.
CALL METHOD L_IXML->CREATE_DOCUMENT
RECEIVING
RVAL = IDOCUMENT.
parse input document
DATA: IPARSER TYPE REF TO IF_IXML_PARSER.
CALL METHOD L_IXML->CREATE_PARSER
EXPORTING
DOCUMENT = IDOCUMENT
ISTREAM = ISTREAM
STREAM_FACTORY = STREAMFACTORY
RECEIVING
RVAL = IPARSER.
IPARSER->PARSE( ).
DATA: EL_ELEMENT TYPE REF TO IF_IXML_ELEMENT,
VALUE TYPE STRING.
DATA: ROOT TYPE REF TO IF_IXML_ELEMENT.
get message content of tag
DATA: INCODE TYPE REF TO IF_IXML_NODE_COLLECTION,
INCODE1 TYPE REF TO IF_IXML_NODE_COLLECTION,
INCODE2 TYPE REF TO IF_IXML_NODE_COLLECTION,
INCODE0 TYPE REF TO IF_IXML_NODE_COLLECTION.
CALL METHOD IDOCUMENT->GET_ELEMENTS_BY_TAG_NAME
EXPORTING
DEPTH = 0
NAME = 'MANDT'
NAMESPACE = 'urn:sap-com:document:sap:rfc:functions'
RECEIVING
RVAL = INCODE0 .
CALL METHOD IDOCUMENT->GET_ELEMENTS_BY_TAG_NAME
EXPORTING
DEPTH = 0
NAME = 'EMPNO'
NAMESPACE = 'urn:sap-com:document:sap:rfc:functions'
RECEIVING
RVAL = INCODE.
CALL METHOD IDOCUMENT->GET_ELEMENTS_BY_TAG_NAME
EXPORTING
DEPTH = 0
NAME = 'EMPNAME'
NAMESPACE = 'urn:sap-com:document:sap:rfc:functions'
RECEIVING
RVAL = INCODE1.
CALL METHOD IDOCUMENT->GET_ELEMENTS_BY_TAG_NAME
EXPORTING
DEPTH = 0
NAME = 'DEPARTMENTNAME'
NAMESPACE = 'urn:sap-com:document:sap:rfc:functions'
RECEIVING
RVAL = INCODE2.
DATA: URI TYPE STRING.
URI = 'urn:sap-com:document:sap:rfc:functions'.
* build up output document =============================================
create output document
DATA: ODOCUMENT TYPE REF TO IF_IXML_DOCUMENT.
CALL METHOD L_IXML->CREATE_DOCUMENT
RECEIVING
RVAL = ODOCUMENT.
DATA: RET_VALUE TYPE I.
**At this point you can add the nodes (elements, attributes) into the document. First you have to declare the root element node.
DATA: L_ELEMENT_ROOT TYPE REF TO IF_IXML_ELEMENT.
DATA: NODE_LIST_COLLECTION TYPE REF TO IF_IXML_NODE_COLLECTION.
add node to the output document
DATA: OUTCODE0 TYPE REF TO IF_IXML_NODE.
DATA: OUTCODE TYPE REF TO IF_IXML_NODE.
DATA: OUTCODE1 TYPE REF TO IF_IXML_NODE.
DATA: OUTCODE2 TYPE REF TO IF_IXML_NODE.
DATA: INDEX1 TYPE SY-INDEX.
DATA: INDEX TYPE SY-INDEX.
DATA IRC TYPE I.
TYPES: BEGIN OF TY_IMPORT,
MANDT TYPE MANDT,
EMPNO TYPE STRING,
EMPNAME TYPE STRING,
DEPARTMENTNAME TYPE STRING,
END OF TY_IMPORT.
DATA: IT_IMPORT TYPE STANDARD TABLE OF TY_IMPORT.
DATA: WA_IMPORT TYPE TY_IMPORT.
CALL METHOD IDOCUMENT->GET_ELEMENTS_BY_TAG_NAME
EXPORTING
DEPTH = 0
NAME = 'MANDT'
NAMESPACE = ''
RECEIVING
RVAL = NODE_LIST_COLLECTION.
DATA: LENGTH TYPE I.
CALL METHOD NODE_LIST_COLLECTION->GET_LENGTH
RECEIVING
RVAL = LENGTH.
WHILE INDEX < LENGTH.
CALL METHOD IDOCUMENT->FIND_FROM_NAME
EXPORTING
DEPTH = index
NAME = 'EMPNO'
NAMESPACE = ''
RECEIVING
RVAL = EL_ELEMENT .
CALL METHOD INCODE0->GET_ITEM
EXPORTING
INDEX = INDEX
RECEIVING
RVAL = OUTCODE0.
EL_ELEMENT = IDOCUMENT->FIND_FROM_NAME( 'MANDT' ).
VALUE = OUTCODE0->GET_VALUE( ).
WA_IMPORT-MANDT = VALUE.
CLEAR: VALUE.
CALL METHOD INCODE->GET_ITEM
EXPORTING
INDEX = INDEX
RECEIVING
RVAL = OUTCODE.
EL_ELEMENT = IDOCUMENT->FIND_FROM_NAME( 'EMPNO' ).
VALUE = OUTCODE->GET_VALUE( ).
WA_IMPORT-EMPNO = VALUE.
CLEAR: VALUE.
CALL METHOD INCODE1->GET_ITEM
EXPORTING
INDEX = INDEX
RECEIVING
RVAL = OUTCODE1.
EL_ELEMENT = IDOCUMENT->FIND_FROM_NAME( 'EMPNAME' ).
VALUE = OUTCODE1->GET_VALUE( ).
WA_IMPORT-EMPNAME = VALUE.
CLEAR: VALUE.
CALL METHOD INCODE2->GET_ITEM
EXPORTING
INDEX = INDEX
RECEIVING
RVAL = OUTCODE2.
EL_ELEMENT = IDOCUMENT->FIND_FROM_NAME( 'DEPARTMENTNAME' ).
VALUE = OUTCODE2->GET_VALUE( ).
WA_IMPORT-DEPARTMENTNAME = VALUE.
CLEAR: VALUE.
APPEND WA_IMPORT TO IT_IMPORT.
CLEAR WA_IMPORT.
ADD 1 TO INDEX.
ENDWHILE.
TYPES: BEGIN OF TY_DATA,
DATA TYPE STRING,
END OF TY_DATA.
DATA: IT_DATA TYPE STANDARD TABLE OF TY_DATA,
WA_DATA TYPE TY_DATA.
DATA: SSSS TYPE STRING.
IF SOURCE IS NOT INITIAL.
CALL FUNCTION 'ECATT_CONV_XSTRING_TO_STRING'
EXPORTING
IM_XSTRING = SOURCE
IM_ENCODING = 'UTF-8'
IMPORTING
EX_STRING = SSSS.
ENDIF.
render document ======================================================
create output stream
DATA: XX TYPE STRING.
DATA: XX_1 TYPE STRING.
DATA: XX1 TYPE STRING.
DATA: XX2 TYPE STRING.
DATA: T1 TYPE STRING VALUE ''.
DATA: T TYPE STRING VALUE '<DATA><MANDT>'.
LOOP AT IT_IMPORT INTO WA_IMPORT.
CLEAR: XX1.
IF SY-TABIX = 1.
IF WA_IMPORT-EMPNO = '000000000022'.
CONCATENATE T WA_IMPORT-MANDT '</MANDT>'
'<EMPNO>' WA_IMPORT-EMPNO '</EMPNO>'
'<EMPNAME>' WA_IMPORT-EMPNAME '</EMPNAME><DEPARTMENTNAME>'
WA_IMPORT-DEPARTMENTNAME '</DEPARTMENTNAME></DATA>'
INTO XX1 .
IF SY-TABIX = 1.
ELSE.
CONCATENATE XX1 XX_1 INTO XX_1.
ENDIF.
ELSE.
CONCATENATE T WA_IMPORT-MANDT '</MANDT>'
'<EMPNO>' WA_IMPORT-EMPNO '</EMPNO>'
'<EMPNAME>' WA_IMPORT-EMPNAME '</EMPNAME><DEPARTMENTNAME>'
WA_IMPORT-DEPARTMENTNAME '</DEPARTMENTNAME></DATA>' INTO XX1 .
CONCATENATE XX1 XX INTO XX.
ENDIF.
ENDIF.
AT LAST.
CONCATENATE '<?xml version="1.0" encoding="UTF-8"?><ns1:ZTEST1 xmlns:ns1="urn:sap-com:document:sap:rfc:functions">'
XX_1 INTO XX_1.
CONCATENATE XX_1 '</ns1:ZTEST1>' INTO XX_1.
CALL FUNCTION 'ECATT_CONV_STRING_TO_XSTRING'
EXPORTING
IM_STRING = XX_1
IM_ENCODING = 'UTF-8'
IMPORTING
EX_XSTRING = RESULT.
EX_LEN = .
CONCATENATE '<?xml version="1.0" encoding="UTF-8"?><ns1:ZTEST1 xmlns:ns1="urn:sap-com:document:sap:rfc:functions">'
XX INTO XX.
CONCATENATE XX '</ns1:ZTEST1>' INTO XX.
CONCATENATE XX_1 XX INTO XX.
CALL FUNCTION 'ECATT_CONV_STRING_TO_XSTRING'
EXPORTING
IM_STRING = XX
IM_ENCODING = 'UTF-8'
IMPORTING
EX_XSTRING = RESULT
EX_LEN =
ENDAT.
ENDLOOP.
ENDMETHOD.
here above result parameter will have the target data..But it sends the that same data to both the system , If i will be able to recursively call this method, then i be able to solve the prob easily as first time result will send one data to one system and next time to other system,Hi munish,
I dont think there is any thing wrong with the ABAP code.
Try testing your ABAP mapping using transaction code SXI_MAPPING_TEST in XI.
Enter the Details asked and then enter TEst data in XML format..
Also, you can make use of the Trace element to find out if there is any thing wrong with the code.
Include the following Statements after every step in the ABAP code to ensure that the particular step is completed successfully.
data : l_trace type string.
concatenate l_trace '<Message you want to display>' into l_trace.
trace->trace(level = '<level>'
message =l_trace).
The trace is visible in SXMB_MONI (click on "Trace" in the left pane to view).
using this you will get to know i the code is functioning as desired.
Regards,
Yashaswee. -
Handling unexpected errors/situations in an ABAP program
Hi,
if i come across a situation where i need to handle a runtime error unexpectedly what should be my approach.
for eg. if i build a dynamic select statement and if my logic goes wrong the program flow should proceed normally as if nothing has happened 'with out giving me a short dump' . what if im not sure about the type of error thats going to show up, is there any way?
your help will be appreciated.
Regards,
ravi.Hi Ravi
Not all exceptions can be overridden. FYI, Below are a list of exceptions that can be handled:
Alphabetical Overview of Catchable Runtime Errors
Below you find an alphabetical list of all catchable runtime errors. For each runtime error, the predefined exception class assigned is specified which is used to handle the respective runtime error as of Release 6.10. If an exception class is assigned to more than one catchable runtime error, it may contain as many message texts as required which you can find in the Class Builder on the Texts tab.
Almost all of the runtime errors listed here are combined together in exception groups. These exception groups are also assigned those ABAP keywords at which the runtime errors contained can be caught.
ADDF_INT_OVERFLOW
Overflow at addition, type I ( ADD ... UNTIL / ADD ... FROM ... TO)
Exception class: CX_SY_ARITHMETIC_OVERFLOW
ASSIGN_CASTING_ILLEGAL_CAST
The components of the source field type and the target type which are strings, tables, or references do not have exactly the same offset and type.
Exception class: CX_SY_ASSIGN_CAST_ILLEGAL_CAST
ASSIGN_CASTING_UNKNOWN_TYPE
The type specified at runtime is unknown.
Exception class: CX_SY_ASSIGN_CAST_UNKNOWN_TYPE
ASSIGN_FIELD_NOT_IN_RANGE
The field is not within the RANGE specified.
Exception class: CX_SY_ASSIGN_OUT_OF_RANGE
BCD_FIELD_OVERFLOW
Overflow at conversion / arithmetic operation (type P, with specified length)
Exception class: CX_SY_CONVERSION_OVERFLOW
BCD_OVERFLOW
Overflow at conversion / arithmetic operation (type P)
Exception class: CX_SY_ARITHMETIC_OVERFLOW
BCD_ZERODIVIDE
Division by 0 (type P)
Exception class: CX_SY_ZERODIVIDE
COMPUTE_ACOS_DOMAIN
Invalid call of the mathematical function ACOS
Exception class: CX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_ASIN_DOMAIN
Invalid call of the mathematical function ASIN
Exception class: CX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_ATAN_DOMAIN
Invalid call of the mathematical function ATAN
Exception class: CX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_BCD_OVERFLOW
Overflow at arithmetic operation (all operands of type P)
Exception class: CX_SY_ARITHMETIC_OVERFLOW
COMPUTE_COSH_DOMAIN
Invalid call of the mathematical function COSH
Exception class: CX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_COSH_OVERFLOW
Overflow at mathematical function COSH
Exception class: CX_SY_ARITHMETIC_OVERFLOW
COMPUTE_COS_DOMAIN
Invalid call of the mathematical function COS
Exception class: CX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_COS_LOSS
Inaccurate result of function COS
Exception class: CX_SY_PRECISION_LOSS
COMPUTE_EXP_DOMAIN
Invalid call of the mathematical function EXP
Exception class: CX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_EXP_RANGE
Overflow or underflow at mathematical function EXP
Exception class: CX_SY_ARITHMETIC_OVERFLOW
COMPUTE_FLOAT_DIV_OVERFLOW
Overflow at division (type F)
Exception class: CX_SY_ARITHMETIC_OVERFLOW
COMPUTE_FLOAT_MINUS_OVERFLOW
Overflow at subtraction (type F)
Exception class: CX_SY_ARITHMETIC_OVERFLOW
COMPUTE_FLOAT_PLUS_OVERFLOW
Overflow at addition (type F)
Exception class: CX_SY_ARITHMETIC_OVERFLOW
COMPUTE_FLOAT_TIMES_OVERFLOW
Overflow at multiplication (type F)
Exception class: CX_SY_ARITHMETIC_OVERFLOW
COMPUTE_FLOAT_ZERODIVIDE
Division by 0 (type F)
Exception class: CX_SY_ZERODIVIDE
COMPUTE_INT_ABS_OVERFLOW
Integer overflow while calculating the absolute value
Exception class: CX_SY_ARITHMETIC_OVERFLOW
COMPUTE_INT_DIV_OVERFLOW
Integer overflow at division
Exception class: CX_SY_ARITHMETIC_OVERFLOW
COMPUTE_INT_MINUS_OVERFLOW
Integer overflow at subtraction
Exception class: CX_SY_ARITHMETIC_OVERFLOW
COMPUTE_INT_PLUS_OVERFLOW
Integer overflow at addition
Exception class: CX_SY_ARITHMETIC_OVERFLOW
COMPUTE_INT_TIMES_OVERFLOW
Integer overflow at multiplication
Exception class: CX_SY_ARITHMETIC_OVERFLOW
COMPUTE_INT_ZERODIVIDE
Division by 0 (type I)
Exception class: CX_SY_ZERODIVIDE
COMPUTE_LOG10_ERROR
Invalid call of the mathematical function LOG10
Exception classes: CX_SY_ARITHMETIC_OVERFLOW, CX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_LOG_ERROR
Invalid call of the mathematical function LOG
Exception classes: CX_SY_ARITHMETIC_OVERFLOW, CX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_MATH_DOMAIN
Invalid call of a mathematical function
Exception class: CX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_MATH_ERROR
Error performing a mathematical function
Exception class: None since this runtime error can no longer be caught
COMPUTE_MATH_LOSS
Inaccurate result of a mathematical function
Exception class: CX_SY_PRECISION_LOSS
COMPUTE_MATH_OVERFLOW
Overflow at a mathematical function
Exception class: CX_SY_ARITHMETIC_OVERFLOW
COMPUTE_MATH_UNDERFLOW
Underflow at a mathematical function
Exception class: None since exception no longer occurs
COMPUTE_POW_DOMAIN
Invalid argument when using powers
Exception class: CX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_POW_RANGE
Overflow or underflow when using powers
Exception class: CX_SY_ARITHMETIC_OVERFLOW
COMPUTE_SINH_DOMAIN
Invalid call of the mathematical function SINH
Exception class: CX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_SINH_OVERFLOW
Overflow at mathematical function SINH
Exception class: CX_SY_ARITHMETIC_OVERFLOW
COMPUTE_SIN_DOMAIN
Invalid call of the mathematical function SIN
Exception class: CX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_SIN_LOSS
Inaccurate result of the function SIN
Exception class: CX_SY_PRECISION_LOSS
COMPUTE_SQRT_DOMAIN
Invalid call of the mathematical function SQRT
Exception class: CX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_TANH_DOMAIN
Invalid call of the mathematical function TANH
Exception class: CX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_TAN_DOMAIN
Invalid call of the mathematical function TAN
Exception class: CX_SY_ARG_OUT_OF_DOMAIN
COMPUTE_TAN_LOSS
Inaccurate result of the function TAN
Exception class: CX_SY_PRECISION_LOSS
CONNE_IMPORT_WRONG_COMP_DECS
Import error; a component of a structured type in the dataset has wrong decimal places
Exception class: CX_SY_IMPORT_MISMATCH_ERROR
CONNE_IMPORT_WRONG_COMP_LENG
Import error; a component of a structured type in the dataset has the wrong length
Exception class: CX_SY_IMPORT_MISMATCH_ERROR
CONNE_IMPORT_WRONG_COMP_TYPE
Import error; a component of a structured type in the dataset has the wrong type
Exception class: CX_SY_IMPORT_MISMATCH_ERROR
CONNE_IMPORT_WRONG_FIELD_DECS
Import error; a field in the dataset has wrong decimal places
Exception class: CX_SY_IMPORT_MISMATCH_ERROR
CONNE_IMPORT_WRONG_FIELD_LENG
Import error; a field in the dataset has the wrong length
Exception class: CX_SY_IMPORT_MISMATCH_ERROR
CONNE_IMPORT_WRONG_FIELD_TYPE
Import error; a field in the dataset has the wrong type
Exception class: CX_SY_IMPORT_MISMATCH_ERROR
CONNE_IMPORT_WRONG_OBJECT_TYPE
Import error; type conflict between simple and structured data types
Exception class: CX_SY_IMPORT_MISMATCH_ERROR
CONNE_IMPORT_WRONG_STRUCTURE
Import error; type conflict between structured objects
Exception class: CX_SY_IMPORT_MISMATCH_ERROR
CONVT_CODEPAGE
Character set conversion not possible for one or more characters
Exception class: CX_SY_CONVERSION_CODEPAGE
CONVT_CODEPAGE_INIT
Conversion of texts between code pages not supported
Exception class: CX_SY_CODEPAGE_CONVERTER_INIT
CONVT_NO_NUMBER
Value to be converted cannot be interpreted as a number
Exception class: CX_SY_CONVERSION_NO_NUMBER
CONVT_OVERFLOW
Overflow at conversion (all types, not type P)
Exception class: CX_SY_CONVERSION_OVERFLOW
CREATE_DATA_ILLEGAL_DECIMALS
Invalid value for the addition DECIMALS
Exception class: CX_SY_CREATE_DATA_ERROR
CREATE_DATA_ILLEGAL_INIT_SIZE
Invalid value for the addition INITIAL SIZE
Exception class: CX_SY_CREATE_DATA_ERROR
CREATE_DATA_ILLEGAL_LENGTH
Invalid value for the addition LENGTH
Exception class: CX_SY_CREATE_DATA_ERROR
CREATE_DATA_LEN_NOT_ALLOWED
The addition LENGTH was used for a type other than C, N, X, or P
Exception class: CX_SY_CREATE_DATA_ERROR
CREATE_DATA_NOT_ALLOWED_TYPE
The type specified dynamically in the addition TYPE is not typed completely.
Exception class: CX_SY_CREATE_DATA_ERROR
CREATE_DATA_UNKNOWN_TYPE
The type specified in the addition TYPE is unknown.
Exception class: CX_SY_CREATE_DATA_ERROR
CREATE_OBJECT_CLASS_ABSTRACT
You attempted to instantiate an abstract class.
Exception class: CX_SY_CREATE_OBJECT_ERROR
CREATE_OBJECT_CLASS_NOT_FOUND
The class specified in the dynamic CREATE OBJECT was not found.
Exception class: CX_SY_CREATE_OBJECT_ERROR
CREATE_OBJECT_CREATE_PRIVATE
You attempted to create an object of a class defined as 'CREATE PRIVATE'.
Exception class: CX_SY_CREATE_OBJECT_ERROR
CREATE_OBJECT_CREATE_PROTECTED
You attempted to create an object of a class defined as 'CREATE PROTECTED'.
Exception class: CX_SY_CREATE_OBJECT_ERROR
DATA_LENGTH_NEGATIVE
Invalid subfield access: Length negative
Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
DATA_LENGTH_0
Invalid subfield access: Length 0
Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
DATA_LENGTH_TOO_LARGE
Invalid subfield access: Length too large
Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
DATA_OFFSET_NEGATIVE
Invalid subfield access: Offset negative
Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
DATA_OFFSET_LENGTH_TOO_LARGE
Invalid subfield access: Offset + length too large
Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
DATA_OFFSET_LENGTH_NOT_ALLOWED
Invalid subfield access: Inadequate type
Exception class: CX_SY_OFFSET_NOT_ALLOWED
DATASET_CANT_CLOSE
File could not be closed; there might be no more space in the file system.
Exception class: CX_SY_FILE_CLOSE
DATASET_CANT_OPEN
File cannot be opened
Exception class: CX_SY_FILE_OPEN
DATASET_NO_PIPE
OPEN DATASET with the addition FILTER is not supported on the current operating system.
Exception class: CX_SY_PIPES_NOT_SUPPORTED
DATASET_NO_POSITION
Access to current read/write position of file not possible
Exception class: CX_SY_FILE_POSITION
DATASET_NOT_OPEN
File not open
Exception class: CX_SY_FILE_OPEN_MODE
DATASET_OFFSET_TO_LARGE
Offset specified exceeds the system limit
Exception class: CX_SY_FILE_POSITION
DATASET_PIPE_CLOSED
Pipe for file closed
Exception class: CX_SY_PIPE_REOPEN
DATASET_READ_ERROR
Error reading a file
Exception class: CX_SY_FILE_IO
DATASET_READ_ONLY
File opened in read-only mode
Exception class: CX_SY_FILE_OPEN_MODE
DATASET_SEEK_ERROR
Error positioning in a file
Exception class: CX_SY_FILE_POSITION
DATASET_TOO_MANY_FILES
Maximum number of open files exceeded
Exception class: CX_SY_TOO_MANY_FILES
DATASET_WRITE_ERROR
Error writing a file
Exception class: CX_SY_FILE_IO
DYN_CALL_METH_CLASSCONSTRUCTOR
You attempted to call the class constructor.
Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
DYN_CALL_METH_CLASS_ABSTRACT
You attempted to call an abstract method.
Exception class: CX_SY_DYN_CALL_ILLEGAL_CLASS
DYN_CALL_METH_CLASS_NOT_FOUND
You attempted to call a method of a class that does not exist.
Exception class: CX_SY_DYN_CALL_ILLEGAL_CLASS
DYN_CALL_METH_CONSTRUCTOR
You attempted to call the instance constructor.
Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
DYN_CALL_METH_EXCP_NOT_FOUND
You attempted to catch an unknown exception.
Exception class: CX_SY_DYN_CALL_EXCP_NOT_FOUND
DYN_CALL_METH_NOT_FOUND
You attempted to call an unknown method.
Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
DYN_CALL_METH_NOT_IMPLEMENTED
You attempted to call a method not yet implemented.
Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
DYN_CALL_METH_NO_CLASS_METHOD
You attempted to call an instance method through a class.
Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
DYN_CALL_METH_PARAM_KIND
You attempted to pass a parameter with a wrong parameter type.
Exception class: CX_SY_DYN_CALL_ILLEGAL_TYPE
DYN_CALL_METH_PARAM_LITL_MOVE
You attempted to pass a constant actual parameter to a formal EXPORTING, CHANGING, or RETURNING parameter.
Exception class: CX_SY_DYN_CALL_ILLEGAL_TYPE
DYN_CALL_METH_PARAM_MISSING
A required parameter was not filled.
Exception class: CX_SY_DYN_CALL_PARAM_MISSING
DYN_CALL_METH_PARAM_NOT_FOUND
You attempted to pass an unknown parameter.
Exception class: CX_SY_DYN_CALL_PARAM_NOT_FOUND
DYN_CALL_METH_PARAM_TAB_TYPE
You attempted to pass a parameter with a wrong table type.
Exception class: CX_SY_DYN_CALL_ILLEGAL_TYPE
DYN_CALL_METH_PARAM_TYPE
You attempted to pass a parameter with a wrong type.
Exception class: CX_SY_DYN_CALL_ILLEGAL_TYPE
DYN_CALL_METH_PARREF_INITIAL
An initial data reference was passed for a required parameter.
Exception class: CX_SY_DYN_CALL_PARAM_MISSING
DYN_CALL_METH_PRIVATE
You attempted to call a private method outside.
Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
DYN_CALL_METH_PROTECTED
You attempted to call a protected method outside.
Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
DYN_CALL_METH_REF_IS_INITIAL
You attempted to call a method to an initial reference.
Exception class: CX_SY_REF_IS_INITIAL
EXPORT_BUFFER_NO_MEMORY
The EXPORT data cluster is too large for the application buffer.
Exception class: CX_SY_EXPORT_BUFFER_NO_MEMORY
EXPORT_DATASET_CANNOT_OPEN
The IMPORT/EXPORT statement was unable to open the file.
Exception class: CX_SY_FILE_OPEN
EXPORT_DATASET_WRITE_ERROR
The Export statement could not write the file.
Exception class: CX_SY_FILE_IO
GENERATE_SUBPOOL_DIR_FULL
The system is unable to generate another temporary subroutine pool.
Exception class: CX_SY_GENERATE_SUBPOOL_FULL
IMPORT_ALIGNMENT_MISMATCH
Import error; identical sequence of components but with type conflict or with different integration into structured data types
Exception class: CX_SY_IMPORT_MISMATCH_ERROR
IMPORT_TYPE_MISMATCH
Import error; only at IMPORT...FROM MEMORY | FROM SHARED BUFFER...
Exception class: None since this runtime error can not longer be caught
IMPORT_WRONG_END_POS
Import error; dataset has a different length.
Exception class: CX_SY_IMPORT_MISMATCH_ERROR
MOVE_CAST_ERROR
Type conflict assigning between object and/or interface references (only MOVE...?TO... or operator ?=)
Exception class: CX_SY_MOVE_CAST_ERROR
OPEN_DATASET_NO_AUTHORITY
No authorization to access a file
Exception class: CX_SY_FILE_AUTHORITY
OPEN_PIPE_NO_AUTHORITY
No authorization to access a file (OPEN DATASET...FILTER...)
Exception class: CX_SY_FILE_AUTHORITY
PERFORM_PROGRAM_NAME_TOO_LONG
Invalid program name in the PERFORM statement
Exception class: CX_SY_PROGRAM_NOT_FOUND
REFI_WRONG_SECTION
Wrong offset/length specification in the REPLACE statement
Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
REPLACE_INFINITE_LOOP
SECTION of length 0 in the REPLACE statement
Exception class: CX_SY_REPLACE_INFINITE_LOOP
RMC_COMMUNICATION_FAILURE
Communication error during Remote Method Call
Exception class: CX_SY_RMC_COMM_FAILURE
RMC_INVALID_STATUS
State error during Remote Method Call
Exception class: CX_SY_RMC_INVALID_STATUS
RMC_SYSTEM_FAILURE
System error during Remote Method Call
Exception class: CX_SY_RMC_SYSTEM_FAILURE
STRING_LENGTH_NEGATIVE
Invalid access with negative length to a string
Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
STRING_LENGTH_TOO_LARGE
Invalid access to a string (length too large)
Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
STRING_OFFSET_NEGATIVE
Invalid access with negative offset to a string
Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
STRING_OFFSET_TOO_LARGE
Invalid access to a string (offset too large)
Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
STRING_OFFSET_LENGTH_TOO_LARGE
Invalid access to a string (offset + length too large)
Exception class: CX_SY_LOCALIZATION_ERROR
TEXTENV_CODEPAGE_NOT_ALLOWED
Character set not released in the system (SET LOCALE...)
TEXTENV_INVALID
Error setting the text environment (SET LOCALE...)
Exception class: CX_SY_LOCALIZATION_ERROR -
How to implement Strategy pattern in ABAP Objects?
Hello,
I have a problem where I need to implement different algorithms, depending on the type of input. Example: I have to calculate a Present Value, sometimes with payments in advance, sometimes payment in arrear.
From documentation and to enhance my ABAP Objects skills, I would like to implement the strategy pattern. It sounds the right solution for the problem.
Hence I need some help in implementing this pattern in OO. I have some basic OO skills, but still learning.
Has somebody already implemented this pattern in ABAP OO and can give me some input. Or is there any documentation how to implement it?
Thanks and regards,
TapioKeshav has already outlined required logic, so let me fulfill his answer with a snippet
An Interface
INTERFACE lif_payment.
METHODS pay CHANGING c_val TYPE p.
ENDINTERFACE.
Payment implementations
CLASS lcl_payment_1 DEFINITION.
PUBLIC SECTION.
INTERFACES lif_payment.
ALIASES pay for lif_payment~pay.
ENDCLASS.
CLASS lcl_payment_2 DEFINITION.
PUBLIC SECTION.
INTERFACES lif_payment.
ALIASES pay for lif_payment~pay.
ENDCLASS.
CLASS lcl_payment_1 IMPLEMENTATION.
METHOD pay.
"do something with c_val i.e.
c_val = c_val - 10.
ENDMETHOD.
ENDCLASS.
CLASS lcl_payment_2 IMPLEMENTATION.
METHOD pay.
"do something else with c_val i.e.
c_val = c_val + 10.
ENDMETHOD.
Main class which uses strategy pattern
CLASS lcl_main DEFINITION.
PUBLIC SECTION.
"during main object creation you pass which payment you want to use for this object
METHODS constructor IMPORTING ir_payment TYPE REF TO lif_payment.
"later on you can change this dynamicaly
METHODS set_payment IMPORTING ir_payment TYPE REF TO lif_payment.
METHODS show_payment_val.
METHODS pay.
PRIVATE SECTION.
DATA payment_value TYPE p.
"reference to your interface whcih you will be working with
"polimorphically
DATA mr_payment TYPE REF TO lif_payment.
ENDCLASS.
CLASS lcl_main IMPLEMENTATION.
METHOD constructor.
IF ir_payment IS BOUND.
me->mr_payment = ir_payment.
ENDIF.
ENDMETHOD.
METHOD set_payment.
IF ir_payment IS BOUND.
me->mr_payment = ir_payment.
ENDIF.
ENDMETHOD.
METHOD show_payment_val.
WRITE /: 'Payment value is now ', me->payment_value.
ENDMETHOD.
"hide fact that you are using composition to access pay method
METHOD pay.
mr_payment->pay( CHANGING c_val = payment_value ).
ENDMETHOD. ENDCLASS.
Client application
PARAMETERS pa_pay TYPE c. "1 - first payment, 2 - second
DATA gr_main TYPE REF TO lcl_main.
DATA gr_payment TYPE REF TO lif_payment.
START-OF-SELECTION.
"client application (which uses stategy pattern)
CASE pa_pay.
WHEN 1.
"create first type of payment
CREATE OBJECT gr_payment TYPE lcl_payment_1.
WHEN 2.
"create second type of payment
CREATE OBJECT gr_payment TYPE lcl_payment_2.
ENDCASE.
"pass payment type to main object
CREATE OBJECT gr_main
EXPORTING
ir_payment = gr_payment.
gr_main->show_payment_val( ).
"now client doesn't know which object it is working with
gr_main->pay( ).
gr_main->show_payment_val( ).
"you can also use set_payment method to set payment type dynamically
"client would see no change
if pa_pay = 1.
"now create different payment to set it dynamically
CREATE OBJECT gr_payment TYPE lcl_payment_2.
gr_main->set_payment( gr_payment ).
gr_main->pay( ).
gr_main->show_payment_val( ).
endif.
Regads
Marcin -
ABAP OO: traffic lights in ALV
Hello,
Instead of going the easy way, I decided to practise a bit of ABAP OO (which I am still quite unfamiliar with), and do ALV list to my new report by using CL_SALV_TABLE class.
This seems to be quite clear if I just follow Rich's great instructions:
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/eac1fa0b-0e01-0010-0990-8530de4908a6
The only thing that is not so clear is that how can I add traffic (or led) lights to my ALV list when using class CL_SALV_TABLE. Does someone has an example?
Another bonus question: Do I always have to define the field catalog (with CL_SALV_TABLE) when using internal table of my own type?Hello
Have a look at the sample report
SALV_DEMO_TABLE_COLUMNS.Following is the in-line documentation of the report:
*& Report SALV_DEMO_TABLE_COLUMNS
report salv_demo_table_columns no standard page heading.
*... This report demonstrates the settings for the columns.
* The demonstration uses the new ALV API
* - cl_salv_table (Fullscreen Grid, Fullscreen List, Grid)
* - cl_salv_hierseq_table (hierseq. lists)
* If the table ALV_T_T2 is empty, please create data for the demo
* by running report BCALV_GENERATE_ALV_T_T2
* §1 select data into global output table
* §2 create ALV Table
* create instance of cl_salv_table for displaying a list of your
* output table
* §2.1 create a ALV List by setting the parameter LIST_DISPLAY of the
* constructor cl_salv_table to 'X'
* §2.2 create a ALV Fullscreen Grid by not setting the parameter
* LIST_DISPLAY of the constructor cl_salv_table to 'X'
* §2.3 create a Grid by creating a Dynpro with a container in it. In
* PBO check if the container has been instantiated. If the
* container has not yet been instantiated then this is the first
* call:
* (1) create the container
* (2) create an instance of cl_salv_table
* §3 Functions
* §3.1 activate ALV generic Functions
* §3.2 include own functions
* §4 Cell Types
* §4.1 Exception Column
* §4.2 Icon Column
* §4.3 Symbol Column
* §4.4 Checkbox Column
* §4.5 Hotspot Column
* §4.6 Button Column
* §4.7 Hyperlink Column
* §4.8 Dropdown Column
* §4.9 Tooltip Information for Exceptions, Icons and Symbols
* §5 Color
* §5.1 set the color of a complete column by calling the method
* set_color of cl_salv_column of the column
* §5.2 set the color of a complete row
* note: by setting the columnname information the same
* technique can be used for setting the color of cells
* (1) register the column in which the color information
* for the row is held
* (2) set the color information to the row in the output
* table
* note: do not fill the parameter FNAME for setting the
* color of the complete row
* fill the parameter FNAME for setting the color
* of a cell (Row and Column are definied)
* §6 Event Handler
* define a handler for the events of cl_salv_table
* §6.1 define a local class for handling events of cl_salv_table
* define methods for the events which are to be handled
* §6.2 implement the defined methods for handling the events of
* cl_salv_table
* §7 Events
* register to events of cl_salv_table
* §7.1 register to the event USER_COMMAND of cl_salv_table
* for receiving information when own functions has been selected
* §7.2 register to the event DOUBLE_CLICK of cl_salv table
* for receiving information when user has double clicked on a line
* §7.3 register to the event LINK_CLICK of cl_salv_table
* for receiving information when user has initiated a hotspot click
* §8 Display
* display the configurated ALV Table by calling the method
* display of cl_salv_table.
Regards
Uwe
Maybe you are looking for
-
Multiple sites and multiple domains
I have upgraded to iLife 08 and successfully created a website using a domain with GoDaddy. Everything works great. But now my daughter wants to create her own website (she is a .mac member). How do I create 2 different websites that each have their
-
How do I use tether with droid ultra, keep getting message to call verizon. Do Verizon charge or have to somehow change my account?
-
IPod Touch and 5G not recognized by WinXP Computers
I am not very good at troubleshooting iPods and I thought this would be the best place to find some help. Thank you in advance for any suggestions. The problem: I have an iPod Touch and iPod 5G that are not recognized by a Windows Computer. I have tr
-
Horizontal radiogroup with HTMLDB_ITEM.radiogroup
How can I render a horizontal radiogroup when I use HTMLDB_ITEM.radiogroup(1,rightid,'',description) in an SQL region ? Thanks Tobias
-
1 inch square screen HTML page while drilldown from BI to ERP
Hi, We are trying to publish BI reports in the Portal server as Iviews. As per the requirement we are drilling down to the ERP from the BI report using RRI. 1) We have an Iview in Controlling (Cost Center range: Transaction Drill down). 2) Once we dr