GOS Anlagen (ATTA-URL-NOTE/) Lesen / Schreiben / Löschen
Posted: Sun Jan 26, 2020 2:46 pm
Moin.
Ich hatte vor kurzem das Vergnügen eine generische Schnittstelle für das GOS zu programmieren in Form von RFC-Funktionsbausteinen (soll auch für ODATA sein).
Zusätzlich möchte ich eine dynamische Check Funktion hervorheben, die prüfen soll, ob der Beleg überhaupt existiert an den man eine Anlage hängen möchte !
Diese funktioniert für die gängigen Objektypen, wie BUS2032 oder BKPF.
Falls nicht, oder bei Eigenentwicklung, kann man die eingebaute Prüfung abschalten.
Die Mimik mit dem Autocommit dient der Tatsache , das z. B: das Anlegen einer Anlage auch im Verbucher stattfinden kann, aber ohne Commit funktioniert das Anlegen nicht .
Hier nun das Anlegen / Lesen und Löschen von GOS Dokumenten vom Typ ATTA / URL / NOTE:
Der Top include mit dem Makros:
und nun das Lesen von GOS-Dokumenten.
.. Das LÖSCHEN von Anlagen:..
(bei INSTID_B = ALL, werden alle Anlagen des Belegs gelöscht)
... Ermitteln aller Anlagen zum Beleg plus Schlüsselfelder des Businessobjekts...
.Das Testprogramm:.
. Testprogramm Create URL.
.. Anlegen NOTE.
gruß Jens
Ich hatte vor kurzem das Vergnügen eine generische Schnittstelle für das GOS zu programmieren in Form von RFC-Funktionsbausteinen (soll auch für ODATA sein).
Zusätzlich möchte ich eine dynamische Check Funktion hervorheben, die prüfen soll, ob der Beleg überhaupt existiert an den man eine Anlage hängen möchte !
Diese funktioniert für die gängigen Objektypen, wie BUS2032 oder BKPF.
Falls nicht, oder bei Eigenentwicklung, kann man die eingebaute Prüfung abschalten.
Die Mimik mit dem Autocommit dient der Tatsache , das z. B: das Anlegen einer Anlage auch im Verbucher stattfinden kann, aber ohne Commit funktioniert das Anlegen nicht .
Hier nun das Anlegen / Lesen und Löschen von GOS Dokumenten vom Typ ATTA / URL / NOTE:
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
- 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
- *"----------------------------------------------------------------------
- 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.
- _bapi_message2 'No valid RELTYPE found.' '' '' ''.
- EXIT.
- CASE rc.
- _bapi_message1 'E' '60' '071'.
- _bapi_message1 'E' 'KX' '069'.
- _bapi_message1 'E' '5V' '076'.
- EXIT.
- " 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 .
- 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
- 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.
- COMMIT WORK AND WAIT.
- " see if we are in update task
- CALL FUNCTION 'TH_IN_UPDATE_TASK'
- IMPORTING
- in_update_task = in_update_task.
- COMMIT WORK AND WAIT.
- CATCH cx_obl_parameter_error cx_obl_model_error cx_obl_internal_error.
- *&---------------------------------------------------------------------*
- *& Form Check_entry_exist
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- * -->DOCUMENT text
- * -->BUSOBJECT text
- * -->RC text
- *----------------------------------------------------------------------*
- 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 = ' '
- keyfields = t_keys
- EXCEPTIONS
- not_found = 1
- permission_error = 2
- OTHERS = 3.
- rc = 1.
- EXIT.
- READ TABLE t_keys INTO s_keys INDEX 1.
- rc = 2.
- EXIT.
- 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
- dfies_tab = t_dfies1
- EXCEPTIONS
- not_found = 1
- internal_error = 2
- OTHERS = 3.
- rc = 1.
- EXIT.
- 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.
- CALL FUNCTION 'F4_CONV_SELOPT_TO_WHERECLAUSE'
- IMPORTING
- where_clause = l_where
- selopt_tab = lt_sel.
- rc = sy-subrc.
- *&---------------------------------------------------------------------*
- *& Form ALIGN_NOTE_TEXT
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- CONCATENATE l_str
- ls_contt-line
- INTO l_str SEPARATED BY space.
- ELSE.
- CONCATENATE l_str
- ls_contt-line
- INTO l_str.
- REFRESH t_content_txt.
- CALL FUNCTION 'SCMS_STRING_TO_FTEXT'
- EXPORTING
- text = l_str
- ftext_tab = t_content_txt.
- GeSHi ©
Der Top include mit dem Makros:
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
- 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.
- * use Message from T100
- DEFINE _bapi_message1.
- call function 'FS_BAPI_BAPIRET2_FILL'
- exporting
- type = &1
- cl = &2
- number = &3
- importing
- * 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
- GeSHi ©
und nun das Lesen von GOS-Dokumenten.
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
- 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
- *"----------------------------------------------------------------------
- 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'.
- 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 = '*'.
- 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 ).
- 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
- " read document
- CALL FUNCTION 'SO_DOCUMENT_READ_API1'
- EXPORTING
- document_id = gd_doc_id
- IMPORTING
- document_data = s_doc_data
- 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
- _bapi_message2 gd_doc_id 'has no Data/Content' '' ''.
- CATCH cx_obl_parameter_error cx_obl_internal_error cx_obl_model_error.
- " Error handling: Read links
- GeSHi ©
.. Das LÖSCHEN von Anlagen:..
(bei INSTID_B = ALL, werden alle Anlagen des Belegs gelöscht)
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
- 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
- *"--------------------------------------------------------------------
- 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'.
- 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 = '*'.
- 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 ).
- _bapi_message2 'No Links found.' '' '' ''.
- EXIT.
- ELSE.
- _bapi_message2 'No Key Parameter.' '' '' ''.
- EXIT.
- 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.
- _bapi_message2 'SO_DOCUMENT_READ_API1' 'document_id_not_exist' '' ''.
- _bapi_message2 'SO_DOCUMENT_READ_API1' 'operation_no_authorization' '' ''.
- _bapi_message2 'SO_DOCUMENT_READ_API1' 'unknown error' '' ''.
- 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.
- _bapi_message2 'SO_DOCUMENT_DELETE_API1' 'document_id_not_exist' '' ''.
- _bapi_message2 'SO_DOCUMENT_DELETE_API1' 'operation_no_authorization' '' ''.
- _bapi_message2 'SO_DOCUMENT_DELETE_API1' 'parameter_error' '' ''.
- _bapi_message2 'SO_DOCUMENT_DELETE_API1' 'x_error' '' ''.
- _bapi_message2 'SO_DOCUMENT_DELETE_API1' 'enqueue_error' '' ''.
- _bapi_message2 'SO_DOCUMENT_DELETE_API1' 'unknown error' '' ''.
- 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
- CATCH cx_obl_parameter_error cx_obl_internal_error cx_obl_model_error.
- CASE xcommit.
- COMMIT WORK AND WAIT.
- " see if we are in update task
- CALL FUNCTION 'TH_IN_UPDATE_TASK'
- IMPORTING
- in_update_task = in_update_task.
- COMMIT WORK AND WAIT.
- CATCH cx_obl_parameter_error cx_obl_internal_error cx_obl_model_error.
- " Error handling: Read links
- GeSHi ©
... Ermitteln aller Anlagen zum Beleg plus Schlüsselfelder des Businessobjekts...
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
- 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
- *"--------------------------------------------------------------------
- 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 = '*'.
- 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.
- _bapi_message2 'No Links found.for' busobject document ''.
- 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 = ' '
- keyfields = t_keyfields
- EXCEPTIONS
- not_found = 1
- permission_error = 2
- OTHERS = 3.
- _bapi_message2 'No Keyfields found.for' lv_objtype '' ''.
- GeSHi ©
.Das Testprogramm:.
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
- *&---------------------------------------------------------------------*
- *& 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
- .
- " 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'.
- CALL FUNCTION 'F4_FILENAME'
- EXPORTING
- program_name = syst-cprog
- dynpro_number = syst-dynnr
- field_name = 'P_FILE'
- IMPORTING
- file_name = p_file.
- gd_file = p_file.
- " Datei hochladen
- CALL FUNCTION 'GUI_UPLOAD'
- EXPORTING
- filename = gd_file
- filetype = 'BIN'
- IMPORTING
- filelength = gd_flen
- 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'.
- 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
- t_content_hex = gt_contx
- t_return = t_return.
- GeSHi ©
. Testprogramm Create URL.
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
- *&---------------------------------------------------------------------*
- *& 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
- .
- " 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/'.
- 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
- * T_CONTENT_HEX =
- t_content_txt = gt_contt
- t_return = t_return.
- GeSHi ©
.. Anlegen NOTE.
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
- *&---------------------------------------------------------------------*
- *& Report Z_CREATE_GOS5
- *&
- *&---------------------------------------------------------------------*
- *&
- *& Create NOTE
- *&---------------------------------------------------------------------*
- REPORT z_create_gos5.
- 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
- .
- " 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'.
- gs_contt-line = 'kenne es so, und so sind die internen Tabelle auch bezeichnet, dass in den Tabellen YVBPA etc. die Inhalte zum'.
- gs_contt-line = 'Start der Transaktion befinden, in den Tabelle XVBPA etc. die aktuellen Belegdaten. Das System erkennt dann bei'.
- gs_contt-line = 'Unterschieden zwischen z.B. XVBPA und YVBPA ob sich Inhalte geändert haben und der Beleg gespeichert werden'.
- gs_contt-line = 'Leider sind die Tabellen YVBPA etc. leer. Wie kann ich erkennen ob sich z.B. der WE oder die Materialnummer'.
- 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
- * T_CONTENT_HEX =
- t_content_txt = gt_contt
- t_return = t_return.
- GeSHi ©
gruß Jens