TBeProcess
TBeProcess
Die Klasse TBeProcess dient dazu einen neuen Prozess innerhalb von business express zu starten.
Die Anmelde-Daten (Ab 6.5 /LOGINKEY) werden direkt aus der offenen b e-Instanz übergeben.
Eigenschaften
Eigenschaft | Beschreibung |
---|---|
Active:L | Aktiviert den Prozess mit True und Deaktiviert ihn mit False |
CommandLine:C | Die auszuführende Befehlszeile. Hier kann im Grunde jeder Befehl ausgeführt werden, der auch in der Windows-Kommandozeile ausführbar ist. |
Running:L | Gibt an, ob der Prozess läuft |
FreeOnTerminate:L | Gibt an, ob das Objekt zerstört werden soll, sobald der Prozess beendet ist. |
CurrentDirectory:C | Verzeichnis, in dem der Prozess gestartet wird |
AutomaticallyGenerateLoginkey:L | Automatische Erzeugung des Login-Key auf Basis der ausführenden be-Instanz. |
Verfügbare Ereignisse
Ereignis | Beschreibung |
---|---|
OnProcessFinished | Dieses Event wird ausgelöst, sobald der Prozess beendet wurde. |
Beispiel
//##############################################################################
//##############################################################################
// Hinweis: Mit diesem Programm kann ein beliebiges be-Modul aus der
// Warenwirtschaft heraus geöffnet werden
//##############################################################################
//##############################################################################
| m_oBeProcess, m_cCurrentDir, m_cParams, m_cExe, m_cBeModule |
//##############################################################################
//##############################################################################
// Konstanten
//##############################################################################
//##############################################################################
m_cCurrentDir := '\\srv\businessexpress\winbe\be32\', // Pfad des be32-Ordners
m_cExe := 'be_32.exe', // be_32-Exe
m_cParams := ' /P:..', // zusätzliche Startparameter
m_cBeModule := 'PRMAN', // Startparameter für das zu startende Modul
//##############################################################################
//##############################################################################
// Funktionen
//##############################################################################
//##############################################################################
//******************************************************************************
// Die Funktion erweitert den String der die zusätzlichen Parameter enthält um
// einen weiterern Parameter.
//******************************************************************************
function AddParam(cParam, cValue)
m_cParams += ' /' + cParam + IIf(Empty(cValue), '', ':' + cValue),
end,
//##############################################################################
//##############################################################################
// Events
//##############################################################################
//##############################################################################
//******************************************************************************
// Dieses Event wird ausgelöst, sobald der externe Prozess beendet wurde
//******************************************************************************
function DoOnProcessFinished()
MessageDlg('Prozess beendet', mtInformation, mbOk),
DestroyObject(m_oBeProcess), // muss als letzte Aktion in dem Event erfolgen
end,
//##############################################################################
//##############################################################################
// Hauptprogramm
//##############################################################################
//##############################################################################
SetPersistent(True), // muss gesetzt werden, da sonst kein Zugriff auf Event-Funktion möglich
m_oBeProcess := CreateObject('TBeProcess', '', Application),
startseq
// Das Event zuweisen, das bei Beendung des Prozesses ausgeführt wird
AssignEvent(m_oBeProcess, 'OnProcessFinished', 'DoOnProcessFinished'),
// Hier können nun beliebig viele Parameter angefügt werden
AddParam(m_cBeModule, ''),
// Alle nötigen Eigenschaften setzten und den Prozess starten
m_oBeProcess.CurrentDirectory := m_cCurrentDir,
m_oBeProcess.CommandLine := m_cCurrentDir + m_cExe + m_cParams,
m_oBeProcess.FreeOnTerminate := True,
m_oBeProcess.AutomaticallyGenerateLoginkey := True,
m_oBeProcess.Active := True,
if m_oBeProcess.Running then
MessageDlg('Der Prozess wurde erfolgreich gestartet.', mtInformation, mbOk),
endif,
onerror
MessageDlg('Fehler beim Starten des externen Prozesses.' + CrLf + GetErrorText(), mtError, mbOk),
stopseq,