Saturday, May 9, 2015

Update workitem id in z table using program exit


* WI_CONTEXT Instance Attribute Private Type Ref To IF_WAPI_WORKITEM_CONTEXT
* PROCESS_STATUS Instance Attribute Private Type STRING

  DATA: l_s_wihead TYPE swr_wihdr,
        l_wa_itab TYPE zwffi_mon,
        l_swfdname TYPE swfdname VALUE 'V_FIPP'.


  DATA: l_bukrs TYPE bkpf-bukrs,
        l_belnr TYPE bkpf-belnr,
        l_gjahr TYPE bkpf-gjahr.

  DATA: l_tmp TYPE REF TO if_swf_ifs_parameter_container.

  DATA: l_zwf_cl_fi TYPE swotobjid.



  DATA: l_process_id TYPE swwwihead,
        l_wi_id TYPE sww_wiid.


  CALL METHOD wi_context->get_wf_container "ok
    RECEIVING
      re_container = l_tmp.


  CALL METHOD l_tmp->get
    EXPORTING
      name  = l_swfdname
    IMPORTING
      value = l_zwf_cl_fi.

  l_bukrs = l_zwf_cl_fi-objkey+0(4).
  l_belnr = l_zwf_cl_fi-objkey+4(10).
  l_gjahr = l_zwf_cl_fi-objkey+14(4).

**Get work item ID
  CALL METHOD wi_context->get_workitem_id
    RECEIVING
      re_workitem = l_wi_id.

  IF sy-subrc = 0.
    UPDATE zwffi_mon SET zzwf_id = l_wi_id
    WHERE bukrs = l_bukrs
    AND   belnr = l_belnr
    AND   gjahr = l_gjahr.
  ENDIF.

Friday, January 23, 2015

Utility to download all programs in a package

&--------------------------------------------------------------------*
*& Program To Download All The Programs Present In A Package (Dev. Class) To Desktop
*&--------------------------------------------------------------------*
REPORT  z_downloadall_to_desktop.
***********************************************************************
*                           Table declaration                         *
***********************************************************************
TABLES: tadir.
***********************************************************************
*                           Data declaration                          *
***********************************************************************
TYPES: abapline(255) TYPE c.
TYPES: BEGIN OF ty_reposit,
         pgmid    TYPE tadir-pgmid,
         object   TYPE tadir-object,
         obj_name TYPE tadir-obj_name,
         devclass TYPE tadir-devclass,
      END OF ty_reposit.
DATA: it_reposit TYPE STANDARD TABLE OF ty_reposit,
      wa_reposit TYPE ty_reposit.
DATA: it_repsrc TYPE STANDARD TABLE OF abapline,
      wa_repsrc TYPE abapline.
DATA: prog(60)    TYPE c,
      mc_filename TYPE rlgrap-filename,
      filename    TYPE string.
***********************************************************************
*                           Selection Screen                          *
***********************************************************************
PARAMETERS: p_dev TYPE tadir-devclass.                    "Package Name
*****Program Logic
SELECT pgmid
       object
       obj_name
       devclass
  FROM tadir
  INTO TABLE it_reposit
  WHERE pgmid    = 'R3TR' AND
        object   = 'PROG' AND
        devclass = p_dev.

IF sy-subrc NE 0.
  MESSAGE s001(00) WITH 'No programs available in the given package'.
  EXIT.
ENDIF.
LOOP AT it_reposit INTO wa_reposit.
  prog = wa_reposit-obj_name.
  READ REPORT prog INTO it_repsrc.
  CONCATENATE 'C:\Documents and Settings\Administrator\Desktop\My ABAP Programs\Report'
              prog
              '.txt'
         INTO mc_filename.
  filename = mc_filename.
*****Function module for download files into local system
  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
      filename                = filename
    TABLES
      data_tab                = it_repsrc
    EXCEPTIONS
      file_write_error        = 1
      no_batch                = 2
      gui_refuse_filetransfer = 3
      invalid_type            = 4
      no_authority            = 5
      unknown_error           = 6
      header_not_allowed      = 7
      separator_not_allowed   = 8
      filesize_not_allowed    = 9
      header_too_long         = 10
      dp_error_create         = 11
      dp_error_send           = 12
      dp_error_write          = 13
      unknown_dp_error        = 14
      access_denied           = 15
      dp_out_of_memory        = 16
      disk_full               = 17
      dp_timeout              = 18
      file_not_found          = 19
      dataprovider_exception  = 20
      control_flush_error     = 21
      OTHERS                  = 22.
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
  CLEAR prog.
  CLEAR wa_repsrc.
ENDLOOP.
*****After download all the programs to intimate user.
MESSAGE S001(00) WITH 'Check your folder for the Programs downloaded'.