SlideShare una empresa de Scribd logo
1 de 40
Developing a Real-World Logistic Application with Oracle Application Express Roel Hartman Software Architect / NL Lead Technical Architect Oracle
Agenda UKOUG 2008 04-12-2008 Introduction The Case Conclusions & Tips Q&A
Introduction 04-12-2008 UKOUG 2008 www.BloggingAboutOracle.org roelhartman.blogspot.com
Introduction Logica  (a word from our sponsors) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],No.  04-12-2008 UKOUG 2008
Introduction Logica  (another word from our sponsors) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],No.  04-12-2008 UKOUG 2008
The Client ,[object Object],[object Object],[object Object],No.  04-12-2008 UKOUG 2008
The Architecture No.  04-12-2008 UKOUG 2008 Accounts Payable/ Accounts Receivable  administration Internet Board computer software TMS Planning software Supply  C hain  Ma n a g emen t Traffic information Order acceptance  and  processing Communication manager Onboard computer E Supply chain m anagement Mob ile  internet Navigati on   system
The Application ,[object Object],[object Object],[object Object],No.  04-12-2008 UKOUG 2008
The Technical Environment No.  04-12-2008 UKOUG 2008 Oracle DB Definition  Files ,[object Object],[object Object],[object Object],[object Object],[object Object],Application  Processor Cache Application  Designer
So…what does the application look like? No.  04-12-2008 UKOUG 2008
No.  04-12-2008 UKOUG 2008
No.  04-12-2008 UKOUG 2008
No.  04-12-2008 UKOUG 2008
No.  04-12-2008 UKOUG 2008
Alternatives  No.  04-12-2008 UKOUG 2008 ++ +? ++ ++ UI ++ ++ ++ - Future ++ -/+ + + Knowledge -/+ ++ + + Productivity -/+ ++ -/+ - Costs + ++ + + Performance -/+ + + + Migration .Net APEX JDeveloper Oracle Forms
Proof of Concept ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],No.  04-12-2008 UKOUG 2008
Enhancement 1 : Direct Validation ,[object Object],[object Object],[object Object],No.  04-12-2008 UKOUG 2008 onchange=“javascript:check_value(this,'Check_Legal_Entity');” <script type=&quot;text/javascript&quot;> function check_value(object, pProcess) {  var get = new htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS='+pProcess,$v('pFlowStepId')); get.addParam('x01',$v(object)); gReturn = get.get(); if(gReturn){ alert(gReturn); } } </script> <script type=&quot;text/javascript&quot;> function checkValue(object, pProcess){ var lRequest = new apex.ajax.ondemand( pProcess, function(){ var l_s = p.readyState; if(l_s == 1||l_s == 2||l_s == 3){ } else if(l_s == 4){ gReturn = p.responseText; (gReturn)?myAlert(gReturn, object):null; }else{return false;} } ); lRequest.ajax.addParam('x01',$v(object)); lRequest._get();  } </script>
Enhancement 1 : Direct Validation ,[object Object],[object Object],[object Object],No.  04-12-2008 UKOUG 2008 declare dummy varchar2(1); l_ley_code legal_entity.legal_entity_code%type; begin l_ley_code := upper(wwv_flow.g_x01); if l_ley_code is null then htp.p('Legal Entity is required'); else select '1' into dummy from legal_entity where legal_entity_code = l_ley_code; end if; exception  when no_data_found  then htp.p('Legal Entity '||l_ley_code||' does not exists'); end begin ley_pck.check_value(upper(wwv_flow.g_x01)); end get.addParam('x01',$v(object)); gReturn = get.get();
Enhancement 2 : Calendar ,[object Object],[object Object],[object Object],[object Object],No.  04-12-2008 UKOUG 2008 $(function(){ // Attach a DatePicker icon and function to class=&quot;datefield&quot;  $(&quot;.datefield&quot;).datepicker( { dateFormat  : 'dd/mm/yy' , closeText  : 'X' , clearText  : '' , showAnim  : 'scale' , showOptions  : { origin: ['top', 'left'] } , showOn  : 'button' , buttonImage  : '#APP_IMAGES#calendar.gif' , buttonImageOnly : true }); });
Enhancement 3 : Show description when a code is entered ,[object Object],[object Object],No.  04-12-2008 UKOUG 2008 get_company_address(this,'LOAD');&quot; <script type=&quot;text/javascript&quot;> function get_company_address(object, pType){  var getter = new htmldb_Get(null,$v('pFlowId').value,'APPLICATION_PROCESS=Get_Company_Address',0); getter.addParam('x01',$v(object)); gReturn = getter.get(); var colArray = gReturn.split(&quot;~sep~&quot;,5); if (colArray[4]==undefined) {  alert(gReturn); } else { html_GetElement('P3_'+pType+'_NAME').value = colArray[0]; html_GetElement('P3_'+pType+'_ADRESS').value = colArray[1]; html_GetElement('P3_'+pType+'_COUNTRY_CODE').value = colArray[2]; html_GetElement('P3_'+pType+'_CITY_CODE').value = colArray[3]; html_GetElement('P3_'+pType+'_POSTCODE').value = colArray[4]; } } </script>
Enhancement 3 : Show description when a code is entered No.  04-12-2008 UKOUG 2008 4. Create an On Demand Application Process ‘Get_Company_Address’ Or even better: declare l_address varchar2(32000); l_sep  varchar2(10) := '~sep~'; l_code  address.adress_code%type; Begin l_code := upper(wwv_flow.g_x01); select name||l_sep||adress||l_sep||country_code||l_sep||city_name||l_sep||postcode into  l_address from  address where  adress_code = l_code; htp.p( l_address ); exception when no_data_found then htp.p('Address Code '||upper(v('ADDRESS_CODE'))||' does not exists'); when others then htp.p(sqlerrm); end begin ads_pck.get_address(upper(wwv_flow.g_x01)); end
Enhancement 3 : Show description when a code is entered (JSON) No.  04-12-2008 UKOUG 2008 declare l_value  varchar2(4000); l_ret_array  wwv_flow_global.vc_arr2; begin l_value := upper(wwv_flow.g_x01); -- Address Code if l_value is not null then for a in  ( select name||':'||adress||':'||country_code||':'||city_name||':'||postcode retval from address where adress_code = l_value  )  loop -- wwv_flow.g_f01(1..5) contains the return fields -- The selected string must be in the same order as the return fields l_ret_array := apex_util.string_to_table(a.retval); for i in 1..wwv_flow.g_f01.count loop apex_util.set_session_state(wwv_flow.g_f01(i), l_ret_array(i) ); end loop; apex_util.json_from_items(apex_util.table_to_string(wwv_flow.g_f01)); end loop; end if; end <script type=&quot;text/javascript&quot;> function getCompanyAddressJSON(object, pType){ if ($v(object)){ var lRequest = new apex.ajax.ondemand( 'getCompanyAddressJSON', function(){ var l_s = p.readyState; if(l_s == 1||l_s == 2||l_s == 3){ } else if(l_s == 4){ gReturn = p.responseText; if(gReturn){ json_SetItems(gReturn); } else{  myAlert('Adresscode '+$v(object)+' does not exist', object); } }else{return false;}  } ); lRequest.ajax.AddArray(['P3_UNLOAD_NAME','P3_UNLOAD_ADRESS','P3_UNLOAD_COUNTRY_CODE‘ ,'P3_UNLOAD_CITY_CODE','P3_UNLOAD_POSTCODE']); lRequest.ajax.addParam('x01',$v(object)); lRequest._get();  } } </script>
Enhancement 4 : LOV ,[object Object],[object Object],[object Object],[object Object],[object Object],No.  04-12-2008 UKOUG 2008 &nbsp;<a href=&quot;javascript:ShowLOV('#CURRENT_ITEM_NAME#', 'LOV_CUSTOMERS');&quot;> <img height=&quot;16&quot; width=&quot;16&quot; alt=&quot;Popup Lov&quot; src=&quot;/i/lov_16x16.gif&quot;/></a> return get_lov_query(v('LOV_NAME')); create or replace FUNCTION GET_LOV_QUERY ( p_lov_name IN lov_definitions.lov_name%type ) RETURN lov_definitions.lov_query%type AS l_query lov_definitions.lov_query%type; BEGIN select lov_query into  l_query from  lov_definitions where  lov_name = upper(p_lov_name); RETURN l_query; END GET_LOV_QUERY;
Enhancement 4 : LOV ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],create or replace FUNCTION GET_LOV_QUERY ( p_lov_item IN lov_items.lov_item%type ) RETURN lov_definitions.lov_query%type AS l_query lov_definitions.lov_query%type; BEGIN select lov_query into  l_query from  lov_definitions d, lov_items i where  i.lov_item = upper( p_lov_item ) and  i.lov_name = d.lov_name; RETURN l_query; END GET_LOV_QUERY; select legal_entity_code code, description, company_code company, le_language language, htf.anchor('javascript:passBack('''||legal_entity_code||''')', 'select') choose from  legal_entity  where  legal_entity_code like upper('%'||:P30_LOV_SEARCH||'%') or  description  like upper('%'||:P30_LOV_SEARCH||'%') or  company_code  like upper('%'||:P30_LOV_SEARCH||'%') or  le_language  like upper('%'||:P30_LOV_SEARCH||'%') // Attach a LOV icon and function to class=&quot;LOVfield&quot; $(&quot;.LOVfield&quot;).after('&nbsp;<img class=&quot;LOV-Image&quot; src=&quot;#APP_IMAGES#Search.png&quot; onclick=&quot;javascript:ShowLOV($(this));&quot; />'); No.  04-12-2008 UKOUG 2008 return get_lov_query(v('LOV_ITEM'));
Enhancement 4 : LOV ,[object Object],No.  04-12-2008 UKOUG 2008 javascript:ShowLOV($(this)); return get_lov_query(v('LOV_NAME')); jQuery : Add DIV containing LOV to page
No.  04-12-2008 UKOUG 2008 Enhancement 4 : LOV 7. Now you can easily define other draggable multi column LOV’s!
The Reaction No.  04-12-2008 UKOUG 2008 Can you do that in APEX too? BTW,  we also have a Java written graphical application,  tightly connected with the screens. Hey guys, this is really great! .
No.  04-12-2008 UKOUG 2008
Planboard in APEX : The Demo No.  04-12-2008 UKOUG 2008
Planboard in APEX : The Flow No.  04-12-2008 UKOUG 2008 Database APEX Planboard Flow Orders Trucks Planboard   View Reports Region 1 2
Planboard in APEX : The Reports Region No.  04-12-2008 UKOUG 2008 Normal Report Region Report Region with Containers div_id :  cont_<day>_<truck>
Planboard in APEX : The Reports Region No.  04-12-2008 UKOUG 2008 Normal Report Region Report Region with Containers div_id :  cont_<day>_<truck>  Report Region with Containers and Items div_id :  item_<day>_<order>
Planboard in APEX : The Reports Region No.  04-12-2008 UKOUG 2008 HTML Expression of every (day) column: <div id=&quot;#EQUIPMENT_NO#&quot; class=&quot;dndcontainer&quot; ><div id=&quot;#MON#&quot;>#MON#</div></div> <SCRIPT type=text/javascript> if ('#MON#' != ''){ $('##MON#').addClass('dndobject');  } </SCRIPT> Normal Report Region Report Region with Containers div_id :  #equipment_no# Report Region with Containers and Items div_id :  #MON#
Planboard in APEX : The Flow No.  04-12-2008 UKOUG 2008 Database APEX Planboard Flow Orders Trucks Planboard   View Reports Region Application Process Drag  &  Drop 1 2 3 4
Planboard in APEX : The Drag & Drop ,[object Object],[object Object],[object Object],No.  04-12-2008 UKOUG 2008
Planboard in APEX : The Flow No.  04-12-2008 UKOUG 2008 Database APEX Planboard Flow Orders Trucks Planboard   View Reports Region Application Process Drag  &  Drop 1 2 3 4
Planboard in APEX : Context Sensitive Right Mouse Menu No.  04-12-2008 UKOUG 2008 ,[object Object],[object Object],//Add mousedown function to Drag object $(&quot;.dndobject&quot;).rightClick( function(el) { setOrderMenuEntry($(el).attr(&quot;id&quot;)); }) ; lLink = &quot;f?p=&APP_ID.:3:&APP_SESSION.::::P3_ORDER_NO:&quot;+pNo; mainMenu.items.link.actionOnClick=&quot;code:html_PopUp('&quot;+lLink+&quot;','Orders‘,1000,800)&quot;; mainMenu.items.link.setDisplayText( &quot;Go to order &quot;+pNo);
Conclusions & Tips ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],No.  04-12-2008 UKOUG 2008
Question Time No.  04-12-2008 UKOUG 2008
Contact address:  [email_address] No.  04-12-2008 UKOUG 2008

Más contenido relacionado

La actualidad más candente

JavaScript Web Development
JavaScript Web DevelopmentJavaScript Web Development
JavaScript Web Developmentvito jeng
 
Testowanie JavaScript
Testowanie JavaScriptTestowanie JavaScript
Testowanie JavaScriptTomasz Bak
 
Integrating React.js with PHP projects
Integrating React.js with PHP projectsIntegrating React.js with PHP projects
Integrating React.js with PHP projectsIgnacio Martín
 
Min-Maxing Software Costs - Laracon EU 2015
Min-Maxing Software Costs - Laracon EU 2015Min-Maxing Software Costs - Laracon EU 2015
Min-Maxing Software Costs - Laracon EU 2015Konstantin Kudryashov
 
Reactive, component 그리고 angular2
Reactive, component 그리고  angular2Reactive, component 그리고  angular2
Reactive, component 그리고 angular2Jeado Ko
 
Reactive Programming - ReactFoo 2020 - Aziz Khambati
Reactive Programming - ReactFoo 2020 - Aziz KhambatiReactive Programming - ReactFoo 2020 - Aziz Khambati
Reactive Programming - ReactFoo 2020 - Aziz KhambatiAziz Khambati
 
Monads in javascript
Monads in javascriptMonads in javascript
Monads in javascriptJana Karceska
 
exportDisabledUsersRemoveMailbox
exportDisabledUsersRemoveMailboxexportDisabledUsersRemoveMailbox
exportDisabledUsersRemoveMailboxDaniel Gilhousen
 
Presentation of the new OpenERP API. Raphael Collet, OpenERP
Presentation of the new OpenERP API. Raphael Collet, OpenERPPresentation of the new OpenERP API. Raphael Collet, OpenERP
Presentation of the new OpenERP API. Raphael Collet, OpenERPOdoo
 
Introduction to CQRS and Event Sourcing
Introduction to CQRS and Event SourcingIntroduction to CQRS and Event Sourcing
Introduction to CQRS and Event SourcingSamuel ROZE
 
Template syntax in Angular 2.0
Template syntax in Angular 2.0Template syntax in Angular 2.0
Template syntax in Angular 2.0Eyal Vardi
 
Component lifecycle hooks in Angular 2.0
Component lifecycle hooks in Angular 2.0Component lifecycle hooks in Angular 2.0
Component lifecycle hooks in Angular 2.0Eyal Vardi
 
RESTful API using scalaz (3)
RESTful API using scalaz (3)RESTful API using scalaz (3)
RESTful API using scalaz (3)Yeshwanth Kumar
 
Higher-Order Components — Ilya Gelman
Higher-Order Components — Ilya GelmanHigher-Order Components — Ilya Gelman
Higher-Order Components — Ilya Gelman500Tech
 
When cqrs meets event sourcing
When cqrs meets event sourcingWhen cqrs meets event sourcing
When cqrs meets event sourcingManel Sellés
 
Intro to GraphQL on Android with Apollo DroidconNYC 2017
Intro to GraphQL on Android with Apollo DroidconNYC 2017Intro to GraphQL on Android with Apollo DroidconNYC 2017
Intro to GraphQL on Android with Apollo DroidconNYC 2017Mike Nakhimovich
 
SF Scala meet up, lighting talk: SPA -- Scala JDBC wrapper
SF Scala meet up, lighting talk: SPA -- Scala JDBC wrapperSF Scala meet up, lighting talk: SPA -- Scala JDBC wrapper
SF Scala meet up, lighting talk: SPA -- Scala JDBC wrapperChester Chen
 

La actualidad más candente (20)

JavaScript Web Development
JavaScript Web DevelopmentJavaScript Web Development
JavaScript Web Development
 
Testowanie JavaScript
Testowanie JavaScriptTestowanie JavaScript
Testowanie JavaScript
 
Integrating React.js with PHP projects
Integrating React.js with PHP projectsIntegrating React.js with PHP projects
Integrating React.js with PHP projects
 
Min-Maxing Software Costs - Laracon EU 2015
Min-Maxing Software Costs - Laracon EU 2015Min-Maxing Software Costs - Laracon EU 2015
Min-Maxing Software Costs - Laracon EU 2015
 
Reactive, component 그리고 angular2
Reactive, component 그리고  angular2Reactive, component 그리고  angular2
Reactive, component 그리고 angular2
 
Min-Maxing Software Costs
Min-Maxing Software CostsMin-Maxing Software Costs
Min-Maxing Software Costs
 
Reactive Programming - ReactFoo 2020 - Aziz Khambati
Reactive Programming - ReactFoo 2020 - Aziz KhambatiReactive Programming - ReactFoo 2020 - Aziz Khambati
Reactive Programming - ReactFoo 2020 - Aziz Khambati
 
Monads in javascript
Monads in javascriptMonads in javascript
Monads in javascript
 
exportDisabledUsersRemoveMailbox
exportDisabledUsersRemoveMailboxexportDisabledUsersRemoveMailbox
exportDisabledUsersRemoveMailbox
 
Presentation of the new OpenERP API. Raphael Collet, OpenERP
Presentation of the new OpenERP API. Raphael Collet, OpenERPPresentation of the new OpenERP API. Raphael Collet, OpenERP
Presentation of the new OpenERP API. Raphael Collet, OpenERP
 
Zend framework service
Zend framework serviceZend framework service
Zend framework service
 
Introduction to CQRS and Event Sourcing
Introduction to CQRS and Event SourcingIntroduction to CQRS and Event Sourcing
Introduction to CQRS and Event Sourcing
 
Template syntax in Angular 2.0
Template syntax in Angular 2.0Template syntax in Angular 2.0
Template syntax in Angular 2.0
 
Component lifecycle hooks in Angular 2.0
Component lifecycle hooks in Angular 2.0Component lifecycle hooks in Angular 2.0
Component lifecycle hooks in Angular 2.0
 
Nativescript angular
Nativescript angularNativescript angular
Nativescript angular
 
RESTful API using scalaz (3)
RESTful API using scalaz (3)RESTful API using scalaz (3)
RESTful API using scalaz (3)
 
Higher-Order Components — Ilya Gelman
Higher-Order Components — Ilya GelmanHigher-Order Components — Ilya Gelman
Higher-Order Components — Ilya Gelman
 
When cqrs meets event sourcing
When cqrs meets event sourcingWhen cqrs meets event sourcing
When cqrs meets event sourcing
 
Intro to GraphQL on Android with Apollo DroidconNYC 2017
Intro to GraphQL on Android with Apollo DroidconNYC 2017Intro to GraphQL on Android with Apollo DroidconNYC 2017
Intro to GraphQL on Android with Apollo DroidconNYC 2017
 
SF Scala meet up, lighting talk: SPA -- Scala JDBC wrapper
SF Scala meet up, lighting talk: SPA -- Scala JDBC wrapperSF Scala meet up, lighting talk: SPA -- Scala JDBC wrapper
SF Scala meet up, lighting talk: SPA -- Scala JDBC wrapper
 

Destacado

WebXpress 3PL Management
WebXpress 3PL ManagementWebXpress 3PL Management
WebXpress 3PL ManagementWebXpress.IN
 
Ten Tiny Things To Try Today - Hidden APEX5 Gems Revealed
Ten Tiny Things To Try Today - Hidden APEX5 Gems RevealedTen Tiny Things To Try Today - Hidden APEX5 Gems Revealed
Ten Tiny Things To Try Today - Hidden APEX5 Gems RevealedRoel Hartman
 
Best of both worlds: Create hybrid mobile applications with Oracle Applicatio...
Best of both worlds: Create hybrid mobile applications with Oracle Applicatio...Best of both worlds: Create hybrid mobile applications with Oracle Applicatio...
Best of both worlds: Create hybrid mobile applications with Oracle Applicatio...Roel Hartman
 
APEX printing with BI Publisher
APEX printing with BI PublisherAPEX printing with BI Publisher
APEX printing with BI PublisherRoel Hartman
 
Oracle Forms to APEX conversion tool
Oracle Forms to APEX conversion toolOracle Forms to APEX conversion tool
Oracle Forms to APEX conversion toolScott Wesley
 
G Log Transportation Mgmt V5.7
G Log Transportation Mgmt V5.7G Log Transportation Mgmt V5.7
G Log Transportation Mgmt V5.7K P Siva Prasad
 
Integration of APEX and Oracle Forms
Integration of APEX and Oracle FormsIntegration of APEX and Oracle Forms
Integration of APEX and Oracle FormsRoel Hartman
 
APEX Developers : Do More With LESS !
APEX Developers : Do More With LESS !APEX Developers : Do More With LESS !
APEX Developers : Do More With LESS !Roel Hartman
 
Troubleshooting APEX Performance Issues
Troubleshooting APEX Performance IssuesTroubleshooting APEX Performance Issues
Troubleshooting APEX Performance IssuesRoel Hartman
 
Automated testing APEX Applications
Automated testing APEX ApplicationsAutomated testing APEX Applications
Automated testing APEX ApplicationsRoel Hartman
 
Webinar: Oracle R12 Warehouse Management System (WMS) Overview
Webinar: Oracle R12 Warehouse Management System (WMS) OverviewWebinar: Oracle R12 Warehouse Management System (WMS) Overview
Webinar: Oracle R12 Warehouse Management System (WMS) OverviewiWare Logic Technologies Pvt. Ltd.
 
Logistics and Distribution Project - DTDC
Logistics and Distribution Project - DTDCLogistics and Distribution Project - DTDC
Logistics and Distribution Project - DTDCAvinash Heston
 
Third party logistics
Third party logisticsThird party logistics
Third party logisticsKuldeep Uttam
 
Mastering universal theme
Mastering universal themeMastering universal theme
Mastering universal themeRoel Hartman
 

Destacado (15)

WebXpress 3PL Management
WebXpress 3PL ManagementWebXpress 3PL Management
WebXpress 3PL Management
 
Ten Tiny Things To Try Today - Hidden APEX5 Gems Revealed
Ten Tiny Things To Try Today - Hidden APEX5 Gems RevealedTen Tiny Things To Try Today - Hidden APEX5 Gems Revealed
Ten Tiny Things To Try Today - Hidden APEX5 Gems Revealed
 
Finding a 3PL Partner
Finding a 3PL PartnerFinding a 3PL Partner
Finding a 3PL Partner
 
Best of both worlds: Create hybrid mobile applications with Oracle Applicatio...
Best of both worlds: Create hybrid mobile applications with Oracle Applicatio...Best of both worlds: Create hybrid mobile applications with Oracle Applicatio...
Best of both worlds: Create hybrid mobile applications with Oracle Applicatio...
 
APEX printing with BI Publisher
APEX printing with BI PublisherAPEX printing with BI Publisher
APEX printing with BI Publisher
 
Oracle Forms to APEX conversion tool
Oracle Forms to APEX conversion toolOracle Forms to APEX conversion tool
Oracle Forms to APEX conversion tool
 
G Log Transportation Mgmt V5.7
G Log Transportation Mgmt V5.7G Log Transportation Mgmt V5.7
G Log Transportation Mgmt V5.7
 
Integration of APEX and Oracle Forms
Integration of APEX and Oracle FormsIntegration of APEX and Oracle Forms
Integration of APEX and Oracle Forms
 
APEX Developers : Do More With LESS !
APEX Developers : Do More With LESS !APEX Developers : Do More With LESS !
APEX Developers : Do More With LESS !
 
Troubleshooting APEX Performance Issues
Troubleshooting APEX Performance IssuesTroubleshooting APEX Performance Issues
Troubleshooting APEX Performance Issues
 
Automated testing APEX Applications
Automated testing APEX ApplicationsAutomated testing APEX Applications
Automated testing APEX Applications
 
Webinar: Oracle R12 Warehouse Management System (WMS) Overview
Webinar: Oracle R12 Warehouse Management System (WMS) OverviewWebinar: Oracle R12 Warehouse Management System (WMS) Overview
Webinar: Oracle R12 Warehouse Management System (WMS) Overview
 
Logistics and Distribution Project - DTDC
Logistics and Distribution Project - DTDCLogistics and Distribution Project - DTDC
Logistics and Distribution Project - DTDC
 
Third party logistics
Third party logisticsThird party logistics
Third party logistics
 
Mastering universal theme
Mastering universal themeMastering universal theme
Mastering universal theme
 

Similar a Developing A Real World Logistic Application With Oracle Application - UKOUG 2008

CiklumJavaSat_15112011:Alex Kruk VMForce
CiklumJavaSat_15112011:Alex Kruk VMForceCiklumJavaSat_15112011:Alex Kruk VMForce
CiklumJavaSat_15112011:Alex Kruk VMForceCiklum Ukraine
 
Yahoo Query Language: Select * from Internet
Yahoo Query Language: Select * from InternetYahoo Query Language: Select * from Internet
Yahoo Query Language: Select * from Internetdrgath
 
Interoperable Web Services with JAX-WS
Interoperable Web Services with JAX-WSInteroperable Web Services with JAX-WS
Interoperable Web Services with JAX-WSCarol McDonald
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)Carles Farré
 
Itemscript, a specification for RESTful JSON integration
Itemscript, a specification for RESTful JSON integrationItemscript, a specification for RESTful JSON integration
Itemscript, a specification for RESTful JSON integration{item:foo}
 
Html and i_phone_mobile-2
Html and i_phone_mobile-2Html and i_phone_mobile-2
Html and i_phone_mobile-2tonvanbart
 
Intro Open Social and Dashboards
Intro Open Social and DashboardsIntro Open Social and Dashboards
Intro Open Social and DashboardsAtlassian
 
Open Source Ajax Solution @OSDC.tw 2009
Open Source Ajax  Solution @OSDC.tw 2009Open Source Ajax  Solution @OSDC.tw 2009
Open Source Ajax Solution @OSDC.tw 2009Robbie Cheng
 
Introduction to CodeIgniter (RefreshAugusta, 20 May 2009)
Introduction to CodeIgniter (RefreshAugusta, 20 May 2009)Introduction to CodeIgniter (RefreshAugusta, 20 May 2009)
Introduction to CodeIgniter (RefreshAugusta, 20 May 2009)Michael Wales
 
Struts2
Struts2Struts2
Struts2yuvalb
 
Advisor Jumpstart: JavaScript
Advisor Jumpstart: JavaScriptAdvisor Jumpstart: JavaScript
Advisor Jumpstart: JavaScriptdominion
 
AJAX Workshop Notes
AJAX Workshop NotesAJAX Workshop Notes
AJAX Workshop NotesPamela Fox
 
Aug Xml Net Forum Dynamics Integration
Aug Xml Net Forum Dynamics IntegrationAug Xml Net Forum Dynamics Integration
Aug Xml Net Forum Dynamics IntegrationMariAnne Woehrle
 
Working effectively with legacy code
Working effectively with legacy codeWorking effectively with legacy code
Working effectively with legacy codeShriKant Vashishtha
 
Supersize me
Supersize meSupersize me
Supersize medominion
 
Tech_Implementation of Complex ITIM Workflows
Tech_Implementation of Complex ITIM WorkflowsTech_Implementation of Complex ITIM Workflows
Tech_Implementation of Complex ITIM Workflows51 lecture
 

Similar a Developing A Real World Logistic Application With Oracle Application - UKOUG 2008 (20)

CiklumJavaSat_15112011:Alex Kruk VMForce
CiklumJavaSat_15112011:Alex Kruk VMForceCiklumJavaSat_15112011:Alex Kruk VMForce
CiklumJavaSat_15112011:Alex Kruk VMForce
 
Yahoo Query Language: Select * from Internet
Yahoo Query Language: Select * from InternetYahoo Query Language: Select * from Internet
Yahoo Query Language: Select * from Internet
 
Interoperable Web Services with JAX-WS
Interoperable Web Services with JAX-WSInteroperable Web Services with JAX-WS
Interoperable Web Services with JAX-WS
 
GWT
GWTGWT
GWT
 
Gooogle Web Toolkit
Gooogle Web ToolkitGooogle Web Toolkit
Gooogle Web Toolkit
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
 
YAP / Open Mail Overview
YAP / Open Mail OverviewYAP / Open Mail Overview
YAP / Open Mail Overview
 
Itemscript, a specification for RESTful JSON integration
Itemscript, a specification for RESTful JSON integrationItemscript, a specification for RESTful JSON integration
Itemscript, a specification for RESTful JSON integration
 
Html and i_phone_mobile-2
Html and i_phone_mobile-2Html and i_phone_mobile-2
Html and i_phone_mobile-2
 
Intro Open Social and Dashboards
Intro Open Social and DashboardsIntro Open Social and Dashboards
Intro Open Social and Dashboards
 
Open Source Ajax Solution @OSDC.tw 2009
Open Source Ajax  Solution @OSDC.tw 2009Open Source Ajax  Solution @OSDC.tw 2009
Open Source Ajax Solution @OSDC.tw 2009
 
Introduction to CodeIgniter (RefreshAugusta, 20 May 2009)
Introduction to CodeIgniter (RefreshAugusta, 20 May 2009)Introduction to CodeIgniter (RefreshAugusta, 20 May 2009)
Introduction to CodeIgniter (RefreshAugusta, 20 May 2009)
 
Struts2
Struts2Struts2
Struts2
 
Advisor Jumpstart: JavaScript
Advisor Jumpstart: JavaScriptAdvisor Jumpstart: JavaScript
Advisor Jumpstart: JavaScript
 
AJAX Workshop Notes
AJAX Workshop NotesAJAX Workshop Notes
AJAX Workshop Notes
 
Aug Xml Net Forum Dynamics Integration
Aug Xml Net Forum Dynamics IntegrationAug Xml Net Forum Dynamics Integration
Aug Xml Net Forum Dynamics Integration
 
Working effectively with legacy code
Working effectively with legacy codeWorking effectively with legacy code
Working effectively with legacy code
 
Supersize me
Supersize meSupersize me
Supersize me
 
Web Scraping with PHP
Web Scraping with PHPWeb Scraping with PHP
Web Scraping with PHP
 
Tech_Implementation of Complex ITIM Workflows
Tech_Implementation of Complex ITIM WorkflowsTech_Implementation of Complex ITIM Workflows
Tech_Implementation of Complex ITIM Workflows
 

Más de Roel Hartman

APEX Bad Practices
APEX Bad PracticesAPEX Bad Practices
APEX Bad PracticesRoel Hartman
 
Docker for Dummies
Docker for DummiesDocker for Dummies
Docker for DummiesRoel Hartman
 
A deep dive into APEX JET charts
A deep dive into APEX JET chartsA deep dive into APEX JET charts
A deep dive into APEX JET chartsRoel Hartman
 
5 Cool Things you can do with HTML5 and APEX
5 Cool Things you can do with HTML5 and APEX5 Cool Things you can do with HTML5 and APEX
5 Cool Things you can do with HTML5 and APEXRoel Hartman
 
Striving for Perfection: The Ultimate APEX Application Architecture
Striving for Perfection: The Ultimate APEX Application ArchitectureStriving for Perfection: The Ultimate APEX Application Architecture
Striving for Perfection: The Ultimate APEX Application ArchitectureRoel Hartman
 
XFILES, the APEX 4 version - The truth is in there
XFILES, the APEX 4 version - The truth is in thereXFILES, the APEX 4 version - The truth is in there
XFILES, the APEX 4 version - The truth is in thereRoel Hartman
 
Done in 60 seconds - Creating Web 2.0 applications made easy
Done in 60 seconds - Creating Web 2.0 applications made easyDone in 60 seconds - Creating Web 2.0 applications made easy
Done in 60 seconds - Creating Web 2.0 applications made easyRoel Hartman
 
Tales from a Parallel Universe: Using Oracle 11gR2's Edition Based Redefiniti...
Tales from a Parallel Universe: Using Oracle 11gR2's Edition Based Redefiniti...Tales from a Parallel Universe: Using Oracle 11gR2's Edition Based Redefiniti...
Tales from a Parallel Universe: Using Oracle 11gR2's Edition Based Redefiniti...Roel Hartman
 

Más de Roel Hartman (9)

Wizard of ORDS
Wizard of ORDSWizard of ORDS
Wizard of ORDS
 
APEX Bad Practices
APEX Bad PracticesAPEX Bad Practices
APEX Bad Practices
 
Docker for Dummies
Docker for DummiesDocker for Dummies
Docker for Dummies
 
A deep dive into APEX JET charts
A deep dive into APEX JET chartsA deep dive into APEX JET charts
A deep dive into APEX JET charts
 
5 Cool Things you can do with HTML5 and APEX
5 Cool Things you can do with HTML5 and APEX5 Cool Things you can do with HTML5 and APEX
5 Cool Things you can do with HTML5 and APEX
 
Striving for Perfection: The Ultimate APEX Application Architecture
Striving for Perfection: The Ultimate APEX Application ArchitectureStriving for Perfection: The Ultimate APEX Application Architecture
Striving for Perfection: The Ultimate APEX Application Architecture
 
XFILES, the APEX 4 version - The truth is in there
XFILES, the APEX 4 version - The truth is in thereXFILES, the APEX 4 version - The truth is in there
XFILES, the APEX 4 version - The truth is in there
 
Done in 60 seconds - Creating Web 2.0 applications made easy
Done in 60 seconds - Creating Web 2.0 applications made easyDone in 60 seconds - Creating Web 2.0 applications made easy
Done in 60 seconds - Creating Web 2.0 applications made easy
 
Tales from a Parallel Universe: Using Oracle 11gR2's Edition Based Redefiniti...
Tales from a Parallel Universe: Using Oracle 11gR2's Edition Based Redefiniti...Tales from a Parallel Universe: Using Oracle 11gR2's Edition Based Redefiniti...
Tales from a Parallel Universe: Using Oracle 11gR2's Edition Based Redefiniti...
 

Último

[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 

Último (20)

[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 

Developing A Real World Logistic Application With Oracle Application - UKOUG 2008

  • 1. Developing a Real-World Logistic Application with Oracle Application Express Roel Hartman Software Architect / NL Lead Technical Architect Oracle
  • 2. Agenda UKOUG 2008 04-12-2008 Introduction The Case Conclusions & Tips Q&A
  • 3. Introduction 04-12-2008 UKOUG 2008 www.BloggingAboutOracle.org roelhartman.blogspot.com
  • 4.
  • 5.
  • 6.
  • 7. The Architecture No. 04-12-2008 UKOUG 2008 Accounts Payable/ Accounts Receivable administration Internet Board computer software TMS Planning software Supply C hain Ma n a g emen t Traffic information Order acceptance and processing Communication manager Onboard computer E Supply chain m anagement Mob ile internet Navigati on system
  • 8.
  • 9.
  • 10. So…what does the application look like? No. 04-12-2008 UKOUG 2008
  • 11. No. 04-12-2008 UKOUG 2008
  • 12. No. 04-12-2008 UKOUG 2008
  • 13. No. 04-12-2008 UKOUG 2008
  • 14. No. 04-12-2008 UKOUG 2008
  • 15. Alternatives No. 04-12-2008 UKOUG 2008 ++ +? ++ ++ UI ++ ++ ++ - Future ++ -/+ + + Knowledge -/+ ++ + + Productivity -/+ ++ -/+ - Costs + ++ + + Performance -/+ + + + Migration .Net APEX JDeveloper Oracle Forms
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21. Enhancement 3 : Show description when a code is entered No. 04-12-2008 UKOUG 2008 4. Create an On Demand Application Process ‘Get_Company_Address’ Or even better: declare l_address varchar2(32000); l_sep varchar2(10) := '~sep~'; l_code address.adress_code%type; Begin l_code := upper(wwv_flow.g_x01); select name||l_sep||adress||l_sep||country_code||l_sep||city_name||l_sep||postcode into l_address from address where adress_code = l_code; htp.p( l_address ); exception when no_data_found then htp.p('Address Code '||upper(v('ADDRESS_CODE'))||' does not exists'); when others then htp.p(sqlerrm); end begin ads_pck.get_address(upper(wwv_flow.g_x01)); end
  • 22. Enhancement 3 : Show description when a code is entered (JSON) No. 04-12-2008 UKOUG 2008 declare l_value varchar2(4000); l_ret_array wwv_flow_global.vc_arr2; begin l_value := upper(wwv_flow.g_x01); -- Address Code if l_value is not null then for a in ( select name||':'||adress||':'||country_code||':'||city_name||':'||postcode retval from address where adress_code = l_value ) loop -- wwv_flow.g_f01(1..5) contains the return fields -- The selected string must be in the same order as the return fields l_ret_array := apex_util.string_to_table(a.retval); for i in 1..wwv_flow.g_f01.count loop apex_util.set_session_state(wwv_flow.g_f01(i), l_ret_array(i) ); end loop; apex_util.json_from_items(apex_util.table_to_string(wwv_flow.g_f01)); end loop; end if; end <script type=&quot;text/javascript&quot;> function getCompanyAddressJSON(object, pType){ if ($v(object)){ var lRequest = new apex.ajax.ondemand( 'getCompanyAddressJSON', function(){ var l_s = p.readyState; if(l_s == 1||l_s == 2||l_s == 3){ } else if(l_s == 4){ gReturn = p.responseText; if(gReturn){ json_SetItems(gReturn); } else{ myAlert('Adresscode '+$v(object)+' does not exist', object); } }else{return false;} } ); lRequest.ajax.AddArray(['P3_UNLOAD_NAME','P3_UNLOAD_ADRESS','P3_UNLOAD_COUNTRY_CODE‘ ,'P3_UNLOAD_CITY_CODE','P3_UNLOAD_POSTCODE']); lRequest.ajax.addParam('x01',$v(object)); lRequest._get(); } } </script>
  • 23.
  • 24.
  • 25.
  • 26. No. 04-12-2008 UKOUG 2008 Enhancement 4 : LOV 7. Now you can easily define other draggable multi column LOV’s!
  • 27. The Reaction No. 04-12-2008 UKOUG 2008 Can you do that in APEX too? BTW, we also have a Java written graphical application, tightly connected with the screens. Hey guys, this is really great! .
  • 28. No. 04-12-2008 UKOUG 2008
  • 29. Planboard in APEX : The Demo No. 04-12-2008 UKOUG 2008
  • 30. Planboard in APEX : The Flow No. 04-12-2008 UKOUG 2008 Database APEX Planboard Flow Orders Trucks Planboard View Reports Region 1 2
  • 31. Planboard in APEX : The Reports Region No. 04-12-2008 UKOUG 2008 Normal Report Region Report Region with Containers div_id : cont_<day>_<truck>
  • 32. Planboard in APEX : The Reports Region No. 04-12-2008 UKOUG 2008 Normal Report Region Report Region with Containers div_id : cont_<day>_<truck> Report Region with Containers and Items div_id : item_<day>_<order>
  • 33. Planboard in APEX : The Reports Region No. 04-12-2008 UKOUG 2008 HTML Expression of every (day) column: <div id=&quot;#EQUIPMENT_NO#&quot; class=&quot;dndcontainer&quot; ><div id=&quot;#MON#&quot;>#MON#</div></div> <SCRIPT type=text/javascript> if ('#MON#' != ''){ $('##MON#').addClass('dndobject'); } </SCRIPT> Normal Report Region Report Region with Containers div_id : #equipment_no# Report Region with Containers and Items div_id : #MON#
  • 34. Planboard in APEX : The Flow No. 04-12-2008 UKOUG 2008 Database APEX Planboard Flow Orders Trucks Planboard View Reports Region Application Process Drag & Drop 1 2 3 4
  • 35.
  • 36. Planboard in APEX : The Flow No. 04-12-2008 UKOUG 2008 Database APEX Planboard Flow Orders Trucks Planboard View Reports Region Application Process Drag & Drop 1 2 3 4
  • 37.
  • 38.
  • 39. Question Time No. 04-12-2008 UKOUG 2008
  • 40. Contact address: [email_address] No. 04-12-2008 UKOUG 2008

Notas del editor

  1. 6. Juni 2009 | Title of Presentation 0:01 / 0:01 Set expectations: What is it NOT about? NOT about Logistics NOT about APEX Architecture NOT about Interactive Reports or Charts What is this presentation about? Possibilities of building real Rich Internet Applications with APEX From ‘standard’ APEX behaviour to ‘Forms like’ APEX behaviour For Whom? Developers Technical (management) staff Who’s in the room? Experience with APEX? Experience with Forms?