PDA

Ver la Versión Completa : como guardar una URL y me aparesca en FB03


j3sus
15/10/10, 16:54:41
Hola compañeros tengo la siguiente duda y espero alguien me la puedan contestar.


como puedo guardar una URL y verla en la lista de anexos en la transacción FB03.

todo esto mediante un programa, sin tener que ingresar y meterla manualmente en la FB03 y sin realizar un call transaction..


hay alguna funcion que me pueda servir?
o en que tablA se guardan los anexos de la FB03?


saluds y gracias =)

Tonijua
15/10/10, 18:41:11
Mira, se que tienes que utilizar estas funciones...

'SO_OBJECT_INSERT'
'BINARY_RELATION_CREATE'


Primero deber crear el objeto y luego ligarlo al doc.. una vez creamos un programa para ligar URL y PDF a Doc contables..

Por ahí va la cosa.. Déjame un correo y te pego un código para que lo mires,

j3sus
18/10/10, 22:13:15
hola tonijua muchas gracias..

lo hice con el siguiente codigo

DATA: lv_folderid TYPE sofdk,
ls_object TYPE borident,
l_url_id TYPE so_url,
ls_objcont TYPE soli,
lt_objcont TYPE STANDARD TABLE OF soli,
l_obj_data TYPE sood1,
lv_document_title TYPE sood-objdes,
l_obj_id TYPE soodk,
lt_objhead TYPE STANDARD TABLE OF soli,
ls_document_id TYPE sofmk,
ls_rel_doc TYPE borident,
ls_ep_url TYPE borident-objkey,
lv_ip type syhost,
lv_id type string.

CONCATENATE p_soc
p_doc
p_eje
INTO ls_object-objkey.

ls_object-objtype = 'BKPF'.

CALL FUNCTION 'SO_FOLDER_ROOT_ID_GET'
EXPORTING
* OWNER = ' '
region = 'B'
IMPORTING
folder_id = lv_folderid
EXCEPTIONS
OTHERS = 1.
.
IF sy-subrc <> 0.

CLEAR: lv_folderid.

ENDIF.

WHILE NOT l_url_id IS INITIAL.

CONCATENATE '&KEY&' l_url_id(250) INTO ls_objcont.
APPEND ls_objcont TO lt_objcont.
SHIFT l_url_id LEFT BY 250 PLACES.

ENDWHILE.

l_obj_data-objsns = 'O'.
l_obj_data-objla = sy-langu.
l_obj_data-objdes = lv_document_title.

CALL FUNCTION 'SO_OBJECT_INSERT'
EXPORTING
folder_id = lv_folderid
object_type = 'URL'
object_hd_change = l_obj_data
IMPORTING
object_id = l_obj_id
TABLES
objhead = lt_objhead
objcont = lt_objcont
EXCEPTIONS
active_user_not_exist = 35
folder_not_exist = 6
object_type_not_exist = 17
owner_not_exist = 22
parameter_error = 23
OTHERS = 1000.

j3sus
18/10/10, 22:15:15
aaa perdon me falto una parte jeje hey te va


CONCATENATE p_soc
p_doc
p_eje
INTO ls_object-objkey.

ls_object-objtype = 'BKPF'.

CALL FUNCTION 'SO_FOLDER_ROOT_ID_GET'
EXPORTING
* OWNER = ' '
region = 'B'
IMPORTING
folder_id = lv_folderid
EXCEPTIONS
OTHERS = 1.
.
IF sy-subrc <> 0.

CLEAR: lv_folderid.

ENDIF.

WHILE NOT l_url_id IS INITIAL.

CONCATENATE '&KEY&' l_url_id(250) INTO ls_objcont.
APPEND ls_objcont TO lt_objcont.
SHIFT l_url_id LEFT BY 250 PLACES.

ENDWHILE.

l_obj_data-objsns = 'O'.
l_obj_data-objla = sy-langu.
l_obj_data-objdes = lv_document_title.

CALL FUNCTION 'SO_OBJECT_INSERT'
EXPORTING
folder_id = lv_folderid
object_type = 'URL'
object_hd_change = l_obj_data
IMPORTING
object_id = l_obj_id
TABLES
objhead = lt_objhead
objcont = lt_objcont
EXCEPTIONS
active_user_not_exist = 35
folder_not_exist = 6
object_type_not_exist = 17
owner_not_exist = 22
parameter_error = 23
OTHERS = 1000.

IF sy-subrc = 0.

ls_document_id-foltp = lv_folderid-foltp.
ls_document_id-folyr = lv_folderid-folyr.
ls_document_id-folno = lv_folderid-folno.
ls_document_id-doctp = l_obj_id-objtp.
ls_document_id-docyr = l_obj_id-objyr.
ls_document_id-docno = l_obj_id-objno.


ENDIF.

IF NOT ls_object-objkey IS INITIAL.
IF NOT ls_document_id IS INITIAL.
CLEAR ls_rel_doc.
ls_rel_doc-objkey = ls_document_id.
ls_rel_doc-objtype = 'MESSAGE'.
CALL FUNCTION 'BINARY_RELATION_CREATE'
EXPORTING
obj_rolea = ls_object
obj_roleb = ls_rel_doc
relationtype = 'URL'
EXCEPTIONS
OTHERS = 1.

COMMIT WORK.