{"id":73370,"date":"2011-10-11T15:14:50","date_gmt":"2011-10-11T15:14:50","guid":{"rendered":"https:\/\/www.red-gate.com\/simple-talk\/uncategorized\/whats-your-choice-for-oracle-forms\/"},"modified":"2021-07-14T13:08:08","modified_gmt":"2021-07-14T13:08:08","slug":"whats-your-choice-for-oracle-forms","status":"publish","type":"post","link":"https:\/\/www.red-gate.com\/simple-talk\/databases\/oracle-databases\/whats-your-choice-for-oracle-forms\/","title":{"rendered":"What&#8217;s Your Choice for Oracle Forms?"},"content":{"rendered":"<p>Forms was a great tool and stood for fast and easy development.\u00a0 You could create nice data entry applications in no time.\u00a0 But now some people think Forms is dead, it doesn\u2019t have a future or it is at the end of its lifecycle.\u00a0 In this article I hope to prove they\u2019re wrong.\u00a0 And unlike the first sentence to prove that forms IS still a great tool and the applications built with it are future proof.\u00a0 Don\u2019t throw away your investments because you heard some rumors\u2026<\/p>\n<p>So what are the options?<\/p>\n<h2>Modernize<\/h2>\n<p>Most Forms applications look like they were made 15 years ago\u2026 probably because they were made back then.\u00a0 The user interface was nice those days, but the most important thing was that the data could be entered as fast as possible. Today\u2019s users are spoiled with Web2.0 applications and rich GUI\u2019s, so Forms isn\u2019t very attractive.\u00a0 We have a good application, that doesn\u2019t look very flashy\u2026 What can you do?\u00a0 One can start with modernizing the user interface.<\/p>\n<p>Using \u201cPluggable Java Components\u201d (PJC\u2019s \u2013 extending existing forms objects like text items and buttons) the look &amp; feel of a Forms application can be improved.\u00a0 But one can also add functionality by using \u201cJavaBeans\u201d (external Java programs that can be plugged into Forms).<\/p>\n<p>If you want to spice up your forms application with nice looking objects or want to add functionality you thought that wasn\u2019t possible in Oracle Forms, check out the <a href=\"http:\/\/forms.pjc.bean.over-blog.com\" target=\"_blank\" rel=\"noopener\">PJC and JavaBeans library<\/a> of Francois Degrelle for free to use PJC\u2019s and JavaBeans.<\/p>\n<p>Here&#8217;s an example of a Javabean which implements a file drag &amp; drop:<\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/QpcyZKS4HoE\" width=\"420\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<h2>Upgrade<\/h2>\n<p>Upgrading can be split into two main parts: moving from client-server (6i and below) to Webforms (6i and higher) or when you\u2019re already using webforms, upgrading to the latest version.<\/p>\n<p>Upgrading from client-server to the web is the biggest challenge, although already done by a lot of companies.\u00a0\u00a0 Webforms is a different kind of architecture: 3-tier (client-application-data).\u00a0 This means that the client side and the application side are separated.\u00a0 Forms software now runs on the application tier which means there\u2019s only one place to maintain and configure your software.\u00a0 At the client, Forms runs in a Java-applet started from a web browser.\u00a0 This means that Forms is now platform independent, it doesn\u2019t matter whether your client is running Microsoft windows, Linux or a Mac OS.\u00a0 This also means you can run your forms over the internet and you can use Single Sign On (you only have to authenticate once, to access the different applications deployed on you application server).<\/p>\n<p>Why should one move to the latest version, Forms 11g?\u00a0 Well, 10g support ends at December 2011, 11g is supported until the end of 2017. Forms 11g uses the Weblogic server, part of the Fusion Middleware stack and one of the best application servers on the market. And, of course, the latest version has some new features; features that will extend the product \u201copenness\u201d.\u00a0 Those new features will make it easier to integrate Forms into\/with other applications.<\/p>\n<p>More info on upgrading Oracle Forms can be found on the <a href=\"http:\/\/www.oracle.com\/technetwork\/developer-tools\/forms\/index-095046.html\" target=\"_blank\" rel=\"noopener\">Oracle Forms Upgrade center<\/a>.<\/p>\n<h2>Integrate<\/h2>\n<p>Forms has been on an island for a long time.\u00a0 It usually was a stand alone application without interaction or integration with other applications.\u00a0 Since Webforms there are some enhancements which take forms to another level.\u00a0 With the Java importer included in the 6i version, it was possible to call Java classes from forms.\u00a0 One of the advantages of importing Java code is that it\u2019s possible to call (web) services.\u00a0 This cannot be done directly from Forms, but by importing a Java class that does the call, it\u2019s possible to integrate a service.\u00a0 Grant Ronald created a <a href=\"http:\/\/www.oracle.com\/technetwork\/developer-tools\/forms\/ws-10-1-3-from-forms-098038.html\" target=\"_blank\" rel=\"noopener\">tutorial<\/a> on how to call a webservice from Forms.<\/p>\n<p>In the following white paper we (iadvise\/O2U) show you a customer case of integrating Oracle Forms in a SOA (Service Oriented Architecture) environment : <a href=\"http:\/\/www.oracle.com\/technetwork\/developer-tools\/jdev\/zlmcase.pdf\" target=\"_blank\" rel=\"noopener\">http:\/\/www.oracle.com\/technetwork\/developer-tools\/jdev\/zlmcase.pdf<\/a><\/p>\n<p>Some new features of the latest release take Forms out of its isolation.\u00a0 One of them is the JavaScript integration.\u00a0 The applet which runs your application can communicate with the surrounding webpage using JavaScript.\u00a0 For example you can embed your Forms in an HTML page (or any other web technology) and communicate with a google map:<\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/YvBpIuQ2VKs\" width=\"420\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>Not only can Forms interact with Javascript on the client, it can also react to \u201cadvanced Queuing\u201d messages.\u00a0 Before 11g Forms didn\u2019t do anything unless it was triggered by a user action (well, except for timers), but now it can react non user-triggered events.\u00a0 Forms can subscribe to a queue and when there\u2019s a message on this queue Forms will fire a trigger (when-custom-event on an event).\u00a0 Using this feature the Forms application can be integrated in an external process, such as a business process, service, etc.<\/p>\n<h2>Migrate<\/h2>\n<p>Why migrate from Oracle Forms?<\/p>\n<ul>\n<li>Forms is dead, we need to migrate<\/li>\n<li>There\u2019s a tool that migrates our Forms Application to ADF.\u00a0 Let\u2019s migrate to ADF!<\/li>\n<\/ul>\n<p>I hope nobody takes these reasons as serious arguments to migrate.\u00a0 As Oracle states in it\u2019s statement of direction:<\/p>\n<blockquote>\n<p>\u201c\u2026There are no plans to de-support Oracle Forms\u2026\u201d<\/p>\n<\/blockquote>\n<p>And why is Oracle still building new features for next releases, when it\u2019s dead?<\/p>\n<p>There maybe some tools on the market that help you to migrate Oracle Forms to another technology, but this shouldn\u2019t be the main reason to migrate.<\/p>\n<p>There could be some good reasons for you to move away from Forms like: Forms doesn\u2019t meet your requirements anymore or there is a need for re-development.<\/p>\n<p>A migration is a big project and you won\u2019t do it in a fortnight, so you need to analyze the current situation:<\/p>\n<ul>\n<li>Architecture<\/li>\n<li>Functionality<\/li>\n<li>Database model<\/li>\n<li>Documentation<\/li>\n<li>People(users, developers, \u2026)<\/li>\n<\/ul>\n<p>What direction do you want to go?<\/p>\n<ul>\n<li>User interface: web 2.0, mobile,\u2026<\/li>\n<li>Benefits: business process improvement.<\/li>\n<\/ul>\n<p>What are the options?<\/p>\n<ul>\n<li>Redesign and rebuild<\/li>\n<li>Migrate functionality<\/li>\n<\/ul>\n<p>Migrating is an option for a Forms application, but not an easy one.\u00a0 Forms has a unique architecture, specific components and client-side code (program units, triggers, built-ins) that have to be treated very carefully.<\/p>\n<p>A lot of questions need to be answered and the result will be different for every Forms application. Migration is a possible solution, but you need to do it for the right reasons and it should be planned carefully.<\/p>\n<h2>Conlusion<\/h2>\n<p>Oracle Forms is still alive and kicking.\u00a0 But as all IT systems evolve, Forms is also evolving.\u00a0 Forms was and still is a decent product for data entry applications and when looking into the (new) features of forms, there\u2019s a lot you can do to extend the functionality of a Forms application: modernizing, upgrading and integrating. Or maybe, for the right reasons of course, you\u2019ll just have to let it go\u2026<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Forms was a great tool and stood for fast and easy development.\u00a0 You could create nice data entry applications in no time.\u00a0 But now some people think Forms is dead, it doesn\u2019t have a future or it is at the end of its lifecycle.\u00a0 In this article I hope to prove they\u2019re wrong.\u00a0 And unlike the first sentence to prov&hellip;<\/p>\n","protected":false},"author":316191,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[143533],"tags":[],"coauthors":[],"class_list":["post-73370","post","type-post","status-publish","format-standard","hentry","category-oracle-databases"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/73370","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/users\/316191"}],"replies":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/comments?post=73370"}],"version-history":[{"count":1,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/73370\/revisions"}],"predecessor-version":[{"id":91805,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/73370\/revisions\/91805"}],"wp:attachment":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media?parent=73370"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/categories?post=73370"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/tags?post=73370"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/coauthors?post=73370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}