Moi j'ai ca :
En gros, j'ai stocké dans GOS des PDF ou autres, et je les liste pour les coller dans un email.
Ce que tu peux faire, c'est les lister, les extraires et les imprimer en avant plant (SapGui) avec l'instruction de Acrobat.
*---------------------------------------------------------------------*
* Form P_GET_BACC_FOUR. *
*---------------------------------------------------------------------*
FORM p_get_bacc_four CHANGING is_cert STRUCTURE g_cert
w_subrc TYPE sysubrc.
DATA : it_objects TYPE sibflporbt,
it_link_a TYPE obl_t_link ,
it_link_b TYPE obl_t_link ,
it_roles TYPE obl_t_rolt ,
it_relations TYPE obl_t_relt ,
it_role2 TYPE obl_t_role ,
is_role TYPE obl_s_rolt ,
is_object TYPE sibflporb ,
is_relation TYPE obl_s_relt ,
is_link TYPE obl_s_link ,
w_doc_id TYPE so_entryid ,
w_file_size TYPE i ,
w_file_size2 TYPE so_doc_len ,
w_file_type TYPE fileformat ,
w_matnr TYPE char18.
* Vérification que la clef n'est pas vide.
check not is_cert-vbdpl-matnr is initial and
not is_cert-vbdpl-matnr is initial.
* Création de la clef.
CONCATENATE is_cert-vbdpl-matnr
is_cert-vbdpl-charg
INTO is_object-instid.
* Chargement valeurs par defaut
MOVE : 'ZBA_CC' TO is_object-typeid ,
'BO' TO is_object-catid .
APPEND is_object TO it_objects.
MOVE : 'I' TO is_role-sign ,
'EQ' TO is_role-option ,
'GOSAPPLOBJ' TO is_role-low.
APPEND is_role TO it_roles.
MOVE : 'I' TO is_relation-sign ,
'EQ' TO is_relation-option ,
'ATTA' TO is_relation-low .
APPEND is_relation TO it_relations.
MOVE : 'BIN' TO w_file_type.
* Extraction des liens.
TRY.
CALL METHOD cl_binary_relation=>read_links_of_objects
EXPORTING
it_objects = it_objects
it_role_options = it_roles
it_relation_options = it_relations
IMPORTING
et_links_a = it_link_a.
CATCH cx_obl_model_error .
CATCH cx_obl_parameter_error .
CATCH cx_obl_internal_error .
ENDTRY.
* Test existence document(s).
IF NOT it_link_a[] IS INITIAL.
CLEAR w_subrc.
ELSE.
MOVE 1 TO w_subrc.
ENDIF.
ENDFORM. " P_GET_BACC_FOUR
FORM p_mail_gos_doc USING is_cert TYPE zqm_cert
w_html_txt TYPE string
w_html_len TYPE i
obj_mime_helper TYPE REF TO cl_gbt_multirelated_service
w_num TYPE numc3.
DATA : w_file_type TYPE fileformat ,
w_doc_id TYPE so_entryid ,
w_file TYPE string ,
w_content_id TYPE string ,
w_content_type TYPE w3conttype ,
w_obj_len TYPE so_obj_len ,
w_word_from TYPE char300 ,
w_word_to TYPE char300 ,
w_numc TYPE char3 ,
is_object TYPE sibflporb ,
is_role TYPE obl_s_rolt ,
is_relation TYPE obl_s_relt ,
is_link TYPE obl_s_link ,
is_doc_data TYPE sofolenti1 ,
it_objects TYPE sibflporbt,
it_roles TYPE obl_t_rolt ,
it_relations TYPE obl_t_relt ,
it_link TYPE obl_t_link ,
it_contentx TYPE solix_tab .
*
MOVE '_' TO w_numc+0(1).
WRITE w_num+1(2) TO w_numc+1(2).
* Création de la clef.
CONCATENATE is_cert-vbdpl-matnr
is_cert-vbdpl-charg
INTO is_object-instid.
MOVE : 'ZBA_CC' TO is_object-typeid ,
'BO' TO is_object-catid .
APPEND is_object TO it_objects.
MOVE : 'I' TO is_role-sign ,
'EQ' TO is_role-option ,
'GOSAPPLOBJ' TO is_role-low.
APPEND is_role TO it_roles.
MOVE : 'I' TO is_relation-sign ,
'EQ' TO is_relation-option ,
'ATTA' TO is_relation-low .
APPEND is_relation TO it_relations.
MOVE : 'BIN' TO w_file_type.
* Extraction des liens.
TRY.
CALL METHOD cl_binary_relation=>read_links_of_objects
EXPORTING
it_objects = it_objects
it_role_options = it_roles
it_relation_options = it_relations
IMPORTING
et_links_a = it_link.
CATCH cx_obl_model_error.
CATCH cx_obl_parameter_error.
CATCH cx_obl_internal_error.
ENDTRY.
* Boucle sur les docs.
LOOP AT it_link
INTO is_link.
* Petit nom
MOVE is_link-instid_b TO w_doc_id.
* Extraction du contenu.
CALL FUNCTION 'SO_DOCUMENT_READ_API1'
EXPORTING
document_id = w_doc_id
IMPORTING
document_data = is_doc_data
TABLES
contents_hex = it_contentx
EXCEPTIONS
document_id_not_exist = 1
operation_no_authorization = 2
x_error = 3
OTHERS = 4.
CONCATENATE is_cert-vbdpl-charg
w_numc
'.'
is_doc_data-obj_type
INTO w_file.
CONCATENATE is_cert-vbdpl-charg
w_numc
'.'
is_doc_data-obj_type
INTO w_content_id.
CLEAR w_content_type.
w_obj_len = is_doc_data-doc_size.
CALL METHOD obj_mime_helper->add_binary_part
EXPORTING
content = it_contentx
filename = w_file
extension = is_doc_data-obj_type
description = is_doc_data-obj_descr
content_type = w_content_type
length = w_obj_len
content_id = w_content_id.
ENDLOOP.
ENDFORM. " P_MAIL_GOS_DOC |