Process chain - Loop

Hello,
I have a requirement where in, I would like to call a Infopackage load, DTP and activate DSO process types continously in a loop and exit when a certain condition is met.
Looking for ideas on how to acheive this.
For now, I created an ABAP to call the process chain via the FM in a loop and check the status using another FM and continue in the loop if the PC has sucessfully completed.
I just think there's gotta be a better way to do this. Also, this method is kinda unstable - sometimes the PC runs upto the DTP and just stops. The program then stays in a infinite loop .
Thanks,
HD

How about having your process chain scheduled "After Event".  Then in your process chain, the last process will call an ABAP program that will check for your condition, and trigger the event (which starts the process chain again) if the condition is not met.

Similar Messages

  • Process chain that loops itself

    Hi experts,
    I have a process chain here that will be triggered by event, and at the end of the process chain it will trigger the same event so that the process chain will loop itself.
    But I have a problem here, I need to run the process chain only on working days (Mon - Fri), and I have a factory calendar for it.
    However, if the process chain is triggered by event, I cannot restrict it by factory calender.
    Any ideas?
    Thanks
    Ivy

    hi,
    Create a new chain which is scheduled daily and in it add ABAP program to if the process chain (loop) is still active, if it is not then check the factory calendar and raise the event if it is a working day. In case of active run do nothing.
    The process chain with loop can have the existing variant where it is triggered by event. In the loop chain add the program to check the working day from calendar and only raise event if it is.
    This way the loop will also be maintained and the chain would stop on a non working day and automatically be triggered on the next working day.
    regards,
    Arvind.

  • Process Chain Log Maintenance

    Hi All,
    In my project we maintain an load status excel sheet to document all the timings of process chain running in our window.
    We were maintaining only the start time of process chain (we get from RSPCM), now the requirement has changed and customer wants us to mention the end time of each process chain.
    Since we have good amount of process chain running it is becoming really hectic to take timings for each PC.
    Procedure we are following to take the end time is that through RSPCM we go to every PC and take the timing of last process in the PC.This takes lot of time.
    Please suggest from where we can exact log of start and end time of every PC.Are there any table from where we can see the start and end time???
    I am waiting for the valuable inputs......
    Regards,
    Kshitij

    try following ABAP...
    *& Report  ZBI_PROCESS_CHAIN_STATUS_EMAIL                              *
      Program uses parameters and selection options to analyze and/or    *
      email the status  of the BI process chains.                        *
    Selection-screen help:                                               *
    1) Process Chain (ID)                                                *
           Enter the name of process chain to analyze.                   *
           If you leave this field blank, all the process chains will    *
           be picked up.                                                 *
    2) Process Chain Date Selection                                      *
           Enter the Process Chain Date.                                 *
    3) Status of Process Chain                                           *
           Enter the Status of Process Chain to analyze.                 *
           If you leave this field blank, all the status will            *
           be picked up.                                                 *
    4) Send email?                                                       *
           Mark this checkbox, if you want to send email notification    *
    5) Email recipients                                                  *
           The list of people to be notified is entered here. At least   *
           one email address is required.                                *
    *Modification Information:                                             *
    Date      Mod User ID      CTS Number    Description                 *
    *05/01/08   Shalin Shah                    Original Coding Date        *
    REPORT   ZBI_PROCESS_CHAIN_STATUS_EMAIL
             NO STANDARD PAGE HEADING MESSAGE-ID 00
             LINE-SIZE 255
             LINE-COUNT 55.
    Variable Declaration for selection screen                            *
    DATA:
      gs_RSPCLOGCHAIN   TYPE rspclogchain,             "PC ID
      gs_RECEIVER       TYPE SOMLRECI1-RECEIVER,       "Email ID
      gs_BATCHDATE      TYPE RSPCPROCESSLOG-BATCHDATE, "Date
      gs_RSPC_STATE     TYPE RSPC_STATE.               "PC state
    Selection-Screen                                                     *
    SELECTION-SCREEN BEGIN OF BLOCK om1 WITH FRAME.
    SELECT-OPTIONS p_CHAIN  for gs_RSPCLOGCHAIN-CHAIN_ID default 'ZBWC_MAIN' NO INTERVALS. "Process chind ID
    SELECT-OPTIONS p_datum  for gs_BATCHDATE default  sy-datum. "Process chain date
    SELECT-OPTIONS p_Status for gs_RSPC_STATE NO INTERVALS. "Process Chain status
    SELECTION-SCREEN END OF BLOCK om1.
    SELECTION-SCREEN BEGIN OF BLOCK om2 WITH FRAME.
    PARAMETERS: p_Email AS CHECKBOX.       "Send email?
    SELECT-OPTIONS: s_mail FOR gs_RECEIVER lower case NO INTERVALS. "Email address
    SELECTION-SCREEN END OF BLOCK om2.
    AT SELECTION-SCREEN.
      If Send email is checked, makes sure at least one email address is entered.
      if p_Email = 'X'.
        READ TABLE s_mail INDEX 1.
        if sy-subrc <> 0.
          MESSAGE e001 WITH 'Please enter at least one email address'.
        ENDIF.
      ENDIF.
      loop at s_mail.
        if not s_mail-high is initial.
          MESSAGE e001 WITH s_mail-high 'is not valid. Please enter with no intervals'.
        endif.
      endloop.
    START-OF-SELECTION.
    END-OF-SELECTION.
    Variable Declaration                                                 *
    for composing email object
      DATA: OBJCONT LIKE SOLI OCCURS 10 WITH HEADER LINE. "Email object
      DATA: RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE. "Email address
      DATA: DOC_CHNG LIKE SODOCCHGI1.   "Data of an object which can be changed for email
      DATA: ENTRIES LIKE SY-TABIX.      "Count
      DATA: NAME(15).                   "Sapce for email name
      DATA: temp_message(120) type c.   "temp message space
      DATA: psubject(72) type c.        "Email subject
      DATA: temp_time(27) type c.       "temp space to PC start and end time
      DATA: pc_end_time(8) type c.      "PC end time
      DATA: pc_start_time(8) type c.    "PC start time
      DATA: pc_run_date(10) type c.     "PC run date
      DATA: pc_duration(8) type c.      "PC duration time
      DATA: pc_temp_end_time type TIMS. "temp space for pc end time
      DATA: pc_temp_end_date type DATS. "temp space for pc end date
      DATA: pc_temp_duration type TIMS. "temp space for pc duration
      DATA: pc_status(72) type c.       "PC status
    for report format
      DATA: iColor TYPE i VALUE 0,
            iCount TYPE i VALUE 1.
    for saving log of the process chain.
      DATA: I_RSPCLOGCHAIN LIKE RSPCLOGCHAIN OCCURS 0,
            WA_RSPCLOGCHAIN LIKE LINE OF I_RSPCLOGCHAIN,
            I_RSPCPROCESSLOG LIKE RSPCPROCESSLOG OCCURS 0,
            WA_RSPCPROCESSLOG LIKE LINE OF I_RSPCPROCESSLOG.
    Report Logic                                                         *
    Create email subject for report header
      CONCATENATE SY-SYSID ' - BI load status ->' SY-DATUM4(2) '/' SY-DATUM6(2) '/' SY-DATUM0(4)    ' @ ' SY-UZEIT0(2) ':' SY-UZEIT2(2) ':' SY-UZEIT4(2) INTO psubject.
    report header
    FORMAT INTENSIFIED COLOR = 1.
      write / .
      write / '*****************************************************************************************************************************************'.
      Write: / '*                                                 ', psubject, '            *' .
      write / '*****************************************************************************************************************************************'.
      write / .
    *Fill the header
      OBJCONT-LINE = '****************************************************************************************************************'.
      APPEND OBJCONT.
      OBJCONT-LINE =  psubject.
      APPEND OBJCONT.
      OBJCONT-LINE = '****************************************************************************************************************'.
      APPEND OBJCONT.
    Get the log id of the process chain.
      SELECT *
        FROM RSPCLOGCHAIN
        INTO TABLE I_RSPCLOGCHAIN
        WHERE DATUM in p_datum
        AND CHAIN_ID in p_CHAIN
        AND ANALYZED_STATUS in p_Status.
    Loop at all the selected process chains
      LOOP AT I_RSPCLOGCHAIN into WA_RSPCLOGCHAIN.                  "Loop at all the process chaing log
        CLEAR: temp_time, pc_start_time, pc_end_time.
      Get the run date, start time and end time of process chain form RSPCPROCESSLOG table.
        SELECT *
          FROM RSPCPROCESSLOG
          INTO TABLE I_RSPCPROCESSLOG
          WHERE LOG_ID = WA_RSPCLOGCHAIN-LOG_ID.
      Converts PC time to a given local timezone
        CALL FUNCTION 'STU3_ALERTS_CONV_UTC_2_LOCAL'
          CHANGING
            TIME_T = WA_RSPCLOGCHAIN-ZEIT
            DATE_D = WA_RSPCLOGCHAIN-DATUM.
      Convart date and time to MM:DD:YYYY HH:MM:SS
        CONCATENATE WA_RSPCLOGCHAIN-DATUM4(2) '/' WA_RSPCLOGCHAIN-DATUM6(2) '/' WA_RSPCLOGCHAIN-DATUM+0(4) INTO pc_run_date.
        CONCATENATE WA_RSPCLOGCHAIN-ZEIT0(2) ':'  WA_RSPCLOGCHAIN-ZEIT2(2) ':' WA_RSPCLOGCHAIN-ZEIT+4(2) INTO pc_start_time.
      sort all the process chaing log. Because we just want to get the end time of the last log.
        sort I_RSPCPROCESSLOG by ENDTIMESTAMP descending.
      loop to get the end date and end time for the process chain
        LOOP AT I_RSPCPROCESSLOG into WA_RSPCPROCESSLOG.    "Loop 1 for pc_end_time
          CLEAR temp_time.
          temp_time = WA_RSPCPROCESSLOG-ENDTIMESTAMP.
          pc_temp_end_date =  temp_time+4(8).
          pc_temp_end_time =  temp_time+12(6).
        Converts PC time to a given local timezone
          CALL FUNCTION 'STU3_ALERTS_CONV_UTC_2_LOCAL'
            CHANGING
              TIME_T = pc_temp_end_time
              DATE_D = pc_temp_end_date.
        Convart date and time to MM:DD:YYYY HH:MM:SS
          CONCATENATE pc_temp_end_time0(2) ':'  pc_temp_end_time2(2) ':' pc_temp_end_time+4(2) INTO pc_end_time.
        Get PC end-time and duration
          IF pc_temp_end_time = 000000.
            pc_end_time = '??:??:??'.
            pc_duration = '??:??:??'.
          ELSE.
            pc_temp_duration = pc_temp_end_time - WA_RSPCLOGCHAIN-ZEIT.
            CONCATENATE pc_temp_duration0(2) ':'  pc_temp_duration2(2) ':' pc_temp_duration+4(2) INTO pc_duration.
          ENDIF.
        Exit form the loop once we get end-time and duration
          EXIT.
        endloop.                                        "Loop 1 for pc_end_time
      Based on process chain status assign color and create message
        CASE WA_RSPCLOGCHAIN-ANALYZED_STATUS.           "Case pc status
          WHEN 'R'.
            CONCATENATE WA_RSPCLOGCHAIN-CHAIN_ID ' : Ended with errors on -' pc_run_date ' (Start->' pc_start_time '  End->' pc_end_time ' Duration->' pc_duration ') **Error**' INTO temp_message.
            CONCATENATE   ' Ended with errors - ' pc_duration INTO pc_status.
            iColor = 6.
          WHEN 'G'.
          Check if duration = '00:00:00' mark as **Error**
            IF pc_duration = '00:00:00'.
              CONCATENATE WA_RSPCLOGCHAIN-CHAIN_ID ' : Successfully completed on -' pc_run_date ' (Start->' pc_start_time '  End->' pc_end_time ' Duration->' pc_duration ') **Error**' INTO temp_message.
              CONCATENATE   ' Successfully completed - ' pc_duration INTO pc_status.
              iColor = 3.
            ELSE.
              CONCATENATE WA_RSPCLOGCHAIN-CHAIN_ID ' : Successfully completed on -' pc_run_date ' (Start->' pc_start_time '  End->' pc_end_time ' Duration->' pc_duration ')' INTO temp_message.
              CONCATENATE   ' Successfully completed - ' pc_duration INTO pc_status.
              iColor = 5.
            ENDIF.
          WHEN 'F'.
          Check if duration = '00:00:00' mark as **Error**
            IF pc_duration = '00:00:00'.
              CONCATENATE WA_RSPCLOGCHAIN-CHAIN_ID ' : Completed on -' pc_run_date ' (Start->' pc_start_time '  End->' pc_end_time ' Duration->' pc_duration ') **Error**' INTO temp_message.
              CONCATENATE   ' Completed - ' pc_duration INTO pc_status.
              iColor = 3.
            ELSE.
              CONCATENATE WA_RSPCLOGCHAIN-CHAIN_ID ' : Completed on -' pc_run_date ' (Start->' pc_start_time '  End->' pc_end_time ' Duration->' pc_duration ')' INTO temp_message.
              CONCATENATE   ' Completed - ' pc_duration INTO pc_status.
              iColor = 5.
            ENDIF.
          WHEN 'A'.
            CONCATENATE WA_RSPCLOGCHAIN-CHAIN_ID ' : Active on -' pc_run_date ' (Start->' pc_start_time '  End->' pc_end_time ' Duration->' pc_duration ')' INTO temp_message.
            CONCATENATE   ' Active - ' pc_duration INTO pc_status.
            iColor = 3.
          WHEN 'X'.
            CONCATENATE WA_RSPCLOGCHAIN-CHAIN_ID ' : Canceled on -' pc_run_date ' (Start->' pc_start_time '  End->' pc_end_time ' Duration->' pc_duration ') **Error**' INTO temp_message.
            CONCATENATE   ' Canceled - ' pc_duration INTO pc_status.
            iColor = 6.
          WHEN 'P'.
            CONCATENATE WA_RSPCLOGCHAIN-CHAIN_ID ' : Planned on -' pc_run_date ' (Start->' pc_start_time '  End->' pc_end_time ' Duration->' pc_duration ')' INTO temp_message.
            CONCATENATE   ' Planned - ' pc_duration INTO pc_status.
            iColor = 3.
          WHEN 'S'.
            CONCATENATE WA_RSPCLOGCHAIN-CHAIN_ID ' : Skipped at restart on -' pc_run_date ' (Start->' pc_start_time '  End->' pc_end_time ' Duration->' pc_duration ')' INTO temp_message.
            CONCATENATE   ' Skipped at restart - ' pc_duration INTO pc_status.
            iColor = 3.
          WHEN 'Q'.
            CONCATENATE WA_RSPCLOGCHAIN-CHAIN_ID ' : Released on -' pc_run_date ' @ ' pc_end_time INTO temp_message.
            CONCATENATE   ' Released' ' ' INTO pc_status.
            iColor = 3.
          WHEN 'Y'.
            CONCATENATE WA_RSPCLOGCHAIN-CHAIN_ID ' : Ready on -' pc_run_date ' @ ' pc_end_time INTO temp_message.
            CONCATENATE   ' Ready' ' ' INTO pc_status.
            iColor = 3.
          WHEN 'J'.
            CONCATENATE WA_RSPCLOGCHAIN-CHAIN_ID ' : Framework Error Upon Completion on -' pc_run_date ' @ ' pc_end_time ' **Error**' INTO temp_message.
            CONCATENATE   ' Framework Error' ' ' INTO pc_status.
            iColor = 3.
          WHEN OTHERS.
            CONCATENATE WA_RSPCLOGCHAIN-CHAIN_ID ' : Undefined on -' pc_run_date ' @ ' pc_end_time INTO temp_message.
            CONCATENATE   ' Undefined' ' ' INTO pc_status.
            iColor = 6.
        ENDCASE.            "Case pc status
      Append pc log to email object
        OBJCONT-LINE = temp_message.
        APPEND OBJCONT.
      change color and write log
        FORMAT INTENSIFIED COLOR = iColor.
        Write: / iCount, '   ', temp_message .
        iCount = iCount + 1.
        CLEAR temp_message.
      ENDLOOP.                               "Loop at all the process chaing log
    Create email subject
      clear psubject.
      CONCATENATE SY-SYSID ' load - ' pc_status INTO psubject.
    Fill the subject
      DOC_CHNG-OBJ_NAME = 'URGENT'.
      DOC_CHNG-OBJ_DESCR = psubject.
      DOC_CHNG-SENSITIVTY = 'P'.
    Cheeck send email checkbox.
      IF p_Email = 'X'.                      "Check if send email is checked
        DESCRIBE TABLE OBJCONT LINES ENTRIES.
        READ TABLE OBJCONT INDEX ENTRIES.
        DOC_CHNG-DOC_SIZE = ( ENTRIES - 1 ) * 255 + STRLEN( OBJCONT ).
      Get recipients
        loop at s_mail.
          RECLIST-RECEIVER = s_mail-low.                    "recipient
          RECLIST-EXPRESS = 'X'.
          RECLIST-REC_TYPE = 'U'.                           "internet email
          append RECLIST.
        endloop.
      Send email
        CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
          EXPORTING
            DOCUMENT_TYPE              = 'RAW'
            DOCUMENT_DATA              = DOC_CHNG
            PUT_IN_OUTBOX              = 'X'
            COMMIT_WORK                = 'X'
          TABLES
            OBJECT_CONTENT             = OBJCONT
            RECEIVERS                  = RECLIST
          EXCEPTIONS
            TOO_MANY_RECEIVERS         = 1
            DOCUMENT_NOT_SENT          = 2
            OPERATION_NO_AUTHORIZATION = 4
            OTHERS                     = 99.
      Write email status.
        WRITE: /.
        CASE SY-SUBRC.
          WHEN 0.
            WRITE: / '*** Email sent to following recipient(s) ***'.
          Loot to get email id's.
            LOOP AT s_mail.         "Loop s_mail to get email address
              NAME = s_mail-low.
              IF RECLIST-RETRN_CODE = 0.
                WRITE: / NAME, ': succesfully sent'.
              ELSE.
                WRITE: / NAME, ': error occured'.
              ENDIF.
            ENDLOOP.               "Loop s_mail to get email address
          WHEN 1.
            WRITE: / 'Too many receivers specified !'.
          WHEN 2.
            WRITE: / 'No receiver got the document !'.
          WHEN 4.
            WRITE: / 'Missing send authority !'.
          WHEN OTHERS.
            WRITE: / 'Unexpected error occurred !'.
        ENDCASE.
      ENDIF.                        "Check if send email is checked
    Shalin Shah

  • Loop in Process Chain until Success

    I have an ABAP program step in a process chain that checks that a different specific process chain has suceeded. This only checks once and if it fails (goes red) if the predecessor hasnt suceeded and the chain stops.
    Is there a simple way to make my abap program loop in the process chain until the predecessor chain has suceeded?
    Thanks

    Hi Steve,
    I see 2 options here.
    1. There is a How to paper to create a new process type "ABAP Program" which gives you an option for checking the results of the program unline the standard one. I have done this nd it works beautifully. You coud probably create this process type and use it in your chain.
    2.In your ABAP code where you are checking the status,, put an endless loop and inside the loop, check the status of the other process chain as you are already doing. Put the exit command once the staus you want is achieved. You could even put a wait statement inside the loop if the exit condition is not met and you want to try after some time. This might be a feasible solution. Try it out.
    Thanks and Regards
    Subray Hegde

  • Debug loop seconds in process chain

    hi
    we have an issue. our DTP process has failed in our process chain and the reason was that the transformations were inactive. So we have activated the transformations and have executed the DTP manually. Now when i go to log view of my process chain and  enter REPAIR  on our DTP Process it is asking for DEBUG LOOP ____ Seconds.
    what does debug loop mean...
    IS it the right way to restart our process chain by enterIng  REPAIR DTP after the manula dtp load we have done by activation transformations
    Can anyone suggest me what should the debug loop  --- value I  SHOULD GIVE

    Hi Krishna,
    As mentioned Debug Loop is use to debug a Process Chain....You have to Enter a wait time greater than 0 seconds. And then, activate the Process Chain....
    Then Go to the menu option: Execution -> Execute Synchronous to Debugging........The debug screen will now pop-up.....
    But in your case, I don't think it is required....Since you have alreday executed the DTP manually....
    Now you just need to continue the rest of the chain....
    To do this.....open the chain in the Design View ............In the top where we write the TCODE, there wrire "COPY"..........Enter.....
    It will copy the original process Chain..........Give a technical name of the copied chain............
    Remove all the Processes till that DTP........Including the Start process......
    Create a new Start Process......connect it to the next step.......activate the chain and execute it..........then rest of the chains will get executed fine.......
    I don't think that you will face the same issue in the next run of the Process Chain........
    You can also use the FM : RSPC_PROCESS_FINISH......to continue the chain instead of copying...
    For this you can check the Bog :
    Restarting Processchains
    Do as you wish....
    Regards,
    Debjani......

  • Loop in Process Chain never ends?!

    Hello All!
    I'd created an ABAP program which calls the FM "RSPC_CHAIN_EXECUTE_REMOTE", to start a specific process chain. I'd created a job to run it.
    Then, I want the same process chain continue in loop. For this I'd created another ABAP program, which calls the FM BP_EVENT_RAISE.At the end of my process chain I'd created a variant calling this program. All process im my process chain works fine, but the job never stops. Is it normal, or could I do something to solve it?
    Thank you!!!
    Aline.

    Hi Aline,
       You have to put a logic when to raise event. or every time ABAP program runs and triggers the event ... so its becomes infinite...
    What is code in your ABAP program..? and logic...?
    <a href="http://sapbwneelam.blogspot.com/2007/09/how-to-start-process-chain-through.html">Sample coding... similar requirement...</a>
    Hope it Helps
    Srini

  • SAPSQL_ARRAY_INSERT_DUPREC during saving of Process Chain

    Dear all,
    On saving, when adding a process to an existing Process Chain - like Rollup or Change Run - in our SCM 5.0 system, we receive a short dump 'SAPSQL_ARRAY_INSERT_DUPREC' (complete short dump at the end of the msg).
    A problem arose on the line 'insert rsbatchparallel from table g_t_batch_par.' of include 'LRSBATCHF01'.
    The version of this include is the same as all other systems in our environment.
    In the table 'rsbatchparallel' we don't find any entry that can cause a duplicate entry.
    We are really stuck with this issue - any help is highly appreciated!
    Best regards,
    Ingrid
    Complete short dump
    Runtime Errors         SAPSQL_ARRAY_INSERT_DUPREC
    Exception              CX_SY_OPEN_SQL_DB
    Date and Time          08.10.2007 16:56:50
    Short text
    The ABAP/4 Open SQL array insert results in duplicate database records.
    What happened?
    Error in the ABAP Application Program
    The current ABAP program "SAPLRSBATCH" had to be terminated because it has
    come across a statement that unfortunately cannot be executed.
    What can you do?
    Note down which actions and inputs caused the error.
    To process the problem further, contact you SAP system
    administrator.
    Using Transaction ST22 for ABAP Dump Analysis, you can look
    at and manage termination messages, and you can also
    keep them for a long time.
    Error analysis
    An exception occurred that is explained in detail below.
    The exception, which is assigned to class 'CX_SY_OPEN_SQL_DB', was not caught
    in
    procedure "SAVE_SETTINGS" "(FORM)", nor was it propagated by a RAISING clause.
    Since the caller of the procedure could not have anticipated that the
    exception would occur, the current program is terminated.
    The reason for the exception is:
    If you use an ABAP/4 Open SQL array insert to insert a record in
    the database and that record already exists with the same key,
    this results in a termination.
    (With an ABAP/4 Open SQL single record insert in the same error
    situation, processing does not terminate, but SY-SUBRC is set to 4.)
    How to correct the error
    Use an ABAP/4 Open SQL array insert only if you are sure that none of
    the records passed already exists in the database.
    If the error occures in a non-modified SAP program, you may be able to
    find an interim solution in an SAP Note.
    If you have access to SAP Notes, carry out a search with the following
    keywords:
    "SAPSQL_ARRAY_INSERT_DUPREC" "CX_SY_OPEN_SQL_DB"
    "SAPLRSBATCH" or "LRSBATCHF01"
    "SAVE_SETTINGS"
    If you cannot solve the problem yourself and want to send an error
    notification to SAP, include the following information:
    1. The description of the current problem (short dump)
    To save the description, choose "System->List->Save->Local File
    (Unconverted)".
    2. Corresponding system log
    Display the system log by calling transaction SM21.
    Restrict the time interval to 10 minutes before and five minutes
    after the short dump. Then choose "System->List->Save->Local File
    (Unconverted)".
    3. If the problem occurs in a problem of your own or a modified SAP
    program: The source code of the program
    In the editor, choose "Utilities->More
    Utilities->Upload/Download->Download".
    4. Details about the conditions under which the error occurred or which
    actions and input led to the error.
    The exception must either be prevented, caught within proedure
    "SAVE_SETTINGS" "(FORM)", or its possible occurrence must be declared in the
    RAISING clause of the procedure.
    To prevent the exception, note the following:
    System environment
    SAP-Release 700
    Application server... "eccdb603"
    Network address...... "19.106.69.177"
    Operating system..... "AIX"
    Release.............. "5.3"
    Hardware type........ "00C485BD4C00"
    Character length.... 16 Bits
    Pointer length....... 64 Bits
    Work process number.. 0
    Shortdump setting.... "full"
    Database server... "eccdb603"
    Database type..... "DB6"
    Database name..... "A8P"
    Database user ID.. "SAPA8P"
    Char.set.... "C"
    SAP kernel....... 700
    created (date)... "Mar 19 2007 20:40:49"
    create on........ "AIX 2 5 005DD9CD4C00"
    Database version. "DB6_81 "
    Patch level. 102
    Patch text.. " "
    Database............. "DB6 08.02., DB6 09."
    SAP database version. 700
    Operating system..... "AIX 1 5, AIX 2 5, AIX 3 5"
    Memory consumption
    Roll.... 16192
    EM...... 25139088
    Heap.... 0
    Page.... 212992
    MM Used. 16132952
    MM Free. 4812888
    User and Transaction
    Client.............. 510
    User................ "IERNAELS"
    Language key........ "E"
    Transaction......... "RSPC "
    Transactions ID..... " "
    Program............. "SAPLRSBATCH"
    Screen.............. "SAPLRSSM_PROCESS 0100"
    Screen line......... 19
    Information on where terminated
    Termination occurred in the ABAP program "SAPLRSBATCH" - in "SAVE_SETTINGS".
    The main program was "RSPC_MAINTAIN ".
    In the source code you have the termination point in line 1082
    of the (Include) program "LRSBATCHF01".
    The termination is caused because exception "CX_SY_OPEN_SQL_DB" occurred in
    procedure "SAVE_SETTINGS" "(FORM)", but it was neither handled locally nor
    declared
    in the RAISING clause of its signature.
    The procedure is in program "SAPLRSBATCH "; its source code begins in line
    1045 of the (Include program "LRSBATCHF01 ".
    Source Code Extract
    Line
    SourceCde
    1052
    loop at g_t_batch_par.
    1053
    if  g_t_batch_par-pc_variant is initial.
    1054
    l_var = '//SPACE//SPACE//SPACE//SPACE//'.
    1055
    else.
    1056
    l_var =  g_t_batch_par-pc_variant.
    1057
    endif.
    1058
    do.
    1059
    call function 'ENQUEUE_ERSBATCHSERVER'
    1060
    exporting
    1061
    mode_rsbatchserver = 'E'
    1062
    process_type       = g_t_batch_par-process_type
    1063
    pc_variant         = l_var
    1064
    _scope             = '3'
    1065
    _wait              = 'X'
    1066
    exceptions
    1067
    foreign_lock       = 1.
    1068
    if sy-subrc = 0.
    1069
    exit.
    1070
    endif.
    1071
    enddo.
    1072
    endloop.
    1073
    1074
    loop at g_t_batch_par.
    1075
    delete from rsbatchparallel where
    1076
    process_type = g_t_batch_par-process_type and
    1077
    pc_variant   = g_t_batch_par-pc_variant.
    1078
    delete from rsbatchserver where
    1079
    process_type = g_t_batch_par-process_type and
    1080
    pc_variant   = g_t_batch_par-pc_variant.
    1081
    endloop.
    >>>>>
    insert rsbatchparallel from table g_t_batch_par.
    1083
    insert rsbatchserver   from table g_t_batch_serv.
    1084
    call function 'DB_COMMIT'.
    1085
    1086
    loop at g_t_batch_par.
    1087
    if  g_t_batch_par-pc_variant is initial.
    1088
    l_var = '//SPACE//SPACE//SPACE//SPACE//'.
    1089
    else.
    1090
    l_var =  g_t_batch_par-pc_variant.
    1091
    endif.
    1092
    do.
    1093
    call function 'DEQUEUE_ERSBATCHSERVER'
    1094
    exporting
    1095
    mode_rsbatchserver = 'E'
    1096
    process_type       = g_t_batch_par-process_type
    1097
    pc_variant         = l_var
    1098
    _scope             = '3'
    1099
    _synchron          = 'X'.
    1100
    if sy-subrc = 0.
    1101
    exit.
    Contents of system fields
    Name
    Val.
    SY-SUBRC
    0
    SY-INDEX
    0
    SY-TABIX
    3
    SY-DBCNT
    0
    SY-FDPOS
    0
    SY-LSIND
    0
    SY-PAGNO
    0
    SY-LINNO
    1
    SY-COLNO
    1
    SY-PFKEY
    0001
    SY-UCOMM
    SAVE
    SY-TITLE
    Process Maintenance: Attribute Change Run
    SY-MSGTY
    SY-MSGID
    SY-MSGNO
    000
    SY-MSGV1
    SY-MSGV2
    SY-MSGV3
    SY-MSGV4
    SY-MODNO
    1
    SY-DATUM
    20071008
    SY-UZEIT
    165610
    SY-XPROG
    SAPFGUICNTL
    SY-XFORM
    %_CONTROL_EXIT_DYNPRO
    Active Calls/Events
    No.   Ty.          Program                             Include                             Line
    Name
    20 FORM         SAPLRSBATCH                         LRSBATCHF01                          1082
    SAVE_SETTINGS
    19 FUNCTION     SAPLRSBATCH                         LRSBATCHU08                           279
    RSBATCH_MAINTAIN_PAR_SETTINGS
    18 FORM         SAPLRSSM_PROCESS                    LRSSM_PROCESSF04                     1917
    MAINTAIN_PARALLEL_SETTINGS
    17 MODULE (PAI) SAPLRSSM_PROCESS                    LRSSM_PROCESSI01                      125
    USER_COMMAND_0100
    16 FUNCTION     SAPLRSPC_VARIANT                    LRSPC_VARIANTU01                       93
    RSPC_VARIANT_MAINTAIN
    15 FUNCTION     SAPLRSSM_PROCESS                    LRSSM_PROCESSU01                       56
    RSSM_PROCESS_VARIANT_DIALOG
    14 METHOD       CL_RSSM_ATTRIBCHANGE==========CP    CL_RSSM_ATTRIBCHANGE==========CM003     3
    CL_RSSM_ATTRIBCHANGE=>IF_RSPC_MAINTAIN~MAINTAIN
    13 METHOD       CL_RSPC_FRONTEND==============CP    CL_RSPC_FRONTEND==============CM00E    16
    CL_RSPC_FRONTEND=>_EDIT_NODE
    12 METHOD       CL_RSPC_FRONTEND==============CP    CL_RSPC_FRONTEND==============CM00T   139
    CL_RSPC_FRONTEND=>_ON_MENU_SEL
    11 METHOD       CL_RSPC_FRONTEND==============CP    CL_RSPC_FRONTEND==============CM016    40
    CL_RSPC_FRONTEND=>_ON_NET_DOUBLECLICK
    10 METHOD       CL_GUI_RSNETGRAPHIC_NETPLAN===CP    CL_GUI_RSNETGRAPHIC_NETPLAN===CM00W    40
    CL_GUI_RSNETGRAPHIC_NETPLAN=>_HANDLE_OBJECTDBLCLICK
    9 METHOD       CL_GUI_RSNETGRAPHIC_NETPLAN===CP    CL_GUI_RSNETGRAPHIC_NETPLAN===CM005    37
    CL_GUI_RSNETGRAPHIC_NETPLAN=>HANDLE_EVENTS
    8 METHOD       CL_GUI_RSNETGRAPHIC_NETPLAN===CP    CL_GUI_RSNETGRAPHIC_NETPLAN===CM003     3
    CL_GUI_RSNETGRAPHIC_NETPLAN=>DISPATCH
    7 METHOD       CL_GUI_CFW====================CP    CL_GUI_CFW====================CM00K   173
    CL_GUI_CFW=>DISPATCH_SYSTEM_EVENTS
    6 FORM         SAPFGUICNTL_CFW                     SAPFGUICNTL_CFW                        23
    CONTROL_DISPATCH
    5 FORM         SAPFGUICNTL                         SAPFGUICNTL                            20
    CONTROL_DISPATCH
    4 FORM         SAPMSSYD                            SAPMSSYD                              288
    %_CTL_INPUT
    3 MODULE (PAI) SAPMSSYD                            SAPMSSYD                              236
    %_CTL_INPUT1
    2 FUNCTION     SAPLRSPC_FRONTEND                   LRSPC_FRONTENDU10                      76
    RSPC_CHAIN_MAINTAIN
    1 EVENT        RSPC_MAINTAIN                       RSPC_MAINTAIN                          11
    START-OF-SELECTION
    Chosen variables
    Name
    Val.
    No.      20 Ty.          FORM
    Name  SAVE_SETTINGS
    G_T_400_SAVE
    Table[initial]
    <%_TABLE_RSBATCHSERVER>
    SYST-REPID
    SAPLRSBATCH
    0000000000000000000000000000000000000000
    0000000000000000000000000000000000000000
    5454554454422222222222222222222222222222
    310C232143800000000000000000000000000000
    G_H_DEBUG_TYPE
    Table[initial]
    SY-REPID
    SAPLRSBATCH
    0000000000000000000000000000000000000000
    0000000000000000000000000000000000000000
    5454554454422222222222222222222222222222
    310C232143800000000000000000000000000000
    G_T_WAIT
    0.1.
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    2222222222222222222222222222220022222222222222222222222222222222222222222222222222222222222222
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    G_T_BATCH_PAR-PROCESS_TYPE
    ATTRIBCHAN
    0000000000
    0000000000
    4555444444
    144292381E
    %_DUMMY$$
    0000
    0000
    2222
    0000
    G_T_300_OBJECT[]
    Table[initial]
    G_T_BATCH_PAR-PC_VARIANT
    CHANGE_RUN_MASTER_DATA
    000000000000000000000000000000
    000000000000000000000000000000
    444444555454455455445422222222
    381E75F25EFD13452F414100000000
    G_T_300_OBJECT
    0000
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223333
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    <%_TABLE_RSBATCHPARALLEL>
    G_S_ADM-PRIORITY
    0
    0
    2
    0
    G_T_BATCH_PAR[]
    Table IT_8429[3x212]
    FUNCTION-POOL=RSBATCHDATA=G_T_BATCH_PAR[]
    Table reference: 176
    TABH+  0(20) = 0700000040337FA0000000000000000000000000
    TABH+ 20(20) = 000000B0000020ED00000003000000D4FFFFFFFF
    TABH+ 40(16) = 04000276000007400010249401800000
    store        = 0x0700000040337FA0
    ext1         = 0x0000000000000000
    shmId        = 0     (0x00000000)
    id           = 176   (0x000000B0)
    label        = 8429  (0x000020ED)
    fill         = 3     (0x00000003)
    leng         = 212   (0x000000D4)
    loop         = -1    (0xFFFFFFFF)
    xtyp         = TYPE#000024
    occu         = 16    (0x00000010)
    access       = 1     (ItAccessStandard)
    idxKind      = 0     (ItIndexNone)
    uniKind      = 2     (ItUniqueNon)
    keyKind      = 1     (default)
    cmpMode      = 2     (cmpSingleMcmpR)
    occu0        = 1
    groupCntl    = 0
    rfc          = 0
    unShareable  = 0
    mightBeShared = 0
    sharedWithShmTab = 0
    isShmLockId  = 0
    gcKind       = 0
    isUsed       = 1
    isCtfyAble   = 1
    >>>>> Shareable Table Header Data <<<<<
    tabi         = 0x07000000410D8D60
    pgHook       = 0x0000000000000000
    idxPtr       = 0x0000000000000000
    shmTabhSet   = 0x0000000000000000
    id           = 6428  (0x0000191C)
    refCount     = 0     (0x00000000)
    tstRefCount  = 0     (0x00000000)
    lineAdmin    = 16    (0x00000010)
    lineAlloc    = 16    (0x00000010)
    shmVersId    = 0     (0x00000000)
    shmRefCount  = 1     (0x00000001)
    >>>>> 1st level extension part <<<<<
    regHook      = Not allocated
    collHook     = Not allocated
    ext2         = Not allocated
    >>>>> 2nd level extension part <<<<<
    tabhBack     = Not allocated
    delta_head   = Not allocated
    pb_func      = Not allocated
    pb_handle    = Not allocated
    G_T_BATCH_SERV[]
    Table IT_8430[2x166]
    FUNCTION-POOL=RSBATCHDATA=G_T_BATCH_SERV[]
    Table reference: 181
    TABH+  0(20) = 07000000410D9AB8000000000000000000000000
    TABH+ 20(20) = 000000B5000020EE00000002000000A6FFFFFFFF
    TABH+ 40(16) = 04000276000003E00010249401800000
    store        = 0x07000000410D9AB8
    ext1         = 0x0000000000000000
    shmId        = 0     (0x00000000)
    id           = 181   (0x000000B5)
    label        = 8430  (0x000020EE)
    fill         = 2     (0x00000002)
    leng         = 166   (0x000000A6)
    loop         = -1    (0xFFFFFFFF)
    xtyp         = TYPE#000006
    occu         = 16    (0x00000010)
    access       = 1     (ItAccessStandard)
    idxKind      = 0     (ItIndexNone)
    uniKind      = 2     (ItUniqueNon)
    keyKind      = 1     (default)
    cmpMode      = 2     (cmpSingleMcmpR)
    occu0        = 1
    groupCntl    = 0
    rfc          = 0
    unShareable  = 0
    mightBeShared = 0
    sharedWithShmTab = 0
    isShmLockId  = 0
    gcKind       = 0
    isUsed       = 1
    isCtfyAble   = 1
    >>>>> Shareable Table Header Data <<<<<
    tabi         = 0x0700000040360F08
    pgHook       = 0x0000000000000000
    idxPtr       = 0x0000000000000000
    shmTabhSet   = 0x0000000000000000
    id           = 6429  (0x0000191D)
    refCount     = 0     (0x00000000)
    tstRefCount  = 0     (0x00000000)
    lineAdmin    = 16    (0x00000010)
    lineAlloc    = 16    (0x00000010)
    shmVersId    = 0     (0x00000000)
    shmRefCount  = 1     (0x00000001)
    >>>>> 1st level extension part <<<<<
    regHook      = Not allocated
    collHook     = Not allocated
    ext2         = Not allocated
    >>>>> 2nd level extension part <<<<<
    tabhBack     = Not allocated
    delta_head   = Not allocated
    pb_func      = Not allocated
    pb_handle    = Not allocated
    No.      19 Ty.          FUNCTION
    Name  RSBATCH_MAINTAIN_PAR_SETTINGS
    I_NO_DIALOG
    0
    0
    2
    0
    I_TYPE
    ATTRIBCHAN
    0000000000
    0000000000
    4555444444
    144292381E
    I_VARIANT
    CHANGE_RUN_MASTER_DATA
    000000000000000000000000000000
    000000000000000000000000000000
    444444555454455455445422222222
    381E75F25EFD13452F414100000000
    E_T_SERVER
    Table[initial]
    C_T_BATCH_PAR[]
    Table IT_8427[3x210]
    FUNCTION-POOL=RSSM_PROCESSFORM=MAINTAIN_PARALLEL_SETTINGSDATA=L_T_PAR
    Table reference: 377
    TABH+  0(20) = 070000004050EFA8070000004033896000000000
    TABH+ 20(20) = 00000179000020EB00000003000000D2FFFFFFFF
    TABH+ 40(16) = 040001900000CEF00010249401800000
    store        = 0x070000004050EFA8
    ext1         = 0x0700000040338960
    shmId        = 0     (0x00000000)
    id           = 377   (0x00000179)
    label        = 8427  (0x000020EB)
    fill         = 3     (0x00000003)
    leng         = 210   (0x000000D2)
    loop         = -1    (0xFFFFFFFF)
    xtyp         = TYPE#001089
    occu         = 16    (0x00000010)
    access       = 1     (ItAccessStandard)
    idxKind      = 0     (ItIndexNone)
    uniKind      = 2     (ItUniqueNon)
    keyKind      = 1     (default)
    cmpMode      = 2     (cmpSingleMcmpR)
    occu0        = 1
    groupCntl    = 0
    rfc          = 0
    unShareable  = 0
    mightBeShared = 0
    sharedWithShmTab = 0
    isShmLockId  = 0
    gcKind       = 0
    isUsed       = 1
    isCtfyAble   = 1
    >>>>> Shareable Table Header Data <<<<<
    tabi         = 0x0700000040332390
    pgHook       = 0x0000000000000000
    idxPtr       = 0x0000000000000000
    shmTabhSet   = 0x0000000000000000
    id           = 6426  (0x0000191A)
    refCount     = 0     (0x00000000)
    tstRefCount  = 0     (0x00000000)
    lineAdmin    = 16    (0x00000010)
    lineAlloc    = 16    (0x00000010)
    shmVersId    = 0     (0x00000000)
    shmRefCount  = 1     (0x00000001)
    >>>>> 1st level extension part <<<<<
    regHook      = 0x0000000000000000
    collHook     = 0x0000000000000000
    ext2         = 0x070000004110CD08
    >>>>> 2nd level extension part <<<<<
    tabhBack     = 0x0700000040F34148
    delta_head   = 0000000000000000000000000000000000000000000000000000000000000000000000000000000
    pb_func      = 0x0000000000000000
    pb_handle    = 0x0000000000000000
    G_T_CLASS_100[]
    Table IT_8436[3x122]
    FUNCTION-POOL=RSBATCHDATA=G_T_CLASS_100[]
    Table reference: 355
    TABH+  0(20) = 07000000410F9E48070000004110865000000000
    TABH+ 20(20) = 00000163000020F4000000030000007AFFFFFFFF
    TABH+ 40(16) = 0400027600000B900010249401800000
    store        = 0x07000000410F9E48
    ext1         = 0x0700000041108650
    shmId        = 0     (0x00000000)
    id           = 355   (0x00000163)
    label        = 8436  (0x000020F4)
    fill         = 3     (0x00000003)
    leng         = 122   (0x0000007A)
    loop         = -1    (0xFFFFFFFF)
    xtyp         = TYPE#000047
    occu         = 16    (0x00000010)
    access       = 1     (ItAccessStandard)
    idxKind      = 0     (ItIndexNone)
    uniKind      = 2     (ItUniqueNon)
    keyKind      = 1     (default)
    cmpMode      = 2     (cmpSingleMcmpR)
    occu0        = 1
    groupCntl    = 0
    rfc          = 0
    unShareable  = 0
    mightBeShared = 0
    sharedWithShmTab = 0
    isShmLockId  = 0
    gcKind       = 0
    isUsed       = 1
    isCtfyAble   = 1
    >>>>> Shareable Table Header Data <<<<<
    tabi         = 0x070000004081DE00
    pgHook       = 0x0000000000000000
    idxPtr       = 0x0000000000000000
    shmTabhSet   = 0x0000000000000000
    id           = 6435  (0x00001923)
    refCount     = 0     (0x00000000)
    tstRefCount  = 0     (0x00000000)
    lineAdmin    = 16    (0x00000010)
    lineAlloc    = 16    (0x00000010)
    shmVersId    = 0     (0x00000000)
    shmRefCount  = 1     (0x00000001)
    >>>>> 1st level extension part <<<<<
    regHook      = 0x0000000000000000
    collHook     = 0x0000000000000000
    ext2         = 0x07000000406795C8
    >>>>> 2nd level extension part <<<<<
    tabhBack     = 0x07000000410FB438
    delta_head   = 0000000000000000000000000000000000000000000000000000000000000000000000000000000
    pb_func      = 0x0000000000000000
    pb_handle    = 0x0000000000000000
    G_T_CLASS_100
    C'C'
    0000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000
    4242222222222222222222222222222222222222222222222222222222222
    3737000000000000000000000000000000000000000000000000000000000
    %_FL2*CTRL_SERVER
    1
    0000
    0001
    G_T_CLASS_100-TEXT
    'C'
    000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000000000000000000000000000
    242222222222222222222222222222222222222222222222222222222222
    737000000000000000000000000000000000000000000000000000000000
    TEXT-008
    'C'
    00000000000000000000000000000000000000000000000000
    00000000000000000000000000000000000000000000000000
    24222222222222222222222222222222222222222222222222
    73700000000000000000000000000000000000000000000000
    SAVEOK
    SAVE
    0000000000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000000000
    5454222222222222222222222222222222222222222222222222222222222222222222
    3165000000000000000000000000000000000000000000000000000000000000000000
    OKCODE
    0000000000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000000000
    2222222222222222222222222222222222222222222222222222222222222222222222
    0000000000000000000000000000000000000000000000000000000000000000000000
    G_SUBRC
    0
    0000
    0000
    G_FIRST_TIME_100
    0
    0
    2
    0
    G_T_WP_400
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    G_500_WP_NO
    000
    000
    222
    000
    CX_TRUE
    X
    0
    0
    5
    8
    SY-MSGID
    00000000000000000000
    00000000000000000000
    22222222222222222222
    00000000000000000000
    SPACE
    0
    0
    2
    0
    SY-MSGNO
    000
    000
    000
    333
    000
    SY-MSGV1
    00000000000000000000000000000000000000000000000000
    00000000000000000000000000000000000000000000000000
    22222222222222222222222222222222222222222222222222
    00000000000000000000000000000000000000000000000000
    SY-MSGV2
    00000000000000000000000000000000000000000000000000
    00000000000000000000000000000000000000000000000000
    22222222222222222222222222222222222222222222222222
    00000000000000000000000000000000000000000000000000
    SY-MSGV3
    00000000000000000000000000000000000000000000000000
    00000000000000000000000000000000000000000000000000
    22222222222222222222222222222222222222222222222222
    00000000000000000000000000000000000000000000000000
    SY-MSGV4
    00000000000000000000000000000000000000000000000000
    00000000000000000000000000000000000000000000000000
    22222222222222222222222222222222222222222222222222
    00000000000000000000000000000000000000000000000000
    No.      18 Ty.          FORM
    Name  MAINTAIN_PARALLEL_SETTINGS
    SY-REPID
    SAPLRSSM_PROCESS
    0000000000000000000000000000000000000000
    0000000000000000000000000000000000000000
    5454555455544455222222222222222222222222
    310C233DF02F3533000000000000000000000000
    SYST-REPID
    SAPLRSSM_PROCESS
    0000000000000000000000000000000000000000
    0000000000000000000000000000000000000000
    5454555455544455222222222222222222222222
    310C233DF02F3533000000000000000000000000
    P_VARIANT
    CHANGE_RUN_MASTER_DATA
    000000000000000000000000000000
    000000000000000000000000000000
    444444555454455455445422222222
    381E75F25EFD13452F414100000000
    G_T_BATCH_PAR
    ATTRIBCHANCHANGE_RUN_MASTER_DATA        03C
    000000000000000000000000000000000000000000000
    000000000000000000000000000000000000000000000
    455544444444444455545445545544542222222233422
    144292381E381E75F25EFD13452F41410000000003300
    G_T_BATCH_PAR[]
    Table IT_8382[3x90]
    FUNCTION-POOL=RSSM_PROCESSDATA=G_T_BATCH_PAR[]
    Table reference: 344
    TABH+  0(20) = 070000004049B188000000000000000000000000
    TABH+ 20(20) = 00000158000020BE000000030000005AFFFFFFFF
    TABH+ 40(16) = 04000190000016A00010249401800000
    store        = 0x070000004049B188
    ext1         = 0x0000000000000000
    shmId        = 0     (0x00000000)
    id           = 344   (0x00000158)
    label        = 8382  (0x000020BE)
    fill         = 3     (0x00000003)
    leng         = 90    (0x0000005A)
    loop         = -1    (0xFFFFFFFF)
    xtyp         = TYPE#000106
    occu         = 16    (0x00000010)
    access       = 1     (ItAccessStandard)
    idxKind      = 0     (ItIndexNone)
    uniKind      = 2     (ItUniqueNon)
    keyKind      = 1     (default)
    cmpMode      = 2     (cmpSingleMcmpR)
    occu0        = 1
    groupCntl    = 0
    rfc          = 0
    unShareable  = 0
    mightBeShared = 0
    sharedWithShmTab = 0
    isShmLockId  = 0
    gcKind       = 0
    isUsed       = 1
    isCtfyAble   = 1
    >>>>> Shareable Table Header Data <<<<<
    tabi         = 0x0700000040F33B90
    pgHook       = 0x0000000000000000
    idxPtr       = 0x0000000000000000
    shmTabhSet   = 0x0000000000000000
    id           = 6392  (0x000018F8)
    refCount     = 0     (0x00000000)
    tstRefCount  = 0     (0x00000000)
    lineAdmin    = 16    (0x00000010)
    lineAlloc    = 16    (0x00000010)
    shmVersId    = 0     (0x00000000)
    shmRefCount  = 1     (0x00000001)
    >>>>> 1st level extension part <<<<<
    regHook      = Not allocated
    collHook     = Not allocated
    ext2         = Not allocated
    >>>>> 2nd level extension part <<<<<
    tabhBack     = Not allocated
    delta_head   = Not allocated
    pb_func      = Not allocated
    pb_handle    = Not allocated
    L_PC_TYPE
    ATTRIBCHAN
    0000000000
    0000000000
    4555444444
    144292381E
    SPACE
    0
    0
    2
    0
    P_PC_TYPE
    ATTRIBCHAN
    0000000000
    0000000000
    4555444444
    144292381E
    L_T_PAR
    Table IT_8427[3x210]
    L_S_PAR
    ATTRIBCHANCHANGE_RUN_MASTER_DATA        03C
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    4555444444444444555454455455445422222222334222222222222222222222222222222222222222222222222222
    144292381E381E75F25EFD13452F414100000000033000000000000000000000000000000000000000000000000000
    G_S_CHAIN
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    G_T_F4
    Table IT_4031[5x222]
    FUNCTION-POOL=RSSM_PROCESSDATA=G_T_F4
    Table reference: 122
    TABH+  0(20) = 0700000040293BE0000000000000000000000000
    TABH+ 20(20) = 0000007A00000FBF00000005000000DEFFFFFFFF
    TABH+ 40(16) = 04000190000009B00010249401800000
    store        = 0x0700000040293BE0
    ext1         = 0x0000000000000000
    shmId        = 0     (0x00000000)
    id           = 122   (0x0000007A)
    label        = 4031  (0x00000FBF)
    fill         = 5     (0x00000005)
    leng         = 222   (0x000000DE)
    loop         = -1    (0xFFFFFFFF)
    xtyp         = TYPE#000037
    occu         = 16    (0x00000010)
    access       = 1     (ItAccessStandard)
    idxKind      = 0     (ItIndexNone)
    uniKind      = 2     (ItUniqueNon)
    keyKind      = 1     (default)
    cmpMode      = 2     (cmpSingleMcmpR)
    occu0        = 1
    groupCntl    = 0
    rfc          = 0
    unShareable  = 0
    mightBeShared = 0
    sharedWithShmTab = 0
    isShmLockId  = 0
    gcKind       = 0
    isUsed       = 1
    isCtfyAble   = 1
    >>>>> Shareable Table Header Data <<<<<
    tabi         = 0x070000004035B278
    pgHook       = 0x0000000000000000
    idxPtr       = 0x0000000000000000
    shmTabhSet   = 0x0000000000000000
    id           = 3652  (0x00000E44)
    refCount     = 0     (0x00000000)
    tstRefCount  = 0     (0x00000000)
    lineAdmin    = 16    (0x00000010)
    lineAlloc    = 16    (0x00000010)
    shmVersId    = 0     (0x00000000)
    shmRefCount  = 1     (0x00000001)
    >>>>> 1st level extension part <<<<<
    regHook      = Not allocated
    collHook     = Not allocated
    ext2         = Not allocated
    >>>>&

    When modifying the PC, you are likely using a process variant twice, or, using a variant already used somewhere else.

  • Need help with BW Process chain issue

    Hi Gurus,
    I had made a copy of the existing process chain so that I can work on the changes. Its a metachain and I tried to copy a sub chain.
    But at a later point of time, I have realized that the process chain had got into a  nested loop in the meta chain, for the sub chain, I had copied. How do I rectify it?
    Kindly suggest

    hi,
    use the bottom up approach.
    Looking at the attached file it has many PCs.
    Just note down all list of all PC and then do the copy of individual PCs, later you can copy the complete meta chain.
    If you want give one more chance and try to copy meta chain again.
    Thank-You.
    Regards,
    VB

  • Local Process Chains

    HI Guys,
    I am in the process of designing the process chains for data loading. I have a situation where I am planning to use local process chains in the meta chain. Situation is like this:I have created Meta Chain for Master Data loading, which is having 2 local process chains, one is for Attributes and another is for loading texts. I placed them in the sequential order. First Attributes chain and on successful completion of Attribute chain it should run the Text process chain. But in the system it executes the Attribute chain successfully but the text process chain is always in the YELLOW( in progress ) state even though in that process chain I have only start process. In the SM50 it shows two background process with the user id ALEREMOTE, but process chain never finishes. In the Messages of the Text process chain I see the message"Communication buffer delted from the previous run ".
    So I put the process chains in the parallel manner, meaning after start process of Meta chain I attached the two process chains so that they should execute simultaneously. But in this case too, Attribute local process chain gets executed but not the Text local process chain.
    We tried debugging the process in SM50, it seems that there is some infinite loop.
    If anybody has any clue then please reply back at your earliest. Your help is highly appreicated,
    Thanks.
    Santosh Taware

    first point, i think you can have single process chian for both attributes and texts one after other.
    second thing check in st22 if any dumps are occuring and check in the monitor in which step it is still running.
    reward if helps.

  • Dynamic data selection in process chain

    Dear BW gurus,
    I've an infocube 0PA_C01. I'm gettting data with data source 0HR_PA_0. Because of
    time-dependency of personel data i should get the package month by month. SO I set the data selection parameter 0CALMONTH in data package.  
    0CALMONTH=200601-200601;
    0CALMONTH=200602-200602;
    My question is how can i use this data package in a process chain for automatically getting data each month without manually changing data selection parameter.
    thanks,
    Yigit

    Hi Yigit,
    In the info-package after you have selected type '6' it will take you to the ABAP editor, please try the following code,
    data: l_s_range type rssdlrange,
            l_date type d.
    l_date = sy-datum.
    l_year = l_date+0(4).
    l_mth = l_date+4(2).
    concatenate l_year l_mth into l_month_high.
    concatenate l_year '01' into l_month_low.
    loop at l_t_range into l_s_range where fieldname = 'CALMONTH'.
    if dy-subrc = 0.
      l_s_range-low = l_month_low.
      l_s_range-low = l_month_high.
      modify l_t_range from l_s_range.
    endif.
    endloop.

  • Process Chain Red 'X', Exec Infopckg Yellow, Infopckg monitor/data correct

    Dear and respectable colleagues of the forum,
    I am experiencing a problem in a process chain when executing infopackages. The process chain has 6 "Execute infopackage" processes. Sometimes (1 of 4 attempts average) my process chain ended with red color with 'X' status in the Process Chain Display Log View.
    Reviewing within the chain Log, there is one of the "Execute infopackage" processes that appears in yellow color (it loads from direct update ODS to an infocube). However, revising the Logs for its corresponding Infopackage execution I found that it says that "Data successfully updated". Moreover, If I review the data loaded it seems to have been loaded correctly.
    Then, Why does the "Execute infopackage" process in PC finishes with yellow color if the Infopackage execution itself finishes correclty?
    To complete the whole scenario: I execute this process chain every night from an Abap program; the program has a Loop that traverses a table, and executes the process chain as many times as the quantity of rows in that table (table has 10 rows meaning offices). As you can understand, the chain is executed 10 times, and the error occurs in any of the 6 "Execute infopackage" processes indistinctly.
    I review ST22 and SM37 for all users for the datetime when the error occured butnothing bizarre was reported. It is left to review SM21.
    The following is the detail of messages.
    Logs for Execute Infopackage
       Data successfully updated
    Monitor of Infopackage
      Details Tab
         Requests (messages): Everything OK      
         Extraction (messages): Everything OK
         Transfer (IDocs and TRFC): Everything OK
         Processing (data packet): Everything OK
           Data Package 1 ( 45 Records ) : Everything OK
             Transfer Rules ( 45  -> 45  Records ) : No errors
             Update rules ( 45  -> 45  Records ) : No errors
             Update ( 45  new / 0 changed ) : No errors
             Processing end : No errors
         Process Chains : Errors occurred
           Llena cubos de carteras vtas sec por distrib - autom

    Dear s v desh,
    I am on SAP BW 3.5, I already checked the cube and it is green - all right.
    The message in the infopackage excution node in the process chain says (non-error):
      "Data successfully updated"
    The error message in process chain monitor (log) says:
    ......"Overall status: Error occurred: or: Missing messages
    ............Process Chains : Errors occurred"
    I just realized that there is no messages at all in the infopackage monitor (log).
    I have received a clue, someone asked me to review note 1396417, and I will.
    Regards
    Juan Alonso Teevin

  • Process chain: manual data change as start process?

    Hi,
    i have two BWs in which i hold identical InfoObjects (master data). now i want to use a process chain to transfer any changes made to the data in BW X into that object in BW Y.
    is it possible to use manual changes of this master data as a start process for the process chain? i only saw the possibility to use InfoPackages and so on. but my process chain should just be triggered by a manual change in the master data attributes.
    how do i configure an event as a trigger for the process chain? i do not see the purpose of a start process because i do not see how i can link it with an event...
    cheers,
    stefan
    Message was edited by: Stefan Voltz

    Hi Ram,
    i hope I understood everything right.
    the table that you called "ztest1" I replaced with /BIC/PVCOM1_U02. That is the copy of the master data from the remote system.
    The table in the local system, with which we compare the table /BIC/PVCOM1_U02, has the name /BIC/PVCOM1.
    The name of the event I created is called "VCOM_DATA_CHANGE".
    And here it goes...
    ****************BEGIN OF PROGRAM**********
    *& Report Z_EVENT_DATA_CHANGE
    REPORT Z_EVENT_DATA_CHANGE.
    /BIC/PVCOM1_U02 is the table copied from the remote system
    /BIC/PVCOM1 is the table containing the master data on the current system
    tables: /BIC/PVCOM1_U02, /BIC/PVCOM1.
    data: zrec_old(15), zrec_new(15) type c.
    data: ztest_old type /BIC/PVCOM1_U02 occurs 10 with header line,
    ztest_new type /BIC/PVCOM1 occurs 10 with header line.
    select * from /BIC/PVCOM1_U02 into TABLE ztest_old.
    zrec_old = sy-dbcnt.
    select * from /BIC/PVCOM1 into TABLE ztest_new
    where OBJVERS = 'A'.
    zrec_new = sy-dbcnt.
    if i understood correctly, we sort the tables by field names
    so i replaced CURRENCY and ANSALARY by /BIC/PVCOM2_U02, which is the only field in my table beside /BIC/PVCOM1_U02
    sort ztest_old by /BIC/ZTEST1 CURRENCY ANSALARY.
    sort ztest_old by /BIC/PVCOM1_02 /BIC/PVCOM2_U02.
    sort ztest_new by /BIC/PVCOM1 /BIS/PVCOM2.
    if zrec_old <> zrec_new.
    perform event_raise.
    else.
    loop at ztest_new.
    read table ztest_old with key
    /BIC/PVCOM1_U02 = ztest_new-/BIC/PVCOM1  "dot missing?
    /BIC/PVCOM2_U02 = ztest_new-/BIC/PVCOM2.
    if sy-subrc <> 0.
    perform event_raise.
    endif.
    endloop.
    endif.
    *& Form event_raise
    text
    --> p1 text
    <-- p2 text
    FORM event_raise .
    CALL FUNCTION 'BP_EVENT_RAISE'
    EXPORTING
    EVENTID = 'VCOM_DATA_CHANGE'
    EVENTPARM = ' '
    TARGET_INSTANCE = ' '
    EXCEPTIONS
    BAD_EVENTID = 1
    EVENTID_DOES_NOT_EXIST = 2
    EVENTID_MISSING = 3
    RAISE_FAILED = 4
    OTHERS = 5.
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    loop at ztest_new.
    move-corresponding ztest_new to /BIC/PVCOM1_U02.
    modify /BIC/PVCOM1_U02.
    commit work.
    endloop.
    LEAVE PROGRAM.
    ENDFORM. " event_raise
    ****************END OF PROGRAM**********
    Thanks for helping me again.
    I will now find out, how two implement and schedule this program. And how to run the process chain based on that event.
    Stefan

  • Process chain - schedule for certain days

    Hello all,
    How can I schedule a process chain that :
    -should run 3 times per day
    -between the 8th and the 12 workingday of a month
    Any sugesstions?
    Thank you.

    Maybe I cna help others with my solution.
    So...
    I made the chain to run 3 times per day as Debjani advidced me in this thread.
    I put 3 jobs, at the hours I wanted, the period daily, without weekends and holidays.
    I made a reports that tests the 18-th working day (for example) and some others:
    REPORT  Z_DAYS.
    TABLES : TFACS.
    DATA: GI_CURSOR TYPE CURSOR,
          GI_TABIX  TYPE SY-TABIX,
          GT_TFACS  TYPE TABLE OF TFACS.
    DATA: TEXT(50) TYPE C,
          LEN TYPE I,
          IND TYPE I,
          POS TYPE I,
          CNT_ONE TYPE I,
          CNT_ZERO TYPE I,
          DAY_VAR TYPE I,
          IND_VAR(3) TYPE C.
    DATA: EVENTID LIKE TBTCJOB-EVENTID.
    DATA: EVENTPARM LIKE TBTCJOB-EVENTPARM.
    FIELD-SYMBOLS:  <GT_TFACS> TYPE TFACS.
    DAY_VAR = SY-DATUM+6(2).
    OPEN CURSOR GI_CURSOR FOR
    *select data for factory calender Germany (01) and year 2009
    SELECT * FROM TFACS
      WHERE IDENT EQ '01' AND JAHR EQ SY-DATUM+0(4).
    IF SY-SUBRC NE 0.
      EXIT.
    ENDIF.
    MOVE 100 TO GI_TABIX.
    DO.
      FETCH NEXT CURSOR GI_CURSOR
       INTO TABLE GT_TFACS
       PACKAGE SIZE GI_TABIX.
      IF SY-SUBRC NE 0.
        EXIT.
      ENDIF.
    *loop on internal table
      LOOP AT GT_TFACS ASSIGNING <GT_TFACS>.
        TEXT = <GT_TFACS>-MON01.
        LEN = STRLEN( TEXT ).
        WRITE : 'len' , LEN.
        DO LEN TIMES.
          IND = SY-INDEX.
          POS = SY-TABIX.
          IND = IND - 1.
          IND_VAR = IND + 1.
          WRITE: / 'ind', IND_VAR.
          WRITE : 'pos'.
          WRITE POS.
          IF TEXT+IND(POS) = '1'.
    *number of working days increases with 1
            CNT_ONE  = CNT_ONE + 1.
            IF CNT_ONE EQ 8 AND ( DAY_VAR = IND_VAR ).
              WRITE : / '8th working day'.
              EXIT.
            ELSEIF CNT_ONE EQ 9 AND ( DAY_VAR = IND_VAR ).
              WRITE : / '9th working day'.
              EXIT.
            ELSEIF CNT_ONE EQ 10 AND ( DAY_VAR = IND_VAR ).
              WRITE : / '10th working day'.
              EXIT.
            ELSEIF CNT_ONE EQ 11 AND ( DAY_VAR = IND_VAR ).
              WRITE : / '11th working day'.
              EXIT.
            ELSEIF CNT_ONE EQ 17 AND ( DAY_VAR = IND_VAR ).
              WRITE : / '17th working day' COLOR 5.
              EVENTID = 'ZE_PROD'.
              EVENTPARM = 'ZEP_PROD'.
              CALL FUNCTION 'RSSM_EVENT_RAISE'
                EXPORTING
                  I_EVENTID              = EVENTID
                  I_EVENTPARM            = EVENTPARM
                EXCEPTIONS
                  BAD_EVENTID            = 1
                  EVENTID_DOES_NOT_EXIST = 2
                  EVENTID_MISSING        = 3
                  RAISE_FAILED           = 4
                  OTHERS                 = 5.
             IF NOT SY-SUBRC IS INITIAL.
               WRITE:/ 'EVENT DID NOT START'.
             ENDIF.
              EXIT.
            ELSEIF CNT_ONE EQ 18 AND ( DAY_VAR = IND_VAR ).
              WRITE : / '18th working day' COLOR 5.
              EVENTID = 'ZE_PROD'.
              EVENTPARM = 'ZEP_PROD'.
              CALL FUNCTION 'RSSM_EVENT_RAISE'
                EXPORTING
                  I_EVENTID              = EVENTID
                  I_EVENTPARM            = EVENTPARM
                EXCEPTIONS
                  BAD_EVENTID            = 1
                  EVENTID_DOES_NOT_EXIST = 2
                  EVENTID_MISSING        = 3
                  RAISE_FAILED           = 4
                  OTHERS                 = 5.
             IF NOT SY-SUBRC IS INITIAL.
               WRITE:/ 'EVENT DID NOT START'.
             ENDIF.
              EXIT.
            ENDIF.
          ELSEIF TEXT+IND(POS) = '0'.
    *number of holidays days increases with 1
            CNT_ZERO = CNT_ZERO + 1.
          ENDIF.
        ENDDO.
        WRITE : /.
        WRITE: 'January :' COLOR 1, <GT_TFACS>-MON01.
      ENDLOOP.
      REFRESH GT_TFACS.
    ENDDO.
    WRITE / .
    WRITE ' The number of working days is :'.
    WRITE CNT_ONE COLOR 5.
    WRITE / .
    WRITE ' The number of holiday days is :'.
    WRITE CNT_ZERO COLOR 7.
    WRITE : /  DAY_VAR.
    CLOSE CURSOR GI_CURSOR.
    When I am in the 18-th day, I raise an event. I test the year,the calender of the system and the month (January).
    This report is called in the chain, as ABAP process.
    Then, in my chain , I put a local chain , that starts after it receives the event 'ZE_PROD' and the parameter for it 'ZE_PROD'.
    This event with parameter has to be created in SM62.
    I hope this helps and thank you all for the advices.
    PS: - the factory calender method seems not to be to good, because need special rights to create it and I don' t think it's possible to customize it (because the holiday calender has to be changed and I did not see how).
    Edited by: EMI on Jan 27, 2009 4:21 PM

  • Process chain design/schedule/monitoring/debugging

    hi  friends
    pls  help  me on  the  issue of process chain design/schedule/monitoring/debugging
    with  one  of  real  time  scenario, with help of t-codes and  detail  navigation
    thanks in advance
    venkatp

    I have listed below the major informatin neede for your requirement...
    1.Go to RSPC to view all the chains.
    2.There click on any chain which you want to run/view.
    3.Click on the <b>log view(</b>shift+F1) to view all the previous runs of the chain and whether they have failed or successful(here you can select 1 day,week ,month etc in the display range)
    4.If you want to modify the chain /add a process type /change the variant  then click (Ctrl+F9) and do the changes.
    Even  you can change the start variant in change mode for manual scheduling>right click on start process typeselect display variant--now select  start Direct Scheduling/ API  or Metachain
    under <b>direct scheuling</b> option you can trigger it by setting start immediately /Date-time/After job/event whatever you want to do
    Else you can make it part of a Metachain consisting of different such small local process chains.
    Now Click on Schedule (F8) to run this chain manually.
    5.For <b>Monitoring</b> use Tcodes SM37/RSPCM/SM50
    Also you can use BWCCMS.
    I usually prefer sm37 to view all the background jobs but SM50 is also useful.
    6.<b>debug loop</b> can be used to debug a process chain.(you have to specify here the gap between one event been triggered and the next subsequent process starting)
    to capture process in debugger go to  SM37(job overview) or to SM50(process overview)

  • Set delay for process in process chain (BI7)

    Hi gurus.
    Can anybody advice me on how to set delay for a process in process chain in BI7
    Thanks in advance

    Hi,
    If you right-click on a process in the Process Chain, there should be an option called Debug Loop. Here you can enter the number of seconds to delay a process.
    The only difference between 3.5 and 7.0 is that Option Waiting Time in context menu of "any" process is replaced by Debug Loop.Here you can enter the # of seconds for which you want your process to be delayed.
    See below:
    Re: Start a Process Chain after every 15 mins
    Hope this helps.
    Regards
    CSM Reddy

Maybe you are looking for