Error in handling Print Params In Parallel Processing of background jobs

Hi Friends,
My requirement is to optimize the performance of standard pgm RELEABL1 that takes a long time to complete when scheduled in background,and for that i have created a zpgm which will split the input data and run the jobs in parallel . I am using the submit statement and JOB_OPEN and JOB_CLOSE function modules to schedule the standard prg RELEABL1 in background with the input from my zpgm. The problem here is there is a push button " PRINT PARAMETERS" near the execute button on the selection screen of the standard pgm RELEABL1 in which the printer details have to be mentioned. Whenever i schedule the job in backgroung it throughs an error stating that " Define the Print Parameter First " . I tried my luck with all possible combinations but not able to handle this through my zpgm.....otherwise my pgm works fine. Can someone please guide me on how to handle this print parameters either through submit or what ever way possible.
Thanks & Regards,
Balaji.K

Hi Balaji,
We have the same performanced problem. 8 processes in parallel, still suffers from bad performance. How many subscribers are there on the system and how many processes do you use ?
Best Regards,
Ugur Uygan

Similar Messages

  • How to print result of transaction processing in background job?

    Hi experts,
    Could you give me advice how to resolve following task:
    I need to print a list of sales orders (transaction VA05) in background job.
    Are exist standard techniques for this? Or should I create new program (report) and create the job with printing of parameters?
    Thanks for advance

    Hi,
    Define a background job with the program  name  & variant.
    Pass the print specifications as well.
    Best regards,
    Prashant

  • Need help with parallel process in background; not able to call FM in bgnd

    Hello,
      I am trying since 2 days to solve the issue of parallel process in background without using FPP.
    For which I want to call function module of class method in new task but to be processed by background process and not dialog.
    I searched so many websites but everyone has suggesteed to 'call function in background task' . But the fact is the processing of function happens by dailog process even in this case.
    I want to loop at table and call FM or class method inside each loop.
    Kindly suggest me how can I call function or class method in new task in everycall and prcoess it in background.
    thanks

    Balaji,
    Is the name of the button between single or double quotes?
    Regards,
    Dan
    Blog: http://DanielMcGhan.us/
    Work: http://SkillBuilders.com/

  • Parallel processing in background

    Hi All,
    I am processing 1 million of records in background, which takes approximately around 10 hrs. I wanted to reduce the time to less than 1 hr and tried using parallel processing. But the tasks run in Dialog workprocesses and giving abap short dumps due to time out.
    Is there any other solutions using that i can reduce total processing time.
    Please note that i cannot split. I am getting 1 million records from a select query and after processing all those records in SAP, I am sending to XI and XI will post in legacy system.
    Please note that all other performance tunings done.
    Thanks,
    Rajesh.

    Hi Rajesh,
    Refer sample code for <b>Parallel Processing</b>:
    By doing this your <b>processing</b> time will be highly optimized.
    Go thru the description given in the code at each level.
    This code Checks available WORK PROCESSes and assigns data in packets for processing. This way you save a lot of time esp when data is in Millions.
    Hope it helps.
    REPORT PARAJOB.
    Data declarations
    DATA: GROUP LIKE RZLLITAB-CLASSNAME VALUE ' ',
    "Parallel processing group.
    "SPACE = group default (all
    "servers)
    WP_AVAILABLE TYPE I, "Number of dialog work processes
    "available for parallel processing
    "(free work processes)
    WP_TOTAL TYPE I, "Total number of dialog work
    "processes in the group
    MSG(80) VALUE SPACE, "Container for error message in
    "case of remote RFC exception.
    INFO LIKE RFCSI, C, "Message text
    JOBS TYPE I VALUE 10, "Number of parallel jobs
    SND_JOBS TYPE I VALUE 1, "Work packets sent for processing
    RCV_JOBS TYPE I VALUE 1, "Work packet replies received
    EXCP_FLAG(1) TYPE C, "Number of RESOURCE_FAILUREs
    TASKNAME(4) TYPE N VALUE '0001', "Task name (name of
    "parallel processing work unit)
    BEGIN OF TASKLIST OCCURS 10, "Task administration
    TASKNAME(4) TYPE C,
    RFCDEST LIKE RFCSI-RFCDEST,
    RFCHOST LIKE RFCSI-RFCHOST,
    END OF TASKLIST.
    Optional call to SBPT_INITIALIZE to check the
    group in which parallel processing is to take place.
    Could be used to optimize sizing of work packets
    work / WP_AVAILABLE).
    CALL FUNCTION <b>'SPBT_INITIALIZE'</b>
    EXPORTING
    GROUP_NAME = GROUP
    "Name of group to check
    IMPORTING
    MAX_PBT_WPS = WP_TOTAL
    "Total number of dialog work
    "processes available in group
    "for parallel processing
    FREE_PBT_WPS = <b>WP_AVAILABLE</b>
    "Number of work processes
    "available in group for
    "parallel processing at this
    "moment
    EXCEPTIONS
    INVALID_GROUP_NAME = 1
    "Incorrect group name; RFC
    "group not defined. See
    "transaction RZ12
    INTERNAL_ERROR = 2
    "R/3 System error; see the
    "system log (transaction
    "SM21) for diagnostic info
    PBT_ENV_ALREADY_INITIALIZED = 3
    "Function module may be
    "called only once; is called
    "automatically by R/3 if you
    "do not call before starting
    "parallel processing
    CURRENTLY_NO_RESOURCES_AVAIL = 4
    "No dialog work processes
    "in the group are available;
    "they are busy or server load
    "is too high
    NO_PBT_RESOURCES_FOUND = 5
    "No servers in the group
    "met the criteria of >
    "two work processes
    "defined.
    CANT_INIT_DIFFERENT_PBT_GROUPS = 6
    "You have already initialized
    "one group and have now tried
    "initialize a different group.
    OTHERS = 7..
    CASE SY-SUBRC.
    WHEN 0.
    "Everything’s ok. Optionally set up for optimizing size of
    "work packets.
    WHEN 1.
    "Non-existent group name. Stop report.
    MESSAGE E836. "Group not defined.
    WHEN 2.
    "System error. Stop and check system log for error
    "analysis.
    WHEN 3.
    "Programming error. Stop and correct program.
    MESSAGE E833. "PBT environment was already initialized.
    WHEN 4.
    "No resources: this may be a temporary problem. You
    "may wish to pause briefly and repeat the call. Otherwise
    "check your RFC group administration: Group defined
    "in accordance with your requirements?
    MESSAGE E837. "All servers currently busy.
    WHEN 5.
    "Check your servers, network, operation modes.
    WHEN 6.
    Do parallel processing. Use CALL FUNCTION STARTING NEW TASK
    DESTINATION IN GROUP to call the function module that does the
    work. Make a call for each record that is to be processed, or
    divide the records into work packets. In each case, provide the
    set of records as an internal table in the CALL FUNCTION
    keyword (EXPORT, TABLES arguments).
    DO.
    CALL FUNCTION 'RFC_SYSTEM_INFO' "Function module to perform
    "in parallel
    STARTING NEW TASK TASKNAME "Name for identifying this
    "RFC call
    DESTINATION IN GROUP group "Name of group of servers to
    "use for parallel processing.
    "Enter group name exactly
    "as it appears in transaction
    "RZ12 (all caps). You may
    "use only one group name in a
    "particular ABAP program.
    PERFORMING RETURN_INFO ON END OF TASK
    "This form is called when the
    "RFC call completes. It can
    "collect IMPORT and TABLES
    "parameters from the called
    "function with RECEIVE.
    EXCEPTIONS
    COMMUNICATION_FAILURE = 1 MESSAGE msg
    "Destination server not
    "reached or communication
    "interrupted. MESSAGE msg
    "captures any message
    "returned with this
    "exception (E or A messages
    "from the called FM, for
    "example. After exception
    "1 or 2, instead of aborting
    "your program, you could use
    "SPBT_GET_PP_DESTINATION and
    "SPBT_DO_NOT_USE_SERVER to
    "exclude this server from
    "further parallel processing.
    "You could then re-try this
    "call using a different
    "server.
    SYSTEM_FAILURE = 2 MESSAGE msg
    "Program or other internal
    "R/3 error. MESSAGE msg
    "captures any message
    "returned with this
    "exception.
    RESOURCE_FAILURE = 3. "No work processes are
    "currently available. Your
    "program MUST handle this
    "exception.
    YOUR_EXCEPTIONS = X. "Add exceptions generated by
    "the called function module
    "here. Exceptions are
    "returned to you and you can
    "respond to them here.
    CASE SY-SUBRC.
    WHEN 0.
    "Administration of asynchronous RFC tasks
    "Save name of task...
    TASKLIST-TASKNAME = TASKNAME.
    "... and get server that is performing RFC call.
    CALL FUNCTION 'SPBT_GET_PP_DESTINATION'
    EXPORTING
    RFCDEST = TASKLIST-RFCDEST
    EXCEPTIONS
    OTHERS = 1.
    APPEND TASKLIST.
    WRITE: / 'Started task: ', TASKLIST-TASKNAME COLOR 2.
    TASKNAME = TASKNAME + 1.
    SND_JOBS = SND_JOBS + 1.
    "Mechanism for determining when to leave the loop. Here, a
    "simple counter of the number of parallel processing tasks.
    "In production use, you would end the loop when you have
    "finished dispatching the data that is to be processed.
    JOBS = JOBS - 1. "Number of existing jobs
    IF JOBS = 0.
    EXIT. "Job processing finished
    ENDIF.
    WHEN 1 OR 2.
    "Handle communication and system failure. Your program must
    "catch these exceptions and arrange for a recoverable
    "termination of the background processing job.
    "Recommendation: Log the data that has been processed when
    "an RFC task is started and when it returns, so that the
    "job can be restarted with unprocessed data.
    WRITE msg.
    "Remove server from further consideration for
    "parallel processing tasks in this program.
    "Get name of server just called...
    CALL FUNCTION 'SPBT_GET_PP_DESTINATION'
    EXPORTING
    RFCDEST = TASKLIST-RFCDEST
    EXCEPTIONS
    OTHERS = 1.
    "Then remove from list of available servers.
    CALL FUNCTION 'SPBT_DO_NOT_USE_SERVER'
    IMPORTING
    SERVERNAME = TASKLIST-RFCDEST
    EXCEPTIONS
    INVALID_SERVER_NAME = 1
    NO_MORE_RESOURCES_LEFT = 2
    "No servers left in group.
    PBT_ENV_NOT_INITIALIZED_YET = 3
    OTHERS = 4.
    WHEN 3.
    "No resources (dialog work processes) available at
    "present. You need to handle this exception, waiting
    "and repeating the CALL FUNCTION until processing
    "can continue or it is apparent that there is a
    "problem that prevents continuation.
    MESSAGE I837. "All servers currently busy.
    "Wait for replies to asynchronous RFC calls. Each
    "reply should make a dialog work process available again.
    IF EXCP_FLAG = SPACE.
    EXCP_FLAG = 'X'.
    "First attempt at RESOURCE_FAILURE handling. Wait
    "until all RFC calls have returned or up to 1 second.
    "Then repeat CALL FUNCTION.
    WAIT UNTIL RCV_JOBS >= SND_JOBS UP TO '1' SECONDS.
    ELSE.
    "Second attempt at RESOURCE_FAILURE handling
    WAIT UNTIL RCV_JOBS >= SND_JOBS UP TO '5' SECONDS.
    "SY-SUBRC 0 from WAIT shows that replies have returned.
    "The resource problem was therefore probably temporary
    "and due to the workload. A non-zero RC suggests that
    "no RFC calls have been completed, and there may be
    "problems.
    IF SY-SUBRC = 0.
    CLEAR EXCP_FLAG.
    ELSE. "No replies
    "Endless loop handling
    ENDIF.
    ENDIF.
    ENDCASE.
    ENDDO.
    Wait for end of job: replies from all RFC tasks.
    Receive remaining asynchronous replies
    WAIT UNTIL RCV_JOBS >= SND_JOBS.
    LOOP AT TASKLIST.
    WRITE:/ 'Received task:', TASKLIST-TASKNAME COLOR 1,
    30 'Destination: ', TASKLIST-RFCDEST COLOR 1.
    ENDLOOP.
    This routine is triggered when an RFC call completes and
    returns. The routine uses RECEIVE to collect IMPORT and TABLE
    data from the RFC function module.
    Note that the WRITE keyword is not supported in asynchronous
    RFC. If you need to generate a list, then your RFC function
    module should return the list data in an internal table. You
    can then collect this data and output the list at the conclusion
    of processing.
    FORM RETURN_INFO USING TASKNAME.
    DATA: INFO_RFCDEST LIKE TASKLIST-RFCDEST.
    RECEIVE RESULTS FROM FUNCTION 'RFC_SYSTEM_INFO'
    IMPORTING RFCSI_EXPORT = INFO
    EXCEPTIONS
    COMMUNICATION_FAILURE = 1
    SYSTEM_FAILURE = 2.
    RCV_JOBS = RCV_JOBS + 1. "Receiving data
    IF SY-SUBRC NE 0.
    Handle communication and system failure
    ELSE.
    READ TABLE TASKLIST WITH KEY TASKNAME = TASKNAME.
    IF SY-SUBRC = 0. "Register data
    TASKLIST-RFCHOST = INFO_RFCHOST.
    MODIFY TASKLIST INDEX SY-TABIX.
    ENDIF.
    ENDIF.
    ENDFORM
    Reward points if that helps.
    Manish
    Message was edited by:
            Manish Kumar

  • Parallel processing in background using Job scheduling...

    (Note: Please understand my question completely before redirecting me to parallel processing links in sdn. I hve gone through most of them.)
    Hi ABAP Gurus,
    I have read a bit till now about parallel processing. But I have a doubt.
    I am working on data transfer of around 5 million accounting records from lagacy to R/3 using Batch input recording.
    Now if these all records reside in one flat file and if I then process that flat file in my batch input program, I guess it will take days to do it. So my boss suggested
    to use parallel processing in SAP.
    Now, from the SDN threads, it seems that we have to create a Remote enabled function module for it and stuf....
    But I have a different idea. I thought to dividE these 5 million records in 10 flat files instead of just one and then to run the Custom BDC program with 10 instances which will process 10 flat files in background using Job scheduling.
    Can this be also called parallel processing ?
    Please let me know if this sounds wise to you guys...
    Regards,
    Tushar.

    Thanks for your reply...
    So what do you suggest how can I use Parallel procesisng for transferring 5 million records which is present in one flat file using custom BDC.?
    I am posting my custom BDC code for million record transfer as follows (This code is for creation of material master using BDC.)
    report ZMMI_MATERIAL_MASTER_TEST
          no standard page heading line-size 255.
    include bdcrecx1.
    parameters: dataset(132) lower case default
                                 '/tmp/testmatfile.txt'.
       DO NOT CHANGE - the generated data section - DO NOT CHANGE    ***
      If it is nessesary to change the data section use the rules:
      1.) Each definition of a field exists of two lines
      2.) The first line shows exactly the comment
          '* data element: ' followed with the data element
          which describes the field.
          If you don't have a data element use the
          comment without a data element name
      3.) The second line shows the fieldname of the
          structure, the fieldname must consist of
          a fieldname and optional the character '_' and
          three numbers and the field length in brackets
      4.) Each field must be type C.
    Generated data section with specific formatting - DO NOT CHANGE  ***
    data: begin of record,
    data element: MATNR
           MATNR_001(018),
    data element: MBRSH
           MBRSH_002(001),
    data element: MTART
           MTART_003(004),
    data element: XFELD
           KZSEL_01_004(001),
    data element: MAKTX
           MAKTX_005(040),
    data element: MEINS
           MEINS_006(003),
    data element: MATKL
           MATKL_007(009),
    data element: BISMT
           BISMT_008(018),
    data element: EXTWG
           EXTWG_009(018),
    data element: SPART
           SPART_010(002),
    data element: PRODH_D
           PRDHA_011(018),
    data element: MTPOS_MARA
           MTPOS_MARA_012(004),
         end of record.
    data: lw_record(200).
    End generated data section ***
    data: begin of t_data occurs 0,
          matnr(18),
          mbrsh(1),
          mtart(4),
          maktx(40),
          meins(3),
          matkl(9),
          bismt(18),
          extwg(18),
          spart(2),
          prdha(18),
          MTPOS_MARA(4),
        end of t_data.
    start-of-selection.
    perform open_dataset using dataset.
    perform open_group.
    do.
    *read dataset dataset into record.
    read dataset dataset into lw_record.
    if sy-subrc eq 0.
    clear t_data.
    split lw_record
       at ','
    into t_data-matnr
          t_data-mbrsh
          t_data-mtart
          t_data-maktx
          t_data-meins
          t_data-matkl
          t_data-bismt
          t_data-extwg
          t_data-spart
          t_data-prdha
          t_data-MTPOS_MARA.
    append t_data.
    else.
    exit.
    endif.
    enddo.
    loop at t_data.
    *if sy-subrc <> 0. exit. endif.
    perform bdc_dynpro      using 'SAPLMGMM' '0060'.
    perform bdc_field       using 'BDC_CURSOR'
                                 'RMMG1-MATNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                 '=AUSW'.
    perform bdc_field       using 'RMMG1-MATNR'
                                 t_data-MATNR.
    perform bdc_field       using 'RMMG1-MBRSH'
                                 t_data-MBRSH.
    perform bdc_field       using 'RMMG1-MTART'
                                 t_data-MTART.
    perform bdc_dynpro      using 'SAPLMGMM' '0070'.
    perform bdc_field       using 'BDC_CURSOR'
                                 'MSICHTAUSW-DYTXT(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                 '=ENTR'.
    perform bdc_field       using 'MSICHTAUSW-KZSEL(01)'
                                 'X'.
    perform bdc_dynpro      using 'SAPLMGMM' '4004'.
    perform bdc_field       using 'BDC_OKCODE'
                                 '/00'.
    perform bdc_field       using 'MAKT-MAKTX'
                                 t_data-MAKTX.
    perform bdc_field       using 'BDC_CURSOR'
                                 'MARA-PRDHA'.
    perform bdc_field       using 'MARA-MEINS'
                                 t_data-MEINS.
    perform bdc_field       using 'MARA-MATKL'
                                 t_data-MATKL.
    perform bdc_field       using 'MARA-BISMT'
                                 t_data-BISMT.
    perform bdc_field       using 'MARA-EXTWG'
                                 t_data-EXTWG.
    perform bdc_field       using 'MARA-SPART'
                                 t_data-SPART.
    perform bdc_field       using 'MARA-PRDHA'
                                 t_data-PRDHA.
    perform bdc_field       using 'MARA-MTPOS_MARA'
                                 t_data-MTPOS_MARA.
    perform bdc_dynpro      using 'SAPLSPO1' '0300'.
    perform bdc_field       using 'BDC_OKCODE'
                                 '=YES'.
    perform bdc_transaction using 'MM01'.
    endloop.
    *enddo.
    perform close_group.
    perform close_dataset using dataset.

  • Writing error file from app server to windows serevr in background job

    Hi Gurus!
    I have a program that runs in the background and updates or uploads or inserts the tables with data in background and generates an error log . I would like to write this file on the windows serevr from the application serevr during the run of the program itself automatically. I tried running several jobs with my program but its not writing to the windows serevr , it writes on the application and then stops . Is theer a fault in my coding above.
    form write_err_file .
      IF v_zss = 1.
        case p_as.
          when 'X'.                      "X is application server
            case sy-sysid.
              when 'DEV' or 'SBX'.
                ltp_dir = '\\nal.local\application\SAP\ERP\ZWELL\wmigdc\error_log\uwi_error'.
                concatenate ltp_dir sy-datum '.txt' into ltp_dir.
              when 'QAT'.
                ltp_dir = '\\nal.local\application\SAP\ERP\ZWELL\wmigdc\error_log\uwi_error'.
                concatenate ltp_dir sy-datum '.txt' into ltp_dir.
              when 'PRD'.
                ltp_dir =  '\\nal.local\application\SAP\ERP\ZWELL\wmigdc\error_log\uwi_error'.
                concatenate ltp_dir sy-datum '.txt' into ltp_dir.
            endcase.
            open dataset p_err2 for  output in text mode encoding default message ltp_mess.
            if sy-subrc = 0.
              loop at t_err into s_dls.
                transfer s_dls to p_err2.
                if sy-subrc ne 0.
                  message i010(ad) with p_err2 'Download Failed'.
                endif.
              endloop.
              close dataset p_err2.
            else.
              message i010(ad) with p_err2 'dataset could not be found'.
              sy-subrc = -1.             "Maintain error condition
            endif.
            open dataset p_err2 for input in text mode encoding default message ltp_mess.
            if sy-subrc = 0.
              do.
                read dataset p_err2 into fs.
                if sy-subrc = 0.
                  append fs to itab.
                else.
                  exit.
                endif.
              enddo.
              close dataset p_err2.
            endif.
            OPEN DATASET ltp_dir FOR OUTPUT IN TEXT MODE ENCODING DEFAULT MESSAGE ltp_mess.
            if sy-subrc = 0.
              loop at itab into fs.
                transfer fs to ltp_dir.
              endloop.
              close dataset ltp_dir.
            else.
              message i010(ad) with ltp_dir 'dataset could not be found'.
              sy-subrc = -1.             "Maintain error condition
            endif.
    Please advice.
    Regards

    There are lot of posts on the same issue: [please check this|https://www.sdn.sap.com/irj/scn/advancedsearch?query=localfilesbackground&cat=sdn_all]

  • Process Chain background jobs

    Hi All,
    we got a typical issue in Process Chain,  every day process chain triggers in the midnight, and yesterday morning It got failed while activating DSO for HR data,  and we observed that the jobs are running in the background for longer time (there are 3 jobs related to HR still running since around 24 hours). In order to run the following processes which are no way related to HR, we made turning red to Finish (to skip this process - using Function module RSPC_PROCESS_FINISH) to make sure other reports work perfectly. yesterday PC ran successful expect HR data.
    Today morning we observed that the jobs are still running and also PC gets stopped in deleting contents of HR (after this we are loading HR DSO) . the process neither failed nor success. we checked in Sm37 and observed that job related to Delete content of HR data is also still running and in active status.
    it is not allowing us to skip the process as we did for the HR DSO. So we thought to kill the job and Killed the JOB of delete content of HR data, and tried refreshing in Process Chain. But the variant is empty now and process stopped at before the Delete contents (which are another deleting cubes) now the process is at delete contents of CUbe (which is before step to the delete HR DSO), if we right click and check the options it is showing display variant and display messages.
    We repeated the Process chain again it stopped at delete content HR DSO(back ground job running again and running longer time), the process is at delete contents DSO HR, (showing the box half filled).
    how to skip this delete contents of HR data DSO, because we don't want to stop all the following processes(which are not related to HR) and how to make my PC ran successful (expect HR) to make my report working perfectly expect HR reports
    Thanks in advance,
    Teena
    Edited by: Teenab on Feb 10, 2011 10:42 AM
    Edited by: Teenab on Feb 10, 2011 10:43 AM
    Edited by: Teenab on Feb 10, 2011 10:45 AM
    Edited by: Teenab on Feb 10, 2011 10:50 AM

    Thank you for the reply,
    Yes we can create PC for HR seperately.
    Presently the thing is yesterday we din't loaded the HR data (as we skipped the process by forcefully finished the process using FM -RSPC_PROCESS_FINISH) , As the jobs are still running morethan 26 hours. Now DSO HR doesn't have any data, but the process has been stopped at the deleting the content of HR data (our assumption since the HR loading jobs running longertime causing this, job delete content HR is also active and running (while loading it is trying to delete it, so it might be locked)
    But we need to skip the process of HR delete content now, inorder to run other process successful, (we can create other HR PC  later) but can you suggest the solution for now.
    Thank you,
    Teena
    Edited by: Teenab on Feb 10, 2011 11:03 AM

  • Disabling parallel run of background job

    Hi All
    I have an ECC6.0 system in load balancing mode with cluster environment. The problem is that we have a program which runs in background. The same is specified to run on App1 server. However, in case the no. of bkd processes are less in App1 servers, it schedules the remaining jobs on to App Server 2 which is not desired.
    eg
    I have a process which activates 8 bkgd jobs on App1
    App1 only has 5 bkgd processes free
    The remaining 3 jobs will get scheduled on App2, which is not desired.
    Please let me know how can i restrict a background process to run only on a single server.
    Regards
    Lokesh.

    If you define/change a job you can give a background server, however, if you give a fixed instance name and that instance is down the job won´t run at all.
    You may be able to use an external scheduling software for this, e. g. Redwood Cronacle - which is free for Netweaver customers.
    Markus

  • How to define "leading" random number in Infoset fpr parallel processing

    Hello,
    in Bankanalyzer we use an Infoset which consists of a selection across 4 ODS tables to gather data.
    No matter which PACKNO fields we check or uncheck in the infoset definition screen (TA RSISET), the parallel frameworks always selects the same PACKNO field from one ODS table.
    Unfortunately, the table that is selected by the framework is not suitable, because our
    "leading" ODS table which holds most of our selection criteria is another one.
    How to "convince" the parallel framework to select our leading table for the specification
    of the PACKNO in addition (this would be times 20 faster due to better select options).
    We even tried to assign "alternate characteristics" to the packnos we do not liek to use,
    but it seems that note 999101 just fixes this for non-system-fields.
    But for the random number a diffrent form routine is used in /BA1/LF3_OBJ_INDEX_READF01
    fill_range_random instead of fill_range.
    Has anyone managed to assign the PACKNO of his choice to the infoset selection?
    How?
    Thanks in advance
    Volker

    Well, it is a bit more complicated
    ODS one, that the parallel framework selects for being the one to deliver the PACKNO
    is about equal in size (~120GB each) to ODS two which has two significant field which cuts down the
    amount of data to be retreived.
    Currently we execute the generated SQL in the best possible manner (by faking some stats )
    The problem is, that I'd like to have a Statement that has the PACKNO in the very same table.
    PACKNO is a generated random number esp. to be used for parallel processing.
    The job starts about 100 slaves
    Each slave gets a packet to be processed from the framework, which is internaly represented
    by a BETWEEN clause on this PACKNO. This is joined against ODS2 and then the selective fields
    can be compared resultin in 90% of the already fetched rowes can be discarded.
    Basicly it goes like
    select ...
    from
      ods1 T_00,
      ods2 T_01,
      ods3 T_02,
      ods4 T_03
    where
    ... some key equivalence join-conditions ...
    AND  T_00.PACKNO BETWEEN '000000' and '000050' -- very selective on T_00
    AND  T_01.TYPE = '202'  -- selective Value 10% on second table
    I'd trying to change this to
    AND  T_01.PACKNO BETWEEN '000000' and '000050'
    AND  T_01.TYPE = '202'  -- selective Value 10%
    so I can use a combined Index on T_01 (TYPE;PACKNO)
    This would be times 10 more selective on the driving table and due to the fact,
    that T_00 would be joined for just the rows I need, about a calculated time 20-30 faster.
    It really boosts when I do this in sqlplus
    Hope this clearyfies a bit.
    Problem is, that I can not change the code either for doing the
    build of the packets or the one that executes the application.
    I need to change the Inofset, so that the framework decides to build
    proper SQL with T_01.PACKNO instead of T_00.PACKNO.
    Thanks a lot
    Volker

  • Parallel Processing in Oracle

    Gurus,
    I need to run three cursors at a time. Is it possible in Oracle?
    If yes then help in this issue.
    Thanks in Advance.

    As mentioned, it all depends on whether the results of the 3 cursor processes need to be combined/processed afterwards.
    If not, and each cursor process is a independent process, then you can define each of the 3 processes as procedures.
    The "main process" can then simply use the Oracle Job Scheduler to start once-off jobs for these 3 PL/SQL procedures. These will then run in parallel, as batch/background jobs.
    If the "main process" needs to wait for some reason for these 3 processes to complete processing (and commit their changes), then the following loop structure can be used:
    loop
    exit when <all 3 jobs have terminated>;
    -- if not. sleep for n seconds and then check again
    DBMS_LOCK.Sleep( n );
    end loop;The check for <all 3 jobs have terminated> can be done using SQL to query the USER_JOBS view.
    When the 3 jobs were submitted, each returned a job id. When this no longer exists in USER_JOBS, that once-off job has completed processing.
    If each of the 3 jobs needs to communicate with one another via some kind of IPC mechanism.. things are more complex. Not because of PL/SQL or Oracle, but because this is a complex thing to code in any language and system.
    Oracle provides a couple of IPC-like mechanisms. These include:
    - DBMS_PIPE
    - plain vanilla SQL table as "a shared memory area"
    - advance message queues
    The only real difference is that where you would have coded a fork() in Unix or a CreateThread() in Windows, you will be using DBMS_JOB (or DBMS_SCHEDULER) to spawn a thread.
    The rest of the concepts of multi-threading/multi-processing remains the same. Thread safe code. Semaphores. Mutexes. Etc. The basics remains the same.. just the actual "things" used to implement these are called by a different name.

  • Pointers for optimizing system performance (run time) while running DP process chain with parallel processing

    Hi Experts,
    We are running APO DP process chain with parallel processing in our company, we are experiencing some issues regarding run time of process chain, need your help on below points;
    - What are the ways we can optimize process chain run time.
    - Special points we need to take care of in case of parallel processing profiles used in process chain.
    - Any specific sequence to be followed for different processes in process chain - if there is some best practice followed.
    - Any notes suggesting ways to improve system performance for APO version 7 with different enhancement packs 1 and 2.
    Any help will be really appreciated.
    Regards

    HI Neelesh,
    There are many ways to optimize performance of the process chains (background jobs) in APO system.
    Firstly I would recommend you to identify the pain areas (steps) which are completing with more runtimes. Then each one of the step has got different approaches to decrease the runtime.
    Like you may end up with steps like infopackage executions, DTPs, DP mass processing jobs etc which might be running with more runtimes. So now target each one of them differently and find out the ways to optimize. At the same time the approach you follow should be technically possible with basis perspective (system load and utilization) as well.
    And coming to parallel processing, you can use parallel processing for different for different jobs. You can further r explore on the same using parallel processing. Like loading an infocube, mass processing, infopackage execution, DTP, TSCOPY etc.
    Check the below link for more info
    Performance problems in DP mass processing
    Let me know if you require further info.
    Regards,
    Raj

  • Best way to go for Parallel Processing?

    Hi all,
    I am working on a ALV report, where the user will be selecting some entries and click on process button.
    Currently, the entries are processed sequentially in a loop. Now, to save time on processing, the entries have to be grouped by material number, and all the groups have to be processed in parallel.
    Example:
    If there are 10 items, and 2 materials, the items will be grouped into 2, and two group of items will be processed in parallel, reducing the processing time by half.
    I need to know, which concept to use for the parallel processing?
    Call FM in Separate Task / Call FM in Background Task or is there any other way to aceive it?
    What is the maximum number of parallel/background sessions supported by SAP?
    I also got some code samples:
    [Starting New Task|http://wiki.sdn.sap.com/wiki/display/ABAP/Parallel+Processing]
    [In Background Task|http://wiki.sdn.sap.com/wiki/display/Snippets/ABAPparallelprocessingusingRFC]
    Thanks,
    Prabhakar.

    Hii...
    Kindly refer this code.. This will help you..
    REPORT  ZRAHUL_WORKPROCESS_TASK.
    TABLES : VBRK, BSEG.
    SELECTION-SCREEN : BEGIN OF BLOCK B WITH FRAME TITLE TEXT-001.
    PARAMETERS : S_ROW TYPE I OBLIGATORY,
                 S_LINES TYPE I OBLIGATORY.
    SELECTION-SCREEN : END OF BLOCK B.
    TYPES : BEGIN OF ST_VBRK,
      VBELN TYPE VBRK-VBELN,
      END OF ST_VBRK.
    DATA :  IT_VBRK TYPE TABLE OF ST_VBRK,
            WA_VBRK TYPE ST_VBRK.
    TYPES : BEGIN OF ST_BSEG,
            BELNR TYPE BSEG-BELNR,
            VBELN TYPE BSEG-VBELN,
          END OF ST_BSEG.
    DATA : IT_BSEG TYPE TABLE OF ST_BSEG,
           WA_BSEG TYPE ST_BSEG.
    DATA : TEMP_BSEG TYPE TABLE OF ST_BSEG,
           TEMP_VBRK TYPE TABLE OF ST_VBRK.
    DATA  : V_INDEX TYPE I VALUE 0,
            TEMP TYPE I VALUE 0,
            REMAINDER TYPE I VALUE 0,
            XXX TYPE I VALUE 0,
            T_ID(8) TYPE C.
    START-OF-SELECTION.
      SELECT VBELN FROM VBRK INTO TABLE IT_VBRK UP TO S_ROW ROWS.
      IF SY-SUBRC = 0.
        SORT IT_VBRK.
      ENDIF.
      LOOP AT IT_VBRK INTO WA_VBRK.
        V_INDEX = V_INDEX + 1.
        TEMP = V_INDEX MOD S_LINES.
        IF TEMP = 0.
          APPEND WA_VBRK TO TEMP_VBRK.
          PERFORM PARALLEL_SELECT.
          CLEAR TEMP_VBRK.
        ELSE.
          APPEND WA_VBRK TO TEMP_VBRK.
        ENDIF.
      ENDLOOP.
      REMAINDER = ( S_ROW / S_LINES ).
      WAIT UNTIL XXX = REMAINDER.
      LOOP AT IT_BSEG INTO WA_BSEG.
           WRITE :/ WA_BSEG-BELNR, WA_BSEG-VBELN.
           AT LAST.
             NEW-LINE.
             WRITE :/ SY-TABIX.
           ENDAT.
      ENDLOOP.
    *&      Form  PARALLEL_SELECT
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM PARALLEL_SELECT.
      T_ID = T_ID + 1.
      CALL FUNCTION 'ZRAHUL_APPEND' STARTING NEW TASK T_ID DESTINATION IN GROUP DEFAULT PERFORMING SUBROUT ON END OF TASK
        TABLES
          IT_VBRK = TEMP_VBRK.
    ENDFORM.                    " PARALLEL_SELECT
    *&      Form  SUBROUTINE
    *       text
    *      -->P_IT_VBRK  text
    *      -->P_=  text
    *      -->P_TEMP_VBRK  text
    *      -->P_IT_BSEG  text
    *      -->P_=  text
    *      -->P_TEMP_BSEG  text
    FORM SUBROUT USING P_T_ID TYPE CLIKE.
      RECEIVE RESULTS FROM FUNCTION 'ZRAHUL_APPEND'
              TABLES
                IT_BSEG = TEMP_BSEG[].
      APPEND LINES OF TEMP_BSEG TO IT_BSEG.
        XXX = XXX + 1.
    ENDFORM.                    " SUBROUTINE
    This will be helpful.
    Thanks,
    Jhings

  • Background Job not Printing TOs immediately

    Hello experts,
    I am having an issue with printing Transfer Orders created by background job, the output requests are sent to the output controller with status '-' . It works when I manually create the TOs or if I run the RLAUTA10 program with my userID in SE38 .
    I have set the background job user default print parameters in SU3 to print immediately.
    Also in the Job step, I have set up the print parameters  to 'print immediately'
    I have assigned printer for sorce storage type & set the indicator to use the source sto type in OMLV, The printer seems to be determined correctly, I've checked the Spool request name & printer in the spool controller, only issue seems to be the print not being triggered immediately.
    Not sure, if there is some other setting that I have to make to be able to print the TOs created by the background job immediately.
    Any help would be appreciated.
    Thanks
    Kris T

    whether the printer which you assigned is configured in SAP (network printer)? or LOCL?
    printing may not happen if LOCL(background job)
    Thanks

  • Background job SWFSLSDLEX cannot be scheduled (error )"

    Hi All ,
    i got the following error ,
    when i try to customize the SWU3 " Schedule background job for dead line monitoring ".
    The error is :
    "Work item -: Background job SWFSLSDLEX cannot be scheduled (error )"
    And the Error log says :
    Refer to your workflow system administrator.
    The specified error number should indicate possible reasons for the error. It is possible that the system is in an inconsistent state. The scheduled start of the specified background job must be compared with the minimum date/time of all work items in table SWWDHMIN. It may be necessary to delete the scheduled background job by hand and reschedule it by calling report RSWWDHEX.
    Apparently i dont see any table SWWDHMIN.
    Thanks!
    Richard A

    The issue is solved by adding start profile and instance profile to operation modes.
    Many thanks to my BASIS Guys for solving it !
    Richard  A

  • Parallel Processing: Error message 00-250: "No CUA area available"

    Dear colleagues,
    I have implemented a parallel processing with asynchronous RFC for a large data analysis in CO-PC. I think I was able to implement everything properly as described in the sap help: http://help.sap.com/saphelp_nw04/helpdata/en/22/0425c6488911d189490000e829fbbd/content.htm
    But now I face one problem: My jobs are often cancelled with the error message 250 of class 00 "No CUA area available".
    I don't have a clue what this error message means. I couldn't find any help in the SDN, OSS or in the internet. Has anybody an idea how to handle this problem?
    Thx very much for your help!
    Marius

    In your program while you doing the CALL FUNCTION - STARTING NEW TASK, did you check how many work processors are available.
    Suppose you have 40K data in your internal table, and in one step you are passing 4 K data. Then 10 work processes are required. But in your group setting if you have define 9, then last one will fail. So before any 'submit job in new task' or any 'CALL FUNCTION - STARTING NEW TASK' statement if have to check if any work processes are available. if available then submit otherwise wait.
    Thanks
    Subhankar

Maybe you are looking for