PMS32 Online- Hilfereferenz
BackGroundJobs - Setzt Hintergrundprozesse in der Tabelle T20
Setzt Hintergrundprozesse in der Tabelle T20
*/ Kurzbeispiel für den Zugriff auf diese Struktur */ Der Zugriff erfolgt über: My.Clients.BackGroundJobs */ Wird dieses Objekt in einem REPLACE oder einer Schleife SCAN ... ENDSCAN | FOR ... NEXT benötigt */ so sollte vor der Schleife die Objektstruktur in eine Variable geholt werden! */ Die Ausführungsgeschwindigkeit wird dadurch sehr vergrößert! */ Beispiel: */ Definieren einer LOKALEN Variablen LOCAL loBackGroundJobs AS My.Clients.BackGroundJobs */ Setzen der Variablen loBackGroundJobs = My.Clients.BackGroundJobs */ Jetzt erst die Schleifen durchlaufen... man beachte ALL, dass können ne Menge Sätze sein... REPLACE ALL Feldname1 WITH loBackGroundJobs.Function1(),Feldname2 WITH loBackGroundJobs.Function1(), ... */ Oder in einer Schleife... SCAN lvValue = loBackGroundJobs.Function(Alias.Spalte) + 25 lvValue = loBackGroundJobs.Function2(m.lvValue) REPLACE Feldname WITH m.lvValue,... ENDSCAN */ Es sind auch geschachtelte Aufrufe möglich...
Rückgabe:[String], einen neuen Job hinzufügen. Zurückgegeben wird die Job-ID oder leer.
String = My.Clients.BackGroundJobs.AddNewJob(tcJob AS STRING,tnPrio AS NUMBER,tcCheck AS STRING,toY98 AS OBJECT,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) String = My.Clients.BackGroundJobs.AddNewJob(tcJob,tnPrio,tcCheck,toY98,tvP1,tvP2,tvP3,tvP4,tvP5,tvP6,tvP7,tvP8,tvP9)
Variant = My.Clients.BackGroundJobs.DataArrival(tcData AS STRING) Variant = My.Clients.BackGroundJobs.DataArrival(tcData)
Variant = My.Clients.BackGroundJobs.DataSend(tcIdT20 AS String) Variant = My.Clients.BackGroundJobs.DataSend(tcIdT20)
Ausführen eines VFP-Befehls mit EVALUATE().
Achtung! Eventuell müssen Variablen als PRIVATE deklariert werden!ENDTEXT
*
TEXT TO lcMessage NOSHOW TEXTMERGE
Ausführen eines VFP-Befehls mit EVALUATE().
Variant = My.Clients.BackGroundJobs.Evaluate(pcExpression AS STRING,pvDefault AS Variant,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.Clients.BackGroundJobs.Evaluate(pcExpression,pvDefault,tvP1,tvP2,tvP3,tvP4,tvP5,tvP6,tvP7,tvP8,tvP9)
*/ Mit Evaluate kann eine Befehlszeile ausgeführt werden */ Eventuell benutzte Variablen sind PRIVATE zu deklarieren PRIVATE pnVar1 AS Number , pnVar2 AS Number LOCAL lnVar AS Number STORE 2 TO pnVar1,pnVar2 lnVar = My.Clients.BackGroundJobs.Evaluate([m.pnVar1+m.pnVar2]) WAIT WINDOW m.lnVar && Ergibt 4... ENDTEXT
Ausführen eines VFP-Scripts incl. der Prüfung, ob ein ALIAS besteht.
Variant = My.Clients.BackGroundJobs.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.Clients.BackGroundJobs.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.Clients.BackGroundJobs.ExecScript("",m.lcScript,0,@lnVar1,@lnVar2) */ und das Ergebnis... WAIT WINDOW m.lnVar WAIT WINDOW m.lnVar1 WAIT WINDOW m.lnVar2
Variant = My.Clients.BackGroundJobs.ShowInfo(tvInfo AS Variant,tcIdt20 AS String) Variant = My.Clients.BackGroundJobs.ShowInfo(tvInfo,tcIdt20)
Variant = My.Clients.BackGroundJobs.ShowMessages()
Transformieren einer Value
Variant = My.Clients.BackGroundJobs.TransformValue(tvValue AS Variant,RcTyp AS STRING @) Variant = My.Clients.BackGroundJobs.TransformValue(tvValue,@RcTyp)
S = My.Clients.BackGroundJobs.StBCaption
S = My.Clients.BackGroundJobs.StBIcon
S = My.Clients.BackGroundJobs.StBTooltip
String = My.Clients.BackGroundJobs.cDbfDefault
String = My.Clients.BackGroundJobs.cDbfFList
String = My.Clients.BackGroundJobs.cDbfUpdate
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.Clients.BackGroundJobs.cIdx02
*/ Abfrage der Mandanten-ID WAIT WINDOW My.Clients.BackGroundJobs.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.Clients.BackGroundJobs.cLastError
*/ Vorausgesetzt wird, dass My bekannt ist... LOCAL lcError AS String lcError = My.Clients.BackGroundJobs.cLastError
Methode in der der letzte Fehler auftrat.
Aufbau: [Fehlernummer] [Methode] [Zeilennummer] [Message]
String = My.Clients.BackGroundJobs.cMethod
*/ Abruf... WAIT WINDOW My.Clients.BackGroundJobs.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.Clients.BackGroundJobs.cResetInfos
*/ Verschiedene RESET Befehle... My.Clients.BackGroundJobs.cResetInfos = "REMOVE-MENUES" My.Clients.BackGroundJobs.cResetInfos = "REMOVE-CS-FILES" My.Clients.BackGroundJobs.cResetInfos = "REMOVE-CS-SCRIPTS" My.Clients.BackGroundJobs.cResetInfos = "CHANGE-IDX09" My.Clients.BackGroundJobs.cResetInfos = "USER_LOGIN" */ Je nach Klasse wird ein entsprechender RESET ausgeführt!
Boolean = My.Clients.BackGroundJobs.lActive
Fehlernummer des letzten Fehlers.
Ist der Wert kleiner null, so handelt es sich um einen logischen Fehler.
Number = My.Clients.BackGroundJobs.nError
WAIT WINDOW My.Clients.BackGroundJobs.nError
Zeilennummer, in der der letzte Fehler auftrat
Number = My.Clients.BackGroundJobs.nLine
WAIT WINDOW My.Clients.BackGroundJobs.nLine
Object = My.Clients.BackGroundJobs.oInfo
Object = My.Clients.BackGroundJobs.oT20[tcIndex1 AS String | tiIndex1 AS Integer , tiIndex2 AS Integer] Object = My.Clients.BackGroundJobs.oT20[tcIndex1|,tiIndex1,tiIndex2]
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