PMS32 Online- Hilfereferenz

EPLAN.SQL

Informationen über die Ansteuerung zur Artikelauswahl in EPLAN-P8 via MS-SQL-Server


 

1.      Installation

2.      Steuerung

 


Installation

Für den Zugriff auf den MS-SQL Server von EPLAN muss der ADODB - Client des SQL Servers installiert sein. Dieser wird normalerweise mit EPLAN zusammen installiert. Je nach MS-SQL Serverversion kann sich der Client unterscheiden. Wichtig für den Zugriff auf den SQL-Server sind die Einstellungen der Datei: sys\eplan.server.define bzw. sys\mysys\eplan.server.define

Für Ihre Einstellungen kopieren Sie sich bitte diese Datei in das Unterverzeichnis Sys\MySys\...

Eine Beispieldatei finden Sie unter samples\sample_eplanp8.zip

 

*/ Einstellen des Providers für den Zugriff auf den SQL Server
*/ In der sys\mysys\eplan.server.define Definition können mehrere EPLAN P8 Datenbanken definiert werden!
 
*/ (Es werden Lese-, Lösch- und Schreibrechte benötigt!)
*/ Beispiel:
 
<EPLAN_DB1:§&poChild.AddServerInfo(m.pcName)>
 
         */ Mit Benutzername und Passwort am SQL Server anmelden
         */cProvider =§Provider=SQLNCLI11.1;Integrated Security="";Persist Security Info=False;User ID=<BENUTZERNAME>;Password=<PASSWORT>;Initial Catalog=EPLAN24;Data Source=(local);Initial File Name="";Server SPN=""
 
         */ Sollte der angemeldete Benutzer (WINDOWS) auch auf den SQL Server zugreifen können so ist obiger Link folgend zu ändern:
         cProvider =§Provider=SQLNCLI11.1;Integrated Security=SSPI;Persist Security Info=False;User ID="";Initial Catalog=EPLAN;Data Source=(local);Initial File Name="";Server SPN=""
 
<> 
 
*/ Eine weitere ServerInfo, wenn es mehrere Datenbanken von EPLAN-P8 gibt...
<EPLAN_DB2:§&poChild.AddServerInfo(m.pcName)>
 
         */ Mit Benutzername und Passwort
         */cProvider =§Provider=SQLNCLI11.1;Integrated Security="";Persist Security Info=False;User ID=<BENUTZERNAME>;Password=<PASSWORT>;Initial Catalog=EPLAN25;Data Source=(local);Initial File Name="";Server SPN=""
 
         */ Sollte der angemeldete Benutzer (WINDOWS) auch auf den SQL Server zugreifen können so ist obiger Link folgend zu ändern:
         cProvider =§Provider=SQLNCLI11.1;Integrated Security=SSPI;Persist Security Info=False;User ID="";Initial Catalog=EPLAN22;Data Source=(local);Initial File Name="";Server SPN=""
 
<> 
 
*/ Für 'beide' Datenbanken werden die 'gleichen' Daten übertragen!
*/ Ist der Hintergrund-Job PMS32HX eingerichtet, so werden die Daten automatisch im Hintergrund übertragen!
 
*/ Um den String für cProvider zu ermitteln kann folgendes VFP – Script herangezogen werden:
LOCAL loDL AS DataLinks , loConn AS ADODB.Connection
loDL = CREATEOBJECT("DataLinks")
loConn = loDL.PromptNew()
IF VARTYPE(m.loConn)="O"
         _CLIPTEXT = loConn.ConnectionString
ENDIF
*/ Im ClipBoard steht dann obiger String!
 
*/ In der Eplan.Server.Define Datei im Verzeichnis sys\... sind lediglich die Scripte definiert, die zur Übertragung benötigt werden!
*/ Hier hat der Benutzer die Möglichkeit mit eigenen Scripten einzugreifen… Wird von einem Script .F. zurückgemeldet, so wird die Übertragung abgebrochen!
*/ Die Scripte im Einzelnen:
>_Script_EPL_SQL_01#§_Script_EPL_SQL_01.usr<        */ Benutzerscript
>_Script_EPL_SQL_02#§_Script_EPL_SQL_02.usr<        */ Internes Script, dieses Script ermittelt die Daten (ID’s), die je Tabelle an den SQL Server übertragen werden
>_Script_EPL_SQL_03#§_Script_EPL_SQL_03.usr<        */ Benutzerscript
>_Script_EPL_SQL_04#§_Script_EPL_SQL_04.usr<        */ Internes Script, in diesem Script werden die Vorbereitung der Übertragung an den SQL Server getroffen
>_Script_EPL_SQL_05#§_Script_EPL_SQL_05.usr<        */ Benutzerscript
>_Script_EPL_SQL_06#§_Script_EPL_SQL_06.usr<        */ Internes Script, in diesem Script werden die Daten für den SQL-Server bereitgestellt
>_Script_EPL_SQL_07#§_Script_EPL_SQL_07.usr<        */ Benutzerscript
>_Script_EPL_SQL_08#§_Script_EPL_SQL_08.usr<        */ Internes Script, Übertragung der Daten an den SQL-Server
>_Script_EPL_SQL_09#§_Script_EPL_SQL_09.usr<        */ Benutzerscript
 
*/ Hinweis, wenn der Aufruf: My.Bussines.EplanServer.TransferData(.NULL.,.NULL.,.F.) genommen wird, werden alle Artikelstammdaten, die das ‚neue‘ Flag B01.ToEplSql gesetzt haben übertragen.
*/ Zu diesen Artikelstammdaten gesellen sich alle Lieferanten und Hersteller, die in dieser Datenmenge aus B01 vorhanden sind.

 

Steuerung

Die Ansteuerung der Datenübergabe kann verschieden gelöst werden.

1.      Jede Arbeitsstation hat Zugriff auf den SQL – Server von EPLAN. Damit werden bei Änderung eines Datensatzes im Artikelstamm oder in den Adressmasken Lieferant bzw. Hersteller die Daten an den SQL Server übertragen.
Damit muss zwingend auf jeder Arbeitsstation, auch wenn kein EPLAN P8 installiert ist zumindest der ADODB Treiber für den SQL Server installiert sein! Dieser wird normalerweise mit den Office-Produkten installiert.

2.      Auf dem Server von PMS32 wird der Hostprozess installiert siehe auch HOST.PROZESS
Damit wird bei einer Änderung am Client lediglich die ID und die Tabelle an den Server weitergegeben, der dann die Übertragung übernimmt. Damit müssen auf den Clients keine SQL-Server Treiber installiert sein.
Man kann den Hostprozess auch zeitgesteuert triggern! Damit muss keine TCPIP Verbindung zum Client hergestellt werden!

 

*/ Für die zeitgesteuerte Übertragung der Artikelstammdaten an den SQL-Server gibt es unter samples\sample_eplanp8.zip ein Sample, wie Daten übertragen werden können.
*/ Das Beispiel:
 
*/ Dieses Script transportiert Daten aus dem Artikelstamm an die EPLAN-P8 SQL-Server Datenbank
*/ Es werden nur die Daten übertragen, die geändert wurden!
LOCAL laB01[1] , lni AS INTEGER , lcSql AS STRING
*/ Den SQL erstellen...
*/ HIER WERDEN ALLE ARTIKEL AN DEN SQL-SERVER ÜBERTRAGEN, DIE ALS ‚zu Übertragen‘ MARKIERT SIND UND SEIT DER LETZTEN ÜBERTRAGUNG NICHT MEHR GEÄNDERT WURDEN!
TEXT TO lcSql NOSHOW TEXTMERGE PRETEXT 3
SELECT b01.idb01 ;
         FROM CDBFDIR!B01 AS b01 ;
         WHERE b01.ToEplSql AND b01.lprg<>"EPLAN-P8" ;
         ORDER BY b01.idb01
ENDTEXT
*/ Abfrage...
IF My.Clients.SQL.SQLReadArray(SET("Datasession"),m.lcSql,.NULL.,@laB01)
         */ Dann wurden Daten ermittelt! Rückgabe obiger Funktion: _TALLY>0
         */ Ein SQL-Update, für Daten, die an EPLAN-P8 übertragen wurden...
         */ Wird ein Artikelstammsatz geändert, so wird in B01.LPRG ein anderer Wert eingetragen!
         lcSql = [UPDATE CDBFDIR!B01 SET lprg='EPLAN-P8' WHERE b01.idb01='$IDB01$']
         */ Das Array scannen
         FOR m.lni = 1 TO ALEN(laB01)
                 */ Jeden Artikel separat übertragen…
                 IF My.Bussines.EplanServer.TransferData('B01',laB01[m.lni],.F.)
                          */ Bei Erfolg, wird der Artikel im Artikelstamm als ‚Übertragen‘ markiert…
                          =My.Clients.SQL.SQLEXEC(SET("Datasession"),STRTRAN(m.lcSql,'$IDB01$',laB01[m.lni]))
                 ENDIF
         NEXT m.lni
ENDIF
*/ Die PMS32-Datenbank wieder schließen
*/ ACHTUNG! DER BEFEHL CLOSE DATABASES DARF NICHT IN EINEM MENÜSCRIPT UNTER PMS32 ANGEWENDET WERDEN!
CLOSE DATABASES
RETURN .T.

Siehe auch : Hauptmenü / Hauptindex; / Dictionary Module / Programm- Module / Tabellen Index / Masken Index

Lokale Benutzerhilfe : Meine eigene Hilfe / Zurück zur PMS32 - Hilfe


Dateiversion:1.0.04.35.00 - H.U.DD.V1.V2
Senden Sie Ihren Kommentar zu diesem Thema an das Entwicklungsteam von PMS32
Weitere Informationen finden Sie unter der aktuellen PMS32 WEB-Hilfe . © PMS Compelec GmbH 2010 ® el-Projekt