Benutzer-Werkzeuge

Webseiten-Werkzeuge


dstore-php:examples

dStore_php Beispiele

Im folgenden finden sich einige Code-Schnipsel, die verdeutlichen sollen wie konkrete Methoden von dStore agora über die dStore_php Bibliothek aufgerufen werden.

Methode /item/get

use dStore_php\WebService;
 
$service = new WebService\Service( WebService\Scheme::HTTP,'dbap-demo.dstore.de', 80);
 
$request = new WebService\Requests\Item\Get\Request(
			new WebService\Requests\AccessData('default'),
			array(
				'Template' => 'ItemList'
			)
		);
 
$service->execute($request);
 
$xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument();
 
$items = $xml_result->getItems();

Generische Requests

Über die Klasse \dStore_php\WebService\Requests\Request können „generische“ Requests abgesetzt werden. Dies wird für die Methoden verwendet, für die es (noch) keine konkreten Implementierungen in der dStore_php gibt. Im folgende einige Beispiele für generische Anfragen.

/item/getBinary

use dStore_php\WebService;
 
$service = new WebService\Service( WebService\Scheme::HTTP,'dbap-demo.dstore.de', 80);
 
$request = new WebService\Requests\Request(
                        new WebService\Requests\AccessData('default'),
			WebService\Requests\Method::GET,
			'/item/getBinary',
			array(
				'BinaryCodeID' => 1
			)
		);
 
$service->execute($request);
 
$BinaryCode = $request->getResponse()->getBody()->toString();
$ContentType = $request->getResponse()->getHeaderFields()->itemAt('Content-Type');

/item/get

Alternativ zu dem oben beschriebenen Weg kann diese Methode auch über einen „generischen“ Request aufgerufen werden, dann stehen jedoch die Zugriffsfunktionen wie getItems() nicht zur Verfügung und der Zugriff erfolgt ausschließlich über z.B. XPath:

use dStore_php\WebService;
 
$service = new WebService\Service( WebService\Scheme::HTTP,'dbap-demo.dstore.de', 80);
 
$request = new WebService\Requests\Request(
                        new WebService\Requests\AccessData('default'),
			WebService\Requests\Method::GET,
			'/item/get',
			array(
				'Template' => 'ItemList'
			)
		);
 
$service->execute($request);
 
$xmlDocument = $request->getResponse()->getBody()->toSimpleXmlDocument();
$result = $xmlDocument->xpath('/GetItemsResponse/Response/ListOfItems/Item');

Methode aus /engine

Hier ein Aufruf der Methode om_GetSurchargeTypeTaxes mit einem DateTime-Parameter:

use dStore_php\WebService;
 
$service = new WebService\Service( WebService\Scheme::HTTP,'dbap-demo.dstore.de', 80);
 
$request = new WebService\Requests\Engine\Procedure\Request(
			new WebService\Requests\AccessData('default'),
			'om_GetSurchargeTypeTaxes',
			array(
				'Date' => new DateTime('last monday', new DateTimeZone('America/New_York'))
			)
		);
 
$service->execute($request);
 
$xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument();
 
$ResultSet= $xml_result->getResultSet();
 
// Alternativ als Typ-gecastetes assoziatives PHP-Array:
$ResultArray = $xml_result->getRowsAsArray();

Methode /engine/execute

In seltenen Fälle muss sichergestellt sein, dass mehrere Prozeduren in einem Batch gemeinsam aufgerufen werden. Hier ein entsprechendes Beispiel:

use dStore_php\WebService;
 
$service = new WebService\Service( WebService\Scheme::HTTP,'dbap-demo.dstore.de', 80);
 
$request = new WebService\Requests\Engine\Execute\Request( new WebService\Requests\AccessData('default']) );
 
$batch1 = new WebService\Requests\Engine\Execute\Batch();
 
$batch1->getStatements()->add(
	new WebService\Requests\Engine\Execute\ProcedureStatement(
		'if_im_SearchTreeNodes_Conds',
		array(
			'CharacteristicIDList' => '57',
			'Operator1List' => '=',
			'Condition1List' => 'tlimo',
			'Operator2List' => null,
			'Condition2List' => null,
			'SearchOptionList' => '8',
			'Delete' => 1,
			'Separator' => '¶'
		)
	)
);
 
$batch1->getStatements()->add(
	new WebService\Requests\Engine\Execute\ProcedureStatement(
		'if_im_SearchTreeNodes_Conds',
		array(
			'CharacteristicIDList' => '53',
			'Operator1List' => '>',
			'Condition1List' => '10',
			'Operator2List' => '<',
			'Condition2List' => '20',
			'SearchOptionList' => '26',
			'Delete' => 0,
			'Separator' => '¶'
		)
	)
);
 
$batch1->getStatements()->add(
	new WebService\Requests\Engine\Execute\ProcedureStatement(
		'im_SearchTreeNodes_Pu',
		array(
			'LevelID' => 5
		)
	)
);
 
$request->getBatches()->add($batch1);
 
$service->execute($request);
 
$xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument();
 
var_dump(count($xml_result->getRootElement()->Batch->Statement));
dstore-php/examples.txt · Zuletzt geändert: 13.11.2014 (Externe Bearbeitung)