PMS32 Online- Hilfereferenz
EPLAN.SQL
Informationen über die Ansteuerung zur Artikelauswahl in EPLAN-P8 via MS-SQL-Server
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.
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