Skip to Main Content

APEX

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Office Hours: Ask the APEX Team Anything

Mónica Godoy -OracleJan 3 2023 — edited Feb 2 2023

Thanks for had joined us in the past Office Hour session: Ask the APEX Team Anything
Watch the replay of the session: apex.oracle.com/officehours and find below the Q&A for the live session.

APEX in Oracle Cloud

  • I am trying to publish a PL/SQL based API in OCI / APEX and have created an API. I want it to be token based authentication, but have not been able to figure out how to publish the API in OCI. Thoughts?
    If you're providing your API using ORDS (APEX > SQL Workshop > REST Services), you should be able to use OAuth-based authentication directly using ORDS functionality. That should already work.
    If you are facing particular issues, it's probably best to raise that question on the ORDS forum:
  • Our APEX has been automatically upgraded to 22.2. We were unable to apply the 45 day delay so that we can test the new version. This has occured for the last 3 upgrades.
    Is it possible that you have stopped our ADB database? Please see the following documented restriction: Defer Oracle APEX Upgrades.
    If your Autonomous Database is stopped at the time when the new Oracle APEX release becomes available in your region, the update is automatically applied the next time you start your database, regardless of the Defer Upgrade set.
  • How many users support the version ATP in Oracle Cloud?
    It depends. The Always Free Autonomous shared instance is limited with respect to concurrent connections, next to the limit on OCPU power. But a paid instance (shared or dedicated) is scalable.
  • I'm always getting this error trying to create REST Data Source even for the sample module created by default when REST-enabling the Schema (oracle.example.hr module) using the free ADB ATP:
    An error occurred during URL invocation.
    ORA-01031: insufficient privileges
    That's a known issue for one of the sample apps: Please review the application attributes (Shared Components > Application Attributes) and check whether a proxy server is defined.
    If yes, clear it out, please. After that, things should just start working.

Charts

  • Can I move around the charts or adjust multiple charts in one dashboard?
    This plug-in can be helpful: APEX Material BI Dashboard (22.12.06)
  • I’m using oracle APEX from university account. But I want to build some good charts. I have made some before but now I want some more.
    If you haven’t already done so, I'd suggest installing the Sample Charts app in your workspace via the Gallery. That app contains numerous examples and I've also got a sample app on apex.oracle.com, where I provide examples and responses to questions that customers have raised on the forum, which might prove helpful.
    Connectivity / REST Services
  • As PeopleSoft is part of the Oracle Product line, is there a simple way to connect PeopleSoft to APEX?
    It's probably most feasible to use REST APIs to connect between Peoplesoft and APEX. I'm not too familiar with PeopleSoft and its REST APIs, but I'm pretty sure that APEX is able to interact with these either using declarative (REST Data Sources) or programmatic (PL/SQL, APEX_WEB_SERVICE package) means.
  • Does anyone know if APEX_WEB_SERVICE.SET_REQUEST_HEADERS will support more than 5 headers in a future release? (Currently on 22.1 is up to 5).
    The APEX_WEB_SERVICE.SET_REQUEST_HEADERS is limited to 5 headers, but you can set more, of course. Simply do something along the lines of:
    l_idx := apex_web_service.g_request_headers.count + 1
    apex_web_service.g_request_headers( l_idx ).name := ‘...’
    apex_web_service.g_request_headers( l_idx ).value := ‘...’
    and with this scheme, you can add as many headers as you like.
  • Read-only integration with external Databases (MS SQL for instance) is now possible from APEX Reports. Is Write (Post) capability planned anytime soon?
    Read and write capabilities are possible! Please take a look at Connecting your APEX apps to Non-Oracle Databases with Oracle Autonomous Databases

General

  • Will Oracle/FOEX Team continue to develop and support the OPEN SOURCE plugins?
    Short answer is yes, and ideally I would love to expand our catalog of plug-ins on the APEX GitHub repository. Also, some of the functionality of these plug-ins may surface as native features, so plug-ins won’t be necessary for some things.
  • Can you add generation of insert script for all tables in DB schema(s) assigned to APEX workspace? Now, I know only about generation of DDL script for tables. It can be useful for migrating APEX DB tables to another environment.
    Here's a simple database function that will build (efficient) inserts for a given table. Install it in your schema and you can call it from SQL workshop for one, some or all tables in your schema
    Generating INSERT scripts that run fast! (0 Bytes)
  • Will questions submitted but not selected for answering in this session be answered afterward?
    If your question hasn't been covered today we'll certainly do our best to provide follow-up responses and if you have a detailed question, it may be best to post to our external forum: https://apex.oracle.com/forum, so someone on the team can take a look.
  • Any lesson learned on performing collaborative programming along with applying CI/CD in APEX (and its database)?
    Please check out Understanding the Oracle APEX Application Development Lifecycle.
  • Is there a simpler method to retrieve just the query that is the result of grid filtering rather than having to deal with APEX_IR which doesn't have much documentation?
    The final query contains all the additions which APEX adds in order to execute the end user's report configuration, pagination, resolution of LOV columns, and so on. That contains quite a bit of APEX internals, and also the usage of parameter binding is something that frequently led to problems when customers started using it. For that reason, APEX_IR.GET_REPORT was deprecated in favor of APEX_REGION.OPEN_QUERY_CONTEXT. That function executes the query for you, performs all parameter bindings, and returns an APEX_EXEC.T_CONTEXT object which you can use like a cursor.
    And it will work regardless of the actual region's data source. Whether it's based on a table, SQL Query or PL/SQL function, whether it's REST Enabled SQL or a REST Data Source, it will always work and get you the data.
    So you might be looking into APEX_REGION.OPEN_QUERY_CONTEXT.
  • Is there any good picture cropping and reducing filesize in APEX you can recommend?
    At the moment you need to write a custom code for this or get a commercial plug-in. But it's not supported by APEX at the moment.
  • How can I avoid prior selected LOV item being shown after adding a new row in an interactive grid when I use a Pop-up LOV as a selection method?
    This question was answered live.
    Tested it in APEX 22.2 with the popup LOV and it does not open again. It may be best to post to our external forum: https://apex.oracle.com/forum, so we can take a look.
  • I just realized that setting history tables in quick SQL that logged Insert/update/deletes has been desupported since 21.1. Is there an alternative?
    This very topic was raised on a Twitter thread, where Christina from our team responded. Please take a look at Christina & Conner's responses to that thread, which hopefully help to clarify things: https://twitter.com/mortenbraten/status/1387761210045702152
  • Why is Faceted Search not supported on Interactive Grid or Interactive Report? Only on Classic Report
    Interactive Grid and Interactive Report have their own filtering. That's why a little bit hard to link them. But we understood that this is a use case for our customers.
  • How to display a long text when using a Classic Report region?
    Classis Reports (and Interactive Reports also) have a limitation of 32K for the generated HTML markup of one report row. Once that is exceeded, you'll get errors.
    There is no workaround yet, except changing the query to return less content per row. Also, Interactive Grids do not have that limitation.
    Lifting the limit is on our roadmap, but there is no ETA for this yet.
  • Is APEX recognized by any consulting companies around the world?
    Gartner, Forrester, IDC and others are including Oracle APEX in their review and analysis for a couple of years now. And APEX has been recognized by Gartner year by year:
    2022: 2022 Gartner® Peer Insights™ 'Voice of the Customer': Enterprise Low-Code Application Platforms.
    2021: Gartner Peer Insights Customers' Choice for Enterprise Low Code Application Platforms.
    2019: Gartner Peer Insights Customers' Choice for Enterprise Low Code Application Platforms.
  • Monitor Activity/Page Views By Operating System you can see the operating system of the user. Perhaps this can help to see if the user is connected from a mobile device
    I wouldn’t rely too much on the browser user agent string. But if needed there are a number of open-source libraries that are trying to make the best out of it.
  • How can I detect whether APEX is used from mobile / tablet/desktop
    Great question! This is tricky because what is considered mobile vs tablet nowadays with all the available devices? I would recommend looking at screen size instead and using responsive classes that come with UT to adapt the layout based on the different breakpoints.

Interactive Grid

  • Is it in the plans for the next versions to dynamically hide columns in Interactive Grid?
    That is possible with JavaScript. Here's a thread that shows how to do that: https://community.oracle.com/tech/developers/discussion/4495050/how-to-dynamicaly-show-hide-columns-with-js-based-on-current-month
  • How can I dynamically recalculate the row and columns if a value in the editable fields is modified?
    There is no fully declarative support for this in Interactive Grid at this time. In 20.2 there were updates to the model API to add new field properties: calcValue, aggregates, dependsOn. Also, since 21.1, if you use a Number Field for the column item you can get number formatting. I recommend moving to at least 21.1.
    Prior to that required more complex JavaScript and possibly dynamic actions. The APEX forum and the IG Cookbook may be of help here.
    Resources:
    [How to dynamically compute Interactive Grid Columns in #orclapex 20.2](https://stefandobre.com/2020/12/31/dynamically-compute-interactive-grid-columns-in-orclapex-20-2/)
    JSDoc: FieldMeta
  • How can I keep selected data after filtering or searching for something?
    This can be done with model.js with the getSelectedRecords method. This method return all selection and then this can be stored in local session storage, collection or anywhere else.
    Or you create a Dynamic Action with the Event => Selection Change then you get an event on each selection change and can e.g. call:
    var i, selectedIds = ":",
    model = this.data.model;
    for ( i = 0; i < this.data.selectedRecords.length; i++ ) {
    selectedIds += model.getValue( this.data.selectedRecords[i], "EMPNO") + ":";
    }
    $s("P1_SELECTED", selectedIds);
    After the filter is applied the selection can be readded by Listening to the Page Change Event in a Dynamic Action to the current model of the Grid by using the setSelectionState method. It's no low-code solution, because it's JavaScript, but it's possible.
    The IG Sample App is a good example on the Multiple Selection Page for this problem.

Plug-ins

  • Is there an IDE tool to develop our own plugins in Oracle APEX?
    APEX is the IDE for that. You can edit PL/SQL Source, JavaScript and CSS files directly in APEX.
  • Will plugin creation be possible with only JavaScript MLE in the source region in future versions?
    We currently don’t have plans to support JavaScript MLE to write the code for a plug-in, but you can always use DBMS_MLE or just wrap the JavaScript MLE module (in 23c) with a PL/SQL wrapper.
    PWA
  • Would it be possible to have early access to the PWA Sample Application?
    The Sample PWA is available for download via the Gallery, Github and online: apex.oracle.com/go/pwa
  • When will we have persistent authentication to PWA app for Custom authentication type?
    Persistent authentication will already work as long as the app has a login page in the APEX app.

Roadmap

  • How far out is the Visual Application Logic on the roadmap?
    We plan to first use it for Workflows and then in a later stage apply it to page components (dynamic actions, processes, …) as well.
  • Is there any plan to use APEX besides VB for modifying Oracle Cloud Apps?
    As Oracle Cloud Apps are still built with VB we focus on enabling developers to extend Cloud Apps.
  • Do you plan to allow us to create pages and regions from the code?
    Generating regions from code already is possible using the Dynamic Content region type. Generating an entire page? You might want to create an "empty" or very basic page template and use the Dynamic Content region to do so.
  • Will there be any components replacing APEX_ITEM soon? If not, should we start using HTML instead or is there another recommendation?
    For the immediate future we will have no replacement for APEX_ITEM, so please continue to use it in your app development. This topic is on our feature planning, and we will formally communicate to customers when an alternative is available.
  • If there are no replacements for APEX_ITEM, are there plans to update the components? items look like plain HTML or an older version of APEX in many cases
    I believe you're asking if there are plans to update APEX_ITEM, and the answer is no, there are no immediate plans to update APEX_ITEM.
  • Is Oracle JET the future for APEX widgets? The Text With Autocomplete widget was changed away from JET in this past release.
    No, it’s not. JET will be used for Chart Visualization, but we don’t plan to pick up any other JET widgets.
  • Is APEX planning on raising the minimum database requirements since 12.1.0.2 went out of support on July 31 2022? It would be nice to see APEX take advantage of newer database features such as the DEPRECATE pragma.
    For each APEX release, we look into which databases are under support, and what our customers are actually using. Based on that, we're taking a decision on which database version is the minimum for an APEX release.
    Right now, I cannot say which database version will be the minimum for APEX 23.1 this is still under development. But the minimum database version is definitively something we're considering carefully for each APEX release.
  • Will Redwood-Light become Redwood-Dark in the Future?
    There is no dark mode planned for Redwood Light. This Theme Style is meant to be used to extend Oracle’s offerings using the Oracle Redwood UI. While people do enjoy using it, it’s the one theme style that we align with another team’s design patterns/specs.

Security

  • Are there any plans to formally support OKTA as an authentication schema for connections to APEX?
    We know that many customers are successfully using OKTA for authenticating APEX apps. I even used OKTA for the initial tests when implementing the SAML authentication scheme. We are also considering to declaratively support more providers in the Social Sign-In authentication scheme, this might include OKTA. However, this project is not a high priority right now, so it is currently not on the roadmap. That being said, if you are having issues with OKTA integration, please file an SR and we will try to unblock you.
  • Is SAML authentication formally supported?
    There is a SAML2 Authentication Schema that comes with APEX.
    App Builder User's Guide (0 Bytes)UX
  • How can I change the animation speed that a drawer slides into and out of the page?
    We have two CSS variables that control the opening/closing speeds of dialogs/drawers. Currently, drawers only respect the closing duration. But here are the two variables you can use. Simply change the first to the duration (in seconds) you’d like to use. Simply add this snippet to Theme Roller (under Custom CSS), or your stylesheets.
    :root {
    --js-dialog-open-timing: 1s
    --js-dialog-close-timing: 1s
    }

Comments

Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Feb 2 2023
Added on Jan 3 2023
2 comments
1,517 views