ABAP OO novice and scared!
Hi all,
we are in ECC6.0 and about to start implementing lots of HR workflows.
I am very comfortable using Object Types but I know that ABAP OO is the way to go from now on.
I am aware of Jocelyn Dart's blogs (thanks Jocelyn!) but I sense that I need much more than that to start the implementation. Any other ideas on how to get to know ABAP OO within the workflow world better? Which SAP out of the box workflows are delivered that are using ABAP OO?
For example, we will be building lots of workflows around Or Management (Create Org Unit Request, Create Position Request, etc) and I am really unsure if I should use ABAP OO or use and extend the Object Types delivered by SAP.
For Leave Request, I know I will be using CL_PT_REQ_HEADER, but for other workflows I am really not sure which path to take.
In your experience, for HR Workflows, what is worth doing? It is so easy to use BUS1065, EMPLOYEET; I can't see I strong reason to use ABAP OO in this case.
Much thanks and regards,
Cristiana
Hi Cristiana,
I say relax and go for it! OO is fun and it's a pleasure not to be working in the stone-age editor that BOR uses
There are a small number of OO-only workflow implementations out there, I have done one where the only Z-BOR object was a ZUSR01, simply because it really wasn't worth the effort just for a single 'emailaddress' attribute. The rest was completely class based. These days all new stuff I do is OO.
OO has an initial development overhead to create the objects but the end result is a lot more useful when you can share code/functionality with your development team. WF developers always tended to be a little isolated in their BOR world, making it seem a little like a 'black art'.
There are certain limitations in 6.20, but in ECC6 that is no more. A couple of very minor niggles remain but nothing major - stuff like being able to navigate into tables of BOR attributes on a class in a container view. Probably the biggest change is functional methods where you previously used virtual attributes. Oh, and one tip is that you can use a class which has a BOR object as an attribute. Have a look at the SAP help too at
<a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/47/058a422dfad665e10000000a155106/frameset.htm">http://help.sap.com/saphelp_nw2004s/helpdata/en/47/058a422dfad665e10000000a155106/frameset.htm</a>
That makes all the BOR stuff available in your class, but rather than go into major technical detail here I'd suggest posting new questions on individual issues.
Have fun,
Mike
PS. If you are going to ASUG/Sapphire in Atlanta there is a presentation on exactly that.
Similar Messages
-
Error 1003 occurred at ABAPI Dist Chg and Save VIs.vi
I used to be able to build executable file for my application. However when I upgrade to LV8 and try to build executable file, I got the following message.
Error 1003 occurred at ABAPI Dist Chg and Save VIs.vi -> ABAPI Dist Build LLB Image.vi -> ABAPI Copy Files and Apply Settings.vi -> EBEP_Invoke_Build_Engine.vi -> EBUIP_Build_Invoke.vi -> EBUIP_Build_Invoke.vi.ProxyCaller
Possible reason(s):
LabVIEW: The VI is not executable.
The vi is perfectly executable in LV enviroment.
Anyone know what's going on?
Thanks in advance!DGU,
Unfortunately this is a known bug in LabVIEW 8.0.1. Our R&D department is well aware of the issue and is currently working on the problem. In the mean time there are some possible work arounds
Check the "Enable debugging"option in the "Advanced Category" of the application executable properties.
Disable the "Remove Panel" option for all SubVIs containing Shared Variables in the build
Try Unchecking the "Disconnect type definitions and remove unused polymorphic VI instances" options also in the Advanced category of the executable properties as shown in the attached figure.
Move shared variables to the top level VIs and pass the data through the SubVI connector
Downgrade to LabVIEW 8.0.
I apologize for the problem. Please let us know if these suggestions help out. Thanks!
Best Regards,
Chris C
Applications Engineering
National Instruments
Chris Cilino
National Instruments
LabVIEW Product Marketing Manager
Certified LabVIEW Architect
Attachments:
1.gif 1 KB -
ABAP dispatcher, JControl and ICM
As we know,
If an ABAP instance is started with an additional Java instance, the ABAP dispatcher uses a signal to run a start command on the Startup and Control Framework, then JControl is started, and JLaunch is started by JControl.
In ABAP + Java stacks system, we start and stop Java instance with transaction SMICM.
In ABAP + Java stacks system, ICM is started and monitored by the ABAP dispatcher.
Until now, I am confused about their relationship. Please advise on following questions.
Q1: When ABAP dispatcher sends a signal to start/stop JControl, is there any relationship with ICM? I mean whether ICM takes a hand in?
Q2: How does ABAP dispatcher start and monitor ICM?
Thanks so much.
JamesHi
When ABAP dispatcher sends a signal to start/stop JControl, is there any relationship with ICM? I mean whether ICM takes a hand in?
No It would not as ICM is only responsible for Internet communications. It doesnot take care of the internal communications.
The communication between the ABAP and J2EE is due to JCO rfc that is present between them.
Please read these links: These would clear some confusions:
http://help.sap.com/saphelp_nw2004s/helpdata/en/84/54953fc405330ee10000000a114084/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/20/a2813a34872769e10000000a114084/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/20/a2813a34872769e10000000a114084/frameset.htm -
I am an iPad novice and whilst I have managed to set up my hotmail account on the iPad - I ham having trouble with my business email (I can receive emails, but cannot send and it says' email rejected by server'
That sounds like a settings issue to me. Check with your IT depatment to make sure you have it configured properly.
-
ABAP+Java Kernel and only Java Kernel
Hi Friends,
Is there any difference in ABAP+Java Kernel and only Java Kernel?
Can we use the kernel for above both from the same location as below?
1#
Support Packages and Patches> Additional Components> SAP Kernel> SAP KERNEL 64-BIT UNICODE> SAP KERNEL 6.40 64-BIT UNICODE
Following Files
DB Dependent - ORACLE
SAPEXEDB_175-20000227.SAR
DBATL640O92_44-20000227.SAR
Database Independent
SAPEXE_175-20000226.SAR
Assuming above SAR files contain R3trans, R3load, tp ,... also.
2#
As per my knowledge SAP has given one more path to download J2EE SP's which contains Kernel and J2EE Support Packages.
http://service.sap.com/patches --> Support Package and Patches -> Entry by Application Group -> SAP NetWeaver -> SAP NetWeaver -> SAP NetWeaver 04 -> Entry by Component -> Application Server Java -> SAP J2EE Engine 6.40 -> J2EERT19_0-10001982.SAR/J2EERT20_0-10001982.SAR (OS Independent) and CTRLDB219_0-20000114.SAR(OS Dendependent)
What is the difference between above two kernels?
1# contains R3trans, R3load, tp ...etc which is exclusively used by ABAP Stack related functions. The startsap script used here would check R3trans -d authentication successful before starting database and then only it starts the database from sidadm. I observed OPS$ users available in only ABAP schema SAPSID but not available in SAPSIDDB. If I use the kernel downloaded from 1# for Java Stack only system, startsap would fail as R3trans authentication fail as there is no ABAP schema in Java systems.
This applies well for ABAP+JAVA or only ABAP based systems.
If I use only JAVA Stack based system can I use the kernel downloaded from 1# . What is the kernel and SP available in 2#? Is this also contains the same kernel given in 1# or it is different. I also observed in JAVA they are not calling Kernels by Patch No like 154, 175... they call it by SP19. Please correct me if I am wrong.
Did anyone come accross this type if issue? I would appreciate if anyone can clarify my questions given above.
My main target is to have clear strategy for ABAP+JAVA, ABAP, JAVA kernels to avoid mess up. Which one to download? What is best practice? Differences?
Thanks and Regards
PrasadHi Sacha,
Thank a lot for your answer I am clear now. Before rewarding points to you.
I have final question.
You mean that there is not seperate kernel for Java Stack Systems.. When we apply SP11 or SP19 by default it applies Kernel and also support packages w.r.t the SP. Do we have option to seperate Kernel and Support package while applying SP's for Java System?
If we take for example SAP NW 2004 (WAS 640) latest kernel is 175 (I mean ABAP+JAVA). If I want to know the latest kernel for Java Stack system, Do I need to say it is at level SP19 or check the sapwebdisp -V (Resepctive patch level)?
For ABAP system we check disp+work -V to get the source kernel version. How to justify the source kernel version for Java System?
As per SAP Note: 710914 - Upgrading the J2EE Engine Startup Framework after applying SP for Java System, Do we need to upgrade J2EE Startup Framework?
Thanks and Regards,
Prasad -
Best Practices in use of ABAP for SRM and/or CRM Configuration
I was wondering if there is a document that defines best practices for the use of ABAP with the installation and customization of SRM and/or CRM. Such as amount of ABAP coding typically required, and best practices around the use of ABAP for customization and configuration.
Thanks.Hi, Johnson
Sorry, Please don't mind, you are not at right place to ask the Question like this
Please read "The Forum Rules of Engagement" before posting! HOT NEWS!!
Thanks and Regards,
Faisal -
ABAP proxy object and JAVA proxy objects
can anyone explain whether ABAP proxy object and JAVA proxy objects can communicate with each others?
if yes then how???JCO connectors would be able to do the trick here i guess
regards
krishna -
Abap web dynpro and portal events
First off, a little introduction: My name is Martin Kroppen, I am an Abap developer for SAP Netherlands, and I am currently involved in a project for hospitals to built a portal. For this, I have created 2 Abap web-dynpros, and then impemented the views as iviews in an EP. What I want to achieve is that the input view triggers the display view on a second page, and the data is shown for the values in the input view (all in the same browser window).
I am using the portal integration manager for this, with the method for relative navigation.
The navigation is working fine, only problem is that I don't know how to handle the business parameters that I send over.
My questions are:
1. is this the correct way for navigating between abap webdynpro iviews in the portal?
2. what is the correct way to read the business parameters into my context of the second Abap WD application?
I tried the solution that is described below, I could not get it to work correctly.
If you define BUSINESS_PARAMETERS as application parameters in your Web
Dynpro application and the parameter names start with ″APP″, they will
automatically be forwarded to the startup plugs of the Web Dynpro application
provided they are marked as startup parameters. In this case, keep in mind that
the iView/page used as the navigation target must be assigned to the user role.
If it is not, navigation cannot be triggered.
Hope someone can help me
Regards
Martin KroppenHi,
please refer to this link for portal integration
Web Dynpro for ABAP Portal Integration [original link is broken] -
Hello All,
I want ABAP-HR Material and FAQs.
Could you please send it to my mail id: [email protected]
Points will be rewarded.
Thanks in Advance.
Regards
Sasidhar Reddy Matli.hi,
see the doc for HR:
HR deals with the INFOTYPES which are similar to Tables in General ABAP.
There are different ways of fetching data from these infotypes.
There are different areas in HR LIKE Personal Admn, Orgn Management, Benefits, Time amangement, Event Management, Payroll etc
Infotypes for these areas are different from one another area.
storing of records data in each type of area is different
LDBS like PNP are used in HR programing.
Instead of Select.. we use some ROUTINES and PROVIDE..ENDPROVIDE.. etc
and in the case of Pay roll we use Clusters and we Import and Export them for data fetching.
On the whole Normal ABAP is different from HR abap.
For Personal Admn the Infotypes start with PA0000 to PA1999
Time Related Infotypes start with PA2000 to PA2999.
Orgn related Infotypes start with HRP1000 to HRP1999.
All custom developed infotypes stsrat with PA9000 onwards.
In payroll processing we use Clusters like PCL1,2,3 and 4.
Instead of Select query we use PROVIDE and ENDPROVIDE..
You have to assign a Logical Database in the attributes PNP.
Go through the SAp doc for HR programming and start doing.
http://www.sapdevelopment.co.uk/hr/hrhome.htm
See:
http://help.sap.com/saphelp_46c/helpdata/en/4f/d5268a575e11d189270000e8322f96/content.htm
sites regarding hr-abap:
http://www.sapdevelopment.co.uk/hr/hrhome.htm
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PAPA/PAPA.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PAPD/PAPD.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PYINT/PYINT_BASICS.pdf
http://www.atomhr.com/training/Technical_Topics_in_HR.htm
http://www.planetsap.com/hr_abap_main_page.htm
You can see some Standard Program examples in this one ...
http://www.sapdevelopment.co.uk/programs/programshr.htm
http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci1030179,00.html?Offer=SAlgwn12604#Certification
http://www.erpgenie.com/faq/hr.htm.
http://www.planetsap.com/hr_abap_main_page.htm
http://www.sapbrain.com/TUTORIALS/FUNCTIONAL/HR_tutorial.html
These are the FAQ's that might helps you as well.
http://www.sap-img.com/human/hr-faq.htm
http://www.sapgenie.com/faq/hr.htm
http://www.planetsap.com/hr_abap_main_page.htm
http://www.atomhr.com/library_full.htm -
ABAP field symbols and PERL reference variables to unnamed arrays.
Rob -
Please do NOT delete this post even though it contains this link:
ABAP field symbols and PERL reference variables to unnamed arrays.
to a question I posted in the Scripting Languages forum.
It's a question that should be of interest to ABAP programmers, and they may miss if they don't frequent the SL forum ...
Thanks for your forbearance here (in advance, of course) ...
Best
djh
Edited by: Rob Burbank on Jul 11, 2011 1:26 PMIf interested, please reply in the original thread. We don't want multiple conversations at cross purposes do we?
Rob -
I want to abap-hr programing and concept plz send usefull links and materia
hi plz ,
i want to learn abap-hr programing and concepts and faqs, so, plz send usefull links or material or pdfs which helps me and i hope ,
thank u,Hi Manoj,
Welcome to SDN....
Check these link on ABAP HR.
http://www.sapdevelopment.co.uk/hr/hrhome.htm
http://www.planetsap.com/hr_abap_main_page.htm
http://www.sap-img.com/
http://help.sap.com/saphelp_erp2005/helpdata/en/60/d8d8c7576311d189270000e8322f96/frameset.htm
http://www.planetsap.com/HR_ABAP_payroll.htm
http://abap4.tripod.com/Human_Resources_Tables_Infotypes.html
http://abap4.tripod.com/SAP_Functions.html
http://www.planetsap.com/hr_abap_main_page.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/c6/8a15381b80436ce10000009b38f8cf/frameset.htm
http://www.sap-basis-abap.com/saphr.htm
http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci1030179,00.html?track=NL-142&ad=500911#Transactions
http://help.sap.com/saphelp_47x200/helpdata/en/4f/d5275f575e11d189270000e8322f96/content.htm
http://help.sap.com/saphelp_47x200/helpdata/en/4f/d5275f575e11d189270000e8322f96/content.htm
http://www.saptips.com/Previews/SAPtipsAugust-September2004TableOfContents.pdf
http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci1030179,00.html?track=NL-142&ad=500911#Transactions
http://help.sap.com/saphelp_46c/helpdata/en/4f/d528be575e11d189270000e8322f96/frameset.htm.
http://www.sap-basis-abap.com/saphr.htm.
http://www.sapgenie.com/faq/hr.htm
http://www.sapgenie.com/workflow/scenarios.htm
http://www.sap-img.com/human/hr-faq.htm
http://www.sapdevelopment.co.uk/hr/hrhome.htm
http://www.sapgenie.com/mysap/mysap_hr.htm
Thanks,
Vinay -
Combine standard task (ABAP method call) and additional UWL Action Handlers
Hi, i have defined a task with an asynchronous ABAP method call and a terminating event which i want to use "as is" in the universal worklist, that means that the standard action has to be the ABAP method call defined for the task.
In addition to that i want to add an extra button to the workitem view in the worklist which opens a web dynpro application. The web dynpro needs a parameter from the workitem container. Opening the web dynpro is not required for completing the task, so i do not consider using secondary methods.
I created an UWLConfiguration for the task type without defining the defaultAction attribute, since defaultAction should not be overwritten. I wanted to use SAPWebDynproABAPLauncher to generate the button since i can easily include values from the workitem container in the call.
When executing a workitem from the worklist the ABAP method call is not performed, instead a window opens which just displays the workitem. The button to web dynpro is generated and works fine.
Does anyone have a clue how i can use UWL to define an additional button with SAPWebDynproABAPLauncher without overwriting the standard task definition?
My definition:
<ItemTypes>
<ItemType
name="uwl.task.webflow.TS95100103"
connector="WebFlowConnector"
defaultView="DefaultView">
<ItemTypeCriteria
systemId="ED1CLNT100"
externalType="TS95100103"
connector="WebFlowConnector"/>
<CustomAttributes>
<CustomAttributeSource
id="WEBFLOW_CONTAINER"
objectIdHolder="externalObjectId"
objectType="WebFlowContainer"
cacheValidity="final">
<Attribute
name="HROBJECT_OBJEKTID"
type="string"
displayName="HROBJECT_OBJEKTID"/>
</CustomAttributeSource>
</CustomAttributes>
<Actions>
<Action
name="launchWebDynPro"
groupAction=""
handler="SAPWebDynproABAPLauncher"
returnToDetailViewAllowed="yes"
launchInNewWindow="yes"
launchNewWindowFeatures="resizable=yes,scrollbars=yes,
status=yes,toolbar=no,menubar=no,
location=no,directories=no">
<Properties>
<Property
name="WebDynproApplication" value="hr01_app"/>
<Property
name="newWindowFeatures"
value="resizable=yes,scrollbars=yes,status=yes,
toolbar=no,menubar=no,location=no,directories=no"/>
<Property
name="DynamicParameter"
value="candidacy_id=${item.HROBJECT_OBJEKTID}
&from_workflow=X"/>
<Property
name="openInNewWindow" value="yes"/>
<Property
name="System" value="SYSTEM_ALIAS_ERP"/>
<Property
name="WebDynproNamespace" value="hr01"/>
</Properties>
<Descriptions default="Show"/>
</Action>
</Actions>
</ItemType>
</ItemTypes>
Thank you very much, best regards, Martin
Edited by: Martin Sommer on Dec 1, 2008 5:51 PMfound a solution with transaction launcher and custom transaction
-
Web Dynpro ABAP - Select Option and ALV Component Usage
Hi,
I'm new in ABAP Web Dynpro and i was trying to follow the SDN tutorial
Web Dynpro ABAP - Select Option and ALV Component Usage
In this video, we create a new Web Dynpro ABAP component that uses both Select Options and ALV. Developers can learn the basic mechanisms for working with both of these reusable components.
Following the link: https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/media/uuid/39c54fe7-0b01-0010-0eb6-d63ac2bdd637
I implemented and generated the web dynpro with success but when i execute a test i get a dump on select-option definition.
Note
The following error text was processed in the system ECD : Exception condition "TYPE_NOT_FOUND" raised.
The error occurred on the application server ITAWSECCS01D_ECD_00 and in the work process 0 .
The termination type was: RABAX_STATE
The ABAP call stack was:
Method: DESCRIBE_BY_NAME of program CL_ABAP_TYPEDESCR=============CP
I went in debug and the piece of code dumping is:
lt_range_table =
wd_this->m_handler->create_range_table( i_typename = 'S_PROJ' ).
Is there someone who can help me?
Thanks in advance,
Stefano.Hi,
I'm new in ABAP Web Dynpro and i was trying to follow the SDN tutorial
Web Dynpro ABAP - Select Option and ALV Component Usage
In this video, we create a new Web Dynpro ABAP component that uses both Select Options and ALV. Developers can learn the basic mechanisms for working with both of these reusable components.
Following the link: https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/media/uuid/39c54fe7-0b01-0010-0eb6-d63ac2bdd637
I implemented and generated the web dynpro with success but when i execute a test i get
an error as
Note
The following error text was processed in the system EI6 : Exception condition "TYPE_NOT_FOUND" raised.
The error occurred on the application server EC6IDES_EI6_01 and in the work process 0 .
The termination type was: RABAX_STATE
The ABAP call stack was:
Method: DESCRIBE_BY_NAME of program CL_ABAP_TYPEDESCR=============CP
I have created a table zmy_table and trying to make USERID field as a select-options.I've written the code as shown below .
data: itab type standard table of zmy_table,
wa type zmy_table.
data:
node_employee type ref to if_wd_context_node,
elem_employee type ref to if_wd_context_element,
stru_employee type wd_this->element_employee ,
item_userid like stru_employee-userid.
navigate from <CONTEXT> to <EMPLOYEE> via lead selection
node_employee = wd_context->get_child_node( name = wd_this->wdctx_employee ).
@TODO handle not set lead selection
if ( node_employee is initial ).
endif.
get element via lead selection
elem_employee = node_employee->get_element( ).
@TODO handle not set lead selection
if ( elem_employee is initial ).
endif.
alternative access via index
Elem_Employee = Node_Employee->get_Element( Index = 1 ).
@TODO handle non existant child
if ( Elem_Employee is initial ).
endif.
get single attribute
elem_employee->get_attribute(
exporting
name = `USERID`
importing
value = item_userid ).
select *
from zmy_table
into table itab
where userid = item_userid.
node_employee = wd_context->get_child_node( 'EMPLOYEE' ).
node_employee->bind_elements( itab ).
Is there someone who can help me and can tell am i doing wrong?
Thanks in advance,
Dheeraj -
Convert XML string into an abap format date and time
Hi,
Does anyone know of a method or a function module in ABAP which converts XML string into an abap format date and time.
Here is a part of the xml that I want to convert.
<ns2:EventDateTime>2009-07-02T10:13:45+10:00</ns2:EventDateTime>
<ns2:EventMessageTransmissionDateTime>2009-07-02T10:13:45.987+10:00</ns2:EventMessageTransmissionDateTime>
Currently EventDateTime and EventMessageTransmissionDateTime are type XSDDATETIME_Z and these are converted to proper dates and times. We will be changing these fields to a STRING instead of XSDDATETIME_Z. The reason for this is to make the field more versatile. The customer would be receiving dates with Zulu (2009-09-23T12:00:00Z), with offsets (2009-09-23T12:00:00+10:00/-10:00) and just local timestamp (2009-09-23T12:00:00). With this, we need to make the date fields as string
to be able to accept the various date formats (esp. the local timestamp).
I am looking for a standard function module or method that will convert the xml string to a proper date and time abap format.
Would appreciate anyone's help!
Thanks.
Edited by: eunice ocson on Jul 13, 2009 1:49 AM
Edited by: eunice ocson on Jul 13, 2009 1:50 AM
Edited by: eunice ocson on Jul 13, 2009 1:51 AM
Edited by: eunice ocson on Jul 13, 2009 1:51 AMHi Eunice
Use the FM 'SMUM_XML_PARSE'
for more info
[Convert XML string to ABAP|XML String to ABAP or GUI]
hope it helps you.
Thanks!! -
ABAP performance issues and improvements
Hi All,
Pl. give me the ABAP performance issue and improvement points.
Regards,
HemaPerformance tuning for Data Selection Statement
For all entries
The for all entries creates a where clause, where all the entries in the driver table are combined with OR. If the number of
entries in the driver table is larger than rsdb/max_blocking_factor, several similar SQL statements are executed to limit the
length of the WHERE clause.
The plus
Large amount of data
Mixing processing and reading of data
Fast internal reprocessing of data
Fast
The Minus
Difficult to program/understand
Memory could be critical (use FREE or PACKAGE size)
Some steps that might make FOR ALL ENTRIES more efficient:
Removing duplicates from the the driver table
Sorting the driver table
If possible, convert the data in the driver table to ranges so a BETWEEN statement is used instead of and OR statement:
FOR ALL ENTRIES IN i_tab
WHERE mykey >= i_tab-low and
mykey <= i_tab-high.
Nested selects
The plus:
Small amount of data
Mixing processing and reading of data
Easy to code - and understand
The minus:
Large amount of data
when mixed processing isnt needed
Performance killer no. 1
Select using JOINS
The plus
Very large amount of data
Similar to Nested selects - when the accesses are planned by the programmer
In some cases the fastest
Not so memory critical
The minus
Very difficult to program/understand
Mixing processing and reading of data not possible
Use the selection criteria
SELECT * FROM SBOOK.
CHECK: SBOOK-CARRID = 'LH' AND
SBOOK-CONNID = '0400'.
ENDSELECT.
SELECT * FROM SBOOK
WHERE CARRID = 'LH' AND
CONNID = '0400'.
ENDSELECT.
Use the aggregated functions
C4A = '000'.
SELECT * FROM T100
WHERE SPRSL = 'D' AND
ARBGB = '00'.
CHECK: T100-MSGNR > C4A.
C4A = T100-MSGNR.
ENDSELECT.
SELECT MAX( MSGNR ) FROM T100 INTO C4A
WHERE SPRSL = 'D' AND
ARBGB = '00'.
Select with view
SELECT * FROM DD01L
WHERE DOMNAME LIKE 'CHAR%'
AND AS4LOCAL = 'A'.
SELECT SINGLE * FROM DD01T
WHERE DOMNAME = DD01L-DOMNAME
AND AS4LOCAL = 'A'
AND AS4VERS = DD01L-AS4VERS
AND DDLANGUAGE = SY-LANGU.
ENDSELECT.
SELECT * FROM DD01V
WHERE DOMNAME LIKE 'CHAR%'
AND DDLANGUAGE = SY-LANGU.
ENDSELECT.
Select with index support
SELECT * FROM T100
WHERE ARBGB = '00'
AND MSGNR = '999'.
ENDSELECT.
SELECT * FROM T002.
SELECT * FROM T100
WHERE SPRSL = T002-SPRAS
AND ARBGB = '00'
AND MSGNR = '999'.
ENDSELECT.
ENDSELECT.
Select Into table
REFRESH X006.
SELECT * FROM T006 INTO X006.
APPEND X006.
ENDSELECT
SELECT * FROM T006 INTO TABLE X006.
Select with selection list
SELECT * FROM DD01L
WHERE DOMNAME LIKE 'CHAR%'
AND AS4LOCAL = 'A'.
ENDSELECT
SELECT DOMNAME FROM DD01L
INTO DD01L-DOMNAME
WHERE DOMNAME LIKE 'CHAR%'
AND AS4LOCAL = 'A'.
ENDSELECT
Key access to multiple lines
LOOP AT TAB.
CHECK TAB-K = KVAL.
ENDLOOP.
LOOP AT TAB WHERE K = KVAL.
ENDLOOP.
Copying internal tables
REFRESH TAB_DEST.
LOOP AT TAB_SRC INTO TAB_DEST.
APPEND TAB_DEST.
ENDLOOP.
TAB_DEST[] = TAB_SRC[].
Modifying a set of lines
LOOP AT TAB.
IF TAB-FLAG IS INITIAL.
TAB-FLAG = 'X'.
ENDIF.
MODIFY TAB.
ENDLOOP.
TAB-FLAG = 'X'.
MODIFY TAB TRANSPORTING FLAG
WHERE FLAG IS INITIAL.
Deleting a sequence of lines
DO 101 TIMES.
DELETE TAB_DEST INDEX 450.
ENDDO.
DELETE TAB_DEST FROM 450 TO 550.
Linear search vs. binary
READ TABLE TAB WITH KEY K = 'X'.
READ TABLE TAB WITH KEY K = 'X' BINARY SEARCH.
Comparison of internal tables
DESCRIBE TABLE: TAB1 LINES L1,
TAB2 LINES L2.
IF L1 <> L2.
TAB_DIFFERENT = 'X'.
ELSE.
TAB_DIFFERENT = SPACE.
LOOP AT TAB1.
READ TABLE TAB2 INDEX SY-TABIX.
IF TAB1 <> TAB2.
TAB_DIFFERENT = 'X'. EXIT.
ENDIF.
ENDLOOP.
ENDIF.
IF TAB_DIFFERENT = SPACE.
ENDIF.
IF TAB1[] = TAB2[].
ENDIF.
Modify selected components
LOOP AT TAB.
TAB-DATE = SY-DATUM.
MODIFY TAB.
ENDLOOP.
WA-DATE = SY-DATUM.
LOOP AT TAB.
MODIFY TAB FROM WA TRANSPORTING DATE.
ENDLOOP.
Appending two internal tables
LOOP AT TAB_SRC.
APPEND TAB_SRC TO TAB_DEST.
ENDLOOP
APPEND LINES OF TAB_SRC TO TAB_DEST.
Deleting a set of lines
LOOP AT TAB_DEST WHERE K = KVAL.
DELETE TAB_DEST.
ENDLOOP
DELETE TAB_DEST WHERE K = KVAL.
Tools available in SAP to pin-point a performance problem
The runtime analysis (SE30)
SQL Trace (ST05)
Tips and Tricks tool
The performance database
Optimizing the load of the database
Using table buffering
Using buffered tables improves the performance considerably. Note that in some cases a stament can not be used with a buffered table, so when using these staments the buffer will be bypassed. These staments are:
Select DISTINCT
ORDER BY / GROUP BY / HAVING clause
Any WHERE clasuse that contains a subquery or IS NULL expression
JOIN s
A SELECT... FOR UPDATE
If you wnat to explicitly bypass the bufer, use the BYPASS BUFFER addition to the SELECT clause.
Use the ABAP SORT Clause Instead of ORDER BY
The ORDER BY clause is executed on the database server while the ABAP SORT statement is executed on the application server. The datbase server will usually be the bottleneck, so sometimes it is better to move thje sort from the datsbase server to the application server.
If you are not sorting by the primary key ( E.g. using the ORDER BY PRIMARY key statement) but are sorting by another key, it could be better to use the ABAP SORT stament to sort the data in an internal table. Note however that for very large result sets it might not be a feasible solution and you would want to let the datbase server sort it.
Avoid ther SELECT DISTINCT Statement
As with the ORDER BY clause it could be better to avoid using SELECT DISTINCT, if some of the fields are not part of an index. Instead use ABAP SORT + DELETE ADJACENT DUPLICATES on an internal table, to delete duplciate rows.
Maybe you are looking for
-
Creative Cloud will not load Photoshop CC
get this error 16 everytime I try to lauch Photoshop CC on my mac. I have the creative cloud and never had a problem with any of the apps until today. I have followed all the threads and uninstalled CC and wen back into Adobe Application Manager to
-
Menu Bar In Muse CC 2014 vs. Menu Bar in Muse V7.4
Ok! I admit to old age and failing eye sight but I something I do not understand is why are their two versions of Muse and which one should I be using? Muse 2014 appears to have more features but the menu bar and subsequent drop down menu's are extre
-
Same problem as many other error -8
Maybe someone can help? I get the same problem as many other error -8. I'm use ichat with aol's aim. There using a pc. Not sure at all how to set up my ports. I just got this MacBook and never used ichat. The IM is working just fine, but can't get th
-
Why can't I see my ipod in itunes?
I can;t see my ipod musique list in itunes, what do I nee to do to find it?
-
Applet file not found execption.. what to do ?
Hai to all ... I have a created an japplet within a netbeans project (*NewJApplet*). This applet is used to display a spell checking jframe(*SpellerFrame*) which does all the spell checking part i need. The jframe I mentioned makes use of another cla