Hi,
We have developped a specific program to search for words in logfile. This program was added to a step after the program for which we want to search the logfile. When running the job, the step containing the specific program abended (see above for message). Nothing found in OS Log, ST22 or SM21.
This program run after one, which automatically starts several jobs at the same time (it simulates the processing of the FPCOPARA transaction). Is there any restriction to it ? Could memory be the reason ?
Thank you for your help
Sincerely
Dominique Charlier
Please use code tags when posting code.
P.S. : the program code :
*-----------------------------------------------------------------------
* Swisscom
*
* PROJEKT:
*-----------------------------------------------------------------------
* SAP-RELEASE: 7.00
*-----------------------------------------------------------------------
* DOKUMENTATION ZUM PROGRAMM:
*
* NAME: ZZCAJOBSTEPCHECKER
*
* ZWECK: Das Programm überprüft das aktive Job-Log
* auf bestimmte Muster und bricht im Erfolgsfall
* die weitere Verarbeitung ab und versendet ein
* Email mit dem Job-Log an eine Email-Adresse.
*
* VERWENDET: FuBa für Job-Log
* FuBa zum Versenden von Emails
*
* INPUT: Aktives Job-Jog
*
* OUTPUT: E-Mail's
*-----------------------------------------------------------------------
* DOKUMENTATION ZU ERSTELLUNG/AENDERUNGEN:
*
* ERSTELLUNG:
*
* tturo 21.01.2009 Martin Rohrer by Matthias Bhend
* tfrchdo1 19.02.2009 Anpassung von Mail Meldung
*
* AENDERUNGSKONTROLLE:
*-----------------------------------------------------------------------
REPORT ZZRMCA_JOBSTEPCHECKER.
*-----------------------------------------------------------------------
* Tables
*-----------------------------------------------------------------------
TABLES TBTCM.
*----------------------------------------------------------------------*
* Define Global Variables
*----------------------------------------------------------------------*
DATA: BEGIN OF T OCCURS 20.
INCLUDE STRUCTURE TBTC5.
DATA END OF T.
DATA ALRT_TXT(100) TYPE C. "#EC *
DATA YES_NO TYPE C VALUE ' '.
*----------------------------------------------------------------------*
* Selection
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK ALERTPA WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS ALRT_LST FOR (ALRT_TXT) LOWER CASE.
SELECTION-SCREEN END OF BLOCK ALERTPA.
SELECTION-SCREEN BEGIN OF BLOCK EMAILCON WITH FRAME TITLE TEXT-002.
PARAMETERS: EMAIL_AD(100) TYPE C.
PARAMETERS: ID_MELD(20) TYPE C OBLIGATORY LOWER CASE.
SELECTION-SCREEN END OF BLOCK EMAILCON.
SELECTION-SCREEN BEGIN OF BLOCK ADDTEXT WITH FRAME TITLE TEXT-003.
PARAMETERS: EMAIL_L1(100) TYPE C LOWER CASE,
EMAIL_L2(100) TYPE C LOWER CASE,
EMAIL_L3(100) TYPE C LOWER CASE.
SELECTION-SCREEN END OF BLOCK ADDTEXT.
PERFORM CHECK_JOB_ERROR.
*&---------------------------------------------------------------------*
*& CHECK_JOB_ERROR *
*&---------------------------------------------------------------------*
*& Aktives Job-Jog auf Muster überprüfen *
*&---------------------------------------------------------------------*
FORM CHECK_JOB_ERROR.
CALL FUNCTION 'GET_JOB_RUNTIME_INFO'
IMPORTING
EVENTID = TBTCM-EVENTID
EVENTPARM = TBTCM-EVENTPARM
EXTERNAL_PROGRAM_ACTIVE = TBTCM-XPGACTIVE
JOBCOUNT = TBTCM-JOBCOUNT
JOBNAME = TBTCM-JOBNAME
STEPCOUNT = TBTCM-STEPCOUNT
EXCEPTIONS
NO_RUNTIME_INFO = 01.
IF SY-SUBRC NE 0.
MESSAGE TEXT-100 TYPE 'E'.
ELSE.
WRITE : / TBTCM-EVENTID, ' ',
TBTCM-EVENTPARM, ' ',
TBTCM-XPGACTIVE, ' ',
TBTCM-JOBCOUNT, ' ',
TBTCM-JOBNAME, ' ',
TBTCM-STEPCOUNT.
COMMIT WORK.
CALL FUNCTION 'BP_JOBLOG_READ'
EXPORTING
CLIENT = SY-MANDT
JOBCOUNT = TBTCM-JOBCOUNT
JOBNAME = TBTCM-JOBNAME
TABLES
JOBLOGTBL = T
EXCEPTIONS
CANT_READ_JOBLOG = 01
JOBCOUNT_MISSING = 02
JOBLOG_DOES_NOT_EXIST = 03
JOBLOG_IS_EMPTY = 04
JOBLOG_NAME_MISSING = 05
JOBNAME_MISSING = 06
JOB_DOES_NOT_EXIST = 07.
IF SY-SUBRC NE 0.
MESSAGE TEXT-101 TYPE 'E'.
ELSE.
LOOP at alrt_lst.
if yes_no EQ ''.
loop at t.
FIND alrt_lst-low in t-text.
if sy-subrc = 0.
if yes_no EQ ''.
yes_no = 'X'.
exit.
endif.
endif.
endloop.
else.
exit.
endif.
ENDLOOP.
* Loop at t.
* write : / t-text.
* endloop.
* loop at alrt_lst.
* write : / alrt_lst.
* endloop.
"LOOP AT alrt_lst.
" FIND ALRT_LST-LOW in T.
" IF sy-subrc = 0.
" IF YES_NO EQ ''.
" YES_NO = 'X'.
" ENDIF.
" ENDIF.
" ENDLOOP.
* LOOP AT T WHERE TEXT IN ALRT_LST.
* IF YES_NO EQ ''.
* YES_NO = 'X'.
* ENDIF.
* ENDLOOP.
IF YES_NO = 'X'.
PERFORM WRITE_EMAIL.
MESSAGE T-TEXT TYPE 'E'.
ENDIF.
ENDIF.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& WRITE_EMAIL *
*&---------------------------------------------------------------------*
*& Email über SAP Business Workplace versenden *
*&---------------------------------------------------------------------*
FORM WRITE_EMAIL.
DATA: BEGIN OF EMAIL_DATA.
INCLUDE STRUCTURE SODOCCHGI1.
DATA: END OF EMAIL_DATA.
DATA: BEGIN OF EMAIL_SEND OCCURS 10.
INCLUDE STRUCTURE SOMLRECI1.
DATA: END OF EMAIL_SEND.
DATA: BEGIN OF EMAIL_TEXT OCCURS 10.
INCLUDE STRUCTURE SOLISTI1.
DATA: END OF EMAIL_TEXT.
EMAIL_DATA-OBJ_NAME = 'MESSAGE'.
CONCATENATE ID_MELD TEXT-M01 TBTCM-JOBNAME '!'
INTO EMAIL_DATA-OBJ_DESCR SEPARATED BY ' '.
EMAIL_DATA-DOC_SIZE = 1.
EMAIL_SEND-RECEIVER = EMAIL_AD.
EMAIL_SEND-REC_TYPE = 'U'.
EMAIL_SEND-EXPRESS = 'X'.
APPEND EMAIL_SEND.
EMAIL_TEXT-LINE = TEXT-M10. APPEND EMAIL_TEXT.
EMAIL_TEXT-LINE = ''. APPEND EMAIL_TEXT.
CONCATENATE TEXT-M11 TBTCM-JOBNAME TEXT-M12
INTO EMAIL_TEXT-LINE SEPARATED BY ''. APPEND EMAIL_TEXT.
EMAIL_TEXT-LINE = ''. APPEND EMAIL_TEXT.
LOOP AT T.
CONCATENATE T-ENTERDATE+6(1) '.' T-ENTERDATE+4(2) '.' T-ENTERDATE+0(4) '-'
T-ENTERTIME+0(2) ':' T-ENTERTIME+2(2) ':' T-ENTERTIME+4(2)
INTO EMAIL_TEXT-LINE.
CONCATENATE EMAIL_TEXT-LINE T-TEXT INTO EMAIL_TEXT-LINE SEPARATED BY ' '.
APPEND EMAIL_TEXT.
ENDLOOP.
EMAIL_TEXT-LINE = ''. APPEND EMAIL_TEXT.
IF EMAIL_L1 NE ''.
EMAIL_TEXT-LINE = EMAIL_L1. APPEND EMAIL_TEXT.
ENDIF.
IF EMAIL_L2 NE ''.
EMAIL_TEXT-LINE = EMAIL_L2. APPEND EMAIL_TEXT.
ENDIF.
IF EMAIL_L3 NE ''.
EMAIL_TEXT-LINE = EMAIL_L3. APPEND EMAIL_TEXT.
ENDIF.
EMAIL_TEXT-LINE = ''. APPEND EMAIL_TEXT.
EMAIL_TEXT-LINE = TEXT-M50. APPEND EMAIL_TEXT.
EMAIL_TEXT-LINE = TEXT-M51. APPEND EMAIL_TEXT.
EMAIL_TEXT-LINE = TEXT-M52. APPEND EMAIL_TEXT.
CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
EXPORTING
DOCUMENT_DATA = EMAIL_DATA
DOCUMENT_TYPE = 'RAW'
PUT_IN_OUTBOX = 'X'
COMMIT_WORK = 'X'
TABLES
OBJECT_CONTENT = EMAIL_TEXT
RECEIVERS = EMAIL_SEND
EXCEPTIONS
TOO_MANY_RECEIVERS = 1
DOCUMENT_NOT_SENT = 2
DOCUMENT_TYPE_NOT_EXIST = 3
OPERATION_NO_AUTHORIZATION = 4
PARAMETER_ERROR = 5
X_ERROR = 6
ENQUEUE_ERROR = 7
OTHERS = 8.
IF SY-SUBRC NE 0.
MESSAGE TEXT-102 TYPE 'E'.
ENDIF.
ENDFORM.
Edited by: Rob Burbank on Feb 26, 2009 10:21 AM
Added code tags