JavaScript must be enabled to correctly display this content
  • Title and Copyright Information
  • About This Content
    • Information About Cookies
  • Part I Get Started
    • Welcome to Visual Builder Studio
      • What is Oracle Visual Builder Studio?
        • Build Enterprise Apps in Minutes
        • Extend Oracle Cloud Applications
      • Access VB Studio
      • Visual Builder and Visual Builder Studio: What’s the Difference?
    • Create Visual Applications
      • Typical Visual Application Workflow
      • Create a Workspace
        • Create a Workspace for a New Visual Application
        • Create a Workspace by Cloning an Existing Repository
        • Create a Workspace by Importing an Application Archive
        • Create a Workspace Without an Environment
      • Add Web Apps to Your Visual Application
        • Create a New Web Application
        • Run Existing Mobile Applications as Web PWAs
      • Tour the Designer
      • Explore Your Project Environment
      • Common Tasks for Visual Applications
        • Manage Visual Application Settings
        • Switch a Workspace
        • Switch a Workspace’s Environment
        • Export and Import Application Resources
        • Export Your Workspace as an Archive
    • Anatomy of Visual Applications
      • Understand Variables
      • Understand Actions and Action Chains
      • Understand Page Flows and Lifecycles
      • Understand UI Components
      • Understand Data Access Through REST
  • Part II Connect Applications to Data
    • Work With Business Objects
      • About the Business Objects Pane
      • Create and Edit Business Objects
        • Create a Business Object
        • Add Fields to Business Objects
        • Edit Business Object Fields
      • View, Create, and Edit Business Object Relationships
        • Create a Many-To-One or One-To-One Relationship
        • Create a Many-to-Many Relationship
        • Edit a Business Object Relationship
      • Secure Business Objects
      • Create Rules for Business Objects
        • About Adding Business Rules
        • Access the Current User’s Details in Your Groovy Script
        • Triggers for Business Objects
        • Object Validators for Business Objects
        • Field Validators for Business Objects
        • Object Functions for Business Objects
      • Work with Endpoints to Access Business Objects
        • Access a Business Object’s Resource APIs and Endpoints
        • Work With Query Parameters
        • Add or Remove Exposed Endpoints
      • View and Edit Data in Business Objects
        • Edit the Data in Business Objects
        • Import Data to a Business Object
        • Reload Data from Application Sources
      • Manage Business Object Data During Development
        • Import Data From a File Using the Data Manager
        • Export the Data to a File from the Data Manager
        • Resolve Problems When Importing Data
        • Create Business Objects From a File
        • Set Your Own Audit Fields For Imported Business Objects
        • Import Data into a Deployed Visual Application
        • Export Data from a Deployed Visual Application
      • Optimize Business Object Performance
        • Override Default Timeout for Groovy Scripts
        • Enable Polling for Endpoint Requests
        • Control Data Caching for Business Objects
        • Index a Field to Speed Up Searches and Sorts
      • Work with Business Object Diagrams
        • Create Business Objects with the Diagrammer
        • Create Relationships with the Diagrammer
      • Manage Business Object Settings
      • Switch to Your Own Database Schema for Business Objects
        • Create a Business Object Based on a DB Table or View
        • Add Fields to a Business Object
        • Change a Field’s Data Type
        • Create Calculated Fields for a Business Object
        • Set a Field for Auditing
        • Use a Sequence for a Primary Key Field
        • Create a Relationship Between Business Objects Based on a DB Table
        • Switch Schemas Used During an App’s Lifecycle
    • Work With Services
      • Manage Backends in Your Visual Application
        • What Are Backends?
        • What Are Application Profiles?
        • Set the Backend’s Authentication Method and Connection Type
          • How Does the Identity Propagation Authentication Method Work?
          • How Does the Fixed Credentials Authentication Method Work?
          • What is CORS?
          • Use an Appropriate Connection Type to Handle CORS for REST Services
          • Work with HTTP-based Endpoints
          • Allow Anonymous Access to the Service Data
          • OAuth and JWT Token Validity
        • Add an Oracle Cloud Applications Instance to a Visual Application
        • Create a Backend
          • Add Server Variables for Backends
          • Create a Custom Backend
          • Create a Child Backend
            • Create a Child Backend for a Top-Level Custom Backend
            • Create a Child Backend for the Oracle Cloud Applications Backend
        • Edit a Backend
          • Add Transforms
            • Service-Level Transforms
      • Manage Service Connections
        • What Are Service Connections?
        • Service Connections: Static Versus Dynamic
        • Create a Service Connection
          • Create a Service Connection from a Catalog
            • Create Service Connections from the Oracle Cloud Applications or Integration Applications Catalog
            • Create Service Connections from the Oracle Cloud Infrastructure Process Automation Catalog
          • Create a Service Connection from a Service Specification
          • Create a Service Connection from a REST Endpoint
        • Edit a Service Connection
          • Add a Server to a Service Connection
          • Edit Service Endpoints for a Static Service Connection
          • Retrieve Service Metadata for a Dynamic Service Connection
          • Add Server Variables for Service Connections
          • Add More Endpoints to a Service Connection
          • Edit a Server’s Authentication Details
          • Add Transforms to a Service Connection or an Endpoint
          • Convert a Service Connection
          • Test Service Connection Responses
          • Update Schema of the Request or Response
      • Connect to Oracle Cloud Services
        • Connect to Oracle Cloud Applications APIs
        • Connect to Oracle Integration APIs
        • Connect to Oracle Cloud Infrastructure Process Automation APIs
        • Connect to Oracle Content Management REST APIs
        • Access Data in an Existing Oracle Database Using ORDS
  • Part III Develop Applications
    • Develop Your Application
      • How Are Applications Structured?
      • Which Editor Do I Use?
      • What Are Scopes?
      • Manage App Settings
    • Work With Pages and Flows
      • Use the Page Designer
        • The Components Palette
        • The Structure View
        • The Data Palette
        • The Properties Pane
      • Create and Manage Pages
        • Manage Page Settings
        • Customize Page Headers
        • Set a Page’s Layout
      • Create Pages From Templates
        • Create Pages From Patterns
        • Create Pages From Fragments
        • Change Page Templates
      • Create and Manage Flows
        • Manage Flow Settings
        • Embed a Flow Within a Page
        • Navigate Between Flows in the Root Page
      • Customize Your App’s Root Page
        • Edit an App’s Header, Footer, and Navigation Items
        • Add a Navigation Item for Navigation Drawer Apps
      • Navigate Between Pages and Flows
        • Navigate Between Pages in the Same Flow
        • Navigate Between Pages in Different Flows
    • Work With Components
      • Add Components to Pages
        • Opt In to JET Core Pack Components
        • Add a Component Using Code Completion
        • Bind a Component to Data
        • How Do Quick Starts Work?
          • Add Data to a Table or List
          • Add a Create Page With a Quick Start
          • Add an Edit Page With the Quick Start
          • Add a Details Page With the Quick Start
          • Quick Starts for Dynamic Forms and Tables
        • Add an Image to a Page
        • Add an Icon Component to a Page
        • Add a Camera Component to a Page
        • Filter Data Displayed in a Component
        • Sort Data Displayed in a Component
        • Use Conditions to Show or Hide Components
        • Use Converters to Change Date and Time Formats and Time Zones
      • Add Dynamic Components to Pages
        • What are Dynamic Components?
        • How to Create Layouts With Dynamic Components
        • Add a Dynamic Table to a Page
        • Add a Dynamic Form to a Page
        • Add Display Logic to Determine What’s Displayed at Runtime
          • Create a Layout for a Dynamic Table or Form
          • Group Fields in Dynamic Form Layouts
          • Responsive App Display Logic Example
          • Define Custom Contexts for Components in a Layout
        • Use Field and Form Templates
          • Control How a Field is Rendered with Field Templates
          • Apply a Template to a Field
          • Start an Action Chain from a Field
          • Control How a Form Layout is Rendered
          • Apply a Template to a Form
        • Use Business Rules With Your Rule Sets
          • What Are Business Rules?
            • Include and Exclude Rule Sets in Business Rules
          • Work with Business Rules
            • Create a Rule for Forms
            • Create a Rule for Tables
            • Create Templates for Business Rules
            • Use Nested Rules
            • Add a Switch Rule
            • Add an If/Else Rule
            • Set Conditions for a Rule
            • Override Field Properties in a Form
            • Understand What Will Be Shown at Runtime
              • Interpret the Pop-Up Viewer
              • Identify the Regions and Fields Impacted By a Rule
          • Display Messages in a Form
        • Edit a Field’s Properties
          • Set a Field to be Read Only
          • Set How User Assistance is Rendered in a Layout
          • Set a Field as Required
          • Specify How a User Input Overrides a Field Value
          • Map a Field to a Global Field Template
          • Use Conditions to Show or Hide Fields in a Layout
          • Configure How Columns Render in a Dynamic Table’s Layout
          • Set a Field to Display as a Text Area in a Form
          • Add Converters and Validators to a Field
        • Add a Dynamic Container to a Page
          • Add Fragments as Sections in a Dynamic Container
          • Re-Order a Dynamic Container’s Content
          • Guidelines for Working with Sections
          • Change a Dynamic Container’s Layout
        • Create Fields For a Layout
          • Create a Calculated Field
          • Create a Virtual Field
      • Work With Custom Web Components
        • Work with the Component Exchange
          • Get Components From the Component Exchange
          • Update a Component from the Component Exchange
          • Uninstall a Component
        • Import a Web Component Archive
        • Create a Web Component
    • Work with Variables and Types
      • What are Variables and Types?
      • Create Variables
        • Enable Variables as Input Parameters
        • Track Variables to Detect Unsaved Changes
        • Create Variables to Temporarily Store Data Changes in a Buffer
      • Create Types
        • Create a Custom Object or Array Type
        • Create a Type From an Endpoint
        • Create a Type From Code
      • Service Data Provider
        • Creating a Custom Fetch Action Chain - An Example
        • Delay Display of SDP Data
        • Speed Up Sorts on Business Object Fields
    • Work With JavaScript Action Chains
      • About Action Chains
      • About the Action Chain Editor
        • Create Action Chains in Design View
        • Create Action Chains in Code View
      • About the Action Chain Code
      • Visually Create an Action Chain
      • Built-In Actions
        • Add an Array Operation Action
        • Add an Assign Variable Action
        • Add a Call Action Chain Action
        • Add a Call Component Action
        • Add a Call Function Action
        • Add a Call REST Action
        • Add a Call Variable Action
        • Add a Code Action
        • Add a Fire Data Provider Event Action
        • Add a Fire Event Action
        • Add a Fire Notification Action
        • Add a For Each Action
        • Add a Get Dirty Data Status Action
        • Add a Get Location Action
        • Add an If Action
        • Add a Login Action
        • Add a Logout Action
        • Add a Navigate Back Action
        • Add a Navigate To Flow Action
        • Add a Navigate To Page Action
        • Add an Open URL Action
        • Add a Reset Dirty Data Status Action
        • Add a Reset Variables Action
        • Add a Return Action
        • Add a Run In Parallel Action
        • Add a Scan Barcode Action
        • Add a Share Action
        • Add a String Operation Action
        • Add a Switch Action
        • Add a Try-Catch Action
      • Custom Actions
        • Create a Custom Action
      • Start an Action Chain
        • From a Component
        • When a Variable Changes
        • From a Lifecycle Event
        • By Firing a Custom Event
      • Test Action Chains
        • Create a Test for a Test Case
        • Run the Tests
        • Use the Tests Footer in a Visual Application
        • Test Action Chains Using the vb-test Grunt Task
    • Work With JSON Action Chains
      • About Action Chains
      • Create an Action Chain
      • Built-in Actions
        • Add an Assign Variables Action
        • Add a Call Action Chain Action
        • Add a Call Component Action
        • Add a Call Function Action
        • Add a Call REST Action
        • Add a Call Variable Action
        • Add a Fire Data Provider Event Action
        • Add a Fire Event Action
        • Add a Fire Notification Action
        • Add a Get Location Action
        • Add a Reset Variables Action
        • Add a Login Action
        • Add a Logout Action
        • Add a Scan Barcode Action
        • Add a Take Photo Action
        • Add a Share Action
        • Add a For Each Action
        • Add an If Action
        • Add a Return Action
        • Add a Run In Parallel Action
        • Add a Switch Action
        • Add a Navigate Action
        • Add a Navigate Back Action
        • Add an Open URL Action
      • Custom Actions
        • Create a Custom Action
      • Test Action Chains
        • Manage All Tests in a Visual Application
        • Test Action Chains Using the vb-test Grunt Task
      • Start an Action Chain
        • From a Component
        • When a Variable Changes
        • From a Lifecycle Event
        • By Firing a Custom Event
    • Work With Events and Event Listeners
      • Define Events in Your Application
      • Create Event Listeners for Events
      • Choose How Custom Events Call Event Listeners
      • Enable Asynchronous Handling for Component Events
      • Raise Fragment or Layout Events that Emit to the Parent Container
    • Work With Application Resources
      • Import Resources
      • Manage Custom Component, CSS, and Module Imports
      • Work with the Image Gallery
    • Work With Code
      • Work With JavaScript
        • Add a Custom JavaScript Function
        • Use Variables with a JavaScript Module
        • Work With Third-Party JavaScript Libraries
        • Use RequireJS to Reference Third-Party JavaScript Libraries
        • Add JavaScript Modules As Global Functions
      • Work With JSON
      • Trigger Code Insight
      • Manage Code Editor Settings
    • Work With the Diagram View
      • View a Flow’s Navigation in Diagram View
      • Add Pages and Action Chains to a Flow in Diagram View
        • Add a Page in the Flow Diagram
        • Create an Action Chain in the Flow Diagram
        • Bind an Action Chain in the Flow Diagram to an Existing Event Listener
        • Show or Hide an Action Chain in the Flow Diagram
    • Work With Fragments
      • Create and Add a Fragment to a Page
      • Define Actions and Events in Fragments
      • Manage Fragment Settings
      • Reuse a Fragment
      • Pass Data Between a Fragment and Its Parent Container
        • Enable Fragment Variables as Input Parameters
        • Enable Page Variables to Provide Initial Values for a Fragment’s Input Parameters
        • Automatically Write Back a Fragment Variable’s Value to Its Container Variable
        • Automatically Create and Wire a Fragment Variable on Its Container
        • Sample Scenario: Create a Fragment and Pass Values
        • Create Custom Events that Emit to a Fragment’s Parent Container
        • Automatically Wire a Fragment’s Custom Event to the Parent Container
        • Set the Binding Type for Variables in Dynamic Components
        • Pass a Fragment’s Context to VDOM or Custom Web Components
        • Resolve Expressions in Page Properties Based on Fragment Data
      • Defer Rendering of a Fragment’s Content
      • Add Slots to a Fragment
        • Add Default Content to a Fragment Slot
        • Set Data Context for a Fragment Slot
      • Customize How Fragment Properties Display in the Properties Pane
        • Customize How a Fragment Variable is Displayed in the Properties Pane
        • Section Fragment Properties for Display in the Properties Pane
  • Part IV Augment Applications
    • Enable Progressive Web App Support
      • Guidelines for Using PWA Support
      • Configure Progressive Web App Support
      • Generate a QR Code for a PWA-Enabled App
      • Deep Linking on Android
      • Convert a Mobile App to a Web PWA
    • Secure the Application
      • Security for Web Apps
      • Authentication Roles Versus User Roles
      • Manage User Roles and Access
        • Test Role-Based Access
        • Export User Role Mappings
      • Access and Secure Business Objects
      • Allow Anonymous Access
      • Embed a Web Application
    • Add Offline Capabilities to Your Application
    • Optimize Your App for Search Engines
    • Work With Translations
      • About Translation Resources
      • Understand the Structure of Translation Bundles
      • Understand Translation Keys for Display Texts
        • Generate Translation Keys for Display Texts
      • Download Bundles for Translation
      • Use Translation Strings in JavaScript Files
      • Upload Translated Files
      • Create Translation Bundles
  • Part V Manage Applications
    • Manage Your Visual Application With Git
      • Review the Process
      • Pull Changes from the Remote Branch
      • Make Your Changes Public
      • File-Management Operations
      • Refresh Your Workspace
      • Keep Your Local and Remote Branches in Sync to Avoid Conflicts
      • Resolve Conflicts Using the Git Panel
        • Use the Context Menu
        • Use the Conflict Editor
      • Stash Your Changes
      • Revert Commits
      • Cherry-Pick Commits Between Branches
      • Create or Switch a Branch
      • Rename a Branch
      • Delete a Local Branch
      • Push a Scratch Repository to a Remote Repository
      • View Git History
    • Preview, Share, and Deploy Visual Applications
      • What Happens When You Share and Deploy Visual Applications?
      • Preview a Visual Application
      • Share a Visual Application
      • Enable or Disable the CI/CD Pipeline for Deployments
      • Deploy a Visual Application Without CI/CD Pipelines
      • Deploy a Visual Application Through CI/CD Pipelines
      • Deploy Changes From the Remote Branch
      • Set Version Information for Your Application
      • Customize Optimization
        • Optimization Configurations for build.json
        • How to Migrate Gruntfile.js Configuration Into build.json
      • Specify a Custom URL for Your App
      • Deploy to Test and Production Instances
        • Deploy a Live Version of an Application
        • Update the Live Version of an Application
      • Create or Renew OAuth Tokens for Your Environment’s Instances
      • Manage Deployed Visual Applications
        • View Deployed Visual Applications
        • View Database Schemas Used During an App’s Lifecycle
        • Undeploy a Visual Application
        • Roll Back a Deployed Visual Application
        • Lock and Unlock a Deployed Visual Application
        • Configure a Build Job to Manage Deployed Visual Apps
    • Manage Runtime Dependencies for Visual Applications
      • Upgrade Your Application
      • Resolve Upgrade Issues
      • What Happens During Software Maintenance?
    • Test and Debug Applications
      • Audit Application Code
      • Preview an App in Debug Mode
      • Suppress Optimization
      • Troubleshoot Build Issues
      • Change an Application’s Log Level
    • Audit, Build, and Deploy Visual Applications Using Grunt
      • Overview
      • Build Your Application With Grunt
        • Download Your Application’s Sources
        • Build and Deploy Your Application
        • Authentication
      • Grunt Tasks to Build Your Visual Application
        • About VB Studio Grunt Build Tasks
        • vb-application
        • vb-archive
        • vb-clean
        • vb-credentials
        • vb-css-minify
        • vb-deploy
        • vb-export
        • vb-fa-generate-base-app-config
        • vb-image-minify
        • vb-json-minify
        • vb-manifest
        • vb-optimize
        • vb-optimize-cdn
        • vb-package
        • vb-prepare
        • vb-prerender-cache-warm
        • vb-process-local
        • vb-process-raw
        • vb-process-raw-index-html
        • vb-pwa
        • vb-pwa-splashscreen
        • vb-require-bundle
        • vb-require-bundle-clean
        • vb-serve
        • vb-test
        • vb-watch
      • Customize Your Grunt Build Process
        • Add Custom Functionality to Existing Tasks
        • Override Existing Grunt Tasks
        • Optimize a Specific Web Application
        • Host an Application on a Content Delivery Network (CDN)
        • Run and Configure a Multitask
        • Customize Bundle Modules
        • Exclude Resources from a Bundle
        • Specify Options of Non-multitasks
      • Audit Your Application Using the vb-audit Grunt Task
  • Part VI Use Cases & Troubleshooting
    • Common Use Cases
      • Work With Code Samples
      • Change an Application’s Logo
      • Style and Theme VB Studio Applications
      • Add Login and Logout Capabilities to an Application
        • Customize Application Login
        • Enable Application Logout
      • Create a Custom Lock Page
      • Use a SOAP Web Service With VB Studio
      • Run VB Studio Applications On Other Servers
      • Embed a Web App in an Oracle Cloud Application
      • Call Server-side Functionality from VB Studio
      • Add the Oracle Digital Assistant to Your Web App
      • Abort Pending REST Calls in VB Studio
      • Forms
        • Enable Client-Side Validation for a Form
        • Validate Dates in Forms
      • Tables
        • Modify a Table’s Default Display
        • Reorder Columns in a Table
        • Sort Data in Table Columns
        • Enable Resizing of a Table Column
        • Wrap Table Text
        • Add Columns to an Existing Table
        • Format Row Values in a Table Conditionally
        • Create a Search Filter for a Table
        • Create an Editable Table
        • Update Pagination Behavior for a Table
        • Enable Text Selection in a Table
      • Pages and Flows
        • Restrict User Access to an Application, Flow, or Page
      • Components
        • Conditionally Show or Hide UI Components
        • Enable Time Zone Specification
        • Validate the Length of an Entry in an Input Text Field
        • Filter Multiple Attributes in a Search
        • Set an Initial Value for the Select (Single) Component
      • Business Objects
        • Format a Date Field
        • Apply an Aggregate Function to a Calculated Field From a Child Business Object
    • Troubleshooting & FAQs
      • How Do I Find the URL of My VB Studio Instance?
      • How Do I Find My Application’s Runtime Version?
      • How Do I Clear My App’s Resource Cache?
      • How Do I Write Expressions If a Referenced Field Might Not Be Available Or Its Value Could Be Null?
      • Resolve the "Loading Completed with Errors" Message
      • How Do I Resolve Web Component Loader Issues?
      • How Do I Resolve a ‘Method Not Allowed’ Error?
      • How Do I Resolve a ‘No Such File’ Error for the URI.js File?
      • How Do I Exclude a JavaScript Library from a Packaging Job
      • How Do I Fix a Missing Scroll Bar in a Table?
      • How Do I Access Components After Upgrading?
      • How Do I Fix a Currency Component’s Value Disappearing In Mobile Browsers
      • How Do I Set a Custom Content-Security-Policy Header?
      • Troubleshooting Access Issues
        • Can I Log in Using SSO?
        • How Do I Control the Session Duration For My Visual App?
        • Why Does a Live App That Allowed Anonymous Access Prompt for Login?
      • Troubleshooting Service Connections
        • How Does VB Studio Find a Resource Application within its Identity Domain?
        • How Do I Resolve an "Unknown Host" Error?
        • How Do I Resolve a "Cannot Process Service Scope" Error?
        • How Do Timeout Settings Affect External REST Calls in a Visual App?
        • How Do I Resolve a CORS Error?
        • How Do I Resolve Connection Issues to Oracle Integration 3 Services?
      • Troubleshooting Business Objects
        • What Is The Maximum Data Limit for Business Objects?
        • How Do I Resolve Database Connection Problems?
        • How Do I Resolve a "Failed to verify the target database" Error When Switching the Tenant’s Database
        • How Can I Access Business Object Data?
        • How Do I Resolve a "Maximum Number of Sessions Exceeded" Error?