Code: Alles auswählen.
FUNCTION z_bc_create_attachment2.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(DOCUMENT) TYPE SIBFBORIID
*" VALUE(BUSOBJECT) TYPE SIBFTYPEID
*" VALUE(RELTYPE) TYPE OBLRELTYPE DEFAULT 'ATTA'
*" VALUE(CHECK_BO) TYPE XFELD DEFAULT 'X'
*" VALUE(XCOMMIT) TYPE CHAR01 DEFAULT '2'
*" VALUE(S_DOC_DATA) TYPE SOFOLENTI1
*" VALUE(ALIGN_NOTE_TEXT) TYPE XFELD DEFAULT 'X'
*" TABLES
*" T_CONTENT_HEX STRUCTURE SOLIX OPTIONAL
*" T_CONTENT_TXT STRUCTURE SOLISTI1 OPTIONAL
*" T_RETURN STRUCTURE BAPIRET2 OPTIONAL
*"----------------------------------------------------------------------
CONSTANTS:
c_catid TYPE sibfcatid VALUE 'BO',
c_region TYPE sofd-folrg VALUE 'B',
c_typeid TYPE sibftypeid VALUE 'MESSAGE'.
" Define Messages
_bapi_message_data_definition.
DATA:
" Folder
: gs_folder TYPE soodk,
" Link: Source & Target
gs_object TYPE sibflporb,
gs_objtgt TYPE sibflporb,
" Document Basic data
gs_doc_info TYPE sofolenti1,
gs_doc_data TYPE sodocchgi1,
gd_doc_type TYPE soodk-objtp,
"gv_reltype TYPE oblreltype,
in_update_task TYPE sy-subrc,
rc TYPE sy-subrc,
ls_return TYPE bapiret2.
IF reltype NE 'ATTA' AND reltype NE 'NOTE' AND reltype NE 'URL'.
_bapi_message2 'No valid RELTYPE found.' '' '' ''.
APPEND _bapi_return TO t_return.
EXIT.
ENDIF.
IF reltype EQ 'NOTE' AND NOT align_note_text IS INITIAL.
PERFORM align_note_text TABLES t_content_txt.
ENDIF.
IF NOT check_bo IS INITIAL.
PERFORM check_entry_exist USING document busobject CHANGING rc.
IF rc NE 0.
CASE rc.
WHEN 1 .
_bapi_message1 'E' '60' '071'.
APPEND _bapi_return TO t_return.
WHEN 2.
_bapi_message1 'E' 'KX' '069'.
APPEND _bapi_return TO t_return.
WHEN 3.
_bapi_message1 'E' '5V' '076'.
APPEND _bapi_return TO t_return.
WHEN OTHERS.
ENDCASE.
EXIT.
ENDIF.
ENDIF.
" Get Root-Folder
CALL FUNCTION 'SO_FOLDER_ROOT_ID_GET'
EXPORTING
region = c_region
IMPORTING
folder_id = gs_folder.
" Create document
CLEAR gs_doc_data .
MOVE-CORRESPONDING s_doc_data TO gs_doc_data .
CALL FUNCTION 'SO_DOCUMENT_INSERT_API1'
EXPORTING
folder_id = gs_folder
document_data = gs_doc_data
document_type = s_doc_data-obj_type
IMPORTING
document_info = gs_doc_info
TABLES
object_content = t_content_txt
contents_hex = t_content_hex.
" Businessobject-ID remains
gs_object-instid = document.
gs_object-typeid = busobject.
gs_object-catid = c_catid.
" Documentdata to Destination
CONCATENATE gs_folder gs_doc_info-object_id
INTO gs_objtgt-instid RESPECTING BLANKS.
gs_objtgt-typeid = c_typeid.
gs_objtgt-catid = c_catid.
TRY.
" Create Link
cl_binary_relation=>create_link(
EXPORTING
is_object_a = gs_object
is_object_b = gs_objtgt
ip_reltype = reltype ).
CASE xcommit.
WHEN '1'.
COMMIT WORK AND WAIT.
WHEN '2'.
" see if we are in update task
CALL FUNCTION 'TH_IN_UPDATE_TASK'
IMPORTING
in_update_task = in_update_task.
IF in_update_task IS INITIAL.
COMMIT WORK AND WAIT.
ENDIF.
WHEN OTHERS.
ENDCASE.
CATCH cx_obl_parameter_error cx_obl_model_error cx_obl_internal_error.
ENDTRY.
ENDFUNCTION.
*&---------------------------------------------------------------------*
*& Form Check_entry_exist
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->DOCUMENT text
* -->BUSOBJECT text
* -->RC text
*----------------------------------------------------------------------*
FORM check_entry_exist USING document TYPE sibfboriid
busobject TYPE sibftypeid
CHANGING rc TYPE sy-subrc.
DATA:
l_bo_model_id TYPE rpybobs-objtype,
t_keys TYPE TABLE OF rpyboke,
s_keys TYPE rpyboke.
DATA:
t_dfies TYPE TABLE OF dfies,
t_dfies1 TYPE TABLE OF dfies,
s_dfies TYPE dfies,
l_tab TYPE ddobjname,
l_field TYPE dfies-fieldname,
ls_sel TYPE ddshselopt,
lt_sel TYPE TABLE OF ddshselopt,
l_where TYPE string,
l_off TYPE i.
l_bo_model_id = busobject.
CALL FUNCTION 'RPY_OBJECTTYPE_READ'
EXPORTING
objecttype_id = l_bo_model_id
language = sy-langu
cico_mode = 'R'
cico_request_no = ' '
with_verbs = 'X'
with_parameters = ' '
with_exceptions = ' '
with_texts = ' '
with_formatted_documentation = ' '
with_sapscript_documentation = ' '
TABLES
keyfields = t_keys
EXCEPTIONS
not_found = 1
permission_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
rc = 1.
EXIT.
ENDIF.
READ TABLE t_keys INTO s_keys INDEX 1.
IF sy-subrc <> 0.
rc = 2.
EXIT.
ENDIF.
LOOP AT t_keys INTO s_keys.
l_tab = s_keys-refstruct.
l_field = s_keys-reffield.
REFRESH t_dfies1.
CALL FUNCTION 'DDIF_FIELDINFO_GET'
EXPORTING
tabname = l_tab
fieldname = l_field
TABLES
dfies_tab = t_dfies1
EXCEPTIONS
not_found = 1
internal_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
rc = 1.
EXIT.
ENDIF.
APPEND LINES OF t_dfies1 TO t_dfies.
ENDLOOP.
SORT t_dfies ASCENDING BY position.
LOOP AT t_dfies INTO s_dfies.
CLEAR ls_sel.
ls_sel-shlpfield = s_dfies-fieldname.
ls_sel-sign = 'I'.
ls_sel-option = 'EQ'.
ls_sel-low = document+l_off(s_dfies-leng).
l_off = l_off + s_dfies-leng.
APPEND ls_sel TO lt_sel.
ENDLOOP.
CALL FUNCTION 'F4_CONV_SELOPT_TO_WHERECLAUSE'
IMPORTING
where_clause = l_where
TABLES
selopt_tab = lt_sel.
SELECT SINGLE COUNT(*) FROM (l_tab) WHERE (l_where).
rc = sy-subrc.
ENDFORM. "Check_entry_exist
*&---------------------------------------------------------------------*
*& Form ALIGN_NOTE_TEXT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM align_note_text TABLES t_content_txt STRUCTURE solisti1.
DATA l_str TYPE string.
DATA ls_contt TYPE solisti1.
LOOP AT t_content_txt INTO ls_contt.
IF sy-tabix > 1.
CONCATENATE l_str
ls_contt-line
INTO l_str SEPARATED BY space.
ELSE.
CONCATENATE l_str
ls_contt-line
INTO l_str.
ENDIF.
ENDLOOP.
REFRESH t_content_txt.
CALL FUNCTION 'SCMS_STRING_TO_FTEXT'
EXPORTING
text = l_str
TABLES
ftext_tab = t_content_txt.
ENDFORM. "ALIGN_NOTE_TEXT
Code: Alles auswählen.
FUNCTION-POOL ZGOSUTILS2. "MESSAGE-ID ..
DEFINE _bapi_message_data_definition.
data:
_mess1 type sy-msgv1,
_mess2 type sy-msgv2,
_mess3 type sy-msgv3,
_mess4 type sy-msgv4,
_bapi_return type BAPIRET2.
END-OF-DEFINITION.
* use Message from T100
DEFINE _bapi_message1.
call function 'FS_BAPI_BAPIRET2_FILL'
exporting
type = &1
cl = &2
number = &3
importing
return = _bapi_return.
END-OF-DEFINITION.
* Free defined Message with up to 4 Parameters
DEFINE _bapi_message2.
_mess1 = &1.
_mess2 = &2.
_mess3 = &3.
_mess4 = &4.
call function 'FS_BAPI_BAPIRET2_FILL'
exporting
type = 'E'
cl = '00'
number = '398'
par1 = _mess1
par2 = _mess2
par3 = _mess3
par4 = _mess4
importing
return = _bapi_return.
END-OF-DEFINITION.
Code: Alles auswählen.
FUNCTION z_bc_read_attachment2.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(DOCUMENT) TYPE SIBFBORIID
*" VALUE(BUSOBJECT) TYPE SIBFTYPEID
*" VALUE(INSTID_B) TYPE SIBFBORIID OPTIONAL
*" EXPORTING
*" VALUE(S_DOC_DATA) TYPE SOFOLENTI1
*" TABLES
*" T_CONTENT_HEX STRUCTURE SOLIX OPTIONAL
*" T_CONTENT_TXT STRUCTURE SOLISTI1 OPTIONAL
*" T_RETURN STRUCTURE BAPIRET2 OPTIONAL
*"----------------------------------------------------------------------
CONSTANTS:
c_catid TYPE sibfcatid VALUE 'BO',
c_region TYPE sofd-folrg VALUE 'B',
c_typeid TYPE sibftypeid VALUE 'MESSAGE',
"c_reltyp TYPE oblreltype VALUE 'ATTA',
c_role_type TYPE mdoblrol-roletype VALUE 'GOSAPPLOBJ'.
TYPES:
BEGIN OF gys_key,
foltp TYPE so_fol_tp,
folyr TYPE so_fol_yr,
folno TYPE so_fol_no,
objtp TYPE so_obj_tp,
objyr TYPE so_obj_yr,
objno TYPE so_obj_no,
forwarder TYPE so_usr_nam,
END OF gys_key.
" Define Messages
_bapi_message_data_definition.
DATA:
" key of Business-Objects
gs_object TYPE sibflporb,
" Link to Object
gt_links TYPE obl_t_link,
gs_links TYPE obl_s_link,
" Link options
gt_relopt TYPE obl_t_relt,
gs_relopt TYPE obl_s_relt,
" Key of Link
gs_key TYPE gys_key,
" Document-ID
gd_doc_id TYPE so_entryid.
" Document content Text and Binary
* ls_return TYPE bapiret2,
* l_mess TYPE sy-msgv2.
" Assign Businessobject-ID
gs_object-instid = document.
gs_object-typeid = busobject.
gs_object-catid = c_catid.
" Link types:
gs_relopt-sign = 'I'.
gs_relopt-option = 'CP'.
" Attachments
gs_relopt-low = '*'.
APPEND gs_relopt TO gt_relopt.
TRY.
" Read links to objects
cl_binary_relation=>read_links_of_binrels(
EXPORTING
is_object = gs_object
it_relation_options = gt_relopt
ip_role = c_role_type
IMPORTING
et_links = gt_links ).
IF NOT instid_b IS INITIAL.
DELETE gt_links WHERE instid_b NE instid_b.
ENDIF.
LOOP AT gt_links INTO gs_links WHERE typeid_b = c_typeid.
gs_key = gs_links-instid_b.
.
" The document ID for SAPOffice is according to the instance ID
gd_doc_id = gs_links-instid_b.
" clear content
CLEAR:t_content_txt, t_content_hex.
" read document
CALL FUNCTION 'SO_DOCUMENT_READ_API1'
EXPORTING
document_id = gd_doc_id
IMPORTING
document_data = s_doc_data
TABLES
object_content = t_content_txt
contents_hex = t_content_hex
EXCEPTIONS
document_id_not_exist = 1
operation_no_authorization = 2
x_error = 3
OTHERS = 4.
" In case that there is a link without content
IF sy-subrc NE 0.
_bapi_message2 gd_doc_id 'has no Data/Content' '' ''.
APPEND _bapi_return TO t_return.
ENDIF.
EXIT. " only single document
ENDLOOP.
CATCH cx_obl_parameter_error cx_obl_internal_error cx_obl_model_error.
" Error handling: Read links
ENDTRY.
ENDFUNCTION.
Code: Alles auswählen.
FUNCTION Z_BC_DELETE_ATTACHMENT2.
*"--------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(DOCUMENT) TYPE SIBFBORIID
*" VALUE(BUSOBJECT) TYPE SIBFTYPEID
*" VALUE(INSTID_B) TYPE SIBFBORIID OPTIONAL
*" VALUE(XCOMMIT) TYPE CHAR01 DEFAULT '1'
*" TABLES
*" T_RETURN STRUCTURE BAPIRET2 OPTIONAL
*" T_DELETED_DATA STRUCTURE SOFOLENTI1 OPTIONAL
*"--------------------------------------------------------------------
CONSTANTS:
c_catid TYPE sibfcatid VALUE 'BO',
c_region TYPE sofd-folrg VALUE 'B',
c_typeid TYPE sibftypeid VALUE 'MESSAGE',
c_role_type TYPE mdoblrol-roletype VALUE 'GOSAPPLOBJ'.
TYPES:
BEGIN OF gys_key,
foltp TYPE so_fol_tp,
folyr TYPE so_fol_yr,
folno TYPE so_fol_no,
objtp TYPE so_obj_tp,
objyr TYPE so_obj_yr,
objno TYPE so_obj_no,
forwarder TYPE so_usr_nam,
END OF gys_key.
" Define Messages
_bapi_message_data_definition.
DATA:
" key of Business-Objects
gs_object TYPE sibflporb,
" Link to Object
gt_links TYPE obl_t_link,
gs_links TYPE obl_s_link,
s_obj_a TYPE sibflporb,
s_obj_b TYPE sibflporb,
l_reltype TYPE oblreltype, " ATTA URL NOTE
" Link options
gt_relopt TYPE obl_t_relt,
gs_relopt TYPE obl_s_relt,
s_doc_data TYPE sofolenti1,
" Key of Link
gs_key TYPE gys_key,
" Document-ID
gd_doc_id TYPE so_entryid,
" Document content Text and Binary
ls_return TYPE bapiret2,
in_update_task TYPE sy-subrc,
l_rc TYPE sy-subrc.
" Assign Businessobject-ID
gs_object-instid = document.
gs_object-typeid = busobject.
gs_object-catid = c_catid.
" Link types:
gs_relopt-sign = 'I'.
gs_relopt-option = 'CP'.
" Attachments
gs_relopt-low = '*'.
APPEND gs_relopt TO gt_relopt.
REFRESH t_deleted_data.
TRY.
" Read links to objects
cl_binary_relation=>read_links_of_binrels(
EXPORTING
is_object = gs_object
it_relation_options = gt_relopt
ip_role = c_role_type
IMPORTING
et_links = gt_links ).
IF NOT instid_b = 'ALL'.
IF NOT instid_b IS INITIAL.
DELETE gt_links WHERE instid_b NE instid_b.
IF gt_links[] IS INITIAL.
_bapi_message2 'No Links found.' '' '' ''.
APPEND _bapi_return TO t_return.
EXIT.
ENDIF.
ELSE.
_bapi_message2 'No Key Parameter.' '' '' ''.
APPEND _bapi_return TO t_return.
EXIT.
ENDIF.
ENDIF.
LOOP AT gt_links INTO gs_links WHERE typeid_b = c_typeid.
gs_key = gs_links-instid_b.
.
" The document ID for SAPOffice is according to the instance ID
gd_doc_id = gs_links-instid_b.
" read document
CALL FUNCTION 'SO_DOCUMENT_READ_API1'
EXPORTING
document_id = gd_doc_id
IMPORTING
document_data = s_doc_data
EXCEPTIONS
document_id_not_exist = 1
operation_no_authorization = 2
x_error = 3
OTHERS = 4.
l_rc = sy-subrc.
CASE l_rc.
WHEN 0.
WHEN 1.
_bapi_message2 'SO_DOCUMENT_READ_API1' 'document_id_not_exist' '' ''.
APPEND _bapi_return TO t_return.
WHEN 2.
_bapi_message2 'SO_DOCUMENT_READ_API1' 'operation_no_authorization' '' ''.
APPEND _bapi_return TO t_return.
WHEN OTHERS.
_bapi_message2 'SO_DOCUMENT_READ_API1' 'unknown error' '' ''.
APPEND _bapi_return TO t_return.
ENDCASE.
IF l_rc = 0.
CALL FUNCTION 'SO_DOCUMENT_DELETE_API1'
EXPORTING
document_id = gd_doc_id
unread_delete = 'X'
put_in_trash = ' '
EXCEPTIONS
document_not_exist = 1
operation_no_authorization = 2
parameter_error = 3
x_error = 4
enqueue_error = 5
OTHERS = 6.
l_rc = sy-subrc.
CASE l_rc.
WHEN 0.
WHEN 1.
_bapi_message2 'SO_DOCUMENT_DELETE_API1' 'document_id_not_exist' '' ''.
APPEND _bapi_return TO t_return.
WHEN 2.
_bapi_message2 'SO_DOCUMENT_DELETE_API1' 'operation_no_authorization' '' ''.
APPEND _bapi_return TO t_return.
WHEN 3.
_bapi_message2 'SO_DOCUMENT_DELETE_API1' 'parameter_error' '' ''.
APPEND _bapi_return TO t_return.
WHEN 4.
_bapi_message2 'SO_DOCUMENT_DELETE_API1' 'x_error' '' ''.
APPEND _bapi_return TO t_return.
WHEN 5.
_bapi_message2 'SO_DOCUMENT_DELETE_API1' 'enqueue_error' '' ''.
APPEND _bapi_return TO t_return.
WHEN OTHERS.
_bapi_message2 'SO_DOCUMENT_DELETE_API1' 'unknown error' '' ''.
APPEND _bapi_return TO t_return.
ENDCASE.
IF l_rc = 0.
s_obj_a-instid = gs_links-instid_a.
s_obj_a-typeid = gs_links-typeid_a.
s_obj_a-catid = gs_links-catid_a.
s_obj_b-instid = gs_links-instid_b.
s_obj_b-typeid = gs_links-typeid_b.
s_obj_b-catid = gs_links-catid_b.
l_reltype = gs_links-reltype.
TRY.
cl_binary_relation=>delete_link(
EXPORTING
is_object_a = s_obj_a
is_object_b = s_obj_b
ip_reltype = l_reltype ).
" remember deleted links
APPEND s_doc_data TO t_deleted_data.
CATCH cx_obl_parameter_error cx_obl_internal_error cx_obl_model_error.
ENDTRY.
CASE xcommit.
WHEN '1'.
COMMIT WORK AND WAIT.
WHEN '2'.
" see if we are in update task
CALL FUNCTION 'TH_IN_UPDATE_TASK'
IMPORTING
in_update_task = in_update_task.
IF in_update_task IS INITIAL.
COMMIT WORK AND WAIT.
ENDIF.
WHEN OTHERS.
ENDCASE.
ENDIF.
ENDIF.
ENDLOOP.
CATCH cx_obl_parameter_error cx_obl_internal_error cx_obl_model_error.
" Error handling: Read links
ENDTRY.
ENDFUNCTION.
Code: Alles auswählen.
FUNCTION Z_BC_GOS_INFO2.
*"--------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(DOCUMENT) TYPE SIBFBORIID
*" VALUE(BUSOBJECT) TYPE SIBFTYPEID
*" VALUE(READ_KEYFIELDS) TYPE XFELD DEFAULT 'X'
*" TABLES
*" T_LINKS STRUCTURE OBL_S_LINK OPTIONAL
*" T_RETURN STRUCTURE BAPIRET2 OPTIONAL
*" T_KEYFIELDS STRUCTURE RPYBOKE OPTIONAL
*"--------------------------------------------------------------------
CONSTANTS:
c_catid TYPE sibfcatid VALUE 'BO',
c_role_type TYPE mdoblrol-roletype VALUE 'GOSAPPLOBJ'.
" Define Messages
_bapi_message_data_definition.
DATA:
" Schlüssel des Business-Objekts
gs_object TYPE sibflporb,
" Verknüpfungen zum Objekt
gt_links TYPE obl_t_link,
* gs_links TYPE obl_s_link,
" Verknüpfungsoptionen
gt_relopt TYPE obl_t_relt,
gs_relopt TYPE obl_s_relt,
lv_objtype TYPE rpybobs-objtype.
" Businessobjekt-ID übernehmen
gs_object-instid = document.
gs_object-typeid = busobject.
gs_object-catid = c_catid.
" Verknüpfungstypen:
gs_relopt-sign = 'I'.
gs_relopt-option = 'CP'.
" Anhänge
gs_relopt-low = '*'.
APPEND gs_relopt TO gt_relopt.
TRY.
" Verknüpfungen zum Objekt lesen
cl_binary_relation=>read_links_of_binrels(
EXPORTING
is_object = gs_object
it_relation_options = gt_relopt
ip_role = c_role_type
IMPORTING
et_links = gt_links ).
t_links[] = gt_links.
CATCH cx_obl_parameter_error cx_obl_internal_error cx_obl_model_error.
ENDTRY.
IF gt_links[] IS INITIAL.
_bapi_message2 'No Links found.for' busobject document ''.
APPEND _bapi_return TO t_return.
ENDIF.
CHECK NOT read_keyfields IS INITIAL.
lv_objtype = busobject.
CALL FUNCTION 'RPY_OBJECTTYPE_READ'
EXPORTING
objecttype_id = lv_objtype
with_verbs = 'X'
with_parameters = ' '
with_exceptions = ' '
with_texts = ' '
with_formatted_documentation = ' '
with_sapscript_documentation = ' '
TABLES
keyfields = t_keyfields
EXCEPTIONS
not_found = 1
permission_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
_bapi_message2 'No Keyfields found.for' lv_objtype '' ''.
APPEND _bapi_return TO t_return.
ENDIF.
ENDFUNCTION.
Code: Alles auswählen.
*&---------------------------------------------------------------------*
*& Report Z_CREATE_GOS2
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT z_create_gos2.
DATA:
" Dokumenten-Grunddaten
gs_doc_info TYPE sofolenti1
" Dokumenteninhalt binär
, gt_contx TYPE solix_tab
" Dateiinformationen
, gd_file TYPE string
, gd_flen TYPE i
.
PARAMETERS:
" Eingabefelder für die ID des Business-Objekts
p_instid TYPE sibfboriid OBLIGATORY DEFAULT '0000000008',
p_typeid TYPE sibftypeid OBLIGATORY DEFAULT 'BUS2032',
p_catid TYPE sibfcatid OBLIGATORY DEFAULT 'BO',
p_file TYPE ibipparms-path OBLIGATORY VISIBLE LENGTH 40 DEFAULT 'C:\temp\Test.pdf'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
START-OF-SELECTION.
gd_file = p_file.
" Datei hochladen
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = gd_file
filetype = 'BIN'
IMPORTING
filelength = gd_flen
TABLES
data_tab = gt_contx
EXCEPTIONS
OTHERS = 1.
DATA:
doc_descr TYPE sodocchgi1-obj_descr VALUE 'Das ist ein Test',
doc_name TYPE sodocchgi1-obj_name VALUE 'Test.pdf'.
DATA t_return TYPE TABLE OF bapiret2.
gs_doc_info-obj_type = 'PDF'.
gs_doc_info-doc_size = gd_flen.
gs_doc_info-obj_descr = doc_descr.
gs_doc_info-obj_name = doc_name.
CALL FUNCTION 'Z_BC_CREATE_ATTACHMENT2'
EXPORTING
document = p_instid
busobject = p_typeid
RELTYPE = 'ATTA'
check_bo = 'X'
xcommit = '2'
s_doc_data = gs_doc_info
TABLES
t_content_hex = gt_contx
t_return = t_return.
Code: Alles auswählen.
*&---------------------------------------------------------------------*
*& Report Z_CREATE_GOS5
*&
*&---------------------------------------------------------------------*
*&
*& Create URL
*&---------------------------------------------------------------------*
REPORT z_create_gos6.
DATA:
" Dokumenten-Grunddaten
s_doc_data TYPE sofolenti1
" Dokumenteninhalt binär
, gt_contt TYPE TABLE OF solisti1
, gs_contt TYPE solisti1
, t_return TYPE TABLE OF bapiret2
.
PARAMETERS:
" Eingabefelder für die ID des Business-Objekts
p_insid1 TYPE sibfboriid OBLIGATORY DEFAULT '2130001978',
p_typeid TYPE sibftypeid OBLIGATORY DEFAULT 'BUS2032'.
s_doc_data-obj_name = p_insid1.
s_doc_data-obj_descr = 'Test with URL'.
s_doc_data-obj_langu = sy-langu.
s_doc_data-obj_type = 'URL'.
*s_doc_data-doc_size MUST BE INITIAL !!!
REFRESH gt_contt.
gs_contt = '&KEY&https://www.abapforum.com/forum/'.
APPEND gs_contt TO gt_contt.
CALL FUNCTION 'Z_BC_CREATE_ATTACHMENT2'
EXPORTING
document = p_insid1
busobject = p_typeid
reltype = 'URL'
* CHECK_BO = 'X'
* XCOMMIT = '1'
s_doc_data = s_doc_data
TABLES
* T_CONTENT_HEX =
t_content_txt = gt_contt
t_return = t_return.
Code: Alles auswählen.
*&---------------------------------------------------------------------*
*& Report Z_CREATE_GOS5
*&
*&---------------------------------------------------------------------*
*&
*& Create NOTE
*&---------------------------------------------------------------------*
REPORT z_create_gos5.
CONSTANTS _crlf(2) VALUE %_cr_lf.
DATA:
" Dokumenten-Grunddaten
s_doc_data TYPE sofolenti1
" Dokumenteninhalt binär
, gt_contt TYPE TABLE OF solisti1
, gs_contt TYPE solisti1
, t_return TYPE TABLE OF bapiret2
.
PARAMETERS:
" Eingabefelder für die ID des Business-Objekts
p_insid1 TYPE sibfboriid OBLIGATORY DEFAULT '2130001978',
p_typeid TYPE sibftypeid OBLIGATORY DEFAULT 'BUS2032'.
s_doc_data-obj_name = p_insid1.
s_doc_data-obj_descr = 'Test with Note'.
s_doc_data-obj_langu = sy-langu.
*s_doc_data-doc_size MUST BE INITIAL !!!
s_doc_data-obj_type = 'TXT'.
gs_contt-line = 'bei der Nutzung eines User-Exits möchte ich gewisse Schritte nur ausführen wenn sich Inhalte geändert haben'.
APPEND gs_contt TO gt_contt.
gs_contt-line = 'kenne es so, und so sind die internen Tabelle auch bezeichnet, dass in den Tabellen YVBPA etc. die Inhalte zum'.
APPEND gs_contt TO gt_contt.
gs_contt-line = 'Start der Transaktion befinden, in den Tabelle XVBPA etc. die aktuellen Belegdaten. Das System erkennt dann bei'.
APPEND gs_contt TO gt_contt.
gs_contt-line = 'Unterschieden zwischen z.B. XVBPA und YVBPA ob sich Inhalte geändert haben und der Beleg gespeichert werden'.
APPEND gs_contt TO gt_contt.
gs_contt-line = 'Leider sind die Tabellen YVBPA etc. leer. Wie kann ich erkennen ob sich z.B. der WE oder die Materialnummer'.
APPEND gs_contt TO gt_contt.
CALL FUNCTION 'Z_BC_CREATE_ATTACHMENT2'
EXPORTING
document = p_insid1
busobject = p_typeid
RELTYPE = 'NOTE'
* CHECK_BO = 'X'
* XCOMMIT = '1'
s_doc_data = s_doc_data
TABLES
* T_CONTENT_HEX =
t_content_txt = gt_contt
t_return = t_return.
Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag (Insgesamt 4):
black_adept • ewx • Jan • deejey