Shared Top Border

Enterprise Resource
Planning Portal

 

Advertise | Founder BLOG

ERPGenie.COM ABAP Tips and Tricks Database

THE ultimate
ERP website

 

Forums | Vote for us |

Google    Other Search Options

Login

Login to view more content!!!





Lost Password?
No account yet? Register

Registered Access

Poll

What is your relationship with SAP?
 
Home
Changing an Idoc’s status with an Excel upload PDF Print E-mail
User Rating: / 2
PoorBest 
Written by Kevin Wilson   
Tuesday, 13 February 2007

The following report takes an Excel spreadsheet (maximum 2000 rows) with Idoc number in column A and nothing else, uploads it and processes them with a new Idoc status that is entered as input when running the program.

Main Program

Main program

*&---------------------------------------------------------------------*

*& Report  Z_IDOC_STATUS_CHANGE                                        *

*&---------------------------------------------------------------------*

*& AUTHOR: Kevin Wilson                                                *

*& DESCRIPTION: Reset Idoc statuses by uploading spreadsheet of IDocs  *

*&---------------------------------------------------------------------*

 

report  z_idoc_status_change message-id zedi.

*--- INCLUDES ---------------------------------------------------------*

include z_idoc_status_change_data.

include z_idoc_status_change_forms.

 

*--- SELECTION OPTIONS ------------------------------------------------*

selection-screen begin of block b1 with frame title text-001.

parameters: filename like sapb-sappfad.

selection-screen skip.

 

selection-screen begin of block b2 with frame title text-002.

parameters: status   like edidc-status default '52',

            msgty    like edids-statyp default 'I',

            msgid    like edids-stamid default 'ZEDI',

            msgno    like edids-stamno default '029',

            msgv1    like edids-stapa1 default sy-uname,

            msgv2    like edids-stapa2 default sy-datum,

            msgv3    like edids-stapa3,

            msgv4    like edids-stapa4.

selection-screen end of block b2.

selection-screen end of block b1.

 

*--- Initialization ---------------------------------------------------*

initialization.

  filename = 'C:\IDocs.xls'.

 

*--- START OF SELECTION TO DATABASE -----------------------------------*

start-of-selection.

 

* Check for XLS extension

  if not filename cs '.XLS'.

 

* You wish to upload an Excel file &. It must have extension .XLS

    message i078 with filename.

    exit.

 

  else.

 

    clear: return.

    perform upload_excel tables itab_idocs

                         using  filename

                         changing return.

    if return is initial.

 

* Confirm action

      clear t_answer.

      call function 'POPUP_TO_CONFIRM'

           exporting

                titlebar              = text-t01

                text_question         = text-t02

                text_button_1         = 'Yes'(t03)

                text_button_2         = 'No'(t04)

                default_button        = '2'

                display_cancel_button = 'X'

           importing

                answer                = t_answer

           exceptions

                text_not_found        = 1

                others                = 2.

 

      if sy-subrc <> 0.

 

        message id sy-msgid type sy-msgty number sy-msgno

                with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

 

      else.

 

        if t_answer = '1'.   "Yes

 

          format color col_positive.

          write: /5 'Choose to continue.'.

          format color off.

          perform process_idocs tables itab_idocs

                                using  status msgty msgid msgno

                                       msgv1  msgv2 msgv3 msgv4.

 

        elseif t_answer = '2'.   "No

 

          format color col_negative.

          write: /5 'Choose not to continue. No records changed'.

          format color off.

 

        else.   "Cancel

 

          format color col_negative.

          write: /5 'Choose to cancel. No records changed'.

          format color off.

 

        endif.

 

      endif.

 

    endif.

  endif.

 

*--- AT SELECTION SCREEN ACTION ---------------------------------------*

at selection-screen on value-request for filename.

 

  call function 'AL_POPUP_FOR_LOCAL_PATH'

       importing

            filereturn = filename

       exceptions

            others     = 1.

Data Include

Include Z_IDOC_STATUS_CHANGE_DATA

*----------------------------------------------------------------------*

***INCLUDE Z_IDOC_STATUS_CHANGE_DATA .

*----------------------------------------------------------------------*

*--- TABLES  DEFINITIONS ----------------------------------------------*

tables: edidc.

 

*--- STRUCTURE  DEFINITIONS -------------------------------------------*

types: begin of itab_idoc_structure,

        docnum like edidc-docnum.

types: end of itab_idoc_structure.

 

*--- INTERNAL TABLE AND WORK AREA DEFINITIONS -------------------------*

data: itab_idocs type standard table of itab_idoc_structure,

      wa_idocs   type itab_idoc_structure.

 

*--- VARIABLES --------------------------------------------------------*

data: return like sy-subrc,

      t_answer.

Forms / Subroutines Include

 

Include Z_IDOC_STATUS_CHANGE_FORMS

*----------------------------------------------------------------------*

***INCLUDE Z_IDOC_STATUS_CHANGE_FORMS .

*----------------------------------------------------------------------*

*&---------------------------------------------------------------------*

*&      Form  upload_excel

*&---------------------------------------------------------------------*

* Only handles Excel file upload - Column A has a list of IDoc numbers

* Maximum 2000 IDocs passed

*&---------------------------------------------------------------------*

form upload_excel tables   p_itab_idoc like itab_idocs

                  using    p_filename

                  changing p_return.

 

  data: file_name like  rlgrap-filename,

        file_type like  rlgrap-filetype,

        itab_excel like alsmex_tabline occurs 0 with header line.

 

  move p_filename to file_name.

  move 'XLS'      to file_type.

 

  refresh itab_excel.

 

  call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'

       exporting

            filename                = file_name

            i_begin_col             = 1

            i_begin_row             = 1

            i_end_col               = 1

            i_end_row               = 2000

       tables

            intern                  = itab_excel

       exceptions

            inconsistent_parameters = 1

            upload_ole              = 2

            others                  = 3.

  if sy-subrc <> 0.

    p_return = sy-subrc.

    message i060 with sy-subrc file_name.

  else.

    loop at itab_excel.

      wa_idocs-docnum = itab_excel-value.

      select single docnum into edidc-docnum

        from edidc

        where docnum = wa_idocs-docnum.

      if sy-subrc = 0.

        collect wa_idocs into p_itab_idoc.

        write: /5 'IDoc', wa_idocs-docnum, 'added for processing.'.

      else.

        write: /5 wa_idocs-docnum, 'IGNORED for processing.'.

      endif.

    endloop.

    if sy-subrc <> 0.

      p_return = sy-subrc.

      message i061 with file_name.

    endif.

  endif.

 

endform.                    " upload_excel

*&---------------------------------------------------------------------*

*&      Form  process_idocs

*&---------------------------------------------------------------------*

form process_idocs tables   p_itab_idocs like itab_idocs

                   using    p_status

                            p_msgty

                            p_msgid

                            p_msgno

                            p_msgv1

                            p_msgv2

                            p_msgv3

                            p_msgv4.

 

  data: bdidocstat like bdidocstat occurs 0 with header line.

 

  loop at p_itab_idocs into wa_idocs.

 

    refresh bdidocstat.

 

    bdidocstat-docnum = wa_idocs-docnum.       "IDoc number

    bdidocstat-status = p_status.              "IDoc status

    bdidocstat-msgty  = p_msgty.               "Message type

    bdidocstat-msgid  = p_msgid.               "Message ID

    bdidocstat-msgno  = p_msgno.               "Message number

    bdidocstat-msgv1  = p_msgv1.               "Message variable 1

    bdidocstat-msgv2  = p_msgv2.               "Message variable 2

    bdidocstat-msgv3  = p_msgv3.               "Message variable 3

    bdidocstat-msgv4  = p_msgv4.               "Message variable 4

    append bdidocstat.

 

    call function 'IDOC_STATUS_WRITE_TO_DATABASE'

         exporting

              idoc_number               = wa_idocs-docnum

              no_dequeue_flag           = 'X'

         tables

              idoc_status               = bdidocstat

         exceptions

              idoc_foreign_lock         = 1

              idoc_not_found            = 2

              idoc_status_records_empty = 3

              idoc_status_invalid       = 4

              db_error                  = 5

              others                    = 6.

 

    if sy-subrc <> 0.

      format color col_negative.

      write: /10 'IDoc', wa_idocs-docnum, 'had NO status update!'.

      format color off.

    else.

      write: /10 'IDoc', wa_idocs-docnum,

                 'has had it''s status updated'.

    endif.

 

  endloop.

 

endform.                    " process_idocs

 


Related Items:

Last Updated ( Tuesday, 13 March 2007 )
 
< Prev   Next >

Google Search

Statistics

Contribution Activity
Utilities: 39
Tips and Tricks: 337
Sample Code: 170
Total Contributions: 561

Member Activity
Members: 6341 since 2/1/2007!
New: 0 since yesterday!
Visitors: 1239924
We have 1 guest online

Newest Members

Welcome our newest members:

Google Ads

Shared Bottom Border

Contact Us | Polls | Add URL | Contribute | Privacy | Terms | Feedback

Discussion Forum | BLOG | Consultants: Post your resume | Companies: Advertise on ERPGenie.COM | Post Job
Financials Consultant | Consultant Review | Gallia Consulting | Supply Chain Project | SAP Financials Forum
GenieHoldings.COM, Inc. | Genie Press | WorkflowGenie | ESAGenie | ERPTopSites | ABAP Tips and Tricks | SAP Solutions Database

EDIGenie | Searching Survivor