SAP Debuts Free HANA Express Edition
TAKE NOTE (Insights into SAP solutions and Emerging Technology)
SAP unveiled a scaled-down version of HANA designed to let developers play around with the in-memory platform on a PC or a laptop. The software, which is free, gives developers access to all of HANA’s analytic capabilities for data sets 32 GB or smaller.
Internal Tables in ABAP 7.4
Internal tables are a core staple of programming in ABAP. In this blog, you’ll learn about some new ABAP functionalities that relate to internal tables.
Using Secondary Keys to Access the Same Internal Table in Different Ways
Internal tables are a bit like database tables, and with release 7.02 SAP began the long march of adding operations only possible for database tables into internal table processing as well. The process started with the idea that if database tables can have secondary keys, then why can’t internal tables have them as well? Traditionally, if you wanted to read an internal table in two different ways (e.g.,looking for a material by Material Number or by Reference Number), then you either had to keep sorting the table just before a read, which is a waste of processing time, or have two identical tables sorted differently, which is a waste of memory.
Secondary keys are now possible as of ABAP 7.02. For example, In a given query, half the queries will be on MATNR and half on BISMT. The internal table definition would be as shown below.
DATA: IT_MARA TYPE HASHED TABLE OF mara
WITH UNIQUE KEY matnr
WITH NON-UNIQUE SORTED KEY sort COMPONENTS bismt.
lv_bismt IS INITIAL.
RETURN.
ENDIF.IF lv_matnr IS NOT INITIAL.
READ TABLE it_mara
INTO wa_mara
WITH TABLE KEY matnr = lv_matnr.
ELSE.
READ TABLE it_mara
INTO wa_mara
WITH KEY sort COMPONENTS bismt = lv_bismt.
ENDIF.
Reading from an Internal Table in ABAP 7.4
What if I told you that you would never have to use the statement READ TABLE again to get a line out of an internal table?
Q&A(Post your questions to Facebook or Twitter and get the answers you need)
Q. I am using break-points to debug a Loop-EndLoop in my program. Is there a way to not have to stop at every loop? I guess I could create a watch-point… I was wondering if the new Scripting features would help?
A. Great question! Yes we can “conditionally” control the break-point. When you set a breakpoint on a line inside a loop, it will obviously stop on each loop. If the loop runs a large number of times, this breakpoint becomes meaningless because it will take too much time to step through each step to analyze the program.
So…After setting a breakpoint in the source code, run the debugger, then when it breaks–you can specify a condition for a breakpoint in the ABAP Debugger by right-clicking on the breakpoint on the left side and selecting the Create Breakpoint Condition option as shown below…
The Breakpoint Condition popup opens; enter the condition as shown below
When you click Continue , the condition is saved and the debugger will stop only when the given condition is met.
You can access the detailed explanation of the syntax of the breakpoint conditions using the Display Help button on the Breakpoint Condition popup.
When you create the condition, the syntax check is performed, but the validity of the operands isn’t checked. If the operand isn’t valid, the warning message “Breakpoint condition cannot be evaluated at position 1” is displayed on the status bar, indicating that there’s an error in the condition.
Breakpoint conditions are valid only for debugger breakpoints. If you save a breakpoint as a session or external breakpoint, the breakpoint condition won’t be saved with it.
Hope this helps!