Verzeichnis eines Scripts herauszufinden

Hallo

Wie finde ich das Verzeichnis (Parent) eines Scripts heraus? IPS_GetParentInstanceID geht nur bei Instanzen.

hightower

Hallo hightower,

probiers mal mit „IPS_GetObjekt(integer: ObjektID)“

Der letzte Rückgabe-Parameter ist die ParentID.

Super danke! Manchmal sehe ich vor lauter Bäumen den Wald nicht mehr.

hightower

IPS_GetObject <— mit c geschrieben :slight_smile:

paresy

wäre es nicht eine Idee, bestimmte Get-Funktionen auf dem Object-Objekt zur Verfügung zu stellen. Damit könnten einige Funktionen ersetzt werden durch diese übergeordnete, und es wären Informationen auf allen Objektarten möglich. Heute kann man zwar mit einem Variablennamen die ID herausfinden (wenn Name nicht mehrfach verteilt), jedoch keine Instanzen, Skripte usw. (ausser man kennt die Location).

Beispiele:
IPS_GetParentInstanceID -> IPS_GetParentObjectID
IPS_GetVariableID -> IPS_GetObjectID

hightower

Hmm… Eigentlich schon.

Es gibt IPS_GetScriptID, IPS_GetVariableID, IPS_GetMediaID.

IPS_GetInstanceID gibt es nicht, weil es dafür keine V1 Kompatibilität bedarf. Die Get*ID Funktionen sollten in neuen V2 Skripten nicht verwendet werden. Sie sind ungenau und von der Performance auch schlechter als die Funktion, die eine ID nutzen.

Wenn Namen unbedingt genutzt werden wollen (z.B. für generische Skripte) sollten die Get*IDByName benutzt werden. Die sind auch durchgehend verfügbar. (Auch für „Object“)

IPS_GetParentInstanceID -> Diese Funktion gibt den Parent im Physikalischen Baum zurück! Diese Funktion ist somit auch nur auf Instanzen anwendbar.

Den Parent kannst du für alle Objekttypen so herausfinden:


$o = IPS_GetObject(12345);
echo $o['ParentID'];
//Ref: http://www.ipsymcon.de/downloads/ips2manual/IPS_GetObject.html

paresy

Ich habe mich halt einfach noch nicht an die ID’s gewöhnt und arbeite lieber weiter mit den Namen. Ich habe auch immer Probleme, wenn ich etwas aus dem Testsystem in das Prodsystem implementiere (sind immer nur einzelne Teile), da auf dem Testsystem andere ID’s erstellt werden als auf dem Prod.

hightower

Hallo V2-Anwender,

Den Parent kannst du für alle Objekttypen so herausfinden:

$o = IPS_GetObject(12345);
echo $o[‚ParentID‘];
//Ref: http://www.ipsymcon.de/downloads/ips2manual/IPS_GetObject.html

paresy

und wie bekomme ich die parent_id auf Grund des Namens heraus. hier wird ja mit der id des Objektes ausgelesen.