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
Ivyhi,
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. -
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,
Kshitijtry 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?
ThanksHi 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 GIVEHi 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 suggesthi,
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 -
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 Tawarefirst 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,
YigitHi 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 - automDear 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 VoltzHi 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
venkatpI 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 advanceHi,
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
-
URGENT HELP NEEDED - iPhone 3Gs no longer detected or charged by MacBook
My iPhone 3Gs (3.1) has been running fine, until several hours ago today, when I plugged it to my MacBook, the iPhone is no longer detected - it doesn't show up in iTunes, nor it is charged. I tried opening iPhoto, and it wasn't there too. Not with I
-
Monitoring & Performance Tuning
Hi BW Gurus, Please let me know common Monitoring & Performance Tuning tasks/issues and how to resolve them. Thanks in advance Rajesh
-
Can't build tp_smapi package under custom kernel, built ok with stock
Hi, I followed this guide and built a custom kernel http://wiki.archlinux.org/index.php/Cus - n_with_ABS (with the PKGBUILD file found in this page). Basically I changed the LOCALVERSION while config kernel module, and changed processor type to Pen
-
FIND OUT GAPS IN TAX TO COMPARE IN OLD AND NEW FOR BUDGETARY PURPOSE.
CAN I HAVE EXPALINARY DOC WITH EX BUSINESS PROCESS. SPECIFICALLY TO FIND OUT GAPS IN TAX TO COMPARE IN OLD AND NEW FOR BUDGETARY PURPOSE. THANKQ FOR IMMIDIATE RESPONSE Annie
-
JSF + JPA in one project ( Eclipse IDE)
Hi, I am trying to understand how to work with JPA in eclipse. when I open new project I can choose JSF project or JPA project. where is the logic in that? these are two different frameworks that suppose to work together at the same web application.