ich versuche (verzweifle ist wohl die bessere Umschreibung) gerade den ERP SOAP Connector mit C# anzusprechen. Ich bekomme eine valide WSDL, die ich als Service Referenz im Visual Studio einbinde. Dort erhalte ich auch nahezu alle notwendigen Methoden, Typen und Klassen. Doch eine fehlt: OXERPLogin()!
OXID PE 4.5.0 34568 für PHP 5.3
ERP SOAP Connector 2.9.0 35501 für PHP 5.3
Nutze ebenfalls explizit Protokoll Version 2.9.0
Diese Methode wird mir auch in der WSDL angezeigt, ich habe sie aber beim besten Willen in C# nicht zur Verfügung. Ohne diese Methode kann ich natürlich rein garnichts bewerkstelligen.
Hat hier jemand Erfahrung mit dieser Kombination? Ich brauche hier definitiv die SOAP Funktionalität und mit WSDL hat Visual Studio eigentlich auch keine Probleme (wird eine DLL zur Anbindung an diverse ERP & WaWi Systeme). Leider ist dieser Thread hier ja schon mehr oder weniger tot: http://www.oxid-esales.com/forum/showthread.php?t=5106
sicher, dass OXERPLogin nicht eine private methode ist, die du via webservice gar nicht ansprechen sollst sondern die eventuell beim initialisieren entsprechender klassen automatisch ausgeführt wird?
ich kenn leider die soap api nicht, könnte mir jedoch vorstellen dass es eher so abläuft
Das dachte ich zuerst auch, also habe ich es mit dem OXERPLoginRequestBody und dem EXERPLoginRequest Objekt probiert. Diese allein geben keine Rückgabewerte und es gibt auch keine Methode die ein OXERPLoginRequest als Parameter hätte.
Danach habe ich es dann im Verbund von OXERPLoginRequest und OXERPLoginResponse versucht (man wird ja nicht müde alles auszuprobieren), aber auch da bisher kein Erfolg:
var loginRequestBody = new OXERPLoginRequestBody("admin", "password", 1, 0);
var loginRequest = new OXERPLoginRequest(loginRequestBody);
var loginResult = new OXERPType();
var loginResponseBody = new OXERPLoginResponseBody(loginResult);
var loginResponse = new OXERPLoginResponse(loginResponseBody);
_sessionId = loginResult.sMessage;
Leider beinhaltet loginResult nichts, es ist also, wie zu vermuten noch im gleichen Zustand wie bei der Initialisierung. Laut Dokumentation, ich zitiere einmal:
OXERPLogin logs in to eShop (or Subshop) and returns the session-ID. This session-ID is needed for all other function calls. Only objects from the main shop/subshop the login is made for can be accessed. Parameters: sUserName (string), sPassword (string), iShopID (integer), iLanguage (integer), Returns OXERPLoginResult (OXERPType).
Und auch in einigen Forumsdiskussionen habe ich gesehen, dass die Leute mit OXERPLogin arbeiten (allerdings ging es hierbei um PHP) und eine SessionID zurückgeliefert bekamen.
leider habe ich die SOAP schnittstelle nicht und kann daher nicht direkt schauen. wenn du die WSDL im browser aufrufst zeigt er dir doch alle methoden etc an mit entsprechenden infos. was sagt er denn da?
da müsste auch stehen ob die methode vlt private oder protected ist.