PMS32 Online- Hilfereferenz
EplanServer - Übertragung von PMS32 Daten an den EPLAN P8 SQL-Server
Ausführen eines VFP-Scripts incl. der Prüfung, ob ein ALIAS besteht.
Variant = My.Bussines.EplanServer.ExecScript(_es_pcAlias AS STRING,_es_pcScript AS STRING,_es_tlBoolean AS Boolean, _es_tvP1 AS Variant,_es_tvP2 AS Variant,_es_tvP3 AS Variant,_es_tvP4 AS Variant,_es_tvP5 AS Variant,_es_tvP6 AS Variant, _es_tvP7 AS Variant,_es_tvP8 AS Variant,_es_tvP9 AS V) Variant = My.Bussines.EplanServer.ExecScript(_es_pcAlias,_es_pcScript,_es_tlBoolean,_es_tvP1,_es_tvP2,_es_tvP3,_es_tvP4,_es_tvP5,_es_tvP6,_es_tvP7,_es_tvP8,_es_tvP9)
*/ Mit EXECSCRIPT kann ein VFP-Script ausgeführt werden LOCAL lcScript AS String,lnVar1 AS Number,lnVar2 AS Number,lnVar AS Number TEXT TO lcScript NOSHOW TEXTMERGE LPARAMETERS tnVar1 AS Number @,tnVar2 AS Number @ tnVar1 = m.tnVar1 + 1 tnVar2 = m.tnVar2 - 2 RETURN m.tnVar1 + m.tnVar2 ENDTEXT */ Vorbelegen der Variablen (Parameter) STORE 2 TO lnVar1,lnVar2 lnVar = My.Bussines.EplanServer.ExecScript("",m.lcScript,0,@lnVar1,@lnVar2) */ und das Ergebnis... WAIT WINDOW m.lnVar WAIT WINDOW m.lnVar1 WAIT WINDOW m.lnVar2
Ausführen eines VFP-Scripts incl. PARAMETER (Collection)
Als Parameter wird eine Collection mit Informationen übergeben!
Variant = My.Bussines.EplanServer.ExecScriptP(tcScript AS STRING,toPara AS COLLECTION) Variant = My.Bussines.EplanServer.ExecScriptP(tcScript,toPara)
*/ Mit EXECSCRIPTP kann ein VFP-Script ausgeführt werden LOCAL lcScript AS String,lnVar AS Number,loColl AS Collection loColl = CREATEOBJECT("Collection") loColl.Add(2,"Var1") loColl.Add(2,"Var2") TEXT TO lcScript NOSHOW TEXTMERGE LPARAMETERS toColl AS Collection RETURN toColl.Item("Var1") + toColl.Item("Var2") ENDTEXT lnVar = My.Bussines.EplanServer.ExecScriptP(m.lcScript,m.loColl) */ und das Ergebnis... WAIT WINDOW m.lnVar
Wandelt übergebene Parameter in eine Collection um.
Umkehrfunktion zu SetParameters.
Variant = My.Bussines.EplanServer.GetParameters(tvP1 AS Variant,tvP2 AS Variant,tvP3 AS Variant,tvP4 AS Variant,tvP5 AS Variant,tvP6 AS Variant,tvP7 AS Variant,tvP8 AS Variant,tvP9 AS Variant) Variant = My.Bussines.EplanServer.GetParameters(tvP1,tvP2,tvP3,tvP4,tvP5,tvP6,tvP7,tvP8,tvP9)
*/ Hier können mehrere Parameter in eine Collection übertragen werden LOCAL loCollection AS Collection , lni AS Integer , lcNames AS String loCollection = My.Bussines.EplanServer.GetParameters(1,DATE(),TIME()) WAIT WINDOW m.loCollection.Count && Anzahl der Werte (3) */ Die Namen der Parameter bestimmen lcNames = "" FOR m.lni = 1 TO m.loCollection.Count lcNames = m.lcNames + ";" + m.loCollection.GetKey(m.lni) NEXT m.lni WAIT WINDOW SUBSTR(m.lcNames,2)
Wandelt übergebene Parameter in eine Collection um.
Jedoch wird als 'erster' Parameter die Anzahl der Parameter mitgegeben.
Variant = My.Bussines.EplanServer.GetParametersCount(tnCnt AS Number,tvP1 AS Variant,tvP2 AS Variant,tvP3 AS Variant,tvP4 AS Variant,tvP5 AS Variant,tvP6 AS Variant,tvP7 AS Variant,tvP8 AS Variant,tvP9 AS Variant) Variant = My.Bussines.EplanServer.GetParametersCount(tnCnt,tvP1,tvP2,tvP3,tvP4,tvP5,tvP6,tvP7,tvP8,tvP9)
*/ Hier können mehrere Parameter in eine Collection übertragen werden */ Als Beispiel kann nur der Aufruf eines Scripts / einer Methode dienen LPARAMETERS tp1 AS Variant , tp2 AS Variant , tp3 AS Variant && Es könnten mehr sein! LOCAL loCollection AS Collection , lni AS Integer lni = PCOUNT() && Wieviele Parameter wurden übergeben? loCollection = My.Bussines.EplanServer.GetParametersCount(m.lni,m.tp1,m.tp2,m.tp3) WAIT WINDOW m.loCollection.Count && Anzahl der Werte (?)
Rückgabe:[Boolean], Überträgt einen oder merhere Datensätze.
Je nach Aufruf werden aus der angegebenen Tabelle ein bzw. mehrere Datensätze übertragen.
Boolean = My.Bussines.EplanServer.TransferData(tcTable AS STRING,tcId AS STRING,tlShowThermos AS Boolean) Boolean = My.Bussines.EplanServer.TransferData(tcTable,tcId,tlShowThermos)
*/ Beispiel: LOCAL llReturn AS Boolean */ Hier werden ALLE Daten der Tabelle B01 und deren relationalen Verknüpfungen zu C61 und C62 übertragen */ Man achte auf das neue Flag in B01: b01.ToEplSql (Zu finden in B0101) llReturn = My.Bussines.EplanServer.TransferData('') */ Mit Anzeige eines Thermos... llReturn = My.Bussines.EplanServer.TransferData('','',.T.) */ Wenn man 'nur' einen Datensatz aus B01 übertragen möchte... */ Auch hier werden Hersteller (C62) und Lieferant (C61) übertragen... llReturn = My.Bussines.EplanServer.TransferData("B01",b01.idb01,.F.) */ Nur den Hersteller übertragen llReturn = My.Bussines.EplanServer.TransferData("C62",c62.idc62,.F.) */ Nur den Lieferanten übertragen llReturn = My.Bussines.EplanServer.TransferData("C61",c61.idc61,.F.) */ Siehe auch: sys\_Script_epl_sql_??.usr
Wenn die Daten im Hintergrund PMS32HX übertragen werden.
Diese Übertragung ist im Aufruf identisch mit TransferData(), jedoch werden die Informationen an PMS32HX.EXE, dieses Programm muss auf dem Server laufen, übertragen...
Damit werden die Daten im Hintergrund an die EPLAN - SQL - Datenbank übertragen!
Variant = My.Bussines.EplanServer.TransferDataBackground(tcTable AS STRING,tcId AS STRING,tlShowThermos AS Boolean) Variant = My.Bussines.EplanServer.TransferDataBackground(tcTable,tcId,tlShowThermos)
*/ Beispiel siehe TransferData()...
Mandanten-ID. Diese ist in der Datei pms32.pth gespeichert und dient dort zur Zuordnung des Mandante und dessen Pfade.
Auszug aus der Pfaddatei pms32.pth:
*/ Verzeichnis der Microcube - Dateien. Wenn leer dann gleich: cDbfdir
cCubdir = ""
*/ Ein 'anderes' Dokumentenverzeichnis kann angegeben werden. Wenn nicht angegeben dann gleich: cDbfdir+'docs\'
*/ cDocDir = ""
*/ Verzeichnis der Mandantentabellen. Hier ein Beispiel mit UNC Pfaden.
*/ Wird die Freigabe auf dem Server 'versteckt' \pms$\ angegeben, so kann ein Cryptovirius das Verzeichnis nicht finden!
cDbfdir = "\\server\pms$\pms32\daten\demo.32\"
*/ Verzeichnis der Reporttabellen
*/ Gibt man Bilddateien in einem Report mit My.Clients.Path.cFrxDir+'BILDNAME.JPG' an, so kann PMS32 einfach auf einen anderen Rechner kopiert werden!
cFrxdir = "\\server\pms$\pms32\reports\demo.32\"
*/ Beschreibung des Mandanten
cIcx02 = "TESTMANDANT DEMO"
*/ ID der Firmenparameter zum Mandant.
cIdx09 = "DEMO"
*/ Kann unter der Mandanteninformation leer sein, wenn für mehrere Mandanten das 'gleiche' Systemverzeichnis gültig ist.
cSysdir = ""
*/ Willkommens-Information als Hintergrundbild in PMS32
cWelcome= "pms32.htm"
*/ Nummer des Mandanten, beim Einsatz eines BarcodeScanners sollte diese Nummer EINDEUTIG sein!
nNumber = 1
<>
String = My.Bussines.EplanServer.cIdx02
*/ Abfrage der Mandanten-ID WAIT WINDOW My.Bussines.EplanServer.cIdx02 */ Wenn man mittels VFP Zugriff auf die Applikation braucht: */ 1. vfp9.exe öffenen */ 2. In das Startverzeichnis von PMS32 wechseln (MUSS) CD c:\pms\pms32 */ 3. My Instanziieren My = NEWOBJECT("pmsmy","pmsmyhandler.vcx","pmsmyhandler.app") */ 4. Den letzten aktuellen Mandanten zuweisen My.cIdx02 = My.cIdx02 */ 5. Los gehts...
Mit dieser Property kann der letzte Fehler im Klartext abgerufen werden.
String = My.Bussines.EplanServer.cLastError
*/ Vorausgesetzt wird, dass My bekannt ist... LOCAL lcError AS String lcError = My.Bussines.EplanServer.cLastError
Methode in der der letzte Fehler auftrat.
Aufbau: [Fehlernummer] [Methode] [Zeilennummer] [Message]
String = My.Bussines.EplanServer.cMethod
*/ Abruf... WAIT WINDOW My.Bussines.EplanServer.cMethod
Reset C-Structure
Diese Property ist normalerweise WriteOnly! Sie dient zum Zurücksetzen verschiedener Informationen.
#DEFINE CRI_REMOVE_MENUES "REMOVE-MENUES"
#DEFINE CRI_REMOVE_CSFILES "REMOVE-CS-FILES"
#DEFINE CRI_REMOVE_SCRIPTS "REMOVE-CS-SCRIPTS"
#DEFINE CRI_CHANGE_IDX09 "CHANGE-IDX09"
#DEFINE CRI_LOGIN "USER_LOGIN"
String = My.Bussines.EplanServer.cResetInfos
*/ Verschiedene RESET Befehle... My.Bussines.EplanServer.cResetInfos = "REMOVE-MENUES" My.Bussines.EplanServer.cResetInfos = "REMOVE-CS-FILES" My.Bussines.EplanServer.cResetInfos = "REMOVE-CS-SCRIPTS" My.Bussines.EplanServer.cResetInfos = "CHANGE-IDX09" My.Bussines.EplanServer.cResetInfos = "USER_LOGIN" */ Je nach Klasse wird ein entsprechender RESET ausgeführt!
Thermosanzeige bei der Ausführung
Boolean = My.Bussines.EplanServer.lShowThermos
My.Bussines.EplanServer.lShowThermos = .T.
Fehlernummer des letzten Fehlers.
Ist der Wert kleiner null, so handelt es sich um einen logischen Fehler.
Number = My.Bussines.EplanServer.nError
WAIT WINDOW My.Bussines.EplanServer.nError
Zeilennummer, in der der letzte Fehler auftrat
Number = My.Bussines.EplanServer.nLine
WAIT WINDOW My.Bussines.EplanServer.nLine
Verarbeitete Datensätze
Number = My.Bussines.EplanServer.nRecords
WAIT WINDOW My.Bussines.EplanServer.nRecords
Ausführungszeit in Sekunden
Number = My.Bussines.EplanServer.nSeconds
WAIT WINDOW My.Bussines.EplanServer.nSeconds
Status der Ausführung
Number = My.Bussines.EplanServer.nStatus
WAIT WINDOW My.Bussines.EplanServer.nStatus
Siehe auch : Hauptmenü / Hauptindex / Such Index / Cursor Index / Programm Module / Tabellen Index / Tabellenmodule / Masken Index / Programmcode Index / Servicepacks / My.Struktur / Funktionen / Sonstiges Index
Lokale Benutzerhilfe : Meine eigene Hilfe / Zurück zur PMS32 - Hilfe
Dateiversion:1.0.04#3648 - H.U.DD#SSFF 02.12.2022
Senden Sie Ihren Kommentar zu diesem Thema an das Entwicklungsteam von PMS32
Weitere Informationen finden Sie unter der aktuellen
PMS32 WEB-Hilfe
Die Informationen dieser Mitteilung sind vertraulich und nur für Sie bestimmt. Unbefugtes Weiterleiten,
Veröffentlichen, Kopieren usw. sind untersagt und werden gerichtlich verfolgt.
© PMS Compelec GmbH 2022 ® el-Projekt