Experience in ABAP OO and heavy background processing?

Hi,
we're planning to develop a new application with a (very) high part of background processing. We plan to use the ABAP OO. We also want to make a good OO-Design (with many SETTER and GETTER methods and so on). I'm afraid we will get a lot of "program to program" communication and we will atomize our application. Also it's sounds to me like a conflict with the stuff from the Performance-course BC490.
Has anybody experience with ABAP 00 and applications that normally designed for a "number cruncher"?
Thanks and regards,
Stefan

Hi Mariana,
I've started with two technical prototypes that have a very little business logic. One prototype is designed in the "good old" ABAP and one in the ABAP OO and a selfmade OO-framework from our company. This framework is very comforable and offers a lot of methods and superclasses. For vectors there is a own superclass. So for you question: We use a own object to pass the vectors.
Also we use the software objectif for the OOD. I've learned how important a good OOD is, before I started any coding.
My prototypes have a very simple business logic. They creates bills for 10.000 invoice recipient. The only feature is, that every recipient can have his own customizing to decide which items should be together on one invoice to a individual invoice date. 
I must admit that the API in the OO prototype are more understandable, but for the performance I see still the follow bottlenecks with the I/O:
- When I instance a business object, all attributs are loaded into the memory.  In the old ABAP I use only the required fields. So the "smelly" SELECT *-Statement is back again...
- A business-class (A) that have dependent business-classes (B1, B2, B3...BN) should instance his dependes objects with the first access the the class (A). When the classes (B1,B2...BN) has also dependent classes, this object should be instances (B1 has C1,C2,C3..CN), too. There is always a "vector"-class between this classes that notice the reference of his objects.In my prototype for example you have a invoice recipient.
In my prototype for example I have a class invoice recipient (class A). This recipient has a vector of bill-header (class B) and every bill-header has a vector of bill-items (class C). Between every of this classe is a vector-class that manage the references of the objects.
I've programmed this lazy (hope that this is the correct word that a OO-gurus use). This means I instance only the class A. If there is a call to a method from object A that need the information from the class B-objects, than i look if the reference of the vector-class for the B-Object is already available. When not I instance the vecotr-class and this reads all dependens object B.
So there is much more I/O than in old ABAP, after all.
However I'm a OO beginner.
Therefore I'm waiting that an OO-expert from our company take a look to my prototype coding and improve this for a better performance. I'm looking forward for some good tips. I will let you know when I've good some other nuts and bolts.
Perhaps SAP needs a OO-database instead a rational database, so that all GET-methods goes directly to the database to avoid a instance with all attributs in the memory of the application-server...
Many greetings from germany,
Stefan

Similar Messages

  • What is lightweight process and heavy weight process

    please can any one send the difference between lightweight process and heavy weight process .... and why thread are called lightwieght process

    shankrocks wrote:
    please can any one send the difference between lightweight process and heavy weight process .... and why thread are called lightwieght processProcess and thread are often used interchangeably (even though process also is used in a wider meaning). In Java a lightweight thread is also called a green thread.
    [http://en.wikipedia.org/wiki/Green_threads]
    So when programming in Java you're going to be using lightweight threads (unless you somehow bypass the JVM and start OS threads directly).
    More generally heavyweight usually refers to something that supplied by the OS. You have the same is Swing/AWT where Swing widgets are called lightweight because they're drawn by Java while AWT widgets are called heayweight because they're drawn by the OS.

  • UNDO Management - Config changes for OLTP and large background processes

    Hi,
    I am running 9i on a 2 node RAC cluster - Sun Solaris.
    I use Automatic Undo.
    The database is currently configured for OLTP and has 2 undo datafiles - 1GB in size and undo_retention set to default (900seconds)
    I am about to start scheduling a batch job to run each night that will delete approx 1 million records each time it runs.
    To get this to work without the dreaded Error -30036: ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDO01', I have increased the undo datafiles to 5GB and the undo_retention to 4000.
    The question is do I need to worry about switching between these settings - using the smaller values for daytime OLTP and the nighttime settings for the heavy processing?
    What issues might I encounter if I just left the UNDO Management settings in place that I use for the large delete?

    I would say no, leave the settings the highest level required to accomplish the work of the instance. Once the setting are correct for the instance, you should not have to change them around. They are really max setting for the heaviest load on your instance.

  • MMO best practice. Download music and heavy files to users hard disk?

    MMO best practice. Download music and heavy files to users hard disk?
    I have just downloaded a Hello Kitty MMO app for research (for my kid of course).
    I am developping my English teaching app with LOADS of classical music, mp3 sentences and heavy background bgs. Would the best idea be for client to download these to their hardisk ie I would not need to stream them and therefore save a fortune on bandwidth charges from my ISP???
    Cheers

    I see what you mean ie: they have to get the file to their computer one way or another BUT
    a. If they are going to repeatedly use that file ie: a custom cursor or classical piece of music every week when they log on then it would be better for them to have it on their hardisk wouldn't it? If not, they would have to download it every time they log on. I take it that's why the hello kitty site makes you download 130 megas so you have everything on your hardisk, ie: you will be reusing all those assets MANY times in the future. The experience wil be very FAST as you have it on your local disk and needn't have to wait for streaming.

  • CUA - SUIM in client system with background processing of IDOCS

    Hi
    We have setup CUA in our Solution Manager system 4.0 sr2 SP11 and activated background processing of idocs.  When we run SUIM in the child system the user creation/change information is now showing the name of the background user rather than the actual name of the creator/modifier.  
    Has anyone else seen this before and is it standard functionality or a bug?
    Thanks in advance
    Justin

    Hi Djamel
    When you set up CUA you do the inital import of the roles with SCUG, ensure you have the company details correct in each system.  Also in each system schedule the background job SUSR_ZBV_GET_RECEIVER_PROFILES, this will get the details of any new roles/profiles setup in the child systems.
    Regards
    Justin

  • Executing BW Workbooks from EP as background process

    Hi all!
    I need to execute BEX workbooks from Enterprise Portal with automatically predefined values of variables. Iu2019d like to do this in two ways: normal (ordinary way) and as background process (result: xls. file). Can you help me?

    Hi Alzatula,
    You can do this in information broadcasting.
    You can configur broadcast settings for workbooks.
    The prerequisite is you need a precalculation server.
    Check on sdn, how to register a precalculation server.
    You can execute it in foreground or you can schedule it in background.
    Check this link, it may help you to set up the broadcast setting.
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/00172934-f3c1-2b10-728a-c42a0fc28c61
    Check this how to as well
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/d09dea78-b61a-2b10-c7ad-acd94d64079a
    Information broacasting can be called through BEx broadcaster in EP.
    Hope it helps,
    Regards,
    Sunmit.

  • ABAP trail 7.00 timeouts and background process

    Does anyone knows if it's possible to change the number of dialog and background processes?
    And the transaction to change the timeouts of such processes?
    Thank you

    you can change the timeout in rz11.Parameter-name is rdisp/max_wprun_time. Backgound processes habe no timeout, so this value is only valid for dia-processes
    To change the number, you have to adjust your instance profile. In the forum  'Netweaver Administrator' should be some information about that. So just the short hint: you can adjust the profiles in RZ10, but have to do some steps for that. Just search in NW-Admin-forum above.
    Regards,
    ulf

  • ABAP Custom Report (ALV Format) in Background Processing

    Hi
    I am not the hardcore ABAP Person. But want to know about the detail fact of the ABAP Custome Reports. The question is can we do the background processing for the ABAP Custome Report in ALV Format.
    If Yes ..do we require to have any additional Function/code to get the spool in ALV Format. I saw the comments that the output will look like the mess.
    Please share your comment or any useful documenation on this. We are in ECC 6.0
    Thanks in advance..and yes it will be rewared by points.
    Navin

    You can use alv's in background using docking containers, but the display wont be interactive. If you search the forum you will see tons of threads which talk about running ALV's in background.
    For the output to be interactive, you can run the report in foreground and do the data processing in background.
    Refer this link:
    Displaying ALV Grid in Background Job

  • Background process going to " abap/heap limit"

    Hi All,
    When i check the trace file of the workprocess which is a background process it shows that the
    " WP has reached abap/heap limit"
    Does this trigger the dialog process into PRIV mode? or is it OK for a background process to reach the heap limit.
    Please advise.
    Best Regards,
    DVRK

    Hi Ramakrishna,
    The trace you are seeing is for the background process  and is no longer related to dailog process.
    Some times we can see the abap/heaplimit issues due to background jobs running parallely on the same host.
    When the abap/heaplimit reaches max. the job gets cancels
    Try to trigger the job on low load instance
    (or).
    If this occurs on a regular basis. Try to find out the jobs which are failing and tune them accordingly
    (or)
    Take the help of Basis in fine tuning the abap heap memory parameters.
    Hope I answered your query.
    Regards
    Sandy

  • GUI_DOWNLOAD and background processing

    Hello,
    I have created a process which creates a file. this process uses GUI_DOWNLOAD to put the file on the users C drive or other directory on our network. The user wants to run this process in background and the program is returning a 6  (error unknown) from the GUI_DOWNLOAD FM. I was looking on SDN and found out the GUI_DOWNLOAD only works in foreground. You have to use OPEN and CLOSE DATASET statements to process in background. I am thinking about putting a button to denote foreground/background processing and using the appropriate statements to process the file. I will then have to get the file from the app server to a place will the user can get access to it.
    <b>first question</b> - is there a FM to do a FTP from the app server to a directory on our network for the user to access?
    <b>second question</b> - is this the right approach or is there something else that I should be doing.
    thanks in advance for your help

    Hi,
    Yes, your right, GUI_DOWNLOAD wil not work in background mode, you need to place the file in Application server, here.
    See the below link for a FTP program, use the proper commands(i do not know whether downloading the file is possible through the commands)
    http://www.sap-img.com/ab003.htm
    or else, write a small program which downloads the data from the application server, but it should run in the foreground
    Regards
    Sudheer

  • Background Processing, Selection Screens and Variants

    Hi All,
    I am having a little trouble Background Processing with Selection Screens and Variants.
    When a user runs my report and selects the option of background processing, then they select a checkbox. Once this is checked, they should go and fill in details, press Execute and voila a background process is created. However what is happening is that when i execute it then it asks for a variant. I do not want this to happen. I want the values in the selection screens to be used as default. Here is my code for background processing
    FORM START_BACKGROUND_PROCESSING.
      CALL FUNCTION 'BP_JOBVARIANT_SCHEDULE'
        EXPORTING
          TITLE_NAME            = 'End Customer Report '
          JOB_NAME              = 'customer_report'
          PROG_NAME             = 'ZSE_SD_SALES'
      EXCEPTIONS
        NO_SUCH_PROGRAM       = 1
        OTHERS                = 2
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    "START_BACKGROUND_PROCESSING
    After the background process is started, all teh data is collated then written to the app server. this is the order
      ELSEIF R2 EQ 'X' AND SY-BATCH EQ 'X'.
        PERFORM INITIALIZE_DATA.
        PERFORM SELECT_DATA.
        PERFORM PROCESS_DATA.
        PERFORM GET_END_CUSTOMER_DATA.
        PERFORM WRITE_TO_APP_SERVER.
    Any ideas? Points given to those who are helpful

    done myeslf

  • How to deploy an app with servlet and background processing

    i have a servlet with background processing. it has to run 24 hours a day.
    but i have problem with shutdown (after 1-2 hours without user action). [9iAS 9.0.3.0, windows 2000]
    i created for application seperate OC4J (in the EM) and i deployed it there. first time as war file, later as ear file (because there is possible to re-deploy only ear file).
    but it seems that the servlets are not designated to run as a uninterruptible task.
    the question is: how to deploy such (servlet + uninterruptible background processing) application in the 9iAS?
    a) everything in the OC4J (then how to disable shutdown?)
    b) servlet in the OC4J. where (and how) to install the rest of application?
    b1) servlet in the OC4J + rmi/soap/... + standalone server?
    what is the standard in the oracle world :) ?
    thanks

    Better to post your topic in the iPad in the Enterprise community.
    This is the, "Using Mac App Store" forum and for the most part for troubleshooting the App Store.

  • RHINTE20 and background processing

    Does anyone know how to set a variant when running RHINTE20?
    When I run the program it presents a list of objects to be corrected, and I manually select all the subtree with the icon and then run Create Several Objects.  It's these last two steps I'd like to specify in the variant, so I can setup the job to run nightly (grab the folders and process all objects).
    Thank you in advance for any hints to resolve this.
    Cheers, Al Perkins

    Hi Albert,
    Make all your selections and click on Save (CtrlS). You will be taken to Variant Attributes screen. Give the variant name, meaning, check "only for background processing" and save. Then when you execute the program, you should be able to select your saved variant by clicking on Get Variant (ShiftF5).
    Donnie

  • Executing Abap Queries in Abap Code and processing the result

    Hi,
    I want to execute ABAP Queries (designed by sq01) in an abap report and processing the result in an internal table.
    How could it be work?
    Thanks a lot for your responses,
    with kind Regards
    Reinhold Strobl

    Hello,
    GO to SQ01 and select your query. Go to Menu QUERY-->More Functions->Display Report Name.
    You can then take that report name and go to SE38. Copy the code before END-OF_SELECTION and then modify as per your own requirements.
    Regrads
    Saket Sharma

  • Background processing for ABAP report with selection screen

    Hi ABAP Gurus,
    I m facing a strange problem in scheduling a background job for my report with a selection screen. I have a variant for the report.
    I scheduled a job, but it seems to be not doing anything though all the system resources are available. The job overview shows "Acive" for the job. The job is neither stopping anything, it is just sitting there In SM50, the status shows "On Hold".
    Any ideas/comments on the problem and how this can be overcome?
    Qucik replies and solutions will be highly appreciated as this is a crucial part for a go-live project.
    Thanks in advance.
    Shivani.

    Yes. My report has a selection-screen which requires user input. But I have created  a variant for the report and trying to run it in background using this variant. But facing this problem.
    Strange thing is, instead of the usual SM36/SM37 option where we schedule and monitor background jobs, this option does not work for my report.
    But I tried through SE38, and from my selection screen I selected "Schedule background job" and "run immediately" option, and this works. Though I still use SM37 to monitor this background job.
    I have never faced such a situation before.
    Any hints/tips why this happens and how this can be overcome in the future?
    Thanks in advance.
    Shivani.

Maybe you are looking for

  • How to get the Current Date in webdynpro java

    Hi Experts,              In my project i have two date input fields called                     1)Start Date                   2)End Date    and one Absence type input field is there. The user wants to set the start Date ,End date and absence type. Ho

  • [Solved] MPD clients connect to server too long first time

    When my system start mpd clients cannot connect to server a long(10-15 seconds or more) for some reason. Same time internet connection and network seems to be ok. So, It's look like I run mpc for example and it get stuck. This problem is new. 2-4 wee

  • Can't open Keyboard

    Hi All, I'm a very new user to Garage band and the world of MAc's. On a track that I'm working on every time I press cmd & K the keyboard doesn't appear. Does anyone have any clues as to why this is happening. Thanks in advance

  • Alert messages to ironport need to use ISP outbound relay

    I've noticed that alert messages being sent to ironport are being rejected at the firewall of my ISP. I must send all outgoing SMTP traffic from the ironport to the ISP relay. I'm not quite sure how to enable this capability. I've got a C160 series a

  • Windows login screen buttons not working (sort of!?!?)

    Okay, It seems I'm plagued with the weird and strange issues, so the gist is... Have a Dell Latitude E6330 with Windows 7 Ult.  When I boot up and get to where you login, when I click on ANY of the on desktop 'buttons' (i.e. the 'login' arrow after p