Sie sind auf Seite 1von 83

Safe Harbor Statement

The preceding is intended to outline our general product direction. It is intended for
information purposes only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied upon
in making purchasing decisions. The development, release, and timing of any features or
functionality described for Oracle’s products remains at the sole discretion of Oracle.

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 2
Oracle Application Builder Cloud
Service

Oracle Platform Technology Solutions


June, 2017

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted
Oracle Application Builder Cloud Service
Part I – Business Overview

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 4


“This App you gave me is great but I just
need one more thing…”

– Your typical business user

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal
“No problem, we’ll put it in our to-do
list, should be done just as we finish our
current work…”

– Your typical IT department

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal
Business Needs
• Quickly adjust to
changing/additional requirements
from users
• Faster turn around for application
development
• Build modern interfaces accessible
from mobile and web
• Empower business users to be self
sufficient
• Offload work from IT department

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |


Business Use Case
• Oracle SaaS Customer • LOB Manager • IT Department
– Looking to add specific – Have specific apps that can – Overloaded with request for
functionality to their app improve his workflow little tweaks and additions
– Need to access SaaS Data – Have some technical to existing apps
– Need to store new data orientation but no coding – Want to offload some of the
objects experience effort
– Looking to be self sufficient – Stuck waiting for IT to get – Empower end-users
the applications he needs – Want a quick headstart for
creating JS/HTML5/REST
based apps

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 8
Low-Code Platform
Low-code development platforms are platforms that
enable rapid delivery of business applications with a
minimum of hand-coding and minimal upfront
investment in setup, training, and deployment.

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal
Low-Code Market Opportunity
Low-Code Development Platforms
of all new IT line-of-
business applications will be
1/2 created through low-code
Gartner
46% Of the workforce will be
Gen-Y by 2020

IT organizations
$15B market by 2020
Forrester

75% confronted with the


impact of Of enterprises will have
citizen development
consumerization of
development 70% policies by 2020
Gartner
Source: IDC, Consumerization of Development, 253277, Dec 2014 Source: Constellation Research: “Businesses Must Answer the Call for Cloud Based Integration”

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal
Application Builder
Cloud Service
Build and host web applications in a
faster and simpler way with zero
install and no-coding visual
development

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 11


Application Builder Cloud Service
Key principles for Application Builder

Nothing to install or configure, runs in the browser.


Cloud Based Applications accessible from any device.

Easy to Use Drag and drop, live WYSIWYG designer for creating
and hosting powerful applications.

Easy access to SaaS data and processes via REST catalog.


SaaS Integrated Enrich SaaS with engaging custom UI.

Extensible More complex behavior can be implemented in


standard JavaScript and HTML.

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal
Oracle Application Builder Cloud Service Part
II – Technical Deep Dive

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 13


Key Features
• Non-coders focused – UI first experience
• App accessible from desktop and mobile
• Zero install – cloud and browser based
• Visual drag-and-drop experience
• Instantly live application & no deployment steps
• REST-exposed data integrated with custom data
• HTML5/JavaScript based engaging UI
• Includes mobile application builder
• Extension points for more complex needs
• Oracle SaaS Ready – SSO, data access, same UI
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Oracle SaaS Ready
• Built-in Oracle SaaS services
Catalog including custom objects
• Out-of-the-box support for both
Alta and Fusion UI skins
• Single-sign-on between SaaS and
Application Builder Cloud Service
• Embed pages into Oracle SaaS
application

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 15


Architecture

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |


Oracle’s Visual Development Platform

UI Components

Web UI Design Mobile


Applications System Applications

Marketplace
Content
Builder

Business Objects Processes

Oracle SaaS Oracle PaaS Local DB Third Party


Services Services Services Services

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal
Oracle Application Builder Cloud Service Architecture

Oracle SaaS

Static Resources Custom Objects


HTTP / REST Oracle ABCS
HTML5 + JS

WebLogic Oracle DB

Other REST
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 18
Custom Business Objects

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |


Custom Business Objects

HTML5 + JS

ABCS WLS ABCS DB

…/resources/data/app1/dev/emp Id Name Sal


GET 101 Dave 1100
POST 102 Carrie 1300
PUT
DELETE 103 Pete 1200

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |


Data Types

TEXT NUMBER DATETIME KEY

EMAIL PERCENTAGE DATE LOOKUP

URL CURRENCY TIME REFERENCE

PHONE AGGREGATION
BOOLEAN

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 22
Business Object Relationships

Lookup Reference Parent-Child


Values Static data Dynamic data from another business Dynamic data from another business
Source entered at object object
Design Time

Render Combo Box, Combo Box, Master-Detail Master-Detail


Options Radio Group,
Read Only

Reusable Yes Yes No

Delete NA Unable to delete row from referenced Delete row in master deletes all
Behavior object if it’s being used related child rows

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 23
Defining Custom Business Objects
UI First Data First
• Drop collection (table or list) onto a • Create object and fields from Data
page to create object Designer or Data Palette
• Drop UI components onto object’s • Bind UI components to existing
interaction pages to automatically fields
create fields

Not Mutually
Exclusive!

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 24
Data Designer

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 25
Aggregation Fields

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 26
Data Validation & Business Logic
Constraints Validation Rules

Initial Values

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 27
Business Object Business Logic
• Define triggers, object validators,
field validators and object functions
• Server side execution
• Visual logic flow
• Declarative conditioning
• Groovy scripting for advanced logic
needs

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal
Process Integration - Backend
• Built-in integration with Oracle
Process Cloud
• Associate processes with business
objects
• Trigger processes from business
object events
• Direct access to data from business
objects in the process

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal
REST Access to ABCS Data Objects
• Full CRUD
• Security built-in
• Rich meta-data
• Access from external apps
– Load data
– Report on data
– Update records

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal
Designing Pages and Navigation

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |


Page Types
• Landing
– Not bound to a BO
– May not contain databound
input/output controls
• Edit, Create, Details
– Must be bound to a primary
BO
– May contain databound
input/output components
– Includes buttons for common
actions for page type

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 32
Creating Pages Using Business Object Creator Wizard

Drag and drop a


collection (table or
list) onto a landing
page to launch
wizard

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 33
Default Page Flow Resources

createResourceDataPage editResourceDataPage/101 resourceDataPage/101

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 34
Creating Pages Manually
• In Page Designer, click the
breadcrumb to navigate to a
specific page, or to create a new
one
• Pick page type and define
business object for the page if
type requires it

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 35
Menu Designer

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 36
Designing Pages
Page Layout

• Components arranged in rows on implicit 12-column grid


• Components have a default number of columns

1 2 3 4 5 6 7 8 9 10 11 12

• Drag and drop to reposition on grid, use reshape handle to resize

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 37
Designing Pages
Panels

• One, Two, or Three


Columns
• Each Column has a 12-
column grid
• Panels cannot be
nested

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 38
Designing Pages
Other Components
• Layout Components
– Header
– Page Header
– Horizontal Rule
– Toolbar Separator
– Tabs
• Common Components
– Button
– Image
– Paragraph
– Link

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 39
Designing Pages
Fields Types

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 40
Designing Pages
Data Binding Options

Popup When Dropping New Field Data tab of Property Inspector on Existing Field

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 41
Visualization Properties – Differ Depending on Component
Display Legends and Titles Data
Thresholds (Data)

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 42
Process Integration - Frontend
• UI components for processes
– Tasklist with actions
– Actions menu
• Design your task form in ABCS
• Trigger process from UI
• Drag and drop integration

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal
Charts and Graphs – Based on Collections

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 44
Gauges – Based on Single Value

Circular Status Meter (allows input)


Rating Gauge (allows input)

LED Gauge Linear Status Meter (allows input)

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 45
Built-In Responsive Behaviors
Based on Templates Provided by ABCS

Desktop Phone

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 46
Developer-Designed Responsive Behavior
• Use buttons in designer to preview application
at various form factors
• Use Responsive tab of property inspector to
set specific properties for specific form factors
– All components have a Visibility property
– Other properties vary by component
• Charts, Tables, and List Views have interesting options
– Setting applies only to the specified form factor, and
needs to be repeated on other form factors where
that setting is desired

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 47
Working with Data

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |


Using the Data Designer to Manage Data
Mode/Database selector

For Development, Stage, Live


Databases:
• Create/edit/duplicate
delete rows
• CSV import/export

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |


Three Environments

Development Schema001

Stage Schema002

Live Schema002

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |


Import/Export options

Development

Staging Live

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 51
Data Management Flow Example Use Cases
• V2 of my app is published. As I start working on V3 in Development, I want
to grab a snapshot of data from Live.
• I am about to publish V4 of my application. I’ve made structural changes to
the objects, so I want to use Stage, and I’ll lock Live first, Import from Live
to Stage, then publish the app.
• I want to make changes to data outside of the app. So, I’ll export the data,
make changes and re-import.
• I have a lot of “seed” data that is used by my application, which I maintain
in separate csv files and import as needed into individual data tables.

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 52
Working with Existing Services

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |


First, Some Background…
• Fusion Applications built on ADF can leverage ADF BC REST features to
expose business resources as REST API
• ADF BC REST provides extremely rich metadata about resources, and ABCS
currently depends on this rich metadata to drive design-time tooling
• So far, Sales Cloud is only SaaS team with ADF REST-based APIs; HCM has
services under controlled availability

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 54
Introduction to FA (Sales Cloud) Service API by Example
URI Description
/commonCrmApi/resources/latest/describe Describe all the resources from Common CRM (Contacts, etc)
/salesApi/resources/latest/describe Describe all the resources from Sales API (Opportunities, etc)
/salesApi/resources/latest/opportunities/describe Describe the opportunities resource
/salesApi/resources/latest/opportunities GET – return list of opportunities
POST – create a new opportunity
/salesApi/resources/latest/opportunities/{OptyNumber} GET – return specific opportunity
PUT/PATCH – Update specific opportunity
DELETE – Delete specific opportunity
/salesApi/resources/latest/opportunities/{OptyNumber}/lov/Sales List of SalesStageLOV objects
StageLOV
/salesApi/resources/latest/opportunities/{OptyNumber}/child/Chil Describe the ChildRevenue resource
dRevenue/describe
/salesApi/resources/latest/opportunities/{OptyNumber}/child/Chil GET – return list of ChildRevenue objects belonging to this
dRevenue/ opportunity
POST – create a new ChildRevenue belonging to this opportunity
/salesApi/resources/latest/opportunities/{OptyNumber}/child/Chil GET/PUT/PATCH/DELETE – perform requested operation on this object
dRevenue/{RevenueId}
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 55
Select from External Service

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 56
Choose Resources
• Select Primary and
Child objects

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 57
Choose Fields
• Select Fields you want
to work with
– ?fields=xyz is used to
select subset of data
• Hint: only select what
you need now, you
can add others later

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 58
Optional Test
• Make sure you are
getting expected data
• Once object is
defined, can now be
used on pages just like
custom business
objects.
• Return to Data
Designer to add fields
(from existing object)
later

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 59
Extending and Reusing Applications

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |


Extending Existing Service with Custom Data
As Master-Detail

• Add custom object as child


(or reference the FA object)
by dropping a table as a
detail, editing in the Data
Designer, or adding in the
Data Palette

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 61
Extending Existing Service with Custom Data
As One-to-One

• Add custom field to the FA


object by dropping it on an
Edit page, editing in the Data
Designer, or adding in the
Data Palette

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 62
Best Practice

• Recommended approach from ABCS and Sales Cloud team is to use Sales
Cloud AppComposer for One-to-One and Master-detail data extension use
cases in most situations.

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 63
Declarative Actions
• Built-in list of available actions
• Can be chained together in simple
workflow
• JavaScript option
• Currently on buttons only

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 64
Custom Actions
• Run as a JavaScript promise, must return (resolve(value)) or (reject(error))
• Set appropriate result type for resolve and reject

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 65
Custom Code
• HTML (Template)
• CSS
• JavaScript model

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 66
Shared, Reusable Content (Extensions)
Designed to be shared across tenant

Reusable UI Components. Can be data bound or not. Interactions


UI Components with designer (ie, property inspector, drop handlers, etc) coded
in JavaScript. Will support CCA directly in a future release.

Page shell including header and footer along with


Themes Navigation controls. Includes CSS styling.

Shared Resources Reusable code objects and resources.

Provides access to a set of remote services shaped as


Business Object Provider a Business Object.

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 67


Reusable Components
• Themes
• UI Components
– Additional UI components in the visual
designer
• JavaScript Libraries
– Variables and functions available for
the app
• Business object providers
– Access to external sources of data

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal
Oracle JET CCA Integration
• Add Oracle JET Composite
Components as plugabble UI
• Set properties to field values
• Enrich your UI options
• Metadata for design time

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal
Developer-Provided Credentials for External Services
AppID Flow
• Developer can provide user credentials (Basic
Auth) for an external service at design time.
• Credentials are stored securely in ABCS and
used also at runtime to access the service.
• Cannot be used in conjunction with a “No Login
Required” app; Cloud Login Required
• Use cases:
– Call an external Service (ADF BC-based) where id
domain federation is not possible
– Call an external Service (ADF BC-based) with AppID
token
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 70
Business Object Providers
• Allows JavaScript developer
to write a connector to a
back-end REST API shaped as
a Business Object with
operations
• Once published as a shared
extension, BOP Services
appear in the Service catalog
for others to use
JavaScript API documented in ABCS public reference doc. PM team working
on samples and examples to ease adoption.

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 71
Application Management
• Export and Import
– Exported as zip, not including
data. On import, user must
(re)enter any credentials used
for external services.
• Templates
– Any application can be shared
as a template and used as the
basis for new applications

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 72
Extension Management
• Export and Import (Create from
zip)
• Create from template
• Shared from another application
– Creates a dependency on sharing
application
– Sharing application needs to have
Shares Application Resources
setting enabled (Application
Settings > General), and application
must be Published

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 73
Application Translations
• Strings for application externalized to nls.json for translation
• Develop app >> Export language bundle zip >> Translators provide new
resource strings and updated bundle zip >> Upload new language bundle
• Optionally include system messages to override Oracle translation of these
strings.
• Browser locale determines
which language is shown
to end user.

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 74
Resource Browser
• Resource Browser to view files pertaining to this app. Upload files and
manage content

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 75
Application Lifecycle and Versions

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |


Application Lifecycle Flow

Development Schema001

Stage Schema002

Live Schema002

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |


What Happens During Stage
• If first time staging of this app:
– Create new database schema, create
application table structures
• If application has already been staged:
– Either reuse existing database schema objects
or recreate (user choice if possible)
• JavaScript + CSS + HTML resources
generated from application metadata and
copied into database
• Populate Lookup tables

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 78
What Happens During Publish
• If first time publishing of this app:
– Stage schema becomes live (url
updated)
• If application has already been
published:
– Either reuse live database schema or
stage schema (use choice if possible)
• If using Stage schema, recommend
to Lock live app, manually copy
data from live to staging, then
publish

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 79
Application Security
• Role-based Security
– Page level
– Object level
– Row level (basic)
– Dynamic UI based on Roles
• Roles mapped to SIM
• Optional Anonymous access

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 80


Multiple Users
• Applications can be shared with other developers (with ABCS Developer
role within a tenant) for collaboration
• Only one developer can open the app in the designer at a time
– If someone is already working
on the app, user sees an
“Application is Locked” message.
– Automatic unlock after
eight hours of inactivity

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 81
Multiple Versions
• New actions on the application menu: Copy and New Version
– Copy creates a new application (with a similar name as the original) from the selected
application and version
– New Version creates a new version of the selected application. User can specify any
arbitrary two-digit version number
• Versions (sandboxes) can be modified independently
• Each version can have a development and stage mode
• Application can only have one live (published) version
– Previously live version will be marked as Obsolete
– Option to Rollback recent Publish action

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 82
Additional Resources
• ABCS Home
– https://cloud.oracle.com/ApplicationBuilder

• ABCS Learn More


– https://cloud.oracle.com/en_US/application-builder/videos

• ABCS Features
– https://cloud.oracle.com/en_US/application-builder/features

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 83

Das könnte Ihnen auch gefallen