Skip to main content

Posts

About the Oracle ACE program

T There is no Oracle User Group in Czech republic. As far as I know, there are just few PR events organized by local Oracle branch few times per year. Last year there was some initiative to organize monthly meetups, but that died quickly. From the rumours I heard several people tried before and failed. I guess there is not enough interest from both sides. Other sad thing is that I don't know a single person in Czech republic who would publish anything for the community. So to be part of the Oracle community, you have to think beyond the borders. Our closest neighbours (Austria, Germany and Poland) have quite large and engaged communities with many events, but I don't know German nor Polish. It might be your case too. Don't be discouraged by that, there are other options. You can become the ODTUG member or a member of any existing Oracle User Group you like. You don't have to live in that country to be a member, but you should know the local language. Joining Spain
Recent posts

APEX Deployment Tool - Automated patching

P Patching is the most significant feature of ADT. You can do a lot of cool things in ADT, but patching is the coolest one. I call this automated patching, because typically I don't have to intervene and I can deploy a patch without any change. The whole idea behind ADT is to focus on your job as a developer and don't worry about mundane tasks like creating patch files manually. ADT has many checks and features to give you confidence on deploying and time to focus on more important or interesting things. ADT does not store anything in database and it does not need any objects in database either. The patch.py script gets all the information from your Git repo (folders, files and config file). To make this work, you must be using Git. Without Git repo you will not be able to generate patch files. This is part of multiple ADT articles: Introduction & workflow Setup connections, config, folder structure Recompile invalid objects Searching APEX and searchin

APEX Blueprint, the 2024 edition

D During my preparation for the amazing APEX Alpe Adria conference in Maribor I have realized that I no longer consider some of my previous recommendations valid, hence there is a time for an update. You can download my presentation at AAA24 review article. Here are the original Blueprint articles published 01/2022: Part 1 about the obvious things + backend and Part 2 focused on APEX . I will repeat some thoughts from these two previous articles and put all things here, so you can refer just to this one new article. I will also add few new thoughts. And it will be longer than usual (around 10 pages actually). Clean code Clean code is a code that can be understood correctly with minimal effort in minimal time. It is not some utopia and you don't have to go to any extremes. In fact you can do just minimal changes in your applications for a huge improvements. How you done things might be obvious to you now, but not the future you, not to mention your colleagues. So if

APEX Deployment Tool - Export database objects

E Exporting database objects is probably the most important thing. Same as for the APEX exports, the more often you do it, the better position you will have. And I store everything in the repo, every single object in database has its own clone in file. I have worked for a company where they stored only changed objects in the repo, imagine that! Every time I am done with a task or at the end of the day I export all changed objects in just few seconds. Update 5/2024: If you want to know the OPY approach, check the Database versioning with data, APEX apps and migrations article. This is part of multiple ADT articles: Introduction & workflow Setup connections, config, folder structure Recompile invalid objects Searching APEX and searching repo for objects Export APEX & live upload Export database objects (this article) Automated patching & deployment The fastest way how to get your changes is to export just the objects which changed in past

APEX Deployment Tool - Export APEX

E Exporting APEX should be done often if you are APEX developer. The more often you do it, the better position you will have. I export APEX every morning to see what other team mates changes (and forgot to commit). I also export it after each change. I modify the page, I export it. With this approach you need to export it fast. This is part of multiple ADT articles: Introduction & workflow Setup connections, config, folder structure Recompile invalid objects Searching APEX and searching repo for objects Export APEX & live upload (this article) Export database objects Automated patching & deployment Export APEX Update 5/2024: ADT no longer use Java based SQLcl to export APEX, so the exports are now 3x faster. If you ask SQLcl for list of changes in APEX for current day or ask ADT to do the split export, you will get the split export faster. The full export is not always suitable. At least exporting just full export is something not v

APEX Deployment Tool - Searching

D Did you ever wondered which database objects are used in your application, in the whole application or just on a specific page? Or to find out where is the specific database object used? Or to find out at which commit was you database object dropped (or created, changed)? This is part of multiple ADT articles: Introduction & workflow Setup connections, config, folder structure Recompile invalid objects Searching APEX and searching repo for objects (this article) Export APEX & live upload Export database objects Automated patching & deployment Searching APEX The solution for searching APEX is based on parsing the Embedded code report export. So when you have this in your repo (and this is part of the next article on export_apex action), the searching is also faster then searching in APEX, it is also more accurate and the result list is much shorter, because it show just list of objects and pages as a table without all the clutter around.

APEX Deployment Tool - Recompile invalid objects

I Invalid objects are often overlooked. Some teams don't care on DEV, others don't care even on PROD. Why would you care, if all you need to do is to wait for a first user who would crunch through the errors and that would recompile the invalid objects, right? It is not that hard to make sure everything is valid... This is part of multiple ADT articles: Introduction & workflow Setup connections, config, folder structure Recompile invalid objects (this article) Searching APEX and searching repo for objects Export APEX & live upload Export database objects Automated patching & deployment If you are looking for a PL/SQL solution, checkout the recompile procedure , which is part of the CORE project . ADT comes with improved script which can be part of your CI/CD pipeline. cd ~/Documents/YOUR_PROJECT_REPO/; adt recompile It recompiles invalid objects, but also the valid ones if you need to change PL/SQL flags. You can also limit

APEX Deployment Tool - Setup

T The most complicated part about ADT is the installation. But don't worry, it is not that complicated and everything after that is super easy. This is part of multiple ADT articles: Introduction & workflow Setup connections, config, folder structure (this article) Recompile invalid objects Searching APEX and searching repo for objects Export APEX & live upload Export database objects Automated patching & deployment Install There is an Install guide in the repo, but in this article I will cover it in more details. You will need Python with some modules, SQLcl, possibly also Instant Client and Git. Here are the steps: clone ADT repo (lets say you clone it here: ~/Documents/ADT/) install any Git client, go for GitHub Desktop if you are new to this install Python 3.11 (and NOT 3.12 or higher) install SQLcl 24.1 install Instant Client 19.16 - required for thick connections (also you might need Java too), you can skip

APEX Deployment Tool

I Imagine this: You create a new page in APEX, or change existing one. Create new LOV, create a view for this LOV, create a view for report/grid on page, create a package to handle the logic... Now what? Now you have to get this to version control and you have to deploy it to other environments. So you want it now on test env, but you have to create a patch in a way, which can be run later on prod. With ADT you can do all of this without any effort just in few seconds. The whole idea behind ADT is to move as quickly as possible with minimum hassle for developers, to create something simple to setup, simple to explain, simple to use, so you can quickly start using it. Something which would save you a lot of time every day. This will be split to several articles: Introduction & workflow (this article) Setup connections, config, folder structure Recompile invalid objects Searching APEX and searching repo for objects Export APEX & live upload Export databas

Make radio group looks like tabs

I I like to use tabs. They are neat. They allows you to have multiple regions on page without cluttering page. They can also replace headers, if you have just one region in each tab. But sometimes I would like to have dynamic tabs (not just the names, also the number of tabs), so here is one method how to achieve that: Steps needed: create page item with Type = Radio Group at Settings set number of columns to whatever you need and Page Action to "Redirect and Set Value" (or create DA if you don't want the page refresh) at List of Values properties specify your source for the tabs at Appearance and Template Options pick "Display as Pill Button" at Item Group Display at Appearance add "TABS" as CSS Classes add CSS styles (below) to style these buttons as tabs And here is the CSS for Redwood: /* STYLE RADIO BUTTONS AS TABS */ .TABS .t-Form-labelContainer { display : none; } .TABS .apex-item-grid-row { di