Al correr el programa Crear documento CV01N sube la informacion del documento, y con este codigo modificamos o borramos campos.
Al crearlo.
Al modificarlo.
DATA: aid TYPE sdok_loid,
fid TYPE sdok_phid,
dir TYPE draddir.
DATA: ls_doc LIKE bapi_doc_draw2,
ls_docx LIKE bapi_doc_drawx2,
ls_return LIKE bapiret2,
it_files LIKE bapi_doc_files2 OCCURS 0 WITH HEADER LINE,
it_files2 LIKE bapi_doc_files2 OCCURS 0 WITH HEADER LINE,
wa_files2 LIKE it_files,
lt_drat LIKE bapi_doc_drat OCCURS 0 WITH HEADER LINE,
it_link LIKE bapi_doc_drad OCCURS 0 WITH HEADER LINE,
it_link2 LIKE bapi_doc_drad OCCURS 0 WITH HEADER LINE,
wa_link2 LIKE it_link2.
ls_doc-documenttype = 'DRW'.
ls_doc-documentnumber = 'CH5000Q'.
ls_doc-documentversion = '00'.
ls_doc-documentpart = '000'.
ls_doc-description = 'Prueba descripcion'.
ls_docx-description = 'X'.
ls_doc-username = 'Hgomez'.
ls_docx-username = 'X'.
CLEAR it_files2.
REFRESH it_files2.
CLEAR it_link2.
REFRESH it_link2.
CALL FUNCTION 'BAPI_DOCUMENT_GETDETAIL2'
EXPORTING
documenttype = 'DRW'
documentnumber = 'CH5000Q'
documentpart = '000'
documentversion = '00'
getobjectlinks = 'X'
getcomponents = 'X'
getstatuslog = 'X'
getlongtexts = 'X'
getactivefiles = 'X'
getdocdescriptions = 'X'
getdocfiles = 'X'
getclassification = 'X'
getstructure = 'X'
getwhereused = 'X'
hostname = 'X'
* INHERITED =
* IMPORTING
* DOCUMENTDATA =
* RETURN =
TABLES
objectlinks = it_link2
* DOCUMENTDESCRIPTIONS =
* LONGTEXTS =
* STATUSLOG =
documentfiles = it_files2
* COMPONENTS =
* CHARACTERISTICVALUES =
* CLASSALLOCATIONS =
* DOCUMENTSTRUCTURE =
* WHEREUSEDLIST =
.
LOOP AT it_files2 INTO wa_files2 WHERE docfile = 'C:\hi.doc'.
aid = wa_files2-application_id.
fid = wa_files2-file_id.
ENDLOOP.
CLEAR it_files.
REFRESH it_files.
*it_files-ORIGINALTYPE = 1. "INGRESAR
it_files-deletevalue = 'X'. "PARA BORRAR
it_files-docfile = 'C:\hi.doc'.
it_files-wsapplication = 'WWI'.
*it_files-ACTIVE_VERSION = 'X'. "INGRESAR
it_files-application_id = aid. "PARA BORRAR
it_files-file_id = fid. "PARA BORRAR
APPEND it_files.
LOOP AT it_link2 INTO wa_link2 WHERE objectkey = '098010254'.
dir = wa_link2-documentdirection.
ENDLOOP.
CLEAR it_link.
REFRESH it_link.
it_link-deletevalue = 'X'. "PARA BORRAR
it_link-objecttype = 'MARA'.
it_link-objectkey = '098010254'.
it_link-documentdirection = dir. "PARA BORRAR
APPEND it_link.
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 = ls_return
TABLES
* CHARACTERISTICVALUES =
* CLASSALLOCATIONS =
* DOCUMENTDESCRIPTIONS =
objectlinks = it_link
* DOCUMENTSTRUCTURE =
documentfiles = it_files
* LONGTEXTS =
* COMPONENTS =
.
IF ls_return-type CA 'EA'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
MESSAGE ID '26' TYPE 'I' NUMBER '000'
WITH ls_return-message.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
MESSAGE 'DMS MODIFICADO' TYPE 'S'.
ENDIF.