Logo.CortexAG

Anmelden +
  • Abfrage eines Portals (PHP)

Dieses Beispiel erläutert die Abfrage eines Portals und die entsprechenden Rückgabewerte. Grundsätzlich erwartet der DataService Parameter als json-String. Dieser wird in PHP als Array definiert und entsprechend konvertiert. Dadurch ist der Quelltext einfacher zu lesen (und zu erläutern).

Innerhalb der Beispieldatenbank wurde das Portal "Schulung-einfach“ eingerichtet. Dieses beinhaltet in der Gruppe "Teile“ die drei Zeilen "Typen“, "Farben“ und "Farben (pivot)“.

Screenshot.Portal.LegoDB.einfach

Um die Inhalte genau dieses Portals abzufragen, steht im DataService folgende Methode bereit:

getPortalRows

Dieser Methodenname in Verbindung mit dem Namen des Portals liefert als Ergebnis ein JSON-Objekt, dass die Zusammensetzung des hier angezeigten Portals abbildet. Um den Namen und weitere Parameter übergeben zu können, ist ein Array erforderlich, das für die HTTP-Übergabe mit Hilfe von PHP-Funktionen in einen json-String konvertiert wird.

$jRequest = array('method'   => 'getPortalRows',
     'requestid' => 1,
     'param'     => array(
                    array('portal' => 'Schulung-einfach')
                 ));

Der Eintrag "method“ definiert hier die aufzurufende Methode; die Request-ID eine eindeutige ID, um bei asynchron ablaufenden Anfragen die Rückgabedaten wieder eindeutig zuordnen zu können; und die Parameter (über "param“) definieren die Parameter für die aufzurufende DataService-Methode.

Für den HTTP-Aufruf erfolgt die Definition weiterer Parameter und deren Kombination mit den oben genannten:

$CONTEXT_OPT = array('http' => array(
      'method'    => 'POST',
      'content'   => json_encode($jRequest),
      'header'    => 'Content-Type: application/json\r\n'.
'Accept: application/json\r\n'));

Bei den Parametern "method“ und "header“ handelt es sich um Standard-HTTP-Parameter. Zu beachten ist hierbei, dass der Parameter "content“ das zuvor definierte Array als JSON-Objekt beinhaltet.

Dieses Array wird nun per PHP-Funktion "stream_context_create“ konvertiert und mit Hilfe von "file_get_contents“ an die URL des DataServices übergeben.

$context = stream_context_create( $CONTEXT_OPT );
$jRes = file_get_contents( $url, false, $context );

Wenn der Aufruf erfolgreich war, beinhaltet die Variable "$jRes“ einen json-String, der das Portal "Schulung-einfach“ beschreibt.

 

Rückgabewert der Portalkonfiguration (json-String)

{"requesterror":0,
"requestid":1,
"requestmethod":"getPortalRows",
"requestduration":0.0157,
"result":{
"rc":0,
"error":"",
"data":{
"g":[{
 "n":"Teile",
 "z":[{
  "n":"Typen",
"b":"",
"id":null,
"rownr":"0",
"list":"Item-Type List",
    "listiid":"2066f650fa20202020212023",
"pivot":""
},
{
  "n":"Farben",
"b":"",
"id":null,
"rownr":"1",
"list":"Colour-List",
       "listiid":"2066f64ec520202020212023",
"pivot":""
},
{
  "n":"Farben (pivot)",
"b":"","id":null,
"rownr":"2",
"list":"Colour-List",
  "listiid":"2066f64ec520202020212023",
"pivot":"Farbe je Jahr"
     }],
"id":null,
"groupnr":"0"
   }],
"i":"206decae3820202020212023",
"n":"Schulung-einfach",
"LastBearbId":"206decae8820202020212023"
}
}
}

Die Rückgabewerte zu der eigentlichen Anfrage ("request“) befinden sich innerhalb dieses JSON-Objektes auf der obersten Ebene der Hierarchie. In dem gezeigten Beispiel liefert der Wert "requesterror“ den Wert null, wenn die Anfrage korrekt beantwortet werden konnte. Die "requestid“ und "requestmethod" liefern dieselben Werte zurück, mit der die Anfrage gestellt wurde. Über die "requestduration“ ist ersichtlich, wie schnell (in Sekunden) die Anfrage abgearbeitet wurde.

Das Ergebnis zu der abgefragten Methode befindet sich in der Unterstruktur "result“ -> "data“.

Innerhalb der Unterstruktur "data“ befinden sich unter dem Bezeichner "g“ die Gruppen. Der Name des Portals ist innerhalb von "data“ unter dem Schlüssel "n“ abzulesen.

"data":{
   "g":[{
     [.......]
   }],
   "i":"206decae3820202020212023",
   "n":"Schulung-einfach",
   "LastBearbId":"206decae8820202020212023" 

Innerhalb einer Gruppe befinden sich der Name der Gruppe unter dem Schlüssel "n“ und die einzelnen Zeilen unter dem Schlüssel "z“.

"n":"Teile",
"z":[{
     "n":"Typen",
"b":"",
"id":null,
"rownr":"0",
"list":"Item-Type List",
     "listiid":"2066f650fa20202020212023",
"pivot":""
     },

Je Zeile sind der Name ("n“), die Zeilennr, ("rownr“), die aufzurufende Liste ("list“) mit der dazugehörenden ID und ggf. die aufzurufende Pivot-Tabelle ("pivot“) der Liste ersichtlich.

Über die Inhalte dieses JSON-Objektes erfolgt nun die Abfrage weiterer Informationen aus der Datenbank. Sind die Portal-Informationen bereits bekannt, können Sie auf das Auslesen der Portalkonfiguration verzichten.

 

 Hinweise zur Online-Hilfe
 

© 2017 Cortex AG
(letzte Aktualisierung: 12.04.2017)

 Haftungsausschluss 

Impressum    AGB