Web Dynpro Dokument aus CV03N (JPG) als Image anzeigen.

WAS, Netweaver, Fiori

Web Dynpro Dokument aus CV03N (JPG) als Image anzeigen.

Postby Marina1007 » Tue Jun 22, 2010 9:54 am

Hallo zusammen,

ich sollte an die Originale der CV03n kommen um diese in meiner Web Dynpro ABAP Anwendung anzuzeigen.
Die Dokumente (hier Bilder) sind dem Dokumentenstamm zugeordnet und befinden sich in der SAP Datenbank. (TCode CV03N)

Gibt es BAPI's o.ä. womit ich beispielsweise einen Link für diese Dateien bekomme und diese mit der Source eines Image im WebDynpro binden kann?

Viele Grüße,
Daniel.
Marina1007
.
.
 
Posts: 3
Joined: Tue Jun 22, 2010 9:54 am

Web Dynpro Dokument aus CV03N

Postby Cheyenne3299 » Thu Jun 24, 2010 11:46 am

Hallo,

nur mal so eine überlegung.
Deine Bilder sind doch bmp kannst du nicht mimeobjekte anlegen und dir die bilder erst mal in deine anwendung holen ?

viele grüße uwe
Cheyenne3299
...
...
 
Posts: 111
Joined: Fri Apr 17, 2009 10:03 am

Postby Marina1007 » Thu Jun 24, 2010 1:30 pm

Doch wäre natürlich auch möglich. Aber ich möchte das die Bilder über die CV03N gepflegt werden können, da sich diese öfters ändern werden. Diese Pflege wird nicht von einem Entwickler übernommen und sollte deshalb in einer normalen SAP-Transaktion möglich sein.
Marina1007
.
.
 
Posts: 3
Joined: Tue Jun 22, 2010 9:54 am

Postby Jolina5273 » Mon Sep 20, 2010 5:17 pm

Hallo,

mich interessiert genau das auch... Vorschau-Bilder aus DISen im WebDynpro anzeigen.
Hast du das hinbekommen? Wenn ja: wie? :)

Grüße
Sven
Jolina5273
..
..
 
Posts: 38
Joined: Tue Feb 22, 2005 11:33 am

Postby Marina1007 » Mon Sep 20, 2010 6:33 pm

Hallo,

habe das Problem folgendermassen gelöst:

( nicht alle Datendeklarationen werden benötigt :wink: )
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.         ls_ps_count_def  type dms_checkout_def,
  2.         ls_ps_doc_file   type  dms_doc_file,
  3.         ls_ps_draw       type draw,
  4.         ls_ps_frontend   type dms_frontend_data,
  5.         lt_ptx_content   type table of drao,
  6.         ls_ptx_content   type drao,
  7.         lv_lines         type sy-tabix,
  8.         lv_strlen        type xstring,
  9.         lv_count         type i,
  10.         lv_orblk         type string,
  11.         l_length         type p length 16,
  12.         l_content        type tsf_xsf_ct,
  13.         w_file           type xstring,
  14.         l_grline         type line of tsf_xsf_ct,
  15.         l_linelength     type i,
  16.         url              type string,
  17.         guid             type guid_32,
  18.         matnr1           type bapi_doc_drad-objectkey,
  19.         cached_response  type ref to if_http_response,
  20.         lt_documentlist  type table of bapi_doc_keys,
  21.         ls_documentlist  type bapi_doc_keys,
  22.         lt_documentfiles type table of bapi_doc_files2,
  23.         ls_documentfiles type bapi_doc_files2,
  24. *       sructure for export table with mime data and content
  25.         ls_table_urls    type zbc_ols_url,
  26.         ls_draz          type draz,
  27.         lv_text          type string.
  28.  
  29.   constants: lc_objecttype type bapi_doc_drad-objecttype value 'MARA'.
GeSHi ©


Ausgangspunkt ist der Materialstamm.
Hier erhalten wir die einem Materialstamm zugeordneten Dokumentenstämme mit Documenttype, Documentnumber, und Documentpart
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.   call function 'BAPI_DOCUMENT_GETOBJECTDOCS'
  2.     exporting
  3.       objecttype          = lc_objecttype
  4.       objectkey           = matnr1
  5.       currentversionsonly = 'X'
  6.       date                = sy-datum
  7.     tables
  8.       documentlist        = lt_documentlist.
GeSHi ©



Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.   loop at lt_documentlist into ls_documentlist.
GeSHi ©


Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.       select * from drao into table lt_ptx_content
  2.               where dokar = ls_documentlist-documenttype
  3.                 and doknr = ls_documentlist-documentnumber
  4.                 and dokvr = ls_documentlist-documentversion
  5.                 and doktl = ls_documentlist-documentpart
  6.                 and appnr = ls_documentfiles-originaltype.
GeSHi ©


jetzt werden die BINÄR-Daten in ein XSTRING-Feld transportiert damit dieses
anschliessend der Funktion zur Verfügung gestellt werden kann.

Ermittlung der Gesamtanzahl Zeilen
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.  describe table lt_ptx_content lines lv_lines.
GeSHi ©


Lesen des letzten Eintrage um für diesen die Länge zu ermitten. Der letzte
Eintrag füllt unter Umständen nicht das gesamte Feld. Es darf aber in das
XSTRING Feld nur in der tatsächlichen Länge angehängt werden. Alle anderen
Tabelleneinträge füllen das Feld immer komplett, nur das letzte nicht.

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.  read table lt_ptx_content into ls_ptx_content index lv_lines.
GeSHi ©


jetzt das letzte Feld in eine lokale Variable

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. move ls_ptx_content-orblk to lv_orblk.
GeSHi ©


jetzt bestimmen wir die tatsächliche Länge des letzten Feldes
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.    lv_strlen = strlen( lv_orblk ).
GeSHi ©


jetzt wird noch die Feldänge des Originalfeldes besorgt (sind hier 2550)
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.  describe field ls_ptx_content-orblk length l_linelength in byte mode.
GeSHi ©


nun werden die einzelnen Tabelleneinträge in das XSTING-Feld gefüllt. Immer
das komplette Feld bis zum letzten Eintrag
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.       loop at lt_ptx_content into ls_ptx_content.
GeSHi ©


Zähler ist kleiner als Gesamtanzahl Zeilen

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.  if lv_count < lv_lines.
GeSHi ©


hänge die Daten an das XSTRING Feld an
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.  concatenate w_file ls_ptx_content-orblk into w_file in byte mode.
  2.           l_length = l_length + l_linelength.
  3.         else.
GeSHi ©


beim letzten Eintrag wird nur in Länge der tatsächlich vorhandenen
Daten angehängt.

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. concatenate w_file ls_ptx_content-orblk&#40;lv_strlen&#41; into w_file in byte mode.
  2. lv_count = lv_count + 1.
GeSHi ©


Das Feld w_file enthät nun die Binären Daten des Bilds aus dem Dokumentenstamm.

Anschließend muss eine URL zusammengebastelt werden, mit welcher das Bild (Link) im Layout gebunden wird. Stelle diese URL als variable vom Typ String in deinen View-Context:

siehe hier:
http://forums.sdn.sap.com/thread.jspa?t ... 0&tstart=0

Viel Spaß :lol: und Gruß.

Daniel.
Marina1007
.
.
 
Posts: 3
Joined: Tue Jun 22, 2010 9:54 am

Postby Jolina5273 » Tue Sep 28, 2010 1:11 pm

Wow, nicht schlecht...

...allerdings klappt das bei mir nicht. Ich nehme mal an, dass bei dir die Vorschaubilder direkt in der SAP-Datenbank abgelegt werden (Ablagekategorie SAP_SYSTEM). Die Tabelle DRAO ist in unserem System komplett leer.

Hat jemand eine Idee, wie man die Datei als XSTRING aus dem KPRO bekommt?

Gruß
Sven
Jolina5273
..
..
 
Posts: 38
Joined: Tue Feb 22, 2005 11:33 am


Return to Web Application Server

Who is online

Users browsing this forum: No registered users and 4 guests

cron