Mail a sapscript

Hi ,
Can anyone please provide me a code to mail the sapscript as an pdf attachment . We can convert the sapscript in the spool into pdf using RSTXPDFT4 . How do I mail this as an attachment. Also I want to schedule this program in background . I made a search in this forum but none of them confirm to my requirement .
Regards,
Ben.
Message was edited by: Daniel Ben

Hi Daniel,
*& This program must be run as a background job in-order for the write *
*& commands to create a Spool request rather than be displayed on      *
screen                                                              *
report  zxxx_alvmail_pdf                      .
parameter: p_email1 like somlreci1-receiver
                                    default '[email protected]',
           p_sender like somlreci1-receiver
                                    default '[email protected]',
           p_delspl  as checkbox.
*DATA DECLARATION
data: gd_recsize type i.
Spool IDs
types: begin of t_tbtcp.
        include structure tbtcp.
types: end of t_tbtcp.
data: it_tbtcp type standard table of t_tbtcp initial size 0,
      wa_tbtcp type t_tbtcp.
Job Runtime Parameters
data: gd_eventid like tbtcm-eventid,
      gd_eventparm like tbtcm-eventparm,
      gd_external_program_active like tbtcm-xpgactive,
      gd_jobcount like tbtcm-jobcount,
      gd_jobname like tbtcm-jobname,
      gd_stepcount like tbtcm-stepcount,
      gd_error    type sy-subrc,
      gd_reciever type sy-subrc.
data:  w_recsize type i.
data: gd_subject   like sodocchgi1-obj_descr,
      it_mess_bod like solisti1 occurs 0 with header line,
      it_mess_att like solisti1 occurs 0 with header line,
      gd_sender_type     like soextreci1-adr_typ,
      gd_attachment_desc type so_obj_nam,
      gd_attachment_name type so_obj_des.
Spool to PDF conversions
data: gd_spool_nr like tsp01-rqident,
      gd_destination like rlgrap-filename,
      gd_bytecount like tst01-dsize,
      gd_buffer type string.
Binary store for PDF
data: begin of it_pdf_output occurs 0.
        include structure tline.
data: end of it_pdf_output.
constants: c_dev like  sy-sysid value 'DEV',
           c_no(1)     type c   value ' ',
           c_device(4) type c   value 'LOCL'.
*START-OF-SELECTION.
start-of-selection.
Write statement to represent report output. Spool request is created
if write statement is executed in background. This could also be an
ALV grid which would be converted to PDF without any extra effort
  write 'Hello World'.
  new-page.
  commit work.
  new-page print off.
  if sy-batch eq 'X'.
    perform get_job_details.
    perform obtain_spool_id.
Alternative way could be to submit another program and store spool
id into memory, will be stored in sy-spono.
*submit ZSPOOLTOPDF2
       to sap-spool
       spool parameters   %_print
       archive parameters %_print
       without spool dynpro
       and return.
Get spool id from program called above
IMPORT w_spool_nr FROM MEMORY ID 'SPOOLTOPDF'.
    perform convert_spool_to_pdf.
    perform process_email.
    if p_delspl eq 'X'.
      perform delete_spool.
    endif.
    if sy-sysid = c_dev.
      wait up to 5 seconds.
      submit rsconn01 with mode   = 'INT'
                      with output = 'X'
                      and return.
    endif.
  else.
    skip.
    write:/ 'Program must be executed in background in-order for spool',
            'request to be created.'.
  endif.
      FORM obtain_spool_id                                          *
form obtain_spool_id.
  check not ( gd_jobname is initial ).
  check not ( gd_jobcount is initial ).
  select * from  tbtcp
                 into table it_tbtcp
                 where      jobname     = gd_jobname
                 and        jobcount    = gd_jobcount
                 and        stepcount   = gd_stepcount
                 and        listident   <> '0000000000'
                 order by   jobname
                            jobcount
                            stepcount.
  read table it_tbtcp into wa_tbtcp index 1.
  if sy-subrc = 0.
    message s004(zdd) with gd_spool_nr.
    gd_spool_nr = wa_tbtcp-listident.
    message s004(zdd) with gd_spool_nr.
  else.
    message s005(zdd).
  endif.
endform.
      FORM get_job_details                                          *
form get_job_details.
Get current job details
  call function 'GET_JOB_RUNTIME_INFO'
       importing
            eventid                 = gd_eventid
            eventparm               = gd_eventparm
            external_program_active = gd_external_program_active
            jobcount                = gd_jobcount
            jobname                 = gd_jobname
            stepcount               = gd_stepcount
       exceptions
            no_runtime_info         = 1
            others                  = 2.
endform.
      FORM convert_spool_to_pdf                                     *
form convert_spool_to_pdf.
  call function 'CONVERT_ABAPSPOOLJOB_2_PDF'
       exporting
            src_spoolid              = gd_spool_nr
            no_dialog                = c_no
            dst_device               = c_device
       importing
            pdf_bytecount            = gd_bytecount
       tables
            pdf                      = it_pdf_output
       exceptions
            err_no_abap_spooljob     = 1
            err_no_spooljob          = 2
            err_no_permission        = 3
            err_conv_not_possible    = 4
            err_bad_destdevice       = 5
            user_cancelled           = 6
            err_spoolerror           = 7
            err_temseerror           = 8
            err_btcjob_open_failed   = 9
            err_btcjob_submit_failed = 10
            err_btcjob_close_failed  = 11
            others                   = 12.
  check sy-subrc = 0.
Transfer the 132-long strings to 255-long strings
  loop at it_pdf_output.
    translate it_pdf_output using ' ~'.
    concatenate gd_buffer it_pdf_output into gd_buffer.
  endloop.
  translate gd_buffer using '~ '.
  do.
    it_mess_att = gd_buffer.
    append it_mess_att.
    shift gd_buffer left by 255 places.
    if gd_buffer is initial.
      exit.
    endif.
  enddo.
endform.
      FORM process_email                                            *
form process_email.
  describe table it_mess_att lines gd_recsize.
  check gd_recsize > 0.
  perform send_email using p_email1.
perform send_email using p_email2.
endform.
      FORM send_email                                               *
-->  p_email                                                       *
form send_email using p_email.
  check not ( p_email is initial ).
  refresh it_mess_bod.
Default subject matter
  gd_subject         = 'Subject'.
  gd_attachment_desc = 'Attachname'.
CONCATENATE 'attach_name' ' ' INTO gd_attachment_name.
  it_mess_bod        = 'Message Body text, line 1'.
  append it_mess_bod.
  it_mess_bod        = 'Message Body text, line 2...'.
  append it_mess_bod.
If no sender specified - default blank
  if p_sender eq space.
    gd_sender_type  = space.
  else.
    gd_sender_type  = 'INT'.
  endif.
Send file by email as .xls speadsheet
  perform send_file_as_email_attachment
                               tables it_mess_bod
                                      it_mess_att
                                using p_email
                                      'Example .xls documnet attachment'
                                      'PDF'
                                      gd_attachment_name
                                      gd_attachment_desc
                                      p_sender
                                      gd_sender_type
                             changing gd_error
                                      gd_reciever.
endform.
      FORM delete_spool                                             *
form delete_spool.
  data: ld_spool_nr type tsp01_sp0r-rqid_char.
  ld_spool_nr = gd_spool_nr.
  check p_delspl <> c_no.
  call function 'RSPO_R_RDELETE_SPOOLREQ'
       exporting
            spoolid = ld_spool_nr.
endform.
*&      Form  SEND_FILE_AS_EMAIL_ATTACHMENT
      Send email
form send_file_as_email_attachment tables it_message
                                          it_attach
                                    using p_email
                                          p_mtitle
                                          p_format
                                          p_filename
                                          p_attdescription
                                          p_sender_address
                                          p_sender_addres_type
                                 changing p_error
                                          p_reciever.
  data: ld_error    type sy-subrc,
        ld_reciever type sy-subrc,
        ld_mtitle like sodocchgi1-obj_descr,
        ld_email like  somlreci1-receiver,
        ld_format type  so_obj_tp ,
        ld_attdescription type  so_obj_nam ,
        ld_attfilename type  so_obj_des ,
        ld_sender_address like  soextreci1-receiver,
        ld_sender_address_type like  soextreci1-adr_typ,
        ld_receiver like  sy-subrc.
data:   t_packing_list like sopcklsti1 occurs 0 with header line,
        t_contents like solisti1 occurs 0 with header line,
        t_receivers like somlreci1 occurs 0 with header line,
        t_attachment like solisti1 occurs 0 with header line,
        t_object_header like solisti1 occurs 0 with header line,
        w_cnt type i,
        w_sent_all(1) type c,
        w_doc_data like sodocchgi1.
  ld_email   = p_email.
  ld_mtitle = p_mtitle.
  ld_format              = p_format.
  ld_attdescription      = p_attdescription.
  ld_attfilename         = p_filename.
  ld_sender_address      = p_sender_address.
  ld_sender_address_type = p_sender_addres_type.
Fill the document data.
  w_doc_data-doc_size = 1.
Populate the subject/generic message attributes
  w_doc_data-obj_langu = sy-langu.
  w_doc_data-obj_name  = 'SAPRPT'.
  w_doc_data-obj_descr = ld_mtitle .
  w_doc_data-sensitivty = 'F'.
Fill the document data and get size of attachment
  clear w_doc_data.
  read table it_attach index w_cnt.
  w_doc_data-doc_size =
     ( w_cnt - 1 ) * 255 + strlen( it_attach ).
  w_doc_data-obj_langu  = sy-langu.
  w_doc_data-obj_name   = 'SAPRPT'.
  w_doc_data-obj_descr  = ld_mtitle.
  w_doc_data-sensitivty = 'F'.
  clear t_attachment.
  refresh t_attachment.
  t_attachment[] = it_attach[].
Describe the body of the message
  clear t_packing_list.
  refresh t_packing_list.
  t_packing_list-transf_bin = space.
  t_packing_list-head_start = 1.
  t_packing_list-head_num = 0.
  t_packing_list-body_start = 1.
  describe table it_message lines t_packing_list-body_num.
  t_packing_list-doc_type = 'RAW'.
  append t_packing_list.
Create attachment notification
  t_packing_list-transf_bin = 'X'.
  t_packing_list-head_start = 1.
  t_packing_list-head_num   = 1.
  t_packing_list-body_start = 1.
  describe table t_attachment lines t_packing_list-body_num.
  t_packing_list-doc_type   =  ld_format.
  t_packing_list-obj_descr  =  ld_attdescription.
  t_packing_list-obj_name   =  ld_attfilename.
  t_packing_list-doc_size   =  t_packing_list-body_num * 255.
  append t_packing_list.
Add the recipients email address
  clear t_receivers.
  refresh t_receivers.
  t_receivers-receiver = ld_email.
  t_receivers-rec_type = 'B'.
  t_receivers-com_type = 'INT'.
  t_receivers-notif_del = 'X'.
  t_receivers-notif_ndel = 'X'.
  append t_receivers.
  call function 'SO_DOCUMENT_SEND_API1'
       exporting
            document_data              = w_doc_data
            put_in_outbox              = 'X'
            sender_address             = ld_sender_address
            sender_address_type        = ld_sender_address_type
            commit_work                = 'X'
       importing
            sent_to_all                = w_sent_all
       tables
            packing_list               = t_packing_list
            contents_bin               = t_attachment
            contents_txt               = it_message
            receivers                  = t_receivers
       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.
Populate zerror return code
  ld_error = sy-subrc.
Populate zreceiver return code
  loop at t_receivers.
    ld_receiver = t_receivers-retrn_code.
  endloop.
endform.
Regards,
Laxmi

Similar Messages

  • Mailing the sapscript thru pdf file

    Hi,
    I want to send a sapscript thru pdf file, however, I have a problem with the parameters to set in my open_form when my DEVICE = 'MAIL' and I have to fetch the otf file in the close_form.
    Can you help with the parameter I need to set up in the open form? What are the required parameters for this function?
    Thanks a lot!
    rgds,
    Mark

    Hi Mark Rennel Barrios  ,
            Here below is the Code for that Functionality :
    REPORT ZGRESS1PRINT .
    Tables: qmel,makt,qmfe.
    parameters: input like QMEL-QMNUM.
        data var like makt-maktx.
    DATA: BEGIN OF OPTIONS OCCURS 0.
            INCLUDE STRUCTURE ITCPO.
    DATA: END OF OPTIONS.
    DATA:  VAFILESIZE(10).
    DATA: VAFILENAME(100) value 'test.pdf'.
    DATA: OBJPACK LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE.
    DATA: OBJHEAD LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE.
    DATA: OBJBIN LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.
    DATA: OBJTXT LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
    DATA: RECLIST LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE.
    DATA: DOC_CHNG LIKE SODOCCHGI1.
    DATA: TAB_LINES LIKE SY-TABIX.
    DATA: IOTF LIKE ITCOO OCCURS 0 WITH HEADER LINE.
    DATA: ILINES1 LIKE TLINE OCCURS 0 WITH HEADER LINE.
            OPTIONS-TDDEST = 'LP01'.
            OPTIONS-TDIMMED = 'X'.
            OPTIONS-TDNEWID = 'X'.
            OPTIONS-TDNOPREV = 'X'.
            OPTIONS-TDLIFETIME = 2.
            OPTIONS-TDGETOTF = 'X'.
    CALL FUNCTION 'OPEN_FORM'
    EXPORTING
       DEVICE                            = 'PRINTER'
       DIALOG                            =  'X'
       FORM                              = 'ZGRESS1'
       OPTIONS                           =  OPTIONS
    EXCEPTIONS
       CANCELED                          = 1
       DEVICE                            = 2
       FORM                              = 3
       OPTIONS                           = 4
       UNCLOSED                          = 5
       OTHERS                            = 11
    IF SY-SUBRC <> 0.
    Write:/ 'Error while open the form'.
    ENDIF.
      CALL FUNCTION 'START_FORM'
           EXPORTING
                FORM   = 'ZGRESS1'
           EXCEPTIONS
                OTHERS = 1.
      IF SY-SUBRC <> 0.
        WRITE 'Error in start_form'.
        EXIT.
      ENDIF.
    select * from qmel where qmnum = input.
    select single maktx into (makt-maktx) from makt where matnr = qmel-matnr
    and spras = 'EN'.
      CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                ELEMENT  = 'ITEM1'
                FUNCTION = 'SET'
                TYPE     = 'BODY'
                WINDOW   = 'MAIN'
           EXCEPTIONS
                OTHERS   = 1.
      IF SY-SUBRC <> 0.
        WRITE 'Error in write_form printing top element of main'.
        EXIT.
      ENDIF.
    ENDSELECT.
    select * from qmfe where qmnum = input.
      CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                ELEMENT  = 'ITEM2'
                FUNCTION = 'SET'
                TYPE     = 'BODY'
                WINDOW   = 'MAIN'
           EXCEPTIONS
                OTHERS   = 1.
      IF SY-SUBRC <> 0.
        WRITE 'Error in write_form printing top element of main'.
        EXIT.
      ENDIF.
    ENDSELECT.
        CALL FUNCTION 'END_FORM'
           EXCEPTIONS
                OTHERS = 1.
      IF SY-SUBRC <> 0.
        WRITE 'Error in end_form'.
        EXIT.
      ENDIF.
      CALL FUNCTION 'CLOSE_FORM'
           TABLES
                      OTFDATA = IOTF
           EXCEPTIONS
                OTHERS = 1.
      IF SY-SUBRC <> 0.
        WRITE 'Error in close_form'.
        EXIT.
      ENDIF.
            CALL FUNCTION 'CONVERT_OTF'
                EXPORTING
                     FORMAT                = 'PDF'
                IMPORTING
                       BIN_FILESIZE          = VAFILESIZE
                 TABLES
                      OTF                   = IOTF
                      LINES                 = ILINES1
                EXCEPTIONS
                     ERR_MAX_LINEWIDTH     = 1
                     ERR_FORMAT            = 2
                     ERR_CONV_NOT_POSSIBLE = 3
                     OTHERS                = 4
            IF SY-SUBRC <> 0.
            ENDIF.
            DOC_CHNG-OBJ_NAME = 'SAPSACRIPTMAIL'.
            DOC_CHNG-OBJ_DESCR = 'SAP_SACRIPT_MAIL.'.
            OBJTXT-LINE = 'This is a TestMail for Greetson'.
            APPEND OBJTXT.
            DESCRIBE TABLE OBJTXT LINES TAB_LINES.
            READ TABLE OBJTXT INDEX TAB_LINES.
            DOC_CHNG-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + STRLEN( OBJTXT ).
            CLEAR OBJPACK-TRANSF_BIN.
            OBJPACK-HEAD_START = 1.
            OBJPACK-HEAD_NUM = 0.
            OBJPACK-BODY_START = 1.
            OBJPACK-BODY_NUM = TAB_LINES.
            OBJPACK-DOC_TYPE = 'RAW'.
            APPEND OBJPACK.
            CALL FUNCTION 'QCE1_CONVERT'
                 TABLES
                      T_SOURCE_TAB         = ILINES1
                      T_TARGET_TAB         = OBJBIN
                 EXCEPTIONS
                      CONVERT_NOT_POSSIBLE = 1
                      OTHERS               = 2.
            IF SY-SUBRC <> 0.
            ENDIF.
            DESCRIBE TABLE OBJBIN LINES TAB_LINES.
            OBJPACK-TRANSF_BIN = 'X'.
            OBJPACK-HEAD_START = 1.
            OBJPACK-HEAD_NUM = 1.
            OBJPACK-BODY_START = 1.
            OBJPACK-BODY_NUM = TAB_LINES.
            OBJPACK-DOC_TYPE = 'PDF'.
            OBJPACK-OBJ_NAME = 'test'.
            OBJPACK-OBJ_DESCR = VAFILENAME.
            OBJPACK-DOC_SIZE = TAB_LINES * 255.
            APPEND OBJPACK.
            OBJHEAD = 'test.PDF'.
            APPEND OBJHEAD.
            CLEAR OBJHEAD.
          VAFILENAME = 'Greetson'.
    Creating the recipient list(ERS).
              RECLIST-RECEIVER = '<e-mail address>'.
              RECLIST-REC_TYPE = 'U'.
              APPEND RECLIST.
              CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
                   EXPORTING
                        DOCUMENT_DATA              = DOC_CHNG
                        PUT_IN_OUTBOX              = 'X'
                   TABLES
                        PACKING_LIST               = OBJPACK
                        OBJECT_HEADER              = OBJHEAD
                        CONTENTS_BIN               = OBJBIN
                        CONTENTS_TXT               = OBJTXT
                        RECEIVERS                  = RECLIST
                   EXCEPTIONS
                        TOO_MANY_RECEIVERS         = 1
                        DOCUMENT_NOT_SENT          = 2
                        OPERATION_NO_AUTHORIZATION = 4
                        OTHERS                     = 99.
             IF SY-SUBRC <> 0.
            ENDIF.
            REFRESH RECLIST.
    Hope it helps.
    Thanks,
    Greetson

  • Send sapscript to customer

    Hi,
    could I use the function USE_SEND_OBJECT to send a sapscript (an invoice) to an external mail (customer email) ?
    Thanks!!!!

    Hi Juan
    Go through the follwoing Code
    DATA: ITCPO LIKE ITCPO,
    TAB_LINES LIKE SY-TABIX.
    * Variables for EMAIL functionality
    DATA: MAILDATA LIKE SODOCCHGI1.
    DATA: MAILPACK LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE.
    DATA: MAILHEAD LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE.
    DATA: MAILBIN LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
    DATA: MAILTXT LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
    DATA: MAILREC LIKE SOMLREC90 OCCURS 0 WITH HEADER LINE.
    DATA: SOLISTI1 LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.
    PERFORM SEND_FORM_VIA_EMAIL.
    * FORM SEND_FORM_VIA_EMAIL *
    FORM SEND_FORM_VIA_EMAIL.
    CLEAR: MAILDATA, MAILTXT, MAILBIN, MAILPACK, MAILHEAD, MAILREC.
    REFRESH: MAILTXT, MAILBIN, MAILPACK, MAILHEAD, MAILREC.
    * Creation of the document to be sent File Name
    MAILDATA-OBJ_NAME = 'TEST'.
    * Mail Subject
    MAILDATA-OBJ_DESCR = 'Subject'.
    * Mail Contents
    MAILTXT-LINE = 'Here is your file'.
    APPEND MAILTXT.
    * Prepare Packing List
    PERFORM PREPARE_PACKING_LIST.
    * Set recipient - email address here!!!
    MAILREC-RECEIVER = '[email protected]'.
    MAILREC-REC_TYPE = 'U'.
    APPEND MAILREC.
    * Sending the document
    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
    DOCUMENT_DATA = MAILDATA
    PUT_IN_OUTBOX = ' '
    TABLES
    PACKING_LIST = MAILPACK
    OBJECT_HEADER = MAILHEAD
    CONTENTS_BIN = MAILBIN
    CONTENTS_TXT = MAILTXT
    RECEIVERS = MAILREC
    EXCEPTIONS
    TOO_MANY_RECEIVERS = 1
    DOCUMENT_NOT_SENT = 2
    OPERATION_NO_AUTHORIZATION = 4
    OTHERS = 99.
    ENDFORM.
    * Form PREPARE_PACKING_LIST
    FORM PREPARE_PACKING_LIST.
    CLEAR: MAILPACK, MAILBIN, MAILHEAD.
    REFRESH: MAILPACK, MAILBIN, MAILHEAD.
    DESCRIBE TABLE MAILTXT LINES TAB_LINES.
    READ TABLE MAILTXT INDEX TAB_LINES.
    MAILDATA-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + STRLEN( MAILTXT ).
    * Creation of the entry for the compressed document
    CLEAR MAILPACK-TRANSF_BIN.
    MAILPACK-HEAD_START = 1.
    MAILPACK-HEAD_NUM = 0.
    MAILPACK-BODY_START = 1.
    MAILPACK-BODY_NUM = TAB_LINES.
    MAILPACK-DOC_TYPE = 'RAW'.
    APPEND MAILPACK.
    * Creation of the document attachment
    * This form gets the OTF code from the SAPscript form.
    * If you already have your OTF code, I believe that you may
    * be able to skip this form. just do the following code, looping thru
    * your SOLISTI1 and updating MAILBIN.
    PERFORM GET_OTF_CODE.
    LOOP AT SOLISTI1.
    MOVE-CORRESPONDING SOLISTI1 TO MAILBIN.
    APPEND MAILBIN.
    ENDLOOP.
    DESCRIBE TABLE MAILBIN LINES TAB_LINES.
    MAILHEAD = 'TEST.OTF'.
    APPEND MAILHEAD.
    ** Creation of the entry for the compressed attachment
    MAILPACK-TRANSF_BIN = 'X'.
    MAILPACK-HEAD_START = 1.
    MAILPACK-HEAD_NUM = 1.
    MAILPACK-BODY_START = 1.
    MAILPACK-BODY_NUM = TAB_LINES.
    MAILPACK-DOC_TYPE = 'OTF'.
    MAILPACK-OBJ_NAME = 'TEST'.
    MAILPACK-OBJ_DESCR = 'Subject'.
    MAILPACK-DOC_SIZE = TAB_LINES * 255.
    APPEND MAILPACK.
    ENDFORM.
    * Form GET_OTF_CODE
    FORM GET_OTF_CODE.
    DATA: BEGIN OF OTF OCCURS 0.
    INCLUDE STRUCTURE ITCOO .
    DATA: END OF OTF.
    DATA: ITCPO LIKE ITCPO.
    DATA: ITCPP LIKE ITCPP.
    CLEAR ITCPO.
    ITCPO-TDGETOTF = 'X'.
    * Start writing OTF code
    CALL FUNCTION 'OPEN_FORM'
    EXPORTING
    FORM = 'ZTEST_FORM'
    LANGUAGE = SY-LANGU
    OPTIONS = ITCPO
    DIALOG = ' '
    EXCEPTIONS
    OTHERS = 1.
    CALL FUNCTION 'START_FORM'
    EXCEPTIONS
    ERROR_MESSAGE = 01
    OTHERS = 02.
    CALL FUNCTION 'WRITE_FORM'
    EXPORTING
    WINDOW = 'MAIN'
    EXCEPTIONS
    ERROR_MESSAGE = 01
    OTHERS = 02.
    * Close up Form and get OTF code
    CALL FUNCTION 'END_FORM'
    EXCEPTIONS
    ERROR_MESSAGE = 01
    OTHERS = 02.
    MOVE-CORRESPONDING ITCPO TO ITCPP.
    CALL FUNCTION 'CLOSE_FORM'
    IMPORTING
    RESULT = ITCPP
    TABLES
    OTFDATA = OTF
    EXCEPTIONS
    OTHERS = 1.
    * Move OTF code to structure SOLI form email
    CLEAR SOLISTI1. REFRESH SOLISTI1.
    LOOP AT OTF.
    SOLISTI1-LINE = OTF.
    APPEND SOLISTI1.
    ENDLOOP.
    ENDFORM.
    Check this links
    SAPscript: Sending mail from Sapscript in 4.7
    Script- converting in PDF and sending by mail.
    Reward all helpfull answers
    regards
    Pavan

  • Email a Standard SapScript

    Dear Friends,
    1. There is a standard program (for Form 16 India)
       which has a normal selection screen
       and outputs a sapscript report.
    2. The requirement is to EMAIL the report
       to each individual employees.
       (Thru a Y Program)    
    3. I had investigated & done ::
       we can email a report which outputs in
       LIST FORMAT
       But
       How To EMail a report which is output in SAPSCRIPT !
    Regards,
    Amit M

    Thanks for the reply friends.
    But i could not find the exact solution
    to my problem.
    1. The report is a standard se38 report
       whose output is in sapscript format.
    2. I don't have any control over its code
       of 'OPEN_FORM', 'CLOSE_FORM'. (Since
       it is a standard sap report)
    3. A new Z Program is required to be developed
       which LOOPS and mails the sapscript report mentioned in point (1),
       one by one to each individual employees email address.
    Regards,
    Amit M.

  • Where to set sending of e-mails for dunning documents

    Hello
    Does anyone knows where to set sending of e-mails for dunning documents. They are being printed out but e-mail is not being sent.
    Generalyy e-mail sending(trx scot) is set.
    I guess it is pure Fi settinng to send e-mail as well. Could anyoune help
    Thank you a lot in advance
    Jan

    Hi Jan,
    Please refer SAP note
    1042992 - Dunning by mail w/ SAPscript: Introductory text w/ attachmnt
    Also refer SCN document
    SAP FI Dunning Procedure customization and Functionality
    Refer section
    Activate the dunning via E-mail (To receive letter by mail)
    Dunning letter output can be in two forms.
    1)        Email
      Manual Print out
    H         Hope this helps.
                  Regards,
                 Deepak Kori

  • F150 Dunning letters to several customers

    Is it possible to generate several Dunning letters to different contact when the standard dunning generate one letter to one customer?  If yes, can you tell me how. 
    We have case when we have a dunning letter generated to one payer which is an agent.  However this agent collects money from individual customers.  So we set up Final Bill to partner function under the agent.
    Now, when we generate Dunning, it generate only one letter to the agent but is it possible and how to generate the same Dunning letter to several Final bill to partners under this agent.  Does anyone know how and where in the code that Dunning select the customers.  Thanks

    The following OSS note shuld be able to solve your problem:-
    Note 1042992 - Dunning by mail w/ SAPscript: Introductory text w/ attachmnt
    If you want to send the mail to several recipients, fill the field FINAA-INTAD with the mail addresses and separate each address with a blank character. There are a total of 130 characters available in FINAA-INTAD.
    Regards,
    Gaurav

  • Sending 'Dunning Letters' via Email ? - -has anyone succeeded ??

    Hi
    Has anyone had any joy with sending Dunning letters via email at all
    We can get it to work via FAX , but get the following error when trying to send via email
    'connection error on node'
    even tho, there is nothing wrong with the node at all
    via SCOT , we have the default conversion as 'raw text to txt'   which works with everthing else
    If we change to 'raw text' to 'pdf'  we actually get two PDF's - one is blank however
    When viewed via SOST, you cannot open it straight up, you have to open an attachment
    when we queried this with SAP, they say that dunning letters are set up to open as attachments
    The function module is almost identical to that used by statements and remiitances, which works absolutely fine
    I have posted this on a more technical forum as it is not an FI issue, it is a technical problem, which i hope someone has come across and able to resolve for us
    Many thanks
    Tony

    Hi
    Have you see SAP Note 1042992 - Dunning by mail w/ SAPscript: Introductory text w/ attachmnt? Please, check the steps that this note suggests. At a release 46B I did with the enhancement F150D001 (at ECC 5.0 it is too), and you have a demo coding in include LX150F01.
    I hope this helps you
    Regards
    Eduardo
    PD: I forgot, according your coding check what is the email address for the customer, if the customer doesn't have email, then the letter goes to the SPOOL order. Check it in the include ZX* or in the BTE.
    Edited by: E_Hinojosa on Mar 1, 2012 5:22 PM

  • Workflow Material

    I need some workflow material. plz. help me out
    From Raj

    Hi  Raju
    Please find some  questions related to
    WorkFlow
    1. Is there a good book about this subject?
    Yes, "Practical Workflow for SAP" by Rickayzen, Dart, Brennecke and Schneider. Available from SAP press at the end of July. A german translation of this workflow book is also available directly from Galileo-Press, the publisher.
    2. How do I convince my company to use workflow?
    Feedback from user groups emphasizes that although the competitive advantage gained by using workflow eclipses the financial savings, it is the financial savings that are the deciding factor when obtaining support from senior management. Projects getting the blessing at the CEO level are much easier to manage, and far more likely to reach their goal within the project time frame. So plan well, and don't neglect the business case.
    Because the following questions deal with the financial case in more detail, this section will finish by listing the competitive advantages.
    The quality of the process is assured by pushing the relevant information together with links to related transactions directly to the user. Managers don't have the time to search for information so give them what they need to reach the correct decision.
    Cycle time is reduced by pushing the process directly to the users. The users receive notification of a task immediately and can even be prioritized by the system.
    The tasks are performed consistently and diligently by the users. The workflow system pushes all the necessary information needed to perform a task, including a clear description of what has to be done, how to do it and the impact this task has on the business process for your company. At any time, the user can check the list of tasks pending and determine at a glance which are the important tasks, and which tasks can be completed the next day without any negative impact.
    The process instance is transparent. Any user can check at any time how far the process has progressed and which stage the process has reached. For example the call center can immediately see the status of a purchase order, an employee requisitioning a purchase would see at a glance if  a colleague has been sitting on it for too long, the ad hoc notes made when approving an engineering change request are visible long after the request has gone into production.
    The process is flexible, allowing it to be changed on the fly without retraining everyone involved. The description accompanying the change takes care of on-the-fly process improvements.
    Deadline handing ensures that users perform the tasks within the time planned. Escalation measures ensure that the failure to meet a deadline can be corrected by other means.
    Intelligent reporting highlights the weaknesses of a process. Often there is a simple cure to such weaknesses such as reeducating the users involved in the bottleneck or providing additional information (automatically). The difficulty of a non-automated process is identifying such bottlenecks.
    The process definition is transparent. You can see at a glance how the process works and who will be selected to perform the different tasks. Think of the workflow as the process book. If you can spot the pattern and define the process without headaches, you can create a workflow definition effortlessly. However, don't forget that if a company has business processes that are erratic and lack a consistent pattern, the company is very likely to be losing a lot of money in terms of lost contracts, labor intensive administration and low customer confidence. It is my personal opinion that automating exactly this type of processes will yield the best returns, but only if you limit yourself to automating the basic skeleton of the process first. Don't get bogged down in the detailed exception handling. That can be done in the next phase once you've checked the process statistics and determined which exceptions are worth tackling.
    As with most software the reasons for automating business processes are primarily to increase the competitive edge of your company and to cut costs. Although the increase in competitively gained by radically reducing process times is by far the most insignificant gain from workflow, you should not ignore the cost savings. The cost saving calculations are needed by upper management in order to approve workflow projects. This upper management signature will be very useful in  different phases of the project and cannot be underestimated.
    3. How do I calculate the cost saved by workflow?
    Calculate the cost of the manual process in terms of man hours. Don't neglect the time spent gathering information. Ask the following questions:
    Is the user forced to log into different systems, or scan through printed documentation....?
    Does a skilled user spend time on parts of a task, where less skilled (less expensive) user could do the groundwork? I.e. Can a single task be split into skilled and unskilled tasks to free the skilled worker for work where his/her skills are really needed?
    Is time spent researching the progress of a process (usually done by someone not involved in the process directly)?
    Is time spent determining who to give the task to next?
    Probably the most significant cost will the be the cost of  failure?
    How often does the process fail?
    What is the real cost of failure? Loss of a contract? Loss of a customer? Law suit?
    If the failure can be rectified, how labor intensive is it?
    4. What are typical costs saved by workflow?
    A manually processed accounts payable invoice will cost about 25 USD. After workflow enabling about 15 USD (one example based on customer feedback from a user group meeting).
    5. What are typical reductions in processing time caused by workflow?
    A traditional paper based approval process involving three people will typically take seven days to complete. The automated process will  take one day (results based on customer feedback).
    6. What do customers say are the strengths of SAP WebFlow?
    WebFlow is the internet functionality of SAP Business Workflow. Based on customer feedback from the various regional users groups, the main strengths of SAP Business Workflow are:
    Robust production workflow system, (upgrade continuity with the rest of the SAP system, versioning, scalability, no gluing....)
    Standard workflow templates delivered by SAP can be used out-of-the-box or tweaked to deliver the optimum business process for your company. Workflows can be up and running including training in under a day (thanks to the knowledgeware delivered as part of the template packet).
    Seamlessly integrated into the SAP environment, be it R/3, Business to Business Procurement, CRM, APO, mySAP.com.... Examples of integration are:
    Business Reporting (WIS),
    Context sensitive availability at any time through the system menu (available anytime, anywhere)
    More and more standard SAP functionality is being provided by using SAP Business Workflow so your homegrown workflows fit the landscape exactly,
    More and more workflow functionality is available directly within the SAP transaction or Web MiniApp.
    WebFlow is becoming more and more important because companies are no longer being judged by their own performance but by the combined performance of the company AND its partners. In other words it is not enough that the business processes within your company run smoothly and faster than your competitors. You have to ensure that the processes between you and your partners are also as fast, efficient and flexible as possible. WebFlow delivers this.
    7. How are users notified about their work pending?
    The users are informed by a work item which you may think of as being very like an e-mail. The difference is the work item contains intelligence and by executing the work item you will be taken to the form or SAP transaction that makes up the step in the workflow. This form or transaction could be a decision, a request for information or a request for confirmation that a particular task has been performed.
    The work item is usually accompanied by a description of what has to be done, where to refer to when assistance is needed (help desk, intranet...) and a summary of information about the business object or process which enables the operator to attack the task immediately. 
    This work item can be received and executed in MS OutlookÒ, Lotus NotesÒ, mySAP Workflow MiniApp or the SAP integrated inbox. If this is not enough, the workflow system can transmit e-mail notifications directly to any mail system, informing the user of the need to log in to the SAP system to execute the task. The e-mail notification is done on a subscription basis so that users can de-subscribe from this service if they already check their work item inbox regularly.
    8. What workflow reporting is available and is it useful?
    Standard workflow reports exist which allow the administrator to check statistics such as the frequency and average duration of the workflow processes. However the real strength of the workflow reporting is that it allows reports to be configured which analyze the process statistics in combination with the data involved within the workflow process and the organizational units associated with the process. For example you can determine the average time invested in a failed contract renewal request, the time taken to create material masters in different plants or the frequency of rejected purchase requisitions on a department to department basis. Often, big reducations in cost or cycle time can be obtained without touching the workflow definitions. Reeducating a particular group of users or incorporating supplementary information in a work item description can often cause dramatic improvements on the cycle times of particularly critical subsets of the process. It is not unusual that this may have a big impact on specific products, plants or organizational units. This will show up in the WebFlow reporting in LIS or the Business Warehouse but it might not show up in traditional statistical workflow reporting.  Even though the average time does not change significantly, the impact on costs and profit can be dramatic.
    9. How do I choose who to distribute the tasks to?
    A work item is assigned to one or more users. Whoever reserves or executes the task first wins and the work item vanishes from the other users' inboxes. This eliminates the need to assign the user to one single user. I.e. No need for complicated algorithms to determine which single user will receive the work item and no need to worry about what will happen when one user is ill for the week (also taken care of by sophisticated substitution mechanisms which can be linked to the SAP organizational model).
    Tasks can be assigned to an organizational unit but the strength of the workflow system is to enable business rules which select users according to the data being processed. For example, you might have one group of users associated with one quality notification type. The workflow can be configured to query the QM module directly to determine the users. You can define fallbacks using the default role associated with a task and allow agents to be specified on the fly by a supervisor.
    Tasks can be assigned to office distribution lists which is useful when you want your users to subscribe or unsubscribe to a particular task. A typical use of  this would be where you have a work rote or want to reduce user maintenance to an absolute minimum. The users subscribe or unsubscribe by joining or leaving an office distribution list (one mouse click).
    10. What happens when a deadline is missed?
    This depends on your workflow definition. In the simplest case an e-mail is sent to another user by the system (typically your supervisor so watch out!). However in more sophisticated scenarios a missed deadline can redirect that path that the workflow takes. One customer uses deadlines to automatically make an approval if the deadline is missed  (at about the eighth approval level!!!). This gives the user the chance to make rejections but does not force him/her to go into the system to approve the other 99.9% of the requests. In safety critical environments the workflow might trigger off preventative action when a deadline is missed or might put other processes on hold.  There is no limit as to how you can use this functionality.
    11. What deadlines can be monitored?
    Many different types of deadlines can monitored. At the single workflow step level you can define deadlines which trigger when the work item has not completed within a certain time and other deadlines when no one starts working on the work item within a given time. You can specify the task deadline statically (e.g. 1 week) or dynamically (e.g. 1 week for material type A and 2 weeks for all the other materials). The offset can be related to the step (e.g. you have 1 week to complete this step) or related to the process (e.g. complete within 2 weeks of the complete process starting, irrespective of how long your colleagues have hogged the previous steps).
    Last but not least, deadlines can be set for sub-processes, which is often more important than the deadline of a single step in a workflow.
    12. How can I check the status of a workflow?
    This is one of the very cool features of SAP Business Workflow. You can usually navigate directly from the business object to check the workflow progress. For example, while viewing a purchase order you can select "workflow" from the system menu or toolbar and you will see a list of workflows related to the purchase order. Usually just one, but if you have created a few of your own and these have been triggered you will see the status of these too. And that is not all. You also see a simplified summary of all the steps that have taken place so far including who performed them, when they were executed and which ad hoc notes were attached.
    13. How are workflows triggered?
    Workflows can be triggered automatically by changes in the system or manually by an operator. Manually triggered workflows are good for processes that remedy a problem the operator has noticed or for dealing with a forms-based requests (E.g. my PC won't boot). Automatically triggered workflows are useful because the operator does not even have to be aware of the workflow's existence to trigger it. In addition to triggers embedded in transactions there are also generic triggering mechanisms such as a change in the status of a business object or a change in the HR data. Irrespective of how the workflow is triggered, it is linked to the business object as described in the previous answer and can be tracked easily. Because WebFlow is part of the basis system, this triggering is reliable and easy to implement.
    Workflows may be triggered by events but this is not essential. The event-handling makes it easy to trigger workflows from transactions and system changes without you having to make modifications. If you are creating your own report or transaction which triggers a workflow, avoid events and trigger the workflow directly with the WAPI function call. This is particularly important when triggering a workflow from outside the SAP system. This method reduces flexibility (the workflow ID is hard-coded) but increases performance if this is an issue (we're talking about 50 000 work items a day here!).
    Any exception handling workflows that are intended to be triggered manually can be triggered from the system menu when viewing the relevant transaction. The SAP system has the intelligence to suggest workflows that can be triggered manually based on the authorization of the operator and the context that the operator is working in. No additional customizing is needed here.
    14. What open interfaces are supported?
    The most significant interface supported is the Wf-XML standard from the Workflow Management Coalition. This is an independent organization of which SAP is a funding member, along with most other major workflow vendors. The Wf-XML interface is based on XML and allows workflows from different vendors to communicate with each other. A detailed description of the interface is available on the WfMCs web site at www.wfmc.org.
    15. What is Wf-XML used for?
    Although a company is far better off workflow enabling their system with SAP WebFlow when SAP software is used anywhere within the process, a collaborative process can take place between partners using different software platforms employing different workflow systems. To support SAP customers in this situation, WebFlow offers the open interface Wf-XML. This allows Business Processes enabled using different tools to communicate and control each other. Any workflow tool offering this interface can connect up with other tools that also offer this interface.
    Wf-XML is the only open interface for supporting interoperability of business processes, independent of what the business process being integrated.
    16. Where does Wf-XML come from?
    Wf-XML comes from the Workflow Management Coalition, an independent body of workflow vendors, customers and higher education establishments.
    17. How does the workflow call procedures from non-SAP systems?
    The Actional control broker integrates directly into SAP WebFlow enabling proxy objects to be called directly from the workflow step. When called, the proxy method will make a call to the outside system either as a background task or as a dialogue step. These proxy objects are generated in the SAP system using a converter which converts the objects interface (DCOM, CORBA...) to the SAP syntax. A syntax converter also lets developers view any object in any of the participating systems in the developer's preferred language.
    18. How can I get the workflow initiator information in my task?
    1) From your triggering event to the workflow, bind the event creator element to the workflow initiator element.
    2) Create a workflow container element based on USR01.
    3) Add a step based on USR01.FINDUSERFROMAGENTSTRUCTURE to convert your initiator to a USR01 object.
    4) Pass the USR01 object to each task you want to display the details.
    Mailing
    19. What differences are there between a work item and a notification mail?
    a) The work item cannot be used to notify several users.
    Mails can be routed to several users, just like work items. When a mail is sent, and one recipient reads and deletes the mail, all other recipients will still have access to their own copy in their own inbox. However, when a work item is processed by one of the recipients it will automatically disappear from all the other inboxes.  So you can see that a work item is unsuitable for notifying several users.
    It is also worth noting that a mail can be forwarded in many different ways (fax, internet...) whereas the work item cannot.
    b) The work item holds up the workflow
    When the workflow sends a mail (usually as a background step) it continues with the process immediately after transmitting the mail. When a work item is generated, the workflow will not continue until the work item has been processed. This slows down the process. Occasionally this is what is intended (using the work item as an approval step without the ability to reject) but usually you will better off using mails for notifications.
    Note: You can send business objects as references with the mail either as a business object reference attached to the mail or as an URL (ABAP required).
    What is the difference between sending a mail to a recipient list compared to sending individual mails via a dynamic loop?
    Performance. Sending 1 mail to 20 recipients will cost considerably less performance than sending 20 individual mails. If the mail is sent as a SAP Office mail (as opposed to e-mail, fax...) disk space will also be a factor because the SAP office mail will only exist once in the database, with references being created for each of the recipients.
    The only time you need to consider individual mails with a dynamic loop is when the text of the mail varies from one recipient to another.
    20. How do I send a standard text as an e-mail from workflow?
    It is very easy sending standard text , which may include data from the workflow. You simply create a background step which sends the work item description. This may include variables which will be substituted when mail is sent.
    In early releases you have to create your own task based on the method SELFITEM SendTaskDescription. In later releases a wizard is available for creating the step and in release 4.6 there is even a step type which does this all for you automatically.
    Whichever path you take, there is very good online documentation describing exactly what has to be done.
    21. How do I send a complex text from the workflow?
    You may create mails using SAPscript. These mails can include conditions which are evaluated in order to determine which text blocks which are used in the mail. Workflow variables can be used in these conditions and workflow variables can be substituted into the body of the e-mail text.
    22. How do I send really complex mails from the workflow?
    If you this is not enough for you will probably want to write your own ABAP routines for generating the text and generating the attachments to go with the text.
    Use the function group SO01 which contains functions of the form SO_*_API1 which are ideal for creating your own sophisticated messages. There are plenty of advantages of how these are used within the SAP system.
    23. How do I send reports?
    There are wizards (Release 3.1) which will create workflows for you to send reports to a distribution list. You can specify whether the results should be transmitted or evaluated at the time the recipient wishes to view the report. It is usually better to send the evaluation because this allows the recipient to see the results instantaneously, without having to wait for the report to execute first.
    Deadlines
    24. How can I configure the workflow so that different types of messages are sent out to different people depending on how late the processing is?
    Follow these steps:
    1. Specify a deadline period for the step.
    2. Specify a name for the event. This adds new branch from the step.
    3. Add a new step to the branch which sends a mail message.
    4. Add another step to the branch which sends out the second deadline warning (see mail steps above). Use deadlines in this step to configure an earliest start so that the second message is not sent until a further time has elapsed.
    5. Repeat step 5 as often as you like.
    25. How can I configure the workflow so that when the deadline is missed the workflow step is simply skipped?
    This is tricky to explain but easy to implement once you know how.
    Follow these steps (in later releases there is a wizard which takes you through the steps):
    1. In the terminating events view of the workflow step activate the  "obsolete" event and give it a name.
    2. Specify a deadline period for the step.
    3. Specify a name for the event. This adds new branch from the step.
    4. Add a new step to the deadline path. This step must be of type "process control".
    5. Select the control "Make step obsolete" and use the search help to specify the workflow step that has the deadline. Only steps with obsolete paths defined will be displayed (see step 1).
    26. How do I trigger a workflow with an e-mail?
    You can customize the system to call a BOR method when an external mail (fax, e-mail...) arrives in the system. You BOR method should either trigger the e-mail directly or trigger an event. To customize this user exit use the transaction SCOT.
    27. How can I make sure that user's access their tasks via the workflow and not via the menu or launch pad?
    The routing mechanism for work items uses roles and organizational assignments to determine who receives which work item. However the routing does not provide extra authorization checks based on the routing configuration. If you want to ensure that the  tasks are executed within the workflow, and not via the standard transaction, service or MiniApp, then you will have to apply your own protection.
    The simplest way of doing this is to remove the standard transaction from the user's menu or Workplace role (but include it in the supervisor's role, just in case).
    If you want to allow the user to execute the task from the menu if and only if they have received the work item then you should replace the standard transaction with your own custom built transaction. Your own transaction simply calls the standard transaction but performs it's own authorization check first, based on the routing mechanism used in the workflow. Tip: Add a second (ored) authorization check to make sure that a supervisor can execute the transaction in an emergency.
    28. What is a workflow? What is a single-step task?
    A single-step task is based on an object type from the object business repository (BOR) (for example, a purchase order) and a method for the object (for example, change). A workflow can contain several single-step tasks and activities such as loops and forks. Through a workflow, you create a logical sequence for the single-step tasks. The tool for creating or changing these types of workflows (workflow template) is the Workflow Builder (transaction SWDD).
    29. What is a work item (important terms)?
    A work item is the runtime object of a workflow or of a single-step task.You can execute dialog work items with the inbox (transaction SBWP). Each workflow and single-step task started is assigned a unique number known as the work item ID.
    30. How is an event triggered from the application and a workflow then started?
    An event can be triggered from the application in three different ways:
    Directly:
    Within the application, the SWE_EVENT_CREATE function module or the SWE_EVENT_CREAT_IN_UPD_TASK function module, for example, generates an event in the update.
    With a change document:
    Change documents are written within the application when you change application objects in the update. You can link events that have the same key with these types of change documents via transaction SWEC.
    With status management:
    The SWE_EVENT_CREATE_STATUS function module triggers an event in the same way as the direct method when a status is changed. This event contains the object type (for example, purchase order), the object key (for example, purchase order 4711) and other information. Using transaction PFTC, you can assign the event to a specific workflow or single-step task. More settings are available in transaction SWE2.
    31. How are the responsible agents determined?
    You can assign agents to a single-step task in transaction PFTC. For example, you can do this using organizational units, work center roles or positions. Within a workflow pattern, you can assign specific agents for this workflow to a single-step task. The overlap between both numbers of 'possible agents' represents the number of agents ('selected agents') who have the work item in the inbox later.
    32. What is the difference of between an e-mail and a work item?
    E-mails and work items are two completely separate things. They just happen to be displayed in the same inbox. An e-mail is a message sent to one or several people. However, a work item is a runtime object of a single-step task or workflow. Consequently, a work item cannot be deleted from the inbox of a user. In this case in fact, you have to adjust the agent assignment or delete the work item as described in note 49545.
    33. PFAC no longer works for my role responsibility setup...
    Use tx: OOCU_RESP
    34. How do I transport workflow definitions and agent assignments?
    When transporting workflows, you have to differentiate between the workflow definition and the agent assignment.
    A workflow definition is a workbench request. When you save the workflow, a workflow version is created and a request written. Further information about the transport or about the status management is provided in note 378487 and in the notes mentioned there under related notes.
    However, where the agent assignment is concerned, this is a Customizing request. To allow transport of agent assignments, the value of the semantic abbreviation CORR for the TRSP group name must be empty in table T77S0.
    35. How do you debug a background workflow process?
    In your method write the following code:
    data exit.
    Do.
      if exit = 'X'.
        exit.
      endif.
    enddo.
    Run the workflow, causing an infinite loop on that step, and then go to SM50.
    Here you can debug the process.
    36.What is the Workflow basic Customizing?
    Before you can use the Workflow module, you must first execute the basic Customizing in transaction SWU3. All of the listed points should be green (the number range for customer tasks is no longer required). A detailed description of the activities is provided in the relevant information buttons. You can also execute some (but not all) of the points using the Automatic Customizing button. See the online documentation for an exact description of what happens there. The RFC destination must work correctly and the user (usually WF BATCH) should have the SAP_ALL profile.
    37.: What options do I have as a user to configure the inbox individually?
    You have the following options:
    You can create separate user-dependent or user-independent layouts so that you can adapt the displayed columns individually. You can access the function in the Workplace via an application function key.
    You can set filters to set certain criteria for individual columns or several columns simultaneously, according to which specific work items are then filtered.
    You can add dynamic columns in the layout that then display dynamic elements for certain tasks and users from the work item container. However, this is only possible if all tasks in the inbox belong to just one task. If they have several tasks in the inbox, filtering serves no useful purpose because all tasks are first completely read once. You can define these dynamic columns using transaction SWL1.
    38. What does the substitute rule system look like in the workflow?
    You have a choice of two different substitute rulings:
    Active substitute ruling (for example, for absence due to vacations): In this case, the items belonging to the absent person are automatically assigned to the substitutes inbox (in addition to his own work items).
    Passive substitution (for example, for absence due to illness): the substitute must explicitly assume the substitution and can only view the items of the absent person in this mode.
    For other questions, you must also refer to note 74000.
    39. How can users be automatically notified that new work items are available for processing?
    Unfortunately, the dialog box that informs users of new work items which appears in SAPoffice is not available within SAP Systems.
    However, the following two options are provided:
    In the Workflow Builder, you can designate the item as an express item via additional data. The user then receives a corresponding express dialog box.
    The RSWUWFML report (note 131795) is a more flexible option. This report sends an e-mail to an external Internet address to notify the user of new work items.
    40. Can I set deadlines for the latest processing of work items?
    this is where you can use deadline monitoring for work items. In the Workflow Builder, you can set dates for a requested/latest start/end date for each individual step. You must schedule the SWWDHEX job via transaction SWU3 for this. Schedule the job permanently in the production system  otherwise it is difficult for the job to schedule individual deadline monitoring scenarios when workflow is heavy.
    41. Can I also execute work items with external programs such as Outlook?
    You can use the Web GUI for HTML instead of the Windows GUI. However, note that some functions do no work in the WEB GUI, due to technical restrictions in the browser. You must refer to note 487649 on this subject.
    SAP also provides interfaces which allow you to process work items with external programs such as Lotus Notes or Microsoft Outlook. Refer to notes 77099, 98408 and 454845 for details.
    Reward points if this helps you
    Reagrds,
    Amber S

  • WorkFlow Tutorials with Screen Shot

    HI Experts,
    Can anyone send WorkFlow Tutorials with Screen Shots??..My email id is <REMOVED BY MODERATOR>.. Full points will be rewarded for this immediate help..Thanks..
    Edited by: Alvaro Tejada Galindo on Jun 6, 2008 1:52 PM

    Hi Satheesh,
    Please find some questions related to WorkFlow
    1. Is there a good book about this subject?
    Yes, "Practical Workflow for SAP" by Rickayzen, Dart, Brennecke and Schneider. Available from SAP press at the end of July. A german translation of this workflow book is also available directly from Galileo-Press, the publisher.
    2. How do I convince my company to use workflow?
    Feedback from user groups emphasizes that although the competitive advantage gained by using workflow eclipses the financial savings, it is the financial savings that are the deciding factor when obtaining support from senior management. Projects getting the blessing at the CEO level are much easier to manage, and far more likely to reach their goal within the project time frame. So plan well, and don't neglect the business case.
    Because the following questions deal with the financial case in more detail, this section will finish by listing the competitive advantages.
    The quality of the process is assured by pushing the relevant information together with links to related transactions directly to the user. Managers don't have the time to search for information so give them what they need to reach the correct decision.
    Cycle time is reduced by pushing the process directly to the users. The users receive notification of a task immediately and can even be prioritized by the system.
    The tasks are performed consistently and diligently by the users. The workflow system pushes all the necessary information needed to perform a task, including a clear description of what has to be done, how to do it and the impact this task has on the business process for your company. At any time, the user can check the list of tasks pending and determine at a glance which are the important tasks, and which tasks can be completed the next day without any negative impact.
    The process instance is transparent. Any user can check at any time how far the process has progressed and which stage the process has reached. For example the call center can immediately see the status of a purchase order, an employee requisitioning a purchase would see at a glance if a colleague has been sitting on it for too long, the ad hoc notes made when approving an engineering change request are visible long after the request has gone into production.
    The process is flexible, allowing it to be changed on the fly without retraining everyone involved. The description accompanying the change takes care of on-the-fly process improvements.
    Deadline handing ensures that users perform the tasks within the time planned. Escalation measures ensure that the failure to meet a deadline can be corrected by other means.
    Intelligent reporting highlights the weaknesses of a process. Often there is a simple cure to such weaknesses such as reeducating the users involved in the bottleneck or providing additional information (automatically). The difficulty of a non-automated process is identifying such bottlenecks.
    The process definition is transparent. You can see at a glance how the process works and who will be selected to perform the different tasks. Think of the workflow as the process book. If you can spot the pattern and define the process without headaches, you can create a workflow definition effortlessly. However, don't forget that if a company has business processes that are erratic and lack a consistent pattern, the company is very likely to be losing a lot of money in terms of lost contracts, labor intensive administration and low customer confidence. It is my personal opinion that automating exactly this type of processes will yield the best returns, but only if you limit yourself to automating the basic skeleton of the process first. Don't get bogged down in the detailed exception handling. That can be done in the next phase once you've checked the process statistics and determined which exceptions are worth tackling.
    As with most software the reasons for automating business processes are primarily to increase the competitive edge of your company and to cut costs. Although the increase in competitively gained by radically reducing process times is by far the most insignificant gain from workflow, you should not ignore the cost savings. The cost saving calculations are needed by upper management in order to approve workflow projects. This upper management signature will be very useful in different phases of the project and cannot be underestimated.
    3. How do I calculate the cost saved by workflow?
    Calculate the cost of the manual process in terms of man hours. Don't neglect the time spent gathering information. Ask the following questions:
    Is the user forced to log into different systems, or scan through printed documentation....?
    Does a skilled user spend time on parts of a task, where less skilled (less expensive) user could do the groundwork? I.e. Can a single task be split into skilled and unskilled tasks to free the skilled worker for work where his/her skills are really needed?
    Is time spent researching the progress of a process (usually done by someone not involved in the process directly)?
    Is time spent determining who to give the task to next?
    Probably the most significant cost will the be the cost of failure?
    How often does the process fail?
    What is the real cost of failure? Loss of a contract? Loss of a customer? Law suit?
    If the failure can be rectified, how labor intensive is it?
    4. What are typical costs saved by workflow?
    A manually processed accounts payable invoice will cost about 25 USD. After workflow enabling about 15 USD (one example based on customer feedback from a user group meeting).
    5. What are typical reductions in processing time caused by workflow?
    A traditional paper based approval process involving three people will typically take seven days to complete. The automated process will take one day (results based on customer feedback).
    6. What do customers say are the strengths of SAP WebFlow?
    WebFlow is the internet functionality of SAP Business Workflow. Based on customer feedback from the various regional users groups, the main strengths of SAP Business Workflow are:
    Robust production workflow system, (upgrade continuity with the rest of the SAP system, versioning, scalability, no gluing....)
    Standard workflow templates delivered by SAP can be used out-of-the-box or tweaked to deliver the optimum business process for your company. Workflows can be up and running including training in under a day (thanks to the knowledgeware delivered as part of the template packet).
    Seamlessly integrated into the SAP environment, be it R/3, Business to Business Procurement, CRM, APO, mySAP.com.... Examples of integration are:
    Business Reporting (WIS),
    Context sensitive availability at any time through the system menu (available anytime, anywhere)
    More and more standard SAP functionality is being provided by using SAP Business Workflow so your homegrown workflows fit the landscape exactly,
    More and more workflow functionality is available directly within the SAP transaction or Web MiniApp.
    WebFlow is becoming more and more important because companies are no longer being judged by their own performance but by the combined performance of the company AND its partners. In other words it is not enough that the business processes within your company run smoothly and faster than your competitors. You have to ensure that the processes between you and your partners are also as fast, efficient and flexible as possible. WebFlow delivers this.
    7. How are users notified about their work pending?
    The users are informed by a work item which you may think of as being very like an e-mail. The difference is the work item contains intelligence and by executing the work item you will be taken to the form or SAP transaction that makes up the step in the workflow. This form or transaction could be a decision, a request for information or a request for confirmation that a particular task has been performed.
    The work item is usually accompanied by a description of what has to be done, where to refer to when assistance is needed (help desk, intranet...) and a summary of information about the business object or process which enables the operator to attack the task immediately.
    This work item can be received and executed in MS OutlookÒ, Lotus NotesÒ, mySAP Workflow MiniApp or the SAP integrated inbox. If this is not enough, the workflow system can transmit e-mail notifications directly to any mail system, informing the user of the need to log in to the SAP system to execute the task. The e-mail notification is done on a subscription basis so that users can de-subscribe from this service if they already check their work item inbox regularly.
    8. What workflow reporting is available and is it useful?
    Standard workflow reports exist which allow the administrator to check statistics such as the frequency and average duration of the workflow processes. However the real strength of the workflow reporting is that it allows reports to be configured which analyze the process statistics in combination with the data involved within the workflow process and the organizational units associated with the process. For example you can determine the average time invested in a failed contract renewal request, the time taken to create material masters in different plants or the frequency of rejected purchase requisitions on a department to department basis. Often, big reducations in cost or cycle time can be obtained without touching the workflow definitions. Reeducating a particular group of users or incorporating supplementary information in a work item description can often cause dramatic improvements on the cycle times of particularly critical subsets of the process. It is not unusual that this may have a big impact on specific products, plants or organizational units. This will show up in the WebFlow reporting in LIS or the Business Warehouse but it might not show up in traditional statistical workflow reporting. Even though the average time does not change significantly, the impact on costs and profit can be dramatic.
    9. How do I choose who to distribute the tasks to?
    A work item is assigned to one or more users. Whoever reserves or executes the task first wins and the work item vanishes from the other users' inboxes. This eliminates the need to assign the user to one single user. I.e. No need for complicated algorithms to determine which single user will receive the work item and no need to worry about what will happen when one user is ill for the week (also taken care of by sophisticated substitution mechanisms which can be linked to the SAP organizational model).
    Tasks can be assigned to an organizational unit but the strength of the workflow system is to enable business rules which select users according to the data being processed. For example, you might have one group of users associated with one quality notification type. The workflow can be configured to query the QM module directly to determine the users. You can define fallbacks using the default role associated with a task and allow agents to be specified on the fly by a supervisor.
    Tasks can be assigned to office distribution lists which is useful when you want your users to subscribe or unsubscribe to a particular task. A typical use of this would be where you have a work rote or want to reduce user maintenance to an absolute minimum. The users subscribe or unsubscribe by joining or leaving an office distribution list (one mouse click).
    10. What happens when a deadline is missed?
    This depends on your workflow definition. In the simplest case an e-mail is sent to another user by the system (typically your supervisor so watch out!). However in more sophisticated scenarios a missed deadline can redirect that path that the workflow takes. One customer uses deadlines to automatically make an approval if the deadline is missed (at about the eighth approval level!!!). This gives the user the chance to make rejections but does not force him/her to go into the system to approve the other 99.9% of the requests. In safety critical environments the workflow might trigger off preventative action when a deadline is missed or might put other processes on hold. There is no limit as to how you can use this functionality.
    11. What deadlines can be monitored?
    Many different types of deadlines can monitored. At the single workflow step level you can define deadlines which trigger when the work item has not completed within a certain time and other deadlines when no one starts working on the work item within a given time. You can specify the task deadline statically (e.g. 1 week) or dynamically (e.g. 1 week for material type A and 2 weeks for all the other materials). The offset can be related to the step (e.g. you have 1 week to complete this step) or related to the process (e.g. complete within 2 weeks of the complete process starting, irrespective of how long your colleagues have hogged the previous steps).
    Last but not least, deadlines can be set for sub-processes, which is often more important than the deadline of a single step in a workflow.
    12. How can I check the status of a workflow?
    This is one of the very cool features of SAP Business Workflow. You can usually navigate directly from the business object to check the workflow progress. For example, while viewing a purchase order you can select "workflow" from the system menu or toolbar and you will see a list of workflows related to the purchase order. Usually just one, but if you have created a few of your own and these have been triggered you will see the status of these too. And that is not all. You also see a simplified summary of all the steps that have taken place so far including who performed them, when they were executed and which ad hoc notes were attached.
    13. How are workflows triggered?
    Workflows can be triggered automatically by changes in the system or manually by an operator. Manually triggered workflows are good for processes that remedy a problem the operator has noticed or for dealing with a forms-based requests (E.g. my PC won't boot). Automatically triggered workflows are useful because the operator does not even have to be aware of the workflow's existence to trigger it. In addition to triggers embedded in transactions there are also generic triggering mechanisms such as a change in the status of a business object or a change in the HR data. Irrespective of how the workflow is triggered, it is linked to the business object as described in the previous answer and can be tracked easily. Because WebFlow is part of the basis system, this triggering is reliable and easy to implement.
    Workflows may be triggered by events but this is not essential. The event-handling makes it easy to trigger workflows from transactions and system changes without you having to make modifications. If you are creating your own report or transaction which triggers a workflow, avoid events and trigger the workflow directly with the WAPI function call. This is particularly important when triggering a workflow from outside the SAP system. This method reduces flexibility (the workflow ID is hard-coded) but increases performance if this is an issue (we're talking about 50 000 work items a day here!).
    Any exception handling workflows that are intended to be triggered manually can be triggered from the system menu when viewing the relevant transaction. The SAP system has the intelligence to suggest workflows that can be triggered manually based on the authorization of the operator and the context that the operator is working in. No additional customizing is needed here.
    14. What open interfaces are supported?
    The most significant interface supported is the Wf-XML standard from the Workflow Management Coalition. This is an independent organization of which SAP is a funding member, along with most other major workflow vendors. The Wf-XML interface is based on XML and allows workflows from different vendors to communicate with each other. A detailed description of the interface is available on the WfMCs web site at www.wfmc.org.
    15. What is Wf-XML used for?
    Although a company is far better off workflow enabling their system with SAP WebFlow when SAP software is used anywhere within the process, a collaborative process can take place between partners using different software platforms employing different workflow systems. To support SAP customers in this situation, WebFlow offers the open interface Wf-XML. This allows Business Processes enabled using different tools to communicate and control each other. Any workflow tool offering this interface can connect up with other tools that also offer this interface.
    Wf-XML is the only open interface for supporting interoperability of business processes, independent of what the business process being integrated.
    16. Where does Wf-XML come from?
    Wf-XML comes from the Workflow Management Coalition, an independent body of workflow vendors, customers and higher education establishments.
    17. How does the workflow call procedures from non-SAP systems?
    The Actional control broker integrates directly into SAP WebFlow enabling proxy objects to be called directly from the workflow step. When called, the proxy method will make a call to the outside system either as a background task or as a dialogue step. These proxy objects are generated in the SAP system using a converter which converts the objects interface (DCOM, CORBA...) to the SAP syntax. A syntax converter also lets developers view any object in any of the participating systems in the developer's preferred language.
    18. How can I get the workflow initiator information in my task?
    1) From your triggering event to the workflow, bind the event creator element to the workflow initiator element.
    2) Create a workflow container element based on USR01.
    3) Add a step based on USR01.FINDUSERFROMAGENTSTRUCTURE to convert your initiator to a USR01 object.
    4) Pass the USR01 object to each task you want to display the details.
    Mailing
    19. What differences are there between a work item and a notification mail?
    a) The work item cannot be used to notify several users.
    Mails can be routed to several users, just like work items. When a mail is sent, and one recipient reads and deletes the mail, all other recipients will still have access to their own copy in their own inbox. However, when a work item is processed by one of the recipients it will automatically disappear from all the other inboxes. So you can see that a work item is unsuitable for notifying several users.
    It is also worth noting that a mail can be forwarded in many different ways (fax, internet...) whereas the work item cannot.
    b) The work item holds up the workflow
    When the workflow sends a mail (usually as a background step) it continues with the process immediately after transmitting the mail. When a work item is generated, the workflow will not continue until the work item has been processed. This slows down the process. Occasionally this is what is intended (using the work item as an approval step without the ability to reject) but usually you will better off using mails for notifications.
    Note: You can send business objects as references with the mail either as a business object reference attached to the mail or as an URL (ABAP required).
    What is the difference between sending a mail to a recipient list compared to sending individual mails via a dynamic loop?
    Performance. Sending 1 mail to 20 recipients will cost considerably less performance than sending 20 individual mails. If the mail is sent as a SAP Office mail (as opposed to e-mail, fax...) disk space will also be a factor because the SAP office mail will only exist once in the database, with references being created for each of the recipients.
    The only time you need to consider individual mails with a dynamic loop is when the text of the mail varies from one recipient to another.
    20. How do I send a standard text as an e-mail from workflow?
    It is very easy sending standard text , which may include data from the workflow. You simply create a background step which sends the work item description. This may include variables which will be substituted when mail is sent.
    In early releases you have to create your own task based on the method SELFITEM SendTaskDescription. In later releases a wizard is available for creating the step and in release 4.6 there is even a step type which does this all for you automatically.
    Whichever path you take, there is very good online documentation describing exactly what has to be done.
    21. How do I send a complex text from the workflow?
    You may create mails using SAPscript. These mails can include conditions which are evaluated in order to determine which text blocks which are used in the mail. Workflow variables can be used in these conditions and workflow variables can be substituted into the body of the e-mail text.
    22. How do I send really complex mails from the workflow?
    If you this is not enough for you will probably want to write your own ABAP routines for generating the text and generating the attachments to go with the text.
    Use the function group SO01 which contains functions of the form SO_*_API1 which are ideal for creating your own sophisticated messages. There are plenty of advantages of how these are used within the SAP system.
    23. How do I send reports?
    There are wizards (Release 3.1) which will create workflows for you to send reports to a distribution list. You can specify whether the results should be transmitted or evaluated at the time the recipient wishes to view the report. It is usually better to send the evaluation because this allows the recipient to see the results instantaneously, without having to wait for the report to execute first.
    Deadlines
    24. How can I configure the workflow so that different types of messages are sent out to different people depending on how late the processing is?
    Follow these steps:
    1. Specify a deadline period for the step.
    2. Specify a name for the event. This adds new branch from the step.
    3. Add a new step to the branch which sends a mail message.
    4. Add another step to the branch which sends out the second deadline warning (see mail steps above). Use deadlines in this step to configure an earliest start so that the second message is not sent until a further time has elapsed.
    5. Repeat step 5 as often as you like.
    25. How can I configure the workflow so that when the deadline is missed the workflow step is simply skipped?
    This is tricky to explain but easy to implement once you know how.
    Follow these steps (in later releases there is a wizard which takes you through the steps):
    1. In the terminating events view of the workflow step activate the "obsolete" event and give it a name.
    2. Specify a deadline period for the step.
    3. Specify a name for the event. This adds new branch from the step.
    4. Add a new step to the deadline path. This step must be of type "process control".
    5. Select the control "Make step obsolete" and use the search help to specify the workflow step that has the deadline. Only steps with obsolete paths defined will be displayed (see step 1).
    26. How do I trigger a workflow with an e-mail?
    You can customize the system to call a BOR method when an external mail (fax, e-mail...) arrives in the system. You BOR method should either trigger the e-mail directly or trigger an event. To customize this user exit use the transaction SCOT.
    27. How can I make sure that user's access their tasks via the workflow and not via the menu or launch pad?
    The routing mechanism for work items uses roles and organizational assignments to determine who receives which work item. However the routing does not provide extra authorization checks based on the routing configuration. If you want to ensure that the tasks are executed within the workflow, and not via the standard transaction, service or MiniApp, then you will have to apply your own protection.
    The simplest way of doing this is to remove the standard transaction from the user's menu or Workplace role (but include it in the supervisor's role, just in case).
    If you want to allow the user to execute the task from the menu if and only if they have received the work item then you should replace the standard transaction with your own custom built transaction. Your own transaction simply calls the standard transaction but performs it's own authorization check first, based on the routing mechanism used in the workflow. Tip: Add a second (ored) authorization check to make sure that a supervisor can execute the transaction in an emergency.
    28. What is a workflow? What is a single-step task?
    A single-step task is based on an object type from the object business repository (BOR) (for example, a purchase order) and a method for the object (for example, change). A workflow can contain several single-step tasks and activities such as loops and forks. Through a workflow, you create a logical sequence for the single-step tasks. The tool for creating or changing these types of workflows (workflow template) is the Workflow Builder (transaction SWDD).
    29. What is a work item (important terms)?
    A work item is the runtime object of a workflow or of a single-step task.You can execute dialog work items with the inbox (transaction SBWP). Each workflow and single-step task started is assigned a unique number known as the work item ID.
    30. How is an event triggered from the application and a workflow then started?
    An event can be triggered from the application in three different ways:
    Directly:
    Within the application, the SWE_EVENT_CREATE function module or the SWE_EVENT_CREAT_IN_UPD_TASK function module, for example, generates an event in the update.
    With a change document:
    Change documents are written within the application when you change application objects in the update. You can link events that have the same key with these types of change documents via transaction SWEC.
    With status management:
    The SWE_EVENT_CREATE_STATUS function module triggers an event in the same way as the direct method when a status is changed. This event contains the object type (for example, purchase order), the object key (for example, purchase order 4711) and other information. Using transaction PFTC, you can assign the event to a specific workflow or single-step task. More settings are available in transaction SWE2.
    31. How are the responsible agents determined?
    You can assign agents to a single-step task in transaction PFTC. For example, you can do this using organizational units, work center roles or positions. Within a workflow pattern, you can assign specific agents for this workflow to a single-step task. The overlap between both numbers of 'possible agents' represents the number of agents ('selected agents') who have the work item in the inbox later.
    32. What is the difference of between an e-mail and a work item?
    E-mails and work items are two completely separate things. They just happen to be displayed in the same inbox. An e-mail is a message sent to one or several people. However, a work item is a runtime object of a single-step task or workflow. Consequently, a work item cannot be deleted from the inbox of a user. In this case in fact, you have to adjust the agent assignment or delete the work item as described in note 49545.
    33. PFAC no longer works for my role responsibility setup...
    Use tx: OOCU_RESP
    34. How do I transport workflow definitions and agent assignments?
    When transporting workflows, you have to differentiate between the workflow definition and the agent assignment.
    A workflow definition is a workbench request. When you save the workflow, a workflow version is created and a request written. Further information about the transport or about the status management is provided in note 378487 and in the notes mentioned there under related notes.
    However, where the agent assignment is concerned, this is a Customizing request. To allow transport of agent assignments, the value of the semantic abbreviation CORR for the TRSP group name must be empty in table T77S0.
    35. How do you debug a background workflow process?
    In your method write the following code:
    data exit.
    Do.
    if exit = 'X'.
    exit.
    endif.
    enddo.
    Run the workflow, causing an infinite loop on that step, and then go to SM50.
    Here you can debug the process.
    36.What is the Workflow basic Customizing?
    Before you can use the Workflow module, you must first execute the basic Customizing in transaction SWU3. All of the listed points should be green (the number range for customer tasks is no longer required). A detailed description of the activities is provided in the relevant information buttons. You can also execute some (but not all) of the points using the Automatic Customizing button. See the online documentation for an exact description of what happens there. The RFC destination must work correctly and the user (usually WF BATCH) should have the SAP_ALL profile.
    37.: What options do I have as a user to configure the inbox individually?
    You have the following options:
    You can create separate user-dependent or user-independent layouts so that you can adapt the displayed columns individually. You can access the function in the Workplace via an application function key.
    You can set filters to set certain criteria for individual columns or several columns simultaneously, according to which specific work items are then filtered.
    You can add dynamic columns in the layout that then display dynamic elements for certain tasks and users from the work item container. However, this is only possible if all tasks in the inbox belong to just one task. If they have several tasks in the inbox, filtering serves no useful purpose because all tasks are first completely read once. You can define these dynamic columns using transaction SWL1.
    38. What does the substitute rule system look like in the workflow?
    You have a choice of two different substitute rulings:
    Active substitute ruling (for example, for absence due to vacations): In this case, the items belonging to the absent person are automatically assigned to the substitutes inbox (in addition to his own work items).
    Passive substitution (for example, for absence due to illness): the substitute must explicitly assume the substitution and can only view the items of the absent person in this mode.
    For other questions, you must also refer to note 74000.
    39. How can users be automatically notified that new work items are available for processing?
    Unfortunately, the dialog box that informs users of new work items which appears in SAPoffice is not available within SAP Systems.
    However, the following two options are provided:
    In the Workflow Builder, you can designate the item as an express item via additional data. The user then receives a corresponding express dialog box.
    The RSWUWFML report (note 131795) is a more flexible option. This report sends an e-mail to an external Internet address to notify the user of new work items.
    40. Can I set deadlines for the latest processing of work items?
    this is where you can use deadline monitoring for work items. In the Workflow Builder, you can set dates for a requested/latest start/end date for each individual step. You must schedule the SWWDHEX job via transaction SWU3 for this. Schedule the job permanently in the production system otherwise it is difficult for the job to schedule individual deadline monitoring scenarios when workflow is heavy.
    41. Can I also execute work items with external programs such as Outlook?
    You can use the Web GUI for HTML instead of the Windows GUI. However, note that some functions do no work in the WEB GUI, due to technical restrictions in the browser. You must refer to note 487649 on this subject.
    SAP also provides interfaces which allow you to process work items with external programs such as Lotus Notes or Microsoft Outlook. Refer to notes 77099, 98408 and 454845 for details.
    More stuff on WORKFLOW
    Transactions
    AWUV Wizard for event creation Definition tools -> Event creation -> Set up with wizard
    MCA1 Workflow Information System Reporting -> Workflow Information System (WIS)
    OOAW Evaluation paths
    PFAC Maintain standard roles
    PFAC_CHG Change roles Definition tools -> Standard roles -> Change
    PFAC_DEL Delete roles Definition tools -> Standard roles -> Delete
    PFAC_DIS Display roles Definition tools -> Standard roles -> Display
    PFAC_INS Create roles Definition tools -> Standard roles -> Create
    PFOM Maintain assignment to SAP organizational objects Definition tools -> SAP org. objects -> Create assignments
    PFOS Display assignment to SAP organizational objects Definition tools -> SAP org. objects -> Display assignments
    PFSO Organizational environment of a user
    PFT Maintain customer task
    PFTC General task maintenance
    PFTC_CHG Change tasks Definition tools -> Task/Task groups -> Change
    PFTC_COP Copy tasks Definition tools -> Task/Task groups -> Copy
    PFTC_DEL Delete tasks Definition tools -> Task/Task groups -> Delete
    PFTC_DIS Display tasks Definition tools -> Task/Task groups -> Display
    PFTC_INS Create tasks Definition tools -> Task/Task groups -> Create
    PFTR Standard task for transaction
    PFTS Standard task
    PFWF Maintain workflow task (customer)
    PFWS Maintain workflow template
    PPOC Create organizational plan Definition tools -> Organizational plan -> Create
    PPOM Maintain organizational plan Definition tools -> Organizational plan -> Change
    PPOS Display organizational plan Definition tools -> Organizational plan -> Display
    SWDA Ongoing Settings Administration -> Settings
    SWDC Workflow editor administration data
    SWDM Business Workflow Explorer Definition tools -> Business Workflow Explorer
    SWE2 Display and maintain event type linkage Utilities -> Events -> Type linkages
    SWE3 Display instance linkages Utilities -> Events -> Instance linkages
    SWE4 Switch event log on/off Utilities -> Events -> Event/log -> On/Off
    SWEC Link change documents to events Definition tools -> Event creation -> Change documents -> Linkage
    SWED Assignment of change document objects to object types Definition tools -> Event creation -> Change documents -> Define workflow properties
    SWEL Display event log Utilities -> Events -> Event log -> Display
    SWF3 Workflow Wizard Explorer Definition tools -> Wizards -> Workflow Wizard Explorer
    SWF4 Workflow Wizard Repository Definition tools -> Wizards -> Workflow Wizard Repository
    SWI1 Selection report for workflows Utilities -> Work item selection
    SWI2 Work item analysis Reporting -> Work item analysis
    SWI3 Workflow outbox Runtime tools -> Workflow outbox
    SWI4 Task analysis Reporting -> Task analysis
    SWI5 Workload analysis Reporting -> Workload analysis
    SWI6 Object links Runtime tools -> Object links
    SWI7 Workflow resubmission folder From Integrated Inbox or Workflow Outbox
    SWI8 Error overview Part of administration of workflow runtime system (transaction SWUF)
    SWL1 Settings for dynamic columns Customizing, part of ongoing settings
    SWLC Check tasks for agents Utilities -> Consistency check -> Organizational assignment
    SWLD Workbench for Workflow 4.0
    SWLP Copy plan version
    SWLV Maintain work item views Customizing, part of ongoing settingS
    SWLW Workbench for Workflow 3.0
    SW01 Business Object Builder Definition tools -> Business Object Builder
    SW06 Customizing object types From Business Object Builder, choose Settings -> Delegate -> System-wide
    SWU0 Event simulation Utilities -> Events -> Simulate event
    SWU2 RFC monitor Utilities -> Workflow RFC monitor
    SWU3 Customizing consistency check Utilities -> Customizing
    SWU4 Consistency check for standard tasks Utilities -> Consistency check -> Task -> Standard task
    SWU5 Consistency check for customer tasks Utilities -> Consistency check -> Task -> Customer task
    SWU6 Consistency check for workflow tasks Utilities -> Consistency check -> Task -> Workflow task
    SWU7 Consistency check for workflow templates Utilities -> Consistency check -> Task -> Workflow template
    SWU8 Switch technical trace on/off Utilities -> Technical trace -> On/off
    SWU9 Display technical trace Utilities -> Technical trace -> Display
    SWUD Diagnostic tools Utilities -> Diagnosis
    SWUE Trigger event Utilities -> Events -> Generate event
    SWUF Runtime system administration Administration -> Runtime system
    SWUG Workflow start transactions Definition tools -> Workflow start transactions
    SWUI Start workflows From the R/3 initial screen, choose Office -> Start Workflow
    SWUS Start tasks Runtime tools -> Start workflow
    SWUY Wizard for message linkage to workflow Definition tools -> Wizards -> Create "Call workflow from message"
    SWX1 Create notification of absence
    SWX2 Change notification of absence
    SWX3 Display notification of absence
    SWX4 Approve notification of absence
    SWXF Form applications: Access point Environment -> Demo examples -> Fill out form
    Reports
    RSWWWIDE – Delete work items
    RHSOBJCH to fix PD Control Tables
    Tables
    SWW_OUTBOX - Lists Workflows in outbox together with status
    SWW_CONT - Container Contents for Work Item Data Container
    SWW_CONTOB- Container Cont. for Work Item Data Container (Only Objects)
    SWWLOGHIST- History of a work item
    SWWORGTASK- Assignment of WIs to Org.Units and Tasks
    SWWUSERWI - Current Work Items Assigned to a User
    SWWWIHEAD - Header Table for all Work Item Types
    <REMOVED BY MODERATOR>
    Regards,
    Amber S
    Edited by: Alvaro Tejada Galindo on Jun 6, 2008 1:51 PM

  • Fax - Dunning letters

    Hi,
    We have implemented the dunning functionality.
    Now the customer wants the 1st level letters to be sent as a FAX to the R/3 customers.
    Can you please guide the steps to be done in R/3 to achieve this ?
    I understand that a RFC connection needs to be setup for Fax etc..But what would be the function module to be used or configuration setup to trigger the FAX for 1st level of dunning procedure.
    Please advice
    Thanks
    Amit Hinger

    SAMPLE_PROCESS_00001040
    Please refer SAP Note 1042992 - Dunning by mail w/ SAPscript: Introductory text w/ attachmnt
    Though this is not directly related to fax, but it gives useful information.
    Regards,
    Ravi

  • Change the language in STS

    Hi all,
    anybody knows how can I change the language of the email that receives the user??
    Thanks

    Hi Ainara,
    It is possible to adjust the texts that are delivered by SAP or to maintain your own
    customer specific texts. The texts which the notification system uses for e-mails are SAPscript texts with the document class "general text". In order to edit or create new texts, you need the corresponding authorizations for the transaction SE61 (Tools &#8594; ABAP Workbench &#8594;Utilities &#8594;Documentation).
    If you decide to maintain your own texts, then you have to enter the technical name in table UPS_CUSTTEXT using transaction SE16
    (Tools &#8594; ABAP Workbench &#8594;Overview &#8594; Data Browser).
    You can also translate the texts into different languages if required.
    hope this is of some Help
    regards
    Sai Vishnubhatla

  • Printing smartform

    Hi All,
      My requirement is to convert the smartform to PDF and print it simulteneously. I'm using the fm <b>convert_otf_2_pdf</b> to convert the smartform into PDF. How can I print the smartform soon after converting it to PDF format?

    Hai Rajesh
    Go through the following Links & Sample Code
    Mail a sapscript
    SAPscript: Autotmatically e-mail as PDF
    How to convert sapscript(Purchage order) inot pdf format & send in  mail
    Check the following Code
    REPORT ZSMARTFORMS_0003.
    DATA: ITCPO LIKE ITCPO,
          TAB_LINES LIKE SY-TABIX.
    Variables for EMAIL functionality
    DATA: MAILDATA   LIKE SODOCCHGI1.
    DATA: MAILPACK   LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE.
    DATA: MAILHEAD   LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE.
    DATA: MAILBIN    LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
    DATA: MAILTXT    LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
    DATA: MAILREC    LIKE SOMLREC90 OCCURS 0  WITH HEADER LINE.
    DATA: SOLISTI1   LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.
    PERFORM SEND_FORM_VIA_EMAIL.
          FORM  SEND_FORM_VIA_EMAIL                                      *
    FORM  SEND_FORM_VIA_EMAIL.
      CLEAR:    MAILDATA, MAILTXT, MAILBIN, MAILPACK, MAILHEAD, MAILREC.
      REFRESH:  MAILTXT, MAILBIN, MAILPACK, MAILHEAD, MAILREC.
    Creation of the document to be sent File Name
      MAILDATA-OBJ_NAME = 'TEST'.
    Mail Subject
      MAILDATA-OBJ_DESCR = 'Subject'.
    Mail Contents
      MAILTXT-LINE = 'Here is your file'.
      APPEND MAILTXT.
    Prepare Packing List
      PERFORM PREPARE_PACKING_LIST.
    Set recipient - email address here!!!
      MAILREC-RECEIVER = '[email protected]'.
      MAILREC-REC_TYPE  = 'U'.
      APPEND MAILREC.
    Sending the document
      CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
           EXPORTING
                DOCUMENT_DATA              = MAILDATA
                PUT_IN_OUTBOX              = ' '
           TABLES
                PACKING_LIST               = MAILPACK
                OBJECT_HEADER              = MAILHEAD
                CONTENTS_BIN               = MAILBIN
                CONTENTS_TXT               = MAILTXT
                RECEIVERS                  = MAILREC
           EXCEPTIONS
                TOO_MANY_RECEIVERS         = 1
                DOCUMENT_NOT_SENT          = 2
                OPERATION_NO_AUTHORIZATION = 4
                OTHERS                     = 99.
    ENDFORM.
         Form  PREPARE_PACKING_LIST
    FORM PREPARE_PACKING_LIST.
      CLEAR:    MAILPACK, MAILBIN, MAILHEAD.
      REFRESH:  MAILPACK, MAILBIN, MAILHEAD.
      DESCRIBE TABLE MAILTXT LINES TAB_LINES.
      READ TABLE MAILTXT INDEX TAB_LINES.
      MAILDATA-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + STRLEN( MAILTXT ).
    Creation of the entry for the compressed document
      CLEAR MAILPACK-TRANSF_BIN.
      MAILPACK-HEAD_START = 1.
      MAILPACK-HEAD_NUM = 0.
      MAILPACK-BODY_START = 1.
      MAILPACK-BODY_NUM = TAB_LINES.
      MAILPACK-DOC_TYPE = 'RAW'.
      APPEND MAILPACK.
    Creation of the document attachment
    This form gets the OTF code from the SAPscript form.
    If you already have your OTF code, I believe that you may
    be able to skip this form.  just do the following code, looping thru
    your SOLISTI1 and updating MAILBIN.
      PERFORM GET_OTF_CODE.
      LOOP AT SOLISTI1.
        MOVE-CORRESPONDING SOLISTI1 TO MAILBIN.
        APPEND MAILBIN.
      ENDLOOP.
      DESCRIBE TABLE MAILBIN LINES TAB_LINES.
      MAILHEAD = 'TEST.OTF'.
      APPEND MAILHEAD.
    Creation of the entry for the compressed attachment
      MAILPACK-TRANSF_BIN = 'X'.
      MAILPACK-HEAD_START = 1.
      MAILPACK-HEAD_NUM = 1.
      MAILPACK-BODY_START = 1.
      MAILPACK-BODY_NUM = TAB_LINES.
      MAILPACK-DOC_TYPE = 'OTF'.
      MAILPACK-OBJ_NAME = 'TEST'.
      MAILPACK-OBJ_DESCR = 'Subject'.
      MAILPACK-DOC_SIZE = TAB_LINES * 255.
      APPEND MAILPACK.
    ENDFORM.
         Form  GET_OTF_CODE
    FORM  GET_OTF_CODE.
      DATA: BEGIN OF OTF OCCURS 0.
              INCLUDE STRUCTURE ITCOO .
      DATA: END OF OTF.
      DATA: ITCPO LIKE ITCPO.
      DATA: ITCPP LIKE ITCPP.
      CLEAR ITCPO.
      ITCPO-TDGETOTF = 'X'.
    Start writing OTF code
      CALL FUNCTION 'OPEN_FORM'
           EXPORTING
                FORM     = 'ZTEST_FORM'
                LANGUAGE = SY-LANGU
                OPTIONS  = ITCPO
                DIALOG   = ' '
           EXCEPTIONS
                OTHERS   = 1.
      CALL FUNCTION 'START_FORM'
           EXCEPTIONS
                ERROR_MESSAGE = 01
                OTHERS        = 02.
      CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                WINDOW        = 'MAIN'
           EXCEPTIONS
                ERROR_MESSAGE = 01
                OTHERS        = 02.
    Close up Form and get OTF code
      CALL FUNCTION 'END_FORM'
           EXCEPTIONS
                ERROR_MESSAGE = 01
                OTHERS        = 02.
      MOVE-CORRESPONDING ITCPO TO ITCPP.
      CALL FUNCTION 'CLOSE_FORM'
           IMPORTING
                RESULT  = ITCPP
           TABLES
                OTFDATA = OTF
           EXCEPTIONS
                OTHERS  = 1.
    Move OTF code to structure SOLI form email
      CLEAR SOLISTI1. REFRESH SOLISTI1.
      LOOP AT OTF.
        SOLISTI1-LINE = OTF.
        APPEND SOLISTI1.
      ENDLOOP.
    ENDFORM.
    Regards
    Sreeni

  • Hi guys please provide me the concepts on workflow

    hi guys,
    please provide me the concepts on workflow.
    i have no idea on workflow,
    if you have any helpfull documentation and also some scenarios where u have faced and solved those,also some real time examples.
    please help me, and also i will give points if it is helpfull.
    thanks.
    prasadnn.

    Hi Prasad
    Please find some questions related to WorkFlow
    1. Is there a good book about this subject?
    Yes, "Practical Workflow for SAP" by Rickayzen, Dart, Brennecke and Schneider. Available from SAP press at the end of July. A german translation of this workflow book is also available directly from Galileo-Press, the publisher.
    2. How do I convince my company to use workflow?
    Feedback from user groups emphasizes that although the competitive advantage gained by using workflow eclipses the financial savings, it is the financial savings that are the deciding factor when obtaining support from senior management. Projects getting the blessing at the CEO level are much easier to manage, and far more likely to reach their goal within the project time frame. So plan well, and don't neglect the business case.
    Because the following questions deal with the financial case in more detail, this section will finish by listing the competitive advantages.
    The quality of the process is assured by pushing the relevant information together with links to related transactions directly to the user. Managers don't have the time to search for information so give them what they need to reach the correct decision.
    Cycle time is reduced by pushing the process directly to the users. The users receive notification of a task immediately and can even be prioritized by the system.
    The tasks are performed consistently and diligently by the users. The workflow system pushes all the necessary information needed to perform a task, including a clear description of what has to be done, how to do it and the impact this task has on the business process for your company. At any time, the user can check the list of tasks pending and determine at a glance which are the important tasks, and which tasks can be completed the next day without any negative impact.
    The process instance is transparent. Any user can check at any time how far the process has progressed and which stage the process has reached. For example the call center can immediately see the status of a purchase order, an employee requisitioning a purchase would see at a glance if a colleague has been sitting on it for too long, the ad hoc notes made when approving an engineering change request are visible long after the request has gone into production.
    The process is flexible, allowing it to be changed on the fly without retraining everyone involved. The description accompanying the change takes care of on-the-fly process improvements.
    Deadline handing ensures that users perform the tasks within the time planned. Escalation measures ensure that the failure to meet a deadline can be corrected by other means.
    Intelligent reporting highlights the weaknesses of a process. Often there is a simple cure to such weaknesses such as reeducating the users involved in the bottleneck or providing additional information (automatically). The difficulty of a non-automated process is identifying such bottlenecks.
    The process definition is transparent. You can see at a glance how the process works and who will be selected to perform the different tasks. Think of the workflow as the process book. If you can spot the pattern and define the process without headaches, you can create a workflow definition effortlessly. However, don't forget that if a company has business processes that are erratic and lack a consistent pattern, the company is very likely to be losing a lot of money in terms of lost contracts, labor intensive administration and low customer confidence. It is my personal opinion that automating exactly this type of processes will yield the best returns, but only if you limit yourself to automating the basic skeleton of the process first. Don't get bogged down in the detailed exception handling. That can be done in the next phase once you've checked the process statistics and determined which exceptions are worth tackling.
    As with most software the reasons for automating business processes are primarily to increase the competitive edge of your company and to cut costs. Although the increase in competitively gained by radically reducing process times is by far the most insignificant gain from workflow, you should not ignore the cost savings. The cost saving calculations are needed by upper management in order to approve workflow projects. This upper management signature will be very useful in different phases of the project and cannot be underestimated.
    3. How do I calculate the cost saved by workflow?
    Calculate the cost of the manual process in terms of man hours. Don't neglect the time spent gathering information. Ask the following questions:
    Is the user forced to log into different systems, or scan through printed documentation....?
    Does a skilled user spend time on parts of a task, where less skilled (less expensive) user could do the groundwork? I.e. Can a single task be split into skilled and unskilled tasks to free the skilled worker for work where his/her skills are really needed?
    Is time spent researching the progress of a process (usually done by someone not involved in the process directly)?
    Is time spent determining who to give the task to next?
    Probably the most significant cost will the be the cost of failure?
    How often does the process fail?
    What is the real cost of failure? Loss of a contract? Loss of a customer? Law suit?
    If the failure can be rectified, how labor intensive is it?
    4. What are typical costs saved by workflow?
    A manually processed accounts payable invoice will cost about 25 USD. After workflow enabling about 15 USD (one example based on customer feedback from a user group meeting).
    5. What are typical reductions in processing time caused by workflow?
    A traditional paper based approval process involving three people will typically take seven days to complete. The automated process will take one day (results based on customer feedback).
    6. What do customers say are the strengths of SAP WebFlow?
    WebFlow is the internet functionality of SAP Business Workflow. Based on customer feedback from the various regional users groups, the main strengths of SAP Business Workflow are:
    Robust production workflow system, (upgrade continuity with the rest of the SAP system, versioning, scalability, no gluing....)
    Standard workflow templates delivered by SAP can be used out-of-the-box or tweaked to deliver the optimum business process for your company. Workflows can be up and running including training in under a day (thanks to the knowledgeware delivered as part of the template packet).
    Seamlessly integrated into the SAP environment, be it R/3, Business to Business Procurement, CRM, APO, mySAP.com.... Examples of integration are:
    Business Reporting (WIS),
    Context sensitive availability at any time through the system menu (available anytime, anywhere)
    More and more standard SAP functionality is being provided by using SAP Business Workflow so your homegrown workflows fit the landscape exactly,
    More and more workflow functionality is available directly within the SAP transaction or Web MiniApp.
    WebFlow is becoming more and more important because companies are no longer being judged by their own performance but by the combined performance of the company AND its partners. In other words it is not enough that the business processes within your company run smoothly and faster than your competitors. You have to ensure that the processes between you and your partners are also as fast, efficient and flexible as possible. WebFlow delivers this.
    7. How are users notified about their work pending?
    The users are informed by a work item which you may think of as being very like an e-mail. The difference is the work item contains intelligence and by executing the work item you will be taken to the form or SAP transaction that makes up the step in the workflow. This form or transaction could be a decision, a request for information or a request for confirmation that a particular task has been performed.
    The work item is usually accompanied by a description of what has to be done, where to refer to when assistance is needed (help desk, intranet...) and a summary of information about the business object or process which enables the operator to attack the task immediately.
    This work item can be received and executed in MS OutlookÒ, Lotus NotesÒ, mySAP Workflow MiniApp or the SAP integrated inbox. If this is not enough, the workflow system can transmit e-mail notifications directly to any mail system, informing the user of the need to log in to the SAP system to execute the task. The e-mail notification is done on a subscription basis so that users can de-subscribe from this service if they already check their work item inbox regularly.
    8. What workflow reporting is available and is it useful?
    Standard workflow reports exist which allow the administrator to check statistics such as the frequency and average duration of the workflow processes. However the real strength of the workflow reporting is that it allows reports to be configured which analyze the process statistics in combination with the data involved within the workflow process and the organizational units associated with the process. For example you can determine the average time invested in a failed contract renewal request, the time taken to create material masters in different plants or the frequency of rejected purchase requisitions on a department to department basis. Often, big reducations in cost or cycle time can be obtained without touching the workflow definitions. Reeducating a particular group of users or incorporating supplementary information in a work item description can often cause dramatic improvements on the cycle times of particularly critical subsets of the process. It is not unusual that this may have a big impact on specific products, plants or organizational units. This will show up in the WebFlow reporting in LIS or the Business Warehouse but it might not show up in traditional statistical workflow reporting. Even though the average time does not change significantly, the impact on costs and profit can be dramatic.
    9. How do I choose who to distribute the tasks to?
    A work item is assigned to one or more users. Whoever reserves or executes the task first wins and the work item vanishes from the other users' inboxes. This eliminates the need to assign the user to one single user. I.e. No need for complicated algorithms to determine which single user will receive the work item and no need to worry about what will happen when one user is ill for the week (also taken care of by sophisticated substitution mechanisms which can be linked to the SAP organizational model).
    Tasks can be assigned to an organizational unit but the strength of the workflow system is to enable business rules which select users according to the data being processed. For example, you might have one group of users associated with one quality notification type. The workflow can be configured to query the QM module directly to determine the users. You can define fallbacks using the default role associated with a task and allow agents to be specified on the fly by a supervisor.
    Tasks can be assigned to office distribution lists which is useful when you want your users to subscribe or unsubscribe to a particular task. A typical use of this would be where you have a work rote or want to reduce user maintenance to an absolute minimum. The users subscribe or unsubscribe by joining or leaving an office distribution list (one mouse click).
    10. What happens when a deadline is missed?
    This depends on your workflow definition. In the simplest case an e-mail is sent to another user by the system (typically your supervisor so watch out!). However in more sophisticated scenarios a missed deadline can redirect that path that the workflow takes. One customer uses deadlines to automatically make an approval if the deadline is missed (at about the eighth approval level!!!). This gives the user the chance to make rejections but does not force him/her to go into the system to approve the other 99.9% of the requests. In safety critical environments the workflow might trigger off preventative action when a deadline is missed or might put other processes on hold. There is no limit as to how you can use this functionality.
    11. What deadlines can be monitored?
    Many different types of deadlines can monitored. At the single workflow step level you can define deadlines which trigger when the work item has not completed within a certain time and other deadlines when no one starts working on the work item within a given time. You can specify the task deadline statically (e.g. 1 week) or dynamically (e.g. 1 week for material type A and 2 weeks for all the other materials). The offset can be related to the step (e.g. you have 1 week to complete this step) or related to the process (e.g. complete within 2 weeks of the complete process starting, irrespective of how long your colleagues have hogged the previous steps).
    Last but not least, deadlines can be set for sub-processes, which is often more important than the deadline of a single step in a workflow.
    12. How can I check the status of a workflow?
    This is one of the very cool features of SAP Business Workflow. You can usually navigate directly from the business object to check the workflow progress. For example, while viewing a purchase order you can select "workflow" from the system menu or toolbar and you will see a list of workflows related to the purchase order. Usually just one, but if you have created a few of your own and these have been triggered you will see the status of these too. And that is not all. You also see a simplified summary of all the steps that have taken place so far including who performed them, when they were executed and which ad hoc notes were attached.
    13. How are workflows triggered?
    Workflows can be triggered automatically by changes in the system or manually by an operator. Manually triggered workflows are good for processes that remedy a problem the operator has noticed or for dealing with a forms-based requests (E.g. my PC won't boot). Automatically triggered workflows are useful because the operator does not even have to be aware of the workflow's existence to trigger it. In addition to triggers embedded in transactions there are also generic triggering mechanisms such as a change in the status of a business object or a change in the HR data. Irrespective of how the workflow is triggered, it is linked to the business object as described in the previous answer and can be tracked easily. Because WebFlow is part of the basis system, this triggering is reliable and easy to implement.
    Workflows may be triggered by events but this is not essential. The event-handling makes it easy to trigger workflows from transactions and system changes without you having to make modifications. If you are creating your own report or transaction which triggers a workflow, avoid events and trigger the workflow directly with the WAPI function call. This is particularly important when triggering a workflow from outside the SAP system. This method reduces flexibility (the workflow ID is hard-coded) but increases performance if this is an issue (we're talking about 50 000 work items a day here!).
    Any exception handling workflows that are intended to be triggered manually can be triggered from the system menu when viewing the relevant transaction. The SAP system has the intelligence to suggest workflows that can be triggered manually based on the authorization of the operator and the context that the operator is working in. No additional customizing is needed here.
    14. What open interfaces are supported?
    The most significant interface supported is the Wf-XML standard from the Workflow Management Coalition. This is an independent organization of which SAP is a funding member, along with most other major workflow vendors. The Wf-XML interface is based on XML and allows workflows from different vendors to communicate with each other. A detailed description of the interface is available on the WfMCs web site at www.wfmc.org.
    15. What is Wf-XML used for?
    Although a company is far better off workflow enabling their system with SAP WebFlow when SAP software is used anywhere within the process, a collaborative process can take place between partners using different software platforms employing different workflow systems. To support SAP customers in this situation, WebFlow offers the open interface Wf-XML. This allows Business Processes enabled using different tools to communicate and control each other. Any workflow tool offering this interface can connect up with other tools that also offer this interface.
    Wf-XML is the only open interface for supporting interoperability of business processes, independent of what the business process being integrated.
    16. Where does Wf-XML come from?
    Wf-XML comes from the Workflow Management Coalition, an independent body of workflow vendors, customers and higher education establishments.
    17. How does the workflow call procedures from non-SAP systems?
    The Actional control broker integrates directly into SAP WebFlow enabling proxy objects to be called directly from the workflow step. When called, the proxy method will make a call to the outside system either as a background task or as a dialogue step. These proxy objects are generated in the SAP system using a converter which converts the objects interface (DCOM, CORBA...) to the SAP syntax. A syntax converter also lets developers view any object in any of the participating systems in the developer's preferred language.
    18. How can I get the workflow initiator information in my task?
    1) From your triggering event to the workflow, bind the event creator element to the workflow initiator element.
    2) Create a workflow container element based on USR01.
    3) Add a step based on USR01.FINDUSERFROMAGENTSTRUCTURE to convert your initiator to a USR01 object.
    4) Pass the USR01 object to each task you want to display the details.
    Mailing
    19. What differences are there between a work item and a notification mail?
    a) The work item cannot be used to notify several users.
    Mails can be routed to several users, just like work items. When a mail is sent, and one recipient reads and deletes the mail, all other recipients will still have access to their own copy in their own inbox. However, when a work item is processed by one of the recipients it will automatically disappear from all the other inboxes. So you can see that a work item is unsuitable for notifying several users.
    It is also worth noting that a mail can be forwarded in many different ways (fax, internet...) whereas the work item cannot.
    b) The work item holds up the workflow
    When the workflow sends a mail (usually as a background step) it continues with the process immediately after transmitting the mail. When a work item is generated, the workflow will not continue until the work item has been processed. This slows down the process. Occasionally this is what is intended (using the work item as an approval step without the ability to reject) but usually you will better off using mails for notifications.
    Note: You can send business objects as references with the mail either as a business object reference attached to the mail or as an URL (ABAP required).
    What is the difference between sending a mail to a recipient list compared to sending individual mails via a dynamic loop?
    Performance. Sending 1 mail to 20 recipients will cost considerably less performance than sending 20 individual mails. If the mail is sent as a SAP Office mail (as opposed to e-mail, fax...) disk space will also be a factor because the SAP office mail will only exist once in the database, with references being created for each of the recipients.
    The only time you need to consider individual mails with a dynamic loop is when the text of the mail varies from one recipient to another.
    20. How do I send a standard text as an e-mail from workflow?
    It is very easy sending standard text , which may include data from the workflow. You simply create a background step which sends the work item description. This may include variables which will be substituted when mail is sent.
    In early releases you have to create your own task based on the method SELFITEM SendTaskDescription. In later releases a wizard is available for creating the step and in release 4.6 there is even a step type which does this all for you automatically.
    Whichever path you take, there is very good online documentation describing exactly what has to be done.
    21. How do I send a complex text from the workflow?
    You may create mails using SAPscript. These mails can include conditions which are evaluated in order to determine which text blocks which are used in the mail. Workflow variables can be used in these conditions and workflow variables can be substituted into the body of the e-mail text.
    22. How do I send really complex mails from the workflow?
    If you this is not enough for you will probably want to write your own ABAP routines for generating the text and generating the attachments to go with the text.
    Use the function group SO01 which contains functions of the form SO_*_API1 which are ideal for creating your own sophisticated messages. There are plenty of advantages of how these are used within the SAP system.
    23. How do I send reports?
    There are wizards (Release 3.1) which will create workflows for you to send reports to a distribution list. You can specify whether the results should be transmitted or evaluated at the time the recipient wishes to view the report. It is usually better to send the evaluation because this allows the recipient to see the results instantaneously, without having to wait for the report to execute first.
    Deadlines
    24. How can I configure the workflow so that different types of messages are sent out to different people depending on how late the processing is?
    Follow these steps:
    1. Specify a deadline period for the step.
    2. Specify a name for the event. This adds new branch from the step.
    3. Add a new step to the branch which sends a mail message.
    4. Add another step to the branch which sends out the second deadline warning (see mail steps above). Use deadlines in this step to configure an earliest start so that the second message is not sent until a further time has elapsed.
    5. Repeat step 5 as often as you like.
    25. How can I configure the workflow so that when the deadline is missed the workflow step is simply skipped?
    This is tricky to explain but easy to implement once you know how.
    Follow these steps (in later releases there is a wizard which takes you through the steps):
    1. In the terminating events view of the workflow step activate the "obsolete" event and give it a name.
    2. Specify a deadline period for the step.
    3. Specify a name for the event. This adds new branch from the step.
    4. Add a new step to the deadline path. This step must be of type "process control".
    5. Select the control "Make step obsolete" and use the search help to specify the workflow step that has the deadline. Only steps with obsolete paths defined will be displayed (see step 1).
    26. How do I trigger a workflow with an e-mail?
    You can customize the system to call a BOR method when an external mail (fax, e-mail...) arrives in the system. You BOR method should either trigger the e-mail directly or trigger an event. To customize this user exit use the transaction SCOT.
    27. How can I make sure that user's access their tasks via the workflow and not via the menu or launch pad?
    The routing mechanism for work items uses roles and organizational assignments to determine who receives which work item. However the routing does not provide extra authorization checks based on the routing configuration. If you want to ensure that the tasks are executed within the workflow, and not via the standard transaction, service or MiniApp, then you will have to apply your own protection.
    The simplest way of doing this is to remove the standard transaction from the user's menu or Workplace role (but include it in the supervisor's role, just in case).
    If you want to allow the user to execute the task from the menu if and only if they have received the work item then you should replace the standard transaction with your own custom built transaction. Your own transaction simply calls the standard transaction but performs it's own authorization check first, based on the routing mechanism used in the workflow. Tip: Add a second (ored) authorization check to make sure that a supervisor can execute the transaction in an emergency.
    28. What is a workflow? What is a single-step task?
    A single-step task is based on an object type from the object business repository (BOR) (for example, a purchase order) and a method for the object (for example, change). A workflow can contain several single-step tasks and activities such as loops and forks. Through a workflow, you create a logical sequence for the single-step tasks. The tool for creating or changing these types of workflows (workflow template) is the Workflow Builder (transaction SWDD).
    29. What is a work item (important terms)?
    A work item is the runtime object of a workflow or of a single-step task.You can execute dialog work items with the inbox (transaction SBWP). Each workflow and single-step task started is assigned a unique number known as the work item ID.
    30. How is an event triggered from the application and a workflow then started?
    An event can be triggered from the application in three different ways:
    Directly:
    Within the application, the SWE_EVENT_CREATE function module or the SWE_EVENT_CREAT_IN_UPD_TASK function module, for example, generates an event in the update.
    With a change document:
    Change documents are written within the application when you change application objects in the update. You can link events that have the same key with these types of change documents via transaction SWEC.
    With status management:
    The SWE_EVENT_CREATE_STATUS function module triggers an event in the same way as the direct method when a status is changed. This event contains the object type (for example, purchase order), the object key (for example, purchase order 4711) and other information. Using transaction PFTC, you can assign the event to a specific workflow or single-step task. More settings are available in transaction SWE2.
    31. How are the responsible agents determined?
    You can assign agents to a single-step task in transaction PFTC. For example, you can do this using organizational units, work center roles or positions. Within a workflow pattern, you can assign specific agents for this workflow to a single-step task. The overlap between both numbers of 'possible agents' represents the number of agents ('selected agents') who have the work item in the inbox later.
    32. What is the difference of between an e-mail and a work item?
    E-mails and work items are two completely separate things. They just happen to be displayed in the same inbox. An e-mail is a message sent to one or several people. However, a work item is a runtime object of a single-step task or workflow. Consequently, a work item cannot be deleted from the inbox of a user. In this case in fact, you have to adjust the agent assignment or delete the work item as described in note 49545.
    33. PFAC no longer works for my role responsibility setup...
    Use tx: OOCU_RESP
    34. How do I transport workflow definitions and agent assignments?
    When transporting workflows, you have to differentiate between the workflow definition and the agent assignment.
    A workflow definition is a workbench request. When you save the workflow, a workflow version is created and a request written. Further information about the transport or about the status management is provided in note 378487 and in the notes mentioned there under related notes.
    However, where the agent assignment is concerned, this is a Customizing request. To allow transport of agent assignments, the value of the semantic abbreviation CORR for the TRSP group name must be empty in table T77S0.
    35. How do you debug a background workflow process?
    In your method write the following code:
    data exit.
    Do.
    if exit = 'X'.
    exit.
    endif.
    enddo.
    Run the workflow, causing an infinite loop on that step, and then go to SM50.
    Here you can debug the process.
    36.What is the Workflow basic Customizing?
    Before you can use the Workflow module, you must first execute the basic Customizing in transaction SWU3. All of the listed points should be green (the number range for customer tasks is no longer required). A detailed description of the activities is provided in the relevant information buttons. You can also execute some (but not all) of the points using the Automatic Customizing button. See the online documentation for an exact description of what happens there. The RFC destination must work correctly and the user (usually WF BATCH) should have the SAP_ALL profile.
    37.: What options do I have as a user to configure the inbox individually?
    You have the following options:
    You can create separate user-dependent or user-independent layouts so that you can adapt the displayed columns individually. You can access the function in the Workplace via an application function key.
    You can set filters to set certain criteria for individual columns or several columns simultaneously, according to which specific work items are then filtered.
    You can add dynamic columns in the layout that then display dynamic elements for certain tasks and users from the work item container. However, this is only possible if all tasks in the inbox belong to just one task. If they have several tasks in the inbox, filtering serves no useful purpose because all tasks are first completely read once. You can define these dynamic columns using transaction SWL1.
    38. What does the substitute rule system look like in the workflow?
    You have a choice of two different substitute rulings:
    Active substitute ruling (for example, for absence due to vacations): In this case, the items belonging to the absent person are automatically assigned to the substitutes inbox (in addition to his own work items).
    Passive substitution (for example, for absence due to illness): the substitute must explicitly assume the substitution and can only view the items of the absent person in this mode.
    For other questions, you must also refer to note 74000.
    39. How can users be automatically notified that new work items are available for processing?
    Unfortunately, the dialog box that informs users of new work items which appears in SAPoffice is not available within SAP Systems.
    However, the following two options are provided:
    In the Workflow Builder, you can designate the item as an express item via additional data. The user then receives a corresponding express dialog box.
    The RSWUWFML report (note 131795) is a more flexible option. This report sends an e-mail to an external Internet address to notify the user of new work items.
    40. Can I set deadlines for the latest processing of work items?
    this is where you can use deadline monitoring for work items. In the Workflow Builder, you can set dates for a requested/latest start/end date for each individual step. You must schedule the SWWDHEX job via transaction SWU3 for this. Schedule the job permanently in the production system otherwise it is difficult for the job to schedule individual deadline monitoring scenarios when workflow is heavy.
    41. Can I also execute work items with external programs such as Outlook?
    You can use the Web GUI for HTML instead of the Windows GUI. However, note that some functions do no work in the WEB GUI, due to technical restrictions in the browser. You must refer to note 487649 on this subject.
    SAP also provides interfaces which allow you to process work items with external programs such as Lotus Notes or Microsoft Outlook. Refer to notes 77099, 98408 and 454845 for details.
    Hi ,
    More stuff on WORKFLOW
    Transactions
    AWUV Wizard for event creation Definition tools -> Event creation -> Set up with wizard
    MCA1 Workflow Information System Reporting -> Workflow Information System (WIS)
    OOAW Evaluation paths
    PFAC Maintain standard roles
    PFAC_CHG Change roles Definition tools -> Standard roles -> Change
    PFAC_DEL Delete roles Definition tools -> Standard roles -> Delete
    PFAC_DIS Display roles Definition tools -> Standard roles -> Display
    PFAC_INS Create roles Definition tools -> Standard roles -> Create
    PFOM Maintain assignment to SAP organizational objects Definition tools -> SAP org. objects -> Create assignments
    PFOS Display assignment to SAP organizational objects Definition tools -> SAP org. objects -> Display assignments
    PFSO Organizational environment of a user
    PFT Maintain customer task
    PFTC General task maintenance
    PFTC_CHG Change tasks Definition tools -> Task/Task groups -> Change
    PFTC_COP Copy tasks Definition tools -> Task/Task groups -> Copy
    PFTC_DEL Delete tasks Definition tools -> Task/Task groups -> Delete
    PFTC_DIS Display tasks Definition tools -> Task/Task groups -> Display
    PFTC_INS Create tasks Definition tools -> Task/Task groups -> Create
    PFTR Standard task for transaction
    PFTS Standard task
    PFWF Maintain workflow task (customer)
    PFWS Maintain workflow template
    PPOC Create organizational plan Definition tools -> Organizational plan -> Create
    PPOM Maintain organizational plan Definition tools -> Organizational plan -> Change
    PPOS Display organizational plan Definition tools -> Organizational plan -> Display
    SWDA Ongoing Settings Administration -> Settings
    SWDC Workflow editor administration data
    SWDM Business Workflow Explorer Definition tools -> Business Workflow Explorer
    SWE2 Display and maintain event type linkage Utilities -> Events -> Type linkages
    SWE3 Display instance linkages Utilities -> Events -> Instance linkages
    SWE4 Switch event log on/off Utilities -> Events -> Event/log -> On/Off
    SWEC Link change documents to events Definition tools -> Event creation -> Change documents -> Linkage
    SWED Assignment of change document objects to object types Definition tools -> Event creation -> Change documents -> Define workflow properties
    SWEL Display event log Utilities -> Events -> Event log -> Display
    SWF3 Workflow Wizard Explorer Definition tools -> Wizards -> Workflow Wizard Explorer
    SWF4 Workflow Wizard Repository Definition tools -> Wizards -> Workflow Wizard Repository
    SWI1 Selection report for workflows Utilities -> Work item selection
    SWI2 Work item analysis Reporting -> Work item analysis
    SWI3 Workflow outbox Runtime tools -> Workflow outbox
    SWI4 Task analysis Reporting -> Task analysis
    SWI5 Workload analysis Reporting -> Workload analysis
    SWI6 Object links Runtime tools -> Object links
    SWI7 Workflow resubmission folder From Integrated Inbox or Workflow Outbox
    SWI8 Error overview Part of administration of workflow runtime system (transaction SWUF)
    SWL1 Settings for dynamic columns Customizing, part of ongoing settings
    SWLC Check tasks for agents Utilities -> Consistency check -> Organizational assignment
    SWLD Workbench for Workflow 4.0
    SWLP Copy plan version
    SWLV Maintain work item views Customizing, part of ongoing settingS
    SWLW Workbench for Workflow 3.0
    SW01 Business Object Builder Definition tools -> Business Object Builder
    SW06 Customizing object types From Business Object Builder, choose Settings -> Delegate -> System-wide
    SWU0 Event simulation Utilities -> Events -> Simulate event
    SWU2 RFC monitor Utilities -> Workflow RFC monitor
    SWU3 Customizing consistency check Utilities -> Customizing
    SWU4 Consistency check for standard tasks Utilities -> Consistency check -> Task -> Standard task
    SWU5 Consistency check for customer tasks Utilities -> Consistency check -> Task -> Customer task
    SWU6 Consistency check for workflow tasks Utilities -> Consistency check -> Task -> Workflow task
    SWU7 Consistency check for workflow templates Utilities -> Consistency check -> Task -> Workflow template
    SWU8 Switch technical trace on/off Utilities -> Technical trace -> On/off
    SWU9 Display technical trace Utilities -> Technical trace -> Display
    SWUD Diagnostic tools Utilities -> Diagnosis
    SWUE Trigger event Utilities -> Events -> Generate event
    SWUF Runtime system administration Administration -> Runtime system
    SWUG Workflow start transactions Definition tools -> Workflow start transactions
    SWUI Start workflows From the R/3 initial screen, choose Office -> Start Workflow
    SWUS Start tasks Runtime tools -> Start workflow
    SWUY Wizard for message linkage to workflow Definition tools -> Wizards -> Create "Call workflow from message"
    SWX1 Create notification of absence
    SWX2 Change notification of absence
    SWX3 Display notification of absence
    SWX4 Approve notification of absence
    SWXF Form applications: Access point Environment -> Demo examples -> Fill out form
    Reports
    RSWWWIDE – Delete work items
    RHSOBJCH to fix PD Control Tables
    Tables
    SWW_OUTBOX - Lists Workflows in outbox together with status
    SWW_CONT - Container Contents for Work Item Data Container
    SWW_CONTOB- Container Cont. for Work Item Data Container (Only Objects)
    SWWLOGHIST- History of a work item
    SWWORGTASK- Assignment of WIs to Org.Units and Tasks
    SWWUSERWI - Current Work Items Assigned to a User
    SWWWIHEAD - Header Table for all Work Item Types
    Reward poits if helpful.
    Regards,
    Amber S

  • Workflow issue plz guide

    gugys i have a training on workflow of two hours
    so i wanna do som initial preperation to ask som questions
    plz tel me
    what are the imp topics of workflow that should be covered in the session
    if u have any step by step guide
    plz send me at [email protected]
    or all kind of documents
    plz give me the links if u have
    plz help me its urgent
    thanks in advance

    Hi Anit,
    Please find some questions related to WorkFlow
    1. Is there a good book about this subject?
    Yes, "Practical Workflow for SAP" by Rickayzen, Dart, Brennecke and Schneider. Available from SAP press at the end of July. A german translation of this workflow book is also available directly from Galileo-Press, the publisher.
    2. How do I convince my company to use workflow?
    Feedback from user groups emphasizes that although the competitive advantage gained by using workflow eclipses the financial savings, it is the financial savings that are the deciding factor when obtaining support from senior management. Projects getting the blessing at the CEO level are much easier to manage, and far more likely to reach their goal within the project time frame. So plan well, and don't neglect the business case.
    Because the following questions deal with the financial case in more detail, this section will finish by listing the competitive advantages.
    The quality of the process is assured by pushing the relevant information together with links to related transactions directly to the user. Managers don't have the time to search for information so give them what they need to reach the correct decision.
    Cycle time is reduced by pushing the process directly to the users. The users receive notification of a task immediately and can even be prioritized by the system.
    The tasks are performed consistently and diligently by the users. The workflow system pushes all the necessary information needed to perform a task, including a clear description of what has to be done, how to do it and the impact this task has on the business process for your company. At any time, the user can check the list of tasks pending and determine at a glance which are the important tasks, and which tasks can be completed the next day without any negative impact.
    The process instance is transparent. Any user can check at any time how far the process has progressed and which stage the process has reached. For example the call center can immediately see the status of a purchase order, an employee requisitioning a purchase would see at a glance if a colleague has been sitting on it for too long, the ad hoc notes made when approving an engineering change request are visible long after the request has gone into production.
    The process is flexible, allowing it to be changed on the fly without retraining everyone involved. The description accompanying the change takes care of on-the-fly process improvements.
    Deadline handing ensures that users perform the tasks within the time planned. Escalation measures ensure that the failure to meet a deadline can be corrected by other means.
    Intelligent reporting highlights the weaknesses of a process. Often there is a simple cure to such weaknesses such as reeducating the users involved in the bottleneck or providing additional information (automatically). The difficulty of a non-automated process is identifying such bottlenecks.
    The process definition is transparent. You can see at a glance how the process works and who will be selected to perform the different tasks. Think of the workflow as the process book. If you can spot the pattern and define the process without headaches, you can create a workflow definition effortlessly. However, don't forget that if a company has business processes that are erratic and lack a consistent pattern, the company is very likely to be losing a lot of money in terms of lost contracts, labor intensive administration and low customer confidence. It is my personal opinion that automating exactly this type of processes will yield the best returns, but only if you limit yourself to automating the basic skeleton of the process first. Don't get bogged down in the detailed exception handling. That can be done in the next phase once you've checked the process statistics and determined which exceptions are worth tackling.
    As with most software the reasons for automating business processes are primarily to increase the competitive edge of your company and to cut costs. Although the increase in competitively gained by radically reducing process times is by far the most insignificant gain from workflow, you should not ignore the cost savings. The cost saving calculations are needed by upper management in order to approve workflow projects. This upper management signature will be very useful in different phases of the project and cannot be underestimated.
    3. How do I calculate the cost saved by workflow?
    Calculate the cost of the manual process in terms of man hours. Don't neglect the time spent gathering information. Ask the following questions:
    Is the user forced to log into different systems, or scan through printed documentation....?
    Does a skilled user spend time on parts of a task, where less skilled (less expensive) user could do the groundwork? I.e. Can a single task be split into skilled and unskilled tasks to free the skilled worker for work where his/her skills are really needed?
    Is time spent researching the progress of a process (usually done by someone not involved in the process directly)?
    Is time spent determining who to give the task to next?
    Probably the most significant cost will the be the cost of failure?
    How often does the process fail?
    What is the real cost of failure? Loss of a contract? Loss of a customer? Law suit?
    If the failure can be rectified, how labor intensive is it?
    4. What are typical costs saved by workflow?
    A manually processed accounts payable invoice will cost about 25 USD. After workflow enabling about 15 USD (one example based on customer feedback from a user group meeting).
    5. What are typical reductions in processing time caused by workflow?
    A traditional paper based approval process involving three people will typically take seven days to complete. The automated process will take one day (results based on customer feedback).
    6. What do customers say are the strengths of SAP WebFlow?
    WebFlow is the internet functionality of SAP Business Workflow. Based on customer feedback from the various regional users groups, the main strengths of SAP Business Workflow are:
    Robust production workflow system, (upgrade continuity with the rest of the SAP system, versioning, scalability, no gluing....)
    Standard workflow templates delivered by SAP can be used out-of-the-box or tweaked to deliver the optimum business process for your company. Workflows can be up and running including training in under a day (thanks to the knowledgeware delivered as part of the template packet).
    Seamlessly integrated into the SAP environment, be it R/3, Business to Business Procurement, CRM, APO, mySAP.com.... Examples of integration are:
    Business Reporting (WIS),
    Context sensitive availability at any time through the system menu (available anytime, anywhere)
    More and more standard SAP functionality is being provided by using SAP Business Workflow so your homegrown workflows fit the landscape exactly,
    More and more workflow functionality is available directly within the SAP transaction or Web MiniApp.
    WebFlow is becoming more and more important because companies are no longer being judged by their own performance but by the combined performance of the company AND its partners. In other words it is not enough that the business processes within your company run smoothly and faster than your competitors. You have to ensure that the processes between you and your partners are also as fast, efficient and flexible as possible. WebFlow delivers this.
    7. How are users notified about their work pending?
    The users are informed by a work item which you may think of as being very like an e-mail. The difference is the work item contains intelligence and by executing the work item you will be taken to the form or SAP transaction that makes up the step in the workflow. This form or transaction could be a decision, a request for information or a request for confirmation that a particular task has been performed.
    The work item is usually accompanied by a description of what has to be done, where to refer to when assistance is needed (help desk, intranet...) and a summary of information about the business object or process which enables the operator to attack the task immediately.
    This work item can be received and executed in MS OutlookÒ, Lotus NotesÒ, mySAP Workflow MiniApp or the SAP integrated inbox. If this is not enough, the workflow system can transmit e-mail notifications directly to any mail system, informing the user of the need to log in to the SAP system to execute the task. The e-mail notification is done on a subscription basis so that users can de-subscribe from this service if they already check their work item inbox regularly.
    8. What workflow reporting is available and is it useful?
    Standard workflow reports exist which allow the administrator to check statistics such as the frequency and average duration of the workflow processes. However the real strength of the workflow reporting is that it allows reports to be configured which analyze the process statistics in combination with the data involved within the workflow process and the organizational units associated with the process. For example you can determine the average time invested in a failed contract renewal request, the time taken to create material masters in different plants or the frequency of rejected purchase requisitions on a department to department basis. Often, big reducations in cost or cycle time can be obtained without touching the workflow definitions. Reeducating a particular group of users or incorporating supplementary information in a work item description can often cause dramatic improvements on the cycle times of particularly critical subsets of the process. It is not unusual that this may have a big impact on specific products, plants or organizational units. This will show up in the WebFlow reporting in LIS or the Business Warehouse but it might not show up in traditional statistical workflow reporting. Even though the average time does not change significantly, the impact on costs and profit can be dramatic.
    9. How do I choose who to distribute the tasks to?
    A work item is assigned to one or more users. Whoever reserves or executes the task first wins and the work item vanishes from the other users' inboxes. This eliminates the need to assign the user to one single user. I.e. No need for complicated algorithms to determine which single user will receive the work item and no need to worry about what will happen when one user is ill for the week (also taken care of by sophisticated substitution mechanisms which can be linked to the SAP organizational model).
    Tasks can be assigned to an organizational unit but the strength of the workflow system is to enable business rules which select users according to the data being processed. For example, you might have one group of users associated with one quality notification type. The workflow can be configured to query the QM module directly to determine the users. You can define fallbacks using the default role associated with a task and allow agents to be specified on the fly by a supervisor.
    Tasks can be assigned to office distribution lists which is useful when you want your users to subscribe or unsubscribe to a particular task. A typical use of this would be where you have a work rote or want to reduce user maintenance to an absolute minimum. The users subscribe or unsubscribe by joining or leaving an office distribution list (one mouse click).
    10. What happens when a deadline is missed?
    This depends on your workflow definition. In the simplest case an e-mail is sent to another user by the system (typically your supervisor so watch out!). However in more sophisticated scenarios a missed deadline can redirect that path that the workflow takes. One customer uses deadlines to automatically make an approval if the deadline is missed (at about the eighth approval level!!!). This gives the user the chance to make rejections but does not force him/her to go into the system to approve the other 99.9% of the requests. In safety critical environments the workflow might trigger off preventative action when a deadline is missed or might put other processes on hold. There is no limit as to how you can use this functionality.
    11. What deadlines can be monitored?
    Many different types of deadlines can monitored. At the single workflow step level you can define deadlines which trigger when the work item has not completed within a certain time and other deadlines when no one starts working on the work item within a given time. You can specify the task deadline statically (e.g. 1 week) or dynamically (e.g. 1 week for material type A and 2 weeks for all the other materials). The offset can be related to the step (e.g. you have 1 week to complete this step) or related to the process (e.g. complete within 2 weeks of the complete process starting, irrespective of how long your colleagues have hogged the previous steps).
    Last but not least, deadlines can be set for sub-processes, which is often more important than the deadline of a single step in a workflow.
    12. How can I check the status of a workflow?
    This is one of the very cool features of SAP Business Workflow. You can usually navigate directly from the business object to check the workflow progress. For example, while viewing a purchase order you can select "workflow" from the system menu or toolbar and you will see a list of workflows related to the purchase order. Usually just one, but if you have created a few of your own and these have been triggered you will see the status of these too. And that is not all. You also see a simplified summary of all the steps that have taken place so far including who performed them, when they were executed and which ad hoc notes were attached.
    13. How are workflows triggered?
    Workflows can be triggered automatically by changes in the system or manually by an operator. Manually triggered workflows are good for processes that remedy a problem the operator has noticed or for dealing with a forms-based requests (E.g. my PC won't boot). Automatically triggered workflows are useful because the operator does not even have to be aware of the workflow's existence to trigger it. In addition to triggers embedded in transactions there are also generic triggering mechanisms such as a change in the status of a business object or a change in the HR data. Irrespective of how the workflow is triggered, it is linked to the business object as described in the previous answer and can be tracked easily. Because WebFlow is part of the basis system, this triggering is reliable and easy to implement.
    Workflows may be triggered by events but this is not essential. The event-handling makes it easy to trigger workflows from transactions and system changes without you having to make modifications. If you are creating your own report or transaction which triggers a workflow, avoid events and trigger the workflow directly with the WAPI function call. This is particularly important when triggering a workflow from outside the SAP system. This method reduces flexibility (the workflow ID is hard-coded) but increases performance if this is an issue (we're talking about 50 000 work items a day here!).
    Any exception handling workflows that are intended to be triggered manually can be triggered from the system menu when viewing the relevant transaction. The SAP system has the intelligence to suggest workflows that can be triggered manually based on the authorization of the operator and the context that the operator is working in. No additional customizing is needed here.
    14. What open interfaces are supported?
    The most significant interface supported is the Wf-XML standard from the Workflow Management Coalition. This is an independent organization of which SAP is a funding member, along with most other major workflow vendors. The Wf-XML interface is based on XML and allows workflows from different vendors to communicate with each other. A detailed description of the interface is available on the WfMCs web site at www.wfmc.org.
    15. What is Wf-XML used for?
    Although a company is far better off workflow enabling their system with SAP WebFlow when SAP software is used anywhere within the process, a collaborative process can take place between partners using different software platforms employing different workflow systems. To support SAP customers in this situation, WebFlow offers the open interface Wf-XML. This allows Business Processes enabled using different tools to communicate and control each other. Any workflow tool offering this interface can connect up with other tools that also offer this interface.
    Wf-XML is the only open interface for supporting interoperability of business processes, independent of what the business process being integrated.
    16. Where does Wf-XML come from?
    Wf-XML comes from the Workflow Management Coalition, an independent body of workflow vendors, customers and higher education establishments.
    17. How does the workflow call procedures from non-SAP systems?
    The Actional control broker integrates directly into SAP WebFlow enabling proxy objects to be called directly from the workflow step. When called, the proxy method will make a call to the outside system either as a background task or as a dialogue step. These proxy objects are generated in the SAP system using a converter which converts the objects interface (DCOM, CORBA...) to the SAP syntax. A syntax converter also lets developers view any object in any of the participating systems in the developer's preferred language.
    18. How can I get the workflow initiator information in my task?
    1) From your triggering event to the workflow, bind the event creator element to the workflow initiator element.
    2) Create a workflow container element based on USR01.
    3) Add a step based on USR01.FINDUSERFROMAGENTSTRUCTURE to convert your initiator to a USR01 object.
    4) Pass the USR01 object to each task you want to display the details.
    Mailing
    19. What differences are there between a work item and a notification mail?
    a) The work item cannot be used to notify several users.
    Mails can be routed to several users, just like work items. When a mail is sent, and one recipient reads and deletes the mail, all other recipients will still have access to their own copy in their own inbox. However, when a work item is processed by one of the recipients it will automatically disappear from all the other inboxes. So you can see that a work item is unsuitable for notifying several users.
    It is also worth noting that a mail can be forwarded in many different ways (fax, internet...) whereas the work item cannot.
    b) The work item holds up the workflow
    When the workflow sends a mail (usually as a background step) it continues with the process immediately after transmitting the mail. When a work item is generated, the workflow will not continue until the work item has been processed. This slows down the process. Occasionally this is what is intended (using the work item as an approval step without the ability to reject) but usually you will better off using mails for notifications.
    Note: You can send business objects as references with the mail either as a business object reference attached to the mail or as an URL (ABAP required).
    What is the difference between sending a mail to a recipient list compared to sending individual mails via a dynamic loop?
    Performance. Sending 1 mail to 20 recipients will cost considerably less performance than sending 20 individual mails. If the mail is sent as a SAP Office mail (as opposed to e-mail, fax...) disk space will also be a factor because the SAP office mail will only exist once in the database, with references being created for each of the recipients.
    The only time you need to consider individual mails with a dynamic loop is when the text of the mail varies from one recipient to another.
    20. How do I send a standard text as an e-mail from workflow?
    It is very easy sending standard text , which may include data from the workflow. You simply create a background step which sends the work item description. This may include variables which will be substituted when mail is sent.
    In early releases you have to create your own task based on the method SELFITEM SendTaskDescription. In later releases a wizard is available for creating the step and in release 4.6 there is even a step type which does this all for you automatically.
    Whichever path you take, there is very good online documentation describing exactly what has to be done.
    21. How do I send a complex text from the workflow?
    You may create mails using SAPscript. These mails can include conditions which are evaluated in order to determine which text blocks which are used in the mail. Workflow variables can be used in these conditions and workflow variables can be substituted into the body of the e-mail text.
    22. How do I send really complex mails from the workflow?
    If you this is not enough for you will probably want to write your own ABAP routines for generating the text and generating the attachments to go with the text.
    Use the function group SO01 which contains functions of the form SO_*_API1 which are ideal for creating your own sophisticated messages. There are plenty of advantages of how these are used within the SAP system.
    23. How do I send reports?
    There are wizards (Release 3.1) which will create workflows for you to send reports to a distribution list. You can specify whether the results should be transmitted or evaluated at the time the recipient wishes to view the report. It is usually better to send the evaluation because this allows the recipient to see the results instantaneously, without having to wait for the report to execute first.
    Deadlines
    24. How can I configure the workflow so that different types of messages are sent out to different people depending on how late the processing is?
    Follow these steps:
    1. Specify a deadline period for the step.
    2. Specify a name for the event. This adds new branch from the step.
    3. Add a new step to the branch which sends a mail message.
    4. Add another step to the branch which sends out the second deadline warning (see mail steps above). Use deadlines in this step to configure an earliest start so that the second message is not sent until a further time has elapsed.
    5. Repeat step 5 as often as you like.
    25. How can I configure the workflow so that when the deadline is missed the workflow step is simply skipped?
    This is tricky to explain but easy to implement once you know how.
    Follow these steps (in later releases there is a wizard which takes you through the steps):
    1. In the terminating events view of the workflow step activate the "obsolete" event and give it a name.
    2. Specify a deadline period for the step.
    3. Specify a name for the event. This adds new branch from the step.
    4. Add a new step to the deadline path. This step must be of type "process control".
    5. Select the control "Make step obsolete" and use the search help to specify the workflow step that has the deadline. Only steps with obsolete paths defined will be displayed (see step 1).
    26. How do I trigger a workflow with an e-mail?
    You can customize the system to call a BOR method when an external mail (fax, e-mail...) arrives in the system. You BOR method should either trigger the e-mail directly or trigger an event. To customize this user exit use the transaction SCOT.
    27. How can I make sure that user's access their tasks via the workflow and not via the menu or launch pad?
    The routing mechanism for work items uses roles and organizational assignments to determine who receives which work item. However the routing does not provide extra authorization checks based on the routing configuration. If you want to ensure that the tasks are executed within the workflow, and not via the standard transaction, service or MiniApp, then you will have to apply your own protection.
    The simplest way of doing this is to remove the standard transaction from the user's menu or Workplace role (but include it in the supervisor's role, just in case).
    If you want to allow the user to execute the task from the menu if and only if they have received the work item then you should replace the standard transaction with your own custom built transaction. Your own transaction simply calls the standard transaction but performs it's own authorization check first, based on the routing mechanism used in the workflow. Tip: Add a second (ored) authorization check to make sure that a supervisor can execute the transaction in an emergency.
    28. What is a workflow? What is a single-step task?
    A single-step task is based on an object type from the object business repository (BOR) (for example, a purchase order) and a method for the object (for example, change). A workflow can contain several single-step tasks and activities such as loops and forks. Through a workflow, you create a logical sequence for the single-step tasks. The tool for creating or changing these types of workflows (workflow template) is the Workflow Builder (transaction SWDD).
    29. What is a work item (important terms)?
    A work item is the runtime object of a workflow or of a single-step task.You can execute dialog work items with the inbox (transaction SBWP). Each workflow and single-step task started is assigned a unique number known as the work item ID.
    30. How is an event triggered from the application and a workflow then started?
    An event can be triggered from the application in three different ways:
    Directly:
    Within the application, the SWE_EVENT_CREATE function module or the SWE_EVENT_CREAT_IN_UPD_TASK function module, for example, generates an event in the update.
    With a change document:
    Change documents are written within the application when you change application objects in the update. You can link events that have the same key with these types of change documents via transaction SWEC.
    With status management:
    The SWE_EVENT_CREATE_STATUS function module triggers an event in the same way as the direct method when a status is changed. This event contains the object type (for example, purchase order), the object key (for example, purchase order 4711) and other information. Using transaction PFTC, you can assign the event to a specific workflow or single-step task. More settings are available in transaction SWE2.
    31. How are the responsible agents determined?
    You can assign agents to a single-step task in transaction PFTC. For example, you can do this using organizational units, work center roles or positions. Within a workflow pattern, you can assign specific agents for this workflow to a single-step task. The overlap between both numbers of 'possible agents' represents the number of agents ('selected agents') who have the work item in the inbox later.
    32. What is the difference of between an e-mail and a work item?
    E-mails and work items are two completely separate things. They just happen to be displayed in the same inbox. An e-mail is a message sent to one or several people. However, a work item is a runtime object of a single-step task or workflow. Consequently, a work item cannot be deleted from the inbox of a user. In this case in fact, you have to adjust the agent assignment or delete the work item as described in note 49545.
    33. PFAC no longer works for my role responsibility setup...
    Use tx: OOCU_RESP
    34. How do I transport workflow definitions and agent assignments?
    When transporting workflows, you have to differentiate between the workflow definition and the agent assignment.
    A workflow definition is a workbench request. When you save the workflow, a workflow version is created and a request written. Further information about the transport or about the status management is provided in note 378487 and in the notes mentioned there under related notes.
    However, where the agent assignment is concerned, this is a Customizing request. To allow transport of agent assignments, the value of the semantic abbreviation CORR for the TRSP group name must be empty in table T77S0.
    35. How do you debug a background workflow process?
    In your method write the following code:
    data exit.
    Do.
    if exit = 'X'.
    exit.
    endif.
    enddo.
    Run the workflow, causing an infinite loop on that step, and then go to SM50.
    Here you can debug the process.
    36.What is the Workflow basic Customizing?
    Before you can use the Workflow module, you must first execute the basic Customizing in transaction SWU3. All of the listed points should be green (the number range for customer tasks is no longer required). A detailed description of the activities is provided in the relevant information buttons. You can also execute some (but not all) of the points using the Automatic Customizing button. See the online documentation for an exact description of what happens there. The RFC destination must work correctly and the user (usually WF BATCH) should have the SAP_ALL profile.
    37.: What options do I have as a user to configure the inbox individually?
    You have the following options:
    You can create separate user-dependent or user-independent layouts so that you can adapt the displayed columns individually. You can access the function in the Workplace via an application function key.
    You can set filters to set certain criteria for individual columns or several columns simultaneously, according to which specific work items are then filtered.
    You can add dynamic columns in the layout that then display dynamic elements for certain tasks and users from the work item container. However, this is only possible if all tasks in the inbox belong to just one task. If they have several tasks in the inbox, filtering serves no useful purpose because all tasks are first completely read once. You can define these dynamic columns using transaction SWL1.
    38. What does the substitute rule system look like in the workflow?
    You have a choice of two different substitute rulings:
    Active substitute ruling (for example, for absence due to vacations): In this case, the items belonging to the absent person are automatically assigned to the substitutes inbox (in addition to his own work items).
    Passive substitution (for example, for absence due to illness): the substitute must explicitly assume the substitution and can only view the items of the absent person in this mode.
    For other questions, you must also refer to note 74000.
    39. How can users be automatically notified that new work items are available for processing?
    Unfortunately, the dialog box that informs users of new work items which appears in SAPoffice is not available within SAP Systems.
    However, the following two options are provided:
    In the Workflow Builder, you can designate the item as an express item via additional data. The user then receives a corresponding express dialog box.
    The RSWUWFML report (note 131795) is a more flexible option. This report sends an e-mail to an external Internet address to notify the user of new work items.
    40. Can I set deadlines for the latest processing of work items?
    this is where you can use deadline monitoring for work items. In the Workflow Builder, you can set dates for a requested/latest start/end date for each individual step. You must schedule the SWWDHEX job via transaction SWU3 for this. Schedule the job permanently in the production system otherwise it is difficult for the job to schedule individual deadline monitoring scenarios when workflow is heavy.
    41. Can I also execute work items with external programs such as Outlook?
    You can use the Web GUI for HTML instead of the Windows GUI. However, note that some functions do no work in the WEB GUI, due to technical restrictions in the browser. You must refer to note 487649 on this subject.
    SAP also provides interfaces which allow you to process work items with external programs such as Lotus Notes or Microsoft Outlook. Refer to notes 77099, 98408 and 454845 for details.
    More stuff on WORKFLOW
    Transactions
    AWUV Wizard for event creation Definition tools -> Event creation -> Set up with wizard
    MCA1 Workflow Information System Reporting -> Workflow Information System (WIS)
    OOAW Evaluation paths
    PFAC Maintain standard roles
    PFAC_CHG Change roles Definition tools -> Standard roles -> Change
    PFAC_DEL Delete roles Definition tools -> Standard roles -> Delete
    PFAC_DIS Display roles Definition tools -> Standard roles -> Display
    PFAC_INS Create roles Definition tools -> Standard roles -> Create
    PFOM Maintain assignment to SAP organizational objects Definition tools -> SAP org. objects -> Create assignments
    PFOS Display assignment to SAP organizational objects Definition tools -> SAP org. objects -> Display assignments
    PFSO Organizational environment of a user
    PFT Maintain customer task
    PFTC General task maintenance
    PFTC_CHG Change tasks Definition tools -> Task/Task groups -> Change
    PFTC_COP Copy tasks Definition tools -> Task/Task groups -> Copy
    PFTC_DEL Delete tasks Definition tools -> Task/Task groups -> Delete
    PFTC_DIS Display tasks Definition tools -> Task/Task groups -> Display
    PFTC_INS Create tasks Definition tools -> Task/Task groups -> Create
    PFTR Standard task for transaction
    PFTS Standard task
    PFWF Maintain workflow task (customer)
    PFWS Maintain workflow template
    PPOC Create organizational plan Definition tools -> Organizational plan -> Create
    PPOM Maintain organizational plan Definition tools -> Organizational plan -> Change
    PPOS Display organizational plan Definition tools -> Organizational plan -> Display
    SWDA Ongoing Settings Administration -> Settings
    SWDC Workflow editor administration data
    SWDM Business Workflow Explorer Definition tools -> Business Workflow Explorer
    SWE2 Display and maintain event type linkage Utilities -> Events -> Type linkages
    SWE3 Display instance linkages Utilities -> Events -> Instance linkages
    SWE4 Switch event log on/off Utilities -> Events -> Event/log -> On/Off
    SWEC Link change documents to events Definition tools -> Event creation -> Change documents -> Linkage
    SWED Assignment of change document objects to object types Definition tools -> Event creation -> Change documents -> Define workflow properties
    SWEL Display event log Utilities -> Events -> Event log -> Display
    SWF3 Workflow Wizard Explorer Definition tools -> Wizards -> Workflow Wizard Explorer
    SWF4 Workflow Wizard Repository Definition tools -> Wizards -> Workflow Wizard Repository
    SWI1 Selection report for workflows Utilities -> Work item selection
    SWI2 Work item analysis Reporting -> Work item analysis
    SWI3 Workflow outbox Runtime tools -> Workflow outbox
    SWI4 Task analysis Reporting -> Task analysis
    SWI5 Workload analysis Reporting -> Workload analysis
    SWI6 Object links Runtime tools -> Object links
    SWI7 Workflow resubmission folder From Integrated Inbox or Workflow Outbox
    SWI8 Error overview Part of administration of workflow runtime system (transaction SWUF)
    SWL1 Settings for dynamic columns Customizing, part of ongoing settings
    SWLC Check tasks for agents Utilities -> Consistency check -> Organizational assignment
    SWLD Workbench for Workflow 4.0
    SWLP Copy plan version
    SWLV Maintain work item views Customizing, part of ongoing settingS
    SWLW Workbench for Workflow 3.0
    SW01 Business Object Builder Definition tools -> Business Object Builder
    SW06 Customizing object types From Business Object Builder, choose Settings -> Delegate -> System-wide
    SWU0 Event simulation Utilities -> Events -> Simulate event
    SWU2 RFC monitor Utilities -> Workflow RFC monitor
    SWU3 Customizing consistency check Utilities -> Customizing
    SWU4 Consistency check for standard tasks Utilities -> Consistency check -> Task -> Standard task
    SWU5 Consistency check for customer tasks Utilities -> Consistency check -> Task -> Customer task
    SWU6 Consistency check for workflow tasks Utilities -> Consistency check -> Task -> Workflow task
    SWU7 Consistency check for workflow templates Utilities -> Consistency check -> Task -> Workflow template
    SWU8 Switch technical trace on/off Utilities -> Technical trace -> On/off
    SWU9 Display technical trace Utilities -> Technical trace -> Display
    SWUD Diagnostic tools Utilities -> Diagnosis
    SWUE Trigger event Utilities -> Events -> Generate event
    SWUF Runtime system administration Administration -> Runtime system
    SWUG Workflow start transactions Definition tools -> Workflow start transactions
    SWUI Start workflows From the R/3 initial screen, choose Office -> Start Workflow
    SWUS Start tasks Runtime tools -> Start workflow
    SWUY Wizard for message linkage to workflow Definition tools -> Wizards -> Create "Call workflow from message"
    SWX1 Create notification of absence
    SWX2 Change notification of absence
    SWX3 Display notification of absence
    SWX4 Approve notification of absence
    SWXF Form applications: Access point Environment -> Demo examples -> Fill out form
    Reports
    RSWWWIDE – Delete work items
    RHSOBJCH to fix PD Control Tables
    Tables
    SWW_OUTBOX - Lists Workflows in outbox together with status
    SWW_CONT - Container Contents for Work Item Data Container
    SWW_CONTOB- Container Cont. for Work Item Data Container (Only Objects)
    SWWLOGHIST- History of a work item
    SWWORGTASK- Assignment of WIs to Org.Units and Tasks
    SWWUSERWI - Current Work Items Assigned to a User
    SWWWIHEAD - Header Table for all Work Item Types
    Reward poits if helpful.
    Regards,
    Amber S

  • Smartform/Sap script output to Text file/PDF/WORD

    Hi,
    I need to download/transfer the output of smartforms/sap script to text file/pdf file or word file.How do i do that?
    Do I need to create a new output device?
    thnx in advance
    chirantan

    Hi,
    Go through the following Code
    Mail a sapscript
    SAPscript: Autotmatically e-mail as PDF
    How to convert sapscript(Purchage order) inot pdf format & send in  mail
    Check the following Code
    REPORT ZRICH_0003.
    DATA: ITCPO LIKE ITCPO,
          TAB_LINES LIKE SY-TABIX.
    Variables for EMAIL functionality
    DATA: MAILDATA   LIKE SODOCCHGI1.
    DATA: MAILPACK   LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE.
    DATA: MAILHEAD   LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE.
    DATA: MAILBIN    LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
    DATA: MAILTXT    LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
    DATA: MAILREC    LIKE SOMLREC90 OCCURS 0  WITH HEADER LINE.
    DATA: SOLISTI1   LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.
    PERFORM SEND_FORM_VIA_EMAIL.
          FORM  SEND_FORM_VIA_EMAIL                                      *
    FORM  SEND_FORM_VIA_EMAIL.
      CLEAR:    MAILDATA, MAILTXT, MAILBIN, MAILPACK, MAILHEAD, MAILREC.
      REFRESH:  MAILTXT, MAILBIN, MAILPACK, MAILHEAD, MAILREC.
    Creation of the document to be sent File Name
      MAILDATA-OBJ_NAME = 'TEST'.
    Mail Subject
      MAILDATA-OBJ_DESCR = 'Subject'.
    Mail Contents
      MAILTXT-LINE = 'Here is your file'.
      APPEND MAILTXT.
    Prepare Packing List
      PERFORM PREPARE_PACKING_LIST.
    Set recipient - email address here!!!
      MAILREC-RECEIVER = '[email protected]'.
      MAILREC-REC_TYPE  = 'U'.
      APPEND MAILREC.
    Sending the document
      CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
           EXPORTING
                DOCUMENT_DATA              = MAILDATA
                PUT_IN_OUTBOX              = ' '
           TABLES
                PACKING_LIST               = MAILPACK
                OBJECT_HEADER              = MAILHEAD
                CONTENTS_BIN               = MAILBIN
                CONTENTS_TXT               = MAILTXT
                RECEIVERS                  = MAILREC
           EXCEPTIONS
                TOO_MANY_RECEIVERS         = 1
                DOCUMENT_NOT_SENT          = 2
                OPERATION_NO_AUTHORIZATION = 4
                OTHERS                     = 99.
    ENDFORM.
         Form  PREPARE_PACKING_LIST
    FORM PREPARE_PACKING_LIST.
      CLEAR:    MAILPACK, MAILBIN, MAILHEAD.
      REFRESH:  MAILPACK, MAILBIN, MAILHEAD.
      DESCRIBE TABLE MAILTXT LINES TAB_LINES.
      READ TABLE MAILTXT INDEX TAB_LINES.
      MAILDATA-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + STRLEN( MAILTXT ).
    Creation of the entry for the compressed document
      CLEAR MAILPACK-TRANSF_BIN.
      MAILPACK-HEAD_START = 1.
      MAILPACK-HEAD_NUM = 0.
      MAILPACK-BODY_START = 1.
      MAILPACK-BODY_NUM = TAB_LINES.
      MAILPACK-DOC_TYPE = 'RAW'.
      APPEND MAILPACK.
    Creation of the document attachment
    This form gets the OTF code from the SAPscript form.
    If you already have your OTF code, I believe that you may
    be able to skip this form.  just do the following code, looping thru
    your SOLISTI1 and updating MAILBIN.
      PERFORM GET_OTF_CODE.
      LOOP AT SOLISTI1.
        MOVE-CORRESPONDING SOLISTI1 TO MAILBIN.
        APPEND MAILBIN.
      ENDLOOP.
      DESCRIBE TABLE MAILBIN LINES TAB_LINES.
      MAILHEAD = 'TEST.OTF'.
      APPEND MAILHEAD.
    Creation of the entry for the compressed attachment
      MAILPACK-TRANSF_BIN = 'X'.
      MAILPACK-HEAD_START = 1.
      MAILPACK-HEAD_NUM = 1.
      MAILPACK-BODY_START = 1.
      MAILPACK-BODY_NUM = TAB_LINES.
      MAILPACK-DOC_TYPE = 'OTF'.
      MAILPACK-OBJ_NAME = 'TEST'.
      MAILPACK-OBJ_DESCR = 'Subject'.
      MAILPACK-DOC_SIZE = TAB_LINES * 255.
      APPEND MAILPACK.
    ENDFORM.
         Form  GET_OTF_CODE
    FORM  GET_OTF_CODE.
      DATA: BEGIN OF OTF OCCURS 0.
              INCLUDE STRUCTURE ITCOO .
      DATA: END OF OTF.
      DATA: ITCPO LIKE ITCPO.
      DATA: ITCPP LIKE ITCPP.
      CLEAR ITCPO.
      ITCPO-TDGETOTF = 'X'.
    Start writing OTF code
      CALL FUNCTION 'OPEN_FORM'
           EXPORTING
                FORM     = 'ZTEST_FORM'
                LANGUAGE = SY-LANGU
                OPTIONS  = ITCPO
                DIALOG   = ' '
           EXCEPTIONS
                OTHERS   = 1.
      CALL FUNCTION 'START_FORM'
           EXCEPTIONS
                ERROR_MESSAGE = 01
                OTHERS        = 02.
      CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                WINDOW        = 'MAIN'
           EXCEPTIONS
                ERROR_MESSAGE = 01
                OTHERS        = 02.
    Close up Form and get OTF code
      CALL FUNCTION 'END_FORM'
           EXCEPTIONS
                ERROR_MESSAGE = 01
                OTHERS        = 02.
      MOVE-CORRESPONDING ITCPO TO ITCPP.
      CALL FUNCTION 'CLOSE_FORM'
           IMPORTING
                RESULT  = ITCPP
           TABLES
                OTFDATA = OTF
           EXCEPTIONS
                OTHERS  = 1.
    Move OTF code to structure SOLI form email
      CLEAR SOLISTI1. REFRESH SOLISTI1.
      LOOP AT OTF.
        SOLISTI1-LINE = OTF.
        APPEND SOLISTI1.
      ENDLOOP.
    ENDFORM.
    Regards
    Sreeni

Maybe you are looking for