Enterprise Resource Planning Blogs by Members
Gain new perspectives and knowledge about enterprise resource planning in blog posts from community members. Share your own comments and ERP insights today!
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member
3,869

Hello

Sometimes you need delete Originals in DMS

following  ABAP program delete DMS Originals. ( Be careful )

Excel Structure must :

Document NumberDocument TypeDocument PartDocument version
000000000000000200000012DWG00000
000000000000000200000012DWG000

01

000000000000000200000013DWG00001

Be careful Document Number must 25 character if Document number less than 25 set zero before number ( for example : 200000012 -> 000000000000000200000012)  

How Use :

Step 1:  after create program go t.code se38 execute .

Step 2 :Enter number row you want start program in excel in and end row

     Select Excel file ( by default C:\Delete.xlsx)

( for example excel file have 20000 row and in first step you want delete 499 row , from row 2 and to row : 500 , next step you want delete 1000 row from row 501 and to row : 1501)

Step 3 : Run (f8)

sorry code is Spaghetti


*&---------------------------------------------------------------------*
*& Report  ZDMS_DELETE_ORIGINALS_TEST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT  ZDMS_DELETE_ORIGINALS.
"CONSTANTS: FILE_PATH LIKE RLGRAP-FILENAME VALUE C:\delete.xlsx'.
            "MAX_ROWS TYPE i VALUE 10000.
TYPES:
       BEGIN OF ST_DIR,
         DOKAR TYPE DOKAR,
         DOKNR TYPE DOKNR,
         DOKVR TYPE DOKVR,
         DOKTL TYPE DOKTL,
       END OF ST_DIR.
PARAMETERS BEG_ROW TYPE i DEFAULT 2.
PARAMETERS END_ROW TYPE i DEFAULT 500.
PARAMETERS FILEPATH LIKE RLGRAP-FILENAME DEFAULT 'c:\Delete.xlsx'.
DATA: it_documents TYPE TABLE OF st_dir,
       wa_documents TYPE st_dir.
DATA it_file_content TYPE TABLE OF ALSMEX_TABLINE WITH HEADER LINE.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
   EXPORTING
     FILENAME                      = FILEPATH
     I_BEGIN_COL                   = 1
     I_BEGIN_ROW                   = BEG_ROW
     I_END_COL                     = 4
     I_END_ROW                     = END_ROW   "15943
   TABLES
     INTERN                        = it_file_content
* EXCEPTIONS
*   INCONSISTENT_PARAMETERS       = 1
*   UPLOAD_OLE                    = 2
*   OTHERS                        = 3
           .
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
DATA: current_row TYPE i VALUE 1,
       rowCount TYPE i.
rowCount = LINES( it_file_content ).
WHILE current_row <= rowCount.
   LOOP AT it_file_content FROM CURRENT_ROW TO CURRENT_ROW + 3.
     CASE it_file_content-COL.
       WHEN '1'.
         WA_DOCUMENTS-DOKNR = it_file_content-VALUE.
       WHEN '2'.
         WA_DOCUMENTS-DOKAR = it_file_content-VALUE.
       WHEN '3'.
         WA_DOCUMENTS-DOKTL = it_file_content-VALUE.
       WHEN '4'.
         WA_DOCUMENTS-DOKVR = it_file_content-VALUE.
     ENDCASE.
   ENDLOOP.
   APPEND WA_DOCUMENTS TO IT_DOCUMENTS.
   CLEAR WA_DOCUMENTS.
   current_row = current_row + 4.
ENDWHILE.
LOOP AT IT_DOCUMENTS INTO WA_DOCUMENTS.
   PERFORM DELETE_ORG USING WA_DOCUMENTS-DOKAR WA_DOCUMENTS-DOKNR WA_DOCUMENTS-DOKVR WA_DOCUMENTS-DOKTL.
ENDLOOP.
WRITE 'Successful!!'.
FORM DELETE_ORG USING dokar doknr dokvr doktl.
   DATA: it_old_originals TYPE TABLE OF BAPI_DOC_FILES2 WITH HEADER LINE,
         ret TYPE BAPIRET2,
         ls_doc    LIKE bapi_doc_draw2,
         ls_docx   LIKE bapi_doc_drawx2.
*  ls_doc-DOCUMENTNUMBER = '0000000000000000000010005'.
*  ls_doc-DOCUMENTPART = '000'.
*  ls_doc-DOCUMENTTYPE = 'ENG'.
*  ls_doc-DOCUMENTVERSION = '00'.
   ls_doc-DOCUMENTNUMBER = doknr.
   ls_doc-DOCUMENTPART = doktl.
   ls_doc-DOCUMENTTYPE = dokar.
   ls_doc-DOCUMENTVERSION = dokvr.
   CALL FUNCTION 'BAPI_DOCUMENT_GETDETAIL2'
     EXPORTING
       DOCUMENTTYPE         = ls_doc-DOCUMENTTYPE
       DOCUMENTNUMBER       = ls_doc-DOCUMENTNUMBER
       DOCUMENTPART         = LS_DOC-DOCUMENTPART
       DOCUMENTVERSION      = ls_doc-DOCUMENTVERSION
*     GETOBJECTLINKS       = ' '
*     GETCOMPONENTS        = ' '
*     GETSTATUSLOG         = ' '
*     GETLONGTEXTS         = ' '
       GETACTIVEFILES       = 'X'
       GETDOCDESCRIPTIONS   = 'X'
       GETDOCFILES          = 'X'
*     GETCLASSIFICATION    = ' '
*     GETSTRUCTURE         = ' '
*     GETWHEREUSED         = ' '
*     HOSTNAME             = ' '
       INHERITED            = 'X'
     IMPORTING
*     DOCUMENTDATA         =
       RETURN               = ret
     TABLES
*     OBJECTLINKS          =
*     DOCUMENTDESCRIPTIONS =
*     LONGTEXTS            =
*     STATUSLOG            =
       DOCUMENTFILES        = it_old_originals
*     COMPONENTS           =
*     CHARACTERISTICVALUES =
*     CLASSALLOCATIONS     =
*     DOCUMENTSTRUCTURE    =
*     WHEREUSEDLIST        =
     .
   LOOP AT it_old_originals.
     it_old_originals-DELETEVALUE = 'X'.
     MODIFY it_old_originals.
   ENDLOOP.
   CALL FUNCTION 'BAPI_DOCUMENT_CHANGE2'
     EXPORTING
       DOCUMENTTYPE               = ls_doc-DOCUMENTTYPE
       DOCUMENTNUMBER             = ls_doc-DOCUMENTNUMBER
       DOCUMENTPART               = LS_DOC-DOCUMENTPART
       DOCUMENTVERSION            = ls_doc-DOCUMENTVERSION
       DOCUMENTDATA               = LS_DOC
       DOCUMENTDATAX              = LS_DOCX
*   HOSTNAME                   =
*   DOCBOMCHANGENUMBER         =
*   DOCBOMVALIDFROM            =
*   DOCBOMREVISIONLEVEL        =
*   SENDCOMPLETEBOM            = ' '
*   PF_FTP_DEST                = ' '
*   PF_HTTP_DEST               = ' '
*   CAD_MODE                   = ' '
*   ACCEPT_EMPTY_BOM           = ' '
* IMPORTING
*   RETURN                     =
    TABLES
*   CHARACTERISTICVALUES       =
*   CLASSALLOCATIONS           =
*   DOCUMENTDESCRIPTIONS       =
*   OBJECTLINKS                =
*   DOCUMENTSTRUCTURE          =
      DOCUMENTFILES              = it_old_originals
*   LONGTEXTS                  =
*   COMPONENTS                 =
             .
ENDFORM.
4 Comments
Labels in this area