Skip navigation.

Development

Introducing Formspider 1.9

Gerger Consulting - Thu, 2015-07-02 01:35
For the past year, we've been working hard on the new version of Formspider, the application development tool for Oracle PL/SQL Developers. Join our special virtual event on July 7th and become one of the first people who'll find out what we have in store for you.Whether you are an IT Manager trying to modernize your legacy software, an Oracle Forms Developer looking for a new development tool that is suitable to your skill set, a  PL/SQL Developer searching for a great way to build web applications or an APEX Developer who thinks that there must be a better solution, we'll have something for you.See you on July 7th.Kind Regards,
Yalim K. Gerger
Founder
Categories: Development

Make even more of UKOUG Tech15: APEX 5.0 UI Training - Dec 10th in Birmingham

Dimitri Gielis - Tue, 2015-06-30 00:48

APEX 5.0 has been released this spring. People who have already spent some time on this new version know this version is packed with new features aimed to make APEX developers even more productive, like the Page Designer.
Another striking new subset of features is aimed at creating better looking user interfaces for your APEX applications in an easy and maintainable way. The definition of user interface components in APEX 5.0 is very different to what we're used to. For example there is a new Universal Theme with Template Options and a Theme Roller. To get you up and running with this new toolset as quickly as possible, Dimitri Gielis of APEX R&D and Roel Hartman of APEX Consulting have joined forces and set up a one day course fully aimed at APEX 5.0 UI. So if you want to know not only how to use the new Theme, but also how to modify it to fit your needs, this is the event you should attend!
The training will be at the Jury’s Inn in Birmingham (UK) on Thursday Dec 10 - so conveniently immediately after the UKOUG Tech15 conference.More information and registration see www.apextraining.eu
If you are from another country and think this training should be available in your country as well, please contact us - then we'll see what we can do!
Categories: Development

SQL*Plus tips #7: How to find the current script directory

XTended Oracle SQL - Fri, 2015-06-26 13:06

You know that if we want to execute another script from the current script directory, we can call it through @@, but sometimes we want to know the current path exactly, for example if we want to spool something into the file in the same directory.
Unfortunately we cannot use “spool @spoolfile”, but it is easy to find this path, because we know that SQL*Plus shows this path in the error when it can’t to find @@filename.

So we can simply get this path from the error text:

rem Simple example how to get path (@@) of the current script.
rem This script will set "cur_path" variable, so we can use &cur_path later.
 
set termout off
spool _cur_path.remove
@@notfound
spool off;
 
var cur_path varchar2(100);
declare 
  v varchar2(100);
  m varchar2(100):='SP2-0310: unable to open file "';
begin v :=rtrim(ltrim( 
                        q'[
                            @_cur_path.remove
                        ]',' '||chr(10)),' '||chr(10));
  v:=substr(v,instr(v,m)+length(m));
  v:=substr(v,1,instr(v,'notfound.')-1);
  :cur_path:=v;
end;
/
set scan off;
ho (rm _cur_path.remove 2>&1  | echo .)
ho (del _cur_path.remove 2>&1 | echo .)
col cur_path new_val cur_path noprint;
select :cur_path cur_path from dual;
set scan on;
set termout on;
 
prompt Current path: &cur_path

I used here the reading file content into variable, that I already showed in the “SQL*Plus tips. #1″.
UPDATE: I’ve replaced this script with a cross platform version.

Also I did it with SED and rtrim+ltrim, because 1) I have sed even on windows; and 2) I’m too lazy to write big PL/SQL script that will support 9i-12c, i.e. without regexp_substr/regexp_replace, etc.
But of course you can rewrite it without depending on sed, if you use windows without cygwin.

PS. Note that “host pwd” returns only directory where SQL*Plus was started, but not executed script directory.

Download latest version

Categories: Development

Quick and Dirty - Refreshing a Select List of Values

Denes Kubicek - Tue, 2015-06-23 05:14
This is a quick and dirty solution but it works. It shows hot to update a select list of values on demand without a lot of coding.

Categories: Development

AJAX Callback and jQuery creating Page Items Dynamically

Denes Kubicek - Tue, 2015-06-23 04:40
This example shows a couple of interesting techniques:
  • 1. How to create and use an AJAX Callback process instead of an Application Process on Demand,
  • 2. how to create a dynamic page item,
  • 3. how to modify the item display settings and reference Font Awsome icon set and finaly,
  • 4. it shows how to call an AJAX process from javascript.
This question is based on a recent forum posting where this question was asked.

Have a look and enjoy.

Categories: Development

Aporias

Greg Pavlik - Sat, 2015-06-20 10:03
1.ActuallyHe likes word games    DiffidentIn the way they circle about    Starlings in flight    Or Seraphim.
2.With sweeping gesture    Left to rightHands hang with headUnder the pressing of the sun:    Weight of doubt    Or will.
3.Against open air, tumultuous sea    Turtle greenThe division is nowhere more evidentWhere sand meets froth    Stark, blinding glareWind balmed    Until night.
4.Cleanliness,    Next to godlinessThe echo of countless schoolmarmsChiding, chilling - without regret    Yeah, rather,    Motherhood.

What The World Needs More Of

Greg Pavlik - Fri, 2015-06-19 14:07
The interview with these two kids - Chris and Camryn Singleton - is available on BBC, but I wanted to pull out this remarkable commentary in a related article:

"People are hurting in Charleston. But for the hundreds who packed into the gymnasium at the Goose Creek High School, it was also a reminder of the importance of love.

Sharonda Singleton coached the girls' athletics team here. As her photo rested on an easel on the polished floors in the vast sports hall, her friends and family paid tribute. Speaking for the first time since the deadly attack on the AME church where she worshipped, Sharonda's two children, Chris and Camryn, told me they forgive the man who killed her.

 "We already forgive him and there's nothing but love from our side of the family," Chris told me.

Many will find this incomprehensible. Charleston is often called the Holy City for the number of churches it is home to, and the role religion plays here. For some, like Chris and Camryn, unwavering faith is the only way to turn such a devastating loss into something positive."

This immediately brought to mind the sayings of Fr Zosima in Dostoevsky's Brothers Karamazov, which not to many years ago were the source of a kind of epiphany for me that in a sense reoriented by own thinking:

"Strive to love your neighbor actively and indefatigably. In as far as you advance in love you will grow surer of the reality of God and of the immortality of your soul. If you attain to perfect self-forgetfulness in the love of your neighbor, then you will believe without doubt, and no doubt can possibly enter your soul. This has been tried. This is certain.

Above all, avoid falsehood, every kind of falsehood, especially falseness to yourself. Watch over your own deceitfulness and look into it every hour, every minute. Avoid being scornful, both to others and to yourself. What seems to you bad within you will grow purer from the very fact of your observing it in yourself. Avoid fear, too, though fear is only the consequence of every sort of falsehood. Never be frightened at your own faint-heartedness in attaining love. Don't be frightened overmuch even at your evil actions. I am sorry I can say nothing more consoling to you, for love in action is a harsh and dreadful thing compared with love in dreams. Love in dreams is greedy for immediate action, rapidly performed and in the sight of all. Men will even give their lives if only the ordeal does not last long but is soon over, with all looking on and applauding as though on the stage. But active love is labor and fortitude, and for some people too, perhaps, a complete science. But I predict that just when you see with horror that in spite of all your efforts you are getting farther from your goal instead of nearer to it—at that very moment I predict that you will reach it and behold clearly the miraculous power of the Lord who has been all the time loving and mysteriously guiding you."

....

"At some thoughts one stands perplexed, especially at the sight of men's sin, and wonders whether one should use force or humble love. Always decide to use humble love. If you resolve on that once for all, you may subdue the whole world. Loving humility is marvelously strong, the strongest of all things, and there is nothing else like it." 

....
"“Remember particularly that you cannot be a judge of anyone. For no one can judge a criminal until he recognizes that he is just such a criminal as the man standing before him, and that he perhaps is more than all men to blame for that crime. When he understands that, he will be able to be a judge. Though that sounds absurd, it is true. If I had been righteous myself, perhaps there would have been no criminal standing before me. If you can take upon yourself the crime of the criminal your heart is judging, take it at once, suffer for him yourself, and let him go without reproach. And even if the law itself makes you his judge, act in the same spirit so far as possible, for he will go away and condemn himself more bitterly than you have done. If, after your kiss, he goes away untouched, mocking at you, do not let that be a stumbling-block to you. It shows his time has not yet come, but it will come in due course. And if it come not, no matter; if not he, then another in his place will understand and suffer, and judge and condemn himself, and the truth will be fulfilled. Believe that, believe it without doubt; for in that lies all the hope and faith of the saints.”

This time, Chris and Camryn have moved me beyond words by living this reality.

Addendum/edit: more of this humbling love on display

A natural born tree right in my own backyard!

FeuerThoughts - Wed, 2015-06-17 06:33
As some of my readers may have noticed, I spend a lot of time these days among trees, paying attention to trees, cutting back invasive trees to save native trees, etc.

And one thing that I came to realize is that at least in an area like Chicagoland, humans tightly control the reproduction of trees. 
I live on a lovely tree-lined street. Big trees - 100 ft tall or more. Maples, oaks, ash....but there are no baby trees, except for smallish trees that the city plants when they have to remove diseased trees (such as all the ash trees, under assault from ash borers).
It makes me sad to think of how impoverished my immediate surroundings are, how unnatural. We don't even let trees - majestic living things that make our lives possible, that live through many of our own generations - live out natural life cycles. 
In fact, I have come to accept that trees planted singly along streets to enhance our lives are really just ornaments. If "a man is not an island" then certainly a tree is not a forest. And very few trees live naturally outside of forests of many, many trees.
Well, enough of sadness. Veva and I were sitting on our patio last week, enjoying the (finally) warm weather and our lovely garden (thanks to Veva), when she pointed out something truly wonderful:

Can you see it? We planted the birch trees years ago. They are now 40 feet tall, but nestled in between? A natural born baby birch tree! Can't see it? Here maybe this will help:

I feel so much better now. The (minimal) wildness of our garden (as in: no grass) made it possible for a birch seed to take hold and grow. A tree that humans did not plant and hopefully will allow to grow to maturity.
Humans love to debate things like "Do plants feel?" Of course, it is terribly difficult for us to imagine such a thing - because the way that plants would think and feel would be so different from us. So we will likely never really be able to answer the question.
Which means it would make a lot more sense to err on the side of caution and assume that trees and plants and creatures do feel, do think in their own way, do take joy in life.
And watching this natural born tree grow, it is certainly easy to believe that it is joyful. I sure am.


Categories: Development

Introducing Formspider 1.9, the Web Application Development Framework for PL/SQL Developers.

Gerger Consulting - Wed, 2015-06-17 02:50
The new version of Formspider is coming out this summer. Join our webinar and find out its new features and how your organization can benefit from them. 

The following topics will be covered during the webinar: 
- New features in Formspider version 1.9 
- Formspider architecture&benefits 
- Introduction to development with Formspider 

You can sign up for the webinar at this link.
Categories: Development

APEX Meetup Frankfurt

Denes Kubicek - Sun, 2015-06-14 03:47
Am 26.06.2015 17.00 treffen wir uns in Frankfurt a. M. bei einem weiteren APEX Meetup. Danke an Sabine Heimsath und Moritz Klein für die Organisation. Ich zeige dort, wie man lokal eine XE Datenbank zusammen mit ORDS und Glassfish konfigurieren kann. Danach kann sehr leicht jede beliebige Version von APEX nachinstalliert werden. Der Vorteil ist, ich kann alle Features einsetzen (RESTful Services, XLS Upload) und der Austausch vo Images bzw. Konfiguration für die neue Version von APEX sind kein Problem mehr.

Die Adresse ist:

Ericsson Telekommunikation GmbH
Herriotstr. 1
Frankfurt

Our next meetup is in Frankfurt on 26th of June. Thanks to Sabine Heimsath and Moritz Klein we will meet at Ericsson Telekommunikation GmbH Herriotstr. 1 Frankfurt. I will demonstrate how to install XE with ORDS and Glassfish and how to upgrade to APEX 5.0 on a local virtual machine.

Categories: Development

EM12c 12.1.0.4 Summary of Installation Steps

Arun Bavera - Fri, 2015-06-12 09:08
1. Install EM12c using Advanced without choosing the “Download Update”

2. Install Latest JDK 1.6 (Note: 1944044.1) JDK 1.6.0.95.. Updated to 1.6.0.95

3. Install Latest PSU for EM12cR4 Note: 1995267.1

4. Install latest Plugins

5. Install Monthly Plugin patches for OMS (Doc ID 1900943.1 & Doc ID 1664074.1)

6. Install Monthly Plugin patches for Agent (Doc ID 1900943.1 & Doc ID 1664074.1)

7. Install WebLogic latest PSU (1470197.1)

8. Configure Load Balancer

9. Configure additional OMS

10. Configure LDAP

11. Install & Configure JVMD Servers

12. Install & Configure BI Publisher
 
Reference:
http://docs.oracle.com/cd/E24628_01/install.121/e22624/toc.htm
http://docs.oracle.com/cd/E24628_01/install.121/e24089/toc.htm
Get ready DB12c as per Note: 12c Database has been certified as a 12cR4 Repository with Certain Patchset Restrictions (Doc ID 1987905.1)
Latest plug-ins can be downloaded from :
http://www.oracle.com/technetwork/oem/grid-control/downloads/oem-upgrade-console-502238.html

















Categories: Development

APEX 5.0 - Run Applications in New Tabs Part 2

Denes Kubicek - Tue, 2015-06-02 01:44
In this blog posting I was showing how to get the Firefox Browser to work with tabs in APEX 5.0. It looks like APEX 5.0 was "optimized" to work in Google Chrome and the other browsers like IE and Firefox were not fully considered. I was able to make it working using the settings I described in the first post. However, the old style popup windows would also open in a new tab. Yesterday I discovered a feature I wasn't aware of. Changing the settings using that feature helped me to get everything working as it worked before. Here is what I did:
  • 1. I uninstalled all Tab-Addons in Firefox.
  • 2. The standard settings in Tools / Options / Tabs are shown in the following screenshot:
  • 3. I installed Tab Mix Plus Add-On and changed the settings as in the screenshot:
  • 4. Finaly, I changed the preferences in my workspace:
Now, the consequences were that clicking on Run Application button, would automatically open the application in a new tab:





and the classic popups like image popup would open in a new window:



The only thing is that you need to set the options for each workspace you use.

Enjoy.
Categories: Development

APEX Plugins

Denes Kubicek - Thu, 2015-05-28 01:02
This may sound like a joke but I think there must be something wrong here. This page APEX-Plugin.com is supposed to provide all the plugins out there. The only thing is that you need to log in before you download and that's O.K. However, I forgot my password and wanted to change it. The process is quite simple:
  • I click on forgot my password link.
  • Enter my email address.
  • After that I receive a unique token per email.
  • I enter that token and change my password.
  • The last thing to do is to log in with the new password.
And this is where it starts. I can't log in and nothing happens. I did write an email asking for help but except a confirmation email there was no response whatsoever.

Anyone with the similar problem?

Categories: Development

Leveraging Oracle Developer Cloud Service in SQL and PL/SQL Projects - lifecycle and team collaboration

Shay Shmeltzer - Tue, 2015-05-26 11:37

Usually my demos are targeted at Java developers, but I realize that a lot of developers out there are not using Java, for example in the Oracle install base there is a huge section of PLSQL developers. This however doesn't change their requirements from a development platform. They can still benefit from version management and code review functionality. They still need to track bugs/issues and requirements from their users, and they still need to collaborate in a team environment. 

So I decided to try out and see what would be the development lifecycle experience for a PL/SQL developer if they'll leverage the services provided by the Oracle Developer Cloud Service - here is a demo that shows a potential experience. 

What you'll see in the demo:

  • Using JDeveloper to create DB Diagrams, Tables and PL/SQL code
  • Version manage PL/SQL and SQL with Git
  • Defining a cloud project and adding users
  • Check code in, and branch PL/SQL functions
  • Tracking tasks for developers
  • Code review by team members
  • Build automation (with Ant) - and almost a deploy to the DB

As you can see it is quite a nice complete solution that is very quick to setup and use.

It seems that the concepts of continuous integration in the world of PL/SQL development are not yet a common thing. In the demo I use the Ant SQL command to show how you could run a SQL script you created to create the objects directly in the database - which is probably the equivalent of doing a deployment in the world of Java. However if you prefer you can use Ant for example to copy files, zip them, or do many other tasks such as run automated testing frameworks.

The Ant task I used is this:

  <path id="antclasspath">
    <fileset dir=".">
      <include name="ojdbc7.jar"/>
    </fileset>
  </path>
   <target name="deploy">
    <sql driver="oracle.jdbc.OracleDriver" userid="hr2" password="hr"
         url="jdbc:oracle:thin:@//server:1521/sid" src="./script1.sql" 
	classpathref="antclasspath"/>
  </target> 

I had both the ojdbc7.jar file and the script file at the root of the project for convenience. 

While my demo uses JDeveloper - you should be able to achieve similar functionality with any tool that supports Git. In fact if you rather not use a tool you can simply use command lines to check your files directly into the cloud.

Categories: Development

Fixing Super LOV in Universal Theme

Dimitri Gielis - Thu, 2015-05-21 14:08
When you migrate to APEX 5.0 and the Universal Theme you might see that some plugins are not behaving correctly anymore. In this post I'll discuss the Enkitec Modal LOV plugin.

When I ran the plugin in my APEX 5.0 app with the Universal Theme it looked like this:


There's too much space in the search bar and the close button is not showing up with an icon.

Here're the steps I did to fix it. First you need to download the css file of the style you use and the js file from the plugin in Shared Components. I use the smoothness.css style most of the times, so I'll use that as an example.

To fix the close icon, add !important to the png:

.ek-ml .ui-state-default .ui-icon {
background-image: url(ui-icons_888888_256x240.png) !important;
}

Note: you can do that for all those png on line 467 till 489.

To fix the height, add following css to smoothness.css:

.superlov-button-container {
  height:50px;
}

And finally in enkitec_modal_lov.min.js change the height of the searchContainer from a dynamic height (r) to 0px:
$searchContainer.css("height","0px")
Next upload those files again to the plugin.
When you run the plugin it should give you this result:

Now the bigger question is; do we still need that plugin? In APEX 5.0 there're native Modal Pages, so you could create an Interactive Report and set the page as a Modal Page. Next you can hook that up to a button or link and you've just build your own Modal LOV.
I still like to use the plugin at the moment (as it's just one item on the page), but it could use a refresh to make it look nicer and more inline with Universal Theme.
Wonder what you think - would you build your own Modal LOV in APEX 5.0 or would you still prefer to use a plugin? 
Categories: Development

Tabular Form - Add Rows Top - Universal Theme

Denes Kubicek - Wed, 2015-05-20 06:20
This old example shows how to add rows to the top of the tabular form. Unfortunately this doesn't work with the new Universal Theme. In order to make it working some small changes are required. See this example on how to do it using the new Universal Theme.

Enjoy.

Categories: Development

2 minute Tech Tip: Working with JSON in APEX

Dimitri Gielis - Tue, 2015-05-19 16:30
On Monday Bob Rhubart did a video call with me in his series of 2MTT (2 Minute Tech Tip) on YouTube. You find my 2MMT here.

I talked about using JSON and APEX and gave two examples were we use it.
In previous blog posts I gave more details on those techniques. Here's a quick overview:
Categories: Development

Change first day of week in APEX 5.0 Calendar

Dimitri Gielis - Tue, 2015-05-19 00:52
APEX 5.0 comes with a new calendar region, which is way nicer than the previous calendar in APEX. It has more features, looks better and is also responsive. Behind the scenes you'll see the calendar region is based on Full Calendar.


In Belgium we use Monday as first day of the week, whereas in the US they seem to use Sunday as start of the week in the calendar overview. I've been integrating Full Calendar before, so I knew that library had an option to set the first day of the week. You could either specify an option called firstDay and set that to 1, or you could change the language, and depending the language it would adjust the start day of the week.

In APEX 5.0 I looked for that option, but there's not a specific attribute to set the first day of the week, instead it's based on the language of your application. If you go to Shared Components > Globalization Attributes by default it's set to en, which has Sunday as start of the week. If you set it to en-gb it will have Monday as start of the week.


I searched some time to find how to do it, so hopefully this post will help others to find it more easily. Thanks to Patrick for sharing the way it was implemented.

Categories: Development

The human being is the only animal that...

FeuerThoughts - Sat, 2015-05-16 07:41
Last night, I decided to re-read Stumbling on Happiness, a book I'd discovered a few years ago and was (then) delighted with. 
I chose that over one of my (back then) favorite books of fiction, because I'd been thinking yesterday and how odd it is that lots of left-leaning humans are all upset about climate change and really pissed at their elected officials about their non-action on this literally world-changing issue at a time when radical action is necessary - yet they don't take radical action in their own lives.
It's pretty clear that politicians will not change direction (will not override the influence of the source of their funding), until their constituents demonstrate a deep desire for change, backed up by action.
Anyway, there I was wondering once again about humans and why we behave the way we do. And so I sought out some answers in SoH. After all, the renowned Malcolm Gladwell, author of The Tipping Point, says right on the cover: "If you have even the slightest curiosity about the human condition, you ought to read it. Trust me."OK, so fine. If a person says "trust me", usually you want to run in the other direction. But hey....
So I started reading and soon found Daniel Gilbert talking about psychologists are expected sometime in their career to finish The Sentence that starts with "The human being is the only animal that..." and now it was his turn.
Exciting! And then he finished the sentence:"The human being is the only animal that thinks about the future."And then you know what I did?
I stopped the reading book - and tossed it into the recycle bin. Yep, I threw the book away. That's how much Gilbert disgusted me, right then and there.
Why? Because of all the things we know about the world and the way it "works", the one thing we can never know is what another animal - even another human - is actually, truly thinking
All we can know, all we can see, all we can measure, and then draw conclusions from, is how an animal manifests their thinking into the world.
Gilbert cites as one "proof" of his Sentence that squirrels will, ahem, squirrel away nuts in advance of winter even in places where they will then find, winter after winter, that nuts or other food remain abundant. 
Go, Gilbert, go! Apply a human frame of judgement onto other animals, sure, why not? Why not assume that means that squirrels don't think about the future, rather than saying: "Maybe they do think about the future and know that they cannot trust what the future will bring, because they are not willing to destroy forests to build houses to hide them from the vagaries of the future."
So I threw out the book, but that got me thinking about The Sentence. I thought I would offer my own variations on that statement and invite others to do the same. Here goes...
The human being is the only animal that:
  • creates garbage, including vast "islands" of plastic in the middle of our oceans
  • causes the extinction of entire species, year in and year out
  • poisons water, the source of all life on this planet
  • learns multiple languages
  • holds it in
And just to pre-empt some typical responses:
The human being is the not only animal that:
  • creates art - lots of birds do, too. Just check out nests of bowerbirds.
  • has a sense of right and wrong - black bears do, too. Just check out Among the Bears. Seriously: READ THIS BOOK.
  • uses tools - birds, chimpanzees and others repurpose stones, branches, etc. as tools
  • is altruistic - again, black bears, and even more so ants. Many species of ants are way more altruistic than humans.
So what can you think of that only a human does? And please don't tell me about your belief about internal states of mind. That's just an opinion. Tell me about what humans do.


Categories: Development

APEX 5.0: There are issues with the configuration of the Static Files in your environment

Patrick Wolf - Thu, 2015-05-14 08:13
After installing Oracle APEX 5.0, do you get the alert “There are issues with the configuration of the Static Files in your environment. Please consult the “Configuring Static File Support” section in the Application Express Installation Guide.” when you try … Continue reading →
Categories: Development