Hallo NX Programmierer,
ich arbeeite derzeit an dem Ausbau unserer Systemverbindung zwischen der Teamcenter PLM / NX CAD Umgebung und dem SAP ERP System. Für die meisten der Austausch- Übergabeprozesse setzen wir bei uns die TESIS T4S Schnittstelle ein, die soweit auch sehr gut funktioniert. Nun habe ich aber eine Anforderung bei der ich in einem NX Journal unmittelbar Daten aus dem SAP System abgreifen will. Normallerweise ist das mittels der SAP RFC ActiveX Komponente innerhalb eines VB Journals auch kein Problem. Das ganz wird erst dann kompliziert, wenn man wie wir NX auf 64 Bit Windows Maschinen einsetzt. Dann erwartet natürlich das NX Journal auch 64 Bit kompatible Komponenten. Dieses ist aber bei unserer SAP Standard Client - Installation nicht der Fall. Hier setzen wir den normalen 32 Bit Client von SAP ein. Die letzten Wochen habe ich ein wenig gebastelt und habe nun eine Weg gefunden, wie ich die beiden Systeme miteinander direkt koppeln kann. Ich verwende hierzu eine EXCEL Applikation, die im Hintergrund ebenfalls im 32 Bit Modus läuft. Da ich glaube, dass es vielleicht den Einen oder Anderen beim Ausbau seiern Umgebung helfen kann, habe ich mal mein Beispiel angehängt.
Client Anforderungen:
- NX 7.5 in 64 Bit Installation
- EXCEL als 32 Bit Installation
- SAP Frontend als 32 Bit Installation
Das Prinzip:
1. Das Journal ruft eine Sub - Routine auf, in der einige gloable Parameter gesetzt bzw. analysiert werden. Z.B. Shared Drives
2. Das Journal startet eine EXCEL Sitzung im Hintergrund
3. In diese Hintergrund EXCEL Sitzung wird eine bestimmte Excel Arbeitsmappe mit Makros geladen.
4. Die Arbeitsmappe enthält ein spezielles Modul, mit dem die SAP Logon ActiveX Komponente eingebunden wird.
5. Nun triggert das NX Journal die EXCEL Anwendung zur Einbindung des SAPLogon.
6. Anschließend holt sich das NX Journal eine RFC Funktionsobjekt aus dem SAP, wobei EXCEL hierbei als Translator funktioniert.
7. Nun kann die SAPFunction im NX Journal direkt bearbeitet und ausgeführt werden.
8. Zum Schluss schließt das Journal erst über EXCEL die SAP Verbindung und anschließend EXCEL selber.
In dem angehängten ZIP Archiv ist mal ein kleines Beispiel mit der SAP Standard RFC Funktion "RFC_READ_TABLE" aufgebaut. Die wird im NX Journal so eingesetllt, dass sie eine Abfrage auf die zentrale SAP MARA Tabelle (Materialstammsatz - Grunddaten) ausführt und die Materialart zurück liefert.
Zum Testen:
In Zeile 70 muss der Pfad auf die beiliegende EXCEL Datei angepasst werden.
xlFile = env_UGS_SHR_DIR & "\GEAcustom\NX75\winXX\usertools\application\SPViewRender\SAPConnect_For_NX64Bit_V2.xlsm"
In Zeile 77 müssen die SAP Verbindungsdaten angegeben werden. Wenn diese nicht vollständig sind oder der fünfte Parameter von "true" auf "false" gesetzt wird, erscheint der klassische SAP RFC Logon Dialog.
errcode = SAPConnect(xlApp ,"IP or Hostname" , "PUBLIC", "0", "true", "System", "SystemNumber", "Client", "User", "Password", "E")
In Zeile 112 muss natürlich die SAP Abfrage so umgebaut werden, dass sie Eurem Materialnummernmuster entspricht. Hier kann man aber das "%" Zeichen als Wildcard einsetzen.
oParam3(1, "TEXT") = "MATNR LIKE '000000070531970%'"
Hiermit sollte es nun möglich sein, dass man auch NX 64 Bit direkt mit SAP verbinden kann. Eine vorstellbare Anwendung wäre zum Beispiel eine NX integrierte Anzeige von SAP Stammdaten und Verbrauchsdaten, etc.
Viel Spaß beim Testen
Gruß
Matthias
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP