martes, 8 de noviembre de 2011

Cargar archivos locales en la gestión documental

A continuación os voy a dejar un programa que nos va a permitir cargar archivos locales de nuestro ordenador a la gestión documental y enlazarlo con su objeto.




* Declaración variables


DATA: lf_doctype LIKE bapi_doc_aux-doctype,
lf_docnumber LIKE bapi_doc_aux-docnumber,
lf_docpart LIKE bapi_doc_aux-docpart,
lf_docversion LIKE bapi_doc_aux-docversion,
ls_doc LIKE bapi_doc_draw2,
path LIKE ibipparms-path,
v_str1(200),
v_str2(3).

DATA: lt_files LIKE bapi_doc_files2 OCCURS 0 WITH HEADER LINE,
lt_drat LIKE bapi_doc_drat OCCURS 0 WITH HEADER LINE,
lt_drad LIKE bapi_doc_drad OCCURS 0 WITH HEADER LINE,
lt_charact LIKE bapi_characteristic_values OCCURS 0 WITH HEADER LINE,
return LIKE bapiret2 OCCURS 0 WITH HEADER LINE,
lt_links like BAPI_DOC_DRAD OCCURS 0 WITH HEADER LINE.

* Sacamos un explorador de archivos para seleccionar el fichero

CALL FUNCTION 'F4_FILENAME'
EXPORTING
        PROGRAM_NAME = SY-REPID
        DYNPRO_NUMBER = SY-DYNNR
        FIELD_NAME = 'PATH'
IMPORTING
        FILE_NAME = FILE.

SPLIT file AT '.' INTO v_str1 v_str2.


TRANSLATE v_str2 TO UPPER CASE.

ls_doc-documenttype = 'CER'.
ls_doc-documentnumber = '*'. " Lo le pasamos ningún número pues nos lo creará
ls_doc-documentversion = '00'.
ls_doc-documentpart = '000'.
ls_doc-authoritygroup = '00000'.
ls_doc-wsapplication1 = v_str2.

* Introducimos la descipción
lt_drat-language = 'S'.
lt_drat-description = 'DESCRIPCION'.

APPEND lt_drat.

lt_files-docfile = file.
lt_files-wsapplication = v_str2.
lt_files-storagecategory = 'DMS_C1_ST'.

APPEND lt_files.

* En esta table rellenamos el enlace.
* En nuestro caso al ser un equipo el tipo es EQUI y el key el número de equipo
lt_links-objectkey = equipo.
lt_links-objecttype = 'EQUI'.
append lt_links.

** Creamos el documento

CALL FUNCTION 'BAPI_DOCUMENT_CREATE2'
EXPORTING
        documentdata = ls_doc
IMPORTING
        documenttype = lf_doctype
        documentnumber = lf_docnumber
        documentpart = lf_docpart
        documentversion = lf_docversion
        return = return
TABLES
        documentdescriptions = lt_drat
        objectlinks = lt_links
        documentfiles = lt_files.

No hay comentarios:

Publicar un comentario