SlideShare a Scribd company logo
1 of 22
Contract-Based Web-Services
API Deep Dive
Gabriel Michaud
Goals of this Session
1. Tell you more about the new web services technology
available in 5.3 and why you should use it
2. Show you how to use the contract-based web services in
your projects, new and existing
3. Give you a glimpse at upcoming enhancements
Why build a new
web services API?
Reason 1: Tight Coupling with UI
What if the Terms label was
renamed to “Payment Terms” ?
Reason 2: Ease of use
• The design of “classic” web-services is highly influenced by integration services
and the screen command/actions model.
• Intuitiveness is not one of the strong points of this model
• Everything is a string
• Multi-dimensional arrays
• Some operations happen ”magically” (searches)
• Wizardry and black magic is needed (commit flag)
• Complexity of use doesn’t increase linearly with the complexity of usage scenarios
• Scenarios which seem basic like changing a customer code, adding a payment method end up
requiring knowledge of screen internals
• A lot of code is needed for very simple operations
Retrieving a stock item with the “classic” API
Retrieving a stock item with the new API
Reason 3: Future proofing
Working with the
contract-based
web services API
Viewing and configuring endpoints
• Endpoints form the contract between Acumatica and the consumer of
the API
• Key concepts
• Interfaces and versions
• Top Level, Linked and Detail Objects
• Mappings
• Actions (and default action)
• Endpoint Service
• Maintenance Service
• A default endpoint encompassing the most common scenarios is
included; this service will be maintainted by Acumatica
Web Service Endpoints
Let’s write some code!
• Retrieving data
• GetList (retrieveFullEntities, ****Value types)
• Get
• Filtering
• Custom fields
• Creating/updating a record (Put)
• Deleting data
• Invoking actions (ex: Release)
• Long-running process status
Advanced topics
• Working with files
• Smart panels
• Mapped via adapters (App_CodeEntity)
• Adapters abstract custom/non-standard logic that would be
otherwise
• Existing examples: Shipment Detail, PO Receipt
• Dialogs
• In an action has a confirmation dialog, in most cases it will be
confirmed automatically without an adaptor
Packaging and publishing your own endpoints
• Using API to import schema via maintenance service
• Exporting to XML
• GetSchema/PutSchema
• Packaging schema via customization manager
Migration Strategy
• The classic web services API is not going anywhere and will
remain supported
• New ISV integrations should be built on the new contract-based
web services API – sometimes next year it will become
mandatory for solution certification
• Existing code can be migrated gradually; you can mix both
technologies in the same product (share session cookies to
avoid needing multiple logins)
• The existing web services API not going anywhere and will
remain supported
Looking Ahead
Endpoint Extensibility
• Benefits of extensibility
• Extensibility scenarios
• Add new fields
• Add new screens
• What to do until extensibility is available
• You should NOT modify the predefined endpoint shipping with the app
• Ask us to add field
• Copy paste endpoint definition -> but you’ll have to maintain the whole thing
• If custom field – use CustomFields collection
• For your own screens – you can create a separate endpoint for now
REST
• Comparison of SOAP and REST
SOAP REST
1 XML-based message protocol over HTTP Simply HTTP
2 All of the data is contained in the message itself Data is spread out over different parts of HTTP protocol
3 One URL (endpoint), resource being affected is defined by
message and SOAP Action
Different URLs for different resources (ideally, every resource is
reachable by unique and non-changing URL)
4 Always POST, actual call semantics are defined by SOAP
Action
Call semantics are defined by HTTP method (GET/PUT/POST/DELETE)
5 Return status code is always 200 OK, actual
success/failure/other semantics are expressed in message
Basic (common) semantics are expressed in HTTP status code and HTTP
headers
6 Request/response format is XML Request/response format is negotiable (usually JSON and XML)
7 Standard-defined schema definition (WSDL and XSD) No standard schema definition
8 Hard to call from browser-based JavaScript (have to
implement XML/SOAP parser)
Easy to call from browser-based JavaScript (JSON parser is built-in) and
“newer” languages like Ruby on Rails
9 Hard to introduce caching Can rely on HTTP-defined standards for caching
Wrap-Up
• Thank you to early adopters –
Kensium (PC Bennett) and
OzDevelopment (Descartes)
• Training Materials now available
on Acumatica University
• I210 Contract-Based Web Services
5.3
• Questions?
THANK YOU
Gabriel Michaud | gmichaud@acumatica.com
No Reliance
This document is subject to change without notice. Acumatica cannot guarantee completion of any future products or program
features/enhancements described in this document, and no reliance should be placed on their availability.
Confidentiality: This document, including any files contained herein, is confidential information of Acumatica and should not
be disclosed to third parties.
No Reliance
This document is subject to change without notice. Acumatica cannot guarantee completion of any future products or program
features/enhancements described in this document, and no reliance should be placed on their availability.
Confidentiality: This document, including any files contained herein, is confidential information of Acumatica and should not
be disclosed to third parties.

More Related Content

What's hot

Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)
Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)
Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)Lucas Jellema
 
Powering GIS Operations with ColdFusion
Powering GIS Operations with ColdFusionPowering GIS Operations with ColdFusion
Powering GIS Operations with ColdFusionColdFusionConference
 
SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...
SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...
SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...Sencha
 
Microsoft and Nintex Forms
Microsoft and Nintex FormsMicrosoft and Nintex Forms
Microsoft and Nintex Formsnyazhari
 
Trovebox Entry Level Offering
Trovebox Entry Level OfferingTrovebox Entry Level Offering
Trovebox Entry Level Offeringjaisenmathai
 
Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...
Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...
Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...SPTechCon
 
#MFSummit2016 Build: Accelerating COBOL applications delivery
#MFSummit2016 Build: Accelerating COBOL applications delivery#MFSummit2016 Build: Accelerating COBOL applications delivery
#MFSummit2016 Build: Accelerating COBOL applications deliveryMicro Focus
 
API Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIsAPI Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIsColdFusionConference
 
VJCD2017 SharePoint Framework (SPFx)
VJCD2017 SharePoint Framework (SPFx)VJCD2017 SharePoint Framework (SPFx)
VJCD2017 SharePoint Framework (SPFx)Seiji Noro
 
MSDN Sessions 032817 - Azure Functions
MSDN Sessions 032817 - Azure FunctionsMSDN Sessions 032817 - Azure Functions
MSDN Sessions 032817 - Azure FunctionsMarc Obaldo
 
[VJCD seminar] Launching of APO-Chan, an Azure Mobile Apps with Xamarin and OSS
[VJCD seminar] Launching of APO-Chan, an Azure Mobile Apps with Xamarin and OSS[VJCD seminar] Launching of APO-Chan, an Azure Mobile Apps with Xamarin and OSS
[VJCD seminar] Launching of APO-Chan, an Azure Mobile Apps with Xamarin and OSSThe Long Nguyen
 
WSO2 Summit London 2018: Delivering Business Value with WSO2
WSO2 Summit London 2018: Delivering Business Value with WSO2WSO2 Summit London 2018: Delivering Business Value with WSO2
WSO2 Summit London 2018: Delivering Business Value with WSO2WSO2
 
WSO2Con USA 2017: Implement an Effective Digital Platform Using WSO2 Integration
WSO2Con USA 2017: Implement an Effective Digital Platform Using WSO2 IntegrationWSO2Con USA 2017: Implement an Effective Digital Platform Using WSO2 Integration
WSO2Con USA 2017: Implement an Effective Digital Platform Using WSO2 IntegrationWSO2
 
Building productivity solutions with Microsoft Graph
Building productivity solutions with Microsoft GraphBuilding productivity solutions with Microsoft Graph
Building productivity solutions with Microsoft GraphWaldek Mastykarz
 
BrightGen's Winter 13 Salesforce Release Webinar
BrightGen's Winter 13 Salesforce Release WebinarBrightGen's Winter 13 Salesforce Release Webinar
BrightGen's Winter 13 Salesforce Release Webinarbrightgenss
 
Introduction to SharePoint Framework
Introduction to SharePoint FrameworkIntroduction to SharePoint Framework
Introduction to SharePoint FrameworkJoAnna Cheshire
 

What's hot (20)

Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)
Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)
Introducing ADF Mobile - and Luc Bors(AMIS SIG, 12th November 2012)
 
Powering GIS Operations with ColdFusion
Powering GIS Operations with ColdFusionPowering GIS Operations with ColdFusion
Powering GIS Operations with ColdFusion
 
SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...
SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...
SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...
 
Microsoft and Nintex Forms
Microsoft and Nintex FormsMicrosoft and Nintex Forms
Microsoft and Nintex Forms
 
Publisoft
PublisoftPublisoft
Publisoft
 
Trovebox Entry Level Offering
Trovebox Entry Level OfferingTrovebox Entry Level Offering
Trovebox Entry Level Offering
 
Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...
Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...
Integrating SharePoint 2010, 2013 and Visual Studio Lightswitch by Rob Windso...
 
#MFSummit2016 Build: Accelerating COBOL applications delivery
#MFSummit2016 Build: Accelerating COBOL applications delivery#MFSummit2016 Build: Accelerating COBOL applications delivery
#MFSummit2016 Build: Accelerating COBOL applications delivery
 
API Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIsAPI Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIs
 
Chag dashboard
Chag dashboardChag dashboard
Chag dashboard
 
VJCD2017 SharePoint Framework (SPFx)
VJCD2017 SharePoint Framework (SPFx)VJCD2017 SharePoint Framework (SPFx)
VJCD2017 SharePoint Framework (SPFx)
 
Html 5 Overview
Html 5 OverviewHtml 5 Overview
Html 5 Overview
 
MSDN Sessions 032817 - Azure Functions
MSDN Sessions 032817 - Azure FunctionsMSDN Sessions 032817 - Azure Functions
MSDN Sessions 032817 - Azure Functions
 
sell idea
sell ideasell idea
sell idea
 
[VJCD seminar] Launching of APO-Chan, an Azure Mobile Apps with Xamarin and OSS
[VJCD seminar] Launching of APO-Chan, an Azure Mobile Apps with Xamarin and OSS[VJCD seminar] Launching of APO-Chan, an Azure Mobile Apps with Xamarin and OSS
[VJCD seminar] Launching of APO-Chan, an Azure Mobile Apps with Xamarin and OSS
 
WSO2 Summit London 2018: Delivering Business Value with WSO2
WSO2 Summit London 2018: Delivering Business Value with WSO2WSO2 Summit London 2018: Delivering Business Value with WSO2
WSO2 Summit London 2018: Delivering Business Value with WSO2
 
WSO2Con USA 2017: Implement an Effective Digital Platform Using WSO2 Integration
WSO2Con USA 2017: Implement an Effective Digital Platform Using WSO2 IntegrationWSO2Con USA 2017: Implement an Effective Digital Platform Using WSO2 Integration
WSO2Con USA 2017: Implement an Effective Digital Platform Using WSO2 Integration
 
Building productivity solutions with Microsoft Graph
Building productivity solutions with Microsoft GraphBuilding productivity solutions with Microsoft Graph
Building productivity solutions with Microsoft Graph
 
BrightGen's Winter 13 Salesforce Release Webinar
BrightGen's Winter 13 Salesforce Release WebinarBrightGen's Winter 13 Salesforce Release Webinar
BrightGen's Winter 13 Salesforce Release Webinar
 
Introduction to SharePoint Framework
Introduction to SharePoint FrameworkIntroduction to SharePoint Framework
Introduction to SharePoint Framework
 

Viewers also liked

The Earth Charter English
The Earth Charter EnglishThe Earth Charter English
The Earth Charter EnglishAMANAKEY
 
Fin 370 genius perfect education fin370genius.com
Fin 370 genius perfect education fin370genius.comFin 370 genius perfect education fin370genius.com
Fin 370 genius perfect education fin370genius.comaugust2016
 
A2 Media - Music Video Research
A2 Media - Music Video Research A2 Media - Music Video Research
A2 Media - Music Video Research Amirah Yasar
 
Visual Dictionary-Cantilever
Visual Dictionary-CantileverVisual Dictionary-Cantilever
Visual Dictionary-CantileverCantilever
 
Visual studio 2017
Visual studio 2017Visual studio 2017
Visual studio 2017Larry Nung
 
Po3660 Krogstad Vm World 2008
Po3660 Krogstad Vm World 2008Po3660 Krogstad Vm World 2008
Po3660 Krogstad Vm World 2008kkroggy
 
Enterprise Transformation through Cognizant’s XaaS fabric on AWS (ENT222) | A...
Enterprise Transformation through Cognizant’s XaaS fabric on AWS (ENT222) | A...Enterprise Transformation through Cognizant’s XaaS fabric on AWS (ENT222) | A...
Enterprise Transformation through Cognizant’s XaaS fabric on AWS (ENT222) | A...Amazon Web Services
 
Cognizant's HCM Capabilities
Cognizant's HCM CapabilitiesCognizant's HCM Capabilities
Cognizant's HCM CapabilitiesArlene DeMita
 

Viewers also liked (15)

The Earth Charter English
The Earth Charter EnglishThe Earth Charter English
The Earth Charter English
 
Funciones (1)
Funciones (1)Funciones (1)
Funciones (1)
 
Fin 370 genius perfect education fin370genius.com
Fin 370 genius perfect education fin370genius.comFin 370 genius perfect education fin370genius.com
Fin 370 genius perfect education fin370genius.com
 
A2 Media - Music Video Research
A2 Media - Music Video Research A2 Media - Music Video Research
A2 Media - Music Video Research
 
Inferencias (1)
Inferencias (1)Inferencias (1)
Inferencias (1)
 
Visual Dictionary-Cantilever
Visual Dictionary-CantileverVisual Dictionary-Cantilever
Visual Dictionary-Cantilever
 
Visual studio 2017
Visual studio 2017Visual studio 2017
Visual studio 2017
 
Ebola virus
Ebola virusEbola virus
Ebola virus
 
Po3660 Krogstad Vm World 2008
Po3660 Krogstad Vm World 2008Po3660 Krogstad Vm World 2008
Po3660 Krogstad Vm World 2008
 
Presentación powe point
Presentación powe pointPresentación powe point
Presentación powe point
 
Mc el párrafo
Mc el párrafoMc el párrafo
Mc el párrafo
 
Magazine front 3
Magazine front 3Magazine front 3
Magazine front 3
 
Enterprise Transformation through Cognizant’s XaaS fabric on AWS (ENT222) | A...
Enterprise Transformation through Cognizant’s XaaS fabric on AWS (ENT222) | A...Enterprise Transformation through Cognizant’s XaaS fabric on AWS (ENT222) | A...
Enterprise Transformation through Cognizant’s XaaS fabric on AWS (ENT222) | A...
 
API Gateway report
API Gateway reportAPI Gateway report
API Gateway report
 
Cognizant's HCM Capabilities
Cognizant's HCM CapabilitiesCognizant's HCM Capabilities
Cognizant's HCM Capabilities
 

Similar to Contract-Based Web Services API Deep Dive

Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableComsysto Reply GmbH
 
Cincom Smalltalk: Present, Future & Smalltalk Advocacy
Cincom Smalltalk: Present, Future & Smalltalk AdvocacyCincom Smalltalk: Present, Future & Smalltalk Advocacy
Cincom Smalltalk: Present, Future & Smalltalk AdvocacyESUG
 
Introduction to SoapUI day 1
Introduction to SoapUI day 1Introduction to SoapUI day 1
Introduction to SoapUI day 1Qualitest
 
Soap UI - Getting started
Soap UI - Getting startedSoap UI - Getting started
Soap UI - Getting startedQualitest
 
Django è pronto per l'Enterprise
Django è pronto per l'EnterpriseDjango è pronto per l'Enterprise
Django è pronto per l'EnterprisePyCon Italia
 
Business Applications Integration In The Cloud
Business Applications Integration In The CloudBusiness Applications Integration In The Cloud
Business Applications Integration In The CloudAnna Brzezińska
 
What's New in .Net 4.5
What's New in .Net 4.5What's New in .Net 4.5
What's New in .Net 4.5Malam Team
 
APIs, STOP Polling, lets go Streaming
APIs, STOP Polling, lets go StreamingAPIs, STOP Polling, lets go Streaming
APIs, STOP Polling, lets go StreamingPhil Wilkins
 
Headless cms architecture
Headless cms architectureHeadless cms architecture
Headless cms architectureKevin Wenger
 
Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1Henry S
 
170215 msa intro
170215 msa intro170215 msa intro
170215 msa introSonic leigh
 
DEVNET-1122 Integrating Cisco Collaboration into Web Apps
DEVNET-1122	Integrating Cisco Collaboration into Web AppsDEVNET-1122	Integrating Cisco Collaboration into Web Apps
DEVNET-1122 Integrating Cisco Collaboration into Web AppsCisco DevNet
 
RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016Ortus Solutions, Corp
 
Advanced web application architecture - Talk
Advanced web application architecture - TalkAdvanced web application architecture - Talk
Advanced web application architecture - TalkMatthias Noback
 
Cloud Computing in Systems Programming Curriculum
Cloud Computing in Systems Programming CurriculumCloud Computing in Systems Programming Curriculum
Cloud Computing in Systems Programming CurriculumSteven Miller
 
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20Phil Wilkins
 
Hpc lunch and learn
Hpc lunch and learnHpc lunch and learn
Hpc lunch and learnJohn D Almon
 
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...Decision CAMP
 

Similar to Contract-Based Web Services API Deep Dive (20)

Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuable
 
Cincom Smalltalk: Present, Future & Smalltalk Advocacy
Cincom Smalltalk: Present, Future & Smalltalk AdvocacyCincom Smalltalk: Present, Future & Smalltalk Advocacy
Cincom Smalltalk: Present, Future & Smalltalk Advocacy
 
Introduction to SoapUI day 1
Introduction to SoapUI day 1Introduction to SoapUI day 1
Introduction to SoapUI day 1
 
Soap UI - Getting started
Soap UI - Getting startedSoap UI - Getting started
Soap UI - Getting started
 
Django è pronto per l'Enterprise
Django è pronto per l'EnterpriseDjango è pronto per l'Enterprise
Django è pronto per l'Enterprise
 
Business Applications Integration In The Cloud
Business Applications Integration In The CloudBusiness Applications Integration In The Cloud
Business Applications Integration In The Cloud
 
What's New in .Net 4.5
What's New in .Net 4.5What's New in .Net 4.5
What's New in .Net 4.5
 
APIs, STOP Polling, lets go Streaming
APIs, STOP Polling, lets go StreamingAPIs, STOP Polling, lets go Streaming
APIs, STOP Polling, lets go Streaming
 
Headless cms architecture
Headless cms architectureHeadless cms architecture
Headless cms architecture
 
Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1
 
170215 msa intro
170215 msa intro170215 msa intro
170215 msa intro
 
DEVNET-1122 Integrating Cisco Collaboration into Web Apps
DEVNET-1122	Integrating Cisco Collaboration into Web AppsDEVNET-1122	Integrating Cisco Collaboration into Web Apps
DEVNET-1122 Integrating Cisco Collaboration into Web Apps
 
Rest ful tools for lazy experts
Rest ful tools for lazy expertsRest ful tools for lazy experts
Rest ful tools for lazy experts
 
RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016
 
Advanced web application architecture - Talk
Advanced web application architecture - TalkAdvanced web application architecture - Talk
Advanced web application architecture - Talk
 
Cloud Computing in Systems Programming Curriculum
Cloud Computing in Systems Programming CurriculumCloud Computing in Systems Programming Curriculum
Cloud Computing in Systems Programming Curriculum
 
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
 
Hpc lunch and learn
Hpc lunch and learnHpc lunch and learn
Hpc lunch and learn
 
HTML5
HTML5HTML5
HTML5
 
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...
Decision CAMP 2014 - Erik Marutian - Using rules-based gui framework to power...
 

Recently uploaded

VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 

Recently uploaded (20)

Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 

Contract-Based Web Services API Deep Dive

  • 2. Goals of this Session 1. Tell you more about the new web services technology available in 5.3 and why you should use it 2. Show you how to use the contract-based web services in your projects, new and existing 3. Give you a glimpse at upcoming enhancements
  • 3. Why build a new web services API?
  • 4. Reason 1: Tight Coupling with UI What if the Terms label was renamed to “Payment Terms” ?
  • 5.
  • 6. Reason 2: Ease of use • The design of “classic” web-services is highly influenced by integration services and the screen command/actions model. • Intuitiveness is not one of the strong points of this model • Everything is a string • Multi-dimensional arrays • Some operations happen ”magically” (searches) • Wizardry and black magic is needed (commit flag) • Complexity of use doesn’t increase linearly with the complexity of usage scenarios • Scenarios which seem basic like changing a customer code, adding a payment method end up requiring knowledge of screen internals • A lot of code is needed for very simple operations
  • 7. Retrieving a stock item with the “classic” API
  • 8. Retrieving a stock item with the new API
  • 9. Reason 3: Future proofing
  • 11. Viewing and configuring endpoints • Endpoints form the contract between Acumatica and the consumer of the API • Key concepts • Interfaces and versions • Top Level, Linked and Detail Objects • Mappings • Actions (and default action) • Endpoint Service • Maintenance Service • A default endpoint encompassing the most common scenarios is included; this service will be maintainted by Acumatica
  • 13. Let’s write some code! • Retrieving data • GetList (retrieveFullEntities, ****Value types) • Get • Filtering • Custom fields • Creating/updating a record (Put) • Deleting data • Invoking actions (ex: Release) • Long-running process status
  • 14. Advanced topics • Working with files • Smart panels • Mapped via adapters (App_CodeEntity) • Adapters abstract custom/non-standard logic that would be otherwise • Existing examples: Shipment Detail, PO Receipt • Dialogs • In an action has a confirmation dialog, in most cases it will be confirmed automatically without an adaptor
  • 15. Packaging and publishing your own endpoints • Using API to import schema via maintenance service • Exporting to XML • GetSchema/PutSchema • Packaging schema via customization manager
  • 16. Migration Strategy • The classic web services API is not going anywhere and will remain supported • New ISV integrations should be built on the new contract-based web services API – sometimes next year it will become mandatory for solution certification • Existing code can be migrated gradually; you can mix both technologies in the same product (share session cookies to avoid needing multiple logins) • The existing web services API not going anywhere and will remain supported
  • 18. Endpoint Extensibility • Benefits of extensibility • Extensibility scenarios • Add new fields • Add new screens • What to do until extensibility is available • You should NOT modify the predefined endpoint shipping with the app • Ask us to add field • Copy paste endpoint definition -> but you’ll have to maintain the whole thing • If custom field – use CustomFields collection • For your own screens – you can create a separate endpoint for now
  • 19. REST • Comparison of SOAP and REST SOAP REST 1 XML-based message protocol over HTTP Simply HTTP 2 All of the data is contained in the message itself Data is spread out over different parts of HTTP protocol 3 One URL (endpoint), resource being affected is defined by message and SOAP Action Different URLs for different resources (ideally, every resource is reachable by unique and non-changing URL) 4 Always POST, actual call semantics are defined by SOAP Action Call semantics are defined by HTTP method (GET/PUT/POST/DELETE) 5 Return status code is always 200 OK, actual success/failure/other semantics are expressed in message Basic (common) semantics are expressed in HTTP status code and HTTP headers 6 Request/response format is XML Request/response format is negotiable (usually JSON and XML) 7 Standard-defined schema definition (WSDL and XSD) No standard schema definition 8 Hard to call from browser-based JavaScript (have to implement XML/SOAP parser) Easy to call from browser-based JavaScript (JSON parser is built-in) and “newer” languages like Ruby on Rails 9 Hard to introduce caching Can rely on HTTP-defined standards for caching
  • 20. Wrap-Up • Thank you to early adopters – Kensium (PC Bennett) and OzDevelopment (Descartes) • Training Materials now available on Acumatica University • I210 Contract-Based Web Services 5.3 • Questions?
  • 21. THANK YOU Gabriel Michaud | gmichaud@acumatica.com
  • 22. No Reliance This document is subject to change without notice. Acumatica cannot guarantee completion of any future products or program features/enhancements described in this document, and no reliance should be placed on their availability. Confidentiality: This document, including any files contained herein, is confidential information of Acumatica and should not be disclosed to third parties. No Reliance This document is subject to change without notice. Acumatica cannot guarantee completion of any future products or program features/enhancements described in this document, and no reliance should be placed on their availability. Confidentiality: This document, including any files contained herein, is confidential information of Acumatica and should not be disclosed to third parties.

Editor's Notes

  1. The first reason is coupling with the user interface. Consider this very simple example – you’re accessing the Terms field in your application. What happens here is quite unpredictable – but one thing is sure…
  2. YOUR INTEGRATION IS BROKEN! - If you’re trying to read this field, you’ll get an empty result, but no error. - If you try to update it, your application will throw an exception. - If you decide to update the web service reference in your app – the code will no longer compile. Big problem if you’re an ISV needing to support customers on multiple revisions of Acumatica, or if you’re simply a VAR that has built an integration for a single customer that you need to update! For sure, there are workarounds to this problem – since the schema is just a map over internal fields, you can easily decide to cache the schema. But it’s cumbersome, and one day you need to update the schema, and then your code will no longer compile.
  3. Mention all the quirks in this code (need to GetSchema, multi-dimensional array, need to specificy all the fields you want, conversion to decimal)
  4. That’s it! Which one do you prefer?
  5. The current API just isn’t well adapted to REST Very strong industry trend toward REST
  6. The main difference between Top Level and Linked is whether you can edit an object directly or not. There is some screen for contacts in Acumatica - thus, it's Top-Level. There is no screen for Address - so it's linked. Default action is something that happens when you Put an entity. By default it's set to Save (so there can be no chance it's "not set"). And I actually don't know when it's useful to override it. Maybe never.
  7. Add WSDL as AcumaticaDefaultInterface. AllowCookies = TRUE. When explaining GetList - Explain retrieveAllEntities parameter (linked objects (?), details not returned) - start with c.CustomerID - introduce StringValue (allows to differentiate between undefined and NULL, and also enabled search with special ****Search type) - GUID that is returned: session-wide unique OID. If object has a NoteiD this is the GUId we will return, otherwise internal map to facilitate updating and remove any ambiguity when you make changes to a record. RetrieveFullEntities – if false, you won’t get any details or linked objects Mention that the entities reflect what was been configured in the endpoint – it is no longer related to the screen layout, and therefore renaming or moving a field won’t break the API Put and default action: refer back to the GUID
  8. All entities: http://windows-10.shared/AcumaticaDemo53Rest/entity/Default/5.30.001/Customer By key: http://windows-10.shared/AcumaticaDemo53Rest/entity/Default/5.30.001/Customer/ABARTENDE Search on other fields: http://windows-10.shared/AcumaticaDemo53Rest/entity/Default/5.30.001/Customer?LastModified gt 2016-01-01 Search text: http://windows-10.shared/AcumaticaDemo53Rest/entity/Default/5.30.001/Customer?MainContact/Email%20eq%20dean@bartending.con