Tuesday, December 22, 2020

Flows for APEX v5.0.1 @ APEX Office Hours

Thanks to Joel Kallman, we got the opportunity to talk about Flows for APEX v5.0.1 during APEX Office Hours on 17-DEC. We got 500(!) attendees and received loads of questions in the Q&A. Some of them got answered during the session by Moritz Klein, some were addressed at the end of the presentation. Still, we didn't manage to answer all of your questions. To cover them all, Richard Allen added a FAQ section in the documentation, so you might want to look over here: https://mt-ag.github.io/apex-flowsforapex/FAQ.html

For those of you that did not manage to attend the presentation, the recording is available on YouTube: 


If you encounter any issues or have any questions, please let us know by sending an e-mail to flowsforapex@mt-ag.com or by creating an issue at our project page on Github: https://github.com/mt-ag/apex-flowsforapex.

If you want to receive updates about our tools, please leave your e-mail address right before downloading the software at https://apex.mt-ag.com/en/flowsforapex.

Thank you all for your support!

The FlowsforAPEX team.

BTW: we talked also about Flows for APEX here: https://www.youtube.com/watch?v=4vraMSatlt8

Friday, December 4, 2020

Flows for APEX v5.0

During the ODTUG Learn From Home Series in May 2020, I announced the general availability of the open source tool Flows for APEX. Flows for APEX lets you model and run process flows in low-code style. It comes as a packaged app, so you just have to import the app and you are good to go. Also, it follows the BPMN 2.0 standard, so you could easily reuse the created flows with BPMN products like Camunda if needed.

Since I received many questions about it, I would like to give developers some insight in how to work with it. The most important thing to know is that it was designed to let APEX developers drive the flow by custom PL/SQL, not the other way around. You, as a programmer, decide when a certain step in a flow is achieved by calling the appropriate API. Let us go through a simple example. Let's say, somebody needs to be over 18 years old to get an insurance policy after submitting a form. With Flows for APEX, you would first model this flow (normally you would let the business department do this for you). The outcome may look like this:

Upon saving the flow, the XML that came out of the JS library called bpmn.io is stored as a CLOB in the table flow_diagrams. All parts of the flow are stored in table flow_objects and all connections, guess what, in flow_connections. You, as an APEX developer, can now start creating your app, thereby creating a form based on your own table, lets say forms. To display the flow in your app, reuse the plugin "BPMN viewer" from the Flows for APEX app. Lastly, you need to start the flow and instruct when it has to move one step further. You do this by calling the PL/SQL API of Flows for APEX, ideally from within your own business package. For example, after approving the submitted application form, you would call a procedure in this package called form_approve that calls the appropriate API of Flows for APEX. Of course, since we are in PL/SQL context, you could do here whatever you want: logging, calling a web service, send an e-mail, etc. Each step in the flow can have its own procedure, but this mainly depends on what you are trying to accomplish.

A basic example of a package procedure that is called from APEX could look like this:
procedure form_approve
( pi_process_id in number
, pi_subflow_id in number
  -- set process variable for gateway
  -- pi_var_name  => the ID of the gateway as specified during modelling
  -- pi_vc2_value => the ID of the connection where the gateway should route to
  ( pi_prcs_id   => pi_process_id
  , pi_var_name  => 'Gateway_over18'
  , pi_vc2_value => 'Connection_yes'

  -- move one step further
  -- the engine will automatically route to the next task
  ( p_process_id  => pi_process_id
  , p_subflow_id  => pi_subflow_id

I recommend starting off by installing the demo packaged app Order Shipment that comes with Flows for APEX v5.

To learn more about BPMN 2.0, see our example process flows at https://bit.ly/flowsforapex.

Looking forward to hear about your experiences!

Resources for APEX developers:

Download Flows for APEX: https://apex.mt-ag.com/flowsforapex
Play with it on apex.oracle.com: https://bit.ly/flowsforapex
See a custom demo app on apex.oracle.com: https://bit.ly/flowsforapexdemo
Presentation slides: https://knowledgebase.mt-ag.com/q/flowsforapex

Resources for Flows for APEX contributors:
Github: https://github.com/mt-ag/apex-flowsforapex

Wednesday, August 14, 2019

Getting up to speed with Oracle Application Express (APEX)

Want to start developing web applications with Oracle Application Express? Make sure you don't reinvent the wheel and adapt best practises from industry experts right from the start.

Here are some tipps for beginners:

1. If you don't already have APEX installed, don't install it yourself, but get a free workspace within minutes on apex.oracle.com. This fully managed environment can even be used for tiny non-critical productive apps.

2. Start making your first apps using our APEX tutorial (German) or from Oracle (English):
https://apex.mt-ag.com/development (includes best practises!)

3. Install and explore all prebuilt Apps from the App Gallery in the APEX builder

4. Watch some great sessions about APEX:

5. Read some great books for in-depth information and for reference:
Oracle APEX: das umfassende Handbuch (German)
Oracle PL/SQL Programming
JavaScript & jQuery: The missing manual

6. Go through "some" slides:

7. Hear some podcasts to get acquainted with some APEX experts:

8. Engage with the APEX community online:
Follow various blogs using your favorite RSS client

9. Meet APEX developers personally at regional conferences:
ODTUG Kscope (USA/Canada)
DOAG APEX Connect (Germany)
NLOUG APEX World (Benelux)
APEX AlpeAdria (Slovenia/Croatia/Austria)
DOAG Conference (Germany)

10. Stay in touch with APEX developers personally between the conferences:
APEX Meetup Groups

11. Gain/share more best practises:
PL/SQL: github.com/doag

If you are starting with APEX, but don't have any clue about what a database is, I suggest you have a look here: http://allthingsoracle.com/oracle-for-absolute-beginners-part-1-databases

Thursday, January 24, 2019

Abstract Selection Process for APEX Connect 2019

I noticed that there is almost nothing published on the internet about how an abstract selection process works. Being the program manager for DOAG APEX Connect, I would like to share some insights about how this process works for this conference. Please be aware that all I say here is only applicable to DOAG APEX Connect 2019 and the process might change in the future. Also, other DOAG conferences may handle this process a bit different.

For APEX Connect 2019, we started our journey by opening Call for Papers. During this time, everybody was able to submit a paper through our website https://apex.doag.org. We encouraged everybody to read through our submission guidelines, as your abstract will be the basis for acceptance:


We received a stunning 171(!) abstracts during Call for Papers, but only 53 regular sessions could fit in the program schedule. Even though we strive to give each presenter only one session, there is no way we could accept each abstract. This is where the abstract selection process comes in. Each year, we ask a team of about 20 experts to rate all abstracts (from 1 to 5) and to provide a comment on their rating. These experts only see the title and abstract text without the presenter name nor the company he works for (anonymous voting). This prevents the rating from being biased by personal preferences, but also ensures that basically only great abstracts stand a chance to get accepted. After the rating, the actual selection took place. With APEX Connect, we have three streams: APEX, PL/SQL and JavaScript. Each stream was assigned a lead, who selects all abstracts for their stream up to a predefined number. These stream leaders have access to all information submitted by the presenter including presenter/company name and either accepts, rejects or puts the abstract on "standby". The list of abstracts in "standby" is issued whenever a scheduled presenter is unable to attend the conference due to some reason.

The criteria in which the selection takes place are:

1. Average rating

2. Check to see if the topic is already covered
To provide the best program, we wanted to cover as many relevant topics as possible, so most of them could only be covered by one presentation. One abstract even got obsolete during the selection process as Oracle Database Cloud Exadata Express got decommissioned by Oracle.

3. Number of sessions this presenter already has
For Connect, we strive to give only one presentation to each presenter. This is not always possible as ie. some well known presenters only become travel approval if they have at least two sessions.

4. Exception to the criteria above
There was only one case were somebody wrote a terrible abstract (and got rated as such), but after discussion with the whole group we still decided to accept the abstract due to its topic, but also due to the person itself.

After the selection process, the program manager verified ie. if a company didn't get too many sessions and discussed open issues with the stream leaders before scheduling all accepted sessions. The schedule was checked for the following:

1. Are the session rooms appropriate in size for the expected audience?

2. Is there at least one English session at all times?

3. Was a presenter accidentally scheduled twice at the same time?

A final check was done by the project manager, after which the program got discussed in a web conference by all volunteers involved in the rating process. After finalizing the conference schedule, everybody who submitted a paper got notified by e-mail and the schedule went online.

This whole process is valid for all 53 regular sessions. Next to that, we also have special sessions like keynote sessions, 1:1 sessions, beginner sessions, etc. These sessions are organized by the program committee.

Please let us know if you have any questions. We are always looking at ways to streamline the process, so we welcome any recommendations made as a comment on this blog post.

A big "thank you" goes out to all volunteers that were involved in the rating process to make this the best schedule ever! Also, I would like to take this opportunity to thank ODTUG and Jorge Rimblas for providing DOAG the abstract selection app based on APEX. You can find this great open source solution here: https://github.com/insum-labs/conference-manager

Last but not least: please visit APEX Connect as you will get the best conference schedule EVER! Convince yourself and have a look at our schedule at https://apex.doag.org/en/program and order your tickets today at https://apex.doag.org/en/tickets/tickets.

BTW, APEX Connect is not the only APEX conference out there. I can also recommend visiting the following great APEX conferences: NLOUG APEX World, APEX Alpe Adria and ODTUG Kscope.

CU in Bonn.

Tuesday, September 18, 2018

Ladies and gentleman: start your engines!

I'm happy to announce the official start of Call for Papers for our 5th edition of DOAG APEX Connect. Until 8-NOV, everybody can submit their abstract for a 45 minute presentation (incl. Q&A) about Oracle Application Express, SQL, PL/SQL or JavaScript. The conference will take place in Bonn from 07-MAY up to 09-MAY at the flashy Kameha Grand Hotel. As a presenter, you will get free entrance during the whole conference including all DOAG events that take place.
If you are not sure what it takes to submit a compelling abstract, I suggest you have a look at our guide: Eleven steps to a succesful submission of your presentation. I encourage everybody to submit an abstract, as it is a great experience to be part of the conference as a presenter.

Due to time constraints, Christian Schwitalla and Peter Raganitsch had to gave up their seat in the conference committee. All I can say is: THANK YOU for your hard work in your spare time and making APEX Connect to what it is! +1

Let me take this opportunity to welcome our newest members in the conference committee: Sabine Heimsath will cover the SQL & PL/SQL track and Tobias Arnhold the APEX track. Together with Kai Donato (JavaScript) and Simone Fischer (Project Lead) we are determined to bring APEX Connect 2019 to the next level. A sneak preview of what we have planned will be uncovered at the DOAG conference in Nürnberg, so stay tuned.

Wednesday, March 28, 2018

Get ready for APEX Connect 2018!

APEX Connect 2018 will take place from 24 till 26 April in Düsseldorf. We have worked hard to make this the best edition yet and when looking at the conference schedule, it sure looks like it!

Let me give you an overview of what will await our attendees:

- 66 normal sessions of each 45 minutes covering APEX, SQL, PL/SQL, JavaScript and UX

- 4 keynote speakers: Connor Mc Donald covering PL/SQL, Golo Roden covering JavaScript and Marc Sewtz/Carsten Czarski covering APEX

- 1:1 sessions with the experts: your chance to personally give them feedback about SQL, PL/SQL, APEX and JavaScript or to just get in touch with them

- New: a whole day training for beginners on the first day. Just have a look at the amazing line up of trainers: https://programm.doag.org/apex/2018/#/schedule?search=apex%20for%20beginners

- New: a special program for students, where they get free access and special sessions to get them up and running with the best technology for building data-centric web apps on this planet

- New: a "World Café" format on the third day - discuss various topics in groups that are presented afterwards.

- New: APEX Lightning Talks - various APEX experts will talk about features you have probably never heard of before

Since this is Connect, it is (also) about getting people together and give them a great time. This year, our special event on the second day will take place in the Apollo theater, which is reserved exclusively for conference attendees. After enjoying dinner and show, we will get together at the bar before a bus will take us back to the hotel again. Party people will have the option to go into town and party on in bars you normally wouldn't be. ;)

So, what are you waiting for? Get your ticket at apex.doag.org!

Friday, May 19, 2017

DOAG APEX Connect 2017 and beyond

First of all, I would like to thank all people that were involved in the making of APEX Connect. We all know that it takes tremendous amount of (private) time to pull this off. Also, a big “thank you” goes to all sponsors and attendees to make this all possible. I truly love this community.

In 2017, we had around 300 attendees at APEX Connect, which I find great. I personally believe that APEX Connect will not grow as rapidly and it doesn’t need to. As the name implies, Connect is all about bringing the APEX community together and learning from each other, both personally and technically. For me, it feels like a small family that is having a reunion.

This edition of Connect was a blast and I received a lot of positive feedback from the community through different channels:

“APEX Connect is one of the best APEX and Oracle Database Developer conferences on the planet.  I thought the quality of the sessions was very high and the topics were very diverse beyond APEX, including SQL, ORDS and Database Development (and even Docker!).  It was also impressive that you had presenters from so many countries - England, Netherlands, USA, Canada, Poland, Belgium, Finland, Serbia, Croatia, Slovenia and others.  It was a fascinating collection of cultures and people coming together, and this is a community that I'm very proud to be a part of.  Many thanks to you and the entire DOAG organization for making this happen. Oh...and for the record, I loved that it was in Berlin and at a modern hotel like the nhow.  There is such a high energy in Berlin and I think it's an exciting place for the APEX community to convene.” - Joel Kallman

“It was great being at APEX Connect - I was impressed by the variety and depth of the sessions that were offered, there’s definitely a lot to learn at APEX Connect, even if you’re an experienced APEX developer. And of course it was great seeing everyone and catching up.” - Marc Sewtz

“Niels, thanks again for inviting me to speak at this year's APEX Connect--or should I say this: āˈpěks kəˈnekt. I had a blast.” - Bryn Llewellyn

“It was a pleasure to personally meet you all at #APEXconn17! Great #orclapex event, great people!” - Bartosz Ostrowski

“Thanks a lot to @nielsdb and the @DOAGeV team for the great #APEXConn17” - Alain Lacour

The quality of the presentations was at a high level and presenters got the possibility to receive feedback from their audience through a nice APEX app. Even though we were in Berlin again, this city has a lot to offer and some took some private time before or after the conference to explore it. The venue in Berlin still appeals to me, but going forward we will rotate between locations. So, next stop will be in a new venue in Düsseldorf.

The presentations from national and international speakers received great feedback. We are always looking for speakers and particularly for first-time speakers -  so think about submitting a paper for the next APEX Connect conference! Before submitting, have a look into Scott Spendolini's blog posting (URL) with some great advice, how a good paper submission should look like:


We got some feedback and had some vital discussions on conference pricing, particularly on the prices for end users vs. IT-service providers. I would like to take the opportunity to explain the guidelines a bit, which DOAG uses to calculate conference prices. DOAG does not strive to make profit out of APEX Connect, but makes sure that all costs are covered. The necessary income for APEX Connect comes partly from the membership fees, but mainly from the events held throughout the year. At the end of the year, all costs of DOAG have to be covered. If there is a surplus, this money is then reinvested in future events or IT-infrastructure. With APEX Connect, there was a surplus, but only because the costs for staff was not accounted for. If you would take into consideration the number of working hours put into this event from DOAG staff, believe me, there is no surplus. Even worse, DOAG takes the risk of such a conference. So, if for some reason, only 200 people would have attended, DOAG will take the bill for this.

This year, DOAG tried to take the IT-service providers more accountable, so that we can keep the pricing down for users coming from end-customers. DOAG already made very good experiences with this new pricing model from other events. However, with APEX Connect, there were also many questions from IT service providers. The Executive Board of DOAG will evaluate these and reconsider the pricing model if necessary.

So now the work starts over again to make APEX Connect in 2018 even better. If you would like to participate in the organisation of this great event, just drop me an e-mail. Also, I’m always open for suggestions, so let me know by e-mail what you think of the conference and how we can further improve it.

BTW: all uploaded APEX Connect slides are freely available with just one mouse click:


Yes, it’s true, you don’t have to be a DOAG member or register to gain knowledge about APEX! Many thanks to DOAG for this kind gesture.

CU at APEX Connect in 2018.

Flows for APEX v5.0.1 @ APEX Office Hours

Thanks to Joel Kallman, we got the opportunity to talk about Flows for APEX v5.0.1 during APEX Office Hours on 17-DEC. We got 500(!) attende...