Eine ähnliche Frage kam bereits vor, an einem konkreten Beispiel würde ich das gerne noch einmal durchgehen. Meine Frage kam auf beim Aufrufen zweier Prozesse auf einem Datensatz. Ziel ist es dabei, einen Prozess aufzurufen und abzuschliessen, befor ein zweiter Prozess ausgeführt wird. Dabei gibt es in LUA mehrere scheinbar gleich aussehende Möglichkeiten. Wie genau werden die LUA Aufrufe von folgenden zwei Varianten verarbeitet:
V1: Erster Prozess sync, zweiter Prozess Async
function start()
local parameters ={{"SelectedGuids", Utils:Serialize(guids)}}
DB:Process("PI_XXXX_Extensions", "FirstProcess", parameters);
local action = DB:ProcessAsync(this, "PI_XXXX_Extensions", "SecondProcess", parameters);
action:AddEvent("completed", "SecondProcessCompleted");
end
function SecondProcessCompleted(sender, args)
if(HasErrors(args)) then
return
end
end
start()
V2: Beide Prozesse async, zweiter wird vom success Event des ersten aufgerufen
function start()
local parameters ={{"SelectedGuids", Utils:Serialize(guids)}}
local firstAction = DB:ProcessAsync(this,"PI_XXXX_Extensions", "FirstProcess", parameters);
firstAction:AddEvent("completed", "FirstProcessCompleted");
end
function FirstProcessCompleted(sender, args)
if(HasErrors(args)) then
return
else
local parameters ={{"SelectedGuids", Utils:Serialize(guids)}}
local action = DB:ProcessAsync(this, "PI_XXXX_Extensions", "SecondProcess", parameters);
action:AddEvent("completed", "SecondProcessCompleted");
end
end
function SecondProcessCompleted(sender, args)
if(HasErrors(args)) then
return
end
end
start()
Was für einen Unterschied würde die Implementierung bei Rückmeldung an den User machen?
Vielen Dank für die Hilfe schon einmal