<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: E-mail notification in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528477#M241727</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;SB,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I use the following code to create a job and check on the status of that job.  You could replace my error message with code to send an e-mail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Bruce&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;report zfglr027  no standard page heading&lt;/P&gt;&lt;P&gt;                  line-size 132&lt;/P&gt;&lt;P&gt;                 message-id zf.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  END-OF-SELECTION.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;  s e l e c t i o n   s c r e e n   o p t i o n s &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     P_PRTR      printer&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     P_PGM       report painter program&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     P_VAR       report painter variant&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     P_JOBNAM    job name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     P_WAIT      seconds to wait in loop when checking  if&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 program finished&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; T A B L E S &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/P&gt;&lt;P&gt;tables: tsp01,      " Spool Requests&lt;/P&gt;&lt;P&gt;        tbtcp,      " Background Job Step Overview&lt;/P&gt;&lt;P&gt;        tbtcjob.    " Structure for Passing Job Header Data (BI-API)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; S E L E C T I O N   S C R E E N   O P T I O N S &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;selection-screen begin of block b1 with frame title text-001.&lt;/P&gt;&lt;P&gt;  parameter: p_prtr(4) default 'L9B' obligatory.&lt;/P&gt;&lt;P&gt;  parameter: p_pgm like sy-repid obligatory&lt;/P&gt;&lt;P&gt;                               default 'ZMYSHOW'.&lt;/P&gt;&lt;P&gt;  parameter: p_var like rsvar-variantt default 'XX' obligatory.&lt;/P&gt;&lt;P&gt;  parameter: p_jobnam like tbtcjob-jobname default 'Budgeted_I_Stmnt'.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;selection-screen end of block b1.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;selection-screen begin of block b5 with frame title text-004.&lt;/P&gt;&lt;P&gt;  selection-screen comment 1(55) text-005.&lt;/P&gt;&lt;P&gt;  parameters: p_wait(3) type n default 010.&lt;/P&gt;&lt;P&gt;selection-screen end of block b5.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; D A T A   D E F I N I T I O N S  &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/P&gt;&lt;P&gt;data w_jobcount like tbtcjob-jobcount.&lt;/P&gt;&lt;P&gt;data: w_btcchar1(1).&lt;/P&gt;&lt;P&gt;data: w_jobhead like tbtco.&lt;/P&gt;&lt;P&gt;data: int_job_read_steplist like tbtcstep occurs 0 with header line.&lt;/P&gt;&lt;P&gt;data:  w_rqident like tsp01-rqident.&lt;/P&gt;&lt;P&gt;data: wf_while_check(1).&lt;/P&gt;&lt;P&gt;data: e_receiver like zereport-receiver occurs 0 with header line.&lt;/P&gt;&lt;P&gt;data: e_sent like zereport-receiver occurs 0 with header line.&lt;/P&gt;&lt;P&gt; data  w_start like sy-uzeit.      "  start time of Report Painter pgm&lt;/P&gt;&lt;P&gt; data  w_code(40).&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;  perform 1000_run_program.&lt;/P&gt;&lt;P&gt;end-of-selection.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  1000_run_program&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form 1000_run_program.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt; call function 'JOB_OPEN'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;           jobname          = p_jobnam&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;           jobcount         = w_jobcount&lt;/P&gt;&lt;P&gt;      exceptions&lt;/P&gt;&lt;P&gt;           cant_create_job  = 1&lt;/P&gt;&lt;P&gt;           invalid_job_data = 2&lt;/P&gt;&lt;P&gt;           jobname_missing  = 3&lt;/P&gt;&lt;P&gt;           others           = 4.&lt;/P&gt;&lt;P&gt; if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;   case sy-subrc.&lt;/P&gt;&lt;P&gt;     when 1.&lt;/P&gt;&lt;P&gt;       w_code = 'cant_create_job'.&lt;/P&gt;&lt;P&gt;     when 2.&lt;/P&gt;&lt;P&gt;       w_code = 'invalid_job_data'.&lt;/P&gt;&lt;P&gt;     when 3.&lt;/P&gt;&lt;P&gt;       w_code = 'jobname_missing'.&lt;/P&gt;&lt;P&gt;     when 4.&lt;/P&gt;&lt;P&gt;       w_code = 'others'.&lt;/P&gt;&lt;P&gt;    endcase.&lt;/P&gt;&lt;P&gt;    message i000 with 'JOB_OPEN Error   ' w_code  '  Program aborted'.&lt;/P&gt;&lt;P&gt;    format color  col_negative.&lt;/P&gt;&lt;P&gt;    skip 2.&lt;/P&gt;&lt;P&gt;    write: / 'Program aborted.'.&lt;/P&gt;&lt;P&gt;    write: / 'Function JOB_OPEN Error  ', w_code.&lt;/P&gt;&lt;P&gt;    stop.&lt;/P&gt;&lt;P&gt; endif.&lt;/P&gt;&lt;P&gt; format color  col_normal.&lt;/P&gt;&lt;P&gt; skip 2.&lt;/P&gt;&lt;P&gt; write: / ' JOB_OPEN values after call:'.&lt;/P&gt;&lt;P&gt; write: /4 'jobname     ', p_jobnam.&lt;/P&gt;&lt;P&gt; write: /4 'jobcount    ', w_jobcount.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; translate p_pgm to upper case.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  get time  field w_start .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;submit ZMYSHOW&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  submit (p_pgm)&lt;/P&gt;&lt;P&gt;         to sap-spool&lt;/P&gt;&lt;P&gt;            destination p_prtr&lt;/P&gt;&lt;P&gt;            immediately ' '&lt;/P&gt;&lt;P&gt;            keep in spool 'X'&lt;/P&gt;&lt;P&gt;            without spool dynpro&lt;/P&gt;&lt;P&gt;         user sy-uname via job p_jobnam  number w_jobcount&lt;/P&gt;&lt;P&gt;         using selection-set p_var&lt;/P&gt;&lt;P&gt;         using selection-sets of program p_pgm&lt;/P&gt;&lt;P&gt;         and return.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  skip 2.&lt;/P&gt;&lt;P&gt;  write: / ' SUBMIT parameters after submit:'.&lt;/P&gt;&lt;P&gt;  write: /4 'user       ', sy-uname.&lt;/P&gt;&lt;P&gt;  write: /4 'job        ',  p_jobnam.&lt;/P&gt;&lt;P&gt;  write: /4 'jobcount   ', w_jobcount.&lt;/P&gt;&lt;P&gt;  write: /4 'program    ', p_pgm.&lt;/P&gt;&lt;P&gt;  write: /4 'variant    ', p_var.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  call function 'JOB_CLOSE'&lt;/P&gt;&lt;P&gt;       exporting jobname   = p_jobnam&lt;/P&gt;&lt;P&gt;               jobcount  = w_jobcount&lt;/P&gt;&lt;P&gt;               strtimmed = 'X'&lt;/P&gt;&lt;P&gt;       exceptions&lt;/P&gt;&lt;P&gt;          cant_start_immediate        = 1&lt;/P&gt;&lt;P&gt;          invalid_startdate           = 2&lt;/P&gt;&lt;P&gt;          jobname_missing             = 3&lt;/P&gt;&lt;P&gt;          job_close_failed            = 4&lt;/P&gt;&lt;P&gt;          job_nosteps                 = 5&lt;/P&gt;&lt;P&gt;          job_notex                   = 6&lt;/P&gt;&lt;P&gt;          lock_failed                 = 7&lt;/P&gt;&lt;P&gt;          others                      = 8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      case sy-subrc.&lt;/P&gt;&lt;P&gt;        when 1.&lt;/P&gt;&lt;P&gt;          w_code = 'cant_start_immediate'.&lt;/P&gt;&lt;P&gt;        when 2.&lt;/P&gt;&lt;P&gt;          w_code = 'invalid_startdate'.&lt;/P&gt;&lt;P&gt;        when 3.&lt;/P&gt;&lt;P&gt;          w_code = 'jobname_missing'.&lt;/P&gt;&lt;P&gt;        when 4.&lt;/P&gt;&lt;P&gt;          w_code = 'job_close_failed'.&lt;/P&gt;&lt;P&gt;        when 5.&lt;/P&gt;&lt;P&gt;          w_code = 'job_nosteps'.&lt;/P&gt;&lt;P&gt;        when 6.&lt;/P&gt;&lt;P&gt;          w_code = 'job_notex'.&lt;/P&gt;&lt;P&gt;        when 7.&lt;/P&gt;&lt;P&gt;          w_code = 'lock_failed'.&lt;/P&gt;&lt;P&gt;        when 8.&lt;/P&gt;&lt;P&gt;          w_code = 'others'.&lt;/P&gt;&lt;P&gt;       endcase.&lt;/P&gt;&lt;P&gt;      message i000 with 'JOB_CLOSE Error  ' w_code  '  Program aborted'.&lt;/P&gt;&lt;P&gt;       skip 2.&lt;/P&gt;&lt;P&gt;       format color  col_negative.&lt;/P&gt;&lt;P&gt;       write: / 'Program aborted.'.&lt;/P&gt;&lt;P&gt;       write: / 'Function JOB_CLOSE Error  ', w_code.&lt;/P&gt;&lt;P&gt;       stop.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  format color  col_normal.&lt;/P&gt;&lt;P&gt;  skip 2.&lt;/P&gt;&lt;P&gt;  write: / ' JOB_CLOSE values after call:'.&lt;/P&gt;&lt;P&gt;  write: /4 'jobname    ', p_jobnam.&lt;/P&gt;&lt;P&gt;  write: /4 'jobcount   ', w_jobcount.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;w_jobhead-status possible values&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    btc_running       like tbtco-status value 'R',&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    btc_ready         like tbtco-status value 'Y',&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    btc_scheduled     like tbtco-status value 'P',&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    btc_released      like tbtco-status value 'S',&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    btc_aborted       like tbtco-status value 'A',&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    btc_finished      like tbtco-status value 'F',&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    btc_put_active    like tbtco-status value 'Z',&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    btc_unknown_state like tbtco-status value 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Wait for a while so jobs can run&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  while ( not w_jobhead-status = 'F' ) and&lt;/P&gt;&lt;P&gt;        ( not w_jobhead-status = 'A' ).&lt;/P&gt;&lt;P&gt;    call function 'BP_JOB_READ'&lt;/P&gt;&lt;P&gt;        exporting&lt;/P&gt;&lt;P&gt;            job_read_jobcount = w_jobcount&lt;/P&gt;&lt;P&gt;            job_read_jobname = p_jobnam&lt;/P&gt;&lt;P&gt;            job_read_opcode = '20'&lt;/P&gt;&lt;P&gt;        importing&lt;/P&gt;&lt;P&gt;            job_read_jobhead = w_jobhead&lt;/P&gt;&lt;P&gt;        tables&lt;/P&gt;&lt;P&gt;            job_read_steplist = int_job_read_steplist&lt;/P&gt;&lt;P&gt;        exceptions&lt;/P&gt;&lt;P&gt;            invalid_opcode = 1&lt;/P&gt;&lt;P&gt;            job_doesnt_exist = 2&lt;/P&gt;&lt;P&gt;            job_doesnt_have_steps = 3&lt;/P&gt;&lt;P&gt;            others = 4.&lt;/P&gt;&lt;P&gt;    if w_jobhead-status =  'F'.            " F = Finished&lt;/P&gt;&lt;P&gt;      exit.&lt;/P&gt;&lt;P&gt;    elseif w_jobhead-status = 'A'.         " A = Aborted&lt;/P&gt;&lt;P&gt;      message e935 with 'BP_JOB_READ function Aborted.'&lt;/P&gt;&lt;P&gt;                        'Status is '&lt;/P&gt;&lt;P&gt;                        w_jobhead-status&lt;/P&gt;&lt;P&gt;                        '"'.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    wait up to 300 seconds.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      wait up to p_wait seconds.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endwhile.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if w_jobhead-status &amp;lt;&amp;gt; 'F'.&lt;/P&gt;&lt;P&gt;     write: / 'status', w_jobhead-status.&lt;/P&gt;&lt;P&gt;     message e935 with&lt;/P&gt;&lt;P&gt;         'BP_JOB_READ function did not complete successfully'&lt;/P&gt;&lt;P&gt;                 w_jobhead-status.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;endform.                    " 1000_run_program&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 15 Aug 2006 18:57:01 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2006-08-15T18:57:01Z</dc:date>
    <item>
      <title>E-mail notification</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528471#M241721</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have job's running on production system. I have access to SM37 ... but everyday I have to go &amp;amp; check SM37 to see wether any job failed or not at SAP's end ... Is there a way where in the users &amp;amp; myself can get an e-mail notification if the job fails ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank You,&lt;/P&gt;&lt;P&gt;SB.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Aug 2006 15:25:20 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528471#M241721</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-15T15:25:20Z</dc:date>
    </item>
    <item>
      <title>Re: E-mail notification</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528472#M241722</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don't know of an SAP provided solution, but you could easily write your own program to monitor the background jobs (tables TBTCO, TBTCP) and send emails when an error is detected.  I did something similar to this to monitor errored transactions in SM58.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Aug 2006 15:28:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528472#M241722</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-15T15:28:24Z</dc:date>
    </item>
    <item>
      <title>Re: E-mail notification</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528473#M241723</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Tyy the FM 'SO_NEW_DOCUMENT_ATT_SEND_API1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------" /&gt;&amp;amp;      Mail to External email&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------" /&gt;&lt;P&gt;  DATA : SEND LIKE SONV-FLAG VALUE 'X',&lt;/P&gt;&lt;P&gt;         V_LINE TYPE I.&lt;/P&gt;&lt;P&gt;  DATA  : SAP_INBOX_V_LINE TYPE I.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE S_RECNAM LINES SAP_INBOX_V_LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT S_RECNAM.&lt;/P&gt;&lt;P&gt;    WS_SAP_INBOX-RECEIVER = S_RECNAM-LOW . "SY-UNAME. sap_inbox.&lt;/P&gt;&lt;P&gt;    WS_SAP_INBOX-EXPRESS  = 'X'.&lt;/P&gt;&lt;P&gt;    WS_SAP_INBOX-REC_TYPE = 'B'.&lt;/P&gt;&lt;P&gt;    APPEND WS_SAP_INBOX.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT S_RECNM1.&lt;/P&gt;&lt;P&gt;    WS_SAP_INBOX-RECEIVER = S_RECNM1-LOW . "SY-UNAME. sap_inbox.&lt;/P&gt;&lt;P&gt;    WS_SAP_INBOX-EXPRESS  = 'X'.&lt;/P&gt;&lt;P&gt;    WS_SAP_INBOX-REC_TYPE = 'U'.&lt;/P&gt;&lt;P&gt;    APPEND WS_SAP_INBOX.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sending the document&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            DOCUMENT_DATA              = WS_DOC_CHNG&lt;/P&gt;&lt;P&gt;            PUT_IN_OUTBOX              = 'X'&lt;/P&gt;&lt;P&gt;            SENT_TO_ALL                = SEND  "'X'&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            PACKING_LIST               = WS_OBJPACK&lt;/P&gt;&lt;P&gt;            OBJECT_HEADER              = WS_OBJHEAD&lt;/P&gt;&lt;P&gt;            CONTENTS_BIN               = WS_OBJBIN&lt;/P&gt;&lt;P&gt;            CONTENTS_TXT               = WS_OBJTXT&lt;/P&gt;&lt;P&gt;            RECEIVERS                  = WS_SAP_INBOX&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            TOO_MANY_RECEIVERS         = 1&lt;/P&gt;&lt;P&gt;            DOCUMENT_NOT_SENT          = 2&lt;/P&gt;&lt;P&gt;            DOCUMENT_TYPE_NOT_EXIST    = 3&lt;/P&gt;&lt;P&gt;            OPERATION_NO_AUTHORIZATION = 4&lt;/P&gt;&lt;P&gt;            PARAMETER_ERROR            = 5&lt;/P&gt;&lt;P&gt;            X_ERROR                    = 6&lt;/P&gt;&lt;P&gt;            ENQUEUE_ERROR              = 7&lt;/P&gt;&lt;P&gt;            OTHERS                     = 99.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE SY-SUBRC.&lt;/P&gt;&lt;P&gt;    WHEN '1'.&lt;/P&gt;&lt;P&gt;      RAISE TOO_MANY_RECEIVERS.&lt;/P&gt;&lt;P&gt;    WHEN '2'.&lt;/P&gt;&lt;P&gt;      RAISE DOCUMENT_NOT_SENT.&lt;/P&gt;&lt;P&gt;    WHEN '4'.&lt;/P&gt;&lt;P&gt;      RAISE OPERATION_NO_AUTHORIZATION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   WHEN OTHERS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     RAISE OTHERS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDDO.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " SEND_OBJECT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-SID&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Aug 2006 15:30:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528473#M241723</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-15T15:30:53Z</dc:date>
    </item>
    <item>
      <title>Re: E-mail notification</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528474#M241724</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Create a report to do the following select, to get the job failure.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Select * from V_OP where STATUS = 'F' "(For failure).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If anything gets selected, then send the details using the function module mentioned in the previous post.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Juwin.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Aug 2006 15:50:31 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528474#M241724</guid>
      <dc:creator>Juwin</dc:creator>
      <dc:date>2006-08-15T15:50:31Z</dc:date>
    </item>
    <item>
      <title>Re: E-mail notification</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528475#M241725</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Juwin,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  Thanks for your reply... I am checking V_OP in prodcution system... &amp;amp; I wanted to know what the various values of the feild STATUS ... but I could not find them... &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; Above all just now a job finished which creats a session in SM35 ... so I was closely monitoring this job from SM37, SM35 &amp;amp; table V_OP...&lt;/P&gt;&lt;P&gt; SM37 &amp;amp; SM35 shows job as completed &amp;amp; session created &amp;amp; processed... but in V_OP (STATUS feild) is now showing "F" ... previously it was showing "S" ... also a new entry in V_OP got created with tomorrows date for the job &amp;amp; currently it's status feild is "S"... What I understand with this is "F" = Finished &amp;amp; "S" = Scheduled...&lt;/P&gt;&lt;P&gt; So how will I know from this table which all jobs failed??&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank You,&lt;/P&gt;&lt;P&gt;SB.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Aug 2006 16:43:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528475#M241725</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-15T16:43:57Z</dc:date>
    </item>
    <item>
      <title>Re: E-mail notification</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528476#M241726</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You can receive e-mails about failed jobs by using Tx: RZ21 and RZ20.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Refer to the following links:&lt;/P&gt;&lt;P&gt;RZ21: &amp;lt;a href="http://help.sap.com/saphelp_nw04/helpdata/en/2c/abb2e7ff6311d194c000a0c93033f7/frameset.htm"&amp;gt;Define Automatic Alert Notification&amp;lt;/a&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RZ20: &amp;lt;a href="http://help.sap.com/saphelp_nw04/helpdata/en/20/df2270043c11d294c300a0c93033f7/frameset.htm"&amp;gt;Monitor Alerts for Background Processing&amp;lt;/a&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Sridhar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Aug 2006 16:47:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528476#M241726</guid>
      <dc:creator>sridhar_k1</dc:creator>
      <dc:date>2006-08-15T16:47:33Z</dc:date>
    </item>
    <item>
      <title>Re: E-mail notification</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528477#M241727</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;SB,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I use the following code to create a job and check on the status of that job.  You could replace my error message with code to send an e-mail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Bruce&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;report zfglr027  no standard page heading&lt;/P&gt;&lt;P&gt;                  line-size 132&lt;/P&gt;&lt;P&gt;                 message-id zf.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  END-OF-SELECTION.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;  s e l e c t i o n   s c r e e n   o p t i o n s &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     P_PRTR      printer&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     P_PGM       report painter program&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     P_VAR       report painter variant&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     P_JOBNAM    job name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     P_WAIT      seconds to wait in loop when checking  if&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 program finished&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; T A B L E S &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/P&gt;&lt;P&gt;tables: tsp01,      " Spool Requests&lt;/P&gt;&lt;P&gt;        tbtcp,      " Background Job Step Overview&lt;/P&gt;&lt;P&gt;        tbtcjob.    " Structure for Passing Job Header Data (BI-API)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; S E L E C T I O N   S C R E E N   O P T I O N S &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;selection-screen begin of block b1 with frame title text-001.&lt;/P&gt;&lt;P&gt;  parameter: p_prtr(4) default 'L9B' obligatory.&lt;/P&gt;&lt;P&gt;  parameter: p_pgm like sy-repid obligatory&lt;/P&gt;&lt;P&gt;                               default 'ZMYSHOW'.&lt;/P&gt;&lt;P&gt;  parameter: p_var like rsvar-variantt default 'XX' obligatory.&lt;/P&gt;&lt;P&gt;  parameter: p_jobnam like tbtcjob-jobname default 'Budgeted_I_Stmnt'.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;selection-screen end of block b1.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;selection-screen begin of block b5 with frame title text-004.&lt;/P&gt;&lt;P&gt;  selection-screen comment 1(55) text-005.&lt;/P&gt;&lt;P&gt;  parameters: p_wait(3) type n default 010.&lt;/P&gt;&lt;P&gt;selection-screen end of block b5.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; D A T A   D E F I N I T I O N S  &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/P&gt;&lt;P&gt;data w_jobcount like tbtcjob-jobcount.&lt;/P&gt;&lt;P&gt;data: w_btcchar1(1).&lt;/P&gt;&lt;P&gt;data: w_jobhead like tbtco.&lt;/P&gt;&lt;P&gt;data: int_job_read_steplist like tbtcstep occurs 0 with header line.&lt;/P&gt;&lt;P&gt;data:  w_rqident like tsp01-rqident.&lt;/P&gt;&lt;P&gt;data: wf_while_check(1).&lt;/P&gt;&lt;P&gt;data: e_receiver like zereport-receiver occurs 0 with header line.&lt;/P&gt;&lt;P&gt;data: e_sent like zereport-receiver occurs 0 with header line.&lt;/P&gt;&lt;P&gt; data  w_start like sy-uzeit.      "  start time of Report Painter pgm&lt;/P&gt;&lt;P&gt; data  w_code(40).&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;  perform 1000_run_program.&lt;/P&gt;&lt;P&gt;end-of-selection.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  1000_run_program&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form 1000_run_program.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt; call function 'JOB_OPEN'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;           jobname          = p_jobnam&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;           jobcount         = w_jobcount&lt;/P&gt;&lt;P&gt;      exceptions&lt;/P&gt;&lt;P&gt;           cant_create_job  = 1&lt;/P&gt;&lt;P&gt;           invalid_job_data = 2&lt;/P&gt;&lt;P&gt;           jobname_missing  = 3&lt;/P&gt;&lt;P&gt;           others           = 4.&lt;/P&gt;&lt;P&gt; if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;   case sy-subrc.&lt;/P&gt;&lt;P&gt;     when 1.&lt;/P&gt;&lt;P&gt;       w_code = 'cant_create_job'.&lt;/P&gt;&lt;P&gt;     when 2.&lt;/P&gt;&lt;P&gt;       w_code = 'invalid_job_data'.&lt;/P&gt;&lt;P&gt;     when 3.&lt;/P&gt;&lt;P&gt;       w_code = 'jobname_missing'.&lt;/P&gt;&lt;P&gt;     when 4.&lt;/P&gt;&lt;P&gt;       w_code = 'others'.&lt;/P&gt;&lt;P&gt;    endcase.&lt;/P&gt;&lt;P&gt;    message i000 with 'JOB_OPEN Error   ' w_code  '  Program aborted'.&lt;/P&gt;&lt;P&gt;    format color  col_negative.&lt;/P&gt;&lt;P&gt;    skip 2.&lt;/P&gt;&lt;P&gt;    write: / 'Program aborted.'.&lt;/P&gt;&lt;P&gt;    write: / 'Function JOB_OPEN Error  ', w_code.&lt;/P&gt;&lt;P&gt;    stop.&lt;/P&gt;&lt;P&gt; endif.&lt;/P&gt;&lt;P&gt; format color  col_normal.&lt;/P&gt;&lt;P&gt; skip 2.&lt;/P&gt;&lt;P&gt; write: / ' JOB_OPEN values after call:'.&lt;/P&gt;&lt;P&gt; write: /4 'jobname     ', p_jobnam.&lt;/P&gt;&lt;P&gt; write: /4 'jobcount    ', w_jobcount.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; translate p_pgm to upper case.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  get time  field w_start .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;submit ZMYSHOW&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  submit (p_pgm)&lt;/P&gt;&lt;P&gt;         to sap-spool&lt;/P&gt;&lt;P&gt;            destination p_prtr&lt;/P&gt;&lt;P&gt;            immediately ' '&lt;/P&gt;&lt;P&gt;            keep in spool 'X'&lt;/P&gt;&lt;P&gt;            without spool dynpro&lt;/P&gt;&lt;P&gt;         user sy-uname via job p_jobnam  number w_jobcount&lt;/P&gt;&lt;P&gt;         using selection-set p_var&lt;/P&gt;&lt;P&gt;         using selection-sets of program p_pgm&lt;/P&gt;&lt;P&gt;         and return.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  skip 2.&lt;/P&gt;&lt;P&gt;  write: / ' SUBMIT parameters after submit:'.&lt;/P&gt;&lt;P&gt;  write: /4 'user       ', sy-uname.&lt;/P&gt;&lt;P&gt;  write: /4 'job        ',  p_jobnam.&lt;/P&gt;&lt;P&gt;  write: /4 'jobcount   ', w_jobcount.&lt;/P&gt;&lt;P&gt;  write: /4 'program    ', p_pgm.&lt;/P&gt;&lt;P&gt;  write: /4 'variant    ', p_var.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  call function 'JOB_CLOSE'&lt;/P&gt;&lt;P&gt;       exporting jobname   = p_jobnam&lt;/P&gt;&lt;P&gt;               jobcount  = w_jobcount&lt;/P&gt;&lt;P&gt;               strtimmed = 'X'&lt;/P&gt;&lt;P&gt;       exceptions&lt;/P&gt;&lt;P&gt;          cant_start_immediate        = 1&lt;/P&gt;&lt;P&gt;          invalid_startdate           = 2&lt;/P&gt;&lt;P&gt;          jobname_missing             = 3&lt;/P&gt;&lt;P&gt;          job_close_failed            = 4&lt;/P&gt;&lt;P&gt;          job_nosteps                 = 5&lt;/P&gt;&lt;P&gt;          job_notex                   = 6&lt;/P&gt;&lt;P&gt;          lock_failed                 = 7&lt;/P&gt;&lt;P&gt;          others                      = 8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      case sy-subrc.&lt;/P&gt;&lt;P&gt;        when 1.&lt;/P&gt;&lt;P&gt;          w_code = 'cant_start_immediate'.&lt;/P&gt;&lt;P&gt;        when 2.&lt;/P&gt;&lt;P&gt;          w_code = 'invalid_startdate'.&lt;/P&gt;&lt;P&gt;        when 3.&lt;/P&gt;&lt;P&gt;          w_code = 'jobname_missing'.&lt;/P&gt;&lt;P&gt;        when 4.&lt;/P&gt;&lt;P&gt;          w_code = 'job_close_failed'.&lt;/P&gt;&lt;P&gt;        when 5.&lt;/P&gt;&lt;P&gt;          w_code = 'job_nosteps'.&lt;/P&gt;&lt;P&gt;        when 6.&lt;/P&gt;&lt;P&gt;          w_code = 'job_notex'.&lt;/P&gt;&lt;P&gt;        when 7.&lt;/P&gt;&lt;P&gt;          w_code = 'lock_failed'.&lt;/P&gt;&lt;P&gt;        when 8.&lt;/P&gt;&lt;P&gt;          w_code = 'others'.&lt;/P&gt;&lt;P&gt;       endcase.&lt;/P&gt;&lt;P&gt;      message i000 with 'JOB_CLOSE Error  ' w_code  '  Program aborted'.&lt;/P&gt;&lt;P&gt;       skip 2.&lt;/P&gt;&lt;P&gt;       format color  col_negative.&lt;/P&gt;&lt;P&gt;       write: / 'Program aborted.'.&lt;/P&gt;&lt;P&gt;       write: / 'Function JOB_CLOSE Error  ', w_code.&lt;/P&gt;&lt;P&gt;       stop.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  format color  col_normal.&lt;/P&gt;&lt;P&gt;  skip 2.&lt;/P&gt;&lt;P&gt;  write: / ' JOB_CLOSE values after call:'.&lt;/P&gt;&lt;P&gt;  write: /4 'jobname    ', p_jobnam.&lt;/P&gt;&lt;P&gt;  write: /4 'jobcount   ', w_jobcount.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;w_jobhead-status possible values&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    btc_running       like tbtco-status value 'R',&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    btc_ready         like tbtco-status value 'Y',&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    btc_scheduled     like tbtco-status value 'P',&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    btc_released      like tbtco-status value 'S',&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    btc_aborted       like tbtco-status value 'A',&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    btc_finished      like tbtco-status value 'F',&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    btc_put_active    like tbtco-status value 'Z',&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    btc_unknown_state like tbtco-status value 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Wait for a while so jobs can run&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  while ( not w_jobhead-status = 'F' ) and&lt;/P&gt;&lt;P&gt;        ( not w_jobhead-status = 'A' ).&lt;/P&gt;&lt;P&gt;    call function 'BP_JOB_READ'&lt;/P&gt;&lt;P&gt;        exporting&lt;/P&gt;&lt;P&gt;            job_read_jobcount = w_jobcount&lt;/P&gt;&lt;P&gt;            job_read_jobname = p_jobnam&lt;/P&gt;&lt;P&gt;            job_read_opcode = '20'&lt;/P&gt;&lt;P&gt;        importing&lt;/P&gt;&lt;P&gt;            job_read_jobhead = w_jobhead&lt;/P&gt;&lt;P&gt;        tables&lt;/P&gt;&lt;P&gt;            job_read_steplist = int_job_read_steplist&lt;/P&gt;&lt;P&gt;        exceptions&lt;/P&gt;&lt;P&gt;            invalid_opcode = 1&lt;/P&gt;&lt;P&gt;            job_doesnt_exist = 2&lt;/P&gt;&lt;P&gt;            job_doesnt_have_steps = 3&lt;/P&gt;&lt;P&gt;            others = 4.&lt;/P&gt;&lt;P&gt;    if w_jobhead-status =  'F'.            " F = Finished&lt;/P&gt;&lt;P&gt;      exit.&lt;/P&gt;&lt;P&gt;    elseif w_jobhead-status = 'A'.         " A = Aborted&lt;/P&gt;&lt;P&gt;      message e935 with 'BP_JOB_READ function Aborted.'&lt;/P&gt;&lt;P&gt;                        'Status is '&lt;/P&gt;&lt;P&gt;                        w_jobhead-status&lt;/P&gt;&lt;P&gt;                        '"'.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    wait up to 300 seconds.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      wait up to p_wait seconds.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endwhile.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if w_jobhead-status &amp;lt;&amp;gt; 'F'.&lt;/P&gt;&lt;P&gt;     write: / 'status', w_jobhead-status.&lt;/P&gt;&lt;P&gt;     message e935 with&lt;/P&gt;&lt;P&gt;         'BP_JOB_READ function did not complete successfully'&lt;/P&gt;&lt;P&gt;                 w_jobhead-status.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;endform.                    " 1000_run_program&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Aug 2006 18:57:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528477#M241727</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-15T18:57:01Z</dc:date>
    </item>
    <item>
      <title>Re: E-mail notification</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528478#M241728</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  I am looking into view V_OP ... &amp;amp; I am unable to get what are the different values to the field "STATUS".... there isno check table for this field so how do I know which job completed successfully &amp;amp; which failed...I also found the value "P" for this which I have no idea to what it stands for...&lt;/P&gt;&lt;P&gt; My requirement is that I have to check for successful &amp;amp; failed jobs that are related to all the interfaces running in the system ... My approach is to write a generic program with parameters having job names &amp;amp; then cross check against V_OP &amp;amp; alert or download a file giving the job status...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; Is my approach correct ??&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Aug 2006 03:39:27 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528478#M241728</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-23T03:39:27Z</dc:date>
    </item>
    <item>
      <title>Re: E-mail notification</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528479#M241729</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Any Suggestion for the "STATUS" field in V_OP ??&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any help would be greatly appreciated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank You,&lt;/P&gt;&lt;P&gt;SB.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Aug 2006 14:16:23 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528479#M241729</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-23T14:16:23Z</dc:date>
    </item>
    <item>
      <title>Re: E-mail notification</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528480#M241730</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;A - Cancelled&lt;/P&gt;&lt;P&gt;F - Completed&lt;/P&gt;&lt;P&gt;P - Scheduled&lt;/P&gt;&lt;P&gt;R - Active&lt;/P&gt;&lt;P&gt;S - Released&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Aug 2006 14:24:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528480#M241730</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-23T14:24:03Z</dc:date>
    </item>
    <item>
      <title>Re: E-mail notification</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528481#M241731</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank Michael... could you also tell me what is the purpose of NEWFLAG &amp;amp; how does this value get populated in the table.... I see various combinations like&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Status = S Newflag = C&lt;/P&gt;&lt;P&gt;Status = F Newflag = C&lt;/P&gt;&lt;P&gt;Status = A Newflag = C&lt;/P&gt;&lt;P&gt;Status = P Newflag = S&lt;/P&gt;&lt;P&gt;Status = F Newflag = ' '(blank)&lt;/P&gt;&lt;P&gt;Status = S Newflag = ' '(blank)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank You,&lt;/P&gt;&lt;P&gt;SB&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Aug 2006 14:49:29 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528481#M241731</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-23T14:49:29Z</dc:date>
    </item>
    <item>
      <title>Re: E-mail notification</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528482#M241732</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm sorry I don't know what the newflag values represent.  In the past, I've only concerned myself with the status field when writing monitoring routines.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Aug 2006 15:17:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/e-mail-notification/m-p/1528482#M241732</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-23T15:17:32Z</dc:date>
    </item>
  </channel>
</rss>

