SlideShare ist ein Scribd-Unternehmen logo
1 von 15
evenos Consulting GmbH 1
Webservices in iDempiere
Jan Thielemann
evenos Consulting GmbH 2
Inhalt
 Was sind Webservices?
 Webservices in iDempiere aktivieren
 ModelADService
 CompositeInterface
 Webservices erstellen
 Webservices testen/benutzen
 Konzepte zur Nutzung von Webservices in iDempiere
evenos Consulting GmbH 3
Was sind Webservices?
Ein Webservice oder Webdienst ist eine Softwareanwendung,
die über ein Netzwerk für die direkte Maschine-zu-Maschine-
Interaktion bereitgestellt wird
evenos Consulting GmbH 4
Webservices in iDempiere aktivieren
Die Webservice in iDempiere sollten standardmäßig aktiviert sein. In älteren Versionen kann
jedoch eine nachträgliche Aktivierung erforderlich sein. Dies kann auf zwei Arten erfolgen
 Felix Web Console (
– http://server:8080/osgi/system/console/bundles
– Bundle suchen
– Bundle starten
 OSGi Console
– ss für Liste der Bundles
– Bundle in Liste finden
– start <Bundle-Nr>
evenos Consulting GmbH 5
ModelADService
 Generischer Webservice mit verschiedenen Funktionen
– setDocAction
• Den Status eines Dokuments ändern
• Workflows werden nicht ausgeführt!
– RunProcess
• Einen Prozess starten
• Prozess kann Dokument Workflow sein
– GetList
• Liste der Einträge einer Referenz (Table oder List)
– CreateData
• Datensätze anlegen
– UpdateData
• Datensätze updaten
– DeleteData
• Datensätze löschen
– ReadData
• Einzelnen Datensatz anhand der RecordID auslesen
– QueryData
• Datensätze anhand von Input-Feldern oder Filter finden
 Es wird immer nur genau ein Aufruf ausgeführt
 Validatorn und Model-Hooks bei createData, updateData und deleteData
evenos Consulting GmbH 6
CompositeInterface
Zusammenfassen mehrerer ModelADService-Aufrufe in einem einzigen CompositeInterface-Aufruf
Liste der Aufrufe = operations
Einzelner Aufruf = operation
Jede Operation hat ein pre- und postCommit Tag
Jede Operation hat einen TargetPort
– createData
– readData
– updateData
– deleteData
– runProcess
– setDocAction
– createUpdateData
 createData, readData, updateData, deleteData und createUpdateData benötigen <ModelCRUD>
 setDocAction benötigt <ModelSetDocAction>
 runProcess benötigt <ModelRunProcess>
 Nicht jeder ModelADService-Aufruf funktioniert
evenos Consulting GmbH 7
Webservices erstellen
Hilfe unter http://www.adempiere.com/Adempiere_Web_Services
Fenster: Web Service Security
Kopfdaten
– Search Key → serviceType
– Web Service → ModelADService oder CompositeInterface
– Web Service Method → Gewünschte Methode (create-, read- und queryData, runProcess, etc.)
– Table → Optionale Tabelle des Webservices, wichtig wenn Felder ein- bzw. zurückgegeben werden sollen
 Web Service Parameters
– Je nach Webservice unterschiedlich
– Typische Parameter:
• tableName/TableName
• recordID/RecordID
• filter/Filter
• action/Action
 Web Service Access
– Rollen, die diesen Webservice nutzen dürfen
evenos Consulting GmbH 8
Webservices erstellen
Die folgenden Tabs sind nur sichtbar, wenn in den Kopfdaten eine Tabelle ausgewählt wurde
Web Service Field Input
– Hier werden Felder definiert, die per Aufruf übergeben werden (z. B. Name und Suchschlüssel bei
createData)
– Spaltenname (kann aus allen Spalten der Tabelle ausgesucht werden oder Freitext)
– Referenz der Spalte (String, Integer, Date, etc.)
– Identifier (?)
– Allow Null Value (?)
– Identifier Logic (?)
 Web Service Field Output
– Hier werden Felder definiert, die der Webservice zurück gibt
– Spaltenname (kann aus allen Spalten der Tabelle ausgesucht werden oder Freitext)
evenos Consulting GmbH 9
iDempiere Webservices nutzen das SOAP-Protokoll
Tool zum Testen: SoapUI (http://www.soapui.org)
Übersicht der Endpunkte unter http://myserver/ADInterface/services
ModelADService Endpunkt: http://myserver/ADInterface/services/ModelADService?wsdl
CompositeInterface Endpunkt: http://myserver/ADInterface/services/compositeInterface?wsdl
Webservices testen/benutzen
evenos Consulting GmbH 10
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:_0="http://idempiere.org/ADInterface/1_0">
<soapenv:Header/>
<soapenv:Body>
<_0:setDocAction>
<_0:ModelSetDocActionRequest>
<_0:ModelSetDocAction>
<_0:serviceType>iDempiereDocAction</_0:serviceType>
<_0:tableName>C_Order</_0:tableName>
<_0:recordID>1000000</_0:recordID>
<_0:docAction>VO</_0:docAction>
</_0:ModelSetDocAction>
<_0:ADLoginRequest>
<_0:user>WebService</_0:user>
<_0:pass>MYPASSWORD</_0:pass>
<_0:lang>191</_0:lang>
<_0:ClientID>11</_0:ClientID>
<_0:RoleID>50004</_0:RoleID>
<_0:OrgID>11</_0:OrgID>
<_0:WarehouseID>103</_0:WarehouseID>
<_0:stage>0</_0:stage>
</_0:ADLoginRequest>
</_0:ModelSetDocActionRequest>
</_0:setDocAction>
</soapenv:Body>
</soapenv:Envelope>
Webservices testen/benutzen
Document Action
evenos Consulting GmbH 11
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:_0="http://idempiere.org/ADInterface/1_0">
<soapenv:Header/>
<soapenv:Body>
<_0:getList>
<_0:ModelGetListRequest>
<_0:ModelGetList>
<_0:serviceType>iDempiereGetList</_0:serviceType>
<_0:AD_Reference_ID>148</_0:AD_Reference_ID>
<_0:Filter>Name like 'Prepay%'</_0:Filter>
</_0:ModelGetList>
<_0:ADLoginRequest>
<_0:user>WebService</_0:user>
<_0:pass>MYPASSWORD</_0:pass>
<_0:lang>191</_0:lang>
<_0:ClientID>11</_0:ClientID>
<_0:RoleID>50004</_0:RoleID>
<_0:OrgID>11</_0:OrgID>
<_0:WarehouseID>103</_0:WarehouseID>
<_0:stage>0</_0:stage>
</_0:ADLoginRequest>
</_0:ModelGetListRequest>
</_0:getList>
</soapenv:Body>
</soapenv:Envelope>
Webservices testen/benutzen
Referenz-Liste
evenos Consulting GmbH 12
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0">
<soapenv:Header/>
<soapenv:Body>
<_0:queryData>
<_0:ModelCRUDRequest>
<_0:ModelCRUD>
<_0:serviceType>iDempiereQueryData</_0:serviceType>
<_0:TableName>M_Product</_0:TableName>
<_0:RecordID>0</_0:RecordID>
<_0:Filter>name like 'Aza%'</_0:Filter>
<_0:Action>Read</_0:Action>
</_0:ModelCRUD>
<_0:ADLoginRequest>
<_0:user>WebService</_0:user>
<_0:pass>MYPASSWORD</_0:pass>
<_0:lang>191</_0:lang>
<_0:ClientID>11</_0:ClientID>
<_0:RoleID>50004</_0:RoleID>
<_0:OrgID>11</_0:OrgID>
<_0:WarehouseID>103</_0:WarehouseID>
<_0:stage>0</_0:stage>
</_0:ADLoginRequest>
</_0:ModelCRUDRequest>
</_0:queryData>
</soapenv:Body>
</soapenv:Envelope>
Webservices testen/benutzen
Daten Abfragen
evenos Consulting GmbH 13
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0">
<soapenv:Header/>
<soapenv:Body>
<_0:queryData>
<_0:ModelCRUDRequest>
<_0:ModelCRUD>
<_0:serviceType>iDempiereQueryData</_0:serviceType>
<_0:TableName>M_Product</_0:TableName>
<_0:RecordID>0</_0:RecordID>
<_0:Action>Read</_0:Action>
<_0:DataRow>
<_0:field column="Name" >
<_0:val>Assembly Area</_0:val> <!--Hier muss der exakte Name stehen, Wildcards funktionieren nicht-->
</_0:field>
</_0:DataRow>
</_0:ModelCRUD>
<_0:ADLoginRequest>
<_0:user>WebService</_0:user>
<_0:pass>MYPASSWORD</_0:pass>
<_0:lang>191</_0:lang>
<_0:ClientID>11</_0:ClientID>
<_0:RoleID>50004</_0:RoleID>
<_0:OrgID>11</_0:OrgID>
<_0:WarehouseID>103</_0:WarehouseID>
<_0:stage>0</_0:stage>
</_0:ADLoginRequest>
</_0:ModelCRUDRequest>
</_0:queryData>
</soapenv:Body>
</soapenv:Envelope>
Webservices testen/benutzen
Daten Abfragen
evenos Consulting GmbH 14
Konzepte zur Nutzung von Webservices in iDempiere
 Daten direkt anlegen (ggf. mehrere Calls)
– Fehler bei unterbrochener Übertragung (bei mehreren Calls)
– Geeignet um einzelne Einträge zu erstellen/ändern/löschen
 Daten direkt mittels Composite Webservice anlegen
– Kein Fehler bei unterbrochener Übertragung
– Geeignet um verschachtelte Einträge (z. B. Geschäftspartner) zu erstellen/ändern/löschen
 Daten in Importtabelle schreiben
– Einfaches Anlegen von Datensätzen
– Ermöglicht Batch-Verarbeitung
– Importprozess kann über Webservice, Scheduler oder manuell gestartet werden
evenos Consulting GmbH 15
Danke für eure Aufmerksamkeit
Noch Fragen? Schick mir eine Mail an jan.thielemann@evenos.de

Weitere ähnliche Inhalte

Andere mochten auch

Web20 Tu Kaiserlautern
Web20 Tu KaiserlauternWeb20 Tu Kaiserlautern
Web20 Tu KaiserlauternBernd Schmitz
 
Anleitung google plus für ofw-studenten
Anleitung google plus für ofw-studentenAnleitung google plus für ofw-studenten
Anleitung google plus für ofw-studentenBernd Schmitz
 
Kleine Hotels Within Andalusien
Kleine Hotels Within Andalusien
Kleine Hotels Within Andalusien
Kleine Hotels Within Andalusien leslie0mack5
 
Kompass für Medienkompetenz
Kompass für MedienkompetenzKompass für Medienkompetenz
Kompass für Medienkompetenzpechakucha1
 
Norwich Estates
Norwich EstatesNorwich Estates
Norwich EstatesKarl Amc
 
Selbstständigkeit und Elterngeld. So funktioniert es.
Selbstständigkeit und Elterngeld. So funktioniert es.Selbstständigkeit und Elterngeld. So funktioniert es.
Selbstständigkeit und Elterngeld. So funktioniert es.Debitoor
 
Facebook und cybermobbing
Facebook und cybermobbingFacebook und cybermobbing
Facebook und cybermobbingpechakucha1
 
STORY OF LEONARD
STORY OF LEONARDSTORY OF LEONARD
STORY OF LEONARDsacha
 
Secondlife Virtuelles Marketing Tu Kaiserslautern
Secondlife Virtuelles Marketing Tu KaiserslauternSecondlife Virtuelles Marketing Tu Kaiserslautern
Secondlife Virtuelles Marketing Tu KaiserslauternBernd Schmitz
 
AIMS interim management market study Germany
AIMS interim management market study GermanyAIMS interim management market study Germany
AIMS interim management market study GermanyThorsten2Becker2
 
Kundenmagnet Content Marketing
Kundenmagnet Content MarketingKundenmagnet Content Marketing
Kundenmagnet Content MarketingMelanie Tamble
 
Advertising 410 Quiz 2
Advertising 410 Quiz 2Advertising 410 Quiz 2
Advertising 410 Quiz 2Lolo2086
 
Wie Innovation mit der Einkommensschere, dem Anlagenotstand und unserer Gründ...
Wie Innovation mit der Einkommensschere, dem Anlagenotstand und unserer Gründ...Wie Innovation mit der Einkommensschere, dem Anlagenotstand und unserer Gründ...
Wie Innovation mit der Einkommensschere, dem Anlagenotstand und unserer Gründ...Jürgen H. Stäudtner
 

Andere mochten auch (17)

Web20 Tu Kaiserlautern
Web20 Tu KaiserlauternWeb20 Tu Kaiserlautern
Web20 Tu Kaiserlautern
 
FinPro_2016_Final
FinPro_2016_FinalFinPro_2016_Final
FinPro_2016_Final
 
Anleitung google plus für ofw-studenten
Anleitung google plus für ofw-studentenAnleitung google plus für ofw-studenten
Anleitung google plus für ofw-studenten
 
Datenschutz
DatenschutzDatenschutz
Datenschutz
 
Kleine Hotels Within Andalusien
Kleine Hotels Within Andalusien
Kleine Hotels Within Andalusien
Kleine Hotels Within Andalusien
 
Kompass für Medienkompetenz
Kompass für MedienkompetenzKompass für Medienkompetenz
Kompass für Medienkompetenz
 
Winder
WinderWinder
Winder
 
Norwich Estates
Norwich EstatesNorwich Estates
Norwich Estates
 
Selbstständigkeit und Elterngeld. So funktioniert es.
Selbstständigkeit und Elterngeld. So funktioniert es.Selbstständigkeit und Elterngeld. So funktioniert es.
Selbstständigkeit und Elterngeld. So funktioniert es.
 
Facebook und cybermobbing
Facebook und cybermobbingFacebook und cybermobbing
Facebook und cybermobbing
 
STORY OF LEONARD
STORY OF LEONARDSTORY OF LEONARD
STORY OF LEONARD
 
Secondlife Virtuelles Marketing Tu Kaiserslautern
Secondlife Virtuelles Marketing Tu KaiserslauternSecondlife Virtuelles Marketing Tu Kaiserslautern
Secondlife Virtuelles Marketing Tu Kaiserslautern
 
AIMS interim management market study Germany
AIMS interim management market study GermanyAIMS interim management market study Germany
AIMS interim management market study Germany
 
Kundenmagnet Content Marketing
Kundenmagnet Content MarketingKundenmagnet Content Marketing
Kundenmagnet Content Marketing
 
Advertising 410 Quiz 2
Advertising 410 Quiz 2Advertising 410 Quiz 2
Advertising 410 Quiz 2
 
Mobile-portfolio_de
Mobile-portfolio_deMobile-portfolio_de
Mobile-portfolio_de
 
Wie Innovation mit der Einkommensschere, dem Anlagenotstand und unserer Gründ...
Wie Innovation mit der Einkommensschere, dem Anlagenotstand und unserer Gründ...Wie Innovation mit der Einkommensschere, dem Anlagenotstand und unserer Gründ...
Wie Innovation mit der Einkommensschere, dem Anlagenotstand und unserer Gründ...
 

Ähnlich wie Präsentation webservices

Citrus Agile Testing Meetup (german)
Citrus Agile Testing Meetup (german)Citrus Agile Testing Meetup (german)
Citrus Agile Testing Meetup (german)christophd
 
Einführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core MiddlewaresEinführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core MiddlewaresMatthias Jauernig
 
PHP-Module in statischen Seiten - Architektur-Ansätze
PHP-Module in statischen Seiten - Architektur-AnsätzePHP-Module in statischen Seiten - Architektur-Ansätze
PHP-Module in statischen Seiten - Architektur-AnsätzeRalf Lütke
 
Agiles Modellieren mit Domain Specific Languages
Agiles Modellieren mit Domain Specific LanguagesAgiles Modellieren mit Domain Specific Languages
Agiles Modellieren mit Domain Specific LanguagesDominik Hirt
 
AndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
AndroMDA - Einführung in eine Open Source Model Driven Architecture LösungAndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
AndroMDA - Einführung in eine Open Source Model Driven Architecture LösungEduard Hildebrandt
 
IBM Chat/Sametime Migration (CCTY 2016 Munich)
IBM Chat/Sametime Migration (CCTY 2016 Munich)IBM Chat/Sametime Migration (CCTY 2016 Munich)
IBM Chat/Sametime Migration (CCTY 2016 Munich)Novakenstein
 
2012 borys neselovskyi_automatisierte_middleware_installation_praesentation
2012 borys neselovskyi_automatisierte_middleware_installation_praesentation2012 borys neselovskyi_automatisierte_middleware_installation_praesentation
2012 borys neselovskyi_automatisierte_middleware_installation_praesentationbneselov
 
Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)
Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)
Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)Novakenstein
 
OSMC 2012 | Automatische Konfiguration von Nagios/Icinga mit Agordamon by Chr...
OSMC 2012 | Automatische Konfiguration von Nagios/Icinga mit Agordamon by Chr...OSMC 2012 | Automatische Konfiguration von Nagios/Icinga mit Agordamon by Chr...
OSMC 2012 | Automatische Konfiguration von Nagios/Icinga mit Agordamon by Chr...NETWAYS
 
Große Applikationen mit AngularJS
Große Applikationen mit AngularJSGroße Applikationen mit AngularJS
Große Applikationen mit AngularJSSebastian Springer
 
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...LeanIX GmbH
 
Keine Angst vor Sametime 8.5.1
Keine Angst vor Sametime 8.5.1Keine Angst vor Sametime 8.5.1
Keine Angst vor Sametime 8.5.1Ulrich Krause
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersUlrich Krause
 
B1 Acocon Lotus Day 08.09.2009
B1 Acocon Lotus Day 08.09.2009B1 Acocon Lotus Day 08.09.2009
B1 Acocon Lotus Day 08.09.2009Andreas Schulte
 
Service-orientierte Architekturen
Service-orientierte ArchitekturenService-orientierte Architekturen
Service-orientierte Architekturenpscheir
 
Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsTorsten Kleiber
 
Mobile Anwendungen mit SenchaTouch
Mobile Anwendungen mit SenchaTouchMobile Anwendungen mit SenchaTouch
Mobile Anwendungen mit SenchaTouchMayflower GmbH
 
magnolia mit thymeleaf - ein agiler prozess-beschleuniger
magnolia mit thymeleaf - ein agiler prozess-beschleunigermagnolia mit thymeleaf - ein agiler prozess-beschleuniger
magnolia mit thymeleaf - ein agiler prozess-beschleunigerThomas Kratz
 

Ähnlich wie Präsentation webservices (20)

Citrus Agile Testing Meetup (german)
Citrus Agile Testing Meetup (german)Citrus Agile Testing Meetup (german)
Citrus Agile Testing Meetup (german)
 
Einführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core MiddlewaresEinführung in ASP.NET Core Middlewares
Einführung in ASP.NET Core Middlewares
 
PHP-Module in statischen Seiten - Architektur-Ansätze
PHP-Module in statischen Seiten - Architektur-AnsätzePHP-Module in statischen Seiten - Architektur-Ansätze
PHP-Module in statischen Seiten - Architektur-Ansätze
 
Agiles Modellieren mit Domain Specific Languages
Agiles Modellieren mit Domain Specific LanguagesAgiles Modellieren mit Domain Specific Languages
Agiles Modellieren mit Domain Specific Languages
 
AndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
AndroMDA - Einführung in eine Open Source Model Driven Architecture LösungAndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
AndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
 
IBM Chat/Sametime Migration (CCTY 2016 Munich)
IBM Chat/Sametime Migration (CCTY 2016 Munich)IBM Chat/Sametime Migration (CCTY 2016 Munich)
IBM Chat/Sametime Migration (CCTY 2016 Munich)
 
2012 borys neselovskyi_automatisierte_middleware_installation_praesentation
2012 borys neselovskyi_automatisierte_middleware_installation_praesentation2012 borys neselovskyi_automatisierte_middleware_installation_praesentation
2012 borys neselovskyi_automatisierte_middleware_installation_praesentation
 
Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)
Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)
Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)
 
OSMC 2012 | Automatische Konfiguration von Nagios/Icinga mit Agordamon by Chr...
OSMC 2012 | Automatische Konfiguration von Nagios/Icinga mit Agordamon by Chr...OSMC 2012 | Automatische Konfiguration von Nagios/Icinga mit Agordamon by Chr...
OSMC 2012 | Automatische Konfiguration von Nagios/Icinga mit Agordamon by Chr...
 
Große Applikationen mit AngularJS
Große Applikationen mit AngularJSGroße Applikationen mit AngularJS
Große Applikationen mit AngularJS
 
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
 
MVVM mit WPF
MVVM mit WPFMVVM mit WPF
MVVM mit WPF
 
Keine Angst vor Sametime 8.5.1
Keine Angst vor Sametime 8.5.1Keine Angst vor Sametime 8.5.1
Keine Angst vor Sametime 8.5.1
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
 
B1 Acocon Lotus Day 08.09.2009
B1 Acocon Lotus Day 08.09.2009B1 Acocon Lotus Day 08.09.2009
B1 Acocon Lotus Day 08.09.2009
 
Service-orientierte Architekturen
Service-orientierte ArchitekturenService-orientierte Architekturen
Service-orientierte Architekturen
 
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetproTest-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
 
Forms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and OperationsForms and Reports 12c - Processes and Automation in Development and Operations
Forms and Reports 12c - Processes and Automation in Development and Operations
 
Mobile Anwendungen mit SenchaTouch
Mobile Anwendungen mit SenchaTouchMobile Anwendungen mit SenchaTouch
Mobile Anwendungen mit SenchaTouch
 
magnolia mit thymeleaf - ein agiler prozess-beschleuniger
magnolia mit thymeleaf - ein agiler prozess-beschleunigermagnolia mit thymeleaf - ein agiler prozess-beschleuniger
magnolia mit thymeleaf - ein agiler prozess-beschleuniger
 

Präsentation webservices

  • 1. evenos Consulting GmbH 1 Webservices in iDempiere Jan Thielemann
  • 2. evenos Consulting GmbH 2 Inhalt  Was sind Webservices?  Webservices in iDempiere aktivieren  ModelADService  CompositeInterface  Webservices erstellen  Webservices testen/benutzen  Konzepte zur Nutzung von Webservices in iDempiere
  • 3. evenos Consulting GmbH 3 Was sind Webservices? Ein Webservice oder Webdienst ist eine Softwareanwendung, die über ein Netzwerk für die direkte Maschine-zu-Maschine- Interaktion bereitgestellt wird
  • 4. evenos Consulting GmbH 4 Webservices in iDempiere aktivieren Die Webservice in iDempiere sollten standardmäßig aktiviert sein. In älteren Versionen kann jedoch eine nachträgliche Aktivierung erforderlich sein. Dies kann auf zwei Arten erfolgen  Felix Web Console ( – http://server:8080/osgi/system/console/bundles – Bundle suchen – Bundle starten  OSGi Console – ss für Liste der Bundles – Bundle in Liste finden – start <Bundle-Nr>
  • 5. evenos Consulting GmbH 5 ModelADService  Generischer Webservice mit verschiedenen Funktionen – setDocAction • Den Status eines Dokuments ändern • Workflows werden nicht ausgeführt! – RunProcess • Einen Prozess starten • Prozess kann Dokument Workflow sein – GetList • Liste der Einträge einer Referenz (Table oder List) – CreateData • Datensätze anlegen – UpdateData • Datensätze updaten – DeleteData • Datensätze löschen – ReadData • Einzelnen Datensatz anhand der RecordID auslesen – QueryData • Datensätze anhand von Input-Feldern oder Filter finden  Es wird immer nur genau ein Aufruf ausgeführt  Validatorn und Model-Hooks bei createData, updateData und deleteData
  • 6. evenos Consulting GmbH 6 CompositeInterface Zusammenfassen mehrerer ModelADService-Aufrufe in einem einzigen CompositeInterface-Aufruf Liste der Aufrufe = operations Einzelner Aufruf = operation Jede Operation hat ein pre- und postCommit Tag Jede Operation hat einen TargetPort – createData – readData – updateData – deleteData – runProcess – setDocAction – createUpdateData  createData, readData, updateData, deleteData und createUpdateData benötigen <ModelCRUD>  setDocAction benötigt <ModelSetDocAction>  runProcess benötigt <ModelRunProcess>  Nicht jeder ModelADService-Aufruf funktioniert
  • 7. evenos Consulting GmbH 7 Webservices erstellen Hilfe unter http://www.adempiere.com/Adempiere_Web_Services Fenster: Web Service Security Kopfdaten – Search Key → serviceType – Web Service → ModelADService oder CompositeInterface – Web Service Method → Gewünschte Methode (create-, read- und queryData, runProcess, etc.) – Table → Optionale Tabelle des Webservices, wichtig wenn Felder ein- bzw. zurückgegeben werden sollen  Web Service Parameters – Je nach Webservice unterschiedlich – Typische Parameter: • tableName/TableName • recordID/RecordID • filter/Filter • action/Action  Web Service Access – Rollen, die diesen Webservice nutzen dürfen
  • 8. evenos Consulting GmbH 8 Webservices erstellen Die folgenden Tabs sind nur sichtbar, wenn in den Kopfdaten eine Tabelle ausgewählt wurde Web Service Field Input – Hier werden Felder definiert, die per Aufruf übergeben werden (z. B. Name und Suchschlüssel bei createData) – Spaltenname (kann aus allen Spalten der Tabelle ausgesucht werden oder Freitext) – Referenz der Spalte (String, Integer, Date, etc.) – Identifier (?) – Allow Null Value (?) – Identifier Logic (?)  Web Service Field Output – Hier werden Felder definiert, die der Webservice zurück gibt – Spaltenname (kann aus allen Spalten der Tabelle ausgesucht werden oder Freitext)
  • 9. evenos Consulting GmbH 9 iDempiere Webservices nutzen das SOAP-Protokoll Tool zum Testen: SoapUI (http://www.soapui.org) Übersicht der Endpunkte unter http://myserver/ADInterface/services ModelADService Endpunkt: http://myserver/ADInterface/services/ModelADService?wsdl CompositeInterface Endpunkt: http://myserver/ADInterface/services/compositeInterface?wsdl Webservices testen/benutzen
  • 10. evenos Consulting GmbH 10 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0"> <soapenv:Header/> <soapenv:Body> <_0:setDocAction> <_0:ModelSetDocActionRequest> <_0:ModelSetDocAction> <_0:serviceType>iDempiereDocAction</_0:serviceType> <_0:tableName>C_Order</_0:tableName> <_0:recordID>1000000</_0:recordID> <_0:docAction>VO</_0:docAction> </_0:ModelSetDocAction> <_0:ADLoginRequest> <_0:user>WebService</_0:user> <_0:pass>MYPASSWORD</_0:pass> <_0:lang>191</_0:lang> <_0:ClientID>11</_0:ClientID> <_0:RoleID>50004</_0:RoleID> <_0:OrgID>11</_0:OrgID> <_0:WarehouseID>103</_0:WarehouseID> <_0:stage>0</_0:stage> </_0:ADLoginRequest> </_0:ModelSetDocActionRequest> </_0:setDocAction> </soapenv:Body> </soapenv:Envelope> Webservices testen/benutzen Document Action
  • 11. evenos Consulting GmbH 11 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0"> <soapenv:Header/> <soapenv:Body> <_0:getList> <_0:ModelGetListRequest> <_0:ModelGetList> <_0:serviceType>iDempiereGetList</_0:serviceType> <_0:AD_Reference_ID>148</_0:AD_Reference_ID> <_0:Filter>Name like 'Prepay%'</_0:Filter> </_0:ModelGetList> <_0:ADLoginRequest> <_0:user>WebService</_0:user> <_0:pass>MYPASSWORD</_0:pass> <_0:lang>191</_0:lang> <_0:ClientID>11</_0:ClientID> <_0:RoleID>50004</_0:RoleID> <_0:OrgID>11</_0:OrgID> <_0:WarehouseID>103</_0:WarehouseID> <_0:stage>0</_0:stage> </_0:ADLoginRequest> </_0:ModelGetListRequest> </_0:getList> </soapenv:Body> </soapenv:Envelope> Webservices testen/benutzen Referenz-Liste
  • 12. evenos Consulting GmbH 12 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0"> <soapenv:Header/> <soapenv:Body> <_0:queryData> <_0:ModelCRUDRequest> <_0:ModelCRUD> <_0:serviceType>iDempiereQueryData</_0:serviceType> <_0:TableName>M_Product</_0:TableName> <_0:RecordID>0</_0:RecordID> <_0:Filter>name like 'Aza%'</_0:Filter> <_0:Action>Read</_0:Action> </_0:ModelCRUD> <_0:ADLoginRequest> <_0:user>WebService</_0:user> <_0:pass>MYPASSWORD</_0:pass> <_0:lang>191</_0:lang> <_0:ClientID>11</_0:ClientID> <_0:RoleID>50004</_0:RoleID> <_0:OrgID>11</_0:OrgID> <_0:WarehouseID>103</_0:WarehouseID> <_0:stage>0</_0:stage> </_0:ADLoginRequest> </_0:ModelCRUDRequest> </_0:queryData> </soapenv:Body> </soapenv:Envelope> Webservices testen/benutzen Daten Abfragen
  • 13. evenos Consulting GmbH 13 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://idempiere.org/ADInterface/1_0"> <soapenv:Header/> <soapenv:Body> <_0:queryData> <_0:ModelCRUDRequest> <_0:ModelCRUD> <_0:serviceType>iDempiereQueryData</_0:serviceType> <_0:TableName>M_Product</_0:TableName> <_0:RecordID>0</_0:RecordID> <_0:Action>Read</_0:Action> <_0:DataRow> <_0:field column="Name" > <_0:val>Assembly Area</_0:val> <!--Hier muss der exakte Name stehen, Wildcards funktionieren nicht--> </_0:field> </_0:DataRow> </_0:ModelCRUD> <_0:ADLoginRequest> <_0:user>WebService</_0:user> <_0:pass>MYPASSWORD</_0:pass> <_0:lang>191</_0:lang> <_0:ClientID>11</_0:ClientID> <_0:RoleID>50004</_0:RoleID> <_0:OrgID>11</_0:OrgID> <_0:WarehouseID>103</_0:WarehouseID> <_0:stage>0</_0:stage> </_0:ADLoginRequest> </_0:ModelCRUDRequest> </_0:queryData> </soapenv:Body> </soapenv:Envelope> Webservices testen/benutzen Daten Abfragen
  • 14. evenos Consulting GmbH 14 Konzepte zur Nutzung von Webservices in iDempiere  Daten direkt anlegen (ggf. mehrere Calls) – Fehler bei unterbrochener Übertragung (bei mehreren Calls) – Geeignet um einzelne Einträge zu erstellen/ändern/löschen  Daten direkt mittels Composite Webservice anlegen – Kein Fehler bei unterbrochener Übertragung – Geeignet um verschachtelte Einträge (z. B. Geschäftspartner) zu erstellen/ändern/löschen  Daten in Importtabelle schreiben – Einfaches Anlegen von Datensätzen – Ermöglicht Batch-Verarbeitung – Importprozess kann über Webservice, Scheduler oder manuell gestartet werden
  • 15. evenos Consulting GmbH 15 Danke für eure Aufmerksamkeit Noch Fragen? Schick mir eine Mail an jan.thielemann@evenos.de