Sie sind auf Seite 1von 280

Desktop Office Integration (BC-CI)

Release 4.6C

HELP.BCCIOFFI

Desktop Office Integration (BC-CI)

SAP AG

Copyright
Copyright 2001 SAP AG. Alle Rechte vorbehalten. Weitergabe und Vervielfltigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher Form auch immer, ohne die ausdrckliche schriftliche Genehmigung durch SAP AG nicht gestattet. In dieser Publikation enthaltene Informationen knnen ohne vorherige Ankndigung gendert werden. Die von SAP AG oder deren Vertriebsfirmen angebotenen Software-Produkte knnen SoftwareKomponenten auch anderer Software-Hersteller enthalten. Microsoft , WINDOWS , NT , EXCEL , Word , PowerPoint und SQL Server sind eingetragene Marken der Microsoft Corporation. IBM , DB2 , OS/2 , DB2/6000 , Parallel Sysplex , MVS/ESA , RS/6000 , AIX , S/390 , AS/400 , OS/390 und OS/400 sind eingetragene Marken der IBM Corporation. ORACLE ist eine eingetragene Marke der ORACLE Corporation. INFORMIX -OnLine for SAP und Informix Dynamic Server Informix Software Incorporated.
TM

sind eingetragene Marken der

UNIX , X/Open , OSF/1 und Motif sind eingetragene Marken der Open Group. HTML, DHTML, XML, XHTML sind Marken oder eingetragene Marken des W3C , World Wide Web Consortium, Massachusetts Institute of Technology. JAVA ist eine eingetragene Marke der Sun Microsystems, Inc. JAVASCRIPT ist eine eingetragene Marke der Sun Microsystems, Inc., verwendet unter der Lizenz der von Netscape entwickelten und implementierten Technologie. SAP, SAP Logo, R/2, RIVA, R/3, ABAP, SAP ArchiveLink, SAP Business Workflow, WebFlow, SAP EarlyWatch, BAPI, SAPPHIRE, Management Cockpit, mySAP.com Logo und mySAP.com sind Marken oder eingetragene Marken der SAP AG in Deutschland und vielen anderen Lndern weltweit. Alle anderen Produkte sind Marken oder eingetragene Marken der jeweiligen Firmen.

April 2001

SAP AG

Desktop Office Integration (BC-CI)

Symbole
Symbol Bedeutung Achtung Beispiel Hinweis Empfehlung Syntax

April 2001

Desktop Office Integration (BC-CI)

SAP AG

Inhalt
Desktop Office Integration (BC-CI)..................................................................10
Desktop Office Integration ......................................................................................................... 11 Architektur der Desktop Office Integration .............................................................................. 12 Instanzen fr die SAP Desktop Office Integration ................................................................... 14 Programmierung der Desktop-Office-Anbindung.................................................................... 16 Verwendung von Controls im WAN........................................................................................... 18 Spezielle Hinweise fr die Desktop Office Integration ............................................................. 20 Fehlerbehandlung nach Methodenaufruf ................................................................................. 21 Fehlermeldungen und ihre Bedeutung..................................................................................... 23 aise_message .......................................................................................................................... 25 get_message............................................................................................................................ 26 Zentrale Instanz zur Verwaltung der Desktop Office ............................................................... 27 Realisierung der Desktop-Office-Anbindung............................................................................ 28 Generische Parameter........................................................................................................ 31 init_control........................................................................................................................... 32 destroy_control ................................................................................................................... 34 link_control .......................................................................................................................... 35 release_all_documents ....................................................................................................... 37 set_window_properties ....................................................................................................... 38 set_inplace_border_space.................................................................................................. 39 get_document_proxy .......................................................................................................... 40 get_registered_doc_types................................................................................................... 42 check_registered_doc_types .............................................................................................. 43 get_link_server.................................................................................................................... 44 get_table_collection ............................................................................................................ 45 get_extensions .................................................................................................................... 46 set_focus............................................................................................................................. 47 get_control_object............................................................................................................... 48 Dokumente ................................................................................................................................... 49 Arbeiten mit Dokumenten......................................................................................................... 50 Methoden des Interfaces i_oi_document_proxy................................................................. 53 Generische Parameter................................................................................................... 54 create_document ........................................................................................................... 55 view_document.............................................................................................................. 57 view_document_from_table........................................................................................... 58 open_document ............................................................................................................. 59 open_document_from_table .......................................................................................... 61 reopen_document.......................................................................................................... 63 open_activex_document................................................................................................ 65 play_document .............................................................................................................. 66 play_document_from_table ........................................................................................... 67 save_document_to_url .................................................................................................. 68

April 2001

SAP AG

Desktop Office Integration (BC-CI)

save_document_to_table............................................................................................... 69 save_as.......................................................................................................................... 70 save_copy_as ................................................................................................................ 71 close_document............................................................................................................. 72 close_activex_document ............................................................................................... 73 has_changed ................................................................................................................. 74 release_document ......................................................................................................... 75 is_open .......................................................................................................................... 76 is_destroyed .................................................................................................................. 77 has_standard_interface ................................................................................................. 78 add_menu_bar............................................................................................................... 79 add_menu_popup.......................................................................................................... 80 add_menu_item ............................................................................................................. 81 delete_menu_item ......................................................................................................... 82 select_all ........................................................................................................................ 83 clear_selection............................................................................................................... 84 cut_selection .................................................................................................................. 85 copy_selection ............................................................................................................... 86 paste_clipboard ............................................................................................................. 87 paste_special................................................................................................................. 88 page_setup .................................................................................................................... 89 print_document .............................................................................................................. 90 execute_macro .............................................................................................................. 91 has_wordprocessor_interface ....................................................................................... 92 get_wordprocessor_interface ........................................................................................ 93 get_document_type ....................................................................................................... 94 get_document_handle ................................................................................................... 95 get_application_property ............................................................................................... 96 update_document_links................................................................................................. 97 has_spreadsheet_interface ........................................................................................... 98 get_spreadsheet_interface ............................................................................................ 99 has_form_interface ...................................................................................................... 100 get_form_interface....................................................................................................... 101 has_mail_merge_interface .......................................................................................... 102 get_mail_merge_interface ........................................................................................... 103 has_pivot_interface...................................................................................................... 104 get_pivot_interface ...................................................................................................... 105 get_script_collection .................................................................................................... 106 get_document_cookie.................................................................................................. 107 Ereignisse der Office-Anwendung verarbeiten ................................................................. 108 Ereignisverarbeitung als statische Methode realisieren .............................................. 109 Ereignisverarbeitung als Objektmethode realisieren................................................... 110 Datenaustausch zwischen R/3 und Desktop-Anwendung .................................................... 111 Der Link Server ...................................................................................................................... 113 Mit dem Link Server arbeiten ............................................................................................ 114

April 2001

Desktop Office Integration (BC-CI)

SAP AG

Generische Parameter................................................................................................. 116 start_link_server .......................................................................................................... 117 stop_link_server........................................................................................................... 118 add_string_item ........................................................................................................... 119 add_table_item2 .......................................................................................................... 120 add_table_item ............................................................................................................ 122 add_binary_item .......................................................................................................... 123 remove_link_item......................................................................................................... 124 copy_link_item_to_clipboard ....................................................................................... 125 execute_copy_link_dialog............................................................................................ 126 Strategien fr das Arbeiten mit dem Link Server .............................................................. 127 Die Table Collection ............................................................................................................... 128 Mit der Table Collection arbeiten ...................................................................................... 129 Generische Parameter................................................................................................. 131 add_table ..................................................................................................................... 132 add_table_by_url ......................................................................................................... 134 get_table ...................................................................................................................... 135 get_table_by_url .......................................................................................................... 136 remove_table ............................................................................................................... 137 remove_all_tables........................................................................................................ 138 Das Wordprocessor-Interface .................................................................................................. 139 Arbeiten mit dem Wordprocessor-Interface ........................................................................... 140 Generische Parameter...................................................................................................... 142 get_version........................................................................................................................ 143 install_template ................................................................................................................. 144 get_version........................................................................................................................ 145 set_template...................................................................................................................... 146 get_template_info ............................................................................................................. 147 remove_template .............................................................................................................. 148 search ............................................................................................................................... 149 replace .............................................................................................................................. 150 insert_table........................................................................................................................ 151 insert_table2...................................................................................................................... 154 get_table_info ................................................................................................................... 157 clear_table......................................................................................................................... 158 Das Form-Interface.................................................................................................................... 159 Arbeiten mit dem Form-Interface ........................................................................................... 161 Generische Parameter...................................................................................................... 162 set_data ............................................................................................................................ 163 get_data ............................................................................................................................ 165 add_field............................................................................................................................ 166 delete_fields ...................................................................................................................... 167 disconnect_fields .............................................................................................................. 168 get_form_fields ................................................................................................................. 169 protect ............................................................................................................................... 170

April 2001

SAP AG

Desktop Office Integration (BC-CI)

set_modus ........................................................................................................................ 171 Die Serienbriefschnittstelle ...................................................................................................... 172 Arbeiten mit der Serienbriefschnittstelle ................................................................................ 173 Generische Parameter...................................................................................................... 174 set_data_source ............................................................................................................... 175 get_fields........................................................................................................................... 176 merge_one ........................................................................................................................ 177 merge_range..................................................................................................................... 178 print ................................................................................................................................... 179 view ................................................................................................................................... 180 shutdown........................................................................................................................... 181 view_field_codes............................................................................................................... 182 Die Script-Collection ................................................................................................................. 183 Arbeiten mit der Script-Collection........................................................................................... 184 Generische Parameter...................................................................................................... 185 add_script.......................................................................................................................... 186 add_script_from_table ...................................................................................................... 187 remove_all_scripts ............................................................................................................ 188 remove_script ................................................................................................................... 189 Die Tabellenkalkulationsschnittstelle ..................................................................................... 190 Arbeiten mit der Tabellenkalkulationsschnittstelle ................................................................. 191 Generische Parameter...................................................................................................... 194 Der Updating-Parameter................................................................................................... 195 get_active_sheet............................................................................................................... 196 get_dimension................................................................................................................... 197 get_protection ................................................................................................................... 198 get_sheets......................................................................................................................... 199 get_ranges_data ............................................................................................................... 200 get_ranges_names ........................................................................................................... 201 get_cell_format ................................................................................................................. 202 get_cell_formats_table...................................................................................................... 203 get_selection ..................................................................................................................... 204 get_selected_areas........................................................................................................... 205 select_range...................................................................................................................... 206 set_selection ..................................................................................................................... 207 select_sheet ...................................................................................................................... 208 set_color............................................................................................................................ 209 set_font ............................................................................................................................. 210 set_format ......................................................................................................................... 211 set_format_string .............................................................................................................. 212 set_frame .......................................................................................................................... 213 set_ranges_format ............................................................................................................ 214 cell_format ........................................................................................................................ 215 protect ............................................................................................................................... 216 protect_range .................................................................................................................... 217

April 2001

Desktop Office Integration (BC-CI)

SAP AG

add_sheet ......................................................................................................................... 218 set_sheet_name ............................................................................................................... 219 delete_sheet...................................................................................................................... 220 insert_range_dim .............................................................................................................. 221 change_range ................................................................................................................... 222 insert_range ...................................................................................................................... 223 insert_ranges .................................................................................................................... 224 insert_one_table ............................................................................................................... 225 set_ranges_data ............................................................................................................... 226 clear_range ....................................................................................................................... 227 clear_all_ranges................................................................................................................ 228 delete_content_ranges ..................................................................................................... 229 delete_ranges ................................................................................................................... 230 hide_columns.................................................................................................................... 231 show_columns .................................................................................................................. 232 hide_rows.......................................................................................................................... 233 show_rows ........................................................................................................................ 234 set_hierarchy..................................................................................................................... 235 set_hierarchy_table........................................................................................................... 236 clear_hierarchy.................................................................................................................. 237 print ................................................................................................................................... 238 set_zoom .......................................................................................................................... 239 fit_widest ........................................................................................................................... 240 screen_update .................................................................................................................. 241 load_lib.............................................................................................................................. 242 version............................................................................................................................... 243 Wichtige Tabellenstrukturen................................................................................................... 244 Die Pivot-Schnittstelle .............................................................................................................. 250 Arbeiten mit der Pivot-Schnittstelle ........................................................................................ 251 Generische Parameter...................................................................................................... 253 set_source_table............................................................................................................... 254 set_fieldtype ...................................................................................................................... 257 get_allfields ....................................................................................................................... 258 get_allpivottables .............................................................................................................. 259 drill_down .......................................................................................................................... 260 drill_up............................................................................................................................... 261 Wichtige Tabellenstrukturen ............................................................................................. 262 Testwerkzeuge fr die Desktop Office Integration ................................................................ 263 DOI-Installationstest mit ausfhrbarem Programm................................................................ 265 DOI-Installationstest in Word ................................................................................................. 266 DOI-Installationstest in Excel ................................................................................................. 267 Test fr das TableFactory OCX ............................................................................................. 268 Der Document Viewer ............................................................................................................... 269 Verwendung des Document Viewer ........................................................................................ 271 Sourcecode-Beispiel .............................................................................................................. 272 Methoden des Document Viewer ............................................................................................. 274

April 2001

SAP AG

Desktop Office Integration (BC-CI)

init_viewer .............................................................................................................................. 275 view_document_from_url ....................................................................................................... 276 view_document_from_table ................................................................................................... 277 close_document ..................................................................................................................... 279 destroy_viewer ....................................................................................................................... 280

April 2001

Desktop Office Integration (BC-CI) Desktop Office Integration (BC-CI)

SAP AG

Desktop Office Integration (BC-CI)

10

April 2001

SAP AG

Desktop Office Integration (BC-CI) Desktop Office Integration

Desktop Office Integration


Einsatzmglichkeiten
Mit Hilfe der Desktop Office Integration knnen Sie verschiedene OLE2-fhige Desktop-OfficeAnwendungen an das R/3-System anbinden. Sie knnen Funktionen der Office-Anwendung aus dem R/3-System anstoen und auf Ereignisse der Office-Anwendung reagieren.

Einfhrungshinweise
Die entsprechenden Applikationen mssen eine OLE2-Schnittstelle untersttzen. Weiterhin mu auf den Prsentationsrechnern das Betriebssystem Windows95 oder Windows NT eingerichtet sein.

Integration
Dokumente sollten im Business Document Server [Extern] abgelegt werden. Stellen Sie sicher, da das SAP GUI mit all seinen Komponenten (insbesondere den OCXBausteinen) installiert wurde.

Funktionsumfang
Die Desktop Office Integration stellt eine ABAP-OO-Schnittstelle zur Verfgung, mit der Sie spezielle Desktop-Office-Anwendungen ber die OLE2-Schnittstelle starten, schlieen und manipulieren knnen. Dabei kann die Office-Anwendung in einem separaten Fenster oder im R/3-Fenster geffnet werden. Die Dokumente knnen beliebig abgelegt werden. Als Dokumentenablage knnen R/3Datenbank, HTTP- und FTP-Server sowie das lokale Dateisystem am Frontend dienen. Dokumente werden ber URLs adressiert und mit Hilfe einer speziellen Datenbeschaffungskomponente in die Office-Anwendung eingespielt. Werden in der Office-Anwendung Ereignisse ausgelst, kann auf diese vom ABAP-Programm reagiert werden. Auerdem knnen Daten (Felder, Tabellen), Bilder, RTF-Texte usw, die im R/3System abgelegt sind, ber Links in das Dokument eingespielt werden. Durch Aktualisierung der Links ist dann sichergestellt, da immer die zur Zeit aktuellen Objekte im Dokument angezeigt und bearbeitet werden.

April 2001

11

Desktop Office Integration (BC-CI) Architektur der Desktop Office Integration

SAP AG

Architektur der Desktop Office Integration


Die R/3-Integrationstechnologie ber ABAP Objects erlaubt die generische Integration beliebiger OLE-kompatibler Desktop-Applikationen wie Microsoft Office, Lotus SmartSuite, CorelOffice oder Visio in SAP R/3. Kommunikation und Datentransfer sind in der folgenden Grafik aufgezeigt:

Excel

SAP GUI SAP Document Container Control

R/3
Methoden

ABAP-Klassen und -Interfaces fr die Office Integration

Events

Dok um ent daten

SAP Information Repository


Dok um ent daten

Die Kommunikation zwischen SAP GUI (Prsentationsrechner) und dem R/3-Applikationsrechner wurde zu Release 4.0 erweitert. Dadurch wurde es mglich, ActiveX-Controls in das SAP GUI einzubinden (Control Framework [Extern]). Bei der Desktop Office Integration wird diese Schnittstelle benutzt, um spezielle Controls (SAP Document Container Control und SAP Data Provider), welche die Kommunikation mit den Desktop-Office-Anwendungen bernehmen, einzubinden. Das SAP Document Container Control exponiert Methoden und Eigenschaften, um mit einer Desktop-Anwendung ber die OLE2-Schnittstelle zu kommunizieren. Der SAP Data Provider ist ein Container und Konverter fr Daten verschiedenster Formate. Eingehende Daten eines bestimmten Formats werden basierend auf dem Internet-Standard MIME in ein fr die Applikation lesbares Ausgabeformat konvertiert. Der SAP Data Provider puffert die Daten von Dokumenten, die im System R/3 verwaltet werden. Des weiteren werden im SAP Data Provider R/3-Daten gepuffert, die ber OLE-Links in Dokumente eingefgt werden knnen. Beide Controls besitzen eine Schnittstelle zum R/3-System. Die Schnittstelle zum SAP Data Provider wurde mit Funktionsbausteinen implementiert (Funktionsbausteingruppe CNDP). ABAPKlassen und Interfaces der Desktop Integration stellen die Schnittstelle zum SAP Document Container Control dar.

12

April 2001

SAP AG

Desktop Office Integration (BC-CI) Architektur der Desktop Office Integration

April 2001

13

Desktop Office Integration (BC-CI) Instanzen fr die SAP Desktop Office Integration

SAP AG

Instanzen fr die SAP Desktop Office Integration


Wie in Architektur der Desktop Office Integration [Seite 12] beschrieben, wird die Schnittstelle fr die SAP Desktop Office Integration mit ABAP Objects realisiert. Die folgende Grafik zeigt die wichtigsten Instanzen:

Link Server Erstellt

Dokument Erstellt

Erstellt

Anw.-spezif. Interface

ABAP Objects Verwaltung der Office-Anbindung CET-Schnittst. SAP-GUI-Controls SAP GUI OLE-Schnittst. Office-Anwendung Anwendung

Zur Laufzeit wird in einem ersten Schritt eine zentrale Instanz fr die Verwaltung der OfficeAnbindung erzeugt. Mit deren Methoden werden weitere Objekte erzeugt, die fr die Steuerung und Kommunikation bentigt werden. In der Instanz zur Verwaltung der Office-Anbindung werden technische Daten fr den Verbindungsaufbau ber die CET-Schnittstelle zum SAP GUI hinterlegt. ber die CETSchnittstelle werden spezielle SAP-GUI-Controls angesprochen, die ihrerseits mit der Office-Anwendung ber die OLE2-Schnittstelle in Verbindung stehen. Die Instanz zum Verwalten eines Dokumentes enthlt Informationen ber die URLAdresse des Dokuments. ber die implementierten Methoden knnen Funktionen der Office-Anwendung ausgelst werden. Auerdem werden auf der Instanz Ereignisse der Office-Anwendung registriert, auf die Sie in Ihrem ABAP-Programm reagieren knnen. Fr den Datentransfer zwischen dem R/3-System und Desktop-Applikationen stehen Ihnen zwei Techniken zur Verfgung: Mit der Instanz Link Server knnen Sie die in der Office-Anwendung einzubettenden Verweise (Links) auf Objekte des R/3-Systems (Felder, Tabellen usw.) verwalten. Die Instanz Table Collection eignet sich besonders fr das Arbeiten mit Tabellen. Weiterhin knnen auch Daten aus der Desktop-Applikation wieder in das R/3-System bernommen werden. Ist seitens SAP ein Standard-Interface zu einer Office-Anwendung implementiert, knnen Funktionen zum Bearbeiten der Office-Dokumente (Drucken, Selektieren, Kopieren, Lschen usw.) verwendet werden, und es knnen zustzliche Menpunkte angelegt werden. Sofern fr die Office-Anwendung anwendungsspezifische Schnittstellen implementiert sind, knnen Sie auch fr diese Schnittstellen jeweils eine Instanz erzeugen. Folgende Schnittstellen sind in der Desktop Office Integration realisiert: Das Wordprocessor-Interface [Seite 139]

14

April 2001

SAP AG

Desktop Office Integration (BC-CI) Instanzen fr die SAP Desktop Office Integration

Das Form-Interface [Seite 159] Die Serienbriefschnittstelle [Seite 172] Die Script-Collection [Seite 183] Die Tabellenkalkulationsschnittstelle [Seite 190]

April 2001

15

Desktop Office Integration (BC-CI) Programmierung der Desktop-Office-Anbindung

SAP AG

Programmierung der Desktop-Office-Anbindung


1. Initialisieren Sie die Desktop-Office-Anbindung: Dabei wird das SAP Document Container Control im SAP GUI gestartet. Bei der Initialisierung legen Sie fest, ob Ihre Dokumente in einem separaten Fenster oder auch innerhalb des R/3-Fensters (inplace) geffnet werden sollen. Erzeugen Sie eine Instanz mit Referenz auf das Interface i_oi_container_control. 2. Erzeugen Sie eines oder mehrere Dokumente: Fr jedes gleichzeitig geffnete Dokument wird eine Instanz mit Referenz auf das Interface i_oi_document_proxy erzeugt. Dadurch wird im SAP GUI ein Dokumentencontainer gestartet und die entsprechende Office-Anwendung aufgerufen. 3. Starten Sie die Instanz fr den Datentransfer (optional): Sie knnen mit dem Link Server und / oder der Table Collection arbeiten. Link Server: Fr den Transport und die Verwaltung von Daten aus dem ABAPProgramm zur Desktop-Anwendung wird der Link Server verwendet. Er wird mit Referenz auf das Interface i_oi_link_server erzeugt. Objekte, die im R/3-System definiert oder abgelegt sind (Felder, interne Tabellen, RTFDateien, Bilder usw.) und in ein Dokument eingebunden werden sollen, werden beim Link Server angemeldet, bevor das Dokument geffnet wird. Table Collection: Speziell fr die bergabe von Tabellen bietet sich die Table Collection an. Sie knnen auch Tabellen, die von der Desktop-Applikation gefllt wurden, in das R/3-System einlesen. Die Table Collection wird mit Referenz auf das Interface i_oi_table_collection erzeugt. 4. Instanzieren Sie fr spezielle Office-Funktionalitten die entsprechenden Schnittstellen: Das Wordprocessor-Interface [Seite 139] Das Form-Interface [Seite 159] Die Serienbriefschnittstelle [Seite 172] Die Script-Collection [Seite 183] Die Tabellenkalkulationsschnittstelle [Seite 190] Sie knnen auf Ereignisse, die vom Benutzer der Office-Anwendung oder der OfficeAnwendung selbst ausgelst wurden, reagieren. 6. Schlieen Sie einzelne Dokumente oder die gesamte Office-Anwendung: Sie vernichten nicht mehr bentigte Objekte, indem Sie spezielle Methoden aufrufen.

5. Interpretieren Sie Ereignisse fr die Verarbeitung (optional):

16

April 2001

SAP AG

Desktop Office Integration (BC-CI) Programmierung der Desktop-Office-Anbindung

April 2001

17

Desktop Office Integration (BC-CI) Verwendung von Controls im WAN

SAP AG

Verwendung von Controls im WAN


Die Verwendung von Controls zur Oberflchengestaltung fhrt in der Regel zu einer Belastung des Kommunikationskanals zwischen Frontend und Backend. Dies kann schon im LAN-, aber insbesondere im WAN-Umfeld ein performance-kritischer Aspekt sein. Puffermechanismen helfen, diese Problematik zu entschrfen (siehe auch Automation Queue [Extern]). Die aufgefhrten Punkte sollen als Richtlinien bei der Verwendung von Controls im WAN dienen. Control-spezifische Hinweise zur Verwendung im WAN finden Sie in der Dokumentation zu dem jeweiligen Control.

Verwendung von CL_GUI_CFW=>FLUSH


Der Aufruf CL_GUI_CFW=>FLUSH [Extern] dient zum Synchronisieren der Automation Queue und der in der Queue enthaltenen ABAP-Variablen. Dieser Aufruf erzeugt in vielen Fllen einen synchronen RFC vom Applikationsserver zum Frontend. Um optimale Performance zu erreichen, sollten die Aufrufe dieser Methode minimiert werden. Es ist in vielen Fllen zu empfehlen, alle Eigenschaften von allen Controls zentral an einer Stelle (z.B. am Anfang des PAI) in einer Automation Queue zu lesen und dann ber einen einmalige Synchronisation zu besorgen. Diese Variante ist auch dann zu bevorzugen, wenn dabei Eigenschaften gelesen werden, die nicht immer fr den Ablauf des Ereignisbehandlers bzw. des PAI PBO Zyklus notwendig sind. Es ist nicht notwendig, einen Sicherheits-Flush am Ende von PBO zu codieren, damit Methodenaufrufe der Controls garantiert an das Frontend transportiert werden. Diese Funktionalitt wird systemseitig garantiert, wenn das nchste Dynpro gesendet wird. Damit ist es auch nicht mglich, eine Automation Queue ber mehrere Bildwechsel hinweg aufzubauen. Es ist nicht garantiert, da eine Automation Queue durch den Aufruf CL_GUI_CFW=>FLUSH gesendet wird. Die Queue erkennt, ob Returnwerte enthalten sind. Ist dies nicht der Fall, wird das Senden unterdrckt! Fr alle Flle, in denen auch bei einer Queue ohne Returnwert gewnscht wird, da die Automation Queue synchron versendet wird, gibt es im Control Framework die Methode CL_GUI_CFW=>UPDATE_VIEW [Extern]. Diese Methode darf nur dann verwendet werden, wenn es zwingend notwendig ist, ein Update des GUI zu erreichen. Beispiele hierfr sind sehr lange laufende Anwendungen, die in regelmigen Abstnden dem Benutzer ein Feedback ber den Fortschritt der Aktion anzeigen mchten. Nach dem Lesen von Eigenschaften ist der Inhalt der entsprechenden ABAP-Variablen erst nach dem nchsten FLUSH garantiert. Solange dieser Aufruf nicht erfolgt ist, ist der Inhalt der entsprechenden ABAP-Variablen nicht definiert. In Zukunft wird es Flle gegeben, in denen dieser FLUSH unntig sein wird. Diese Flle werden von der Automation Queue erkannt; der entsprechende FLUSH-Call wird dann ignoriert.

Erzeugen von Controls, Datenversorgung


Das Erzeugen eines Controls und die Datenversorgung ist in den meisten Fllen ein einmaliger Vorgang und im Vergleich zu Dynproelementen sehr teuer. Deshalb sollten Controls nicht unntig erzeugt bzw. nicht unntig mit Daten versorgt werden. Ein typisches Beispiel hierfr sind TabStrips mit mehreren Seiten. Wenn diese Seiten Controls tragen, ist immer abzuwgen, ob man auf lokale Seiten verzichtet und die Controls erst dann

18

April 2001

SAP AG

Desktop Office Integration (BC-CI) Verwendung von Controls im WAN

erzeugt, wenn der Benutzer die Seite aktiviert. Das gleiche trifft fr die Datenversorgung dieser Controls auf TabStrip-Seiten zu. Mu bei der Datenversorgung eine Unterscheidung zwischen einer WAN- und einer LANAnmeldung vorgenommen werden, steht der Funktionsbaustein SAPGUI_GET_WANFLAG zur Verfgung. In manchen Fllen kann es notwendig werden, da eine Anwendung andere Datenmengen oder ganze Fallbacks fr die WAN-Anmeldung zur Verfgung stellen sollte. Ein Beispiel, wann die WAN- bzw. LAN- Anmeldung einen Einflu haben kann, ist die Anzahl von Geschwistern in einem Tree Control, die ohne knstliche Zwischenebenen bertragen werden knnen. Im Gegensatz zu Dynproelementen werden die Controls nur einmalig erzeugt und mit Daten versorgt. Controls werden unter Performance-Aspekten dann immer preiswerter, je lnger diese leben. In Anwendungen, die stndig neu aufgerufen und damit neu initialisiert werden, kann dies zu einem erheblichen Performance-Nachteil werden; in Anwendungen, die sehr lange auf den gleichen Bildern arbeiten, kann daraus sogar ein Performance-Vorteil entstehen. Im Einzelfall kann ber entsprechende Performance-Werkzeuge [Extern] berprft werden, welche Nachteile oder Vorteile die Verwendung eines Controls unter dem Aspekt der Netzwerkauslastung bringt.

Ablegen von Dokumenten, Bildern etc.


Zum Release 4.6A wird ein Frontend-Cache fr Zugriffe auf Dokumente aus dem BDS (Business Dokument Service) realisiert. Es wird dringend empfohlen, Office-Dokumente, Bilder etc. im BDS und nicht in der R/3-Datenbank abzulegen. Dokumente aus dem BDS knnen danach im Frontend-Cache abgelegt werden. Sie mssen nur einmalig ber das Netz geladen werden.

April 2001

19

Desktop Office Integration (BC-CI) Spezielle Hinweise fr die Desktop Office Integration

SAP AG

Spezielle Hinweise fr die Desktop Office Integration


Zustzlich zu den Hinweisen, die fr alle Controls gltig sind, mssen Sie folgendes beachten: Die Office Integration ist im WAN Umfeld mit Vorsicht einzusetzen. Dies gilt besonders dann, wenn die entsprechenden Dokumente aus dem R/3-Applikationsserver oder einem Web-Server mit WAN-Anbindung geladen werden mssen. Zustzlich gibt es keinen Mechanismus, um die Datenmengen, auf der die Office Integration arbeitet, zu reduzieren. Dokumente, die im Business Document Server abgelegt sind und sich sehr selten ndern, sind von dieser Restriktion ausgeschlossen, da diese in einem FrontendCache abgelegt werden.

20

April 2001

SAP AG

Desktop Office Integration (BC-CI) Fehlerbehandlung nach Methodenaufruf

Fehlerbehandlung nach Methodenaufruf


Einsatzmglichkeiten
Die Fehlerbehandlung beim Einsatz der Desktop Office Integration ist nicht trivial. Die Methoden knnen eine Vielzahl von verschiedenen Fehlercodes liefern. Auerdem knnen durch die Weiterentwicklung viele neue Fehlercodes dazukommen. Die nachfolgenden Hinweise sollen Ihnen die Verwendung der Desktop Office Integration erleichtern. Nach einem Methodenaufruf mssen Sie abfragen, ob der Methodenaufruf erfolgreich war oder ob ein Fehler auftrat. Dazu bieten alle Methoden einen Rckgabeparameter ret_code an, der bei Erfolg den Wert OK und im Fehlerfall einen Fehlercode liefert. Fr die Erfolgsmeldung sowie fr alle Fehlercodes sind in der Klasse c_oi_errors symbolische Konstanten definiert. Auerdem werden von allen Methoden zustzliche Informationen ber den Fehler gespeichert. Dadurch ist die Klassenmethode raise_message der Klasse c_oi_errors in der Lage, eine Nachricht in der Statuszeile mit der genauen Fehlerursache anzuzeigen. Die Methode raise_message fhrt intern im Fehlerfall die ABAP-Anweisung MESSAGE aus, um eine Nachricht der Nachrichtengruppe SOFFICEINTEGRATION anzuzeigen. Die folgenden zwei Ablufe knnen als Richtlinie fr eigene Fehlerbehandlung dienen. Bei dem ersten Ablauf wird auf keine Fehler im einzelnen eingegangen. Bei dem zweiten Ablauf wird auf einige Fehler speziell eingegangen, die restlichen werden mit Hilfe der Methode raise_message angezeigt. Wird bei Methodenaufrufen die Automation Queue [Extern] nicht synchronisiert (siehe dazu generischer Parameter [Seite 253] no_flush), ist der Wert des Parameters ret_code nicht aussagekrftig. Dies resultiert aus der Tatsache, da dieser Wert erst nach der Synchronisation der Automation Queue sinnvoll von der Methode gesetzt werden kann. Daher erhalten Sie nach jedem Methodenaufruf auch eine Referenz auf ein Fehlerobjekt (error). Wie Sie mit diesem Fehlerobjekt umgehen, wird in Ablauf III erklrt.

Ablauf I
1. Rufen Sie nach Ausfhrung einer Methode der SAP Desktop Office Integration die Klassenmethode raise_message der Klasse c_oi_errors auf: CALL METHOD C_OI_ERRORS=>RAISE_MESSAGE EXPORTING TYPE = type bergeben bei diesem Methodenaufruf ber den Parameter type den Nachrichtentyp (A, E, W, I, S). Sofern ein Fehler bei der Ausfhrung einer Methode der SAP Desktop Office Integration aufgetreten ist, wird dann eine Nachricht des angegebenen Typs ausgegeben. Der richtige Nachrichtentext wird durch die Klassenmethode raise_message automatisch bestimmt.

Ablauf II
1. Geben Sie bei der Ausfhrung einer Methode der SAP Desktop Office Integration eine Variable ret_code mit, in die der Fehlercode gespeichert werden soll. 2. Prfen Sie zuerst, ob berhaupt ein Fehler aufgetreten ist. Im Erfolgsfall verzweigen Sie in den Programmteil, der fr den Normalfall vorgesehen ist.

April 2001

21

Desktop Office Integration (BC-CI) Fehlerbehandlung nach Methodenaufruf

SAP AG

3. Prfen Sie als nchstes, ob ein Fehler, den Sie explizit verarbeiten wollen, aufgetreten ist. In diesem Fall knnen Sie in die Programmteile verzweigen, die fr die spezielle Fehlerbehandlung vorgesehen sind. 4. Bei allen anderen Fehlercodes rufen Sie unbedingt die Klassenmethode raise_message der Klasse c_oi_errors auf, wie es im Ablauf I erlutert wurde.

Hier ist ein Beispiel fr Ablauf II: IF ret_code EQ c_oi_errors=>ret_ok. " Dokument erfolgreich geffnet ELSEIF ret_code EQ c_oi_errors=> ret_document_already_open. " spezielle Fehlerbehandlung, z.B. eine Dialogbox ELSE. CALL METHOD c_oi_errors=>raise_message EXPORTING type ENDIF. = 'E'.

Ablauf III
1. Legen Sie eine Tabelle an, in der Sie alle Referenzen auf die Fehlerobjekte sammeln: DATA: errors TYPE REF TO i_oi_error OCCURS 0 WITH HEADER LINE. 2. Nach jedem Methodenaufruf, bei dem Sie den Parameter no_flush = 'X' setzen, fgen Sie die Objektreferenz in die Fehlertabelle: CALL METHOD control->get_link_server EXPORTING server_type = server_type no_flush = 'X' IMPORTING link_server = link_server retcode = retcode error = errors. APPEND errors. 3. Nach erfolgter Synchronisation der Automation Queue (setzen des Parameters no_flush = ' ' bzw. Aufruf der Methode cl_gui_cfw=>flush [Extern]) arbeiten Sie die Referenzen in der Fehlertabelle ab: LOOP AT errors. CALL METHOD errors->raise_message EXPORTING type = 'E' EXCEPTIONS message_raised = 1 flush_failed = 2. ENDLOOP. FREE errors.

22

April 2001

SAP AG

Desktop Office Integration (BC-CI) Fehlermeldungen und ihre Bedeutung

Fehlermeldungen und ihre Bedeutung


In der folgenden Liste finden Sie die mglichen Werte, die der Parameter retcode nach Aufruf einer Methode der SAP Desktop Office Integration annehmen kann: Wert RET_OK RET_ERROR Bedeutung Erfolg Beim Ausfhren einer Methode ist ein Fehler aufgetreten. Eine detaillierte Fehlermeldung kann ber C_OI_ERRORS=>RAISE_MESSAGE angezeigt werden. RET_CALL_NOT_FLUSHED RET_CONTROL_NOT_INITIALIZED RET_OBJECT_NOT_INITIALIZED RET_OBJECT_ALREADY_INITIALIZED RET_INPLACE_DISABLED RET_DOC_TYPE_NOT_REGISTERED RET_OPEN_DOCUMENT_FAILED RET_OPEN_DOCUMENT_FILE_FAILED RET_SAVE_DOCUMENT_FAILED RET_SAVE_DOCUMENT_FILE_FAILED RET_DOCUMENT_NOT_OPEN RET_DOCUMENT_ALREADY_OPEN RET_DOCUMENT_NO_VIEW_DATA RET_LINK_SERVER_NOT_ACTIVE RET_LINK_SERVER_ALREADY_ACTIVE RET_NO_LINK_ITEM_SELECTED RET_NO_STANDARD_INTERFACE RET_INTERFACE_NOT_SUPPORTED Automation Controller Queue wurde nicht geflusht Document Container Control wurde nicht initialisiert ABAP-OO-Objekt nicht initialisiert ABAP-OO-Objekt bereits initialisiert Dokumente knnen in diesem Modus nicht im R/3Fenster geffnet werden Keine Anwendung fr den angegebenen Dokumenttyp auf dem PC registriert. Fehler beim ffnen eines Dokuments Fehler beim ffnen eines Dokuments aus einer temporren Datei Fehler beim Speichern eines Dokuments Fehler beim Speichern eines Dokuments in eine temporre Datei Dokument nicht geffnet Dokument bereits geffnet Keine Prsentationsdaten im Dokument vorhanden SAP Link Server ist nicht aktiv Ein anderer SAP Link Server ist unter dem angegebenen Namen bereits aktiv. Bei CopyLinkItemToClipboard wurde kein Item selektiert. Fr diesen Dokumenttyp ist kein Standardinterface implementiert. Fr diesen Dokumenttyp ist kein anwendungsspezifisches Interface (z.B. WordProcessor-Interface) implementiert.

April 2001

23

Desktop Office Integration (BC-CI) Fehlermeldungen und ihre Bedeutung RET_METHOD_NOT_SUPPORTED RET_CONTROL_INTERNAL_ERROR Methode wird bei diesem Dokumenttyp nicht untersttzt

SAP AG

Beim Ausfhren einer Methode ist ein interner Fehler aufgetreten. Eine detaillierte Fehlermeldung kann ber C_OI_ERRORS=>RAISE_MESSAGE angezeigt werden.

24

April 2001

SAP AG

Desktop Office Integration (BC-CI) aise_message

aise_message
Mit dieser Methode knnen Sie eine Meldung ausgeben. CALL METHOD error->raise_message EXPORTING type = type EXCEPTIONS message_raised = 1 flush_failed = 2. Parameterverwendung Parameter Optional Bedeutung type Nachrichtentyp (A, E, W, I, S).

April 2001

25

Desktop Office Integration (BC-CI) get_message

SAP AG

get_message
Mit dieser Methode knnen Sie die automatisch von der Office Integration generierte Systemnachricht abfragen. CALL METHOD error->get_message IMPORTING message_id = message_id message_number = message_number param1 = param1 param2 = param2 param3 = param3 param4 = param4. Parameterverwendung Parameter message_id message_number param1 bis param4 Optional Bedeutung Nachrichtenklasse Nummer der Nachricht Variable Anteile der Nachricht

26

April 2001

SAP AG

Desktop Office Integration (BC-CI) Zentrale Instanz zur Verwaltung der Desktop Office

Zentrale Instanz zur Verwaltung der Desktop Office


Definition
Diese Instanz wird mit Referenz auf das Interface i_oi_container_control definiert:

Verwendung
Fr das Interface i_oi_container_control sind Methoden definiert, die Sie auf die Instanz control aufrufen knnen. Mit diesen Methoden knnen Sie weitere Instanzen erzeugen, die Sie fr die Desktop Office-Integration brauchen.

April 2001

27

Desktop Office Integration (BC-CI) Realisierung der Desktop-Office-Anbindung

SAP AG

Realisierung der Desktop-Office-Anbindung


Bei der Programmierung von Desktop-Office-Anwendungen bernimmt das Interface i_oi_container_control die Erzeugung und Verwaltung aller weiteren Objekte der DesktopOffice-Anbindung. Sie legen eine Instanz dieses Objekts wie folgt an:

Deklaration
1. Includieren Sie am Anfang Ihres Datendeklarationsteils folgende wichtige Definitionen: TYPE-POOLS soi. CLASS c_oi_errors DEFINITION LOAD. Der Typpool beinhaltet wichtige Konstanten und Typdefinitionen. Die Klassendefinition dient fr die Fehlerbehandlung der Methodenaufrufe der Desktop Office Integration. 2. Deklarieren Sie eine Instanz mit Referenz auf das Interface i_oi_container_control: DATA control TYPE REF TO i_oi_container_control. 3. Deklarieren Sie eine Objektvariable fr jedes gleichzeitig geffnete Dokument: DATA: document TYPE REF TO i_oi_document_proxy. 4. Deklarieren Sie eine Objektvariable fr den Datentransfer (optional): Sofern Sie mit dem Link Server arbeiten: DATA: link_server TYPE REF TO i_oi_link_server. Sofern Sie mit der Table Collection arbeiten: DATA: table_coll TYPE REF TO i_oi_table_collection.

Initialisierung

Die folgenden Schritte drfen nur einmalig in Ihrer Anwendung durchlaufen werden. 5. Erzeugen Sie die Instanz control. CALL METHOD c_oi_container_control_creator=>get_container_control IMPORTING control = control retcode = retcode. 6. Sofern Sie die Desktop Office Integration inplace einsetzen wollen, mssen Sie einen Container [Extern] anlegen: DATA: container TYPE REF TO cl_gui_custom_container. CREATE OBJECT container EXPORTING container_name = 'CONTAINER'. 7. Fhren Sie die Methode init_control aus: Sie haben nun das zentrale Objekt fr die Desktop-Office-Anbindung erstellt und die Verbindung zu den relevanten GUI-Controls hergestellt. CALL METHOD control->init_control

28

April 2001

SAP AG

Desktop Office Integration (BC-CI) Realisierung der Desktop-Office-Anbindung EXPORTING r3_application_name = 'Demo Document Container' inplace_enabled = 'X' parent = container IMPORTING retcode = retcode.

8. Erzeugen Sie fr jedes zu ffnende Dokument eine Instanz document: CALL METHOD control->get_document_proxy EXPORTING document_type = document_type document_format = document_format IMPORTING document_proxy = document retcode = retcode. 9. Erzeugen Sie die entsprechende Instanz fr den Datentransfer (Link Server: Methode get_link_server; Table Collection: Methode get_table_collection) (optional). 10. Erzeugen Sie anwendungsspezifische Schnittstellen: Das Wordprocessor-Interface [Seite 139] Das Form-Interface [Seite 159] Die Serienbriefschnittstelle [Seite 172] Die Script-Collection [Seite 183] Die Tabellenschnittstelle [Seite 190]

Verarbeitung
11. Definieren Sie die Verarbeitungsschritte fr Ihre Dokumente (z.B. ffnen, Schlieen, Speichern).

Abbau
12. Nach Abschlu der Bearbeitung eines Dokuments schlieen Sie es zuerst, speichern es dann und geben dann den Speicherbereich frei. 13. Nachdem Sie den Link Server nicht mehr bentigen, schlieen Sie ihn und geben den Speicherbereich frei (optional). 14. Bauen Sie die Containerinstanz (siehe Punkt 6) ab: CALL METHOD container->free. 15. Am Ende des Programms lschen Sie die Instanz control mit der Methode destroy_control. Bauen Sie aber auch die anderen erzeugten Instanzen vorher ab.

Denken Sie daran, da Sie nach jedem Methodenaufruf eine Fehlerbehandlung [Seite 21] implementieren sollten. Beim Abbauen von Objekt- und Interface-Instanzen der Desktop Office Integration sollten Sie immer in Auge behalten, da im Gegensatz zu anderen OOProgrammiersprachen ABAP-OO-Objekte keine Destruktoren haben. Wenn Sie also z.B. die Instanz i_oi_container_control mit Hilfe der FREE-Anweisung freigeben,

April 2001

29

Desktop Office Integration (BC-CI) Realisierung der Desktop-Office-Anbindung

SAP AG

dann wird nur der Speicher am Applikationsserver freigegeben. Die SAP-GUIControls und Dokumente am Prsentationsrechner bleiben erhalten. Daher sollten Sie vorher auf jeden Fall die entsprechende Methoden zum Abbau von SAP-GUIControls bzw. zum Schlieen von Dokumenten aufrufen.

Die Bedeutung der nicht aufgefhrten Parameter bei den Methodenbeschreibungen finden Sie in Generische Parameter [Seite 253].

30

April 2001

SAP AG

Desktop Office Integration (BC-CI) Generische Parameter

Generische Parameter
In der folgenden Tabelle werden Parameter aufgefhrt, die in sehr vielen Methoden der Desktop Office Integration verwendet werden. Parameterverwendung Parameter Optional Bedeutung no_flush X 'X': Synchronisation der Automation Queue ' ': Vor dem Verlassen dieser Methode wird die Automation Queue [Extern] synchronisiert retcode error Fehlerbehandlung [Seite 21] Fehlerbehandlung [Seite 21]

Wenn Sie die Methode mit dem Parameter no_flush = 'X' ausfhren, werden die Methodenaufrufe nicht direkt vom Applikationsrechner zum Prsentationsrechner weitergereicht und daher auch nicht sofort ausgefhrt. Erst beim nchsten Methodenaufruf mit Parameter no_flush= ' ' bzw. nach Aufruf der Methode cl_gui_cfw=>flush [Extern] werden die zwischengespeicherten Daten auf einmal zum Prsentationsrechner geschickt. Diese Technik fhrt bei korrekter Verwendung zu einer Performance-Verbesserung. Bei falscher Anwendung knnen aber Inkonsistenzen der Daten auftreten. (Siehe auch Automation Queue [Extern]).

April 2001

31

Desktop Office Integration (BC-CI) init_control

SAP AG

init_control
Diese Methode erzeugt das Objekt, das die Verbindung zur OLE-Schnittstelle verwaltet. CALL METHOD control->init_control EXPORTING parent r3_application_name inplace_enabled inplace_show_toolbars inplace_scroll_documents inplace_resize_documents shell_style autoalign no_flush register_on_close_event register_on_custom_event rep_id dynpro_nr gui_container inplace_mode parent_id IMPORTING retcode error Parameterverwendung Parameter parent r3_application_name inplace_enabled X Optional Bedeutung Name des Containers, in dem die Desktop-OfficeAnwendung gestartet werden soll. berschrift 'X': Es werden die Voraussetzungen geschaffen, da ein Dokument inplace geffnet werden kann. ' ': Es knnen keine Dokumente inplace geffnet werden inplace_show_toolbar inplace_scroll_documents inplace_resize_documents X X X Die Werkzeugleiste der Desktop-Applikation soll gezeigt werden (wenn inplace_enabled = 'X') Die Bltterleiste der Desktop-Applikation soll aktiv sein (wenn inplace_enabled = 'X') Das Anzeige des Dokuments soll dem Fenster der Desktop-Applikation angepat werden (wenn inplace_enabled = 'X') 'X': Ausfllen des gesamten Control Containers mit der Office-Applikation X Darstellungsart des Container Controls innerhalb des R/3-Bildschirmbilds. Gltige Werte finden Sie im Include <CTLDEF>. Der Parameter ist so vorbelegt, da man ihn im Normallfall nicht angeben mu. = = = = = = = = = = = = = = = = = = parent r3_application_name inplace_enabled inplace_show_toolbar inplace_scroll_documents inplace_resize_documents shell_style autoalign no_flush register_on_close_event register_on_custom_event rep_id dynpro_nr gui_container inplace_mode parent_id retcode error.

autoalign shell_style

32

April 2001

SAP AG

Desktop Office Integration (BC-CI) init_control

register_on_close_event

Registrierung des Ereignisses, das beim Schlieen des Dokuments durch den Benutzer der Office-Anwendung ausgelst wird. Wenn Sie auf dieses Ereignis in Ihrem ABAP-Programm eingehen wollen, registrieren Sie sich mit X Registrierung von zustzlichen Ereignissen der OfficeAnwendung (z.B. durch Makroaufrufe). Mit bergabewert X knnen Sie auf dieses Ereignis in Ihrem ABAP-Programm eingehen. Obsolet. Bisherige Bedeutung: Name des Programms oder des Modulpools des Bildschirmbilds, in dem die Office-Anwendung sichtbar werden soll (sofern kein Container angegeben wird und Ereignisse von der Desktop Anwendung verarbeitet werden sollen)

register_on_custom_event

rep_id

dynpro_nr

Obsolet. Bisherige Bedeutung: Dynpronummer des Bildschirmbilds, auf dem das SAP Document Container Control erzeugt werden soll (sofern kein Container angegeben wird und Ereignisse von der Desktop-Anwendung verarbeitet werden sollen)

gui_container

Obsolet. Bisherige Bedeutung: Name des im Screen Painter definierten Containers, auf dem das SAP Document Container Control erzeugt werden soll

parent_id

Obsolet. Bisherige Bedeutung: Popup-Level, auf dem das Control liegen soll: dynpro_0 bis dynpro_9 : Das Control wird auf dem Popup-Level 0 (im R/3-Bildschirm) bis Level 9 (Popup der Stufe 9) angezeigt. dynpro_default : Es wird automatisch festgestellt, welcher Level zur Zeit des Funktionsbausteinaufrufs gltig ist. Dieser wird dann verwendet. Dies funktioniert aber nur, wenn der Aufruf zum Zeitpunkt PBO erfolgt.

inplace_mode

Dieser Parameter ist obsolet und soll bei Neuentwicklungen nicht mehr benutzt werden.

Weitere Informationen zur Ereignisbehandlung finden Sie in Ereignisse der OfficeAnwendung verarbeiten [Seite 108].

April 2001

33

Desktop Office Integration (BC-CI) destroy_control

SAP AG

destroy_control
Mit dieser Methode wird die zentrale Instanz zur Verwaltung der Office Integration abgebaut. CALL METHOD control->destroy_control EXPORTING no_flush = no_flush IMPORTING retcode = retcode error = error.

Bevor Sie die Methode destroy_control aufrufen, sollten Sie sicher sein, da Sie alle nderungen an Dokumenten gespeichert haben. Beim Aufruf der Methode wird automatisch die Methode release_all_documents [Seite 37] ausgefhrt. Nach diesem Aufruf sollten Sie die ABAP-OO-Instanz freigegeben: FREE control.

34

April 2001

SAP AG

Desktop Office Integration (BC-CI) link_control

link_control
Diese Methode wurde durch das neue Container-Konzept [Extern] zu 4.6 obsolet. Sie sollten diese Methode daher nicht mehr verwenden. Verwenden Sie statt dessen die Methode LINK [Extern] auf den Container. Bei der Initialisierung der Office-Anwendung wird die Verbindung zu dem zur Zeit gltigen Programm (SY-REPID) und Dynpro (SY-DYNNR) gesetzt. Auf diesem Dynpro wird das SAP Document Container Control erzeugt. Wollen Sie nach der Initialisierung ein anderes Dynpro angeben, knnen Sie dies mit der Methode init_control unter Angabe des neuen Programmnamens und Dynpros vornehmen. CALL METHOD control->link_control EXPORTING rep_id = rep_id dynpro_nr = dynpro_nr gui_container = gui_container no_flush = no_flush IMPORTING retcode = retcode error = error. Parameterverwendung Parameter rep_id Optional Bedeutung X Obsolet. Bisherige Bedeutung: Name des Programms oder des Modulpools des Bildschirmbilds, in dem die Office-Anwendung sichtbar werden soll (sofern kein Container angegeben wird und Ereignisse von der DesktopAnwendung verarbeitet werden sollen) dynpro_nr X Obsolet. Bisherige Bedeutung: Dynpronummer des Bildschirmbilds, auf dem das SAP Document Container Control erzeugt werden soll (sofern kein Container angegeben wird und Ereignisse von der Desktop-Anwendung verarbeit werden sollen) gui_container X Obsolet. Bisherige Bedeutung: Name des im Screen Painter definierten Containers, auf dem das SAP Document Container Control erzeugt werden soll rep_id dynpro_nr gui_container X X X Name des Programms oder des Modulpools des Bildschirmbilds, auf dem das SAP Document Container Control erzeugt werden soll. Dynpronummer des Bildschirmbilds, auf dem das SAP Document Container Control erzeugt werden soll. Name des im Screen Painter definierten Containers, auf dem das SAP Document Container Control erzeugt werden soll.

April 2001

35

Desktop Office Integration (BC-CI) link_control

SAP AG

Die Bedeutung der nicht aufgefhrten Parameter finden Sie in Generische Parameter [Seite 253].

36

April 2001

SAP AG

Desktop Office Integration (BC-CI) release_all_documents

release_all_documents
Alle offenen Dokumente werden auf dem Prsentationsrechner geschlossen, ohne da deren Daten gespeichert werden. CALL METHOD control->release_all_documents EXPORTING no_flush = no_flush IMPORTING retcode = retcode error = error.

Bei nicht sorgfltiger Programmierung knnen durch Aufruf dieser Methode nderungen verloren gehen. Stellen Sie daher sicher, da alle nderungen vor dem Aufruf auch gesichert wurden.

Um den Speicherplatz fr das Datenobjekt document zur Verwaltung des Dokuments auf dem Anwendungsserver freizugeben, benutzen Sie den ABAP-Befehl FREE document.

April 2001

37

Desktop Office Integration (BC-CI) set_window_properties

SAP AG

set_window_properties
Diese Methode wurde durch das neue Container-Konzept [Extern] zu 4.6 obsolet. Sie sollten diese Methode daher nicht mehr verwenden. Mit dieser Methode knnen Sie die Darstellungsart der Office-Anwendung im R/3-Fenster verndern. CALL METHOD control->set_window_properties EXPORTING metric = metric left = left top = top width = width height = height align = align no_flush = no_flush IMPORTING retcode = retcode error = error. Parameterverwendung Parameter Optional Bedeutung metric left top width height align X X X X X X Initial: Abstnde mssen in Pixels angegeben werden Dynpro: Abstnde entsprechen Dynprozeilen bzw. Dynprospalten Linker Rand des Fensterbereichs der Office-Anwendung Oberer Rand des Fensterbereichs der Office-Anwendung Breite des Fensterbereichs der Office-Anwendung Hhe des Fensterbereichs der Office-Anwendung Eigenschaften des Fensters. Mit diesem Parameter knnen Sie z.B. das Fenster im Dynpro fixieren, die Gre von der aktuellen Fenstergre abhngig machen. Gltige Werte finden Sie im Include <CTLDEF>

Diese Methode darf nur dann benutzt werden, wenn bei init_control bzw. link_control kein GUI-Container angegeben wurde.

38

April 2001

SAP AG

Desktop Office Integration (BC-CI) set_inplace_border_space

set_inplace_border_space
Diese Methode wurde durch das neue Container-Konzept [Extern] zu 4.6 obsolet. Sie sollten diese Methode daher nicht mehr verwenden. Mit dieser Methode definieren Sie sich einen freien Bereich, in den keine Dokumente gestellt werden. Diese Methode verwenden Sie immer dann, wenn die Desktop-Anwendung beim Aufruf nicht vollstndig angezeigt wird. Definieren Sie dann mit der Methode einen festen Rand um diese Anwendung. Die Gre des bentigten Rands ist von der Desktop-Anwendung abhngig. CALL METHOD control->set_inplace_border_space EXPORTING left = left top = top right = right bottom = bottom no_flush = no_flush IMPORTING retcode = retcode error = error. Parameterverwendung Parameter Optional Bedeutung left top right bottom X X X X linker Rand oberer Rand rechter Rand unterer Rand

April 2001

39

Desktop Office Integration (BC-CI) get_document_proxy

SAP AG

get_document_proxy
Sie erzeugen mit dieser Methode eine Instanz fr die Verwaltung eines Dokuments [Seite 49]. CALL METHOD control->get_document_proxy EXPORTING document_type = document_type document_format = document_format register_container = register_container no_flush = no_flush IMPORTING document_proxy = document_proxy retcode = retcode error = error. Parameterverwendung Parameter document_type document_format X Optional Bedeutung Art des Dokuments. Mit Hilfe dieser Kennung wird die zugehrige Anwendung gestartet. Folgende Formate stehen zur Verfgung: OLE: Microsoft's Compound Document Format NATIVE: Anwendungseigenes Format RTF: Rich Text Format register_container X Fr die Office-Applikationen, die keine Container-Property untersttzen, soll ein Container registriert werden (siehe Hinweis). Erzeugte Instanz fr die Dokumentenverwaltung Das Objekt wird mit Referenz auf das Interface i_oi_document_proxy angelegt.

document_proxy

Der Dokumenttyp sollte nicht als Festwert programmiert sein, sondern sollte z.B. ber Customizing-Tabellen oder Benutzerinteraktion festgelegt werden. Mgliche Dokumenttypen erhalten Sie ber die Methode get_registered_doc_types.

Einige Beispiele fr Dokumenttypen sind: Word.Document.8: Excel.Sheet.8 Excel.Chart.8 Word.Document Word97 Excel97 Worksheet Excel97 Chart Es wird die neueste installierte Word-Version genommen.

Viele Office-Anwendungen haben kein hierarchisches Objektmodell fr interne Objekte (Application, Document, Sheet, Cell usw.). Falls sie eines haben,

40

April 2001

SAP AG

Desktop Office Integration (BC-CI) get_document_proxy

untersttzen sie bei dem Dokument-Objekt keine Property, die auf den OLEDokument-Container zeigt. Diese Untersttzung ist aber fr die Kommunikation mit R/3 ber Nachrichten sowie den Datenaustausch ber die Table Collection unumgnglich. Damit man solche Desktop Anwendungen trotzdem vollstndig einsetzen kann, besteht die Mglichkeit, ber den optionalen Parameter register_container den SAP Document Container fr das gewnschte Dokument bei OLE zu registrieren. Danach kann man auf diesen in einem Dokument-Makro ber die Funktion GetObject() zugreifen, wie in dem folgenden VBA-Beispiel gezeigt wird: Sub R3Test Dim cont as Object Set cont = GetObject(, "SAP.DocumentContainer") cont.SendCustomEvent("ON_DATA_CHANGE") End Sub

April 2001

41

Desktop Office Integration (BC-CI) get_registered_doc_types

SAP AG

get_registered_doc_types
Diese Methode gibt eine Liste aller Dokumenttypen zurck, die fr einen bestimmten InterfaceTyp lokal auf dem Prsentationsrechner registriert wurden. CALL METHOD control->get_registered_doc_types EXPORTING interface_type = interface_type no_flush = no_flush IMPORTING descr_list = descr_list retcode = retcode error = error. Parameterverwendung Parameter interface_type Optional Bedeutung X Folgende Interface-Typen stehen zur Verfgung: ' ' : Alle mglichen Dokumenttypen werden in einer internen Tabelle angezeigt. 'BASIC': Nur Dokumenttypen, die das Standard-Interface untersttzen, werden angezeigt. 'WORDPROCESSOR': Nur Dokumenttypen, die das Wordprocessor-Interface untersttzen, werden angezeigt. descr_list Mgliche Dokumenttypen in interner Tabelle vom Typ soi_document_type_descr_list

Diese Methode kann aufgerufen werden, ohne da vorher die Methode init_control [Seite 32] ausgefhrt wurde. Daher knnen Sie mit dieser Methode berprfen, ob tatschlich eine Desktop-Anwendung auf dem Frontend vorhanden ist.

42

April 2001

SAP AG

Desktop Office Integration (BC-CI) check_registered_doc_types

check_registered_doc_types
Diese Methode berprft, ob eine Liste von Desktop-Applikationen lokal auf dem Prsentationsrechner vorhanden ist, und liefert die tatschlich vorhandenen Applikationen zurck. Die zu berprfenden Dokumenttypen sollen in der Spalte DOCUMENT_TYPE angegeben werden. Die Information, ob die Applikation vorhanden ist, befindet sich in der Spalte AVAILABLE. CALL METHOD control->check_registered_doc_types EXPORTING no_flush = no_flush IMPORTING error = error CHANGING descr_list = descr_list retcode = retcode. Parameterverwendung Parameter Optional Bedeutung descr_list X Mgliche Dokumenttypen in interner Tabelle vom Typ soi_document_type_descr_list

Diese Methode kann aufgerufen werden, ohne da vorher die Methode init_control [Seite 32] ausgefhrt wurde. Daher knnen Sie mit dieser Methode berprfen, ob tatschlich eine Desktop-Anwendung auf dem Frontend vorhanden ist.

April 2001

43

Desktop Office Integration (BC-CI) get_link_server

SAP AG

get_link_server
Sie erzeugen mit dieser Methode eine Instanz fr den Link Server [Seite 113]. CALL METHOD control->get_link_server EXPORTING server_type = server_type no_flush = no_flush IMPORTING link_server = link_server retcode = retcode error = error. Parameterverwendung Parameter Optional Bedeutung server_type link_server X Zur Zeit noch keine Bedeutung Erzeugte Instanz fr den Link Server Objekt wird mit Referenz auf das Interface i_oi_link_server angelegt

Pro control-Instanz knnen Sie immer nur einen Link Server starten.

44

April 2001

SAP AG

Desktop Office Integration (BC-CI) get_table_collection

get_table_collection
Sie erzeugen eine Instanz fr die Table Collection [Seite 128]. CALL METHOD control->get_table_collection EXPORTING no_flush = no_flush IMPORTING table_collection = table_collection retcode = retcode error = error. Parameterverwendung Parameter table_collection Optional Bedeutung X Erzeugte Instanz fr die Table Collection Objekt wird mit Referenz auf das Interface i_oi_table_collection angelegt

Pro Container Control kann immer nur eine Instanz fr eine Table Collection erzeugt werden. Jeder weitere Aufruf gibt eine Referenz auf das bereits erzeugte Objekt zurck. Alle geffneten Dokumente exponieren die gleichen Tabellen in der Property Tables.

April 2001

45

Desktop Office Integration (BC-CI) get_extensions

SAP AG

get_extensions
Mit dieser Methode geben Sie eine Liste der Dateierweiterungen zurck, die fr eine bestimmte Anwendung gltig sind. CALL METHOD control->get_extensions EXPORTING document_type = document_type no_flush = no_flush IMPORTING error = error retcode = retcode CHANGING extensions = extensions. Parameterverwendung Parameter document_type extensions Optional Bedeutung Programm-ID der Anwendung, wie sie in der Registrierung erscheint (z.B. 'Word.Document.8'). Einspaltige interne Tabelle mit der Liste der gltigen Dateierweiterungen fr die Anwendung. Die Methode liest diese Dateierweiterungen aus der Registrierung Ihres FrontendRechners. Definieren Sie die Tabelle mit Referenz auf soi_colnames_table.

46

April 2001

SAP AG

Desktop Office Integration (BC-CI) set_focus

set_focus
Mit dieser Methode setzen Sie den Fokus auf die Desktop-Anwendung. CALL METHOD control->set_focus EXPORTING no_flush = no_flush IMPORTING retcode = retcode error = error.

April 2001

47

Desktop Office Integration (BC-CI) get_control_object

SAP AG

get_control_object
Mit dieser Methode knnen Sie sich eine Referenz auf das Control der Desktop Office Integration beschaffen. Mit dieser Referenz knnen Sie dann die Methoden des Control Frameworks [Extern] aufrufen. CALL METHOD control->get_control_object EXPORTING no_flush = no_flush IMPORTING control = control_2 retcode = retcode error = error. Parameterverwendung Parameter Optional Bedeutung control_2 X Referenz auf das Control der Desktop-Office-Anbindung Das Datenobjekt mu mit Referenz auf die Klasse cl_gui_control angelegt werden

48

April 2001

SAP AG

Desktop Office Integration (BC-CI) Dokumente

Dokumente
Definition
Diese Instanz wird mit Referenz auf das Interface i_oi_document_proxy definiert:

Verwendung
Jede Instanz document verwaltet und steuert ein Dokument, das in der Office-Anwendung geffnet werden soll. Wenn Sie mehrere Dokumente gleichzeitig ffnen wollen, mssen Sie daher fr jedes Dokument eine eigene Instanz anlegen. Ihnen stehen Methoden zur Verfgung, mit denen Sie Dokumente aus Ihrem Anwendungsprogramm bearbeiten (z.B. ffnen, Schlieen, Speichern) knnen.

Integration
Bevor Sie die Instanz document erzeugen, mssen Sie die zentrale Instanz control fr die Verwaltung der Desktop-Office-Anbindung anlegen.

April 2001

49

Desktop Office Integration (BC-CI) Arbeiten mit Dokumenten

SAP AG

Arbeiten mit Dokumenten


Voraussetzungen
Bevor Sie die folgenden Schritte ausfhren, mssen Sie die zentrale Instanz control fr die Verwaltung der Desktop-Office-Anbindung anlegen. Lesen Sie dazu Instanz zur Verwaltung der Desktop Office Integration [Seite 27].

Ablauf
Ein berblick ber den Ablauf der Dokumentbearbeitung finden Sie in folgender Grafik.

get_document_proxy

Container ohne Dokument Anwendung nicht gestartet

open_document view_document play_document create_document

release_document reopen_document Container mit Dokument Anwendung ist gestartet save_document_to_url

Container mit Dokument Anwendung ist geschlossen save_document_to_url

Schlieen durch Benutzer close_document

Deklaration
1. Deklarieren Sie eine Instanz mit Referenz auf das Interface i_oi_document_proxy: DATA: document TYPE REF TO I_OI_DOCUMENT_PROXY.

Initialisierung
2. Erzeugen Sie die Instanz fr das Dokument mit der Methode get_document_proxy auf der zentralen Instanz fr die Verwaltung der Desktop-Office-Anbindung control. 3. Ordnen Sie den Ereignissen, die beim Dokument ausgelst werden knnen, eine Behandlungsmethode in Ihrem Anwendungsprogramm zu. 4. ffnen Sie ein Dokument. Bestehende Dokumente werden mit den Methoden open_document (nderungsmodus), view_document (Anzeigemodus fr Metadaten) bzw. play_document (Abspielen eines Dokuments) geffnet. Neue Dokumente erstellen Sie mit der Methode create_document.

50

April 2001

SAP AG

Desktop Office Integration (BC-CI) Arbeiten mit Dokumenten

Bearbeitung
5. Verndern Sie das Dokument, und speichern Sie gegebenfalls die nderungen. Hierfr stehen Ihnen folgende Methoden zur Verfgung: Methoden fr die Verarbeitung eines Dokuments Methode Funktion

print_document Drucken des Dokuments clear_selection Lschen eines markierten Bereichs paste_clipboard Einfgen des Inhalts des Clipboards cut_selection paste_special select_all copy_selection save_as save_copy_as page_setup Ausschneiden eines markierten Bereichs Einfgen eines Links Alles markieren Kopieren eines markierten Bereichs Lokales Speichern (auf Prsentationsrechner) Speichern des Dokuments unter anderm Namen Seitenlayout festlegen

execute_macro Ausfhren eines Makros

6. Ermitteln Sie Attribute der Instanz document mit folgenden Methoden: Methoden fr Attributeabfrage Methode is_open is_destroyed get_document_type has_changed get_document_handle Funktion Dokument ist in Office-Anwendung geffnet Dokument nicht geffnet (leerer Container) Typ des Dokuments Dokument wurde gendert Handle des Dokuments bestimmen

has_standard_interface Dokument hat ein Standard-Interface

Abbau
7. Schlieen Sie das Dokument nach der Bearbeitung mit der Methode close_document bzw. reagieren Sie auf das Ereignis on_close_event, das beim Schlieen des Dokuments durch den Benutzer der Office-Anwendung ausgelst wird. 8. Speichern Sie die nderungen an dem Dokument document mit der Methode save_document_to_url. Danach geben Sie den Speicherbereich mit der Methode release_document frei.

April 2001

51

Desktop Office Integration (BC-CI) Arbeiten mit Dokumenten

SAP AG

Beim Entwickeln Ihrer Anwendung mssen Sie immer damit rechnen, da der Benutzer die Office-Anwendung schlieen kann, whrend das R/3-System mit anderen Vorgngen beschftigt ist. In diesem Fall geht das Ereignis on_close_event verloren. Daher sollten Sie beim Verlassen der Transaktion immer berprfen, ob noch Dokumente offen sind und ob diese sich gendert haben. Achten Sie darauf, da Sie die nderungen am Dokument speichern, bevor Sie das Dokument mit der Methode release_document freigeben. Dazu mssen Sie die entsprechenden Methoden auf die Instanz document anwenden.

Sofern Sie spezielle Methoden der Desktop-Applikation nutzen wollen, werden Sie ber folgende Interfaces untersttzt: Das Wordprocessor-Interface [Seite 139] Das Form-Interface [Seite 159] Die Serienbriefschnittstelle [Seite 172] Die Script-Collection [Seite 183] Die Tabellenschnittstelle [Seite 190]

Denken Sie daran, da Sie nach jedem Methodenaufruf eine Fehlerbehandlung [Seite 21] implementieren sollten.

Die Bedeutung der nicht aufgefhrten Parameter bei den Methodenbeschreibungen finden Sie in Generische Parameter [Seite 253].

52

April 2001

SAP AG

Desktop Office Integration (BC-CI) Methoden des Interfaces i_oi_document_proxy

Methoden des Interfaces i_oi_document_proxy


In den folgenden Abschnitten werden die Methoden des Interfaces i_oi_document_proxy vorgestellt. Die Methoden werden unterschieden in Methoden, die alle OLE2-DesktopAnwendungen anbieten, und solche, die zustzlich ber ein Standard-Interface zur Verfgung stehen. Die folgenden Tabellen geben einen berblick ber diese Methoden: Methoden aller OLE2-Desktop-Anwendungen create_document [Seite 55] view_document_from_table [Seite 58] open_document_from_table [Seite 61] reopen_document [Seite 63] play_document_from_table [Seite 67] save_document_to_table [Seite 69] has_changed [Seite 74] is_open [Seite 76] has_standard_interface [Seite 78] get_wordprocessor_interface [Seite 93] get_document_handle [Seite 95] Methoden des Standard-Interfaces: save_as [Seite 70] add_menu_bar [Seite 79] add_menu_item [Seite 81] select_all [Seite 83] cut_selection [Seite 85] paste_clipboard [Seite 87] page_setup [Seite 89] update_document_links [Seite 97] execute_macro [Seite 91] save_copy_as [Seite 71] add_menu_popup [Seite 80] delete_menu_item [Seite 82] clear_selection [Seite 84] copy_selection [Seite 86] paste_special [Seite 88] print_document [Seite 90] get_application_property [Seite 96] view_document [Seite 57] open_document [Seite 59] open_activex_document [Seite 65] play_document [Seite 66] save_document_to_url [Seite 68] close_document [Seite 72] release_document [Seite 75] is_destroyed [Seite 77] has_wordprocessor_interface [Seite 92] get_document_type [Seite 94]

Die Bedeutung der nicht aufgefhrten Parameter bei den Methodenbeschreibungen finden Sie in Generische Parameter [Seite 253].

April 2001

53

Desktop Office Integration (BC-CI) Generische Parameter

SAP AG

Generische Parameter
In der folgenden Tabelle werden Parameter aufgefhrt, die in sehr vielen Methoden der Desktop Office Integration verwendet werden. Parameterverwendung Parameter Optional Bedeutung no_flush X 'X': Synchronisation der Automation Queue ' ': Vor dem Verlassen dieser Methode wird die Automation Queue [Extern] synchronisiert retcode error Fehlerbehandlung [Seite 21] Fehlerbehandlung [Seite 21]

Wenn Sie die Methode mit dem Parameter no_flush = 'X' ausfhren, werden die Methodenaufrufe nicht direkt vom Applikationsrechner zum Prsentationsrechner weitergereicht und daher auch nicht sofort ausgefhrt. Erst beim nchsten Methodenaufruf mit Parameter no_flush= ' ' bzw. nach Aufruf der Methode cl_gui_cfw=>flush [Extern] werden die zwischengespeicherten Daten auf einmal zum Prsentationsrechner geschickt. Diese Technik fhrt bei korrekter Verwendung zu einer Performance-Verbesserung. Bei falscher Anwendung knnen aber Inkonsistenzen der Daten auftreten. (Siehe auch Automation Queue [Extern]).

54

April 2001

SAP AG

Desktop Office Integration (BC-CI) create_document

create_document
Mit dieser Methode ffnen Sie ein neues Dokument in der Office-Anwendung. CALL METHOD document->create_document EXPORTING open_inplace = open_inplace create_view_data = create_view_data onsave_macro = onsave_macro startup_macro = startup_macro document_title = document_title no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter open_inplace Optional Bedeutung X 'X': Das Dokument wird im R/3-Fenster gestartet. Voraussetzung ist, da bei der Methode get_document_proxy [Seite 40] der Parameter inplace = 'X' gesetzt wurde. ' ': Das Dokument wird in einem separaten Fenster geffnet. create_view_data X Verwenden Sie diesen Schalter, wenn in dem erstellten Dokument Prsentationsdaten abgespeichert werden sollen. Nur solche Dokumente knnen mit der Methode view_document angezeigt werden. Name des Makros, das aufgerufen wird, wenn das Dokument gendert wurde und eine der folgenden Bedingungen erfllt ist: Der Benutzer schliet die Anwendung (wenn sie nicht inplace luft). Sie verwenden eine der folgenden Methoden: save_document reopen_document mit do_save = 'X' close_document mit do_save = 'X'

onsave_macro

Das Makro mu im Dokument gespeichert werden. Hinweis: Je nach Anwendung wird eine nderung am Dokument unterschiedlich definiert. MS Project und MS Excel betrachten das Dokument in fast allen Fllen als gendert, so da das Makro auch dann aufgerufen wird, wenn Sie keine physischen nderungen vorgenommen haben.

In MS Word und MS PowerPoint mssen Sie das Dokument hingegen physisch ndern, damit das Makro aufgerufen wird. startup_macro X Makro, das beim ffnen des Dokuments ausgefhrt werden soll.

April 2001

55

Desktop Office Integration (BC-CI) create_document document_title X

SAP AG

Titel, der in der Titelzeile der Desktop-Applikation angezeigt werden soll.

Es kann immer nur ein Dokument im R/3-Fenster (inplace) gestartet werden.

Wird ein Dokument als Prsentation geffnet, mu die Applikation, mit der das Dokument erstellt wurde, nicht auf dem Prsentationsrechner installiert sein. Durch die Einschrnkung von OLE wird grundstzlich nur die erste Seite eines Dokuments als Prsentationsdaten gespeichert.

56

April 2001

SAP AG

Desktop Office Integration (BC-CI) view_document

view_document
Prsentationsdaten anzeigen, die in einem Dokument gespeichert sind. CALL METHOD document->view_document EXPORTING document_title = document_title document_url = document_url open_inplace = open_inplace startup_macro = startup_macro user_info = user_info no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter document_url open_inplace X Optional Bedeutung URL-Adresse des Dokuments 'X': Das Dokument wird im R/3-Fenster gestartet. Voraussetzung ist, da bei der Methode get_document_proxy [Seite 40] der Parameter inplace = 'X' gesetzt wurde. ' ': Das Dokument wird in einem separaten Fenster geffnet. startup_macro document_title user_info X X X Angabe des Makros, das beim ffnen des Dokuments ausgefhrt werden soll. Titel, der in der Titelzeile der Desktop-Applikation angezeigt werden soll. Anmelde- und Proxy-Daten fr den Zugriff auf einen HTTP-/FTPServer

Es kann immer nur ein Dokument im R/3-Fenster gestartet werden.

Mit der Methode view_document knnen nur Dokumente angezeigt werden, fr die beim Erstellen das Flag create_view_data mit der Methode create_document gesetzt wurde. Zum Anzeigen anderer Dokumente benutzen Sie die Methode open_document mit dem Flag open_readonly. Dabei soll allerdings auf dem Prsentationsrechner die Desktop-Anwendung installiert sein, mit der das Dokument erzeugt wurde. Bei den URLs, die auf das lokale Dateisystem zeigen, mu 'file://' vorangestellt werden.

April 2001

57

Desktop Office Integration (BC-CI) view_document_from_table

SAP AG

view_document_from_table
Prsentationsdaten anzeigen, die in einem Dokument gespeichert sind. Das Dokument mu in einer internen Tabelle vorliegen. CALL METHOD document->view_document_from_table EXPORTING document_table = document_table document_size = document_size document_title = document_title open_inplace = open_inplace startup_macro = startup_macro no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter document_table document_size document_title open_inplace X X Optional Bedeutung Interne Tabelle, in die das Dokument geladen wurde Gre der Datei Titel, der in der Titelzeile der Desktop-Applikation angezeigt werden soll. 'X': Das Dokument wird im R/3-Fenster gestartet. Voraussetzung ist, da bei der Methode get_document_proxy [Seite 40] der Parameter inplace = 'X' gesetzt wurde. ' ': Das Dokument wird in einem separaten Fenster geffnet. startup_macro X Angabe des Makros, das beim ffnen des Dokuments ausgefhrt werden soll.

Es kann immer nur ein Dokument im R/3-Fenster gestartet werden.

Mit der Methode view_document knnen nur Dokumente angezeigt werden, fr die beim Erstellen das Flag create_view_data mit der Methode create_document gesetzt wurde. Zum Anzeigen anderer Dokumente benutzen Sie die Methode open_document mit dem Flag open_readonly. Dabei soll allerdings auf dem Prsentationsrechner die Desktop-Anwendung installiert sein, mit der das Dokument erzeugt wurde.

58

April 2001

SAP AG

Desktop Office Integration (BC-CI) open_document

open_document
Mit dieser Methode ffnen Sie ein bereits existierendes Dokument: CALL METHOD document->open_document EXPORTING document_title = document_title document_url = document_url open_inplace = open_inplace open_readonly = open_readonly onsave_macro = onsave_macro startup_macro = startup_macro protect_document = protect_document user_info = user_info no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter document_title document_url open_inplace X Optional Bedeutung X Titel, der in der Titelzeile der Desktop-Applikation angezeigt werden soll. URL-Adresse des Dokuments 'X': Das Dokument wird im R/3-Fenster gestartet. Voraussetzung ist, da bei der Methode get_document_proxy [Seite 40] der Parameter inplace = 'X' gesetzt wurde. ' ': Das Dokument wird in einem separaten Fenster geffnet. open_readonly X ffnen im Anzeigemodus (beim Schlieen des Dokuments wird kein Ereignis close_event ausgelst, und auch bei einer Abfrage des Parameters has_changed [Seite 74] ist dieser immer initial)

April 2001

59

Desktop Office Integration (BC-CI) open_document onsave_macro X

SAP AG

Name des Makros, das aufgerufen wird, wenn das Dokument gendert wurde und eine der folgenden Bedingungen erfllt ist: Der Benutzer schliet die Anwendung (wenn sie nicht inplace luft). Sie verwenden eine der folgenden Methoden: save_document reopen_document mit do_save = 'X' close_document mit do_save = 'X'

Das Makro mu im Dokument gespeichert werden. Hinweis: Je nach Anwendung wird eine nderung am Dokument unterschiedlich definiert. MS Project und MS Excel betrachten das Dokument in fast allen Fllen als gendert, so da das Makro auch dann aufgerufen wird, wenn Sie keine physischen nderungen vorgenommen haben. In MS Word und MS PowerPoint mssen Sie das Dokument hingegen physisch ndern, damit das Makro aufgerufen wird.

startup_macro protect_document

X X

Makro, das beim ffnen des Dokuments ausgefhrt werden soll. Kennzeichnet, ob das Dokument gegen alle nderungen geschtzt werden soll Markierungen knnen aber weiterhin in das Dokument eingefgt werden. Anmelde- und Proxy-Daten fr den Zugriff auf einen HTTP/FTP-Server

user_info

Es kann immer nur ein Dokument im R/3-Fenster (inplace) gestartet werden. Bei den URLs, die auf das lokale Dateisystem zeigen, soll 'file://' vorangestellt werden.

60

April 2001

SAP AG

Desktop Office Integration (BC-CI) open_document_from_table

open_document_from_table
Mit dieser Methode ffnen Sie ein bereits existierendes Dokument. Das Dokument mu als interne Tabelle im ABAP-Programm vorliegen. CALL METHOD document->open_document_from_table EXPORTING document_table = document_table document_size = document_size document_title = document_title open_inplace = open_inplace open_readonly = open_readonly onsave_macro = onsave_macro startup_macro = startup_macro protect_document = protect_document no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter document_table document_size document_title open_inplace X X Optional Bedeutung Interne Tabelle, in die das Dokument geladen wurde Gre der Datei Titel, der in der Titelzeile der Desktop-Applikation angezeigt werden soll. 'X': Das Dokument wird im R/3-Fenster gestartet. Voraussetzung ist, da bei der Methode get_document_proxy [Seite 40] der Parameter inplace = 'X' gesetzt wurde. ' ': Das Dokument wird in einem separaten Fenster geffnet. open_readonly X ffnen im Anzeigemodus (beim Schlieen des Dokuments wird kein Ereignis close_event ausgelst, und auch bei einer Abfrage des Parameters has_changed [Seite 74] ist dieser immer initial)

April 2001

61

Desktop Office Integration (BC-CI) open_document_from_table onsave_macro X

SAP AG

Name des Makros, das aufgerufen wird, wenn das Dokument gendert wurde und eine der folgenden Bedingungen erfllt ist: Der Benutzer schliet die Anwendung (wenn sie nicht inplace luft). Sie verwenden eine der folgenden Methoden: save_document reopen_document mit do_save = 'X' close_document mit do_save = 'X'

Das Makro mu im Dokument gespeichert werden. Hinweis: Je nach Anwendung wird eine nderung am Dokument unterschiedlich definiert. MS Project und MS Excel betrachten das Dokument in fast allen Fllen als gendert, so da das Makro auch dann aufgerufen wird, wenn Sie keine physischen nderungen vorgenommen haben.

In MS Word und MS PowerPoint mssen Sie das Dokument hingegen physisch ndern, damit das Makro aufgerufen wird. startup_macro protect_document X X Makro, das beim ffnen des Dokuments ausgefhrt werden soll. Kennzeichnet, ob das Dokument gegen alle nderungen geschtzt werden soll Markierungen knnen aber weiterhin in das Dokument eingefgt werden.

Es kann immer nur ein Dokument im R/3-Fenster (inplace) gestartet werden.

62

April 2001

SAP AG

Desktop Office Integration (BC-CI) reopen_document

reopen_document
Ein Dokument wird nach dem Schlieen noch im Speicher des Prsentationsrechner gehalten und kann daher mit der Methode reopen_document nochmals geffnet werden. CALL METHOD document->reopen_document EXPORTING open_inplace = open_inplace open_readonly = open_readonly do_save = do_save onsave_macro = onsave_macro startup_macro = startup_macro no_flush = no_flush IMPORTING has_changed = has_changed error = error retcode = retcode. Parameterverwendung Parameter open_inplace Optional Bedeutung X 'X': Das Dokument wird im R/3-Fenster gestartet. Voraussetzung ist, da bei der Methode get_document_proxy [Seite 40] der Parameter inplace = 'X' gesetzt wurde. ' ': Das Dokument wird in einem separaten Fenster geffnet. open_readonly X ffnen im Anzeigemodus (beim Schlieen des Dokuments wird kein Ereignis close_event ausgelst, und auch bei einer Abfrage des Parameters has_changed [Seite 74] ist dieser immer initial) Bestimmt, ob das Dokument gespeichert werden soll Name des Makros, das aufgerufen wird, wenn das Dokument gendert wurde und eine der folgenden Bedingungen erfllt ist: Der Benutzer schliet die Anwendung (wenn sie nicht inplace luft). Sie verwenden eine der folgenden Methoden: save_document reopen_document mit do_save = 'X' close_document mit do_save = 'X'

do_save onsave_macro

X X

Das Makro mu im Dokument gespeichert werden. Hinweis: Je nach Anwendung wird eine nderung am Dokument unterschiedlich definiert. MS Project und MS Excel betrachten das Dokument in fast allen Fllen als gendert, so da das Makro auch dann aufgerufen wird, wenn Sie keine physischen nderungen vorgenommen haben.

In MS Word und MS PowerPoint mssen Sie das Dokument hingegen physisch ndern, damit das Makro aufgerufen wird.

April 2001

63

Desktop Office Integration (BC-CI) reopen_document startup_macro has_changed X

SAP AG

Makro, das beim ffnen des Dokuments ausgefhrt werden soll. Kennzeichnet, ob die Office-Anwendung gendert wurde. Wurde beim ffnen des Dokuments der Parameter open_readonly gesetzt, ist der Wert von has_changed immer initial.

Es kann immer nur ein Dokument im R/3-Fenster (inplace) gestartet werden.

64

April 2001

SAP AG

Desktop Office Integration (BC-CI) open_activex_document

open_activex_document
Die ActiveX-Documents-Technologie stellt eine Weiterentwicklung der OLE-Technologie dar. Mit dieser Technologie knnen Dokumente aller Office-Applikationen, die ActiveX-DocumentsSchnittstellen untersttzen, im Microsoft Internet Explorer angezeigt werden. Darber hinaus kann man mit Visual Basic 5.0 Formulare als ActiveX-Dokumente entwerfen, die auch im Internet Explorer geffnet werden knnen. Mit der Methode open_activex_document knnen Sie ein mit Visual Basic erstelltes ActiveXDokument in der Office-Applikation ffnen. CALL METHOD document->open_activex_document EXPORTING document_type = document_type document_url = document_url user_info = user_info no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter document_type document_url user_info Optional Bedeutung X X X Dokumenttyp. Prog-ID der erstellten VB-Anwendung URL-Adresse des Dokuments Anmelde- und Proxy-Daten fr den Zugriff auf den HTTP-/FTPServer

April 2001

65

Desktop Office Integration (BC-CI) play_document

SAP AG

play_document
Abspielen von Prsentationen. CALL METHOD document->play_document EXPORTING document_title = document_title document_url = document_url open_inplace = open_inplace startup_macro = startup_macro protect_document = protect_document user_info = user_info no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter document_title document_url open_inplace X Optional Bedeutung X Titel, der in der Titelzeile der Desktop-Applikation angezeigt werden soll. URL-Adresse des Dokuments 'X': Das Dokument wird im R/3-Fenster gestartet. Voraussetzung ist, da bei der Methode get_document_proxy [Seite 40] der Parameter inplace = 'X' gesetzt wurde. ' ': Das Dokument wird in einem separaten Fenster geffnet. startup_macro protect_document X X Angabe des Makros, das beim ffnen des Dokuments ausgefhrt werden soll. Soll das Dokument gegen nderungen geschtzt werden? Markierungen knnen aber weiterhin in das Dokument eingefgt werden. Anmelde- und Proxy-Daten fr den Zugriff auf HTTP-/FTPServer

user_info

Es kann immer nur ein Dokument im R/3-Fenster (inplace) gestartet werden. Bei den URLs, die auf das lokale Dateisystem zeigen, mu 'file://' vorangestellt werden.

66

April 2001

SAP AG

Desktop Office Integration (BC-CI) play_document_from_table

play_document_from_table
Mit dieser Methode knnen Sie eine Prsentation abspielen. Die Prsentation mu in einer internen Tabelle vorliegen. CALL METHOD document->play_document_from_table EXPORTING document_table = document_table document_size = document_size document_title = document_title open_inplace = open_inplace startup_macro = startup_macro protect_document = protect_document no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter document_table document_size document_title open_inplace X X Optional Bedeutung Interne Tabelle, in die das Dokument geladen wurde Gre der Datei Titel, der in der Titelzeile der Desktop-Applikation angezeigt werden soll. 'X': Das Dokument wird im R/3-Fenster gestartet. Voraussetzung ist, da bei der Methode get_document_proxy [Seite 40] der Parameter inplace = 'X' gesetzt wurde. ' ': Das Dokument wird in einem separaten Fenster geffnet. startup_macro protect_document X X Angabe des Makros, das beim ffnen des Dokuments ausgefhrt werden soll. Soll das Dokument gegen nderungen geschtzt werden? Markierungen knnen aber weiterhin in das Dokument eingefgt werden.

Es kann immer nur ein Dokument im R/3-Fenster (inplace) gestartet werden.

April 2001

67

Desktop Office Integration (BC-CI) save_document_to_url

SAP AG

save_document_to_url
Speichern eines Office-Dokuments unter einer bestimmten URL-Adresse. Mit dieser Methode knnen Sie das Dokument in einer zentralen Ablage ablegen. CALL METHOD document->save_document_to_url EXPORTING url = url user_info = user_info no_flush = no_flush IMPORTING error = error retcode = retcode CHANGING document_size = document_size. Parameterverwendung Parameter url user_info Document_size X X Optional Bedeutung URL-Adresse des zu speichernden Dokuments Anmelde- und Proxy-Daten fr den Zugriff auf HTTP-/FTP-Server Dieses Feld bekommt die Lnge des gespeicherten Dokuments

Verwenden Sie diese Methode zuerst, nachdem das Dokument mit der Methode close_document in der Office-Anwendung geschlossen wurde. Dadurch stellen Sie sicher, da danach keine nderungen an dem Dokument mehr vorgenommen werden knnen. Natrlich knnen Sie mit dieser Methode auch ein Zwischenspeichern des Dokuments vornehmen. Nach dem Sichern verwenden Sie die Methode release_document, um den Speicherplatz auf dem Prsentationsrechner freizugeben. Bei den URLs, die auf das lokale Dateisystem zeigen, mu 'file://' vorangestellt werden.

68

April 2001

SAP AG

Desktop Office Integration (BC-CI) save_document_to_table

save_document_to_table
Speichern eines Office-Dokuments in einer internen Tabelle. CALL METHOD document->save_document_to_table EXPORTING no_flush = no_flush IMPORTING error = error retcode = retcode CHANGING document_table = document_table document_size = document_size. Parameterverwendung Parameter document_table document_size Optional Bedeutung Interne Tabelle, in die das Dokument gespeichert werden soll Dieses Feld bekommt die Lnge des gespeicherten Dokuments

Verwenden Sie diese Methode zuerst, nachdem das Dokument mit der Methode close_document in der Office-Anwendung geschlossen wurde. Dadurch stellen Sie sicher, da danach keine nderungen an dem Dokument mehr vorgenommen werden knnen. Natrlich knnen Sie mit dieser Methode auch ein Zwischenspeichern des Dokuments vornehmen. Nach dem Sichern verwenden Sie die Methode release_document, um den Speicherplatz auf dem Prsentationsrechner freizugeben.

April 2001

69

Desktop Office Integration (BC-CI) save_as

SAP AG

save_as
Lokales Speichern des Dokuments auf dem Prsentationsrechner CALL METHOD document->save_as EXPORTING file_name = file_name prompt_user = prompt_user no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter file_name prompt_user Optional Bedeutung X X Name der anzulegenden Datei Bei der Ausfhrung der Methode wird das entsprechende Dialogfenster der Office-Anwendung gestartet.

Verwenden Sie diese Methode ausschlielich dafr, um eine lokale Kopie des Dokuments auf dem Prsentationsrechner anzulegen. Beachten Sie dabei, da diese Methode nur solange funktioniert, wie das Dokument offen bleibt. Um das Dokument in einer Dokumentenablage zu speichern, verwenden Sie die Methode save_document_to_url.

70

April 2001

SAP AG

Desktop Office Integration (BC-CI) save_copy_as

save_copy_as
Lokales Speichern eines Office-Dokuments unter einem anderen Namen CALL METHOD document->save_as EXPORTING file_name = file_name prompt_user = prompt_user no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter file_name prompt_user Optional Bedeutung X X Name, unter dem das Office-Dokument gespeichert werden soll Bei der Ausfhrung der Methode wird das entsprechende Dialogfenster der Office-Anwendung gestartet.

Verwenden Sie diese Methode ausschlielich dafr, um eine lokale Kopie des Dokuments auf dem Prsentationsrechner anzulegen. Beachten Sie dabei, da diese Methode nur solange funktioniert, wie das Dokument offen bleibt. Um das Dokument in einer Dokumentenablage zu speichern, verwenden Sie die Methode save_document_to_url.

April 2001

71

Desktop Office Integration (BC-CI) close_document

SAP AG

close_document
Schlieen eines Dokuments in der Office-Anwendung CALL METHOD document->close_document EXPORTING do_save = do_save no_flush = no_flush IMPORTING has_changed = has_changed error = error retcode = retcode. Parameterverwendung Parameter do_save has_changed Optional Bedeutung X X Soll Dokument gespeichert werden? Wurde das Dokument in der Office-Anwendung gendert?

Nachdem die Methode close_document ohne Speichern ausgefhrt wurde, mu immer noch die Methode release_document zum Freigeben des Dokuments ausgefhrt werden. Sie knnen die Methode close_document auch dann aufrufen, wenn das Dokument bereits geschlossen wurde. Die Methode bringt keinen Fehler und ermittelt den Wert des Parameters has_changed korrekt. Daher ist es sicherer und performanter, anstelle von is_open und close_document ausschlielich die Methode close_document aufzurufen.

72

April 2001

SAP AG

Desktop Office Integration (BC-CI) close_activex_document

close_activex_document
Mit dieser Methode knnen Sie ein mit Visual Basic erstelltes ActiveX-Dokument schlieen. CALL METHOD document->close_activex_document EXPORTING no_flush = no_flush IMPORTING error = error retcode = retcode.

April 2001

73

Desktop Office Integration (BC-CI) has_changed

SAP AG

has_changed
Abfrage, ob das Dokument der Instanz document in der Office-Anwendung gendert wurde: CALL METHOD document->has_changed EXPORTING no_flush = no_flush IMPORTING error = error retcode = retcode ret_value = ret_value. Parameterverwendung Parameter Optional Bedeutung ret_value Flag, ob das Dokument verndert wurde. Dieser Wert wird nur gesetzt, wenn eine nderung im Dokument vorgenommen und beim ffnen des Dokuments der Parameter open_readonly = ' ' gesetzt wurde.

Da die Methode close_document auch die Information liefert, ob sich das Dokument gendert hat, mssen Sie die Methode has_changed nur in seltenen Fllen benutzen.

74

April 2001

SAP AG

Desktop Office Integration (BC-CI) release_document

release_document
Lschen des Speicherbereichs auf dem Prsentationsrechner, in dem das Dokument nach dem Schlieen des Dokuments abgelegt wird. CALL METHOD document->release_document EXPORTING no_flush = no_flush IMPORTING error = error retcode = retcode.

Nach diesem Aufruf sollten Sie die ABAP-OO-Instanz freigeben: FREE document.

April 2001

75

Desktop Office Integration (BC-CI) is_open

SAP AG

is_open
Abfrage, ob fr die Instanz document bereits ein Dokument geffnet wurde: CALL METHOD document->is_open EXPORTING no_flush = no_flush IMPORTING ret_value = ret_value error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung ret_value Flag, ob das Dokument geffnet ist

Sie sollten sich in Ihrem Anwendungsprogramm ber ein Flag merken, ob die Anwendung noch geffnet ist, und diese Methode nur benutzen, wenn Sie nicht sicher sind, ob die Desktop-Anwendung wirklich noch geffnet ist (z.B. wenn ein Ereignis close_event verloren gegangen sein knnte). Sie knnen die Methode close_document auch dann aufrufen, wenn das Dokument bereits geschlossen wurde. Die Methode liefert dabei keinen Fehler. Daher ist es sicherer und performanter, anstelle von is_open und close_document ausschlielich die Methode close_document aufzurufen.

76

April 2001

SAP AG

Desktop Office Integration (BC-CI) is_destroyed

is_destroyed
Abfrage, ob die Instanz document bereits mit der Methode release_document [Seite 75] abgebaut wurde: CALL METHOD document->is_destroyed IMPORTING ret_value = ret_value. Parameterverwendung Parameter Optional Bedeutung Ret_value Flag, ob das Dokument zerstrt wurde

April 2001

77

Desktop Office Integration (BC-CI) has_standard_interface

SAP AG

has_standard_interface
Abfrage, ob die Instanz document ein Standard-Interface besitzt. Das Standard-Interface untersttzt zustzlich zu den Grundfunktionen (ffnen, Schlieen, Speichern) weitere Funktionen (Drucken, Selektieren, Kopieren,...). CALL METHOD document->has_standard_interface EXPORTING no_flush = no_flush IMPORTING is_available = is_available error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung is_available Flag, ob ein Standard-Interface zur Verfgung steht

78

April 2001

SAP AG

Desktop Office Integration (BC-CI) add_menu_bar

add_menu_bar
Mit dieser Methode erzeugen Sie eine zustzliche Menleiste in der Office-Anwendung:

Das Bild zeigt das Ergebnis des Methodenaufrufs. Unter einer anwendungsspezifischen Menleiste wird die selbstangelegte Leiste angezeigt. Diese ist im Moment noch leer und kann mit der Methode add_menu_popup gefllt werden. CALL METHOD document->add_menu_bar EXPORTING name = name pos = pos no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung name pos X Name der anzulegenden Menleiste z.Zt. nicht ausgewertet

April 2001

79

Desktop Office Integration (BC-CI) add_menu_popup

SAP AG

add_menu_popup
Mit dieser Methode fgen Sie ein neues Men in eine bereits angelegte selbstdefinerte Menleiste ein:

CALL METHOD document->add_menu_popup EXPORTING name = menu_bar_name = insert_before_popup = parent = popup_before = no_flush = IMPORTING error = retcode = Parameterverwendung Parameter name menu_bar_name insert_before_popup parent popup_before X X X X Optional Bedeutung

name menu_bar_name insert_before_popup parent popup_before no_flush error retcode.

Name des neuen Mens Name der Menleiste, in die das neue Men eingefgt werden soll. Position, vor der das neue Men eingetragen werden soll (0: am Ende) keine Bedeutung keine Bedeutung

Falls kein Menleistenname angegeben wird, wird das Men in die Hauptmenleiste der Desktop-Anwendung eingefgt.

80

April 2001

SAP AG

Desktop Office Integration (BC-CI) add_menu_item

add_menu_item
Mit dieser Methode erzeugen Sie einen neuen Meneintrag in einem selbst angelegten Men. Dieser Meneintrag mu einem existierenden Makro der Desktop-Applikation zugeordnet werden.

CALL METHOD document->add_menu_item EXPORTING item_name = item_macro = menu_bar_name = menu_popup_name = insert_before_item = item_pos = item_before = no_flush = IMPORTING error = retcode = Parameterverwendung Parameter item_name item_macro menu_bar_name menu_popup_name insert_before_item item_before item_pos X X X X X Optional Bedeutung

item_name item_macro menu_bar_name menu_popup_name insert_before_item item_pos item_before no_flush error retcode.

Name des anzulegenden Meneintrags Name des Makros, das ausgefhrt werden soll, wenn die Funktion bettigt wird. Name der Menleiste, in der das Men menu_popup_name liegt. Name des Mens, in das der Meneintrag eingefgt werden soll. Position eines bestehenden Meneintrags, vor dem der neue Meneintrag eingefgt werden soll (0: am Ende) keine Bedeutung keine Bedeutung

Falls kein Menleistenname angegeben wird, wird das Men in die Hauptmenleiste der Desktop-Anwendung eingefgt.

April 2001

81

Desktop Office Integration (BC-CI) delete_menu_item

SAP AG

delete_menu_item
Meneintrag wird in der Office-Anwendung gelscht: CALL METHOD document->delete_menu_item EXPORTING item_name = item_name menu_bar_name = menu_bar_name menu_popup_name = menu_popup_name item_pos = item_pos no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter item_name menu_bar_name menu_popup_name item_pos X X Optional Bedeutung Name des anzulegenden Meneintrags Name der Menleiste, in der das Men menu_popup_name liegt. Name des Mens, aus dem der Meneintrag gelscht werden soll. Dieser Parameter ist obsolet und soll bei Neuentwicklungen nicht mehr benutzt werden.

Falls kein Menleistenname angegeben wird, wird der Eintrag aus der Hauptmenleiste der Desktop Anwendung gelscht.

82

April 2001

SAP AG

Desktop Office Integration (BC-CI) select_all

select_all
Markieren des gesamten Office-Dokuments CALL METHOD document->select_all EXPORTING no_flush = no_flush IMPORTING error = error retcode = retcode.

April 2001

83

Desktop Office Integration (BC-CI) clear_selection

SAP AG

clear_selection
Markierungen rckgngig machen: CALL METHOD document->clear_selection EXPORTING no_flush = no_flush IMPORTING error = error retcode = retcode.

84

April 2001

SAP AG

Desktop Office Integration (BC-CI) cut_selection

cut_selection
Ausschneiden des in der Office-Anwendung markierten Bereichs: CALL METHOD document->cut_selection EXPORTING no_flush = no_flush IMPORTING error = error retcode = retcode.

April 2001

85

Desktop Office Integration (BC-CI) copy_selection

SAP AG

copy_selection
Kopieren eines markierten Bereichs des Office-Dokuments in das Clipboard: CALL METHOD document->copy_selection EXPORTING no_flush = no_flush IMPORTING error = error retcode = retcode.

86

April 2001

SAP AG

Desktop Office Integration (BC-CI) paste_clipboard

paste_clipboard
Einfgen des Clipboard-Inhalts in das Dokument an der aktuellen Cursorposition als Festwerte (kein Link auf das Objekt): CALL METHOD document->paste_clipboard EXPORTING no_flush = no_flush IMPORTING error = error retcode = retcode.

April 2001

87

Desktop Office Integration (BC-CI) paste_special

SAP AG

paste_special
Aufruf des Dialogs fr das Einfgen des Clipboards in das Dokument der Office-Anwendung CALL METHOD document->paste_special EXPORTING prompt_user = prompt_user no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter prompt_user Optional Bedeutung X Soll bei Ausfhrung der Methode das entsprechende Dialogfenster der Office-Anwendung gestartet werden

Dieser Methodenaufruf sollte immer mit Benutzerinteraktion ber das Dialogfenster der Office-Anwendung ausgefhrt werden, da sonst nur Festwerte und keine Links in das Dokument eingefgt werden.

88

April 2001

SAP AG

Desktop Office Integration (BC-CI) page_setup

page_setup
Aufruf des Dialogs fr die Seitengestaltung in der Office-Anwendung CALL METHOD document->page_setup EXPORTING no_flush = no_flush IMPORTING error = error retcode = retcode.

April 2001

89

Desktop Office Integration (BC-CI) print_document

SAP AG

print_document
Drucken eines in der Office-Anwendung geffneten Dokuments CALL METHOD document->print_document EXPORTING prompt_user = prompt_user no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter prompt_user Optional Bedeutung X Soll bei Ausfhrung der Methode das entsprechende Dialogfenster der Office-Anwendung gestartet werden.

90

April 2001

SAP AG

Desktop Office Integration (BC-CI) execute_macro

execute_macro
Mit dieser Methode fhren Sie ein Makro in der Office-Anwendung aus. CALL METHOD document->execute_macro EXPORTING macro_string = macro_string param_count = param_count script_name = script_name param1 = param1 param2 = param2 param3 = param3 param4 = param4 param5 = param5 param6 = param6 param7 = param7 param8 = param8 param9 = param9 param10 = param10 param11 = param11 param12 = param12 no_flush = no_flush IMPORTING error = error retcode = retcode CHANGING error_string = error_string retvalue = retvalue. Parameterverwendung Parameter macro_string script_name param_count param1.. param9 error_string retvalue Optional Bedeutung X X X X X Name des Makros in der Office-Anwendung ' ': Das Makro ist Teil des Dokuments <Name>: Das Makro wurde unter diesem Namen in die ScriptCollection gestellt. Anzahl der Parameter, die an das Makro bergeben werden sollen Parameter, die an das Makro bergeben werden sollen (nicht Word 97) Der interne Fehlercode aus dem Anwendungsmakro wird auf ABAP-Seite aufgerufen und kann dort behandelt werden. Dadurch wird das VB-Dialogfenster unterdrckt. Wert, der vom Anwendungsmakro erzeugt wird.

Wenn Sie Word verwenden, knnen Sie keine Parameter an das Makro bergeben. Sie knnen auch den Namen eines Templates, Add-Ins oder VBA-Moduls in der Form template_name.macro_name oder module_name.macro_name angeben.

April 2001

91

Desktop Office Integration (BC-CI) has_wordprocessor_interface

SAP AG

has_wordprocessor_interface
Abfrage, ob fr den Dokumenttyp der Instanz document ein anwendungsspezifisches Interface [Seite 139] zur Verfgung steht: CALL METHOD document->has_wordprocessor_interface EXPORTING no_flush = no_flush IMPORTING is_available = is_available error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung is_available Flag, ob ein Standard-Interface zur Verfgung steht

92

April 2001

SAP AG

Desktop Office Integration (BC-CI) get_wordprocessor_interface

get_wordprocessor_interface
Erzeugen einer Instanz wp_interface fr die Verwaltung des anwendungsspezifischen Interfaces [Seite 139]: CALL METHOD document->get_wordprocessor_interface EXPORTING no_flush = no_flush IMPORTING wp_interface = wp_interface error = error retcode = retcode. Parameterverwendung Parameter wp_interface Optional Bedeutung Name der erzeugten Instanz fr das anwendungsspezifische Interface

April 2001

93

Desktop Office Integration (BC-CI) get_document_type

SAP AG

get_document_type
Abfrage, um welchen Dokumenttyp es sich bei dem von der Instanz document verwalteten Office-Dokument handelt: CALL METHOD document->get_document_type EXPORTING no_flush = no_flush IMPORTING document_type = document_type error = error retcode = retcode. Parameterverwendung Parameter document_type Optional Bedeutung Dokumenttyp

Der ermittelte tatschliche Dokumenttyp kann sich in manchen Fllen von dem bei get_document_proxy angegebenen Typ unterscheiden.

94

April 2001

SAP AG

Desktop Office Integration (BC-CI) get_document_handle

get_document_handle
Abfrage nach dem Handle der Instanz document. Mit diesem Handle haben Sie dann ber SAP Automation direkt Zugriff auf das Dokument in der entsprechenden Anwendung. CALL METHOD document->get_document_handle EXPORTING no_flush = no_flush IMPORTING handle = handle error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung handle Handle der Instanz document

Das zurckgelieferte Handle zeigt auf das Dokument-Objekt. Mit Hilfe der Funktionsbausteine CONTROL_CALL_METHOD, CONTROL_GET_PROPERTY sowie CONTROL_SET_PROPERTY knnen Sie Methoden des Dokumentobjekts aufrufen bzw. Properties abfragen oder setzen. Sie mssen sich allerdings dabei im klaren sein, da Sie direkt gegen das Objekt-Modell der jeweiligen DesktopAnwendung programmieren und daher Ihr Programm an jede Desktop-Applikation einzeln anpassen mssen.

April 2001

95

Desktop Office Integration (BC-CI) get_application_property

SAP AG

get_application_property
Abfrage nach den Eigenschaften einer Desktop-Applikation. Sie knnen damit z.B. benutzerspezifische Einstellungen der Desktop-Anwendung abfragen (Standardpfad fr das Ablegen von Vorlagen in Word). CALL METHOD document->get_application_property EXPORTING property_name = property_name subproperty_name = subproperty_name no_flush = no_flush IMPORTING error = error retcode = retcode CHANGING retvalue = retvalue. Parameterverwendung Parameter property_name subproperty_name retvalue Mgliche Werte: Property_Name 'TEMPLATE_PATH' Subproperty_Name '' Bedeutung Bei einer Textverarbeitung wird der Pfad zum benutzerspezifischen Vorlagenverzeichnis geliefert. Dezimalstellen-Trennzeichen Tausender-Trennzeichen Listen-Trennzeichen Datums-Trennzeichen Zeit-Trennzeichen X Optional Bedeutung Name der Eigenschaft der Applikation, die abgefragt werden soll Zusatzliche Przisierung der Eigenschaft Wert der Eigenschaft

'INTERNATIONAL' 'INTERNATIONAL' 'INTERNATIONAL' 'INTERNATIONAL' 'INTERNATIONAL'

'DECIMAL_SEPARATOR' 'THOUSANDS_SEPARATO R' 'LIST_SEPARATOR' 'DATE_SEPARATOR' 'TIME_SEPARATOR'

96

April 2001

SAP AG

Desktop Office Integration (BC-CI) update_document_links

update_document_links
Sofern die von Ihnen verwendete Desktop-Applikation beim ffnen eines Dokuments die im Dokument vorhandenen Links nicht automatisch auffrischt, knnen Sie dies mit dieser Methode programmgesteuert vornehmen. CALL METHOD document->update_document_links EXPORTING no_flush = no_flush IMPORTING error = error retcode = retcode.

April 2001

97

Desktop Office Integration (BC-CI) has_spreadsheet_interface

SAP AG

has_spreadsheet_interface
Abfrage, ob fr den Dokumenttyp der Instanz document eine Tabellenschnittstelle [Seite 190] zur Verfgung steht: CALL METHOD document->has_spreadsheet_interface EXPORTING no_flush = no_flush IMPORTING is_available = is_available error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung is_available Flag, ob eine Tabellenschnittstelle zur Verfgung steht

98

April 2001

SAP AG

Desktop Office Integration (BC-CI) get_spreadsheet_interface

get_spreadsheet_interface
Erzeugen einer Instanz sheet_interface fr die Verwaltung der Tabellenschnittstelle [Seite 190]: CALL METHOD document->get_spreadsheet_interface EXPORTING no_flush = no_flush IMPORTING sheet_interface = sheet_interface error = error retcode = retcode. Parameterverwendung Parameter sheet_interface Optional Bedeutung Name der erzeugten Instanz fr die Tabellenschnittstelle Objekt mit Referenz auf das Interface i_oi_spreadsheet

April 2001

99

Desktop Office Integration (BC-CI) has_form_interface

SAP AG

has_form_interface
Abfrage, ob fr den Dokumenttyp der Instanz document ein Form Interface [Seite 159] zur Verfgung steht: CALL METHOD document->has_form_interface EXPORTING no_flush = no_flush IMPORTING is_available = is_available error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung is_available Flag, ob ein Form Interface zur Verfgung steht

100

April 2001

SAP AG

Desktop Office Integration (BC-CI) get_form_interface

get_form_interface
Erzeugen einer Instanz f_interface fr die Verwaltung des Form Interface [Seite 159]: CALL METHOD document->get_form_interface EXPORTING no_flush = no_flush IMPORTING f_interface = f_interface error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung f_interface Name der erzeugten Instanz fr das Form Interface Objekt mit Referenz auf das Interface i_oi_form

April 2001

101

Desktop Office Integration (BC-CI) has_mail_merge_interface

SAP AG

has_mail_merge_interface
Abfrage, ob fr den Dokumenttyp der Instanz document eine Schnittstelle fr die Serienbrieffunktionalitt [Seite 172] zur Verfgung steht: CALL METHOD document->has_mail_merge_interface EXPORTING no_flush = no_flush IMPORTING is_available = is_available error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung is_available Flag, ob eine Tabellenschnittstelle zur Verfgung steht

102

April 2001

SAP AG

Desktop Office Integration (BC-CI) get_mail_merge_interface

get_mail_merge_interface
Erzeugen einer Instanz mm_interface fr die Verwaltung der Schnittstelle fr die Serienbrieffunktionalitt [Seite 172]: CALL METHOD document->get_mail_merge_interface EXPORTING no_flush = no_flush IMPORTING mm_interface = mm_interface error = error retcode = retcode. Parameterverwendung Parameter mm_interface Optional Bedeutung Name der erzeugten Instanz fr die Serienbrieffunktionalitt Objekt mit Referenz auf das Interface i_oi_mail_merge

April 2001

103

Desktop Office Integration (BC-CI) has_pivot_interface

SAP AG

has_pivot_interface
Mit dieser Methode ermitteln Sie, ob der Dokumententyp der Instanz document die PivotSchnittstelle [Seite 250] untersttzt. CALL METHOD document->has_pivot_interface EXPORTING no_flush = no_flush IMPORTING is_available = is_available error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung is_available Kennzeichen, das angibt, ob die Pivot-Schnittstelle verfgbar ist

104

April 2001

SAP AG

Desktop Office Integration (BC-CI) get_pivot_interface

get_pivot_interface
Mit dieser Methode holen Sie eine Instanz pivot_interface fr die Verwaltung der PivotSchnittstelle [Seite 250]. CALL METHOD document->get_pivot_interface EXPORTING no_flush = no_flush IMPORTING pivot_interface = pivot_interface error = error retcode = retcode. Parameterverwendung Parameter pivot_interface Optional Bedeutung Referenz auf eine Instanz der Pivot-Schnittstelle I_OI_PIVOT, mit der Sie Excel-Pivot-Tabellen aus Ihrer R/3-Anwendung heraus bearbeiten knnen

April 2001

105

Desktop Office Integration (BC-CI) get_script_collection

SAP AG

get_script_collection
Erzeugen einer Instanz wp_interface fr die Verwaltung der Script-Collection [Seite 183]: CALL METHOD document->get_script_collection EXPORTING no_flush = no_flush IMPORTING scripts = scripts error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung scripts Name der erzeugten Instanz fr die Script-Collection Objekt mit Referenz auf das Interface i_oi_script_collection

106

April 2001

SAP AG

Desktop Office Integration (BC-CI) get_document_cookie

get_document_cookie
Diese Methode gibt Ihnen das Dokumenten-Cookie (ID des Dokuments) zurck. Sie knnen dieses Cookie dazu verwenden, um in einem Add-In (VB) nachzuprfen, ob dieses Dokument vorhanden ist. Sofern es vorhanden ist, knnen Sie dann die entsprechenden Methoden des Add-In auf das richtige Dokument anwenden. Im Datenmodell der Desktop Office Integration finden Sie die ID des Dokuments unter: Application.Documents.Container.DocumentCookie CALL METHOD document->get_document_cookie IMPORTING document_cookie = document_cookie. Parameterverwendung Parameter document_cookie Optional Bedeutung ID des Dokuments

April 2001

107

Desktop Office Integration (BC-CI) Ereignisse der Office-Anwendung verarbeiten

SAP AG

Ereignisse der Office-Anwendung verarbeiten


Einsatzmglichkeiten
Sie knnen Ereignisse, die von der Office-Anwendung oder vom Benutzer der Office-Anwendung ausgelst wurden, in Ihrem ABAP-Programm interpretieren und darauf eingehen. Es gibt folgende Ereignisse: on_custom_event: Ereignis, das vom Benutzer der Office-Anwendung ausgelst wurde. Diese Ereignisse werden durch Makroaufrufe ausgelst. on_close_event: diese Ereignis tritt ein, wenn das zu bearbeitende Dokument in der Office-Anwendung geschlossen wird. Sie haben dadurch die Mglichkeit, das Dokument noch zu sichern.

Ablauf
1. Melden Sie die Ereignisse an, die Sie in Ihrem Programm interpretieren wollen. Dies realisieren Sie beim Methodenaufruf init_control [Seite 32] auf die Instanz control. 2. Legen Sie die Verarbeitungslogik fr angemeldete Ereignisse in einer eigenen Klasse an. Sie knnen dabei Klassenmethoden oder Objektmethoden verwenden. 3. Nachdem Sie das Dokument initialisiert haben (Methode get_document_proxy), definieren Sie die Ereignisbehandlung. Dabei knnen Sie mit statischen Methoden und Objektmethoden auf Ereignisse reagieren: Statische Methoden SET HANDLER c_event_handler=>close_event FOR document. SET HANDLER c_event_handler=>custom_event FOR document. Objektmethoden DATA o_event_handler TYPE REF TO class_event_handler. CREATE OBJECT o_event_handler. SET HANDLER o_event_handler->close_event FOR document. SET HANDLER o_event_handler->custom_event FOR document. 4. Fgen Sie in jedes PAI-Modul Ihres Programms, das whrend die Desktop-Anwendung aktiv ist und durchlaufen werden kann, den Methodenaufruf fr die Ereignisbehandlung des Control Frameworks ein: CALL METHOD cl_gui_cfw=>dispatch IMPORTING return_code = return_code.

108

April 2001

SAP AG

Desktop Office Integration (BC-CI) Ereignisverarbeitung als statische Methode realisieren

Ereignisverarbeitung als statische Methode realisieren


Voraussetzungen
Wenn Sie Ereignisse der Office-Anwendung angemeldet haben, auf die Sie in Ihrem ABAPProgramm reagieren wollen, mssen Sie fr diese Ereignisse eine Verarbeitungslogik hinterlegen, die beim Auslsen des Ereignisse durchlaufen wird. Diese Verarbeitungslogik kann als statische Methode einer (lokalen) Klasse fr die Ereignisbehandlung oder als Methode einer (lokalen) Klasse, die alle Methoden enthlt, die fr die Dokumentenverarbeitung relevant sind, angelegt werden:

Vorgehensweise
1. Legen Sie eine Klassendefinition an, in der Sie die statischen Methoden fr die Interpretation der Ereignisse bekanntgeben: CLASS c_event_handler DEFINITION. PUBLIC SECTION. CLASS-METHODS: close_event FOR EVENT ON_CLOSE_DOCUMENT OF I_OI_DOCUMENT_PROXY IMPORTING (...). CLASS-METHODS: custom_event FOR EVENT ON_CUSTOM_EVENT OF I_OI_DOCUMENT_PROXY IMPORTING (...). ENDCLASS. 2. Implementieren Sie die statischen Methoden: CLASS c_event_handler IMPLEMENTATION. METHOD close_event. <Verarbeitungslogik> ENDMETHOD. METHOD custom_event. <Verarbeitungslogik> ENDMETHOD. ENDCLASS.

April 2001

109

Desktop Office Integration (BC-CI) Ereignisverarbeitung als Objektmethode realisieren

SAP AG

Ereignisverarbeitung als Objektmethode realisieren


Voraussetzungen
Wenn Sie Ereignisse der Office-Anwendung angemeldet haben, auf die Sie in Ihrem ABAPProgramm reagieren wollen, mssen Sie fr diese Ereignisse eine Verarbeitungslogik hinterlegen, die beim Auslsen des Ereignisse durchlaufen wird. Diese Verarbeitungslogik kann als Methode einer (lokalen) Klasse fr die Ereignisbehandlung oder als Methode einer (lokalen) Klasse, die alle Methoden enthlt, die fr die Dokumentenverarbeitung relevant sind, angelegt werden:

Vorgehensweise
1. Legen Sie eine Klassendefinition an, in der Sie die Methoden fr die Interpretation der Ereignisse bekanntgeben: CLASS class_event_handler DEFINITION. PUBLIC SECTION. METHODS: close_event FOR EVENT ON_CLOSE_DOCUMENT OF I_OI_DOCUMENT_PROXY IMPORTING (...). METHODS: custom_event FOR EVENT ON_CUSTOM_EVENT OF I_OI_DOCUMENT_PROXY IMPORTING (...). ENDCLASS. 2. Implementieren Sie die Methoden: CLASS event_handler IMPLEMENTATION. METHOD close_event. <Verarbeitungslogik> ENDMETHOD. METHOD custom_event. <Verarbeitungslogik> ENDMETHOD. ENDCLASS.

110

April 2001

SAP AG

Desktop Office Integration (BC-CI) Datenaustausch zwischen R/3 und Desktop-Anwendung

Datenaustausch zwischen R/3 und Desktop-Anwendung


Verwendung
Damit R/3 nicht nur zur reinen Dokumentenablage und Verwaltung benutzt wird, sondern auch sinnvolle betriebswirtschaftliche Anwendungen mglich werden, wurde die technische Mglichkeit implementiert, Dokumente als Formulare oder Schablonen zu nutzen, in die R/3Daten zur Laufzeit eingefgt werden.

Integration
Link Server
Durch OLE-Links kann man nicht nur einfache Texte, sondern auch komplizierte Datenformate wie RTF, Graphiken und interne Tabellen zum Einbinden benutzen. Das Erstellen von Dokumentvorlagen erfordert keine Makroprogrammierung und kann durch eine 'Paste Special'Dialogbox komfortabel untersttzt werden.

Table Collection
Zum Exponieren von R/3-Daten, die in einer tabellarischen Form vorliegen, wird das SAP TableFactory OCX benutzt, das zur SAP Automation Suite gehrt und zur RFC-Programmierung unter Visual Basic (VB / VBA) verwendet wird. ber diese Funktionalitt knnen Daten wieder in das R/3-System eingelesen werden, die in der Desktop-Applikation manipuliert wurden.

Funktionsumfang
Die nachfolgende Grafik zeigt die Objekthierarchie, ber die die R/3-Daten exponiert werden. ber Visual-Basic-Programme kann auf diese Daten zugegriffen werden.
Container LinkServer Active Name Items Name Type Tables Name Type Data Table Name Data Columns Rows Ranges Value Data Table

April 2001

111

Desktop Office Integration (BC-CI) Datenaustausch zwischen R/3 und Desktop-Anwendung

SAP AG

112

April 2001

SAP AG

Desktop Office Integration (BC-CI) Der Link Server

Der Link Server


Definition
Diese Instanz wird mit Referenz auf das Interface i_oi_link_server definiert.

Verwendung
Der Link Server verwaltet die Objekte des R/3-Systems (interne Tabellen, Felder, Dokumente, Bilder...), die in die Office-Anwendung bei Ausfhrung Ihres Programms eingebunden werden knnen. Weiterhin stehen Methoden fr die Verwaltung und Erstellung der Links zu der OfficeAnwendung zur Verfgung.

Integration
Bevor Sie die Instanz link_server erzeugen, mssen Sie die zentrale Instanz control fr die Verwaltung der Office-Anbindung anlegen.

April 2001

113

Desktop Office Integration (BC-CI) Mit dem Link Server arbeiten

SAP AG

Mit dem Link Server arbeiten


Der Link Server enthlt die Objekte des R/3-Systems, die der Benutzer in die Office-Anwendung einbinden kann. Sie hinterlegen hier eine Liste der vorgesehenen Objekte.

Voraussetzungen
Bevor Sie die folgenden Schritte ausfhren, mssen Sie die zentrale Instanz control fr die Verwaltung der Desktop-Office-Anbindung anlegen. Lesen Sie dazu Zentrale Instanz zur Verwaltung der Desktop-Office-Integration [Seite 27].

Ablauf
Initialisierung
1. Deklarieren Sie eine Objektvariable mit Referenz auf das Interface i_oi_link_server: data: link_server type ref to i_oi_link_server. 2. Erzeugen Sie die Instanz fr den Link Server mit der Methode get_link_server auf dem zentralen Objekt fr die Verwaltung der Desktop Office-Anbindung control. 3. Starten Sie den Link Server mit der Methode start_link_server auf der Instanz link_server.

Designphase des Dokuments


4. Fgen Sie mit den Methoden add_string_item, add_table_item und add_binary_item Inhalte in den Link Server, oder lschen Sie Inhalte mit der Methode remove_link_item.

Alle im Dokument verwendeten Verweise mssen Sie vor dem ffnen des Dokuments am Link Server angemeldet haben. 5. Die im Link Server enthaltenen Daten werden mit der Methode copy_link_item_to_clipboard in die Zwischenablage der Desktop-Anwendung gestellt.

Laufzeit des Dokuments


6. Sofern sich die Daten in Ihrem Anwendungsprogramm verndert haben und in der DesktopAnwendung aktualisiert werden sollen, mssen Sie diese mit der Methode add_sting_item, add_table_item bzw add_binary_item im Link Server aktualisieren. 7. Bevor Sie Ihr Programm verlassen, sollten Sie den Link Server mit der Methode stop_link_server ausschalten und den Speicherbereich freigeben.

Die Verweise werden immer nur dann aktualisiert, wenn der zu aktualisierende Verweis mittels add_string_item [Seite 119], add_table_item2 [Seite 120], add_table_item [Seite 122] und add_binary_item [Seite 123] neu bergeben wird.

Denken Sie daran, da Sie nach jedem Methodenaufruf eine Fehlerbehandlung [Seite 21] implementieren sollten.

114

April 2001

SAP AG

Desktop Office Integration (BC-CI) Mit dem Link Server arbeiten

Die Bedeutung der nicht aufgefhrten Parameter bei den Methodenbeschreibungen finden Sie in Generische Parameter [Seite 253].

April 2001

115

Desktop Office Integration (BC-CI) Generische Parameter

SAP AG

Generische Parameter
In der folgenden Tabelle werden Parameter aufgefhrt, die in sehr vielen Methoden der Desktop Office Integration verwendet werden. Parameterverwendung Parameter Optional Bedeutung no_flush X 'X': Synchronisation der Automation Queue ' ': Vor dem Verlassen dieser Methode wird die Automation Queue [Extern] synchronisiert retcode error Fehlerbehandlung [Seite 21] Fehlerbehandlung [Seite 21]

Wenn Sie die Methode mit dem Parameter no_flush = 'X' ausfhren, werden die Methodenaufrufe nicht direkt vom Applikationsrechner zum Prsentationsrechner weitergereicht und daher auch nicht sofort ausgefhrt. Erst beim nchsten Methodenaufruf mit Parameter no_flush= ' ' bzw. nach Aufruf der Methode cl_gui_cfw=>flush [Extern] werden die zwischengespeicherten Daten auf einmal zum Prsentationsrechner geschickt. Diese Technik fhrt bei korrekter Verwendung zu einer Performance-Verbesserung. Bei falscher Anwendung knnen aber Inkonsistenzen der Daten auftreten. (Siehe auch Automation Queue [Extern]).

116

April 2001

SAP AG

Desktop Office Integration (BC-CI) start_link_server

start_link_server
Mit dieser Methode starten Sie eine Instanz mit der Referenz auf das Interface i_oi_link_server. CALL METHOD link_server->start_link_server EXPORTING link_server_mode = link_server_mode server_name_suffix = server_name_suffix no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter link_server_mode Optional Bedeutung X link_server->link_server_inactive: Die Link-Server-Instanz wird angelegt, aber nicht registriert (siehe Hinweis). link_server->link_server_standardname: Link Server wird mit Standardkennung angelegt link_server->link_server_customname: Link Server wird mit Zusatzkennung server_name_suffix angelegt server_name_suffix X Zusatz fr Link-Server-Name

Sie sollten immer den Modus link_server_customname mit der Angabe eines Suffixes verwenden. Wurde nmlich bereits ein Link Server mit dem gleichen Namen (z.B. Standardname) gestartet, erhalten Sie bei Ihrem Methodenaufruf eine Fehlermeldung (siehe auch: Strategien fr das Arbeiten mit dem Link Server [Seite 127]). Achten Sie aber darauf, da in allen in diesem SAP Dokument Container Control geffneten OLE-Dokumenten die Verweise mit diesem Server-Namen angelegt sein mssen.

Wenn link_server->link_server_inactive als Link-Server-Modus angegeben wird, wird eine Instanz des Link Servers im SAP Document Container Control angelegt. Danach kann man mit add_xxx_item Daten in den Link Server einfgen, die allerdings nur ber Automation zugnglich sind. Man kann diese Daten aber auch spter zum Linken freigeben, indem man start_link_server mit einem anderen Modus aufruft.

April 2001

117

Desktop Office Integration (BC-CI) stop_link_server

SAP AG

stop_link_server
Mit dieser Methode bauen Sie die Objekte des Link Server ab. CALL METHOD link_server->stop_link_server EXPORTING no_flush = no_flush IMPORTING error = error retcode = retcode.

118

April 2001

SAP AG

Desktop Office Integration (BC-CI) add_string_item

add_string_item
Durch diese Methode wird ein Datenfeld in den Link Server bernommen CALL METHOD link_server->add_string_item EXPORTING item_name = item_name item_title = item_title item_value = item_value no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung item_name item_title item_value X Technischer Name im Link Server Beschreibung des Feldes (fr bersetzbare Texte) Wert des Datenfelds

April 2001

119

Desktop Office Integration (BC-CI) add_table_item2

SAP AG

add_table_item2
Durch diese Methode wird eine interne Tabelle in den Link Server bernommen.

Diese Methode unterscheidet sich von add_table_item [Seite 122] dadurch, da Sie den Data Provider nicht selbst aufrufen mssen. CALL METHOD link_server->add_table_item2 EXPORTING item_name = item_name item_title = item_title ddic_name = ddic_name description = description date = date time = time no_flush = no_flush IMPORTING error = error retcode = retcode CHANGING data_table = data_table fields_table = fields_table properties = properties. Parameterverwendung Parameter Optional Bedeutung item_name item_title ddic_name description date time data_table fields_table X X X X X X Name der internen Tabelle im ABAP-Programm Beschreibung der Tabelle Name der Tabelle/Struktur in Data Dictionary Optionale Beschreibung Datum der letzten nderung Uhrzeit der letzten nderung Datentabelle Beschreibung der Tabellenstruktur (sofern diese nicht ber den Parameter ddic_name bergeben wurde). Die Tabelle wird mit Bezug auf den Typ SOI_FIELDS_TABLE angelegt. properties X Zusatzattribute Die Tabelle wird mit Bezug auf den Typ SOI_PROPERTIES_TABLE angelegt.

Wenn Sie eine interne Tabelle angeben, deren Struktur im Data Dictionary definiert ist, dann geben Sie den Namen der Struktur als Parameter ddic_name an. Dadurch werden die Spaltennamen mit der Tabelle zum SAP GUI bertragen, so da man

120

April 2001

SAP AG

Desktop Office Integration (BC-CI) add_table_item2

eine Spalte bei der Makroprogrammierung in einer Desktop-Anwendung auch ber den Data-Dictionary-Namen referenzieren kann. Wenn Sie allerdings die Struktur der Tabelle in einem Typ-Pool oder direkt im Programm definiert haben, werden standardmig Zahlen als Spaltennamen generiert. Wenn Sie trotzdem erreichen wollen, da man eine Spalte einer solchen Tabelle ber einen sprechenden Namen referenzieren kann, mssen Sie entsprechend vorsorgen. Dazu mssen Sie eine zustzliche Tabelle anlegen, die die Spalteninformationen aufnehmen soll. Dann mssen Sie mit Hilfe des Funktionsbausteins DP_GET_FIELDS_FROM_TABLE die Beschreibung der Spalten holen: CALL FUNCTION 'DP_GET_FIELDS_FROM_TABLE' TABLES DATA FIELDS = SALES_TABLE = FIELDS_TABLE.

Danach knnen Sie eigene Spaltennamen einsetzen, wie im folgenden Beispiel gezeigt wird: READ TABLE FIELDS_TABLE INDEX 1. FIELDS_TABLE-FIELDNAME = 'Region'. "#EC NOTEXT MODIFY FIELDS_TABLE INDEX 1. READ TABLE FIELDS_TABLE INDEX 2. FIELDS_TABLE-FIELDNAME = 'Sales'. "#EC NOTEXT MODIFY FIELDS_TABLE INDEX 2. Jetzt knnen Sie die Tabelle mit Spalteninformationen bei dem Aufuf der Methode add_table_item2 benutzen.

Wenn Sie eine Struktur im Link Server installieren wollen, knnen Sie es nicht direkt tun. Sie knnen aber eine einreihige Tabelle erzeugen und sie an den Link Server schicken.

April 2001

121

Desktop Office Integration (BC-CI) add_table_item

SAP AG

add_table_item
Durch diese Methode wird eine interne Tabelle in den Link Server bernommen CALL METHOD link_server->add_table_item EXPORTING item_name = item_name item_title = item_title column_count = column_count line_count = line_count table_url = table_url no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter item_name item_title table_url X Optional Bedeutung Name der internen Tabelle im ABAP-Programm Beschreibung der Tabelle Speicheradresse der internen Tabelle nach Herunterladen auf Prsentationsrechner (erzeugen z.B. mit dem Funktionsbaustein DP_CREATE_URL_FROM_TABLE X X Anzahl der Spalten Anzahl der Zeilen

column_count line_count

Der Inhalt der internen Tabelle mu auf den Prsentationsrechner geladen werden. Dazu wird ein Funktionsbaustein fr die Versorgung des Data Providers benutzt, und die URL-Adresse wird dann an den Link Server bergeben.

122

April 2001

SAP AG

Desktop Office Integration (BC-CI) add_binary_item

add_binary_item
Durch diese Methode knnen Sie ein binres Objekt (Grafik, Dokument,...) in den Link Server bernehmen. Dazu mu aber vorher die URL-Adresse des Objekts bestimmt werden. CALL METHOD link_server->add_binary_item EXPORTING item_name = item_name item_title = item_title data_type = data_type data_subtype = data_subtype user_info = user_info table_url = table_url no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter item_name item_title table_url data_type data_subtype user_info X X X X Optional Bedeutung Name des Objekts Beschreibung des Objekts URL-Adresse des Objekts Typ der Daten in Form eines MIME-Typs (z.B. application) Subtyp der Daten in Form eines MIME-Typs (z.B. x-rtf) Anmelde- und Proxy-Daten fr den Zugriff auf den HTTP-/FTPServer

Mgliche Datentypen finden Sie in dem Typgruppe SOI.

April 2001

123

Desktop Office Integration (BC-CI) remove_link_item

SAP AG

remove_link_item
Diese Methode lscht einen Eintrag des Link Servers CALL METHOD link_server->remove_link_item EXPORTING item_name = item_name no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung item_name Technischer Name des zu lschenden Objekts

124

April 2001

SAP AG

Desktop Office Integration (BC-CI) copy_link_item_to_clipboard

copy_link_item_to_clipboard
Diese Methode erstellt einen Verweis auf einen Eintrag des Link Servers und stellt diesen Verweis in das Clipboard des Prsentationsrechners. ber die Einfgefunktion kann dieser Verweis dann in das geffnete Dokument der Office-Anwendung bernommen werden. Dabei kann sowohl der Festwert als auch ein Verweis auf das Objekt in das Dokument eingebunden werden. CALL METHOD link_server->copy_link_item_to_clipboard EXPORTING item_name = item_name no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung item_name Technischer Name des Objekts, auf das ein Verweis in das Clipboard gesetzt werden soll

Der Benutzer kann bei Tabellen Verweise auf einzelne Zellen, Spalten oder Zeilen mit folgendem Zusatz erstellen: RnCm: R0Cm: RnC0: Auswahl der Zelle mit Zeilennummer n und Spaltennummer m. Auswahl einer Zelle mit Zeilennummer n in der Spalte 'Name' Auswahl einer ganzen Spalte mit dem Namen 'Name' Auswahl einer ganzen Spalte mit Spaltennummer m. Auswahl einer ganzen Zeile mit Zeilennummer n. RnC$Name: R0C$Name:

Beachten Sie bitte den Hinweis ber Angabe der Spaltennamen bei der Methode add_table_item2.

April 2001

125

Desktop Office Integration (BC-CI) execute_copy_link_dialog

SAP AG

execute_copy_link_dialog
Durch diese Methode wird ein Dialogfenster im R/3 aufgerufen, auf dem der Benutzer einen Verweis des Link Servers selektieren kann, der dann in das Clipboard der Office-Anwendung gestellt wird. CALL METHOD link_server->execute_copy_link_dialog EXPORTING no_flush = no_flush IMPORTING error = error retcode = retcode.

126

April 2001

SAP AG

Desktop Office Integration (BC-CI) Strategien fr das Arbeiten mit dem Link Server

Strategien fr das Arbeiten mit dem Link Server


Beim Arbeiten mit dem Link Server ist zu beachten, da der Link Server in Windows in eine Liste aller Services eingetragen wird. Da dieser Eintrag eindeutig sein mu, darf ein Link Server nicht zweimal mit dem gleichen Namen eingetragen werden.

Dies fhrt zu folgendem Problem:


Beim Instanzieren eines Link Servers (Methode start_link_server) prft das System, ob ein Link Server gleichen Namens eingetragen ist. Ist dies der Fall, ist der Aufruf nicht erfolgreich, und es wird eine Fehlermeldung zurckgeliefert. Dies bedeutet, da es bei unvorsichtiger Verwendung des Link Servers zu Problemen kommen kann, wenn ein Benutzer mehrere Transaktionen parallel bearbeitet, die mit der SAP Desktop Office Integration arbeiten und dabei den Link Server benutzen.

Lsung 1:
Verwenden Sie bei der Methode start_link_server immer den Parameter link_server_mode = link_server->link_server_custname, und vergeben Sie einen applikationsabhngigen Parameter server_name_suffix.

CALL METHOD link_server->START_LINK_SERVER EXPORTING LINK_SERVER_MODE = link_server->link_server_custname SERVER_NAME_SUFFIX = 'FI' RECEIVING RETCODE = retcode. Dies fhrt dazu, da die Verweise aus dem Dokument folgendes Format haben mssen: {LINK SAP.OLELink Server.ItemObject.<n> "SAPOLELink ServerFI" "<field>" \<formate>} Diese Vorgehensweise hat aber die Beschrnkung, da z.B. die Transaktion nicht zweimal parallel vom Benutzer ausgefhrt werden kann, da dann wieder der gleiche Name fr den Speicherbereich vergeben wrde.

Lsung 2:
Verwenden Sie bei der Methode start_link_server immer den Parameter link_server_mode = link_server->link_server_custname, und vergeben Sie einen einmaligen Namen (z.B. GUID oder ID des Dokuments in der zentralen Ablage) an den Parameter server_name_suffix. Diese Vorgehensweise hat den Nachteil, da bestehende Verweise in einem Initialdokument vorher angepat werden mssen: {LINK SAP.OLELink Server.ItemObject.<n> "SAPOLELink Server<GUID>" "<field>" \<formate>}. Auerdem mu der einmalige Name mit dem Dokument abgespeichert werden, da bei einem erneuten Anzeigen des Dokuments beim Starten des Link Servers das gleiche Suffix verwendet werden mu.

April 2001

127

Desktop Office Integration (BC-CI) Die Table Collection

SAP AG

Die Table Collection


Definition
Diese Instanz wird mit Referenz auf das Interface i_oi_table_collection definiert.

Verwendung
ber die Table Collection knnen Sie Daten (insbesondere interne Tabellen) aus dem R/3 an Desktop-Applikationen bergeben. Diese Anwendungen knnen mit diesen Daten arbeiten und sie in Arbeitsbereiche ablegen, die dann wieder in das R/3 eingelesen werden knnen. Die Einbindung in die Desktop Applikation erfolgt ber das SAP TableFactory OCX, welches zur RFC-Programmierung unter Visual Basic verwendet wird. Fr die Table Collection sieht die exponierte Objekthierarchie wie folgt aus:
Container

Tables Name Type Data Table Name Data Columns Rows Ranges

Integration
Bevor Sie die Instanz table_collection erzeugen, mssen Sie die zentrale Instanz control fr die Verwaltung der Office-Anbindung anlegen.

128

April 2001

SAP AG

Desktop Office Integration (BC-CI) Mit der Table Collection arbeiten

Mit der Table Collection arbeiten


Einsatzmglichkeiten
Die Table Collection enthlt Daten aus dem R/3-System, die in die Office-Anwendung eingebunden werden knnen. Sie hinterlegen hier die vorgesehenen Objekte.

Voraussetzungen
Bevor Sie die folgenden Schritte ausfhren, mssen Sie die zentrale Instanz control fr die Verwaltung der Desktop-Office-Anbindung anlegen. Lesen Sie dazu Zentrale Instanz zur Verwaltung der Desktop Office Integration [Seite 27].

Ablauf
1. Deklarieren Sie eine Objektvariable mit Referenz auf das Interface i_oi_table_collection: DATA table_coll TYPE REF TO i_oi_table_collection. 2. Erzeugen Sie die Instanz fr die Table Collection mit der Methode get_table_collection auf dem zentralen Objekt fr die Verwaltung der Desktop-Office-Anbindung control. 3. Fgen Sie mit den Methoden add_table, add_table_by_url Inhalte in die Table Collection. 4. Lesen und verndern Sie die Daten der Table Collection in der Desktop-Applikation, indem Sie mit Visual-Basic-Programmen auf sie zugreifen. 5. Lesen Sie mit der Methode get_table bzw. get_table_by_url das von der DesktopApplikation erstellte Ergebnis wieder in das R/3-System ein. 6. Lschen Sie Inhalte mit den Methoden remove_table und remove_all_tables.

Denken Sie daran, da Sie nach jedem Methodenaufruf eine Fehlerbehandlung [Seite 21] implementieren sollten.

Die Bedeutung der nicht aufgefhrten Parameter bei den Methodenbeschreibungen finden Sie in Generische Parameter [Seite 253].

Das folgende Beispiel zeigt, wie Sie in einem Visual-Basic-Programm auf die Daten der Table Collection zugreifen knnen:

April 2001

129

Desktop Office Integration (BC-CI) Mit der Table Collection arbeiten


Private Sub Workbook_Activate() Dim R3Table As Object Dim ExcelRange As Excel.Range Set R3Table = ThisWorkbook.Container.Tables("SALES_OUT").Table

SAP AG

Set ExcelRange = Sheet1.Range(Sheet1.Cells(1, 1), Sheet1.Cells(R3Table.Rows.Count, R3Table.Columns.Count)) ExcelRange.Value = R3Table.Data End Sub Private Sub Chart_SeriesChange(ByVal SeriesIndex As Long, ByVal PointIndex As Long) Dim R3Table As Object Dim Row As Object Set R3Table = ThisWorkbook.Container.Tables("SALES_IN").Table R3Table.Rows.RemoveAll For i = 1 To 6 Set Row = R3Table.Rows.Add For j = 1 To R3Table.Columns.Count Row.Cell(j) = Sheet1.Cells(i, j).Value Next j Next i Call ThisWorkbook.Container.SendCustomEvent("ON_CHANGE") End Sub

130

April 2001

SAP AG

Desktop Office Integration (BC-CI) Generische Parameter

Generische Parameter
In der folgenden Tabelle werden Parameter aufgefhrt, die in sehr vielen Methoden der Desktop Office Integration verwendet werden. Parameterverwendung Parameter Optional Bedeutung no_flush X 'X': Synchronisation der Automation Queue ' ': Vor dem Verlassen dieser Methode wird die Automation Queue [Extern] synchronisiert retcode error Fehlerbehandlung [Seite 21] Fehlerbehandlung [Seite 21]

Wenn Sie die Methode mit dem Parameter no_flush = 'X' ausfhren, werden die Methodenaufrufe nicht direkt vom Applikationsrechner zum Prsentationsrechner weitergereicht und daher auch nicht sofort ausgefhrt. Erst beim nchsten Methodenaufruf mit Parameter no_flush= ' ' bzw. nach Aufruf der Methode cl_gui_cfw=>flush [Extern] werden die zwischengespeicherten Daten auf einmal zum Prsentationsrechner geschickt. Diese Technik fhrt bei korrekter Verwendung zu einer Performance-Verbesserung. Bei falscher Anwendung knnen aber Inkonsistenzen der Daten auftreten. (Siehe auch Automation Queue [Extern]).

April 2001

131

Desktop Office Integration (BC-CI) add_table

SAP AG

add_table
Durch diese Methode wird eine interne Tabelle in die Table Collection bernommen. CALL METHOD table_coll->add_table EXPORTING table_name = table_name table_type = table_type ddic_name = ddic_name description = description date = date time = time no_flush = no_flush IMPORTING error = error retcode = retcode CHANGING data_table = data_table fields_table = fields_table properties = properties. Parameterverwendung Parameter Optional Bedeutung table_name table_type Name der internen Tabelle im ABAP-Programm Typ der Tabelle: table_coll->table_type_input: Eine leere Tabelle wird zur Desktop-Applikation gereicht. Sie wird dazu genutzt, um Daten aus der Applikation in R/3 zu laden. table_coll->table_type_output: Eine gefllte Tabelle wird zur Desktop-Applikation gereicht. Sie wird dazu genutzt, um Daten aus R/3 an die Applikation zu bergeben. ddic_name X description X date time data_table fields_table X X X Verknpfung mit dem ABAP Dictionary Beschreibender Text fr die Tabelle Datum der letzten nderung Uhrzeit der letzen nderung Tabelle mit Daten Beschreibung der Tabellenstruktur (sofern diese nicht ber den Parameter ddic_name bergeben wurde). Die Tabelle wird mit Bezug auf den Typ SOI_FIELDS_TABLE angelegt. properties X Zusatzattribute Die Tabelle wird mit Bezug auf den Typ SOI_PROPERTIES_TABLE angelegt.

132

April 2001

SAP AG

Desktop Office Integration (BC-CI) add_table

Wenn Sie eine interne Tabelle angeben, deren Struktur im Data Dictionary definiert ist, dann geben Sie den Namen der Struktur als Parameter ddic_name an. Dadurch werden die Spaltennamen mit der Tabelle zum SAP GUI bertragen, so da man eine Spalte bei der Makroprogrammierung in einer Desktop-Anwendung auch ber den Data-Dictionary-Namen referenzieren kann. Wenn Sie allerdings die Struktur der Tabelle in einem Typ-Pool oder direkt im Programm definiert haben, werden standardmig Zahlen als Spaltennamen generiert. Wenn Sie trotzdem erreichen wollen, da man eine Spalte einer solchen Tabelle ber einen sprechenden Namen referenzieren kann, mssen Sie entsprechend vorsorgen. Dazu mssen Sie eine zustzliche Tabelle anlegen, die die Spalteninformationen aufnehmen soll. Dann mssen Sie mit Hilfe des Funktionsbausteins DP_GET_FIELDS_FROM_TABLE die Beschreibung der Spalten holen: CALL FUNCTION 'DP_GET_FIELDS_FROM_TABLE' TABLES DATA FIELDS = SALES_TABLE = FIELDS_TABLE.

Danach knnen Sie eigene Spaltennamen einsetzen, wie im folgenden Beispiel gezeigt wird: READ TABLE FIELDS_TABLE INDEX 1. FIELDS_TABLE-FIELDNAME = 'Region'. "#EC NOTEXT MODIFY FIELDS_TABLE INDEX 1. READ TABLE FIELDS_TABLE INDEX 2. FIELDS_TABLE-FIELDNAME = 'Sales'. "#EC NOTEXT MODIFY FIELDS_TABLE INDEX 2. Jetzt knnen Sie die Tabelle mit Spalteninformationen bei dem Aufuf der Methode add_table_item2 benutzen.

April 2001

133

Desktop Office Integration (BC-CI) add_table_by_url

SAP AG

add_table_by_url
Durch diese Methode wird eine interne Tabelle in die Table Collection bernommen CALL METHOD table_coll->add_table_by_url EXPORTING table_name = table_name table_title = table_title table_type = table_type table_url = table_url no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung table_name table_title table_type X Name der internen Tabelle im ABAP-Programm Beschreibung der Tabelle Typ der Tabelle: table_coll->table_type_input: Eine leere Tabelle wird zur Desktop-Applikation gereicht. Sie wird dazu genutzt, um Daten aus der Applikation in R/3 zu laden. table_coll->table_type_output: Eine gefllte Tabelle wird zur Desktop-Applikation gereicht. Sie wird dazu genutzt, um Daten aus R/3 an die Applikation zu bergeben. table_url Speicheradresse der internen Tabelle nach dem Herunterladen auf den Prsentationsrechner (erzeugen z.B. mit dem Funktionsbaustein DP_CREATE_URL_FROM_TABLE)

Der Inhalt der internen Tabelle mu auf den Prsentationsrechner geladen werden. Dazu wird ein Funktionsbaustein fr die Versorgung des Data Providers benutzt, und die URL-Adresse wird dann an den Link Server bergeben.

134

April 2001

SAP AG

Desktop Office Integration (BC-CI) get_table

get_table
Mit dieser Methode knnen Sie eine Tabelle der Table Collection in Ihr ABAP-Programm zurcklesen. Es drfen aber nur Tabellen vom Typ table_coll->table_type_input mit dieser Methode bearbeitet werden. CALL METHOD table_coll->get_table EXPORTING table_name = table_name no_flush = no_flush IMPORTING description = description date = date time = time error = error retcode = retcode CHANGING ddic_name = ddic_name data_table = data_table fields_table = fields_table properties = properties. Parameterverwendung Parameter Optional Bedeutung table_name description date time ddic_name data_table fields_table X X X Name der internen Tabelle im ABAP-Programm Beschreibender Text fr die Tabelle Datum der letzten nderung Uhrzeit der letzen nderung Verknpfung mit dem ABAP Dictionary Tabelle mit Daten Beschreibung der Tabellenstruktur (sofern diese nicht ber den Parameter ddic_name bergeben wurde). Die Tabelle wird mit Bezug auf den Typ SOI_FIELDS_TABLE angelegt. properties X Zusatzattribute Die Tabelle wird mit Bezug auf den Typ SOI_PROPERTIES_TABLE angelegt.

April 2001

135

Desktop Office Integration (BC-CI) get_table_by_url

SAP AG

get_table_by_url
Mit dieser Methode knnen Sie eine Tabelle der Table Collection in Ihr ABAP-Programm zurcklesen. Es drfen aber nur Tabellen vom Typ table_coll->table_type_input mit dieser Methode bearbeitet werden. CALL METHOD table_coll->get_table_by_url EXPORTING table_name = table_name table_url = table_url no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung table_name table_url Name der internen Tabelle im ABAP-Programm Speicheradresse der internen Tabelle.

136

April 2001

SAP AG

Desktop Office Integration (BC-CI) remove_table

remove_table
Mit dieser Methode lschen Sie eine bestimmte Tabelle aus der Table Collection. CALL METHOD table_coll->remove_table EXPORTING table_name = table_name no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung item_name Name der internen Tabelle in der Table Collection

April 2001

137

Desktop Office Integration (BC-CI) remove_all_tables

SAP AG

remove_all_tables
Mit dieser Methode lschen Sie alle Inhalte der Table Collection. CALL METHOD link_server->remove_all_tables EXPORTING no_flush = no_flush IMPORTING error = error retcode = retcode.

138

April 2001

SAP AG

Desktop Office Integration (BC-CI) Das Wordprocessor-Interface

Das Wordprocessor-Interface
Definition
Diese Instanz wird mit Referenz auf das Interface i_oi_word_processor_document definiert.

Verwendung
ber die Instanz wp knnen Sie anwendungsspezifische Funktionen von Textverarbeitungsprogrammen ansprechen.

Integration
Bevor Sie die Instanz wp erzeugen, mssen Sie die Instanz fr die Dokumentenverwaltung document anlegen.

April 2001

139

Desktop Office Integration (BC-CI) Arbeiten mit dem Wordprocessor-Interface

SAP AG

Arbeiten mit dem Wordprocessor-Interface


Einsatzmglichkeiten
Mit dem Wordprocessor-Interface knnen Sie anwendungsspezifische Funktionen der textverarbeitenden Office-Anwendungen aus Ihrem ABAP-Programm ansprechen, sofern diese ein Wordprocessor-Interface besitzen (siehe auch has_wordprocessor_interface [Seite 92]).

Voraussetzungen
Bevor Sie das Interface benutzen knnen, mssen Sie die Instanz fr die Dokumentenverwaltung document anlegen.

Ablauf
1. Deklarieren Sie eine Instanz mit Referenz auf das Interface i_oi_word_processor_document: data: wp type ref to i_oi_word_processor_document. 2. Erzeugen Sie die Instanz fr das Wordprocessor-Interface mit der Methode get_wordprocessor_interface [Seite 93] auf der Instanz fr die Dokumentenverwaltung document. 3. Verwenden Sie die anwendungsspezifischen Funktionen: Methoden des Wordprocessor-Interface Methode get_version install_template set_template Funktion Liefert die Version der Textverarbeitungsanwendung Installiert lokal eine Vorlage Ruft eine installierte Vorlage auf

remove_template Lscht eine installierte Vorlage get_template_info Liefert Name und Pfad der Vorlage search replace insert_table insert_table2 clear_table get_table_info Sucht nach einem Suchbegriff Ersetzt einen Suchbegriff durch einen neuen Begriff Fgt den Inhalt einer internen Tabelle in eine Tabelle im Dokument ein Fgt den Inhalt einer internen Tabelle in eine Tabelle im Dokument ein Lscht den Inhalt einer Tabelle im Dokument Liefert die Gre jeder einzelnen Tabelle im Textverarbeitungsdokument

Denken Sie daran, da Sie nach jedem Methodenaufruf eine Fehlerbehandlung [Seite 21] implementieren sollten.

140

April 2001

SAP AG

Desktop Office Integration (BC-CI) Arbeiten mit dem Wordprocessor-Interface

Die Bedeutung der nicht aufgefhrten Parameter finden Sie in Generische Parameter [Seite 253].

April 2001

141

Desktop Office Integration (BC-CI) Generische Parameter

SAP AG

Generische Parameter
In der folgenden Tabelle werden Parameter aufgefhrt, die in sehr vielen Methoden der Desktop Office Integration verwendet werden. Parameterverwendung Parameter Optional Bedeutung no_flush X 'X': Synchronisation der Automation Queue ' ': Vor dem Verlassen dieser Methode wird die Automation Queue [Extern] synchronisiert retcode error Fehlerbehandlung [Seite 21] Fehlerbehandlung [Seite 21]

Wenn Sie die Methode mit dem Parameter no_flush = 'X' ausfhren, werden die Methodenaufrufe nicht direkt vom Applikationsrechner zum Prsentationsrechner weitergereicht und daher auch nicht sofort ausgefhrt. Erst beim nchsten Methodenaufruf mit Parameter no_flush= ' ' bzw. nach Aufruf der Methode cl_gui_cfw=>flush [Extern] werden die zwischengespeicherten Daten auf einmal zum Prsentationsrechner geschickt. Diese Technik fhrt bei korrekter Verwendung zu einer Performance-Verbesserung. Bei falscher Anwendung knnen aber Inkonsistenzen der Daten auftreten. (Siehe auch Automation Queue [Extern]).

142

April 2001

SAP AG

Desktop Office Integration (BC-CI) get_version

get_version
Mit dieser Methode ermitteln Sie die installierte Version der Textverarbeitungsanwendung. CALL METHOD wp->get_version EXPORTING no_flush = IMPORTING version = error = retcode = Parameterverwendung Parameter Optional Bedeutung version Version der Textverarbeitungsanwendung no_flush version error retcode.

April 2001

143

Desktop Office Integration (BC-CI) install_template

SAP AG

install_template
Installieren einer Vorlage fr die Office-Anwendung auf dem Prsentationsrechner: CALL METHOD wp->install_template EXPORTING template_name = url = user_info = no_flush = IMPORTING retcode = error = Parameterverwendung Parameter template_name url user_info X Optional Bedeutung Name der anzulegenden Datei auf dem Prsentationsrechner fr die zu installierende Vorlage URL-Adresse der Vorlage Anmelde- und Proxy-Daten fr den Zugriff auf den HTTP-/FTPServer template_name url user_info no_flush retcode error.

Der Name der Vorlage mu ohne Pfad und Erweiterung angegeben werden. Die Vorlage wird im Standardverzeichnis fr Vorlagen des aktuellen Benutzers abgelegt.

Bedenken Sie, da immer das fr die jeweilige Office-Anwendung gltige Vorlagenformat benutzt wird (MS Word 97, Lotus WordPro,...).

144

April 2001

SAP AG

Desktop Office Integration (BC-CI) get_version

get_version
Mit dieser Methode ermitteln Sie die installierte Version der Textverarbeitungsanwendung. CALL METHOD wp->get_version EXPORTING no_flush = IMPORTING version = error = retcode = Parameterverwendung Parameter Optional Bedeutung version Version der Textverarbeitungsanwendung no_flush version error retcode.

April 2001

145

Desktop Office Integration (BC-CI) set_template

SAP AG

set_template
Einbinden der Vorlage fr das momentan geffnete Office-Dokument CALL METHOD wp->set_template EXPORTING template_name attach_styles no_flush IMPORTING retcode error Parameterverwendung Parameter template_name Optional Bedeutung Name der auszufhrenden Vorlage (entsprechend dem beim Installieren vergebenen Namen) Wird kein Name angegeben, dann wird die Standardvorlage (NORMAL.DOT) aufgerufen. attach_styles 'X': Die Formatierungen der Vorlage werden bei dem Dokument bernommen. ' ': Die Formatierungen der Vorlage werden ignoriert, d.h. die Formatierungen des Dokuments bleiben erhalten. = = = = = template_name attach_styles no_flush retcode error.

Der Name der Vorlage mu ohne Pfad und Erweiterung angegeben werden.

146

April 2001

SAP AG

Desktop Office Integration (BC-CI) get_template_info

get_template_info
Diese Methode gibt den Namen der Formatvorlage zurck, die dem aktuell geffneten Textverarbeitungsdokument zugeordnet ist. CALL METHOD wp->get_template_info EXPORTING no_flush = no_flush IMPORTING retcode = retcode error = error CHANGING template_info = template_info Parameter template_info Optional Bedeutung Eine interne Tabelle mit dem Namen, dem Pfad und dem vollen Namen (Pfad und Name) der Vorlage, die dem Dokument momentan zugeordnet ist. Sie sollten Ihren Aktualparameter mit Referenz auf den Typ SOI_TEMPLATE_INFO deklarieren.

April 2001

147

Desktop Office Integration (BC-CI) remove_template

SAP AG

remove_template
Entfernen einer lokal installierten Vorlage vom Prsentationsrechner: CALL METHOD wp->remove_template EXPORTING template_name = no_flush = IMPORTING retcode = error = Parameterverwendung Parameter template_name Optional Bedeutung Name der zu lschenden Vorlage (entsprechend dem beim Installieren vergebenen Namen) template_name no_flush retcode error.

Der Name der Vorlage mu ohne Pfad und Erweiterung angegeben werden. Wenn Sie die Vorlage im Dokument benutzt haben, mssen Sie vor dem Lschen die Methode set_template [Seite 146] mit dem Vorlagennamen ' ' aufrufen.

148

April 2001

SAP AG

Desktop Office Integration (BC-CI) search

search
Verwendung der Suchfunktion im Office-Dokument: CALL METHOD wp->search EXPORTING search_string pos flag no_flush IMPORTING retcode error Parameterverwendung Parameter search_string pos Optional Bedeutung Zeichenfolge, nach der gesucht werden soll global: Suche im gesamten Text up: Suche ab aktueller Position zum Dokumentanfang hin down: Suche ab aktueller Position im Dokument zum Ende des Dokuments hin flag : Suche nach Zeichenkette word: Suche nach Wort exact: Suche nach String mit Unterscheidung von Gro- / Kleinschreibung = = = = = = search_string pos flag no_flush retcode error.

April 2001

149

Desktop Office Integration (BC-CI) replace

SAP AG

replace
Ersetzen einer Zeichenfolge im geffnenten Office-Dokument CALL METHOD wp->replace EXPORTING replace_string search_string pos flag no_flush IMPORTING retcode error Parameterverwendung Parameter search_string replace_string pos Optional Bedeutung Zeichenfolge, nach der gesucht werden soll Zeichenfolge, die fr die zu ersetzende Zeichenfolge eingesetzt werden soll global: Suche im gesamten Text up: Suche ab aktueller Position zum Dokumentanfang hin down: Suche ab aktueller Position im Dokument zum Ende des Dokuments hin flag : Suche nach Zeichenkette word: Suche nach Wort exact: Suche nach String mit Unterscheidung von Gro- / Kleinschreibung = = = = = = = replace_string search_string pos flag no_flush retcode error.

150

April 2001

SAP AG

Desktop Office Integration (BC-CI) insert_table

insert_table
Mit dieser Methode fgen Sie den Inhalt einer internen Tabelle aus Ihrem ABAP-Programm in eine Tabelle des Textverarbeitungsdokuments ein. Die Tabelle im Dokument mu definiert sein, bevor Sie die Methode ausfhren.

Bei dieser Methode verwenden Sie die Indexnummern der Spalten zur Festlegung der Reihenfolge, in der die Spalten in der Tabelle des Dokuments erscheinen sollen. Wenn Sie statt der Indexnummern die Spaltennamen benutzen mchten, verwenden Sie die Methode insert_table2 [Seite 154]. CALL METHOD wp->insert_table EXPORTING data_table info_table lowerbound upperbound doctable_number clearoption startrow varsize no_flush IMPORTING retcode error Parameter data_table info_table Optional Bedeutung Interne Tabelle mit den R/3-Daten, die Sie in die Tabelle des Dokuments einlesen mchten. Interne Tabelle vom Typ SOI_COLS_TABLE. Jede Zeile dieser Tabelle kann die Indexnummer einer Spalte in der Datentabelle enthalten. Wenn die Datentabelle in der Dokumenttabelle angezeigt wird, erscheinen die angegebenen Spalten in der Reihenfolge, in der Sie sie aufgelistet haben. Um eine Spalte in der Tabelle des Dokuments leer zu lassen, geben Sie in der entsprechenden Zeile dieser Tabelle den Wert 0 ein. lowerbound Index des ersten Eintrags der Datentabelle, die Sie in der Dokumenttabelle anzeigen mchten. Wenn Sie am Anfang der Tabelle beginnen mchten, geben Sie den Wert 0 ein. upperbound Index des letzten Eintrags der Datentabelle, die Sie in der Dokumenttabelle anzeigen mchten. Um alle Eintrge ab dem in lowerbound angegebenen Eintrag bis zum Ende der Tabelle anzuzeigen, verwenden Sie den Wert 0.

= = = = = = = = = = =

data_table info_table lowerbound upperbound doctable_number clearoption startrow varsize no_flush retcode error.

April 2001

151

Desktop Office Integration (BC-CI) insert_table doctable_number clearoption

SAP AG

Nummer der Tabelle im Dokument, in die Sie die Daten einfgen mchten. Die Numerierung beginnt bei 1. Option zum Lschen alten Inhalts aus der Tabelle im Dokument. Folgende Werte sind mglich: 0 - Kein Lschen Die Methode berschreibt nur die Felder in der Tabelle, in die tatschlich Daten eingefgt werden. 1 - Alle Zeilen lschen Die Methode berschreibt den Inhalt der Tabelle mit den neuen Daten aus dem R/3-System. Die Daten oberhalb der angegebenen Startzeile bleiben unverndert. Der Inhalt der Zeilen der alten Tabelle, die sich unterhalb der eingefgten Daten befinden, wird gelscht. Hinweis: In den Zeilen der Dokumenttabelle, in die Daten eingefgt werden, wird der Inhalt von Feldern, die nicht automatisch gefllt werden (Wert 0 in der entsprechenden Zeile von info_table) nicht gelscht. 2 - Nur Spalten lschen, auf die zugegriffen wird Die Methode lscht den gesamten Inhalt der Spalten der Dokumenttabelle, in die Daten eingefgt werden. Der Inhalt aller anderen Spalten bleibt unverndert.

startrow varsize

Erste Zeile der Dokumenttabelle, in die Daten eingefgt werden sollen. Kennzeichen, das angibt, ob die Gre der Tabelle im Dokument an die von der Methode bergebene Zeilenanzahl angepat werden soll. Mgliche Werte: ' ': Die Tabellengre wird nicht angepat. Achtung: Enthlt die Tabelle weniger Zeilen, als Eintrge bergeben werden, knnen nicht alle Daten angezeigt werden. 'X': Die Tabellengre wird angepat.

wholetable X

Noch nicht realisiert.

Mit varsize knnen Sie zwar die Anzahl der Zeilen in der Tabelle automatisch anpassen, nicht jedoch die Anzahl der Spalten. Wenn Sie mehr Spalten aus Ihrer Datentabelle bergeben, als in der Dokumenttabelle verfgbar sind, kann das System die zustzlichen Spalten nicht anzeigen. Die Anzahl der Spalten in einer bestimmten Tabelle des Dokuments ermitteln Sie mit der Methode get_table_info [Seite 157].

152

April 2001

SAP AG

Desktop Office Integration (BC-CI) insert_table

April 2001

153

Desktop Office Integration (BC-CI) insert_table2

SAP AG

insert_table2
Mit dieser Methode fgen Sie den Inhalt einer internen Tabelle aus Ihrem ABAP-Programm in eine Tabelle des Textverarbeitungsdokuments ein. Die Tabelle im Dokument mu definiert sein, bevor Sie die Methode ausfhren.

Der Unterschied zwischen dieser Methode und der Methode insert_table besteht darin, da Sie hier die Spalten der anzuzeigenden Datentabelle anhand ihres Namens und nicht ihrer Indexnummer angeben. CALL METHOD wp->insert_table2 EXPORTING data_table info_col_table lowerbound upperbound doctable_number clearoption startrow varsize no_flush IMPORTING retcode error Parameter data_table info_col_table Optional Bedeutung Interne Tabelle mit den R/3-Daten, die Sie in die Tabelle des Dokuments einlesen mchten. Interne Tabelle vom Typ SOI_COLNAMES_TABLE. Jede Zeile dieser Tabelle kann den Namen einer Spalte in der Datentabelle enthalten. Wenn die Datentabelle in der Dokumenttabelle angezeigt wird, erscheinen die angegebenen Spalten in der Reihenfolge, in der Sie sie aufgelistet haben. Um eine Spalte in der Tabelle des Dokuments leer zu lassen, geben Sie in der entsprechenden Zeile dieser Tabelle den Wert ' ' (Leerzeichen) ein. lowerbound Index des ersten Eintrags der Datentabelle, die Sie in der Dokumenttabelle anzeigen mchten. Wenn Sie am Anfang der Tabelle beginnen mchten, geben Sie den Wert 0 ein. upperbound Index des letzten Eintrags der Datentabelle, die Sie in der Dokumenttabelle anzeigen mchten. Um alle Eintrge ab dem in lowerbound angegebenen Eintrag bis zum Ende der Tabelle anzuzeigen, verwenden Sie den Wert 0.

= = = = = = = = = = =

data_table info_col_table lowerbound upperbound doctable_number clearoption startrow varsize no_flush retcode error.

154

April 2001

SAP AG

Desktop Office Integration (BC-CI) insert_table2

doctable_number clearoption

Nummer der Tabelle im Dokument, in die Sie die Daten einfgen mchten. Die Numerierung beginnt bei 1. Option zum Lschen alten Inhalts aus der Tabelle im Dokument. Folgende Werte sind mglich: 0 - Kein Lschen Die Methode berschreibt nur die Felder in der Tabelle, in die tatschlich Daten eingefgt werden. 1 - Alle Zeilen lschen Die Methode berschreibt den Inhalt der Tabelle mit den neuen Daten aus dem R/3-System. Daten oberhalb der angegebenen Startzeile bleiben unverndert. Der Inhalt der Zeilen der alten Tabelle, die sich unterhalb der eingefgten Daten befinden, wird gelscht. Hinweis: In den Zeilen der Dokumenttabelle, in die Daten eingefgt werden, wird der Inhalt von Feldern, die nicht automatisch gefllt werden (Wert 0 in der entsprechenden Zeile von info_table) nicht gelscht. 2 - Nur Spalten lschen, auf die zugegriffen wird Die Methode lscht den gesamten Inhalt der Spalten der Dokumenttabelle, in die Daten eingefgt werden. Der Inhalt aller anderen Spalten bleibt unverndert.

startrow varsize

Erste Zeile der Dokumenttabelle, in die Daten eingefgt werden sollen. Kennzeichen, das angibt, ob die Gre der Tabelle im Dokument an die von der Methode bergebene Zeilenanzahl angepat werden soll. Mgliche Werte: ' ': Die Tabellengre wird nicht angepat. Achtung: Enthlt die Tabelle weniger Zeilen, als Eintrge bergeben werden, knnen nicht alle Daten angezeigt werden. 'X': Die Tabellengre wird angepat.

wholetable X

Noch nicht realisiert.

Mit varsize knnen Sie zwar die Anzahl der Zeilen in der Tabelle automatisch anpassen, nicht jedoch die Anzahl der Spalten. Wenn Sie mehr Spalten aus Ihrer Datentabelle bergeben, als in der Dokumenttabelle verfgbar sind, kann das System die zustzlichen Spalten nicht anzeigen. Die Anzahl der Spalten in einer bestimmten Tabelle des Dokuments ermitteln Sie mit der Methode get_table_info [Seite 157].

April 2001

155

Desktop Office Integration (BC-CI) insert_table2

SAP AG

156

April 2001

SAP AG

Desktop Office Integration (BC-CI) get_table_info

get_table_info
Mit dieser Methode ermitteln Sie die Anzahl der Zeilen und Spalten jeder Tabelle des Textverarbeitungsdokuments. CALL METHOD wp->get_table_info EXPORTING no_flush IMPORTING retcode error CHANGING tableinfo Parameter Optional Bedeutung tableinfo Interne Tabelle vom Typ SOI_TABLEINFO_TABLE. Diese Tabelle hat zwei Spalten - ROWS und COLUMNS. In diese Spalten fllt die Methode die Anzahl der Zeilen bzw. Spalten jeder einzelnen Tabelle im Dokument. Die Tabellen werden in der internen Tabelle in der Reihenfolge aufgelistet, in der sie im Textverarbeitungsdokument erscheinen. = = = = no_flush retcode error tableinfo.

April 2001

157

Desktop Office Integration (BC-CI) clear_table

SAP AG

clear_table
Mit dieser Methode lschen Sie den Inhalt der Tabelle im Textverarbeitungsdokument. Beachten Sie, da die Struktur der Tabelle (insbesondere die Anzahl der Zeilen) unverndert bleibt. CALL METHOD wp->clear_table EXPORTING doctable_number no_flush IMPORTING retcode error Parameter doctable_number Optional Bedeutung Nummer der Tabelle im Textverarbeitungsdokument, deren Inhalt Sie lschen mchten. = = = = doctable_number no_flush retcode error.

158

April 2001

SAP AG

Desktop Office Integration (BC-CI) Das Form-Interface

Das Form-Interface
Definition
Diese Instanz wird mit Referenz auf das Interface i_oi_form definiert.

Verwendung
Die Schnittstelle dient insbesondere zur Verwendung von Formularfeldern in Verbindung mit Dokumenteigenschaften. Die Datentabelle wird getrennt von Link Server [Seite 113] und Table Collection [Seite 128] mit Hilfe des Data Providers bermittelt. Im Endeffekt bedeutet dies, da die Daten zunchst bertragen werden und danach die Ersetzung durchgefhrt wird. Dabei werden auf der Office-Seite benutzerdefinierte Felder verwendet. Dies hat folgende Vorteile: 1. Das Ersetzen der Werte ist komplett unter Kontrolle von R/3. 2. Werte lassen sich im Dokument direkt speichern. Dadurch kann das Dokument auch bearbeitet werden, ohne da die Verbindung mit dem R/3-System bestehen mu. 3. Es handelt sich um eine sehr flexible Lsung, da keine Office-eigenen Funktionen mehr verwendet werden, sondern direkt auf den zu ndernden Datenfeldern gearbeitet wird. Nachteilig wirkt sich aus, da durch die Inter-Process-Kommunikation die Ersetzung im Gegensatz zur eingebauten Serienbrieffunktionalitt verlangsamt wird. Da allerdings auf der nderbarkeit der Daten innerhalb des Dokuments das Hauptaugenmerk lag, knnen Lsungen wie z.B. ber die Serienbrieffunktion [Seite 172] nicht verwendet werden.

Struktur
Der Datenaustausch zwischen R/3 und der Office-Applikation erfolgt ber eine Tabelle vom Datentyp soi_form_list. Folgende Funktionen werden ber diese Tabelle abgedeckt: Setzen der Felder im Dokument mit aktuellen Eintrgen. Holen der Eintrge aus den Feldern des Dokuments. Setzen bestimmter Eintrge auf neue Werte (Deltamanagement).

Die Tabelle besteht aus folgenden Feldern: Feldname type Bedeutung Art des Feldes im Dokument mgliche Werte 'C': Ankreuzfeld 'T': Textfeld 'L': Listbox 'P': Property, Das Feld soll nur zur Anzeige dienen. name Name des Feldes im Dokument. Die Datenbergabe erfolgt immer ber namensgleiche Felder.

April 2001

159

Desktop Office Integration (BC-CI) Das Form-Interface number Dieses Feld ist nur fr eine Listbox relevant. Sofern in einer Listbox mehrere gleiche Eintrge vorhanden sind, dient dieses Feld zur Unterscheidung dieser Eintrge. Dieses Feld enhlt den jeweiligen Wert des Feldes. Bei Ankreuzfeldern wird die Boolesche Darstellung mit 0 und 1 verwendet. ber dieses Feld knnen Eintrge des Dokuments direkt gesteuert werden. Sie spielen nur auf dem Weg vom R/3 zur Office-Applikation eine Rolle. Auf dem umgekehrten Weg wird jeder Eintrag auf '0' gesetzt. 0: kein Effekt

SAP AG

value

code

1: Nur fr Listbox: der Eintrag wird selektiert 2: Nur fr Listbox: alle Eintrge der Listbox werden gelscht. 3: Alle Typen: es ist keine Eingabe in das Feld mehr mglich

Integration
Bevor Sie die Instanz form erzeugen, mssen Sie die Instanz fr die Dokumentenverwaltung document anlegen. Das Interface untersttzt zur Zeit die Applikationen MS Word, MS Excel und Lotus Word Pro.

160

April 2001

SAP AG

Desktop Office Integration (BC-CI) Arbeiten mit dem Form-Interface

Arbeiten mit dem Form-Interface


Einsatzmglichkeiten
Mit dem Form-Interface knnen Sie Daten aus dem R/3 in Formulare einer Desktop-Anwendung einspielen und diese Inhalte auch wieder in R/3 zurckladen, sofern diese das Interface untersttzt (siehe auch has_form_interface [Seite 100]).

Voraussetzungen
Bevor Sie das Interface benutzen knnen, mssen Sie die Instanz fr die Dokumentenverwaltung document anlegen.

Ablauf
1. Deklarieren Sie eine Instanz mit Referenz auf das Interface i_oi_form: DATA form TYPE REF TO i_oi_form. 2. Erzeugen Sie die Instanz fr das Form-Interface mit der Methode get_form_interface [Seite 101] auf der Instanz fr die Dokumentenverwaltung document. 3. Verwenden Sie die Methoden des Form-Interfaces: Methoden des Form-Interfaces Methode set_data get_data add_field delete_fields get_form_fields protect set_modus Funktion bergabe von Daten aus dem R/3 an die Desktop-Applikation Lesen der Inhalte des Formulars der Desktop-Applikation in das R/3System Hinzufgen eines Formularfelds Lschen eines Formularfeldes in der Desktop-Applikation Einlesen der vorhandenen Formularfelder der Desktop-Applikation Steuern der Eingabebereitschaft des Dokuments Umschalten des Anzeigemodus

disconnect_fields Lschen der Verbindung zwischen Formularfeld und R/3-System

Denken Sie daran, da Sie nach jedem Methodenaufruf eine Fehlerbehandlung [Seite 21] implementieren sollten.

Die Bedeutung der nicht aufgefhrten Parameter bei den Methodenbeschreibungen finden Sie in Generische Parameter [Seite 253].

April 2001

161

Desktop Office Integration (BC-CI) Generische Parameter

SAP AG

Generische Parameter
In der folgenden Tabelle werden Parameter aufgefhrt, die in sehr vielen Methoden der Desktop Office Integration verwendet werden. Parameterverwendung Parameter Optional Bedeutung no_flush X 'X': Synchronisation der Automation Queue ' ': Vor dem Verlassen dieser Methode wird die Automation Queue [Extern] synchronisiert retcode error Fehlerbehandlung [Seite 21] Fehlerbehandlung [Seite 21]

Wenn Sie die Methode mit dem Parameter no_flush = 'X' ausfhren, werden die Methodenaufrufe nicht direkt vom Applikationsrechner zum Prsentationsrechner weitergereicht und daher auch nicht sofort ausgefhrt. Erst beim nchsten Methodenaufruf mit Parameter no_flush= ' ' bzw. nach Aufruf der Methode cl_gui_cfw=>flush [Extern] werden die zwischengespeicherten Daten auf einmal zum Prsentationsrechner geschickt. Diese Technik fhrt bei korrekter Verwendung zu einer Performance-Verbesserung. Bei falscher Anwendung knnen aber Inkonsistenzen der Daten auftreten. (Siehe auch Automation Queue [Extern]).

162

April 2001

SAP AG

Desktop Office Integration (BC-CI) set_data

set_data
Mit dieser Methode knnen Sie aktuelle Daten aus dem R/3-System in die entsprechenden Felder des Formulars der Office-Applikation fllen. Entsprechend der Eintrge in der Tabelle fields werden die Felder im Dokument verndert. Es ist mit Hilfe dieser Methode auch einfach mglich, die Eintrge einer Listbox zu verndern. Dazu mu eine Tabelle erstellt werden, die die neuen Eintrge der Listbox enthlt. Automatisch werden diese Eintrge in der Listbox eingefgt, sofern nicht im Feld Code der Befehl '2' verwendet wird, der alle Eintrge der Listbox lscht. CALL METHOD form->set_data EXPORTING fields = clear = no_flush = IMPORTING retcode = error = Parameterverwendung Parameter Optional Bedeutung fields clear X Tabelle mit Struktur soi_form_list. Gem dieser Eintrge werden Felder in dem Formular verndert 'X': Bevor die Felder aus der Tabelle fields eingespielt werden, werden alle Formularfelder initialisiert. Ausnahme bilden Listboxen. Diese werden nicht gelscht. ' ': Die Formularfelder werden gem der Tabelle fields aktualisert. Sofern Felder nicht ber die Tabelle versorgt werden, behalten diese ihren bisherigen Wert. fields clear no_flush retcode error.

Einige Beispiele fr die Tabelle fields: Beispiel 1: Type C T T Name Ledig Name Abteilung Number 1 1 1 Value 1 Mustermann ABAP Code 0 0 3

Eine solche Tabelle wrde ein Ankreuzfeld mit einem Wert belegen. Der nchste Datensatz belegt ein Textfeld mit dem Eintrag Mustermann. Der letzte Eintrag ndert das Feld Abteilung, und der Befehl '3' bewirkt, da der Eintrag nicht mehr im Dokument gendert werden kann. Beispiel 2: Type L Name Farben Number 1 Value Rot Code 2

April 2001

163

Desktop Office Integration (BC-CI) set_data L L Farben Farben 2 3 Grn Blau 1 0

SAP AG

Diese Tabelle wrde eine Listbox mit Eintrgen versehen, wobei der Befehl '2' dafr sorgt, da nur die Eintrge in der Listbox stehen, die in dieser Tabelle definiert werden. Der Befehl '1' selektiert den zweiten Eintrag.

164

April 2001

SAP AG

Desktop Office Integration (BC-CI) get_data

get_data
Diese Methode liefert eine Tabelle aller aktuellen Eintrge des Formulars zurck. CALL METHOD form->get_data EXPORTING all = no_flush = IMPORTING fields = retcode = error = Parameterverwendung Parameter Optional Bedeutung all fields X 'X': Alle Eintrge des Formulars werden bertragen. Bei Listboxen werden auch die nicht selektierten Werte mit bertragen. Tabelle mit Struktur soi_form_list. Die Inhalte dieser Tabelle spiegeln die Inhalte im Formular wieder. all no_flush fields retcode error.

In der Spalte value der Tabelle fields steht der jeweilige Feldwert. Bei Listboxen werden die mglichen Eintrge in dieser Spalte angegeben. Welcher Wert selektiert wurde, wird ber den Eintrag '1' in der Spalte code bestimmt.

April 2001

165

Desktop Office Integration (BC-CI) add_field

SAP AG

add_field
Diese Methode fgt ein neues Formularfeld ein. CALL METHOD form->add_field EXPORTING field = no_flush = IMPORTING retcode = error = Parameterverwendung Parameter Optional Bedeutung field Struktur vom Typ soi_form_item. Gem dieser Eintrge wird das Feld im Formular angezeigt field no_flush retcode error.

166

April 2001

SAP AG

Desktop Office Integration (BC-CI) delete_fields

delete_fields
Sie bergeben eine Tabelle von Feldern, die aus dem Dokument vollstndig gelscht werden sollen. Sowohl der Verweis als auch der angezeigte Text werden entfernt. CALL METHOD form->delete_fields EXPORTING fields = fields no_flush = no_flush IMPORTING retcode = retcode error = error. Parameterverwendung Parameter Optional Bedeutung fields Tabelle mit Struktur soi_form_list. Die angegebenen Felder werden aus dem Formular gelscht

April 2001

167

Desktop Office Integration (BC-CI) disconnect_fields

SAP AG

disconnect_fields
Sie entfernen die Verknpfung der in der Tabelle angegebenen Felder zu dem R/3-System. Allerdings werden die Inhalte nicht gelscht; sie erscheinen als einfacher Text im Dokument. CALL METHOD form->disconnect_fields EXPORTING fields = fields no_flush = no_flush IMPORTING retcode = retcode error = error. Parameterverwendung Parameter Optional Bedeutung fields Tabelle mit Struktur soi_form_list. Die Verknpfung der angegebenen Felder zum R/3-System werden gelscht.

168

April 2001

SAP AG

Desktop Office Integration (BC-CI) get_form_fields

get_form_fields
Sie erhalten eine Tabelle, in der alle im Formular vorhandenen Felder und deren Formate enthalten sind. Im Gegensatz zur Methode get_data [Seite 165] werden allerdings keine Feldinhalte bergeben. CALL METHOD form->get_form_fields EXPORTING no_flush = no_flush IMPORTING fields = fields retcode = retcode error = error. Parameterverwendung Parameter Optional Bedeutung fields Tabelle mit Struktur soi_form_list. In der Tabelle sind die vorhandenen Formularfelder aufgezhlt.

April 2001

169

Desktop Office Integration (BC-CI) protect

SAP AG

protect
Durch Aufruf dieser Methode knnen Sie das Dokument schtzen. Eingaben knnen dann nur noch in den Formularfeldern erfolgen. Diese Option ist sinnvoll, da eine normale Eingabe in Formularfelder damit erleichtert wird. CALL METHOD form->protect EXPORTING protect no_flush IMPORTING retcode error Parameterverwendung Parameter Optional Bedeutung protect X 'X': Das Formular ist vor nderungen geschtzt (nicht die Formularfelder) ' ': Das Formular kann an beliebigen Stellen gendert werden = = = = protect no_flush retcode error.

170

April 2001

SAP AG

Desktop Office Integration (BC-CI) set_modus

set_modus
Mit dieser Methode knnen Sie angeben, ob das Dokument im normalen oder im Designmodus dargestellt werden soll. CALL METHOD form->set_modus EXPORTING modus = no_flush = IMPORTING retcode = error = Parameterverwendung Parameter Optional Bedeutung modus X 'X': Anzeige im Anzeigemodus ' ': Anzeige im Designmodus modus no_flush retcode error.

April 2001

171

Desktop Office Integration (BC-CI) Die Serienbriefschnittstelle

SAP AG

Die Serienbriefschnittstelle
Definition
Diese Instanz wird mit Referenz auf das Interface i_oi_mail_merge definiert.

Verwendung
ber diese Schnittstelle steuern Sie die Serienbrieffunktion der Desktop-Applikation an. ber die Schnittstelle knnen Sie Daten aus R/3 an das Frontend laden und diese dann in den Serienbrief einmischen.

Integration
Das Interface untersttzt zur Zeit die Applikationen MS Word und Lotus Word Pro.

172

April 2001

SAP AG

Desktop Office Integration (BC-CI) Arbeiten mit der Serienbriefschnittstelle

Arbeiten mit der Serienbriefschnittstelle


Einsatzmglichkeiten
Mit der Serienbriefschnittstelle knnen Sie die Serienbrieffunktionen der Desktop-Applikation ansteuern, sofern diese die Schnittstelle untersttzt (siehe auch has_mail_merge_interface [Seite 102]).

Voraussetzungen
Bevor Sie das Interface benutzen knnen, mssen Sie die Instanz fr die Dokumentenverwaltung document anlegen.

Ablauf
4. Deklarieren Sie eine Instanz mit Referenz auf das Interface i_oi_mail_merge: DATA mail_merge TYPE REF TO i_oi_mail_merge. 5. Erzeugen Sie die Instanz fr die Serienbriefschnittstelle mit der Methode get_mail_merge_interface [Seite 103] auf der Instanz fr die Dokumentenverwaltung document. 6. Verwenden Sie die Methoden der Serienbriefschnittstelle: Methoden der Tabellenschnittstelle Methode Funktion

set_data_source Daten an Frontend laden get_fields merge_one merge_range print view shutdown Felder des Serienbriefs Einmischen eines bestimmten Datensatzes Einmischen mehrerer Datenstze Drucken des Serienbriefs Anzeigen des Serienbriefs mit eingemischten Daten Abbau der Schnittstelle

view_field_codes Anzeige der Feldfunktionen im Serienbrief

Denken Sie daran, da Sie nach jedem Methodenaufruf eine Fehlerbehandlung [Seite 21] implementieren sollten.

Die Bedeutung der nicht aufgefhrten Parameter bei den Methodenbeschreibungen finden Sie in Generische Parameter [Seite 253].

April 2001

173

Desktop Office Integration (BC-CI) Generische Parameter

SAP AG

Generische Parameter
In der folgenden Tabelle werden Parameter aufgefhrt, die in sehr vielen Methoden der Desktop Office Integration verwendet werden. Parameterverwendung Parameter Optional Bedeutung no_flush X 'X': Synchronisation der Automation Queue ' ': Vor dem Verlassen dieser Methode wird die Automation Queue [Extern] synchronisiert retcode error Fehlerbehandlung [Seite 21] Fehlerbehandlung [Seite 21]

Wenn Sie die Methode mit dem Parameter no_flush = 'X' ausfhren, werden die Methodenaufrufe nicht direkt vom Applikationsrechner zum Prsentationsrechner weitergereicht und daher auch nicht sofort ausgefhrt. Erst beim nchsten Methodenaufruf mit Parameter no_flush= ' ' bzw. nach Aufruf der Methode cl_gui_cfw=>flush [Extern] werden die zwischengespeicherten Daten auf einmal zum Prsentationsrechner geschickt. Diese Technik fhrt bei korrekter Verwendung zu einer Performance-Verbesserung. Bei falscher Anwendung knnen aber Inkonsistenzen der Daten auftreten. (Siehe auch Automation Queue [Extern]).

174

April 2001

SAP AG

Desktop Office Integration (BC-CI) set_data_source

set_data_source
Mit dieser Methode bergeben Sie die Datenstze, die spter mit den Methoden merge_one [Seite 177] und merge_range [Seite 178] in den Serienbrief eingemischt werden. Dazu bauen Sie eine Tabelle mit den entsprechenden Daten auf. Eine Zeile dieser Tabelle entspricht immer einem kompletten Datensatz fr einen Brief. CALL METHOD mail_merge->set_data_source EXPORTING ddic_name = ddic_name description = description date = date time = time no_flush = no_flush IMPORTING error = error retcode = retcode CHANGING data_table = data_table fields_table = fields_table properties = properties. Parameterverwendung Parameter Optional Bedeutung ddic_name description date time data_table fields_table X X X X X Name der Tabelle/Struktur im Data Dictionary Beschreibender Text fr die Tabelle Datum der letzten nderung Uhrzeit der letzten nderung Datentabelle Beschreibung der Tabellenstruktur (sofern diese nicht ber den Parameter ddic_name bergeben wurde). Die Tabelle wird mit Bezug auf den Typ SOI_FIELDS_TABLE angelegt. properties X Zusatzattribute Die Tabelle wird mit Bezug auf den Typ SOI_PROPERTIES_TABLE angelegt.

April 2001

175

Desktop Office Integration (BC-CI) get_fields

SAP AG

get_fields
Als Ergebnis dieses Methodenaufrufs erhalten Sie eine Liste aller Felder, die Sie ber die Serienbriefschnittstelle ansprechen knnen. CALL METHOD mail_merge->get_fields EXPORTING no_flush = no_flush IMPORTING descr_list = descr_list retcode = retcode error = error. Parameterverwendung Parameter Optional Bedeutung descr_list Tabelle der Felder im Serienbrief Die Tabelle wird mit Bezug auf den Typ SOI_FIELDS_NAME_TABLE angelegt.

176

April 2001

SAP AG

Desktop Office Integration (BC-CI) merge_one

merge_one
Mit diesem Methodenaufruf spielen Sie einen Datensatz in die Serienbriefvorlage ein. ber den Parameter index wird der Datensatz identifiziert, den Sie zuvor mit der Methode set_data_source [Seite 175] an das Frontend geladen haben. CALL METHOD mail_merge->merge_one EXPORTING index = index no_flush = no_flush IMPORTING retcode = retcode error = error. Parameterverwendung Parameter Optional Bedeutung index Index des Datensatzes

April 2001

177

Desktop Office Integration (BC-CI) merge_range

SAP AG

merge_range
Mit dieser Methode knnen Sie mehrere Datenstze nacheinander in den Serienbrief einmischen. ber die Parameter first und last geben Sie den relevanten Bereich der Tabelle an, die Sie zuvor mit der Methode set_data_source [Seite 175] an das Frontend geladen haben. CALL METHOD mail_merge->merge_range EXPORTING first = first last = last no_flush = no_flush IMPORTING retcode = retcode error = error. Parameterverwendung Parameter Optional Bedeutung first last Erster Datensatz, der eingemischt werden soll Letzter Datensatz, der eingemischt werden soll

178

April 2001

SAP AG

Desktop Office Integration (BC-CI) print

print
Diese Methode stt die Druckfunktionalitt der Office-Applikation an. Bevor Sie diese Methode anstoen, sollten Sie mit den Methoden merge_one [Seite 177] oder merge_range [Seite 178] die Daten in die Serienbriefe eingemischt haben. CALL METHOD mail_merge->print EXPORTING no_flush = no_flush IMPORTING retcode = retcode error = error.

April 2001

179

Desktop Office Integration (BC-CI) view

SAP AG

view
Mit dieser Methode knnen Sie den Serienbrief mit den eingemischten Daten in der DesktopApplikation anzeigen lassen. CALL METHOD mail_merge->view EXPORTING no_flush IMPORTING error retcode = no_flush = error = retcode.

180

April 2001

SAP AG

Desktop Office Integration (BC-CI) shutdown

shutdown
Mit dieser Methode beenden Sie die Ansteuerung der Serienbrieffunktionalitt. CALL METHOD mail_merge->shutdown EXPORTING no_flush = no_flush IMPORTING error = error retcode = retcode.

April 2001

181

Desktop Office Integration (BC-CI) view_field_codes

SAP AG

view_field_codes
Mit dieser Methode knnen Sie einstellen, ob die Feldfunktionen angezeigt werden sollen. CALL METHOD mail_merge->view_field_codes EXPORTING viewcodes = viewcodes no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung viewcodes 'X': Feldfunktionen sollen nicht angezeigt werden ' ': Feldfunktionen sollen angezeigt werden

182

April 2001

SAP AG

Desktop Office Integration (BC-CI) Die Script-Collection

Die Script-Collection
Definition
Diese Instanz wird mit Referenz auf das Interface i_oi_script_collection definiert.

Verwendung
ber dieses Interface knnen Sie Script-Files (ASCII), in denen Scripte enthalten sind, zur Desktop-Applikation hinzuladen. Die Scripte mssen ber Ihren Namen ansprechbar sein. Mgliche Script-Sprachen sind VB Script und Java Script. Die Script-Collection hat zum Ziel, die Dokumente von Makros zu entlasten. Die Makros knnen zentral in einem Script abgelegt werden. Dies erleichtert auch die Pflege der Makros.

Integration
Das Interface ist fr alle Applikationen universell verwendbar. Einzige Voraussetzung ist, da die Applikation auf eine Script Engine (Script Engine des Internet Explorers) zurckgreifen kann. Dies bedeutet, da das Interface nicht die Exponierung einer Makrosprache voraussetzt.

April 2001

183

Desktop Office Integration (BC-CI) Arbeiten mit der Script-Collection

SAP AG

Arbeiten mit der Script-Collection


Einsatzmglichkeiten
In der Script-Collection knnen Sie alle Makros zu einem Gebiet in einem Script-File sammeln. Dieses Script-File wird dann von der Script-Collection zum Dokument heruntergeladen. Die Makros knnen dann ausgefhrt werden.

Voraussetzungen
Bevor Sie das Interface benutzen knnen, mssen Sie die Instanz fr die Dokumentenverwaltung document anlegen.

Ablauf
1. Deklarieren Sie eine Instanz mit Referenz auf das Interface i_oi_script_collection: DATA script_coll TYPE REF TO i_oi_script_collection. 2. Erzeugen Sie die Instanz fr die Tabellenschnittstelle mit der Methode get_script_collection [Seite 106] auf der Instanz fr die Dokumentenverwaltung document. 3. Verwenden Sie die Methoden der Tabellenschnittstelle: Methoden der Script-Collection Methode add_script remove_all_scripts remove_script Funktion Script hinzufgen Alle Scripts entfernen Ein bestimmtes Script entfernen

add_script_from_table Script hinzufgen

Denken Sie daran, da Sie nach jedem Methodenaufruf eine Fehlerbehandlung [Seite 21] implementieren sollten.

Die Bedeutung der nicht aufgefhrten Parameter bei den Methodenbeschreibungen finden Sie in Generische Parameter [Seite 253].

184

April 2001

SAP AG

Desktop Office Integration (BC-CI) Generische Parameter

Generische Parameter
In der folgenden Tabelle werden Parameter aufgefhrt, die in sehr vielen Methoden der Desktop Office Integration verwendet werden. Parameterverwendung Parameter Optional Bedeutung no_flush X 'X': Synchronisation der Automation Queue ' ': Vor dem Verlassen dieser Methode wird die Automation Queue [Extern] synchronisiert retcode error Fehlerbehandlung [Seite 21] Fehlerbehandlung [Seite 21]

Wenn Sie die Methode mit dem Parameter no_flush = 'X' ausfhren, werden die Methodenaufrufe nicht direkt vom Applikationsrechner zum Prsentationsrechner weitergereicht und daher auch nicht sofort ausgefhrt. Erst beim nchsten Methodenaufruf mit Parameter no_flush= ' ' bzw. nach Aufruf der Methode cl_gui_cfw=>flush [Extern] werden die zwischengespeicherten Daten auf einmal zum Prsentationsrechner geschickt. Diese Technik fhrt bei korrekter Verwendung zu einer Performance-Verbesserung. Bei falscher Anwendung knnen aber Inkonsistenzen der Daten auftreten. (Siehe auch Automation Queue [Extern]).

April 2001

185

Desktop Office Integration (BC-CI) add_script

SAP AG

add_script
Mit dieser Methode knnen Sie ein Script hinzufgen. Das Script wird ber eine URL-Adresse identifiziert. CALL METHOD script_coll->add_script EXPORTING script_name = script_name script_type = script_type script_url = script_url user_info = user_info no_flush = no_flush IMPORTING retcode = retcode error = error. Parameterverwendung Parameter script_name script_url script_type X Optional Bedeutung Technischer Name des Scripts URL-Adresse des Scripts script_type_unknown: Es wird versucht, aus dem Mime-Typ innerhalb der URL den Typ zu ermitteln. Sollte dies nicht mglich sein, wird ein Fehler ausgegeben. script_type_vbscript: Es handelt sich um ein VB Script script_type_jscript: Es handelt sich um ein Java Script user_info X Anmelde- und Proxy-Daten fr den Zugriff auf einen HTTP-/FTPServer

186

April 2001

SAP AG

Desktop Office Integration (BC-CI) add_script_from_table

add_script_from_table
Mit dieser Methode knnen Sie ein Script laden. Das Script mu dafr in einer Tabelle im Applikationsprogramm vorhanden sein. CALL METHOD script_coll->add_script_from_table EXPORTING script_name = script_name script_type = script_type script_table = script_table no_flush = no_flush IMPORTING retcode = retcode error = error. Parameterverwendung Parameter script_name script_type X Optional Bedeutung Technischer Name des Scripts script_type_unknown: Es wird versucht, aus dem Mime-Typ innerhalb der URL den Typ zu ermitteln. Sollte dies nicht mglich sein, wird ein Fehler ausgegeben. script_type_vbscript: Es handelt sich um ein VB Script script_type_jscript: Es handelt sich um ein Java Script script_table Interne Tabelle, in die das Script geladen wurde

April 2001

187

Desktop Office Integration (BC-CI) remove_all_scripts

SAP AG

remove_all_scripts
Diese Methode entfernt alle geladenen Scripten. CALL METHOD script_coll->remove_all_scripts EXPORTING no_flush = no_flush IMPORTING error = error retcode = retcode.

188

April 2001

SAP AG

Desktop Office Integration (BC-CI) remove_script

remove_script
Diese Methode entfernt ein bestimmtes Script. CALL METHOD script_coll->remove_script EXPORTING script_name = script_name no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter script_name Optional Bedeutung Name des Scripts, das entfernt werden soll.

April 2001

189

Desktop Office Integration (BC-CI) Die Tabellenkalkulationsschnittstelle

SAP AG

Die Tabellenkalkulationsschnittstelle
Definition
Diese Instanz wird mit Referenz auf das Interface i_oi_spreadsheet definiert.

Verwendung
Die Schnittstelle wird zur Kommunikation mit einer Tabellenkalkulation benutzt. Jede Tabellenkalkulation untersttzt die Definition von Arbeitsbereichen und auch die Mglichkeit, diesen Bereichen einen Namen zu geben. Daher basiert die Arbeitsweise mit dieser Schnittstelle auf der Verwendung von benannten Arbeitsbereichen. Bei der Definition der einzelnen ABAP-Methoden wurde darauf geachtet, da die zugrundeliegende Funktionalitt in den untersttzten Tabellenkalkulationen vorhanden ist. Daher finden alle Methoden eine Abbildung in die Funktionalitt der untersttzten Tabellenkalkulationen.

Struktur
Fr den Datenaustausch mit der Tabellenkalkulation werden Tabellen in einer bestimmten Form bentigt. Die Definition dieser Tabellen wird in Wichtige Tabellenstrukturen [Seite 244] beschrieben.

Integration
Die Schnittstelle untersttzt zur Zeit die Tabellenkalkulationen MS Excel und Lotus 1-2-3.

190

April 2001

SAP AG

Desktop Office Integration (BC-CI) Arbeiten mit der Tabellenkalkulationsschnittstelle

Arbeiten mit der Tabellenkalkulationsschnittstelle


Einsatzmglichkeiten
Mit der Tabellenkalkulationsschnittstelle knnen Sie Daten aus dem R/3 in eine Tabellenkalkulation einspielen und diese Inhalte auch wieder in das R/3 zurckladen, sofern die Tabellenkalkulation die Schnittstelle untersttzt (siehe auch has_spreadsheet_interface [Seite 98]).

Voraussetzungen
Bevor Sie die Schnittstelle benutzen knnen, mssen Sie die Instanz fr die Dokumentenverwaltung document anlegen.

Ablauf
1. Deklarieren Sie eine Instanz mit Referenz auf das Interface i_oi_spreadsheet: DATA spreadsheet TYPE REF TO i_oi_spreadsheet. 2. Erzeugen Sie die Instanz fr die Tabellenkalkulationsschnittstelle mit der Methode get_spreadsheet_interface [Seite 99] auf der Instanz fr die Dokumentenverwaltung document. 3. Verwenden Sie die Methoden der Tabellenkalkulationsschnittstelle: Methoden der Tabellenkalkulationsschnittstelle Methode get_active_sheet get_dimension get_protection get_sheets get_ranges_data get_ranges_name get_cell_format Funktion Aktives Arbeitsblatt Gre eines Arbeitsbereichs Schutz eines Arbeitsblatts Vorhandene Arbeitsbltter Daten bestimmter Arbeitsbereiche Namen der vorhandenen Arbeitsbereiche Format einer bestimmten Zelle

get_cell_formats_table Format einer Gruppe von Zellen get_selection get_selected_areas select_range set_selection select_sheet set_color set_font Selektion innerhalb eines Arbeitsblatts Mehrere Selektionen innerhalb eines Arbeitsblatts Selektion eines Arbeitsbereichs Selektion eines beliebigen Bereichs in einem Arbeitsblatt Aktivieren eines Arbeitsblatts ndern der Farben ndern der Schriftart

April 2001

191

Desktop Office Integration (BC-CI) Arbeiten mit der Tabellenkalkulationsschnittstelle set_format set_format_string set_frame set_ranges_format cell_format protect protect_range add_sheet set_sheet_name delete_sheet insert_range_dim change_range insert_range insert_one_table set_ranges_data clear_range clear_all_ranges ndern des Formats ndern des Formats (nur MS Excel) ndern des Linienformats ndern des Formats mehrerer Arbeitsbereiche ndern des Formats einer Zelle Schtzen eines Arbeitsblatts Schtzen eines Arbeitsbereichs

SAP AG

Hinzufgen eines Arbeitsblatts zur aktuellen Arbeitsmappe Setzen des Namens eines Arbeitsblatts Lschen eines Arbeitsblatts Hinzufgen eines Arbeitsbereichs ndern eines Arbeitsbereichs Einfgen eines Arbeitsbereichs an selektierter Stelle Einfgen einer Datentabelle in einen Arbeitsbereich Fllen von Daten in einen Arbeitsbereich Lschen eines Arbeitsbereichs Lschen des Inhalts und der Formatierung aller Arbeitsbereiche

delete_content_ranges Lschen des Inhalts aller Arbeitsbereiche delete_ranges hide_columns show_columns hide_rows show_rows set_hierarchy set_hierarchy_table clear_hierarchy print set_zoom fit_widest screen_update load_lib version Lschen aller Arbeitsbereichdefinitionen Ausblenden von Spalten Einblenden von Spalten Ausblenden von Zeilen Einblenden von Zeilen Setzen einer Hierarchie im Arbeitsblatt Setzen mehrerer Hierarchien im Arbeitsblatt Lschen der Hierarchien im Arbeitsblatt Drucken eines Arbeitsblatts ndern des Zoomfaktors Anpassen der Spaltenbreite Ein-/Ausschalten der Bildaktualisierung Laden einer weiteren DLL zur Performance-Verbesserung Rckgabe der Version der Tabellenkalkulationsschnittstelle

192

April 2001

SAP AG

Desktop Office Integration (BC-CI) Arbeiten mit der Tabellenkalkulationsschnittstelle

Denken Sie daran, da Sie nach jedem Methodenaufruf eine Fehlerbehandlung [Seite 21] implementieren sollten.

Die Bedeutung der nicht aufgefhrten Parameter finden Sie in Generische Parameter [Seite 253].

April 2001

193

Desktop Office Integration (BC-CI) Generische Parameter

SAP AG

Generische Parameter
In der folgenden Tabelle werden Parameter aufgefhrt, die in sehr vielen Methoden der Desktop Office Integration verwendet werden. Parameterverwendung Parameter Optional Bedeutung no_flush X 'X': Synchronisation der Automation Queue ' ': Vor dem Verlassen dieser Methode wird die Automation Queue [Extern] synchronisiert retcode error Fehlerbehandlung [Seite 21] Fehlerbehandlung [Seite 21]

Wenn Sie die Methode mit dem Parameter no_flush = 'X' ausfhren, werden die Methodenaufrufe nicht direkt vom Applikationsrechner zum Prsentationsrechner weitergereicht und daher auch nicht sofort ausgefhrt. Erst beim nchsten Methodenaufruf mit Parameter no_flush= ' ' bzw. nach Aufruf der Methode cl_gui_cfw=>flush [Extern] werden die zwischengespeicherten Daten auf einmal zum Prsentationsrechner geschickt. Diese Technik fhrt bei korrekter Verwendung zu einer Performance-Verbesserung. Bei falscher Anwendung knnen aber Inkonsistenzen der Daten auftreten. (Siehe auch Automation Queue [Extern]).

194

April 2001

SAP AG

Desktop Office Integration (BC-CI) Der Updating-Parameter

Der Updating-Parameter
Der Updating-Parameter wird in mehreren Methoden der Tabellenkalkulationsschnittstelle verwendet. Er steuert, ob das Bild der Tabellenkalkulation sofort nach jedem Befehl aufgefrischt werden soll (es ist effizienter, das Bild fr mehrere Befehle gleichzeitig aufzufrischen anstatt es nach jedem Befehl aufzufrischen). Der Parameter ist immer optional und kann folgende Werte annehmen: Wert -1 (Standardwert) 0 1 Bedeutung Die vorhandene Aktualisierungseinstellung bleibt unverndert. Die Bildaktualisierung wird ausgeschaltet, bevor die Methode aufgerufen wird, und bleibt inaktiv. Die Bildaktualisierung wird eingeschaltet, nachdem die Methode aufgerufen wird, und bleibt aktiv.

Methoden ohne Aktualisierungsparameter wirken sich nicht auf den aktuellen Status des Aktualisierungsmechanismus aus.

April 2001

195

Desktop Office Integration (BC-CI) get_active_sheet

SAP AG

get_active_sheet
Die Methode gibt den Namen des aktuellen Arbeitsblattes zurck. CALL METHOD spreadsheet->get_active_sheet EXPORTING no_flush = no_flush IMPORTING sheetname = sheetname error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung sheetname Name des aktuellen Arbeitsblatts

196

April 2001

SAP AG

Desktop Office Integration (BC-CI) get_dimension

get_dimension
Die Methode liefert die Gre des angegebenen Arbeitsbereichs zurck, d.h. die linke obere Ecke und die Zeilen- und Spaltenanzahl. CALL METHOD spreadsheet->get_dimension EXPORTING name = name no_flush = no_flush IMPORTING top = top left = left rows = rows columns = columns error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung name top left rows columns Name des Bereichs Oberer Rand des Bereichs Linker Rand des Bereichs Zeilenanzahl Spaltenanzahl

April 2001

197

Desktop Office Integration (BC-CI) get_protection

SAP AG

get_protection
Der Rckgabewert ist gesetzt, falls das angegebene Arbeitsblatt geschtzt ist. CALL METHOD spreadsheet->get_protection EXPORTING sheetname = sheetname no_flush = no_flush IMPORTING protect = protect error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung sheetname protect Name des Arbeitsblatts 'X': Arbeitsblatt ist geschtzt ' ': Arbeitsblatt nicht geschtzt

198

April 2001

SAP AG

Desktop Office Integration (BC-CI) get_sheets

get_sheets
Diese Methode liefert eine Liste der Namen der vorhandenen Arbeitsbltter zurck. CALL METHOD spreadsheet->get_sheets EXPORTING no_flush = no_flush updating = updating IMPORTING sheets = sheets error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung sheets Liste der vorhandenen Arbeitsbltter Der Parameter mu mit Bezug auf den Typ SOI_SHEETS_TABLE angelegt werden. updating X Siehe Der Updating-Parameter [Seite 195]

April 2001

199

Desktop Office Integration (BC-CI) get_ranges_data

SAP AG

get_ranges_data
Diese Methode liefert die Daten bestimmter Bereiche in einem Arbeitsblatt zurck. Dabei gibt es in Abhngigkeit des Parameters all zwei unterschiedliche Arten von Steuermglichkeiten. CALL METHOD spreadsheet->get_ranges_data EXPORTING all = all rangesdef = rangesdef updating = updating no_flush = no_flush IMPORTING contents = contents error = error retcode = retcode CHANGING ranges = ranges. Parameterverwendung Parameter Optional Bedeutung all X 'X': Es werden die Daten aller Arbeitsbereiche zurckgeliefert ' ': Es werden nur die Daten der in der Tabelle ranges angegebenen Arbeitsbereiche zurckgeliefert rangesdef X Interne Tabelle vom Typ SOI_DIMENSION_TABLE, mit der Sie Arbeitsbereiche auf der Grundlage ihrer Startposition und Gre und nicht auf der Grundlage ihres Namens definieren knnen Hinweis: Wenn Sie diesen Parameter verwenden, mu die Tabelle ranges (siehe unten) leer sein. updating contents X Siehe Der Updating-Parameter [Seite 195] Datentabelle. Jede Zeile enthlt den Inhalt einer Zelle. Die Tabelle wird mit Bezug auf den Typ SOI_GENERIC_TABLE angelegt (siehe auch Wichtige Tabellenstrukturen [Seite 244]). ranges Ergebnistabelle der Abfrage. Wenn Sie den Parameter all oder rangesdef benutzen, mu die Tabelle leer sein. Wenn Sie keinen dieser Parameter benutzen, mssen Sie die Tabelle mit den Namen der Arbeitsbereiche fllen, bevor Sie die Methode aufrufen. Die Tabelle wird mit Bezug auf den Typ SOI_RANGE_LIST angelegt (siehe auch Wichtige Tabellenstrukturen [Seite 244]).

200

April 2001

SAP AG

Desktop Office Integration (BC-CI) get_ranges_names

get_ranges_names
Diese Methode liefert eine Tabelle aller Bereiche mit Angaben zu den Gren dieser Bereiche zurck. Dem Steuercode kommt hierbei keine Bedeutung zu, er wird nicht belegt. CALL METHOD spreadsheet->get_ranges_names EXPORTING updating = updating no_flush = no_flush IMPORTING ranges = ranges error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung updating ranges X Siehe Der Updating-Parameter [Seite 195] Tabelle aller Bereiche Die Tabelle wird mit Bezug auf den Typ SOI_RANGE_LIST angelegt (siehe auch Wichtige Tabellenstrukturen [Seite 244]).

April 2001

201

Desktop Office Integration (BC-CI) get_cell_format

SAP AG

get_cell_format
Mit dieser Methode knnen Sie die Formatinformationen einer bestimmten Zelle bestimmen. Dabei sind nur die Felder fr die Farben, die Ausrichtung und die Schriftart ausgefllt. Die Felder fr Whrungen und Formatierungen wie wissenschaftliche Darstellungen sind nicht ausgefllt, da in den untersttzten Tabellenkalkulationen im allgemeinen zu viele unterschiedliche Mglichkeiten angeboten werden, die Formatierung einer Zelle bzw. eines Bereiches zu steuern. CALL METHOD spreadsheet->get_cell_format EXPORTING row = row column = column no_flush = no_flush IMPORTING format = format error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung row column format Zeilennummer Spaltennummer Format der Zelle Struktur des Typs SOI_FORMAT_ITEM (siehe auch Wichtige Tabellenstrukturen [Seite 244])

202

April 2001

SAP AG

Desktop Office Integration (BC-CI) get_cell_formats_table

get_cell_formats_table
Mit dieser Methode knnen Sie die Formatinformationen fr eine Gruppe von Zellen bestimmen. Dabei sind nur die Felder fr die Farben, die Ausrichtung und die Schriftart ausgefllt. Die Felder fr die Whrung und die Formatierung, z.B. die wissenschaftliche Darstellung, sind nicht gefllt. Dies liegt daran, da die Tabellenkalkulationen, die von der Schnittstelle untersttzt werden, zu viele Formatierungsmglichkeiten bieten. CALL METHOD spreadsheet->get_cell_formats_table EXPORTING no_flush = no_flush IMPORTING error = error retcode = retcode CHANGING table = table. Parameterverwendung Parameter Optional Bedeutung table Interne Tabelle des Typs SOI_CELL_TABLE (siehe auch Wichtige Tabellenstrukturen [Seite 244]). Sie fllen die Tabelle mit den Koordinaten der entsprechenden Zellen, bevor die Methode aufgerufen wird. Die Methode fllt die verbleibenden Felder mit den Formatangaben.

April 2001

203

Desktop Office Integration (BC-CI) get_selection

SAP AG

get_selection
Mit dieser Methode knnen Sie die linke obere Ecke und die Gre der aktuellen Selektion im Arbeitsblatt bestimmen. CALL METHOD spreadsheet->get_selection EXPORTING updating = updating no_flush = no_flush IMPORTING top = top left = left rows = rows columns = columns error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung updating top left rows columns X Siehe Der Updating-Parameter [Seite 195] Oberer Rand des Bereichs Linker Rand des Bereichs Zeilenanzahl Spaltenanzahl

204

April 2001

SAP AG

Desktop Office Integration (BC-CI) get_selected_areas

get_selected_areas
Mit dieser Methode ermitteln Sie die markierten Bereiche auf dem aktuellen Arbeitsblatt. Der Parameter areas gibt eine interne Tabelle zurck. Jede Zeile dieser Tabelle beschreibt einen markierten Bereich des Arbeitsblatts. CALL METHOD spreadsheet->get_selected_areas EXPORTING no_flush = no_flush IMPORTING areas = areas error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung areas Interne Tabelle vom Typ SOI_AREA_TABLE. Weitere Informationen finden Sie unter Wichtige Tabellenstrukturen [Seite 244]).

April 2001

205

Desktop Office Integration (BC-CI) select_range

SAP AG

select_range
Ein bestehender benannter Bereich wird selektiert. CALL METHOD spreadsheet->select_range EXPORTING rangename = rangename no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung rangename Name des zu selektierenden Bereichs

206

April 2001

SAP AG

Desktop Office Integration (BC-CI) set_selection

set_selection
Ein Bereich im aktuellen Arbeitsblatt wird selektiert, allerdings noch nicht mit einem Namen versehen. Dabei wird die linke obere Ecke und die Gre des zu selektierenden Bereiches angegeben. CALL METHOD spreadsheet->set_selection EXPORTING top = top left = left rows = rows columns = columns updating = updating no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung top left rows columns updating X Oberer Rand des Bereichs Linker Rand des Bereichs Zeilenanzahl Spaltenanzahl Siehe Der Updating-Parameter [Seite 195]

April 2001

207

Desktop Office Integration (BC-CI) select_sheet

SAP AG

select_sheet
Das angegebene Arbeitsblatt wird aktiviert, d.h. es wird in den Vordergrund geholt, so da sich alle Methoden wie get_selection [Seite 204] und set_selection [Seite 207] auf dieses Arbeitsblatt beziehen. CALL METHOD spreadsheet->select_sheet EXPORTING name = name no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung name Name des Arbeitsblatts

208

April 2001

SAP AG

Desktop Office Integration (BC-CI) set_color

set_color
Fr einen anzugebenden Bereich wird die Schrift- und die Hintergrundfarbe festgelegt. Dabei wird auf die Farbpalette von Excel zurckgegriffen. Es handelt sich nicht um RGB-Werte, auch wenn die angesteuerte Tabellenkalkulation nur RGB-Werte als Farbkennzeichnungen untersttzt. CALL METHOD spreadsheet->set_color EXPORTING rangename = rangename front = front back = back no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung rangename front Name des Bereichs Farbe der Schrift (siehe Farbpalette) '-1': Die Farbe wird nicht verndert back Farbe des Hintergrunds (siehe Farbpalette) '-1': Die Farbe wird nicht verndert Die Farbpalette umfat dabei folgende Farben:

April 2001

209

Desktop Office Integration (BC-CI) set_font

SAP AG

set_font
Diese Methode bestimmt das Schriftbild der Eintrge im angegebenen Bereich. Dabei wird eine Schriftart ber die Familie festgelegt, zu der die Schrift gehrt. CALL METHOD spreadsheet->set_font EXPORTING rangename = rangename family = family size = size bold = bold italic = italic align = align no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung rangename family Name des Bereichs Schriftart. Bisher werden folgende Schriftarten angeboten: 'Arial' 'Courier New' 'Times New Roman' size Schriftgre '-1': keine Vernderung bold '1': fett '0': normal '-1': keine Vernderung italic '1': kursiv '0': normal '-1': keine Vernderung align Ausrichtung: '-1': keine Vernderung '0': rechtsbndig. '1': zentriert. '2': linksbndig

210

April 2001

SAP AG

Desktop Office Integration (BC-CI) set_format

set_format
Die Formatierung der Zellen eines angegebenen Bereiches lt sich festlegen, indem eine Whrung nach ISO-Norm angegeben wird. Diese Darstellung wird auch im R/3-System verwendet, d.h. im Regelfall kann einfach der dreistellige Whrungscode bergeben werden. Weiterhin knnen Sie die Whrungsaufbereitung ber einen Typ festlegen. Das Erscheinungsbild der Zahlen in der Zelle hngt dann von dem angegebenen Typ ab. CALL METHOD spreadsheet->set_format EXPORTING rangename = rangename typ = typ currency = currency decimals = decimals no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung rangename typ Name des Bereichs Typ fr die Whrungsaufbereitung: currency decimals X 0 bezeichnet die Darstellung als Text 1 bezeichnet eine einfache Zahl 2 bezeichnet die wissenschaftliche Darstellung 3 bezeichnet die Prozentdarstellung Wird eine 1 beim Typ angegeben, dann wird das currencyFeld ausgewertet.

Whrung gem ISO-Norm Anzahl der Dezimalstellen

Es wurde versucht, den kleinsten gemeinsamen Nenner fr die unterschiedlichen Formatierungsmglichkeiten der Tabellenkalkulationen zu finden. Daher sind die Formatierungsmglichkeiten auch eingeschrnkter, als es in den untersttzten Tabellenkalkulationen der Fall ist.

April 2001

211

Desktop Office Integration (BC-CI) set_format_string

SAP AG

set_format_string
Wird als Tabellenkalkulation MS Excel verwendet, so kann die Formatierung einer Zelle genauer gesteuert werden, als es mit der Methode set_format [Seite 211] mglich ist. Dazu wird einfach der Format-String an die Tabellenkalkulation geschickt.

Diese Methode sollten Sie in der Regel nicht benutzen, da diese bei anderen Tabellenkalkulationen wie Lotus 1-2-3 nicht quivalent umgesetzt werden kann. CALL METHOD spreadsheet->set_format_string EXPORTING rangename = rangename formatstring = formatstring no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung rangename formatstring Name des Bereichs Format-String fr Tabellenkalkulation MS Excel

212

April 2001

SAP AG

Desktop Office Integration (BC-CI) set_frame

set_frame
Die Gestalt der Linien in einem Bereich lt sich anhand eines Steuerbytes und eines Farbindexes bestimmen. CALL METHOD spreadsheet->set_frame EXPORTING rangename = rangename typ = typ color = color no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung rangename typ color Name des Bereichs Steuerbyte zum Setzen des Rahmens Farbe des Rahmens (siehe Farbpalette)

Das Steuerbyte type setzt sich aus folgenden Bits zusammen. Ein gesetztes Bit bedeutet immer, da der entsprechende Strich gezogen wird. Die Liniendicke kann ber Bit 6 und 7 zwischen vier Dicken variiert werden: Bit 0 1 2 3 4 5 6 7 Bedeutung linker Rand oberer Rand unterer Rand rechter Rand horizontaler Strich linker Rand Liniendicke Liniendicke

April 2001

213

Desktop Office Integration (BC-CI) set_ranges_format

SAP AG

set_ranges_format
Mit dieser Methode knnen Sie das Format mehrerer Bereiche verndern. CALL METHOD spreadsheet->set_ranges_format EXPORTING formattable = formattable updating = updating no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung formattable updating X Steuertabelle des Typs soi_format_table (siehe auch Wichtige Tabellenstrukturen [Seite 244]) Siehe Der Updating-Parameter [Seite 195]

214

April 2001

SAP AG

Desktop Office Integration (BC-CI) cell_format

cell_format
Mit dieser Methode knnen Sie die Formatierung einer Zelle oder einer Gruppe von Zellen setzen. Sie hnelt der Methode set_ranges_format [Seite 214], erfordert jedoch nicht, da Sie einen benannten Bereich im Arbeitsblatt angeben. Stattdessen geben Sie die Zellenkoordinaten der Zelle oben links sowie die Anzahl der Zeilen und Spalten an, ber die sich der Bereich erstrecken soll. Bei Bedarf knnen Sie diese Informationen mit der Methode get_selected_areas [Seite 205] holen. CALL METHOD spreadsheet->cell_format EXPORTING cells = cells no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung cells Interne Tabelle vom Typ SOI_CELL_TABLE. Weitere Informationen finden Sie unter Wichtige Tabellenstrukturen [Seite 244]).

April 2001

215

Desktop Office Integration (BC-CI) protect

SAP AG

protect
Mit dieser Methode knnen Sie das aktuelle Arbeitsblatt schtzen, so da nur noch die Bearbeitung bestimmter Bereiche mglich ist. CALL METHOD spreadsheet->protect EXPORTING protect = protect no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung protect 'X': Arbeitsblatt ist geschtzt ' ': Arbeitsblatt nicht geschtzt

216

April 2001

SAP AG

Desktop Office Integration (BC-CI) protect_range

protect_range
Mit dieser Methode knnen Sie die Eigenschaft 'geschtzt' eines Bereichs verndern. CALL METHOD spreadsheet->protect_range EXPORTING name = name protect = protect no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung name protect Name des zu schtzenden Bereichs 'X': Bereich ist geschtzt ' ': Bereich nicht geschtzt

April 2001

217

Desktop Office Integration (BC-CI) add_sheet

SAP AG

add_sheet
Mit dieser Methode erstellen Sie ein neues Arbeitsblatt im aktuellen Tabellenkalkulationsdokument. Das Arbeitsblatt wird immer direkt vor dem aktuellen Arbeitsblatt eingefgt. CALL METHOD spreadsheet->add_sheet EXPORTING names = name no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung name Ein Feld vom Typ C, das den Namen des neuen Arbeitsblatts enthlt.

218

April 2001

SAP AG

Desktop Office Integration (BC-CI) set_sheet_name

set_sheet_name
Mit dieser Methode benennen Sie ein Arbeitsblatt im aktuellen Tabellenkalkulationsdokument um. CALL METHOD spreadsheet->set_sheet_name EXPORTING oldname = oldname newname = newname no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung oldname newname Ein Feld vom Typ C, das den aktuellen Namen des Arbeitsblatts enthlt, das Sie umbenennen mchten. Ein Feld vom Typ C, das den neuen Namen des Arbeitsblatts enthlt.

April 2001

219

Desktop Office Integration (BC-CI) delete_sheet

SAP AG

delete_sheet
Mit dieser Methode lschen Sie ein Arbeitsblatt aus dem aktuellen Tabellenkalkulationsdokument.

Wenn Sie diese Methode verwenden, wird der Benutzer in der Tabellenkalkulationsanwendung darauf hingewiesen, da dabei Daten verloren gehen knnen. Sie mssen keine eigene Abfrage programmieren. CALL METHOD spreadsheet->delete_sheet EXPORTING name = name no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung name Ein Feld vom Typ C, das den Namen des Arbeitsblatts enthlt, das Sie lschen mchten.

220

April 2001

SAP AG

Desktop Office Integration (BC-CI) insert_range_dim

insert_range_dim
Es wird ein Bereich mit den bergebenen Grenangaben in das aktuelle Arbeitsblatt eingefgt. CALL METHOD spreadsheet->insert_range_dim EXPORTING name = name top = top left = left rows = rows columns = columns updating = updating no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung name top left rows columns updating X Name des neuen Bereichs Oberer Rand des Bereichs Linker Rand des Bereichs Zeilenanzahl Spaltenanzahl Siehe Der Updating-Parameter [Seite 195]

April 2001

221

Desktop Office Integration (BC-CI) change_range

SAP AG

change_range
Sowohl der Name eines bestehenden Bereiches als auch seine Gre wird angepat. CALL METHOD spreadsheet->change_range EXPORTING rangename = rangename newname = newname rows = rows columns = columns updating = updating no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung rangename newname rows columns updating X X X X Name des Bereichs Genderter Name des Bereichs Zeilenanzahl Spaltenanzahl Siehe Der Updating-Parameter [Seite 195]

222

April 2001

SAP AG

Desktop Office Integration (BC-CI) insert_range

insert_range
Im aktuellen Arbeitsblatt wird ausgehend von der Selektion ein neuer Bereich eingefgt. Dabei bildet die obere linke Ecke der aktuellen Selektion die obere linke Ecke des neuen Bereiches. Die Gre der aktuellen Selektion spielt dabei keine Rolle, da die Gre des neuen Bereichs ber die entsprechenden Parameter beschrieben wird. CALL METHOD spreadsheet->insert_range EXPORTING name = name rows = rows columns = columns updating = updating no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung name rows columns updating X Name des neuen Bereichs Zeilenanzahl Spaltenanzahl Siehe Der Updating-Parameter [Seite 195]

April 2001

223

Desktop Office Integration (BC-CI) insert_ranges

SAP AG

insert_ranges
Mit dieser Methode fgen Sie eine Gruppe von Bereichen in das Tabellenkalkulationsdokument ein. Jeder Bereich wird durch einen Eintrag in der internen Tabelle beschrieben, die Sie im Parameter ranges bergeben. CALL METHOD spreadsheet->insert_ranges EXPORTING ranges = ranges no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung ranges Interne Tabelle vom Typ SOI_FULL_RANGE_TABLE. Jede Zeile enthlt die Beschreibung eines Bereichs. Weitere Informationen finden Sie unter Wichtige Tabellenstrukturen [Seite 244]).

224

April 2001

SAP AG

Desktop Office Integration (BC-CI) insert_one_table

insert_one_table
Mit dieser Methode fgen Sie eine einzelne Tabelle in das Arbeitsblatt ein. Dabei spielt es keine Rolle, welches Format diese Tabelle hat. Diese Information wird ber die Angabe eines Dictionary-Objekts oder ber eine Beschreibung der Tabellenstruktur festgelegt. CALL METHOD spreadsheet->insert_one_table EXPORTING ddic_name = ddic_name data_table = data_table fields_table = fields_table rangename = rangename wholetable = wholetable updating = updating no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung ddic_name data_table fields_table X Name der ABAP-Dictionary-Struktur Datentabelle Beschreibung der Tabellenstruktur (sofern diese nicht ber den Parameter ddic_name bergeben wurde). Die Tabelle wird mit Bezug auf den Typ SOI_FIELDS_TABLE angelegt. rangename wholetable X Name des Bereichs Fgt die ganze Tabelle ein, egal, wie gro der definierte Bereich ist. (Siehe auch SPREADSHEET->SPREADSHEET_INSERTALL in soi_range_list [Seite 244]) Siehe Der Updating-Parameter [Seite 195]

updating

April 2001

225

Desktop Office Integration (BC-CI) set_ranges_data

SAP AG

set_ranges_data
Mit Hilfe dieser Methode werden die Daten von Bereichen gesetzt. Dabei mssen die Daten aus der Tabelle contents entsprechend der in der Tabelle ranges oder rangesdef definierten Reihenfolge in das Arbeitsblatt eingetragen werden. ber Steuercodes kann auf Teile der einzelnen Bereiche zugegriffen werden. CALL METHOD spreadsheet->set_ranges_data EXPORTING ranges = ranges contents = contents rangesdef = rangesdef updating = updating no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung ranges Tabelle aller Bereiche Die Tabelle wird mit Bezug auf den Typ SOI_RANGE_LIST angelegt (siehe auch Wichtige Tabellenstrukturen [Seite 244]). contents Datentabelle Die Tabelle wird mit Bezug auf den Typ SOI_GENERIC_TABLE angelegt (siehe auch Wichtige Tabellenstrukturen [Seite 244]). rangesdef X Interne Tabelle vom Typ SOI_DIMENSION_TABLE, mit der Sie Arbeitsbereiche auf der Grundlage ihrer Startposition und Gre und nicht auf der Grundlage ihres Namens definieren knnen Hinweis: Wenn Sie diesen Parameter verwenden, mu die Tabelle ranges (siehe oben) leer sein. updating X Siehe Der Updating-Parameter [Seite 195]

In die Tabelle contents mssen die Daten ohne fhrende Leerzeichen eingetragen werden. Daher sollten Sie die Daten mit der WRITE-Anweisung formatgerecht einfgen, da sonst der Aufruf der Methode fit_widest [Seite 240] dazu fhrt, da die fhrenden Leerzeichen zur Bestimmung der Breite herangezogen werden.

226

April 2001

SAP AG

Desktop Office Integration (BC-CI) clear_range

clear_range
Der Inhalt des angegebenen Bereichs wird gelscht. Der benannte Bereich bleibt weiterhin bestehen. CALL METHOD spreadsheet->clear_range EXPORTING name = name no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung name Bereich, der gelscht werden soll

April 2001

227

Desktop Office Integration (BC-CI) clear_all_ranges

SAP AG

clear_all_ranges
Mit dieser Methode lschen Sie den Inhalt und die Formatierung aller Bereiche im Arbeitsblatt. Die Bereiche selbst werden nicht gelscht. Um eine Bereichsdefinition aus dem Arbeitsblatt zu lschen, benutzen Sie die Methode delete_ranges [Seite 230]. CALL METHOD spreadsheet->clear_all_ranges EXPORTING no_flush = no_flush IMPORTING error = error retcode = retcode.

228

April 2001

SAP AG

Desktop Office Integration (BC-CI) delete_content_ranges

delete_content_ranges
Mit dieser Methode lschen Sie den Inhalt eines oder mehrerer benannter Bereiche im Arbeitsblatt. CALL METHOD spreadsheet->delete_content_ranges EXPORTING ranges = ranges no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung ranges Tabelle mit der Liste der Bereiche. Die Tabelle mu mit Bezug auf den Typ SOI_RANGE_LIST angelegt werden. In jedem Eintrag mssen Sie jedoch nur das Feld fr den Namen fllen.

April 2001

229

Desktop Office Integration (BC-CI) delete_ranges

SAP AG

delete_ranges
Mit dieser Methode lschen Sie die Definitionen eines oder mehrerer benannter Bereiche im Arbeitsblatt. Der Inhalt der Bereiche wird nicht gelscht. Um den Inhalt eines Bereichs zu lschen, verwenden Sie die Methode delete_content_ranges [Seite 229]. CALL METHOD spreadsheet->delete_ranges EXPORTING ranges = ranges no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung ranges Tabelle mit den Namen der Bereiche. Die Tabelle mu mit Bezug auf den Typ SOI_FULL_RANGE_TABLE angelegt werden. In jedem Eintrag der Tabelle mssen Sie jedoch nur das Feld fr den Namen fllen.

230

April 2001

SAP AG

Desktop Office Integration (BC-CI) hide_columns

hide_columns
Die Spalten des angegebenen Bereichs werden ausgeblendet. CALL METHOD spreadsheet->hide_columns EXPORTING name = name first = first last = last no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung name first last X X Name des Arbeitsbereichs Nummer der ersten Spalte im Arbeitsbereich, die ausgeblendet werden soll Nummer der letzten Spalte im Arbeitsbereich, die ausgeblendet werden soll

first und last greifen nur dann, wenn sie zusammen verwendet werden. Wenn Sie eine einzelne Spalte im Arbeitsbereich ausblenden mchten, verwenden Sie fr first und last denselben Wert.

April 2001

231

Desktop Office Integration (BC-CI) show_columns

SAP AG

show_columns
Die Spalten des angegebenen Bereichs werden sichtbar gemacht (siehe hide_columns [Seite 231]). CALL METHOD spreadsheet->show_columns EXPORTING name = name no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung name Name des Arbeitsbereichs

232

April 2001

SAP AG

Desktop Office Integration (BC-CI) hide_rows

hide_rows
Die Zeilen des angegebenen Bereiches werden ausgeblendet. Trotzdem knnen Sie auf die Inhalte nach wie vor mit der Methode get_ranges_data [Seite 200] zugreifen. CALL METHOD spreadsheet->hide_rows EXPORTING name = name no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung name Auszublendender Bereich

April 2001

233

Desktop Office Integration (BC-CI) show_rows

SAP AG

show_rows
Die Zeilen des angegebenen Bereichs werden wieder sichtbar gemacht. CALL METHOD spreadsheet->show_rows EXPORTING name = name no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung name Anzuzeigender Bereich

234

April 2001

SAP AG

Desktop Office Integration (BC-CI) set_hierarchy

set_hierarchy
Mit dieser Methode setzen Sie eine Hierarchieebene im Arbeitsblatt. Sie mssen einen Bereich bestimmen, indem Sie die Startzeile und die Zeilenanzahl angeben. Der Benutzer kann diesen Bereich dann im Tabellenkalkulationsprogramm einblenden oder ausblenden.

Wenn Sie mehrere Hierarchien mit einem einzigen Methodenaufruf setzen mchten, verwenden Sie die Methode set_hierarchy_table [Seite 236]. CALL METHOD spreadsheet->set_hierarchy EXPORTING firstline = firstline length = length IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung firstline length Erste Zeile des Hierarchiebereichs (Typ I) Lnge des Hierarchiebereichs in Zeilen (Typ I)

April 2001

235

Desktop Office Integration (BC-CI) set_hierarchy_table

SAP AG

set_hierarchy_table
Mit dieser Methode setzen Sie einen Bereich von Hierarchieebenen im Arbeitsblatt. Fr jede Ebene mssen Sie die Startzeile und die Lnge in Zeilen angeben. Der Benutzer kann die Bereiche dann im Tabellenkalkulationsprogramm einblenden oder ausblenden. CALL METHOD spreadsheet->set_hierarchy_table EXPORTING table = table no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung table Interne Tabelle vom Typ SOI_HIERARCHY_TABLE. Weitere Informationen finden Sie unter Wichtige Tabellenstrukturen [Seite 244].

236

April 2001

SAP AG

Desktop Office Integration (BC-CI) clear_hierarchy

clear_hierarchy
Mit dieser Methode lschen Sie alle im Arbeitsblatt gesetzten Hierarchieebenen. CALL METHOD spreadsheet->clear_hierarchy EXPORTING no_flush = no_flush IMPORTING error = error retcode = retcode.

April 2001

237

Desktop Office Integration (BC-CI) print

SAP AG

print
Der Druck des angegebenen Arbeitsblatts ber die Office-Applikation wird angestoen. Dabei sind allerdings keine Formatierungen wie Papierformat usw. einstellbar. Dies bleibt vollkommen der angesteuerten Tabellenkalkulation berlassen. CALL METHOD spreadsheet->print EXPORTING name = name no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung name Name des auszudruckenden Arbeitsblatts

238

April 2001

SAP AG

Desktop Office Integration (BC-CI) set_zoom

set_zoom
Die Methode set_zoom ndert den Zoomfaktor des aktuellen Arbeitsblatts. CALL METHOD EXPORTING zoom no_flush IMPORTING retcode = retcode. spreadsheet->set_zoom = zoom = no_flush = error

error

Parameterverwendung Parameter Optional Bedeutung zoom Zoomfaktor fr das aktuelle Arbeitsblatt. Die Werte werden als Prozentangaben interpretiert.

April 2001

239

Desktop Office Integration (BC-CI) fit_widest

SAP AG

fit_widest
Ausgehend von der grten Breite eines Zelleninhalts eines Bereichs wird die Zellenbreite angepat. CALL METHOD EXPORTING name no_flush IMPORTING retcode = retcode. spreadsheet->fit_widest = name = no_flush error = error

Parameterverwendung Parameter Optional Bedeutung name Name des Bereichs, der angepat werden soll

Sofern Sie keinen Bereichsnamen angeben, wird die Funktion auf das gesamte Arbeitsblatt angewendet. Wenn Sie die Eintrge mit der Methode set_ranges_data [Seite 226] mit fhrenden Leerzeichen durchgefhrt haben, kann das Ergebnis unbefriedigend ausfallen.

240

April 2001

SAP AG

Desktop Office Integration (BC-CI) screen_update

screen_update
Mit dieser Methode bestimmen Sie, ob die Tabellenkalkulationsanzeige nach jedem Schritt aktualisiert werden soll. Wenn Sie die Bildaktualisierung bei der Ausfhrung mehrerer Methodenaufrufe ausschalten, knnen Sie die Performance Ihrer Anwendung verbessern.

Einige Methoden verfgen ber einen eigenen Updating-Parameter, der ebenfalls die Anzeigeaktualisierung steuert. Dieser Parameter berschreibt die globale Einstellung, die Sie mit SCREEN_UPDATE vornehmen. CALL METHOD spreadsheet->screen_update EXPORTING updating = updating no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter Optional Bedeutung updating Kennzeichen, das angibt, ob die Bildanzeige aktualisiert werden soll. Mgliche Werte: ' ': Keine Aktualisierung 'X': Aktualisierung

April 2001

241

Desktop Office Integration (BC-CI) load_lib

SAP AG

load_lib
Mit dieser Methode laden Sie eine zustzliche DLL, die zur Performance-Verbesserung der folgenden Methoden der Tabellenkalkulation beitragen kann. set_ranges_format cell_format insert_ranges get_cell_formats get_dimension

Das Laden dieser DLL bedeutet eine nderung des Dokuments. Daher wird der Benutzer aufgefordert, das Dokument zu sichern, auch wenn das Dokument selbst nicht gendert wurde. CALL METHOD spreadsheet->load_lib EXPORTING no_flush = no_flush IMPORTING error = errorversi retcode = retcode.

242

April 2001

SAP AG

Desktop Office Integration (BC-CI) version

version
Diese Methode gibt die Version der Tabellenkalkulationsschnittstelle zurck. Sie knnen diese Methode in Ihrem Programm verwenden, um zu ermitteln, ob die aktuelle Version der Schnittstelle alle Methoden untersttzt, die Sie verwendet haben. CALL METHOD spreadsheet->version EXPORTING no_flush = no_flush IMPORTING version = version error = errorversi retcode = retcode. Parameterverwendung Parameter Optional Bedeutung version Ein Feld vom Typ C, das die Version der Tabellenkalkulationsschnittstelle enthlt.

April 2001

243

Desktop Office Integration (BC-CI) Wichtige Tabellenstrukturen

SAP AG

Wichtige Tabellenstrukturen
Beschreibung des Datentyps soi_range_list
Die Methoden zum Setzen und Holen der Daten aus einem benannten Bereich eines Arbeitsblatts verwenden die Trennung zwischen Beschreibung des Bereiches und den eigentlichen Daten. Dabei ist zu beachten, da die Reihenfolge in der Bereichsbeschreibung (Struktur soi_range_list) auch bei den Daten (Struktur soi_generic_table) eingehalten werden mu. Dies bedeutet, da in der Datentabelle zuerst alle Daten des ersten Bereichs gelistet werden mssen, bevor Daten des zweiten Bereichs eingefgt werden knnen. Struktur soi_range_list Feld name rows columns code Typ C C C C Bedeutung Name des Arbeitsbereichs Zeilenanzahl Spaltenanzahl Funktion auf den Bereich: SPREADSHEET->SPREADSHEET_CLEAR: Bereich lschen SPREADSHEET->SPREADSHEET_COLUMNSHIDE: Spalten ausblenden SPREADSHEET->SPREADSHEET_ROWSHIDE: Zeilen ausblenden SPREADSHEET->SPREADSHEET_PROTECT: Bereich ist geschtzt SPREADSHEET->SPREADSHEET_UNPROTECT: Bereich ist nicht geschtzt SPREADSHEET->SPREADSHEET_COLUMNSSHOW: Spalten werden angezeigt SPREADSHEET->SPREADSHEET_ROWSSHOW: Zeilen werden angezeigt SPREADSHEET->SPREADSHEET_INSERTALL: Die gesamte Tabelle wird ohne Rcksicht auf die Gre des Bereichs eingefgt SPREADSHEET->SPREADSHEET_NEWRANGE: Neuen Bereich anlegen

Der Name identifiziert den Bereich im Arbeitsblatt. Es ist sozusagen der Schlssel, ber den immer auf diesen Bereich zugegriffen wird. Die Gre des Bereiches wird jeweils nur in Spaltenund Zeilenanzahl angegeben. ber bestimmte Funktionen kann auf einen Bereich in einem Arbeitsblatt gesondert zugegriffen werden. Welche Funktionen implementiert sind, lt sich aus der Tabelle ersehen.

Beschreibung des Datentyps soi_generic_table


In dieser Tabelle werden die Daten der Bereiche gespeichert und ber den Data Provider [Extern] an das Frontend bertragen oder von dort geholt. Die Daten werden als Zeichenkette ohne Typinformation bertragen. Struktur soi_generic_table

244

April 2001

SAP AG

Desktop Office Integration (BC-CI) Wichtige Tabellenstrukturen

Feld row column value

Typ C(4) C(4) C(256)

Bedeutung Zeile Spalte Wert

Die Reihenfolge der Daten mu der Reihenfolge der Bereichsbeschreibung entsprechen, d.h. zuerst wird z.B. der Bereich range1, dann der Bereich range2 beschrieben. Die Datentabelle mu dann die Daten auch in der Reihenfolge range1, range2 enthalten.

Beschreibung des Datentyps soi_format_table


Mit Hilfe dieser Tabelle lt sich das Format eines Bereiches angeben. Das Format besteht aus verschiedenen Eigenschaften, die alle innerhalb einer Zeile gesetzt werden knnen. Dabei entspricht jede vernderbare Eigenschaft einer Spalte der Zeile. Einen Arbeitsbereich fr diese Tabelle legen Sie mit Bezug auf die Struktur soi_format_item an. Der Eintrag 1 deutet jeweils darauf hin, da der bestehende Wert des Bereiches nicht verndert werden soll. Struktur soi_format_table Feld name front back font Typ C(256) I I C(256) Bedeutung Name des Arbeitsbereichs Farbe der Schrift (siehe Farbpalette) Farbe des Hintergrunds (siehe Farbpalette) Name der Fontfamilie. Folgende Werte sind erlaubt: 'Arial' 'Courier New' 'Times New Roman' size I Schriftgre '-1': Keine Vernderung bold I '1': Bold '0': Normal '-1': Keine Vernderung italic I '1': Kursiv '0': Normal '-1': Keine Vernderung

April 2001

245

Desktop Office Integration (BC-CI) Wichtige Tabellenstrukturen align I Ausrichtung: frametype I '-1': Keine Vernderung '0': Rechtsbndig '1': Zentriert '2': Linksbndig

SAP AG

Steuerbyte zum Setzen des Rahmens '-1': Keine Vernderung

framecolor

Farbe des Rahmens (siehe Farbpalette) '-1': Keine Vernderung

currency number

C(3) I

Whrung gem ISO-Norm Legt das Format einer Zelle des Bereiches fest. 1 bezeichnet eine einfache Zahl 2 bezeichnet die wissenschaftliche Darstellung 3 bezeichnet die Prozentdarstellung

Die folgenden Farben sind zulssig:

Das Steuerbyte type setzt sich aus folgenden Bits zusammen. Ein gesetztes Bit bedeutet immer, da der entsprechende Strich gezogen wird. Die Liniendicke kann ber Bit 6 und 7 zwischen vier Dicken variiert werden: Bit 0 1 2 3 4 Bedeutung Linker Rand Oberer Rand Unterer Rand Rechter Rand Horizontaler Strich

246

April 2001

SAP AG

Desktop Office Integration (BC-CI) Wichtige Tabellenstrukturen

5 6 7

Linker Rand Liniendicke Liniendicke

Beschreibung des Datentyps soi_full_range_table


Jede Zeile einer Tabelle vom Typ soi_full_range_table gibt die volle Definition eines Bereichs an. Die einzelnen Zeilen haben den Datentyp soi_full_range_item. Struktur soi_full_range_table Feld name top left rows columns sheets Typ C(128) I I I I C(128) Bedeutung Name des Arbeitsbereichs Oberste Zeile des Bereichs uerste linke Spalte des Bereichs Anzahl der Zeilen im Bereich Anzahl der Spalten im Bereich Arbeitsblatt, auf dem der Bereich definiert ist

Beschreibung des Datentyps soi_cell_table


Jede Zeile einer Tabelle vom Typ soi_cell_table gibt die Attribute eines Bereichs von Zellen an. Es wird jedoch kein Bereichsname verwendet. Stattdessen wird der Zellenbereich auf der Grundlage seiner Startposition und der Anzahl seiner Zeilen und Spalten definiert. Die einzelnen Zeilen haben den Datentyp soi_cell_item. Struktur soi_cell_table Feld top left rows columns front back font Typ I I I I I I C(256) Bedeutung Oberste Zeile des Bereichs uerste linke Spalte des Bereichs Anzahl der Zeilen im Bereich Anzahl der Spalten im Bereich Farbe der Schrift (siehe Farbpalette) Farbe des Hintergrunds (siehe Farbpalette) Schriftart. Folgende Werte sind erlaubt: size I Arial Courier New Times Roman

Schriftgre Verwenden Sie -1, wenn die Schriftgre unverndert bleiben soll.

April 2001

247

Desktop Office Integration (BC-CI) Wichtige Tabellenstrukturen bold I italic I '1': Bold '0': Normal '-1': Keine Vernderung

SAP AG

'1': Kursiv '0': Normal '-1': Keine Vernderung

align

Ausrichtung: '-1': Keine Vernderung '0': Rechtsbndig '1': Zentriert '2': Linksbndig

frametype

Steuerbyte zum Setzen des Rahmens '-1': Keine Vernderung

framecolor

Farbe des Rahmens (siehe Farbpalette) '-1': Keine Vernderung

currency number

C(3) I

Whrung gem ISO-Norm Legt das Format einer Zelle des Bereiches fest. 1 bezeichnet eine einfache Zahl 2 bezeichnet die wissenschaftliche Darstellung 3 bezeichnet die Prozentdarstellung

decimals input

I I

Anzahl der Dezimalstellen '0': Input aus '1': Input an

Die folgenden Farben sind zulssig:

248

April 2001

SAP AG

Desktop Office Integration (BC-CI) Wichtige Tabellenstrukturen

Beschreibung des Datentyps soi_dimension_table


Mit einer internen Tabelle dieses Typs knnen Sie einen Bereich definieren, indem Sie die Koordinaten der oberen linken Ecke, seine Lnge und seine Bereite angeben. Die Zeilen von soi_dimension_table haben den Zeilentyp soi_dimension_item. Struktur soi_dimension_item Feld top left rows columns Typ I I I I Bedeutung Oberste Zeile des Bereichs uerste linke Spalte des Bereichs Zeilenanzahl Spaltenanzahl

April 2001

249

Desktop Office Integration (BC-CI) Die Pivot-Schnittstelle

SAP AG

Die Pivot-Schnittstelle
Definition
Diese Instanz wird mit Referenz auf das Interface i_oi_pivot definiert.

Verwendung
Die Pivot-Schnittstelle ermglicht es Ihnen, den Inhalt einer internen Tabelle direkt in eine PivotTabelle eines Tabellenkalkulationsprogramms einzufgen. Sie enthlt auerdem Methoden, mit denen Sie die Formatierung der Pivot-Tabelle von Ihrer R/3-Anwendung aus ndern knnen.

Integration
Die Schnittstelle untersttzt gegenwrtig Microsoft Excel 97 und 2000. Sie ist nicht mit Lotus 1-23 kompatibel.

250

April 2001

SAP AG

Desktop Office Integration (BC-CI) Arbeiten mit der Pivot-Schnittstelle

Arbeiten mit der Pivot-Schnittstelle


Einsatzmglichkeiten
Sie benutzen eine Instanz der Pivot-Schnittstelle zur direkten Kommunikation mit einer PivotTabelle in Microsoft Excel.

Voraussetzungen
Bevor Sie die Pivot-Schnittstelle benutzen knnen, mssen Sie die zentrale Instanz fr die Dokumentenverwaltung document anlegen. Microsoft Excel 97 oder 2000 mu auf dem Frontend installiert sein. Wenn Sie ermitteln mchten, ob der Dokumententyp der Instanz document die Pivot-Schnittstelle untersttzt, benutzen Sie die Methode has_pivot_interface [Seite 104].

Ablauf
1. Deklarieren Sie im Datendeklarationsteil Ihres Programms ein Datenobjekt mit Bezug auf die Schnittstelle i_oi_pivot: DATA pivot TYPE REF TO i_oi_pivot. 2. Erzeugen Sie die Instanz fr die Pivot-Schnittstelle mit der Methode get_pivot_interface [Seite 105] auf der Instanz fr die Dokumentenverwaltung. 3. Verwenden Sie die Instanz aus Schritt 2 und die folgenden Methoden zur Arbeit mit der Pivot-Tablle: Methoden der Pivot-Schnittstelle i_oi_pivot Methode set_source_table set_fieldtype get_allfields get_allpivottables drill_down drill_up Funktion Fgt den Inhalt einer internen R/3-Tabelle in eine Pivot-Tabelle ein Weist den Typ eines existierenden Feldes in der Pivot-Tabelle neu zu Gibt eine Liste von Feldern in einer angegebenen Pivot-Tabelle zurck Gibt eine Liste der Namen aller Pivot-Tabellen in einer Arbeitsmappe zurck Expandiert die Datenanzeige fr einen bestimmten Wert, um weitere Details anzuzeigen Komprimiert die Datenanzeige fr einen bestimmten Wert, um eine verdichtete Anzeige zu erreichen

Denken Sie daran, da Sie nach jedem Methodenaufruf eine Fehlerbehandlung [Seite 21] implementieren sollten.

April 2001

251

Desktop Office Integration (BC-CI) Arbeiten mit der Pivot-Schnittstelle

SAP AG

Die Bedeutung der nicht aufgefhrten Parameter finden Sie in Generische Parameter [Seite 253].

252

April 2001

SAP AG

Desktop Office Integration (BC-CI) Generische Parameter

Generische Parameter
In der folgenden Tabelle werden Parameter aufgefhrt, die in sehr vielen Methoden der Desktop Office Integration verwendet werden. Parameterverwendung Parameter Optional Bedeutung no_flush X 'X': Synchronisation der Automation Queue ' ': Vor dem Verlassen dieser Methode wird die Automation Queue [Extern] synchronisiert retcode error Fehlerbehandlung [Seite 21] Fehlerbehandlung [Seite 21]

Wenn Sie die Methode mit dem Parameter no_flush = 'X' ausfhren, werden die Methodenaufrufe nicht direkt vom Applikationsrechner zum Prsentationsrechner weitergereicht und daher auch nicht sofort ausgefhrt. Erst beim nchsten Methodenaufruf mit Parameter no_flush= ' ' bzw. nach Aufruf der Methode cl_gui_cfw=>flush [Extern] werden die zwischengespeicherten Daten auf einmal zum Prsentationsrechner geschickt. Diese Technik fhrt bei korrekter Verwendung zu einer Performance-Verbesserung. Bei falscher Anwendung knnen aber Inkonsistenzen der Daten auftreten. (Siehe auch Automation Queue [Extern]).

April 2001

253

Desktop Office Integration (BC-CI) set_source_table

SAP AG

set_source_table
Mit dieser Methode erstellen Sie eine neue Pivot-Tabelle in der aktuellen Arbeitsmappe ausgehend vom Inhalt einer internen Tabelle. Das System erstellt die Pivot-Tabelle in einem neuen Arbeitsblatt. Die Methode erlaubt es Ihnen, die Felder der internen Tabelle auszuwhlen, die in die PivotTabelle aufgenommen werden sollen. Auerdem mssen Sie festlegen, ob es sich um Zeilenfelder, Spaltenfelder oder Datenfelder handeln soll. CALL METHOD pivot->set_source_table EXPORTING ddic_name = ddic_name data_table = data_table fields_table = fields_table name = name items = items itemsnr = itemsnr length = length IMPORTING error = error retcode = retcode. Parameterverwendung Parameter ddic_name Optional X Bedeutung Name einer Tabelle oder Struktur im ABAP Dictionary mit derselben Struktur wie die interne Tabelle, die Sie in die Arbeitsmappe einfgen mchten. Hinweis: Wenn Ihre interne Tabelle nicht die Struktur einer ABAPDictionary-Tabelle hat, mssen Sie stattdessen den Parameter fields_table verwenden. data_table fields_table X Name der internen Tabelle in Ihrem ABAP-Programm, die die Daten enthlt, die Sie in der Pivot-Tabelle anzeigen mchten. Sie verwenden diesen Parameter, wenn Sie den Parameter ddic_name nicht zur Beschreibung der Struktur der Datentabelle benutzen knnen. Es handelt sich um eine interne Tabelle des Typs SOI_FIELDS_TABLE, die Sie mit den Namen der Felder in der Datentabelle fllen mssen. Name, der fr die Pivot-Tabelle vergeben werden soll

name

254

April 2001

SAP AG

Desktop Office Integration (BC-CI) set_source_table

items

Wenn Sie Ihre Datentabelle mit dem Parameter fields_table beschrieben haben, dann knnen Sie mit diesem Parameter die Felder der Tabelle angeben, die in der Pivot-Tabelle erscheinen sollen. Auerdem knnen Sie mit diesem Parameter festlegen, ob es sich um Zeilen-, Spalten- oder Datenfelder handeln soll. Es handelt sich um eine interne Tabelle vom Typ SOI_NAMETYPE_TABLE. Die Tabelle hat zwei Felder: name, mit dem Namen des Felds, und type, mit der Typbeschreibung des Felds. Das Feld type kann folgende Werte annehmen: i_oi_pivot=>rowfield: Jeder Wert des Feldes ist eine Zeile in der Pivot-Tabelle. i_oi_pivot=>columnfield: Jeder Wert des Feldes ist eine Spalte in der Pivot-Tabelle. i_oi_pivot_datafield: Die Werte des Feldes erscheinen im Tabellenkrper selbst. Hinweis: Wenn Sie die Felder anhand ihrer Indexnummer und nicht anhand ihres Namens angeben mchten, verwenden Sie stattdessen den Parameter itemsnr.

itemsnr

Geben Sie mit diesem Parameter die Felder der Tabelle an, die in der Pivot-Tabelle erscheinen sollen, und legen Sie fest, ob es sich um Zeilen-, Spalten- oder Datenfelder handeln soll. Es handelt sich um eine interne Tabelle vom Typ SOI_COLTYPE_TABLE. Die Tabelle hat zwei Felder: col, mit der Indexnummer des Felds aus der internen Tabelle, und type, mit der Typbeschreibung des Felds. Das Feld type kann folgende Werte annehmen: i_oi_pivot=>rowfield: Jeder Wert des Feldes ist eine Zeile in der Pivot-Tabelle. i_oi_pivot=>columnfield: Jeder Wert des Feldes ist eine Spalte in der Pivot-Tabelle. i_oi_pivot_datafield: Die Werte des Feldes erscheinen im Tabellenkrper selbst. Hinweis: Wenn Sie den Parameter ddic_name verwendet haben, mssen Sie diesen Parameter benutzen, um festzulegen, wie die Felder der Datentabelle in der Pivot-Tabelle angeordnet werden sollen. Wenn Sie den Parameter fields_name benutzt haben, knnen Sie den Parameter items verwenden. Dieser Parameter ermglicht es Ihnen, die Felder anhand ihres Namens und nicht anhand ihrer Indexnummer anzugeben.

April 2001

255

Desktop Office Integration (BC-CI) set_source_table length X

SAP AG

Wenn Sie den Parameter ddic_name zur Angabe der Struktur Ihrer Datentabelle verwendet haben, dann knnen Sie mit diesem Parameter die Lnge der Feldbezeichnungen festlegen, die in der Pivot-Tabelle benutzt werden sollen. Die Feldbezeichnungen werden aus den Definitionen der zugrundeliegenden Datenelemente im ABAP Dictionary gezogen. Mgliche Werte: 'S': Kurze Feldbezeichnungen 'M': Mittlere Feldbezeichnungen 'L': Lange Feldbezeichnungen

Hinweis: Wenn Sie keinen oder einen ungltigen Wert angeben, kann die Pivot-Tabelle nicht korrekt angezeigt werden. Sie knnen diesen Parameter nicht verwenden, wenn Sie den Parameter fields_table zur Beschreibung der Struktur der Datentabelle benutzt haben.

256

April 2001

SAP AG

Desktop Office Integration (BC-CI) set_fieldtype

set_fieldtype
Mit dieser Methode setzen oder ndern Sie den Feldtyp eines Felds in der Pivot-Tabelle. Sie knnen beispielsweise den Typ eines Felds (Zeilen-, Spalten- oder Datenfeld) oder den Summierungstyp eines Felds (Summenfeld, Maximum, Minimum, Anzahl oder Durchschnitt) ndern.

Sie knnen diese Methode nur auf Felder anwenden, die sich bereits in der PivotTabelle befinden. Mit der Methode set_source_table [Seite 254] fgen Sie Felder zur Tabelle hinzu bzw. entfernen Sie Felder aus der Tabelle. CALL METHOD pivot->set_fieldtype EXPORTING name = type = pivot = consolidation = no_flush = IMPORTING error = retcode = Parameterverwendung Parameter name type Optional Bedeutung Name des Feldes in der Pivot-Tabelle Neuer Feldtyp. Mgliche Werte: pivot consolidation i_oi_pivot=>rowfield: Jeder Wert des Feldes ist eine Zeile der Pivot-Tabelle. i_oi_pivot=>columnfield: Jeder Wert des Feldes ist eine Spalte der Pivot-Tabelle. i_oi_pivot=>datafield: Das Feld ist Teil des Tabellenkrpers. name type pivot consolidation no_flush error retcode.

Name der Pivot-Tabelle in der Arbeitsmappe Summierungstyp des Felds. Mgliche Werte: ADD: Summe CNT: Anzahl MIN: Minimum MAX: Maximum AVG: Durchschnitt NOP: Keine spezielle Summierungsoption

April 2001

257

Desktop Office Integration (BC-CI) get_allfields

SAP AG

get_allfields
Mit dieser Methode geben Sie eine Liste der Felder in der Pivot-Tabelle zurck. CALL METHOD pivot->get_allfields EXPORTING pivottable = pivottable no_flush = no_flush IMPORTING allfields = allfields error = error retcode = retcode. Parameterverwendung Parameter pivottable allfields Optional Bedeutung Name der Pivot-Tabelle, fr die Sie die Feldnamen ermitteln mchten Interne Tabelle (vom Typ SOI_NAMETYPE_TABLE) mit den Namen der Felder in der Pivot-Tabelle

258

April 2001

SAP AG

Desktop Office Integration (BC-CI) get_allpivottables

get_allpivottables
Mit dieser Methode geben Sie eine Liste aller Pivot-Tabellen in der aktuellen Arbeitsmappe zurck. CALL METHOD pivot->get_allpivottables EXPORTING no_flush = no_flush IMPORTING allpivottables = allpivottables error = error retcode = retcode. Parameterverwendung Parameter allpivottables Optional Bedeutung Interne Tabelle vom Typ SOI_FIELDS_NAME_TABLE mit den Namen der Pivot-Tabellen in der Arbeitsmappe. Die Namen sind in der Reihenfolge der Tabellen angeordnet.

April 2001

259

Desktop Office Integration (BC-CI) drill_down

SAP AG

drill_down
Mit dieser Methode expandieren Sie eine verdichtete Zeile der Pivot-Tabelle, so da die darunterliegenden Zeilen sichtbar werden. CALL METHOD pivot->drill_down EXPORTING row = row value = value pivottable = pivottable no_flush = no_flush IMPORTING error = error retcode = retcode. Parameterverwendung Parameter row Optional Bedeutung Name des Feldes in der Pivot-Tabelle, nach dem die Daten gruppiert sind. Hinweis: Der Name entspricht der Feldbezeichnung im Kopf der Pivot-Tabelle, nicht dem Feldnamen aus dem ABAP Dictionary. Wert des in row angegebenen Feldes, fr das Sie die Eintrge in der Pivot-Tabelle expandieren mchten Name der Pivot-Tabelle in der Arbeitsmappe

value pivottable

260

April 2001

SAP AG

Desktop Office Integration (BC-CI) drill_up

drill_up
Mit dieser Methode komprimieren Sie eine Gruppe von Zeilen in der Pivot-Tabelle, so da nur die verdichtete Zeile sichtbar wird. CALL METHOD pivot->drill_up EXPORTING row value pivottable no_flush IMPORTING error retcode Parameterverwendung Parameter row Optional Bedeutung Name des Feldes in der Pivot-Tabelle, nach dem die Daten gruppiert sind. Hinweis: Der Name entspricht der Feldbezeichnung im Kopf der Pivot-Tabelle, nicht dem Feldnamen aus dem ABAP Dictionary. Wert des in row angegebenen Feldes, fr das Sie die Eintrge in der Pivot-Tabelle komprimieren mchten Name der Pivot-Tabelle in der Arbeitsmappe = = = = row value pivottable no_flush = error = retcode.

value pivottable

April 2001

261

Desktop Office Integration (BC-CI) Wichtige Tabellenstrukturen

SAP AG

Wichtige Tabellenstrukturen
Die Pivot-Schnittstelle verwendet die folgenden Datentypen, die in der Typgruppe SOI (Entwicklungsklasse SOFFICEINTEGRATION) definiert sind:

Datentyp SOI_NAMETYPE_ITEM
Feld name type Typ C(256) I Bedeutung Name eines Feldes in der Datentabelle Typ, den das Feld in der Pivot-Tabelle haben soll. Folgende Werte sind mglich: i_oi_pivot=>rowfield: Jeder Wert des Feldes ist eine neue Zeile der PivotTabelle. i_oi_pivot=>columnfield: Jeder Wert des Feldes ist eine neue Spalte der Pivot-Tabelle. i_oi_pivot=>datafield: Die Werte des Feldes erscheinen im Tabellenkrper selbst.

Fr diesen Datentyp gibt es auch einen entsprechenden internen Tabellentyp mit Namen SOI_NAMETYPE_TABLE.

Datentyp SOI_COLTYPE_ITEM
Feld col type Typ I I Bedeutung Position eines Feldes in der Datentabelle Typ, den das Feld in der Pivot-Tabelle haben soll. Folgende Werte sind mglich: i_oi_pivot=>rowfield: Jeder Wert des Feldes ist eine neue Zeile der PivotTabelle. i_oi_pivot=>columnfield: Jeder Wert des Feldes ist eine neue Spalte der Pivot-Tabelle. i_oi_pivot=>datafield: Die Werte des Feldes erscheinen im Tabellenkrper selbst.

Fr diesen Datentyp gibt es auch einen entsprechenden internen Tabellentyp mit Namen SOI_COLTYPE_TABLE.

262

April 2001

SAP AG

Desktop Office Integration (BC-CI) Testwerkzeuge fr die Desktop Office Integration

Testwerkzeuge fr die Desktop Office Integration


Einsatzmglichkeiten
Die Testwerkzeuge fr die Desktop Office Integration sind als Diagnosetools zur Lokalisierung von Fehlern bei der Installation und Registrierung der Desktop-Komponenten konzipiert, die fr die SAP Desktop Office Integration bentigt werden. Sollten Sie Problemmeldungen fr Ihre Office-Integration-Anwendungen erfassen mssen, dann helfen die Testergebnisse den SAPMitarbeitern bei der Ermittlung der Fehlerursache.

Einfhrungshinweise
Die fr die Tests notwendigen Dateien werden bei der Installation des SAP GUI Version 4.6 C automatisch auf Ihrem Frontend-Rechner mitinstalliert.

Integration
Die Testwerkzeuge untersuchen nur die auf dem Frontend installierten Komponenten der Desktop Office Integration. Sie knnen die Tests daher laufen lassen, ohne sich an einem R/3System anzumelden.

Funktionsumfang
Es gibt insgesamt vier Werkzeuge, die alle im Verzeichnis TestTools der SAP-GUI-Installation installiert werden. Die Werkzeuge bieten folgende Funktionen: Werkzeug check_doi.exe [Seite 265] doi_word_check.doc [Seite 266] doi_xls_check.xls [Seite 267] TableFactoryTest.doc [Seite 268] Funktion Prft Pfade, Installation und Schlssel der Registrierung fr DesktopOffice-Anwendungen und OCX-Dateien der SAP Desktop Office Integration. Luft als eigenstndiges Programm. Prft Pfade, Installation und Schlssel der Registrierung fr DesktopOffice-Anwendungen und OCX-Dateien der SAP Desktop Office Integration. Luft als Makro in einem Word-Dokument. Prft Pfade, Installation und Schlssel der Registrierung fr DesktopOffice-Anwendungen und OCX-Dateien der SAP Desktop Office Integration. Luft als Makro in einer Excel-Arbeitsmappe. Prft die Installation des SAP TableFactory OCX

Bei den ersten drei der genannten Werkzeuge wird eine Ergebnisliste erstellt, die Sie speichern und dem SAP-Support zur Verfgung stellen knnen, wenn Probleme mit Ihren Desktop-OfficeIntegration-Anwendungen auftreten.

Die erstellten Listen enthalten zahlreiche technische Informationen. Sie mssen diese Informationen nicht selbst auswerten, sondern lediglich bei Bedarf an die Support-Mitarbeiter weiterleiten.

April 2001

263

Desktop Office Integration (BC-CI) Testwerkzeuge fr die Desktop Office Integration

SAP AG

264

April 2001

SAP AG

Desktop Office Integration (BC-CI) DOI-Installationstest mit ausfhrbarem Programm

DOI-Installationstest mit ausfhrbarem Programm


Verwendung
Dieses Programm prft die Pfade, die Installation und die Schlssel der Registrierung fr die Desktop-Office-Anwendungen und OCX-Dateien, die in der SAP Desktop Office Integration verwendet werden. Die Testergebnisse sind eine ntzliche Hilfe fr den SAP-Support, wenn Probleme bei der Desktop Office Integration auftreten sollten.

Voraussetzungen
Sie verwenden das SAP GUI ab Version 4.6C.

Aktivitten
Das Programm check_doi.exe wird unter ...\TestTools\vbprojects in dem Verzeichnis auf Ihrem PC installiert, in dem auch das SAP GUI installiert wird. 1. Starten Sie das Programm von diesem Verzeichnis aus. 2. Whlen Sie im Programmfenster die Microsoft-Office-Version aus, die Sie verwenden, und whlen Sie dann Go. 3. Das Programm erstellt die Ergebnisliste. Wenn die Liste erstellt wurde, whlen Sie Save output as. Sie gelangen auf ein Dialogfenster. 4. Geben Sie dort einen Dateinamen ein, unter dem Sie die Ergebnisliste speichern mchten, und whlen Sie Save. Diese Datei knnen Sie dann bei Bedarf an SAP schicken.

April 2001

265

Desktop Office Integration (BC-CI) DOI-Installationstest in Word

SAP AG

DOI-Installationstest in Word
Verwendung
Das Makro im Word-Dokument doi_word_check.doc prft die Pfade, die Installation und die Schlssel der Registrierung fr die Desktop-Office-Anwendungen und OCX-Dateien, die in der SAP Desktop Office Integration verwendet werden. Die Testergebnisse sind eine ntzliche Hilfe fr den SAP-Support, wenn Probleme bei der Desktop Office Integration auftreten sollten.

Voraussetzungen
Sie verwenden das SAP GUI ab Version 4.6C sowie Microsoft Office 97 oder Office 2000.

Aktivitten
Das Dokument doi_word_check.doc wird unter ...\TestTools\macros in dem Verzeichnis auf Ihrem PC abgelegt, in dem auch das SAP GUI installiert wird. 1. ffnen Sie das Dokument von diesem Verzeichnis aus. 2. Whlen Sie Extras Makro Makros. 3. Markieren Sie CheckSettings, und whlen Sie anschlieend Ausfhren. Das System prft die Office-Integration-Umgebung und erstellt die Ergebnisliste. 4. Whlen Sie Sichern, geben Sie einen Namen ein, und whlen Sie noch einmal Sichern, um die Liste zu sichern. Diese Datei knnen Sie dann bei Bedarf an SAP schicken.

266

April 2001

SAP AG

Desktop Office Integration (BC-CI) DOI-Installationstest in Excel

DOI-Installationstest in Excel
Verwendung
Das Makro in der Excel-Arbeitsmappe doi_xls_check.xls prft die Pfade, die Installation und die Schlssel der Registrierung fr die Desktop-Office-Anwendungen und OCX-Dateien, die in der SAP Desktop Office Integration verwendet werden. Die Testergebnisse sind eine ntzliche Hilfe fr den SAP-Support, wenn Probleme bei der Desktop Office Integration auftreten sollten.

Voraussetzungen
Sie verwenden das SAP GUI ab Version 4.6C sowie Microsoft Office 97 oder Office 2000.

Aktivitten
Die Arbeitsmappe doi_xls_check.xls wird unter ...\TestTools\macros in dem Verzeichnis auf Ihrem PC abgelegt, in dem auch das SAP GUI installiert wird. 1. ffnen Sie die Arbeitsmappe von diesem Verzeichnis aus. 2. Whlen Sie Extras Makro Makros. 3. Markieren Sie CheckSettings, und whlen Sie anschlieend Ausfhren. Das System prft die Office-Integration-Umgebung und erstellt die Ergebnisliste. 4. Whlen Sie Sichern, geben Sie einen Namen ein, und whlen Sie noch einmal Sichern, um die Liste zu sichern. Diese Datei knnen Sie dann bei Bedarf an SAP schicken.

April 2001

267

Desktop Office Integration (BC-CI) Test fr das TableFactory OCX

SAP AG

Test fr das TableFactory OCX


Verwendung
Das TableFactory OCX ist eine SAP-Frontend-Komponente, die von der Desktop Office Integration sehr hufig benutzt wird. Mit dem Word-Dokument TableFactoryTest.doc knnen Sie prfen, ob das OCX korrekt auf Ihrem PC luft.

Voraussetzungen
Sie verwenden das SAP GUI ab Version 4.6C sowie Microsoft Office 97 oder Office 2000.

Funktionsumfang
Das Word-Dokument TableFactoryTest.doc wird unter ...\TestTools\macros in dem Verzeichnis auf Ihrem PC abgelegt, in dem auch das SAP GUI installiert wird. Es enthlt zwei Makros: Test: Dieses Makro testet das SAP TableFactory OCX. Clear: Dieses Makro entfernt die Testergebnisse aus dem Dokument.

Aktivitten
ffnen Sie das Dokument, und whlen Sie Extras Makro Makros. Markieren Sie Test, und whlen Sie anschlieend Ausfhren. Das System testet das TableFactory OCX, indem Text in die erste Tabelle im Dokument eingefgt wird. Dieser Text sollte genau mit dem Text in der zweiten Tabelle identisch sein. Mit dem Makro Clear knnen Sie den Text aus der ersten Tabelle wieder entfernen.

268

April 2001

SAP AG

Desktop Office Integration (BC-CI) Der Document Viewer

Der Document Viewer


Einsatzmglichkeiten
Der Document Viewer ist eine neue Funktion innerhalb der Office Integration, die ab Release 4.6C zur Verfgung steht. Mit dem Document Viewer knnen Sie Dokumente entweder in einem Browser innerhalb des R/3-Fensters oder in einem eigenen Browser-Fenster anzeigen.

Einfhrungshinweise
Den Document Viewer knnen Sie immer dann nutzen, wenn Sie es dem Anwender ermglichen mchten, Dokumente zwar anzuzeigen, aber nicht zu ndern. Im Gegensatz zu herkmmlichen Office-Integration-Technologien wird der Document Viewer vom SAP GUI for HTML untersttzt.

Integration
Sie verwenden das SAP GUI ab Version 4.6C. Der Document Viewer ist sowohl mit dem SAP GUI for Windows (Windows 95/98/NT) als auch mit dem SAP GUI for HTML kompatibel. Folgende Komponenten mssen ebenfalls auf Ihrem PC installiert sein: Microsoft Internet Explorer, Version 4 oder hher Die fr den jeweiligen Dokumententyp, den Sie anzeigen mchten, erforderliche DesktopAnwendung (z.B. Word fr DOC-Dateien)

Sie knnen den SAP Business Document Service zur Ablage von Dokumenten nutzen. Die URLAdressen oder internen Tabellen, die vom BDS zurckgegeben werden, knnen direkt in den Methoden der Document-Viewer-Schnittstelle benutzt werden.

Funktionsumfang
Mit dem Document Viewer knnen Sie Dokumente entweder in einem Browser innerhalb des SAP GUI (fr Windows oder HTML) oder in einem eigenen Browser-Fenster anzeigen. Im Gegensatz zu herkmmlichen Office-Integration-Technologien ist der Document Viewer mit dem SAP GUI for HTML kompatibel. Die ABAP-Programmierschnittstelle fr den Document Viewer steht ber die globale Schnittstelle i_oi_document_viewer zur Verfgung. Der Document Viewer untersttzt HTML sowie zustzlich die folgenden Dokumententypen: Dokumententyp Microsoft-Word-Dokument Microsoft-Excel-Arbeitsmappe Microsoft-PowerPoint-Prsentation Rich Text Format Erweiterung .DOC .XLS .PPT .RTF ProgID in der Registrierung Word.Document Excel.Sheet PowerPoint.Show Anwendung, der Sie Dateien dieses Typs im Windows-Dialogfenster ffnen mit zugeordnet haben

April 2001

269

Desktop Office Integration (BC-CI) Der Document Viewer Portable Document Format .PDF

SAP AG

Anwendung, der Sie Dateien dieses Typs im Windows-Dialogfenster ffnen mit zugeordnet haben Quicktime.Mov Lotus123.Workbook Wordpro.Document Visio.Drawing

Quicktime Movie Lotus-123-Arbeitsmappe Lotus-Word-Pro-Dokument Visio-Grafik

.MOV 123 LWP VSD

Diese Dokumententypen werden definitiv untersttzt. Je nach Funktionsumfang des verwendeten Web-Browsers kann es mglich sein, noch weitere Typen anzuzeigen. Der Document Viewer baut auf den Plug-In-Mechanismen des benutzten Web-Browsers auf. Dieser ermittelt das Format des Dokuments und die zum Starten des Dokuments bentigte Anwendung, um das Dokument anzuzeigen. Dazu benutzt der Browser die folgenden Informationen aus der Windows-Registrierung: HKEY_CLASSES_ROOT\.*** HKEY_CLASSES_ROOT\<ProgID>\shell\open\command HKEY_CLASSES_ROOT\MIME\database\content type Inhaltstyp und ProgID Pfad der Anwendung Erweiterung

Diese Eintrge knnen auf die folgenden beiden Arten erzeugt werden: Bei der Installation einer Anwendung. Wenn Sie z.B. Word installieren, wird der Dateityp .DOC darauf registriert. Beim ersten ffnen einer Datei mit einer nicht registrierten Erweiterung. In diesem Fall gelangen Sie auf das Dialogfenster ffnen mit, auf dem Sie der Erweiterung eine Anwendung zuordnen mssen.

Einschrnkungen
Es ist gegenwrtig nicht mglich, Dokumente im Document Viewer zu bearbeiten oder zu sichern.

Beispiel
Das SAP-System enthlt ein Beispielsprogramm mit dem Namen SAPRDEMOVIEWING.

270

April 2001

SAP AG

Desktop Office Integration (BC-CI) Verwendung des Document Viewer

Verwendung des Document Viewer


Einsatzmglichkeiten
Den Document Viewer knnen Sie nutzen, wenn Sie es dem Anwender ermglichen mchten, Dokumente zwar anzuzeigen, aber nicht zu ndern. Im SAP GUI for HTML ist der Document Viewer die einzige verfgbare Variante der SAP Desktop Office Integration.

Voraussetzungen
Um den Document Viewer benutzen zu knnen, mssen Sie mit ABAP Objects [Extern] und dem Konzept der SAP Container Controls [Extern] vertraut sein.

Ablauf
Einen Auszug aus dem erforderlichen ABAP-Sourcecode finden Sie unter Sourcecode-Beispiel [Seite 272]. 1. Sie deklarieren Referenzvariablen fr einen SAP Container (der den Document Viewer aufnimmt) und die Document-Viewer-Instanz selbst. 2. Sie instanzieren das SAP Container Control auf normalem Weg und holen sich eine Referenz auf den Document Viewer mit der Methode C_OI_CONTAINER_CONTROL_CONTAINER=>GET_DOCUMENT_VIEWER. Diese Methode gibt eine Referenz auf eine Instanz des Document Viewer zurck. Ab jetzt arbeiten Sie mit den Methoden dieser Instanz. 3. Sie starten die Viewer-Instanz mit der Instanzmethode INIT_VIEWER [Seite 275]. 4. Sie laden das Dokument in den Document Viewer mit VIEW_DOCUMENT_FROM_URL [Seite 276] oder VIEW_DOCUMENT_FROM_TABLE [Seite 277]. 5. Sie schlieen das Dokument mit der Methode CLOSE_DOCUMENT [Seite 279]. 6. Wenn Sie die Document-Viewer-Instanz nicht mehr brauchen, bauen Sie sie mit der Methode DESTROY_VIEWER [Seite 280] ab.

April 2001

271

Desktop Office Integration (BC-CI) Sourcecode-Beispiel

SAP AG

Sourcecode-Beispiel
Der hier angegebene Sourcecode-Auszug enthlt nur die Schritte, die in Verwendung des Document Viewer [Seite 271] angegeben sind. Nicht bercksichtigt sind Schritte wie z.B. das Holen von Dokumenten vom BDS. Es wird vorausgesetzt, da Sie ein Dokument in einem SAP Custom Container auf Bild 100 eines Programms anzeigen. Sie mssen den Custom-ContainerBereich im Screen Painter erstellen. Wir haben den Container 'CONTAINER100' genannt.

Einzelheiten zu den Methoden finden Sie in der jeweiligen Methodendokumentation. Informationen zur Verwendung von SAP Container Controls finden Sie unter SAP Container [Extern].

Datendeklarationen
Sie mssen die folgenden Datenobjekte in Ihrem Programm deklarieren: DATA: custom_container TYPE REF TO cl_gui_custom_container, document_viewer TYPE REF TO i_oi_document_viewer.

Instanzierung des Containers und des Document Viewer


Die Instanzierung erfolgt am besten in einem PBO-Modul. Sie darf nur einmal erfolgen. Sie knnen dies sicherstellen, indem Sie prfen, ob eines der Controls (z.B. custom_container) noch initial ist, und nur in diesem Fall die folgenden Anweisungen ausfhren. IF custom_container IS INITIAL. CREATE OBJECT custom_container EXPORTING container_name = 'CONTAINER100'.

272

April 2001

SAP AG

Desktop Office Integration (BC-CI) Sourcecode-Beispiel

CALL METHOD C_OI_CONTAINER_CONTROL_CREATOR=>GET_DOCUMENT_VIEWER IMPORTING viewer = document_viewer. CALL METHOD document_viewer->init_viewer EXPORTING parent = custom_container. ENDIF.

Laden des Dokuments


Sie knnen diesen Schritt entweder im PBO-Modul oder im PAI-Ereignis als Reaktion auf eine Benutzeraktion ausfhren. CALL METHOD document_viewer->view_document_from_url EXPORTING document_url = <url of the document> show_inplace = 'X'.

Abbau des Controls


CALL METHOD document_viewer->destroy_viewer. CALL METHOD custom_container->free. FREE: document_viewer, custom_container.

April 2001

273

Desktop Office Integration (BC-CI) Methoden des Document Viewer

SAP AG

Methoden des Document Viewer


Wenn Sie den Document Viewer instanziert haben, knnen Sie mit ihm durch Aufruf von Methoden arbeiten. Methode init_viewer destroy_viewer view_document_from_url Funktion Initialisiert die Document-Viewer-Instanz Baut die Document-Viewer-Instanz ab Zeigt ein Dokument an, das von einer bestimmten URL-Adresse referenziert wird (entweder ein physischer Standort, wie HTTP://..., FTP://..., FILE://..., oder eine generierte SAPR3://Adresse aus dem BDS) Zeigt ein Dokument an, das in einer internen Tabelle gespeichert ist Schliet das letzte Dokument, das geffnet wurde

view_document_from_table close_document

274

April 2001

SAP AG

Desktop Office Integration (BC-CI) init_viewer

init_viewer
Mit dieser Methode initialisieren Sie die Document-Viewer-Instanz und verknpfen sie mit dem entsprechenden SAP Container. Beachten Sie, da mit dieser Methode kein Dokument geffnet wird. Sie mssen dazu die Methode view_document_from_url [Seite 276] oder view_document_from_table [Seite 277] aufrufen. CALL METHOD document_viewer->init_viewer EXPORTING parent = EXCEPTIONS cntl_error = cntl_install_error = dp_install_error = dp_error = Parameter und Typ parent TYPE REF TO CL_GUI_CONTAINE R Optional Bedeutung Referenzvariable, die auf die SAP-Container-Instanz zeigt, in der der Document Viewer erscheinen soll parent 1 2 3 4

April 2001

275

Desktop Office Integration (BC-CI) view_document_from_url

SAP AG

view_document_from_url
Mit dieser Methode zeigen Sie ein Dokument im Document Viewer an. Sie identifizieren das Dokument anhand seiner URL (Uniform Resource Locator). Diese URL-Adresse kann (vom BDS) erzeugt werden oder eine der folgenden Formen haben: HTTP://, FTP:// oder FILE://. Sie mssen den Document Viewer bereits initialisiert haben (Methode init_viewer [Seite 275]).

Sie sollten den Business Document Service (BDS) zur Verwaltung Ihrer Dokumente nutzen. Die Programmierschnittstelle des BDS enthlt eine Methode, die die URLAdresse eines Dokuments zurckgibt. Sie knnen diese Adresse direkt im Parameter document_url dieser Methode verwenden. CALL METHOD document_viewer->view_document_from_url EXPORTING document_url = document_url show_inplace = show_inplace EXCEPTIONS cntl_error = 1 not_initialized = 2 dp_error_general = 3 invalid_parameter = 4. Parameter und Typ document_url TYPE C show_inplace TYPE C Optional Bedeutung URL-Adresse des Dokuments, das Sie anzeigen mchten Gibt an, ob das Dokument im R/3-Fenster oder in einem eigenen Browser-Fenster angezeigt werden soll. Mgliche Werte: 'X': Anzeige im R/3-Fenster ' ': Anzeige im eigenen Browser-Fenster

276

April 2001

SAP AG

Desktop Office Integration (BC-CI) view_document_from_table

view_document_from_table
Mit dieser Methode zeigen Sie ein Dokument an, das in einer internen Tabelle Ihres ABAPProgramms abgelegt ist. Um ein Dokument vom Business Document Service als interne Tabelle zu holen, verwenden Sie die Methode get_with_table der Klasse cl_bds_document_set.

Sie sollten den Business Document Service unbedingt in Verbindung mit dieser Methode verwenden. Zwar knnen Sie diese Methode auch mit eigenstndigen Dokumenten benutzen, die Sie selbst in der Datenbank ablegen, doch mssen Sie dann dafr sorgen, da die Parameter korrekt gefllt werden. Wenn Sie den BDS einsetzen, werden die Parameterwerte automatisch von der Methode get_with_table bereitgestellt. CALL METHOD document_viewer->view_document_from_table EXPORTING show_inplace = show_inplace type = type subtype = subtype size = size CHANGING document_table = document_table EXCEPTIONS dp_invalid_parameter = 1 dp_error_general = 2 cntl_error = 3 not_initalized = 4 invalid_parameter = 5. Parameter und Typ show_inplace TYPE C Optional Bedeutung Gibt an, ob das Dokument im R/3-Fenster oder in einem eigenen Browser-Fenster angezeigt werden soll. Mgliche Werte: type TYPE C subtype TYPE C size TYPE I document_table TYPE STANDARD TABLE 'X': Anzeige im R/3-Fenster ' ': Anzeige im eigenen Browser-Fenster

MIME-Typ des Dokuments. Hinweis: Siehe Korrektes Fllen der Parameter weiter unten. MIME-Subtyp des Dokuments. Hinweis: Siehe Korrektes Fllen der Parameter weiter unten. Gre des Dokuments in Byte. Hinweis: Siehe Korrektes Fllen der Parameter weiter unten. Interne Tabelle, die das Dokument enthlt

April 2001

277

Desktop Office Integration (BC-CI) view_document_from_table

SAP AG

Korrektes Fllen der Parameter


Sie knnen die Parameter type, subtype, size und document_table fr diese Methode aus den EXPORTING-Parametern der Methode get_with_table von cl_bds_document_set holen. Die Parameter entsprechen sich jedoch nicht genau. get_with_table gibt die folgenden relevanten Parameter zurck. Parameter und Typ content TYPE SBDST_CONTENT components TYPE SBDST_COMPONE NTS Bedeutung Interne Tabelle, die den Inhalt des Dokuments enthlt. Sie kann direkt an den Parameter document_table von view_document_from_table bergeben werden. Eine Komponententabelle, die verschiedene Verwaltungsinformationen zum Dokument enthlt, darunter MIME-Typ und Gre.

Ermitteln des MIME-Typs und MIME-Subtyps


Wenn Sie die Methode get_with_table von cl_bds_document_set aufgerufen haben, sind der MIME-Typ und der MIME-Subtyp des Dokuments im Feld components-mimetype in der Form <Typ>/<Subtyp> enthalten. Zur Aufteilung verwenden Sie die Anweisung SPLIT ... AT '/' INTO field1 field2.

Ermitteln der Dateigre


Die Gre des Dokuments wird im Feld components-comp_size angegeben. Sie knnen diesen Wert direkt an den Parameter size von view_document_from_table bergeben.

278

April 2001

SAP AG

Desktop Office Integration (BC-CI) close_document

close_document
Mit dieser Methode schlieen Sie ein Dokument, das im Document Viewer geffnet ist. Es wird immer das letzte Dokument geschlossen, das Sie geffnet haben. CALL METHOD document_viewer->close_document EXCEPTIONS cntl_error = 1 not_initialized = 2

April 2001

279

Desktop Office Integration (BC-CI) destroy_viewer

SAP AG

destroy_viewer
Mit dieser Methode bauen Sie die Document-Viewer-Instanz ab. Wenn Sie die Instanz abgebaut haben, geben Sie den durch die Referenzvariable belegten Speicher mit der Anweisung FREE frei. CALL METHOD document_viewer->destroy_viewer EXCEPTIONS not_initialized = 1 free_failed = 2.

280

April 2001