Wie die Ergebnisse als SOAP-Server zurückliefern

jack-x

Grünschnabel
Ich muß eine Webservices zum Datenabgleich zwischen einer Online-Plattform und einem intranet erstellen.
Im Moment bastel ich noch an Testscripten.

Das einzubindene WSDL

Ein >Testscript< gibt mir nur eine lange Liste von Werten aus und den faultstring "DTD are not supported by SOAP" (fehlt der Envelope?).

Aus den ganzen Tutorial die ich im Netz finde, werde ich nicht wirklich schlau.

Hier mal ein erster Hinkversuch, um überhaupt etwas zurückgeliefert zu bekommen.
PHP:
<?php
	ini_set('display_errors', 1);
	ini_set("soap.wsdl_cache_enabled", "0");
	
	$error['no_access']	= "Ihre Abfrage kann nicht verarbeitet werden";
	$error['no_server']		= "Keine Verbindung zum Datenbank-Server";
	$error['no_result']		= "Ihre Abfrage lieferte keine Ergebnisse";
	
	function  SetCustomerTraining($nick, $pword, $customer_number, $appointment, $course_group, $course, $modul_id, $city, $customers) { 
		global $error;
		global $intranet;
		global $mysql;
		//---------- Knoll-Konfiguration einbinden ----------
		include($_SERVER['DOCUMENT_ROOT']."/config/config.webservice.php");
		$participants['name'] => array('Testkunde 1', 'Testkunde 2', 'Testkunde 3', 'Testkunde 4', 'Testkunde 5');
		$participants['result'] => array('new', 'upadte', 'new', 'new', 'update');
		$answer = array('Training' => $participants);
		return("Noch keine Verarbeitung");
		}
		
	try {
		$server = new SoapServer("http://cms.vma-autoteile.de/webservices/SetCustomerTraining.wsdl", 'encoding' => 'UTF-8'); //, array('uri' => "http://cms.vma-autoteile.de/knoll/"));                //{uri} müsst ihr ersetzen mit den pfad  
		$server->addFunction('SetCustomerTraining');            //Funktion zum Server hinzufügen 
		$server->addFunction(SOAP_FUNCTIONS_ALL);
		$server->handle();                     //Hier wird die Abfrage abgearbeitet
		}

	catch (SOAPFault $f)  {
		print $f->faultstring;
		}
?>

Was muß ich in der Funktion SetCustomerTraining eintragen, bzw, wie die Parameter setzten um so eine Liste an des Intarnet zurückzuliefern:
Code:
<Training>
  <name>Teilnehmer 1</name>
  <result>new</result>
</Training>
<Training>
  <name>Teilnehmer 2</name>
  <result>delete</result>
</Training>
<Training>
  <name>Teilnehmer 3</name>
  <result>update</result>
</Training>

Bin mir nicht mal sicher das das WSDL richtig geschrieben ist.
 
Zurück