"-Begin-----------------------------------------------------------------
  Report  Z_ARCHIVEFILE.

    "-Variables---------------------------------------------------------
      Data tabFileName Type filetable.
      Data rc Type sy-subrc.
      Data UserAction Type i.
      Data ArcDocID Type toa01-arc_doc_id.

    "-GUI---------------------------------------------------------------
      Parameter FileName Type sapb-sappfad Lower Case.
      Parameter ContRep Type toaar-archiv_id.
      Parameter DocTyp Type toadd-doc_type.
      Selection-Screen Skip 1.
      Parameter BusObj Type toaom-sap_object.
      Parameter ArObj Type toaom-ar_object.
      Parameter ObjID Type sapb-sapobjid Lower Case.
      Selection-Screen Skip 1.
      Selection-Screen PushButton /1(79) ArcDoc User-Command ArcDoc.
      Selection-Screen Skip 1.
      Parameter DocID Type toa01-arc_doc_id.

    "-Initialization----------------------------------------------------
      Initialization.
        ArcDoc = 'Put document into archive'(001).

    "-Event press button to select file---------------------------------
      At Selection-Screen On Value-Request For FileName.

        Clear FileName.
        Clear tabFileName.

        Call Method cl_gui_frontend_services=>file_open_dialog
          Exporting
            window_title = 'Datei zum Upload in das Archiv'
            multiselection = abap_false
            file_filter = '*.*'
          Changing
            file_table = tabFileName
            rc = rc
            user_action = UserAction.

        If UserAction = 0.
          Read Table tabFileName Into FileName Index 1.
        EndIf.

    "-Main--------------------------------------------------------------
      At Selection-Screen.

        Case sy-ucomm.
          When 'ARCDOC'.

            Call Function 'ARCHIVOBJECT_CREATE_FILE'
              Exporting
                ARCHIV_ID = ContRep
                DOCUMENT_TYPE = DocTyp
                PATH = FileName
              Importing
                ARCHIV_DOC_ID = ArcDocID
              Exceptions
                ERROR_ARCHIV = 1
                ERROR_COMMUNICATIONTABLE = 2
                ERROR_UPLOAD = 3
                ERROR_KERNEL = 4
                OTHERS = 5.

              If sy-subrc = 0.
                DocID = ArcDocID.

                Call Function 'ARCHIV_CONNECTION_INSERT'
                  Exporting
                    ARCHIV_ID = ContRep
                    ARC_DOC_ID = ArcDocID
                    AR_OBJECT = ArObj
                    OBJECT_ID = ObjID
                    SAP_OBJECT = BusObj
                    DOC_TYPE = DocTyp
                  Exceptions
                    ERROR_CONNECTIONTABLE = 1
                    OTHERS = 2.

                  If sy-subrc = 0.
                    Message 'Success' Type 'S'.
                  Else.

                    Call Function 'ARCHIVOBJECT_DELETE'
                      Exporting
                        ARCHIV_ID = ContRep
                        ARCHIV_DOC_ID = ArcDocID
                      Exceptions
                        ERROR_ARCHIV = 1
                        ERROR_COMMUNICATIONTABLE = 2
                        ERROR_KERNEL = 3
                        OTHERS = 4.

                    Message 'Connection insert not successful' Type 'E'.
                  EndIf.

              Else.
                Message 'Archiving not successful' Type 'E'.
              EndIf.

        EndCase.

"-End-------------------------------------------------------------------