SAP Office Bild Anlegen ohne SE78

Getting started ... Alles für einen gelungenen Start.
1 Beitrag • Seite 1 von 1
1 Beitrag Seite 1 von 1

SAP Office Bild Anlegen ohne SE78

Beitrag von autohandel7 (Specialist / 186 / 67 / 0 ) »
Hallo liebe Abap-Experten,
ich stehe momentan leider vor einem Problem ,
Folgendes, ich habe ein Programm, die liest Anlagen von SAP Office(in meinem Beispiel ein Bild) und dann soll dieses Bild in tr.SE78 gespeichert werden.
Das Pragramm leuft supper, ich sehe gespeicherte Daten (Name, Grosse, Breite us.w)vom Bild im Tabelle STXBITMAPS, leider wenn ich versuche dieses Bild vom tr SE78 anschauen, bekomme ich Nachrichten, dass kein Bild gefunden. Auf mein Meinung fehlt verbindung zw Bild und name im STXBITMAPS. Wahrscheinlich kann jemand mein Programm testen, und Fehler finden?
Das Programm hat zwei Teile, erste ich lese Anlage von ein bestimte Debitor (tr VD03) und zweite teil ich vlege dieses Bild in SE78.
In Teil zwei 2, habe ich Probiert Bild vom PC Speichern, bekomme ich gleiche Fehler.

REPORT ZSE78_MASS_2.
*Teil 1 " Bild lesen VD03
**MESSAGE-ID ZX.
*
*
*
*
*
* 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
* .
*
* 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,
*
* " Schlüssel einer Verknüpfung
* gs_key TYPE gys_key,
*
* " Dokumenten-ID
* gd_doc_id TYPE so_entryid,
*
* " Dokumenten-Grunddaten
* gs_doc_data TYPE sofolenti1,
*
* " Dokumenteninhalt Text und Binär
* gt_contx TYPE solix_tab,
* gt_cont TYPE soli_tab,
* gt_cont_aut type soli_tab,
* wat_cont TYPE soli_tab,
* filename TYPE STRING,
* filename1 TYPE STRING,
*
* gt_para type selc_tab,
* gt_atlist TYPE soli_tab, " OCCURS 1 WITH HEADER LINE,
* gt_reclist TYPE SORECLSTI1 OCCURS 5 WITH HEADER LINE,
* gt_OBJHEAD LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE
**OBJECT_HEADER LIKE SOLISTI1
**OBJECT_CONTENT LIKE SOLISTI1
**OBJECT_PARA LIKE SOPARAI1
**OBJECT_PARB LIKE SOPARBI1
**ATTACHMENT_LIST LIKE SOATTLSTI1
**RECEIVER_LIST LIKE SORECLSTI1
**CONTENTS_HEX LIKE SOLIX
* .
*
* PARAMETERS
* " Eingabefelder für die ID des Business-Objekts
* : p_instid TYPE sibfboriid OBLIGATORY DEFAULT '8500000020'
* , p_typeid TYPE sibftypeid OBLIGATORY DEFAULT 'KNA1'
* , p_catid TYPE sibfcatid OBLIGATORY DEFAULT 'BO'
* .
*
* START-OF-SELECTION.
*
* " Businessobjekt-ID übernehmen
* gs_object-instid = p_instid.
* gs_object-typeid = p_typeid.
* gs_object-catid = p_catid.
*
* " Verknüpfungstypen:
* gs_relopt-sign = 'I'.
* gs_relopt-option = 'EQ'.
*
* " Anhänge
* gs_relopt-low = 'ATTA'.
* APPEND gs_relopt TO gt_relopt.
* " Notizen
* gs_relopt-low = 'NOTE'.
* APPEND gs_relopt TO gt_relopt.
* " URLs
* gs_relopt-low = 'URL'.
* 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 = 'GOSAPPLOBJ'
* IMPORTING
* et_links = gt_links ).
* LOOP AT gt_links INTO gs_links WHERE typeid_b = 'MESSAGE'.
* " Optional: Schlüsselkomponenten extrahieren
* gs_key = gs_links-instid_b.
* WRITE: / 'foltp', gs_key-foltp
* , / 'folyr', gs_key-folyr
* , / 'folno', gs_key-folno
* , / 'objtp', gs_key-objtp
* , / 'objyr', gs_key-objyr
* , / 'objno', gs_key-objno
* .
* " Die Dokumenten-ID für SAPOffice entspricht der ermittelten
* " Instanz-ID
* gd_doc_id = gs_links-instid_b.
*
* " Dokumenteninhalte löschen
* CLEAR
* : gt_cont
* , gt_contx
* .
* " Dokument lesen
* CALL FUNCTION 'SO_DOCUMENT_READ_API1'
* EXPORTING
* document_id = gd_doc_id
* IMPORTING
* document_data = gs_doc_data
* TABLES
* object_content = gt_cont
* contents_hex = gt_contx
* OBJECT_PARA = gt_para
* ATTACHMENT_LIST = gt_atlist
* RECEIVER_LIST = gt_reclist
* OBJECT_HEADER = gt_OBJHEAD
*
* EXCEPTIONS
* document_id_not_exist = 1
* operation_no_authorization = 2
* x_error = 3
* OTHERS = 4.
* IF sy-subrc <> 0.
* " Fehlerbehandlung: Lesen des Dokuments
* ELSE.
** read TABLE gt_cont into wat_cont INDEX 1.
* "Ausgabe einiger Kopfdaten
* WRITE: / gs_doc_data-doc_id,
* / gs_doc_data-object_id,
* / gs_doc_data-obj_type,
* / gs_doc_data-obj_name,
* / gs_doc_data-obj_descr,
* / gs_doc_data-obj_langu,
* / gs_doc_data-creator_id,
* / gs_doc_data-creat_name,
* / gs_doc_data-creat_fnam,
* / gs_doc_data-creat_date,
* / gs_doc_data-DOC_SIZE.
*

* ENDIF.
* SKIP.
* IF NOT gt_cont[] IS INITIAL.
* " Es gibt Inhalt im Textformat
* WRITE: 7 'TXT'.
* ENDIF.
* IF NOT gt_contx[] IS INITIAL.
* " Es gibt Inhalt im Binärformat
* WRITE: 14 'BIN'.
* ENDIF.
* ENDLOOP.
*
* CATCH cx_obl_parameter_error cx_obl_internal_error cx_obl_model_error.
* " Fehlerbehandlung: Lesen der Verknüpfungen
* ENDTRY.
**


*-----------------------------------------------------


*-----Teil 2 Bild Speichern SE78------------------------------------------

TYPE-POOLS: sbdst.
DATA: bds_object TYPE REF TO cl_bds_document_set,
bds_components TYPE sbdst_components,
wa_bds_components TYPE LINE OF sbdst_components,
bds_signature TYPE sbdst_signature,
wa_bds_signature TYPE LINE OF sbdst_signature,
bds_properties TYPE sbdst_properties,
wa_bds_properties TYPE LINE OF sbdst_properties,
wa_stxbitmaps TYPE stxbitmaps,
BEGIN OF bitmap OCCURS 0,
l(64) TYPE x,
END OF bitmap,
bytecount TYPE i,
dpi TYPE stxbitmaps-resolution,
bds_bytecount TYPE i,
width_tw TYPE stxbitmaps-widthtw,
height_tw TYPE stxbitmaps-heighttw,
width_pix TYPE stxbitmaps-widthpix,
height_pix TYPE stxbitmaps-heightpix,
bds_content TYPE sbdst_content,
docid TYPE stxbitmaps-docid.






*-----------------------------------------------------
*1 - Lock graphics
CALL FUNCTION 'ENQUEUE_ESSGRABDS'
EXPORTING
tdobject = 'GRAPHICS'
tdname = 'nome8'
tdid = 'BMAP'
tdbtype = 'BCOL'
EXCEPTIONS
foreign_lock = 1
OTHERS = 2.

*2 - Get File
Data: filename TYPE STRING.
Move 'test_bild' to filename.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = 'C:\Temp\test.bmp'
filetype = 'BIN'
IMPORTING
filelength = bytecount
TABLES
data_tab = bitmap
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4

OTHERS = 17.
IF sy-subrc NE 0.
CALL FUNCTION 'DEQUEUE_ESSGRABDS'
EXPORTING
tdobject = 'GRAPHICS'
tdname = 'nome8'
tdid = 'BMAP'
tdbtype = 'BCOL'.
EXIT.
ENDIF.
*data: gs_doc_data-DOC_SIZEnew TYPE i.
*Move: gs_doc_data-DOC_SIZE to bytecount. "gs_doc_data-DOC_SIZEnew.
*3 - Convert file to desired format
CALL FUNCTION 'SAPSCRIPT_CONVERT_BITMAP_BDS'
EXPORTING
color = 'X'
format = 'BMP'
resident = space
bitmap_bytecount = bytecount
compress_bitmap = space
IMPORTING
width_tw = width_tw
height_tw = height_tw
width_pix = width_pix
height_pix = height_pix
dpi = dpi
bds_bytecount = bds_bytecount
TABLES
bitmap_file = bitmap "gt_cont "bitmap
bitmap_file_bds = bds_content
EXCEPTIONS
format_not_supported = 1
no_bmp_file = 2
bmperr_invalid_format = 3
bmperr_no_colortable = 4
bmperr_unsup_compression = 5
bmperr_corrupt_rle_data = 6
OTHERS = 7.
IF sy-subrc NE 0.
CALL FUNCTION 'DEQUEUE_ESSGRABDS'
EXPORTING
tdobject = 'GRAPHICS'
tdname = 'nome8'
tdid = 'BMAP'
tdbtype = 'BCOL'.
EXIT.
ENDIF.

*4 - Create object of image
CREATE OBJECT bds_object.
wa_bds_components-doc_count = '1'.
wa_bds_components-comp_count = '1'.
wa_bds_components-mimetype = 'application/octet-stream'.
wa_bds_components-comp_size = bds_bytecount.
APPEND wa_bds_components TO bds_components.
wa_bds_signature-doc_count = '1'.
APPEND wa_bds_signature TO bds_signature.
CALL METHOD bds_object->create_with_table
EXPORTING
classname = 'DEVC_STXD_BITMAP'
classtype = 'OT'
components = bds_components
content = bds_content
CHANGING
signature = bds_signature
EXCEPTIONS
OTHERS = 1.
IF sy-subrc NE 0.
CALL FUNCTION 'DEQUEUE_ESSGRABDS'
EXPORTING
tdobject = 'GRAPHICS'
tdname = 'nome8'
tdid = 'BMAP'
tdbtype = 'BCOL'.
EXIT.
ENDIF.
READ TABLE bds_signature INDEX 1 INTO wa_bds_signature
TRANSPORTING doc_id.
CHECK sy-subrc = 0.
docid = wa_bds_signature-doc_id.

*5 - Save IMAGE
wa_stxbitmaps-tdname = 'nome8'.
wa_stxbitmaps-tdobject = 'GRAPHICS'.
wa_stxbitmaps-tdid = 'BMAP'.
wa_stxbitmaps-tdbtype = 'BCOL'.
wa_stxbitmaps-docid = docid.
wa_stxbitmaps-widthpix = width_pix.
wa_stxbitmaps-heightpix = height_pix.
wa_stxbitmaps-widthtw = width_tw.
wa_stxbitmaps-heighttw = height_tw.
wa_stxbitmaps-resolution = dpi.
wa_stxbitmaps-resident = space.
wa_stxbitmaps-autoheight = 'X'.
INSERT into stxbitmaps values wa_stxbitmaps.
IF sy-subrc NE 0.
CALL FUNCTION 'DEQUEUE_ESSGRABDS'
EXPORTING
tdobject = 'GRAPHICS'
tdname = 'nome8'
tdid = 'BMAP'
tdbtype = 'BCOL'.
EXIT.
ENDIF.

*6 - Save attributes
wa_bds_properties-prop_name = 'DESCRIPTION'.
wa_bds_properties-prop_value = 'Test888'.
APPEND wa_bds_properties TO bds_properties.
CALL METHOD bds_object->change_properties
EXPORTING
classname = 'DEVC_STXD_BITMAP'
classtype = 'OT'
doc_id = docid
doc_ver_no = '1'
doc_var_id = '1'
CHANGING
properties = bds_properties
EXCEPTIONS
OTHERS = 1.

*7 - Unlock Grahics
CALL FUNCTION 'DEQUEUE_ESSGRABDS'
EXPORTING
tdobject = 'GRAPHICS'
tdname = 'nome8'
tdid = 'BMAP'
tdbtype = 'BCOL'.


Vielen Dank für Hilfe

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Seite 1 von 1

Vergleichbare Themen

2
Antw.
2081
Views
GOS Anhänge auslesen und dann in Se78 & anlegen
von autohandel7 » 16.09.2014 11:47 • Verfasst in ABAP® für Anfänger
2
Antw.
1383
Views
Transaktion SE78
von SAP_ENTWICKLER » 28.11.2013 11:28 • Verfasst in ABAP® für Anfänger
5
Antw.
5051
Views
Grafiken in Smart-Forms einbinden ohne SE78
von Trulchen » 05.08.2013 11:51 • Verfasst in ABAP® Core
8
Antw.
6551
Views
tif-Bild im Dynpro
von geine » 29.11.2004 11:28 • Verfasst in Dialogprogrammierung
3
Antw.
1821
Views
Bild per IDOC
von andyduerr » 09.05.2006 15:38 • Verfasst in ABAP® Core

Über diesen Beitrag

autohandel7
Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.