WebService-Operationen

Die kleinsten Funktionsblöcke welche bei WebServices aufgerufen werden können, werden als "Operationen" bezeichnet. Hier werden diese Funktionsblöcke beschrieben.

Man beachte, die folgenden Punkte:
  • Es steht nicht pro OpaccERP-Service eine entsprechende typisierte WebService-Operation zur Verfügung (Design-Entscheidung).
  • Die "technische Dokumentation" kann der WSDL-Beschreibung entnommen werden.

EncryptPassword

Mittels dieser Operation kann das Benutzer-Passwort, welches bei den anderen Requests mitgegeben werden muss, verschlüsselt werden.
Beispiel-Request:
...
SOAPAction=http://www.opacc.com/Opacc/ServiceBus/Interface/Ws/Generic/Generic/EncryptPassword
...
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
 xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <SOAP-ENV:Body>
  <m:EncryptPassword xmlns:m="http://www.opacc.com/Opacc/ServiceBus/Interface/Ws/Generic">
   <m:plainPassword>TOP-SECRET</m:plainPassword>
  </m:EncryptPassword>
 </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Beispiel-Response:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/evelope/">
 <s:Body>
  <EncryptPasswordResponse xmlns="http://www.opacc.com/Opacc/ServiceBus/Interface/Ws/Generic">
   <EncryptPasswordResult>024VsUIfGzvzUpE0GIvbZK6OQ==iG5MMWkcNsx/Pt6W3sYSlA==</EncryptPasswordResult>
  </EncryptPasswordResponse>
 </s:Body>
</s:Envelope>
Wichtig
Wichtig
Das so verschlüsselte Passwort kann nur für die Kommunikation über die WebService-Schnittstelle verwendet werden!

FlatRequest

Mit dieser Operation können die OpaccERP-Services aufgerufen werden. Dies analog zur Sicht, wie sie die OpaccOXAS LiveDocumentation bietet.
Notiz
Notiz
Im Normalfall müssen im Kontext nur Mandant, Benutzer und Passwort mitgegeben werden. Für "PortId" wird im Normalfall "Biz" verwendet.
Beispiel-Request...
...
SOAPAction=http://www.opacc.com/Opacc/ServiceBus/Interface/Ws/Generic/Generic/FlatRequest
...
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
 xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
 xmlns:m0="http://www.opacc.com/Opacc/ServiceBus/Interface/Ws" 
 xmlns:m1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
 <SOAP-ENV:Body>
  <m:FlatRequest xmlns:m="http://www.opacc.com/Opacc/ServiceBus/Interface/Ws/Generic">
   <m:PortId>Biz</m:PortId>
   <m:OperationId>GetBo</m:OperationId>
   <m:RequestContext>
    <m0:ClientId>1</m0:ClientId>
    <m0:UserId>73</m0:UserId>
    <m0:Password>024zdDTexfRPU3YBkEp0DS8SQ==FG1CiEqHoXFehLnfrifnjw==</m0:Password>
   </m:RequestContext>
   <m:RequestData>
    <m:Parameters>
     <m1:string>Addr</m1:string> <!-- BO-Type -->
     <m1:string>Kriens</m1:string> <!-- Startpunkt -->
     <m1:string>ne</m1:string> <!-- Suchanweisung -->
     <m1:string>3</m1:string> <!-- Index -->
     <m1:string>10</m1:string> <!-- Anzahl Datensätze -->
     <m1:string>1</m1:string> <!-- Fixierte Segmente -->
     <m1:string>Addr.LastName matches 'B*'</m1:string> <!-- Filter -->
     <m1:string>Addr.FirstName, Addr.LastName, Addr.City</m1:string> <!-- Rückgabe-Objekt -->
     <m1:string></m1:string> <!-- Virtuelle Attribute -->
    </m:Parameters>
   </m:RequestData>
  </m:FlatRequest>
 </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
...für folgende Eingaben:
request-example.jpg
Beispiel-Response:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
 <s:Body>
  <FlatRequestResponse xmlns="http://www.opacc.com/Opacc/ServiceBus/Interface/Ws/Generic">
   <ResponseInfo xmlns:a="http://www.opacc.com/Opacc/ServiceBus/Interface/Ws" 
    xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <a:Successful>true</a:Successful>
    <a:MessageId>NoBoth</a:MessageId>
    <a:MlsMessageText/>
   </ResponseInfo>
   <ResponseData xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <RowCount>9</RowCount>
    <ColumnCount>3</ColumnCount>
    <Columns>
     <Column>
      <Name>Addr.FirstName</Name>
      <Rows xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
       <a:string/>
       <a:string>Hans</a:string>
       <a:string/>
       <a:string>Meinrad</a:string>
       <a:string/>
       <a:string>Michelle</a:string>
       <a:string>Monika</a:string>
       <a:string>Hans</a:string>
       <a:string/>
      </Rows>
     </Column>
     <Column>
      <Name>Addr.LastName</Name>
      <Rows xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
       <a:string>Battagello + Hugentobler</a:string>
       <a:string>Baumann</a:string>
       <a:string>Bieri Federn + Bremsen AG</a:string>
       <a:string>Bless</a:string>
       <a:string>BOVE</a:string>
       <a:string>Brändli</a:string>
       <a:string>Brügger</a:string>
       <a:string>Bucher</a:string>
       <a:string>Bur &amp; Co. "Burekönig"</a:string>
      </Rows>
     </Column>
     <Column>
      <Name>Addr.City</Name>
      <Rows xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
       <a:string>Kriens</a:string>
       <a:string>Kriens</a:string>
       <a:string>Kriens</a:string>
       <a:string>Kriens</a:string>
       <a:string>Kriens</a:string>
       <a:string>Kriens</a:string>
       <a:string>Kriens</a:string>
       <a:string>Kriens</a:string>
       <a:string>Kriens</a:string>
      </Rows>
     </Column>
    </Columns>
   </ResponseData>
  </FlatRequestResponse>
 </s:Body>
</s:Envelope>

GenericRequest

Wichtig
Wichtig
Diese Operation steht nur für interne Zwecke zur Verfügung und wird an dieser Stelle nicht näher beschrieben.