What are the Optimization Techniques?

What are the Optimization Techniques? Can any one send the one sample program which is having Good Optimization Techniques.
Phani

Hi phani kumarDurusoju  ,
ABAP/4 programs can take a very long time to execute, and can make other processes have to wait before executing. Here are
some tips to speed up your programs and reduce the load your programs put on the system:
Use the GET RUN TIME command to help evaluate performance. It's hard to know whether that optimization technique REALLY helps
unless you test it out. Using this tool can help you know what is effective, under what kinds of conditions. The GET RUN TIME
has problems under multiple CPUs, so you should use it to test small pieces of your program, rather than the whole program.
Generally, try to reduce I/O first, then memory, then CPU activity. I/O operations that read/write to hard disk are always the
most expensive operations. Memory, if not controlled, may have to be written to swap space on the hard disk, which therefore
increases your I/O read/writes to disk. CPU activity can be reduced by careful program design, and by using commands such as
SUM (SQL) and COLLECT (ABAP/4).
Avoid 'SELECT *', especially in tables that have a lot of fields. Use SELECT A B C INTO instead, so that fields are only read
if they are used. This can make a very big difference.
Field-groups can be useful for multi-level sorting and displaying. However, they write their data to the system's paging
space, rather than to memory (internal tables use memory). For this reason, field-groups are only appropriate for processing
large lists (e.g. over 50,000 records). If you have large lists, you should work with the systems administrator to decide the
maximum amount of RAM your program should use, and from that, calculate how much space your lists will use. Then you can
decide whether to write the data to memory or swap space. See the Fieldgroups ABAP example.
Use as many table keys as possible in the WHERE part of your select statements.
Whenever possible, design the program to access a relatively constant number of records (for instance, if you only access the
transactions for one month, then there probably will be a reasonable range, like 1200-1800, for the number of transactions
inputted within that month). Then use a SELECT A B C INTO TABLE ITAB statement.
Get a good idea of how many records you will be accessing. Log into your productive system, and use SE80 -> Dictionary Objects
(press Edit), enter the table name you want to see, and press Display. Go To Utilities -> Table Contents to query the table
contents and see the number of records. This is extremely useful in optimizing a program's memory allocation.
Try to make the user interface such that the program gradually unfolds more information to the user, rather than giving a huge
list of information all at once to the user.
Declare your internal tables using OCCURS NUM_RECS, where NUM_RECS is the number of records you expect to be accessing. If the
number of records exceeds NUM_RECS, the data will be kept in swap space (not memory).
Use SELECT A B C INTO TABLE ITAB whenever possible. This will read all of the records into the itab in one operation, rather
than repeated operations that result from a SELECT A B C INTO ITAB... ENDSELECT statement. Make sure that ITAB is declared
with OCCURS NUM_RECS, where NUM_RECS is the number of records you expect to access.
If the number of records you are reading is constantly growing, you may be able to break it into chunks of relatively constant
size. For instance, if you have to read all records from 1991 to present, you can break it into quarters, and read all records
one quarter at a time. This will reduce I/O operations. Test extensively with GET RUN TIME when using this method.
Know how to use the 'collect' command. It can be very efficient.
Use the SELECT SINGLE command whenever possible.
Many tables contain totals fields (such as monthly expense totals). Use these avoid wasting resources by calculating a total
that has already been calculated and stored.
These r good websites which wil help u :
Performance tuning
http://www.sapbrainsonline.com/ARTICLES/TECHNICAL/optimization/optimization.html
http://www.geocities.com/SiliconValley/Grid/4858/sap/ABAPCode/Optimize.htm
http://www.abapmaster.com/cgi-bin/SAP-ABAP-performance-tuning.cgi
http://abapcode.blogspot.com/2007/05/abap-performance-factor.html
cheers!
gyanaraj
****Pls reward points if u find this helpful

Similar Messages

  • What are the advantage of using a passive monitoring technique ?

    What are the advantage of using a passive monitoring technique

    Hi Plawansai,
    I saw your question that is still unanswered.
    I believe an advantage of using a passive monitoring technique is that it won't interfer with live traffic, as it does not inject traffic into the network or modify the traffic that is already on the network.
    One drawback anyway, is that post-processing time can take a large amount of time with passive monitoring!
    A combination of the two monitoring methods seems to be the route to go.
    V.

  • What are the different types of analytic techniques possible in SAP HANA with the examples?

    Hello Gurus,
    Please provide the information on what are the different types of Analytic techniques possible in SAP HANA with examples.
    I would want to know in category of Predictive analysis ,Advance statistical analysis ,segmentation analysis ,data reduction techniques and forecast techniques
    Which Analytic techniques are possible in SAP HANA?
    Thanks and Regards
    Sushma C Narasimhamurthy

    Hi Sushma,
    You can download the user guide here:
    http://www.google.com.au/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CFcQFjAB&url=http%3A%2F%2Fhelp.sap.com%2Fbusinessobject%2Fproduct_guides%2FSBOpa10%2Fen%2Fpa_user_en.pdf&ei=NMgHUOOtIcSziQfqupyeBA&usg=AFQjCNG10eovyZvNOJneT-l6J7fk0KMQ1Q&sig2=l56CSxtyr_heE1WlhfTdZQ
    It has a list of the algorithms, which are pretty disappointing, I must say. No Random Forests? No ensembling methods? Given that it's using R algorithms, I must say this is a missed opportunity to beat products like SPSS and SAS at their own game. If SAP were to include this functionality, they would be the only BI vendor capable of having a serious predictive tool integrated with the rest of the platform.... but this looks pretty weak.
    I can only hope a later release will remedy this - or maybe the SDK will allow me to create what I need.
    As things stand, I could built a random forest using this tool, but I would have to use a lot of hardcoded SQL to make it happen. And if I wanted to go down that road, I could use the algorithms that come with the Microsoft/Oracle software.
    Please let me be wrong........

  • What are the different tools and techniques available to track analytics in SharePoint online 2013?

    I want to know What are the different tools and techniques available to track analytics in SharePoint online 2013. Please provide your suggestions/ inputs. Thanks in advance.

    you can Use the Web Analytics Integration app  to
    connect your SharePoint Online public website to third-party web analytics services, such as Webtrends, Google Analytics, Adobe, and so on.
    Google Analytics
    Webtrends for SharePoint
    CARDIOLOG ANALYTICS
    Please remember to mark your question as answered &Vote helpful,if this solves/helps your problem. ****************************************************************************************** Thanks -WS MCITP(SharePoint 2010, 2013) Blog: http://wscheema.com/blog

  • What are the permitted compression techniques for PDF/A-1?

    The PDF/A-1 standard does not specify how compression is performed. What are the permitted compression techniques for PDF/A-1?
    The information I have gathered (not sure if all are true)
    LZW should not be used
    JPEG2000 may not be used
    Few say, JPEG can be used but its a lossy compression. (PDF standard clearly states lossy compression can't be used)
    Also, how to figure out whether a particular file is PDF/A-1a or PDF/A-1b and what kind of compressions are used in that file?
    Thanks in advance.

    For better or worse, ISO specifications are written in a language from a parallel universe.    After dealing with ISO standards for a while, you learn what specific words really mean. I should know - I am chair of the ISO PDF/X task force and co-chair of the PDF/VT task force.
    The word should does not specify a requirement. PDF/A does not prohibit lossy compression.
    JPEG is always a lossy compression. There is a mode of JPEG2000 compression that is indeed lossless. Note that JPEG and JPEG2000 are totally different compression schemes. (I believe that PDF/A-1 as well as PDF/X-1a and PDF/X-3, based on older versions of the PDF specification do not permit JPEG2000. PDF/A-2 based on ISO32000-1 and PDF/X-4 based on PDF 1.6 do allow for JPEG2000.)
    ZIP compression is lossless.
              - Dov

  • What are the tasks we can do with Maintenance Optimizer

    What are the tasks we can do with Maintenance Optimizer?

    Hi,
    All Corrective Packages for SAP NW04 , NW04s and SAP Business suite delivered after 04/02/2007 will only be available via SAP Solution Manager MOPZ
    Also it Reduces risk, Increase transparency and Prepared for Future.
    Thanks
    Vijay Kothapalli

  • What are the difference and relations between Automatic Tuning Optimizer...

    What are the difference and relations between Automatic Tuning Optimizer and Automatic SQL Tuning Advisor?
    In my opinion, they are same.

    SQL> SELECT * from v$version;
    BANNER
    Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
    PL/SQL Release 11.1.0.6.0 - Production
    CORE    11.1.0.6.0      Production
    TNS for 32-bit Windows: Version 11.1.0.6.0 - Production
    NLSRTL Version 11.1.0.6.0 - Production

  • What are the web host options that will work with iWeb?

    What are the web host options that will work with iWeb?

    Most website hosting services will work with iWeb created sites so long as you choose a Linux account.
    If you are new to FTP, you should choose a host who has good 24/7 tech support in your language of choice.
    A couple of examples are shown here...
    http://www.iwebformusicians.com/iWeb/Website-Hosting.html
    The first one allows a trial period and a 30 day money back deal. The second has a free version which you can subsequently upgrade to a paid one with more facilities once you are satisfied with its performance. This means you don't have to commit or pay until you are satisfied and have learned the techniques.
    iWeb gives you two options for publishing via FTP...
    http://www.iwebformusicians.com/iWeb/Publish-Website.html
    The latter method allows you to add tags for SEO...
    http://www.iwebformusicians.com/Search-Engine-Optimization/SEO.html
    ... and to optimize iWeb's bloated code for faster download performance in the browser...
    http://www.iwebformusicians.com/Search-Engine-Optimization/Optimize.html
    "I may receive some form of compensation, financial or otherwise, from my recommendation or link."

  • What is an ageing report? What are the data sources used to develop an agin

    Hello BW gurus,
    I was going thru some of the BW resumes. I could not understand some of the points mentioned below. Kindly go thru them and please explain each of it.
    Thank you.
    TR.
    •     Developed AR ageing report, created invoice layout and processed invoices.
    What is an ageing report? What are the data sources used to develop an aging report
    •     Worked on month-end and year end processes such as Balance Sheet Statements and Profit and Loss Accounts. 
    What data sources does one use to get Balance sheet and P&L accounts tables and fields.
    •     Involved in the end to end implementation of BW at Reliance Group as a team member.
    What are the tasks a BW consultant normally performs when he is involved in an end to end implementation project or
    a full life cycle project?
    •     Extensively worked on BW Statistics to optimize the performance of Info Cubes and to create Aggregates.
    What do you mean when you say worked on BW statistics to optimize the performance of Info Cubes.
    What are aggregates why do you need them?
    •     Prepared design documents from the Business Requirement documents and identified the
    relevant data targets for satisfying the customer requirements.
    What are the design documents does one prepare, please give an example. 
    Is cube a data target?

    What is an ageing report? What are the data sources used to develop an aging report
    Aging refers to values in different time period ranges. Example, the customer (credit) aging report can look like this.
    customer (credit)  for current period, 0 to 30 days, 30 to 90 days, 90 to 120 days. This is the way aging is classified.
    What data sources does one use to get Balance sheet and P&L accounts tables and fields.
    For P&L information, you may use 0FI_GL_6 datasource (or 0FI_GL_10 if you use ERP 5.0 version). This datasource reads the same information used in R/3 transaction f.01 (table glt0).
    What are the tasks a BW consultant normally performs when he is involved in an end to end implementation project or a full life cycle project?
    Requirement gathering, blueprint creation, development etc
    Refer to posts on Sap Methodology  and Sap lifecyle
    What do you mean when you say worked on BW statistics to optimize the performance of Info Cubes. What are aggregates why do you need them?
    Please check these links
    http://help.sap.com/saphelp_nw04/helpdata/en/8c/131e3b9f10b904e10000000a114084/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/f0/3c8c3bc6b84239e10000000a114084/plain.htm
    What are the design documents does one prepare, please give an example.
    Design document is basically a document to say  how the design is to be developed for a particular solution ex: FI it says what is the data fow and what are the data targets  to be used and how data shld be stored  for providing the client a solution they need.
    Is cube a data target?
    Yes cube is a data target.
    Hope this Helps
    Anand Raj

  • What are the benefits of 64-bit computing?

    What are the benefits of 64-bit computing?
    From what I understand, the only benefits are the ability of the OS to address memory ranges beyond 2GB. Or is it 4GB? I can't remember.
    Anyway, I have no intention of expanding my Intel MacBook's memory beyond its built-in 2GB RAM.

    I think that the ram advantages of 64 bit computers is just a minor issue with most existing Mac computers. The average user today has between 2 to 8 GB's of ram. This amount of ram is easily handled by existing OS's like Leopard.
    I believe that the actual benefits for most users will be when the code of their applications is re-written to run in 64 bit code.
    From Apples Page on New Technologies: "It can also enable computers to crunch twice the data per clock cycle, which can dramatically speed up numeric calculations and other tasks." And on the same page: "64-bit applications can use more advanced security techniques to fend off malicious code".
    http://www.apple.com/macosx/technology/
    The 'twice the data per clock cycle' will affect all users regardless of how much ram they have or plan to buy for their machines. More data per cycle means more speed. Better security built into the OS is always a plus.
    This is why a MBP with a 3GB limit will still want to run a 64 bit application, and my new iMac with an 8GB limit will still benefit from Snow Leopard.
    I view all this extra memory abilities as something very far off for Mac users today. Ram prices will have to go down even lower, new machines will have to be bought with new ram management chips, etc.
    Meanwhile, most of Apple's applications are currently running in 64 bit even if the Kernal is running at 32 bit, and other companies (like Adobe) should be coming out with 64 bit versions of their applications. Most experts agree that since the Kernal runs very low-level functions, it won't benefit from 64-bit operation near as much as user applications.
    The big delays here, are for hardware drivers to work in 64 bit, and also for helper applications like Flash. Apple knew this going into the SL project. It's going to take a year or so until almost all of our programs are upgraded. Meanwhile, both 32 bit and 64 bit programs will run on Snow Leopard.
    Message was edited by: dechamp

  • What are the major process to transfer the data from legacy to sap system.

    What are the major process to transfer the data from legacy to sap system using BDC at Real Time only?

    hi,
    BATCH DATA COMMUNICATION
    main methods are:
    1. SESSION METHOD
    2. CALL TRANSACTION
    3. DIRECT INPUT
    Advantages offered by BATCH INPUT method:
    1. Can process large data volumes in batch.
    2. Can be planned and submitted in the background.
    3. No manual interaction is required when data is transferred.
    4. Data integrity is maintained as whatever data is transferred to the table is through transaction. Hence batch input data is submitted to all the checks and validations.
    To implement one of the supported data transfers, you must often write the program that exports the data from your non-SAP system. This program, known as a “data transfer” program must map the data from the external system into the data structure required by the SAP batch input program.
    The batch input program must build all of the input to execute the SAP transaction.
    Two main steps are required:
    • To build an internal table containing every screen and every field to be filled in during the execution of an SAP transaction.
    • To pass the table to SAP for processing.
    Prerequisite for Data Transfer Program
    Writing a Data Transfer Program involves following prerequisites:
    Analyzing data from local file
    Analyzing transaction
    Analyzing transaction involves following steps:
    • The transaction code, if you do not already know it.
    • Which fields require input i.e., mandatory.
    • Which fields can you allow to default to standard values.
    • The names, types, and lengths of the fields that are used by a transaction.
    • Screen number and Name of module pool program behind a particular transaction.
    To analyze a transaction::
    • Start the transaction by menu or by entering the transaction code in the command box.
    (You can determine the transaction name by choosing System – Status.)
    • Step through the transaction, entering the data will be required for processing your batch input data.
    • On each screen, note the program name and screen (dynpro) number.
    (dynpro = dyn + pro. Dyn = screen, pro = number)
    • Display these by choosing System – Status. The relevant fields are Program (dynpro) and Dynpro number. If pop-up windows occur during execution, you can get the program name and screen number by pressing F1 on any field or button on the screen.
    The technical info pop-up shows not only the field information but also the program and screen.
    • For each field, check box, and radio button on each screen, press F1 (help) and then choose Technical Info.
    Note the following information:
    - The field name for batch input, which you’ll find in its own box.
    - The length and data type of the field. You can display this information by double clicking on the Data Element field.
    • Find out the identification code for each function (button or menu) that you must execute to process the batch-input data (or to go to new screen).
    Place the cursor on the button or menu entry while holding down the left mouse button. Then press F1.
    In the pop-up window that follows, choose Technical info and note the code that is shown in the Function field.
    You can also run any function that is assigned to a function key by way of the function key number. To display the list of available function keys, click on the right mouse button. Note the key number that is assigned to the functions you want to run.
    Once you have program name, screen number, field name (screen field name), you can start writing.
    DATA TRANSFER program.
    Declaring internal table
    First Integral Table similar to structure like local file.
    Declaring internal table like BDCDATA
    The data from internal table is not transferred directly to database table, it has to go through transaction. You need to pass data to particular screen and to particular screen-field. Data is passed to transaction in particular format, hence there is a need for batch input structure.
    The batch input structure stores the data that is to be entered into SAP system and the actions that are necessary to process the data. The batch input structure is used by all of the batch input methods. You can use the same structure for all types of batch input, regardless of whether you are creating a session in the batch input queue or using CALL TRANSACTION.
    This structure is BDCDATA, which can contain the batch input data for only a single run of a transaction. The typical processing loop in a program is as follows:
    • Create a BDCDATA structure
    • Write the structure out to a session or process it with CALL TRANSACTION USING; and then
    • Create a BDCDATA structure for the next transaction that is to be processed.
    Within a BDCDATA structure, organize the data of screens in a transaction. Each screen that is processed in the course of a transaction must be identified with a BDCDATA record. This record uses the Program, Dynpro, and Dynbegin fields of the structure.
    The screen identifier record is followed by a separate BDCDATA record for each value, to be entered into a field. These records use the FNAM and FVAL fields of the BDCDATA structure. Values to be entered in a field can be any of the following:
    • Data that is entered into screen fields.
    • Function codes that are entered into the command field. Such function codes execute functions in a transaction, such as Save or Enter.
    The BDCDATA structure contains the following fields:
    • PROGRAM: Name of module pool program associated with the screen. Set this field only for the first record for the screen.
    • DYNPRO: Screen Number. Set this field only in the first record for the screen.
    • DYNBEGIN: Indicates the first record for the screen. Set this field to X, only for the first record for the screen. (Reset to ‘ ‘ (blank) for all other records.)
    • FNAM: Field Name. The FNAM field is not case-sensitive.
    • FVAL: Value for the field named in FNAM. The FVAL field is case-sensitive. Values assigned to this field are always padded on the right, if they are less than 132 characters. Values must be in character format.
    Transferring data from local file to internal table
    Data is uploaded to internal table by UPLOAD of WS_UPLOAD function.
    Population of BDCDATA
    For each record of internal table, you need to populate Internal table, which is similar to BDCDATA structure.
    All these five initial steps are necessary for any type of BDC interface.
    DATA TRANSFER program can call SESSION METHOD or CALL TRANSACTION. The initial steps for both the methods are same.
    First step for both the methods is to upload the data to internal table. From Internal Table, the data is transferred to database table by two ways i.e., Session method and Call transaction.
    SESSION METHOD
    About Session method
    In this method you transfer data from internal table to database table through sessions.
    In this method, an ABAP/4 program reads the external data that is to be entered in the SAP System and stores the data in session. A session stores the actions that are required to enter your data using normal SAP transaction i.e., Data is transferred to session which in turn transfers data to database table.
    Session is intermediate step between internal table and database table. Data along with its action is stored in session i.e., data for screen fields, to which screen it is passed, the program name behind it, and how the next screen is processed.
    When the program has finished generating the session, you can run the session to execute the SAP transactions in it. You can either explicitly start and monitor a session or have the session run in the background processing system.
    Unless session is processed, the data is not transferred to database table.
    BDC_OPEN_GROUP
    You create the session through program by BDC_OPEN_GROUP function.
    Parameters to this function are:
    • User Name: User name
    • Group: Name of the session
    • Lock Date: The date on which you want to process the session.
    • Keep: This parameter is passed as ‘X’ when you want to retain session after
    processing it or ‘ ‘ to delete it after processing.
    BDC_INSERT
    This function creates the session & data is transferred to Session.
    Parameters to this function are:
    • Tcode: Transaction Name
    • Dynprotab: BDC Data
    BDC_CLOSE_GROUP
    This function closes the BDC Group. No Parameters.
    Some additional information for session processing
    When the session is generated using the KEEP option within the BDC_OPEN_GROUP, the system always keeps the sessions in the queue, whether it has been processed successfully or not.
    However, if the session is processed, you have to delete it manually. When session processing is completed successfully while KEEP option was not set, it will be removed automatically from the session queue. Log is not removed for that session.
    If the batch-input session is terminated with errors, then it appears in the list of INCORRECT session and it can be processed again. To correct incorrect session, you can analyze the session. The Analysis function allows to determine which screen and value has produced the error. If you find small errors in data, you can correct them interactively, otherwise you need to modify batch input program, which has generated the session or many times even the data file.
    CALL TRANSACTION
    About CALL TRANSACTION
    A technique similar to SESSION method, while batch input is a two-step procedure, Call Transaction does both steps online, one after the other. In this method, you call a transaction from your program by
    Call transaction <tcode> using <BDCTAB>
    Mode <A/N/E>
    Update <S/A>
    Messages into <MSGTAB>.
    Parameter – 1 is transaction code.
    Parameter – 2 is name of BDCTAB table.
    Parameter – 3 here you are specifying mode in which you execute transaction
    A is all screen mode. All the screen of transaction are displayed.
    N is no screen mode. No screen is displayed when you execute the transaction.
    E is error screen. Only those screens are displayed wherein you have error record.
    Parameter – 4 here you are specifying update type by which database table is updated.
    S is for Synchronous update in which if you change data of one table then all the related Tables gets updated. And sy-subrc is returned i.e., sy-subrc is returned for once and all.
    A is for Asynchronous update. When you change data of one table, the sy-subrc is returned. And then updating of other affected tables takes place. So if system fails to update other tables, still sy-subrc returned is 0 (i.e., when first table gets updated).
    Parameter – 5 when you update database table, operation is either successful or unsuccessful or operation is successful with some warning. These messages are stored in internal table, which you specify along with MESSAGE statement. This internal table should be declared like BDCMSGCOLL, a structure available in ABAP/4. It contains the following fields:
    1. Tcode: Transaction code
    2. Dyname: Batch point module name
    3. Dynumb: Batch input Dyn number
    4. Msgtyp: Batch input message type (A/E/W/I/S)
    5. Msgspra: Batch input Lang, id of message
    6. Msgid: Message id
    7. MsgvN: Message variables (N = 1 - 4)
    For each entry, which is updated in database, table message is available in BDCMSGCOLL. As BDCMSGCOLL is structure, you need to declare a internal table which can contain multiple records (unlike structure).
    Steps for CALL TRANSACTION method
    1. Internal table for the data (structure similar to your local file)
    2. BDCTAB like BDCDATA
    3. UPLOAD or WS_UPLOAD function to upload the data from local file to itab. (Considering file is local file)
    4. Loop at itab.
    Populate BDCTAB table.
    Call transaction <tcode> using <BDCTAB>
    Mode <A/N/E>
    Update <S/A>.
    Refresh BDCTAB.
    Endloop.
    (To populate BDCTAB, You need to transfer each and every field)
    The major differences between Session method and Call transaction are as follows:
    SESSION METHOD CALL TRANSACTION
    1. Data is not updated in database table unless Session is processed. Immediate updation in database table.
    2. No sy-subrc is returned. Sy-subrc is returned.
    3. Error log is created for error records. Errors need to be handled explicitly
    4. Updation in database table is always synchronous Updation in database table can be synchronous Or Asynchronous.
    Error Handling in CALL TRANSACTION
    When Session Method updates the records in database table, error records are stored in the log file. In Call transaction there is no such log file available and error record is lost unless handled. Usually you need to give report of all the error records i.e., records which are not inserted or updated in the database table. This can be done by the following method:
    Steps for the error handling in CALL TRANSACTION
    1. Internal table for the data (structure similar to your local file)
    2. BDCTAB like BDCDATA
    3. Internal table BDCMSG like BDCMSGCOLL
    4. Internal table similar to Ist internal table
    (Third and fourth steps are for error handling)
    5. UPLOAD or WS_UPLOAD function to upload the data from the local file to itab. (Considering file is local file)
    6. Loop at itab.
    Populate BDCTAB table.
    Call transaction <tr.code> using <Bdctab>
    Mode <A/N/E>
    Update <S/A>
    Messages <BDCMSG>.
    Perform check.
    Refresh BDCTAB.
    Endloop.
    7 Form check.
    IF sy-subrc <> 0. (Call transaction returns the sy-subrc if updating is not successful).
    Call function Format_message.
    (This function is called to store the message given by system and to display it along with record)
    Append itab2.
    Display the record and message.
    DIRECT INPUT
    About Direct Input
    In contrast to batch input, this technique does not create sessions, but stores the data directly. It does not simulate the online transaction. To enter the data into the corresponding database tables directly, the system calls a number of function modules that execute any necessary checks. In case of errors, the direct input technique provides a restart mechanism. However, to be able to activate the restart mechanism, direct input programs must be executed in the background only. Direct input checks the data thoroughly and then updates the database directly.
    You can start a Direct Input program in two ways;
    Start the program directly
    This is the quickest way to see if the program works with your flat file. This option is possible with all direct input programs. If the program ends abnormally, you will not have any logs telling you what has or has not been posted. To minimize the chance of this happening, always use the check file option for the first run with your flat file. This allows you to detect format errors before transfer.
    Starting the program via the DI administration transaction
    This transaction restarts the processing, if the data transfer program aborts. Since DI document are immediately posted into the SAP D/B, the restart option prevents the duplicate document posting that occurs during a program restart (i.e., without adjusting your flat file).
    Direct input is usually done for standard data like material master, FI accounting document, SD sales order and Classification for which SAP has provided standard programs.
    First time you work with the Direct Input administration program, you will need to do some preparation before you can transfer data:
    - Create variant
    - Define job
    - Start job
    - Restart job
    Common batch input errors
    - The batch input BDCDATA structure tries to assign values to fields which do not exist in the current transaction screen.
    - The screen in the BDCDATA structure does not match the right sequence, or an intermediate screen is missing.
    - On exceptional occasions, the logic flow of batch input session does not exactly match that of manual online processing. Testing the sessions online can discover by this.
    - The BDCDATA structure contains fields, which are longer than the actual definition.
    - Authorization problems.
    RECORDING A BATCH INPUT
    A B recording allows you to record a R/3 transaction and generate a program that contains all screens and field information in the required BDC-DATA format.
    You can either use SHDB transaction for recording or
    SYSTEM ? SERVICES ? BATCH INPUT ? EDIT
    And from here click recording.
    Enter name for the recording.
    (Dates are optional)
    Click recording.
    Enter transaction code.
    Enter.
    Click Save button.
    You finally come to a screen where, you have all the information for each screen including BDC_OKCODE.
    • Click Get Transaction.
    • Return to BI.
    • Click overview.
    • Position the cursor on the just recorded entry and click generate program.
    • Enter program name.
    • Click enter
    The program is generated for the particular transaction.
    BACKGROUND PROCESSING
    Need for Background processing
    When a large volume of data is involved, usually all batch inputs are done in background.
    The R/3 system includes functions that allow users to work non-interactively or offline. The background processing systems handle these functions.
    Non-interactively means that instead of executing the ABAP/4 programs and waiting for an answer, user can submit those programs for execution at a more convenient planned time.
    There are several reasons to submit programs for background execution.
    • The maximum time allowed for online execution should not exceed 300 seconds. User gets TIMEOUT error and an aborted transaction, if time for execution exceeds 300 seconds. To avoid these types of error, you can submit jobs for background processing.
    • You can use the system while your program is executing.
    This does not mean that interactive or online work is not useful. Both type of processing have their own purposes. Online work is the most common one entering business data, displaying information, printing small reports, managing the system and so on. Background jobs are mainly used for the following tasks; to process large amount of data, to execute periodic jobs without human intervention, to run program at a more convenient, planned time other than during normal working hours i.e., Nights or weekends.
    The transaction for background processing is SM36.
    Or
    Tools ? Administration ? Jobs ? Define jobs
    Or
    System ? services ? Jobs
    Components of the background jobs
    A job in Background processing is a series of steps that can be scheduled and step is a program for background processing.
    • Job name. Define the name of assigned to the job. It identifies the job. You can specify up to 32 characters for the name.
    • Job class. Indicates the type of background processing priority assigned to the job.
    The job class determines the priority of a job. The background system admits three types of job classes: A B & C, which correspond to job priority.
    • Job steps. Parameters to be passed for this screen are as follows:
    Program name.
    Variant if it is report program
    Start criteria for the job: Option available for this are as follows:
    Immediate - allows you to start a job immediately.
    Date/Time - allows you to start a job at a specific name.
    After job - you can start a job after a particular job.
    After event - allows you to start a job after a particular event.
    At operation mode - allows you to start a job when the system switches to a particular operation mode.
    Defining Background jobs
    It is two step process: Firstly, you define the job and then release it.
    When users define a job and save it, they are actually scheduling the report i.e., specifying the job components, the steps, the start time.
    When users schedule program for background processing, they are instructing the system to execute an ABAP/4 report or an external program in the background. Scheduled jobs are not executed until they are released. When jobs are released, they are sent for execution to the background processing system at the specified start time. Both scheduling and releasing of jobs require authorizations.
    HANDLING OF POP UP SCREEN IN BDC
    Many times in transaction pop up screen appears and for this screen you don’t pass any record but some indication to system telling it to proceed further. For example: The following screen
    To handle such screen, system has provided a variable called BDC_CURSOR. You pass this variable to BDCDATA and process the screen.
    Usually such screen appears in many transactions, in this case you are just passing information, that YES you want to save the information, that means YES should be clicked. So you are transferring this information to BDCDATA i.e., field name of YES which is usually SPOT_OPTION. Instead of BDC_OKCODE, you are passing BDC_CURSOR.
    BDC_CURSOR is also used to place cursor on particular field.
    A simple transaction where you are entering customer number on first screen and on next screen data is displayed for the particular customer number. Field, which we are changing here, are name and city. When you click on save, the changed record gets saved.
    Prerequisite to write this BDC interface as indicated earlier is:
    1. To find screen number
    2. To find screen field names, type of the field and length of the field.
    3. To find BDC_OKCODE for each screen
    4. Create flat file.
    generally  Batch Input usually are used to transfer large amount of data. For example you are implementing a new SAP project, and of course you will need some data transfer from legacy system to SAP system.
    CALL TRANSACTION is used especially for integration actions between two SAP systems or between different modules. Users sometimes wish to do something like that click a button or an item then SAP would inserts or changes data automatically. Here CALL TRANSACTION should be considered.
    2. Transfer data for multiple transactions usually the Batch Input method is used.
    check these sites for step by step process:
    For BDC:
    http://myweb.dal.ca/hchinni/sap/bdc_home.htm
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/home/bdc&
    http://www.sap-img.com/abap/learning-bdc-programming.htm
    http://www.sapdevelopment.co.uk/bdc/bdchome.htm
    http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm
    http://help.sap.com/saphelp_47x200/helpdata/en/69/c250684ba111d189750000e8322d00/frameset.htm
    http://www.sapbrain.com/TUTORIALS/TECHNICAL/BDC_tutorial.html
    Check these link:
    http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm
    http://www.sap-img.com/abap/question-about-bdc-program.htm
    http://www.itcserver.com/blog/2006/06/30/batch-input-vs-call-transaction/
    http://www.planetsap.com/bdc_main_page.htm
    call Transaction or session method ?
    null

  • What are the major issues to consider in code review? Or performance analys

    What are the major issues to consider in code review? Or performance analysis?

    I would not recommend you to try to optimize performance by checking the coding.
    There is the code inspector which can do all which makes sense automatically.
    The above mentioned points are not the real issues.
    Instead of code review you should execute test cases and measure the exection time.
    1. With STAD if you want to get good time measurement
    2. With SE30 and ST05, if you want to have data for further anaylsis.
    Check total time (SE30), check whether DB part is large, then go to SQL trace. Do the check mentioned here
    /people/siegfried.boes/blog/2007/09/05/the-sql-trace-st05-150-quick-and-easy
    to find the SQL bottlenecks.
    The major point about SQL problems is index support, if there is no proper index support then the performance will be poor. Be aware, that problems are only visible, if you tables are filled.
    In a test system where you have very little data, you will never encounter performance problems.
    Check also the Top10 of the SQ30 hit list.
    Be aware that a proper performance analysis is not a 5 minutes job.
    Siegfried

  • What are the best practices to extend the overall lifespan of my MacBook Pro and its battery?

    In general what are the recomended practices to extend the lifespan of my batter and other general practice to extend the lifespan and characteristics(such as performance and speed) like new on my MacBook Pro which this past fall (2011)?

    About Batteries in Modern Apple Laptops
    Apple - Batteries - Notebooks
    Extending the Life of Your Laptop Battery
    Apple - Batteries
    Determining Battery Cycle Count
    Calibrating your computer's battery for best performance
    MacBook and MacBook Pro- Mac reduces processor speed when battery is removed while operating from an A-C adaptor
    Battery University
    Kappy's Personal Suggestions for OS X Maintenance
    For disk repairs use Disk Utility.  For situations DU cannot handle the best third-party utilities are: Disk Warrior;  DW only fixes problems with the disk directory, but most disk problems are caused by directory corruption; Disk Warrior 4.x is now Intel Mac compatible. Drive Genius provides additional tools not found in Disk Warrior.  Versions 1.5.1 and later are Intel Mac compatible.
    OS X performs certain maintenance functions that are scheduled to occur on a daily, weekly, or monthly period. The maintenance scripts run in the early AM only if the computer is turned on 24/7 (no sleep.) If this isn't the case, then an excellent solution is to download and install a shareware utility such as Macaroni, JAW PseudoAnacron, or Anacron that will automate the maintenance activity regardless of whether the computer is turned off or asleep.  Dependence upon third-party utilities to run the periodic maintenance scripts was significantly reduced since Tiger.  These utilities have limited or no functionality with Snow Leopard or Lion and should not be installed.
    OS X automatically defragments files less than 20 MBs in size, so unless you have a disk full of very large files there's little need for defragmenting the hard drive. As for virus protection there are few if any such animals affecting OS X. You can protect the computer easily using the freeware Open Source virus protection software ClamXAV. Personally I would avoid most commercial anti-virus software because of their potential for causing problems. For more about malware see Macintosh Virus Guide.
    I would also recommend downloading a utility such as TinkerTool System, OnyX 2.4.3, or Cocktail 5.1.1 that you can use for periodic maintenance such as removing old log files and archives, clearing caches, etc.
    For emergency repairs install the freeware utility Applejack.  If you cannot start up in OS X, you may be able to start in single-user mode from which you can run Applejack to do a whole set of repair and maintenance routines from the command line.  Note that AppleJack 1.5 is required for Leopard. AppleJack 1.6 is compatible with Snow Leopard. There is no confirmation that this version also works with Lion.
    When you install any new system software or updates be sure to repair the hard drive and permissions beforehand. I also recommend booting into safe mode before doing system software updates.
    Get an external Firewire drive at least equal in size to the internal hard drive and make (and maintain) a bootable clone/backup. You can make a bootable clone using the Restore option of Disk Utility. You can also make and maintain clones with good backup software. My personal recommendations are (order is not significant):
    Carbon Copy Cloner
    Data Backup
    Deja Vu
    SuperDuper!
    SyncTwoFolders
    Synk Pro
    Synk Standard
    Tri-Backup
    Visit The XLab FAQs and read the FAQs on maintenance, optimization, virus protection, and backup and restore.
    Additional suggestions will be found in Mac Maintenance Quick Assist.
    Referenced software can be found at CNet Downloads or MacUpdate.
    Be sure you have an adequate amount of RAM installed for the number of applications you run concurrently. Be sure you leave a minimum of 10% of the hard drive's capacity as free space.

  • What are the things we need to take care while moving from 11g to 12c.

    Dear All,
    One of my client having the application running on 11g and now he wants to move it on 12c.
    Now he is asking to me that, what are the things will not work or impacted due to this. Any code level changes, syntax, functions etc are working in 11g and now there is difference or not working in 12c. Could you please help me in this.
    Is there any document for all these thing. I searched on google but not able to find any specific doc.
    Thanks in advance.
    Regards,
    ganesh

    Gaurav_91 wrote:
    Hi,
    Moving from 11g to 12c will not impact anything.
    Database in 11g will now act as PDB's in 12c.
    And what makes you say so? What about the changes/fixes done in the optimizer that would alter the plans? What about if the client wants to use in-memory database option? And your statement that database in 11g will now act as PDB in 12c doesn't make any sense. What if the client is not willing to move to multitenancy? What about the scripts that are running in 11g without any issues and suddenly, will break in 12c  due to PDB's ? Do you have any technical reference to validate your claim that there won't be any impact ?
    Aman....

  • What are the things to check after full imp in 10g?

    Dear all,
    Source
    =======
    OS server ==> HP-UX
    Oracle version ==> Oracle 9.2.0.8
    DB Name ==> MSST
    DB total users ==> 320
    Full export in ==> /u02/export/Jan09.dmp
    Tablespaces ==> SC, SC_I, SA, SA_I, PP, PP_I, AC, AC_I, SD
    Destination
    ============
    OS server ==> HP-UX
    DB Name ==> CHDB
    Existg DB users ==> 20
    Oracle version ==> Oracle 10.2.0.4
    copied 9i dump file in ==> /u03/export
    Tablespaces created same as Oracle 9i i.e;
    Tablespaces ==> SC, SC_I, SA, SA_I, PP, PP_I, AC, AC_I, SD
    I had run full import on Destination server i.e; Oracle 10g & following is the command i used:
    imp system/pwd@conn_string file=/u03/export/Jan09.dmp log=/u03/export/Jan09_imp.log full=y ignore=y statistics=none
    Imported successfully with few errors like
    Now my question is
    ===================
    How to check everything is same/similar like Oracle 9i database ( source ), for example ( i used this technique ):
    What are the things to check after full imp in 10g?
    MSST_DB>SHOW USER
    MSST_DB>SA
    MSST_DB>select object_type, count(*) from user_objects group by objects;
    OBJECT_TYPE COUNT(*)
    DATABASE LINK 2
    FUNCTION 23
    INDEX 1795
    LOB 6
    PACKAGE 8
    PACKAGE BODY 8
    PROCEDURE 30
    SEQUENCE 67
    SYNONYM 60
    TABLE 644
    TRIGGER 3
    VIEW 20
    CHDB_DB>SHOW USER
    CHDB_DB>SA
    CHDB_DB>select object_type, count(*) from user_objects group by objects;
    OBJECT_TYPE COUNT(*)
    INDEX 1794
    PROCEDURE 30
    TABLE 644
    TRIGGER 3
    VIEW 20
    FUNCTION 23
    SYNONYM 60
    PACKAGE BODY 8
    SEQUENCE 67
    PACKAGE 8
    LOB 6

    What are the things to check after full imp in 10g?Only public database links which are in use by your these users which you export/import (Only if you did user level export/import and not DB level).
    If you log files does not show error during creation of any object, you don't need to double check any thing. Otherwise do on with the method which you mentioned by counting the objects.
    Or you can create a database link from source to destination and use a query with MINUS to find out if there is any object missing
    select object_name,object_type from user_objects
    MINUS
    select object_name,object_type from user_objects@destination_database;Salman

Maybe you are looking for