Mit SAP auf VBS zugreifen?

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Mit SAP auf VBS zugreifen?

Beitrag von sabouka (ForumUser / 5 / 0 / 0 ) »
Hallo zusammen!

Habe folgendes Problem:
Wir möchten bestimmte Standardaufgaben via Workflow automatisiert ablaufen lassen. Hierzu wäre es gut, wenn auf unserem Exchange ein VBS-Skript angetriggert werden könnte, und das von SAP aus.

Wir haben nun sehr viele Bücher gewälzt und Seite besucht und sind trotzdem nicht zu einem zufriedenen Ergebnis gekommen. Es gab irgendwie fast ausschließlich Beispiele, wo externe Systeme auf SAP R/3 zugegriffen haben.

Geht das überhaupt? Welche Voraussetzungen müssen auf dem Exchange gelten? Ist das VB-Skript überhaupt remotefähig? Über welche Schnittstelle sollte das geschehen?

Wo gibt es gute Beispiele, in dem man sieht wie SAP R/3 mit externen Systemen arbeitet (nicht umgekehrt!)?
Viele Grüße

sabouka

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


Beitrag von LoLo ( / / 0 / 3 ) »
Moin,

Unter http://service.sap.com/connectors findest Du unter DCOM-Connector genau das was Du suchst. Ab 46D enthält das DCOM-Connector-Paket einen generischen RFC-Server, mit dem man dann Aufrufe vom SAP an eine externe Com-Komponente bzw. Com-Server machen kann (was bei Exchange problemlos möglich ist).
Der generische Server heißt 'Com4Abap'.

Bevor man das allerdings benutzen kann, benötigt man einen speziellen Transport von SAP, der einen Satz von Funktionbausteinen enthält, mit denen man diese Kommunikation betreiben kann.
Siehe im übrigen Hinweis 533055.

Beim DCOM-Paket gibt es übrigens Programmierbeispiele in der beiliegenden Dokumentation. Ebenfalls über den Service-Marktplatz erreichbar (siehe obigen link).

Hier ein Programmbeispiel aus dem ABAP heraus (Verbindung zur Nordwind-Datenbank unter Access) unter Benutzung des com4abap (Quelle: SAP Docu zum DCOM-Connector):

Code: Alles auswählen.

REPORT ZCOM4ABAP01 line-size 300 .

types: begin of itabtype,

 customer_ID(5) type n,

 company_name(40) type c,

 contact_name(30) type c,

 contact_title(30) type c,

 address(60) type c,

 city(15) type c,

 region(15) type c,

 postal_code(10) type c,

 country(15) type c,

 phone(24) type c,

 fax(24) type c,

 end of itabtype.

data: service_dest type rfcdes-rfcdest VALUE 'COM01',

 worker_dest type rfcdes-rfcdest,

 class_id(64) type c value 'Northwind.Customers',

 interface_id(64) type c value '_Customers',

 type_library(64) type c value 'Northwind',

 oid type int4,

 customers type standard table of itabtype with header line.

call function 'BEGIN_COM_SESSION'

 exporting service_dest = service_dest

 importing worker_dest = worker_dest

 exceptions connect_to_com_service_failed = 1

 connect_to_com_worker_failed = 2

 others = 3.

call function 'create_com_instance' destination worker_dest

 exporting clsid = class_id

 iid = interface_id

 typelib = type_library

 importing instid = oid.

call function 'com_invoke' destination worker_dest

 exporting %instid = oid

 %method = 'SET_ConnString'

 %value = 'DSN=Northwind'

 exceptions others = 1.

if sy-subrc ne 0.

write: / 'Error setting Connection string'.

endif.

call function 'com_invoke' destination worker_dest

 exporting %instid = oid

 %method = 'GetCustomers'

 tables %return = customers

 exceptions others = 1.

if sy-subrc ne 0.

write: / 'Error retrieving customer list'.

endif.

loop at customers.

write: / customers-customer_id,

 customers-company_name,

 customers-contact_title,

 customers-contact_name,

 customers-address,

 customers-city,

 customers-region,

 customers-postal_code,

 customers-country,

 customers-phone,

 customers-fax.

endloop.

call function 'delete_com_instance' destination worker_dest

 exporting instid = oid

 exceptions others = 1.

if sy-subrc ne 0.

write: / ' Could not destroy instance'.

endif.

call function 'END_COM_SESSION'

 exporting destination = worker_dest

 exceptions others = 1.

if sy-subrc ne 0.

write: / 'Could not destroy session'.

endif.

Ciao, LoLo

Danke!

Beitrag von sabouka (ForumUser / 5 / 0 / 0 ) »
Viele Dank LoLo! Deine ausführliche Antwort bringt uns schon ein Stück weiter!
Viele Grüße

sabouka

Seite 1 von 1

Vergleichbare Themen

0
Antw.
4001
Views
Von Java auf SAP zugreifen
von Challana » 27.07.2007 09:40 • Verfasst in Java & SAP®
2
Antw.
6965
Views
Von Servlet auf SAP zugreifen
von Challana » 27.07.2007 09:48 • Verfasst in Java & SAP®
14
Antw.
3283
Views
auf Tabellen in Strukturen zugreifen
von Micha_ela » 07.06.2023 15:46 • Verfasst in ABAP® für Anfänger
2
Antw.
2677
Views
Auf Textsymbole programmseits zugreifen
von KleinerEisbaer » 14.09.2007 10:11 • Verfasst in ABAP® für Anfänger
6
Antw.
2466
Views
Auf Feldsysmbolnamen dynamisch zugreifen
von kaim77 » 25.09.2013 12:25 • Verfasst in ABAP® Core

Über diesen Beitrag


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

Newsletter Anmeldung

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