mail: j [email protected] twitter: @juergenschuster web ... · pdf...
TRANSCRIPT
![Page 1: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/1.jpg)
Mail: [email protected] : @JuergenSchusterWeb: juergen-schuster-it.de
APEX-Homepage: apex.worldAPEX Podcast: apex.press/talkshow
Dynamic Actions Examples: dynamic-actions.com
![Page 2: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/2.jpg)
apex.world
•Oracle (13 Years)
Who am I
•Freelancer (6 Years)•APEX > 10 Years•Other: Java, Ext-JS, QlikView, HANA SAP UI 5
•The guy with the stickers
•apex.press/talkshow
![Page 3: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/3.jpg)
apex.world
Founder of apex.world
Who am I
![Page 4: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/4.jpg)
apex.world
•Why Webservices?
Agenda
•What are Webservices?
•ORDS (Oracle REST Data Services)
•Project Example
•REST in APEX
![Page 5: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/5.jpg)
apex.world
•Why Webservices?
Agenda
•What are Webservices?
•ORDS (Oracle REST Data Services)
•Project Example
•REST in APEX
![Page 6: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/6.jpg)
apex.world
APEX - REQUEST
Apache with mod_plsql
A P A C H E
https://apex.world/pls/f?p=…
Database Apex Engine
ORACLE
APEX
/pls/
/i/ = .jpg; .png; .css; .js
modplsql
f?p=…
(OCI)
HTML / JSON
HTMLJSON
HTML / JSON
SQLData
Browser
![Page 7: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/7.jpg)
apex.world
Why Webservices?
•Access to Data NOT in the Oracle DB (Social Media)
•Leave the Data where they are
•Simple: Client, Server, Stateless, Readable, pure HTTP we already know
•Reliable: Roy Fielding “How the Web works and why it works well"
• Fast: Caching, Compressing, Scalable, Incremental Rendering, Pre-Fetching
•Leverage the amazing productivity of APEX
![Page 8: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/8.jpg)
apex.world
APEX - REST - REQUEST
Apache with mod_plsql
A P A C H E
https://apex.world/pls/f?p=…
/i/ = .jpg; .png; .css; .js
modplsql
f?p=…
(OCI)
Dat
a / J
SON
https://…/em
p
HTML / JSON
HTML / JSON
/pls/HTMLJSON
Browser Database Apex Engine
ORACLE
APEX
SQLData
REST
![Page 9: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/9.jpg)
apex.world
•Why Webservices?
Agenda
•What are Webservices?
•ORDS (Oracle REST Data Services)
•Project Example
•REST in APEX
![Page 10: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/10.jpg)
apex.world
What are Webservices?
•SOAP (“Simple” Object Access Protocol)•Complex XML, Parser, WSDL, Envelopes, Verbose•XML only, Nested Object Structures? Extra Protocol•Legacy, not so simple, not relevant anymore
![Page 11: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/11.jpg)
apex.world
What are Webservices?
•REST (Representational State Transfer)•Really Simple, uses the well known HTTP commands
http://apex.world/ords/orders
REST CRUID SQLGET Read SELECT
POST Create INSERT
PUT Update/Create UPDATE/CREATE
DELETE Delete DELETE
•No extra Protocol like SOAP, JSON inMemory 12.2
![Page 12: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/12.jpg)
apex.world
•Why Webservices?
Agenda
•What are Webservices?
•ORDS (Oracle REST Data Services)
•Project Example
•REST in APEX
![Page 13: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/13.jpg)
apex.world
APEX - SAP HANA
Apache with mod_plsql
A P A C H E
https://apex.world/pls/f?p=…
/i/ = .jpg; .png; .css; .js
modplsql
f?p=…
(OCI)
Dat
a / J
SON
https://…/em
pSAP-HANA
via REST
HTML / JSON
HTML / JSON
/pls/HTMLJSON
Browser Database Apex Engine
ORACLE
APEX
SQLData
![Page 14: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/14.jpg)
apex.world
Native Webdevelopment with SAP UI5?
•Around 20 times longer
•Around 20 times more complicated
•Around 20 thousand times more Sourcecode
•Around 20 times higher maintenance costs
![Page 15: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/15.jpg)
apex.world
APEX - SAP HANA - Thoughts
•Usual APEX development w/o restrictions
•Use PL/JSON - Today APEX_JSON 4 times faster
•Use Pipelined Table Functions
![Page 16: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/16.jpg)
apex.world
APEX - SAP HANA - Thoughts
APEX: select * from table(my_package.my_func(p_param))
function my_func(p_param)
return my_rec_table
pipelined
is
begin
-- Do http call to REST Service
-- Parse the result
-- Pipe Row
end;
![Page 17: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/17.jpg)
apex.world
APEX - SAP HANA - Reality
•8ms / record - PL/JSON
•5ms / record - Own specialized JSON Parser
•3ms / record - Own CSV parser
•1ms / record - CSV parsing Steven Feuerstein
=> 1 second 1000 records 10 seconds for 10 000!
Decision: Live with it, we have 1000 records max.
![Page 18: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/18.jpg)
apex.world
APEX - SAP HANA - Room for Improvement
•Use APEX_JSON (4 times faster than PL/JSON)
•Use 12.1.0.2 SQL-JSON Egine (100-times faster)
•Pushes the Limit to 100 000 records, no final solution
![Page 19: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/19.jpg)
apex.world
APEX - SAP HANA - Final Solution
•Only fetch the records shown on the screen
•Overwrite Pagination and Sorting in Standard-Report
•No Interactive Report anymore
•Wait for APEX 6.0? Working with REST-Sources natively?
•The next big Step (Mike Hichwa, APEX Podcast March 2015)
![Page 20: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/20.jpg)
apex.world
APEX - SAP HANA - with Dynamic Actions
![Page 21: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/21.jpg)
apex.world
•Why Webservices?
Agenda
•What are Webservices?
•ORDS (Oracle REST Data Services)
•Project Example
•REST in APEX
![Page 22: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/22.jpg)
apex.world
ORDS
•Read REST only? You don’t need ORDS !
•But you should!
![Page 23: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/23.jpg)
apex.world
ORDS advantages over mod_plsql
Connection Pooling
PDF-PrintingVirus-Scanner
Post > 32K
Excel-UploadOAuth2
Cashing
REST Hooks
Multiple DBs
SODA
![Page 24: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/24.jpg)
apex.world
Tomcat
Glas
sfish
Weblogic
Jetty
APEX - ORDS - REST - Consume External
https://apex.world/ords/f?p=…
/i/ = .jpg; .png; .css; .js
f?p=…
(JDBC thin)
Dat
a / J
SON
https://…/em
p
REST
HTML / JSONHTML / JSON
apex.world
ORDS
ORDS
(Java)
Browser Database Apex Engine
ORACLE
APEX
SQLData
![Page 25: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/25.jpg)
apex.world
Database Apex Engine
ORACLE
APEX
APEX - Apache - ORDS - REST - Consume External
https://apex.world/ords/f?p=…
/i/ = .jpg; .png; .css; .js
f?p=…
(JDBC thin)
Dat
a / J
SON
https://…/em
p
REST
HTML / JSON
HTML / JSON
apex.world
Tomcat
Glas
sfish
Weblogic
ORDS
ORDS
(Java)
Apache with mod_jk
A P A C H E
HTML / JSONmod
jk
/ords/HTMLJSON
Fire
Wall
f?p=…
(AJP)
Browser
SQLData
![Page 26: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/26.jpg)
apex.world
APEX - ORDS - REST Publish
https://.../ords/orders(4711) SQL
(JDBC thin)
ORALCE CursorJSON
apex.world
Tomcat
Glas
sfish
Weblogic
ORDS
ORDS
Map & Bind
REST Call ORACLE Database
ORACLE
Transform to JSON
![Page 27: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/27.jpg)
apex.world
•Why Webservices?
Agenda
•What are Webservices?
•ORDS (Oracle REST Data Services)
•Project Example
•REST in APEX
![Page 28: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/28.jpg)
apex.world
APEX - REST - Consume Internal
Apache with mod_plsql
A P A C H E
https://apex.world/pls/f?p=…
/i/ = .jpg; .png; .css; .js
modplsql
f?p=…
(OCI)
Dat
a / J
SON
https://…/em
p
REST
HTML
HTML
/pls/HTMLJSON
Browser Database Apex Engine
ORACLE
APEX
Collection
![Page 29: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/29.jpg)
apex.world
APEX - REST - Consume
![Page 30: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/30.jpg)
apex.world
APEX - REST - Consume
![Page 31: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/31.jpg)
apex.world
APEX - REST - Consume
![Page 32: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/32.jpg)
apex.world
APEX - REST - Consume
![Page 33: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/33.jpg)
apex.world
APEX - REST - Consume
![Page 34: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/34.jpg)
apex.world
APEX - REST - Consume
![Page 35: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/35.jpg)
apex.world
APEX - REST - Consume Internal - Whats Missing
•REST Result as JSON stored in Collection Blob as document only
•Need to apply APEX_JSON -> another Collection
![Page 36: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/36.jpg)
apex.world
“APEX” - REST - Publish
•You need to have ORDS
•You can do the definitions in APEX or ORDS
•But it is always performed by ORDS
•Actually it has nothing to do with APEX
![Page 37: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/37.jpg)
apex.world
REST - Publish - APEX Definition
![Page 38: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/38.jpg)
apex.world
REST - Publish - ORDS Definition
![Page 39: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/39.jpg)
apex.world
Conclusions
•Read REST? No ORDS needed but you should!
•Publish REST form Oracle DB -> Need ORDS
•Deal with a JSON Result in the DB -> SQL 12.1.0.2
•Deal with JSON Result in PL/SQL -> APEX_JSON
![Page 40: Mail: j schuster@me.com Twitter: @JuergenSchuster Web ... · PDF file•apex.press/talkshow. apex.world Founder of apex.world Who am I. apex.world ... Native Webdevelopment with SAP](https://reader031.vdocuments.net/reader031/viewer/2022030407/5a8432437f8b9ac96a8b6c33/html5/thumbnails/40.jpg)
Mail: [email protected] : @JuergenSchusterWeb: juergen-schuster-it.de
APEX-Homepage: apex.worldAPEX Podcast: apex.press/talkshow
Dynamic Actions Examples: dynamic-actions.com