Erinnern Sie sich noch an die Zeiten, als Sie verschachtelte Schleifen und bedingte Anweisungen verwenden mussten, um die Attribute eines Objekts abzurufen? So endete man mit einem langen und komplizierten Stück Code? Nun, diese Zeiten sind vorbei! Dank der Objektnotation in Kombination mit Sammlungen und ihren Methoden können Sie Ihren Code jetzt schneller und besser lesbar schreiben!
DieSuche nach dem Wert eines bestimmten Attributs war noch nie so einfach. Schauen wir uns ein reales Szenario an und entdecken wir, wie das geht!
Realitätsnahes Szenario
Stellen Sie sich vor, Sie möchten Ihre laufenden Prozesse nach ihrem Typ filtern.
Wie Sie vielleicht schon wissen, ermöglicht der Get process activity Befehl eine Liste der laufenden Prozesse und der verbundenen Benutzer abrufen. Wie unten gezeigt, ist ein Teil der zurückgegebenen Informationen der Prozesstyp:
{ { "Prozesse":[ { "name": "Main", "sessionID":"", "Anzahl":0, "ID":0, "sichtbar":false, "systemID":"140736073646912", "Typ":-39, //Haupt-4D-Prozess "Zustand":0, "cpuUsage":0.033, "cpuTime":922.62008, "preemptiv":true }, { "name": "Anwendungsprozess", "sessionID":"", "number":1, "ID":13, "sichtbar":true, "systemID":"123145536053248", "type":-1, //Hauptprozess "status":2, "cpuUsage":0.002, "cpuTime":187.902836, "preemptiv":false }, {} ] }
Lassen Sie uns versuchen, den Hauptprozess zu finden. Wenn wir es auf die alte Weise machen würden, müssten wir eine For -Schleife mit einer bedingten Anweisung verwenden, was zu einem ziemlich langen Stück Code führt:
C_OBJECT($obj)
C_LONGINT ($i)
ARRAY OBJECT (processesCol;0 )
$obj:=Get process activity
OB GET ARRAY($obj;"processes";processesCol)
ARRAY OBJECT ($result;0 )
For ($i;1;Size of array(processesCol))
If (OB Get(processesCol{$i}; "type")= Main process)
APPEND TO ARRAY($result;processesCol{$i})
End if
End for
Die alte Methode funktioniert wunderbar, aber wir müssen zugeben, dass sie etwas langwierig ist, nur um ein einziges Element zu finden. Gute Nachrichten! Dank der query collection-Methode können Sie ganz einfach den gewünschten Wert extrahieren … in einer einzigen Zeile Code!
C_COLLECTION($result)
.
$Ergebnis:=Get process activityprocesses.Abfrage
("type = :1";Main process)
Und Sie sind fertig! Ihr Code ist sauber, leicht zu verstehen und besser lesbar. Lang lebe die Einfachheit!
Wir haben nur an der Oberfläche dessen gekratzt, was möglich ist. Und natürlich unterstützt die Methode query auch komplexere Operationen! Neben der Abfrage einer Sammlung können Sie diese auch ordnen, reduzieren, erweitern oder filtern. Mehr als 40 Methoden stehen für eine optimale Nutzung von Sammlungen zur Verfügung!