SlideShare ist ein Scribd-Unternehmen logo
1 von 54
Downloaden Sie, um offline zu lesen
© 2008 Oracle Corporation – Proprietary and Confidential
<Insert Picture Here>




PeopleTools Advanced Tips and Techniques
Jim Marion
Senior Applications Technology Consultant, ADS
The following is intended to outline our general
              product direction. It is intended for information
              purposes only, and may not be incorporated into any
              contract. It is not a commitment to deliver any
              material, code, or functionality, and should not be
              relied upon in making purchasing decisions.
              The development, release, and timing of any
              features or functionality described for Oracle’s
              products remains at the sole discretion of Oracle.




© 2008 Oracle Corporation – Proprietary and Confidential
Program Agenda Example


             •    Communities and resources                 <Insert Picture Here>

             •    PeopleTools – the extensible foundation
             •    Extend the app server
             •    Extend the web server
             •    Extend Integration Broker
             •    Extend the user interface
                    – IScripts
                    – Ajax




© 2008 Oracle Corporation – Proprietary and Confidential
<Insert Picture Here>


              Communities and
              Resources




© 2008 Oracle Corporation – Proprietary and Confidential
mix.oracle.com


             •    Groups
                    –   PeopleTools
                    –   PeopleSoft
                    –   Enterprise Portal
                    –   Application specific groups
             •    Mingle with peers
             •    Solicit votes for ideas
             •    See what other customers are asking, doing, and
                  want to do
             •    Post your own tips and techniques
             •    Answer your peers questions


© 2008 Oracle Corporation – Proprietary and Confidential
Blogs



             •    http://jjmpsj.blogspot.com/
             •    http://blog.greysparling.com/
             •    IT Toolbox groups ERP > PeopleSoft
             •    http://blogs.ittoolbox.com/peoplesoft/rob
             •    http://xtrahot.chili-mango.net/
             •    http://peoplesofttipster.com/
             •    http://campus-codemonkeys.blogspot.com/
             •    http://blogs.oracle.com/peopletools/




© 2008 Oracle Corporation – Proprietary and Confidential
<Insert Picture Here>


              PeopleTools Foundation




© 2008 Oracle Corporation – Proprietary and Confidential
The Extensible Foundation
              The “Tech Stack”



             •    Relational database
                    – Programmable
                       • Functions, procedures, triggers
             •    App Server
                    – Java VM
                    – Native libraries
             •    J2EE web server
                    – JSP/JSF
                    – Servlets
                    – EJB
             •    Web Browser


© 2008 Oracle Corporation – Proprietary and Confidential
<Insert Picture Here>


              Extend the App Server




© 2008 Oracle Corporation – Proprietary and Confidential
Extend the PeopleCode Language


             •    Operating system native libraries
                    – dll’s
                    – so’s
             •    Java VM
                    – Standard Java API
                    – Custom Java classes




© 2008 Oracle Corporation – Proprietary and Confidential
Extend the PeopleCode Language
              Why?



             •    Some things are easier to do in Java
                    – Java regular expressions versus PeopleCode String
                      manipulation
             •    Take advantage of existing libraries
                    – Apache POI for reading binary Microsoft Excel files
                      (integration)




© 2008 Oracle Corporation – Proprietary and Confidential
Extend PeopleCode Language
              Using the Java API


      Function             ResolveMetaHTML(&html as string) returns string
         Local             JavaObject &pattern;
         Local             JavaObject &matcher;
         Local             String &node_url;

             REM ** Resolve %NodePortalURL(NODENAME) tags;
             &pattern = GetJavaClass("java.util.regex.Pattern")
                .compile("(?i)%NodePortalURL((w+))");

             &matcher = &pattern.matcher(
                CreateJavaObject("java.lang.String", &html));

         While &matcher.find()
            SQLExec("SELECT URI_TEXT FROM PSNODEURITEXT WHERE MSGNODENAME
       = :1 AND URI_TYPE = 'PL'", &matcher.group(1), &node_url);
            &html = Substitute(&html, &matcher.group(), &node_url);
         End-While;
      End-Function;




© 2008 Oracle Corporation – Proprietary and Confidential
Extend PeopleCode Language
              Custom Java Classes


      REM ** Generate MD5 checksum;

      Function test_md5() Returns string
         Local JavaObject &jMD5;

             &jMD5 = GetJavaClass("com.oracle.ads.peoplesoft.MD5");
             &sig = &jMD5.encodeString("String to encode");

      End-Function;




© 2008 Oracle Corporation – Proprietary and Confidential
Access PeopleSoft from Java


             •    Within a PeopleSoft session (app or process
                  scheduler server)
                    – PeopleCode objects
                       • Record, SQL, Field, File, XMLDoc, etc
                    – PeopleCode functions
                       • Func.SQLExec, Func.SendMail, etc
                    – PeopleCode system variables
                       • Sysvar.UserId(), Sysvar.Roles()
                    – TIP: Add peoplecode.jar to your Java IDE’s classpath




© 2008 Oracle Corporation – Proprietary and Confidential
Java Integration Scenario


             • Vendor e-mails invoice in Microsoft Excel format
             • You need to create a voucher from that invoice
             • Solution
                    – Use Apache POI (http://poi.apache.org/) and PeopleCode
                      objects/functions to copy spreadsheet to staging table (Java)
                    – Use a component interface based on VCHR_EXPRESS to
                      create vouchers (PeopleCode)




© 2008 Oracle Corporation – Proprietary and Confidential
Java Integration Scenario
              Java Component


      public static void processSpreadsheet(int processInstance) {
          //POI variable initilization, etc
          ...
          // 20 insert bind values
          Object[] parms = new Object[20];
          parms[0] = row.getCell(0).getStringCellValue();
          // column 2 contains an integer
          Parms[1] = new
              Integer(row.getCell(1).getNumericCellValue().intValue());
          ...

               // use Meta-SQL to simplify retrieving SQL from
               // stored SQL object
               Func.SQLExec("%SQL(MYSQLOBJECT)", parms);

               ...
      }




© 2008 Oracle Corporation – Proprietary and Confidential
Advantages of using
              PeopleCode Data Objects from Java

             •    Avoid JDBC configuration, data access,
                  authentication, etc
             •    Simplicity of SQLExec
             •    Simplicity of SQL objects/cursors
             •    Meta-SQL expansion
             •    Avoid updating PS database directly




© 2008 Oracle Corporation – Proprietary and Confidential
Access PeopleSoft from Java
              Aditional References



             • Enterprise PeopleTools 8.49 PeopleBook:
               PeopleCode API Reference > Java Class
             • http://tinyurl.com/2vzv9w (links to my blog)




© 2008 Oracle Corporation – Proprietary and Confidential
<Insert Picture Here>


              Extend the Web Server




© 2008 Oracle Corporation – Proprietary and Confidential
Extensible Options


             •    Standard J2EE web server options
                    –   Servlet filters
                    –   JSP
                    –   JSF
                    –   Custom Servlets
                    –   CGI




© 2008 Oracle Corporation – Proprietary and Confidential
Standard Request Response Cycle...
              … and then ServletFilters




                                                                         Web Server                          App Server
                                                                                              Request

                                                    est
                                                Requ

             Client/Browser
                                                                                              Response
                                                          se
                                                       pon
                                                   Res
                                                           Web Server
                                                                                   Modify Request
                                                                   ServletFilter                         Servlet

                                                      Request


                                               Response

                                                                     Modify Response




© 2008 Oracle Corporation – Proprietary and Confidential
ServletFilters


             • Allow you to modify the HTTP request or response
             • Examples
                    – Authentication
                    – Injection
                       • Monkeygrease
                          – Add additional HTML/JavaScript/CSS to pages
                    – Compression
                    – URLRewriting
                    – Encryption
                    – Encoding
                    – Request/Response header modification



© 2008 Oracle Corporation – Proprietary and Confidential
Monkeygrease Examples
              ServletFilter



             •    Highlight the active field
                    – http://jjmpsj.blogspot.com/2006/09/where-am-i.html
             •    Keyboard navigation
                    – http://tinyurl.com/yrwsap (links to Grey Sparling blog)
             •    Override CSS without customizing PeopleSoft
                  stylesheets




© 2008 Oracle Corporation – Proprietary and Confidential
Authentication Examples
              ServletFilter



             •    Use jCIFS to pass Windows authentication token to
                  web server using NTLM
                    – http://tinyurl.com/yuk8bl (links to my blog)




© 2008 Oracle Corporation – Proprietary and Confidential
<Insert Picture Here>


              Extend Integration
              Broker




© 2008 Oracle Corporation – Proprietary and Confidential
Integration Broker SDK
              Custom Connectors



             •    Create connectors to send Integration Broker
                  messages to targets not covered by delivered
                  connectors
                    – Databases via JDBC (JDBCTargetConnector)
                    – Other TCP/IP based protocols
                    – Anywhere, in any electronic way
                       • JavaTargetConnector
                       • ScriptTargetConnector




© 2008 Oracle Corporation – Proprietary and Confidential
Vendor Batch Integration Scenario


             • Open cursor on vendor table
             • For each row, select row from target
                    – If exist, compare values
                        • If changed, update
                    – If not exist, insert
             •    How often do you run this?
                    – Too often for the system to handle (resource intensive)
                    – Not often enough for the user




© 2008 Oracle Corporation – Proprietary and Confidential
JavaTargetConnector
              Prototype


      package com.peoplesoft.pt.integrationgateway.targetconnector;
      import ...;

      public class JavaTargetConnector implements TargetConnector {
        // respond to "pings"
        public IBResponse ping(IBRequest request) throws ... {
          ...
        }
        // send the message
        public IBResponse send(IBRequest request) throws ... {
          // look up Java class handler from config and use reflection
          // to call registered Java class
        }
        // provide connector setup info for gateway and node setup
        public ConnectorDataCollection introspectConnector() {
          ...
        }
      }



© 2008 Oracle Corporation – Proprietary and Confidential
Custom Connector Advantages


             • Real time integration
             • Reuse PeopleSoft delivered integration points
             • Changes are published at save time, you don’t need
               complex logic to find them.




© 2008 Oracle Corporation – Proprietary and Confidential
Custom Connectors
              Custom Connectors Documentation and Examples



             • SDK location: web server’s /PSIGW/SDK directory
             • Java IDE configuration tips
                    – See /PSIGW/SDK/docs/SDK/ReadMe.txt
                       • Contains tips on configuring your classpath
                    – Most important, add /PSIGW/WEB-INF/classes to your
                      classpath




© 2008 Oracle Corporation – Proprietary and Confidential
<Insert Picture Here>


              IScripts – The Swiss
              Army Knife




© 2008 Oracle Corporation – Proprietary and Confidential
What is an IScript?


             •    A function that can be called from a URL
                    • http:…/EMPLOYEE/EMPL/s/WEBLIB_ADS_FB.ISCRIPT1
                      .FieldFormula.IScript_GetFriends
             •    Takes no parameters and does not return a value
                 Function IScript_GetFriends()
                    ...
                 End-Function;

             •    Contained in a record named WEBLIB_XXXXXXXX



             •    Provides access to %Request and %Response


© 2008 Oracle Corporation – Proprietary and Confidential
What can they Do?


             •    Custom user interfaces
                    – Not bound to Page/Component paradigm
             •    Ajax/Flex/Applet request/response handlers
                    – Serve JSON, XML, or HTML in response to Ajax requests
             • Excellent for testing PeopleCode snippets
             • Just about anything… but choose wisely (see
               disadvantages)




© 2008 Oracle Corporation – Proprietary and Confidential
IScript Examples


             •    Bookmarklets
                    –   Turn on session tracing
                    –   Switch the language
                    –   Switch users
                    –   Get component CREF name
                    –   Lookup component search record
             • Data source for a Flex grid
             • Data source for an extjs Ajax grid (http://extjs.com/)




© 2008 Oracle Corporation – Proprietary and Confidential
Get Component Search Record
              IScript Example



             • IScript to query database
             • JavaScript Bookmarklet to gather parameters




© 2008 Oracle Corporation – Proprietary and Confidential
The IScript
              (Declare function and variables)


      Function             IScript_GetSearchRecname()
         Local             string &menu = %Request.GetParameter("m");
         Local             string &component = %Request.GetParameter("c");
         Local             string &market = %Request.GetParameter("mk");
         Local             string &recname;
         Local             string &barname;
         Local             boolean &override = True;


             REM continued on next slide;




© 2008 Oracle Corporation – Proprietary and Confidential
The IScript
              (Continued – Query the Database)


             REM continued from previous slide;

          REM ** select search record name override from menu defn;
          SQLExec("SELECT SEARCHRECNAME, BARNAME FROM PSMENUITEM WHERE
        MENUNAME = :1 AND PNLGRPNAME = :2 AND MARKET = :3", &menu,
        &component, &market, &recname, &barname);

          If (None(&recname)) Then
             &override = False;
             REM ** select search record name from component;
             SQLExec("SELECT SEARCHRECNAME FROM PSPNLGRPDEFN WHERE
        PNLGRPNAME = :1 AND MARKET = :2", &component, &market, &recname);
          End-If;

             REM continued on next slide;




© 2008 Oracle Corporation – Proprietary and Confidential
The IScript
              (Continued – Write the response)


             REM continued from previous slide;

          %Response.SetHeader("Content-Type", "text/plain");
          %Response.Write("The search record is " | &recname);
          If (&override) Then
             %Response.Write(" and is overridden on menu " | &menu | " in
        bar " | &barname);
          End-If;
          %Response.Write(".");

      End-Function;




© 2008 Oracle Corporation – Proprietary and Confidential
The Bookmarklet


      javascript:
      (function(){
        var v1 = frames['TargetContent'].strCurrUrl;

          // parse the menu, component, market
          var v2 = v1.match(
              //c/([w_]+?).([w_]+?).([w_]+?)b/);

          // parse the url components
          var v3 = v1.match(
              /^(https?://)(.+?/).+?/(.+?/)(.+?/)(.+?/)/);

        // open the new results window
        window.open(v3[1] + v3[2] + 'psc/' + v3[3] + v3[4] + v3[5] +
      's/WEBLIB_ADS_UTIL.ISCRIPT1.FieldFormula.IScript_GetSearchRecname?m=
       ' + v2[1] + '&c=' + v2[2] + '&mk=' + v2[3], 'results',
            'width=400,height=100');
      })();



© 2008 Oracle Corporation – Proprietary and Confidential
The Bookmarklet
              Compressed


      javascript:(function(){var v1=frames['TargetContent'].strCurrUrl;var
       v2=v1.match(//c/([w_]+?).([w_]+?).([w_]+?)b/);var
       v3=v1.match(/^(https?://)(.+?/).+?/(.+?/)(.+?/)(.+?/)/);wind
       ow.open(v3[1]+v3[2]+'psc/'+v3[3]+v3[4]+v3[5]+'s/WEBLIB_ADS_UTIL.ISC
       RIPT1.FieldFormula.IScript_GetSearchRecname?m='+v2[1]+'&c='+v2[2]+'
       &mk='+v2[3],'results', 'width=400,height=100');})()




© 2008 Oracle Corporation – Proprietary and Confidential
Advantages of IScripts


             •    Unstructured Request/Response handling
                    – PeopleCode version of JSP/ASP
                    – Very few rules
             • Full PeopleCode/Database access
             • Leverage PeopleSoft security model
             • Great for non-UI development




© 2008 Oracle Corporation – Proprietary and Confidential
Disadvantages of IScripts


             • No META-DATA
             • No upgrade
             • No component processor
                    – Event processing
             •    More difficult to develop and maintain




© 2008 Oracle Corporation – Proprietary and Confidential
<Insert Picture Here>


              Ajax




© 2008 Oracle Corporation – Proprietary and Confidential
Keep the User Logged In
              Ajax Replacement for Timeout Warning


             • Relevant JavaScript variables
                timeOutURL
                warningTimeoutMilliseconds
                timeoutWarningID

             • Clear the existing timeout and timeout warning
                window.clearTimeout(timeoutWarningID);
                window.clearTimeout(timeoutID);

             • Ajax request to reset timeout at warning timeout interval
                // Ajax URL that will reset the timeout on the server
                timeOutURL.replace(/expire$/, "resettimeout");

             • Set timeout interval low (5 min) and warning interval low (4 min)




© 2008 Oracle Corporation – Proprietary and Confidential
Keep the User Logged In
              The JavaScript Globals


      /* clear old timeout after 30 seconds
       * macs don't set timeout until 1000 ms
       */
      window.setTimeout('ads_setupTimeout()', 30000);

      var ads_timeoutIntervalId;
      var ads_resetUrl = null;




© 2008 Oracle Corporation – Proprietary and Confidential
Keep the User Logged In
              The Setup Function


      function ads_setupTimeout() {
        /* some pages don't have timeouts defined */
        if(typeof(timeOutURL) != "undefined") {
          if(timeOutURL.length > 0) {
            ads_resetUrl = timeOutURL.replace(/expire$/, "resettimeout");
            if(totalTimeoutMilliseconds != null) {
              window.clearTimeout(timeoutWarningID);
              window.clearTimeout(timeoutID);
              ads_timeoutIntervalId =
                  window.setInterval('ads_resetTimeout()',
                  warningTimeoutMilliseconds);
            }
          }
        }
      }




© 2008 Oracle Corporation – Proprietary and Confidential
Keep the User Logged In
              Injection Methods



             •    Modify the header HTML object
                    – PeopleTools Header: PORTAL_UNI_HEADER_NNS
                      (potential upgrade issue)
                    – Enterprise Portal Header:
                       • PAPPBR_HTMLHDR4_TOOLS
                       • Custom HTML object
             •    Monkeygrease (http://monkeygrease.org)
                    – Servlet filter that allows you to inject HTML into the
                      PeopleSoft response




© 2008 Oracle Corporation – Proprietary and Confidential
Pagelet Ajax Example
              Facebook (Social Networking)



             •    Putting it all together
                    – Java API, Ajax UI, IScripts




© 2008 Oracle Corporation – Proprietary and Confidential
References


             •    Bookmarklets
                    – http://www.subsimple.com/bookmarklets/default.asp
                       • Excellent tutorial, rules, and builder
                    – http://www.bookmarklets.com/
             •    Ajax
                    – http://jquery.org
                    – http://monkeygrease.org
             •    Blogs with PeopleTools Tips
                    – http://jjmpsj.blogspot.com (My blog)
                    – http://blog.greysparling.com/
                    – http://blogs.oracle.com/peopletools/



© 2008 Oracle Corporation – Proprietary and Confidential
© 2008 Oracle Corporation – Proprietary and Confidential
The preceding is intended to outline our general
              product direction. It is intended for information
              purposes only, and may not be incorporated into any
              contract. It is not a commitment to deliver any
              material, code, or functionality, and should not be
              relied upon in making purchasing decisions.
              The development, release, and timing of any
              features or functionality described for Oracle’s
              products remains at the sole discretion of Oracle.




© 2008 Oracle Corporation – Proprietary and Confidential
© 2008 Oracle Corporation – Proprietary and Confidential
© 2008 Oracle Corporation – Proprietary and Confidential

Weitere ähnliche Inhalte

Was ist angesagt?

JAX-RS 2.0: What’s New in JSR 339 ?
JAX-RS 2.0: What’s New in JSR 339 ?JAX-RS 2.0: What’s New in JSR 339 ?
JAX-RS 2.0: What’s New in JSR 339 ?Arun Gupta
 
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUGThe Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUGArun Gupta
 
Designing JEE Application Structure
Designing JEE Application StructureDesigning JEE Application Structure
Designing JEE Application Structureodedns
 
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design PatternsJava EE Revisits GoF Design Patterns
Java EE Revisits GoF Design PatternsMurat Yener
 
JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6Bert Ertman
 
The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011Arun Gupta
 
Java Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewJava Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewEugene Bogaart
 
Introduction to java ee
Introduction to java eeIntroduction to java ee
Introduction to java eeRanjan Kumar
 
Java EE 8 Recipes
Java EE 8 RecipesJava EE 8 Recipes
Java EE 8 RecipesJosh Juneau
 
The Java EE 7 Platform: Developing for the Cloud
The Java EE 7 Platform: Developing for the CloudThe Java EE 7 Platform: Developing for the Cloud
The Java EE 7 Platform: Developing for the Cloudcodemotion_es
 
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Reza Rahman
 
JAX-RS 2.0: RESTful Web services on steroids
JAX-RS 2.0: RESTful Web services on steroidsJAX-RS 2.0: RESTful Web services on steroids
JAX-RS 2.0: RESTful Web services on steroidscodemotion_es
 
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFacesJavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFacesMert Çalışkan
 

Was ist angesagt? (18)

Hybernat and structs, spring classes in mumbai
Hybernat and structs, spring classes in mumbaiHybernat and structs, spring classes in mumbai
Hybernat and structs, spring classes in mumbai
 
Java EE 7 - Overview and Status
Java EE 7  - Overview and StatusJava EE 7  - Overview and Status
Java EE 7 - Overview and Status
 
JAX-RS 2.0: What’s New in JSR 339 ?
JAX-RS 2.0: What’s New in JSR 339 ?JAX-RS 2.0: What’s New in JSR 339 ?
JAX-RS 2.0: What’s New in JSR 339 ?
 
Websocket 1.0
Websocket 1.0Websocket 1.0
Websocket 1.0
 
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUGThe Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
 
Designing JEE Application Structure
Designing JEE Application StructureDesigning JEE Application Structure
Designing JEE Application Structure
 
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design PatternsJava EE Revisits GoF Design Patterns
Java EE Revisits GoF Design Patterns
 
JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6
 
The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011
 
Hibernate 3
Hibernate 3Hibernate 3
Hibernate 3
 
Java Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewJava Enterprise Edition 6 Overview
Java Enterprise Edition 6 Overview
 
Introduction to java ee
Introduction to java eeIntroduction to java ee
Introduction to java ee
 
Java EE 8 Recipes
Java EE 8 RecipesJava EE 8 Recipes
Java EE 8 Recipes
 
The Java EE 7 Platform: Developing for the Cloud
The Java EE 7 Platform: Developing for the CloudThe Java EE 7 Platform: Developing for the Cloud
The Java EE 7 Platform: Developing for the Cloud
 
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Have You Seen Java EE Lately?
Have You Seen Java EE Lately?
 
JAX-RS 2.0: RESTful Web services on steroids
JAX-RS 2.0: RESTful Web services on steroidsJAX-RS 2.0: RESTful Web services on steroids
JAX-RS 2.0: RESTful Web services on steroids
 
Spring
SpringSpring
Spring
 
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFacesJavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
 

Andere mochten auch

H U M A N P H Y S I O L O G Y D R S H R I N I W A S K A S H A L I K A R
H U M A N  P H Y S I O L O G Y  D R  S H R I N I W A S  K A S H A L I K A RH U M A N  P H Y S I O L O G Y  D R  S H R I N I W A S  K A S H A L I K A R
H U M A N P H Y S I O L O G Y D R S H R I N I W A S K A S H A L I K A Rbanothkishan
 
H O W T O L I V E I N H A R M O N Y D R S H R I N I W A S K A S H A L ...
H O W  T O  L I V E  I N  H A R M O N Y  D R  S H R I N I W A S  K A S H A L ...H O W  T O  L I V E  I N  H A R M O N Y  D R  S H R I N I W A S  K A S H A L ...
H O W T O L I V E I N H A R M O N Y D R S H R I N I W A S K A S H A L ...banothkishan
 
Thematic_Mapping_Engine
Thematic_Mapping_EngineThematic_Mapping_Engine
Thematic_Mapping_Enginetutorialsruby
 
A S S E R T I O N A N D H O L I S T I C H E A L T H D R
A S S E R T I O N   A N D   H O L I S T I C  H E A L T H   D RA S S E R T I O N   A N D   H O L I S T I C  H E A L T H   D R
A S S E R T I O N A N D H O L I S T I C H E A L T H D Rbanothkishan
 
H O L I S T I C M E D I C I N E & L A W D R
H O L I S T I C  M E D I C I N E &  L A W  D RH O L I S T I C  M E D I C I N E &  L A W  D R
H O L I S T I C M E D I C I N E & L A W D Rbanothkishan
 
javascript_service_tutorial
javascript_service_tutorialjavascript_service_tutorial
javascript_service_tutorialtutorialsruby
 
collapsible-panels-tutorial
collapsible-panels-tutorialcollapsible-panels-tutorial
collapsible-panels-tutorialtutorialsruby
 
Csdn Java电子杂志第2期
Csdn Java电子杂志第2期Csdn Java电子杂志第2期
Csdn Java电子杂志第2期yiditushe
 
D I A B E T E S A N D B H R A M A R I D R S H R I N I W A S K A S H A L ...
D I A B E T E S  A N D  B H R A M A R I  D R  S H R I N I W A S  K A S H A L ...D I A B E T E S  A N D  B H R A M A R I  D R  S H R I N I W A S  K A S H A L ...
D I A B E T E S A N D B H R A M A R I D R S H R I N I W A S K A S H A L ...banothkishan
 
22squared Igniting Advocacy In Retail Banking
22squared Igniting Advocacy In Retail Banking22squared Igniting Advocacy In Retail Banking
22squared Igniting Advocacy In Retail BankingBrandon Murphy
 

Andere mochten auch (16)

vitae
vitaevitae
vitae
 
H U M A N P H Y S I O L O G Y D R S H R I N I W A S K A S H A L I K A R
H U M A N  P H Y S I O L O G Y  D R  S H R I N I W A S  K A S H A L I K A RH U M A N  P H Y S I O L O G Y  D R  S H R I N I W A S  K A S H A L I K A R
H U M A N P H Y S I O L O G Y D R S H R I N I W A S K A S H A L I K A R
 
os-php-wiki5-a4
os-php-wiki5-a4os-php-wiki5-a4
os-php-wiki5-a4
 
H O W T O L I V E I N H A R M O N Y D R S H R I N I W A S K A S H A L ...
H O W  T O  L I V E  I N  H A R M O N Y  D R  S H R I N I W A S  K A S H A L ...H O W  T O  L I V E  I N  H A R M O N Y  D R  S H R I N I W A S  K A S H A L ...
H O W T O L I V E I N H A R M O N Y D R S H R I N I W A S K A S H A L ...
 
Thematic_Mapping_Engine
Thematic_Mapping_EngineThematic_Mapping_Engine
Thematic_Mapping_Engine
 
L571_su06_helling
L571_su06_hellingL571_su06_helling
L571_su06_helling
 
A S S E R T I O N A N D H O L I S T I C H E A L T H D R
A S S E R T I O N   A N D   H O L I S T I C  H E A L T H   D RA S S E R T I O N   A N D   H O L I S T I C  H E A L T H   D R
A S S E R T I O N A N D H O L I S T I C H E A L T H D R
 
H O L I S T I C M E D I C I N E & L A W D R
H O L I S T I C  M E D I C I N E &  L A W  D RH O L I S T I C  M E D I C I N E &  L A W  D R
H O L I S T I C M E D I C I N E & L A W D R
 
dr_4
dr_4dr_4
dr_4
 
javascript_service_tutorial
javascript_service_tutorialjavascript_service_tutorial
javascript_service_tutorial
 
collapsible-panels-tutorial
collapsible-panels-tutorialcollapsible-panels-tutorial
collapsible-panels-tutorial
 
Csdn Java电子杂志第2期
Csdn Java电子杂志第2期Csdn Java电子杂志第2期
Csdn Java电子杂志第2期
 
PHP-GTK
PHP-GTKPHP-GTK
PHP-GTK
 
D I A B E T E S A N D B H R A M A R I D R S H R I N I W A S K A S H A L ...
D I A B E T E S  A N D  B H R A M A R I  D R  S H R I N I W A S  K A S H A L ...D I A B E T E S  A N D  B H R A M A R I  D R  S H R I N I W A S  K A S H A L ...
D I A B E T E S A N D B H R A M A R I D R S H R I N I W A S K A S H A L ...
 
Brent-Linsteadt
Brent-LinsteadtBrent-Linsteadt
Brent-Linsteadt
 
22squared Igniting Advocacy In Retail Banking
22squared Igniting Advocacy In Retail Banking22squared Igniting Advocacy In Retail Banking
22squared Igniting Advocacy In Retail Banking
 

Ähnlich wie 40020

Essential Kit for Oracle JET Programming
Essential Kit for Oracle JET ProgrammingEssential Kit for Oracle JET Programming
Essential Kit for Oracle JET Programmingandrejusb
 
JavaOne 2014 Java EE 8 Booth Slides
JavaOne 2014 Java EE 8 Booth SlidesJavaOne 2014 Java EE 8 Booth Slides
JavaOne 2014 Java EE 8 Booth SlidesEdward Burns
 
Introduction to java_ee
Introduction to java_eeIntroduction to java_ee
Introduction to java_eeYogesh Bindwal
 
Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 javatwo2011
 
Sim-webcast-part1-1aa
Sim-webcast-part1-1aaSim-webcast-part1-1aa
Sim-webcast-part1-1aaOracleIDM
 
Server Side JavaScript on the Java Platform - David Delabassee
Server Side JavaScript on the Java Platform - David DelabasseeServer Side JavaScript on the Java Platform - David Delabassee
Server Side JavaScript on the Java Platform - David DelabasseeJAXLondon2014
 
geecon 2016: "What's Oracle Doing with JavaScript?!"
geecon 2016: "What's Oracle Doing with JavaScript?!"geecon 2016: "What's Oracle Doing with JavaScript?!"
geecon 2016: "What's Oracle Doing with JavaScript?!"Geertjan Wielenga
 
Internship softwaretraining@ijse
Internship softwaretraining@ijseInternship softwaretraining@ijse
Internship softwaretraining@ijseJinadi Rashmika
 
WebSockets in Enterprise Applications
WebSockets in Enterprise ApplicationsWebSockets in Enterprise Applications
WebSockets in Enterprise ApplicationsPavel Bucek
 
Servidores de Aplicação: por que ainda precisamos deles?
Servidores de Aplicação: por que ainda precisamos deles?Servidores de Aplicação: por que ainda precisamos deles?
Servidores de Aplicação: por que ainda precisamos deles?Bruno Borges
 
Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1sandeep54552
 
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQLNoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQLAndrew Morgan
 
Oracel ADF Introduction
Oracel ADF IntroductionOracel ADF Introduction
Oracel ADF IntroductionHojjat Abedie
 
Con11257 schifano con11257-best practices for deploying highly scalable virtu...
Con11257 schifano con11257-best practices for deploying highly scalable virtu...Con11257 schifano con11257-best practices for deploying highly scalable virtu...
Con11257 schifano con11257-best practices for deploying highly scalable virtu...Berry Clemens
 
APEX Alpe Adria Mike Hichwa Keynote April 11th 2019- Zagreb
APEX Alpe Adria Mike Hichwa Keynote April 11th 2019- ZagrebAPEX Alpe Adria Mike Hichwa Keynote April 11th 2019- Zagreb
APEX Alpe Adria Mike Hichwa Keynote April 11th 2019- ZagrebMichael Hichwa
 
Oracle RAD stack REST, APEX, Database
Oracle RAD stack REST, APEX, DatabaseOracle RAD stack REST, APEX, Database
Oracle RAD stack REST, APEX, DatabaseMichael Hichwa
 

Ähnlich wie 40020 (20)

Oracle JET overview
Oracle JET overviewOracle JET overview
Oracle JET overview
 
Essential Kit for Oracle JET Programming
Essential Kit for Oracle JET ProgrammingEssential Kit for Oracle JET Programming
Essential Kit for Oracle JET Programming
 
Oracle Database Cloud Service
Oracle Database Cloud ServiceOracle Database Cloud Service
Oracle Database Cloud Service
 
JavaOne 2014 Java EE 8 Booth Slides
JavaOne 2014 Java EE 8 Booth SlidesJavaOne 2014 Java EE 8 Booth Slides
JavaOne 2014 Java EE 8 Booth Slides
 
Oracle JET
Oracle JETOracle JET
Oracle JET
 
Introduction to java_ee
Introduction to java_eeIntroduction to java_ee
Introduction to java_ee
 
Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望
 
Sim-webcast-part1-1aa
Sim-webcast-part1-1aaSim-webcast-part1-1aa
Sim-webcast-part1-1aa
 
Server Side JavaScript on the Java Platform - David Delabassee
Server Side JavaScript on the Java Platform - David DelabasseeServer Side JavaScript on the Java Platform - David Delabassee
Server Side JavaScript on the Java Platform - David Delabassee
 
geecon 2016: "What's Oracle Doing with JavaScript?!"
geecon 2016: "What's Oracle Doing with JavaScript?!"geecon 2016: "What's Oracle Doing with JavaScript?!"
geecon 2016: "What's Oracle Doing with JavaScript?!"
 
Internship softwaretraining@ijse
Internship softwaretraining@ijseInternship softwaretraining@ijse
Internship softwaretraining@ijse
 
WebSockets in Enterprise Applications
WebSockets in Enterprise ApplicationsWebSockets in Enterprise Applications
WebSockets in Enterprise Applications
 
Servidores de Aplicação: por que ainda precisamos deles?
Servidores de Aplicação: por que ainda precisamos deles?Servidores de Aplicação: por que ainda precisamos deles?
Servidores de Aplicação: por que ainda precisamos deles?
 
Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1
 
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQLNoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
 
Oracel ADF Introduction
Oracel ADF IntroductionOracel ADF Introduction
Oracel ADF Introduction
 
Con11257 schifano con11257-best practices for deploying highly scalable virtu...
Con11257 schifano con11257-best practices for deploying highly scalable virtu...Con11257 schifano con11257-best practices for deploying highly scalable virtu...
Con11257 schifano con11257-best practices for deploying highly scalable virtu...
 
Apex ace update
Apex ace updateApex ace update
Apex ace update
 
APEX Alpe Adria Mike Hichwa Keynote April 11th 2019- Zagreb
APEX Alpe Adria Mike Hichwa Keynote April 11th 2019- ZagrebAPEX Alpe Adria Mike Hichwa Keynote April 11th 2019- Zagreb
APEX Alpe Adria Mike Hichwa Keynote April 11th 2019- Zagreb
 
Oracle RAD stack REST, APEX, Database
Oracle RAD stack REST, APEX, DatabaseOracle RAD stack REST, APEX, Database
Oracle RAD stack REST, APEX, Database
 

Mehr von tutorialsruby

&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />tutorialsruby
 
TopStyle Help &amp; &lt;b>Tutorial&lt;/b>
TopStyle Help &amp; &lt;b>Tutorial&lt;/b>TopStyle Help &amp; &lt;b>Tutorial&lt;/b>
TopStyle Help &amp; &lt;b>Tutorial&lt;/b>tutorialsruby
 
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting &lt;b>...&lt;/b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting &lt;b>...&lt;/b>The Art Institute of Atlanta IMD 210 Fundamentals of Scripting &lt;b>...&lt;/b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting &lt;b>...&lt;/b>tutorialsruby
 
&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />tutorialsruby
 
&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />tutorialsruby
 
Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0tutorialsruby
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269tutorialsruby
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269tutorialsruby
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008tutorialsruby
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008tutorialsruby
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheetstutorialsruby
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheetstutorialsruby
 

Mehr von tutorialsruby (20)

&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />
 
TopStyle Help &amp; &lt;b>Tutorial&lt;/b>
TopStyle Help &amp; &lt;b>Tutorial&lt;/b>TopStyle Help &amp; &lt;b>Tutorial&lt;/b>
TopStyle Help &amp; &lt;b>Tutorial&lt;/b>
 
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting &lt;b>...&lt;/b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting &lt;b>...&lt;/b>The Art Institute of Atlanta IMD 210 Fundamentals of Scripting &lt;b>...&lt;/b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting &lt;b>...&lt;/b>
 
&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />
 
&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />
 
Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0
 
xhtml_basics
xhtml_basicsxhtml_basics
xhtml_basics
 
xhtml_basics
xhtml_basicsxhtml_basics
xhtml_basics
 
xhtml-documentation
xhtml-documentationxhtml-documentation
xhtml-documentation
 
xhtml-documentation
xhtml-documentationxhtml-documentation
xhtml-documentation
 
CSS
CSSCSS
CSS
 
CSS
CSSCSS
CSS
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
 
HowTo_CSS
HowTo_CSSHowTo_CSS
HowTo_CSS
 
HowTo_CSS
HowTo_CSSHowTo_CSS
HowTo_CSS
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheets
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheets
 

Kürzlich hochgeladen

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Kürzlich hochgeladen (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 

40020

  • 1. © 2008 Oracle Corporation – Proprietary and Confidential
  • 2. <Insert Picture Here> PeopleTools Advanced Tips and Techniques Jim Marion Senior Applications Technology Consultant, ADS
  • 3. The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. © 2008 Oracle Corporation – Proprietary and Confidential
  • 4. Program Agenda Example • Communities and resources <Insert Picture Here> • PeopleTools – the extensible foundation • Extend the app server • Extend the web server • Extend Integration Broker • Extend the user interface – IScripts – Ajax © 2008 Oracle Corporation – Proprietary and Confidential
  • 5. <Insert Picture Here> Communities and Resources © 2008 Oracle Corporation – Proprietary and Confidential
  • 6. mix.oracle.com • Groups – PeopleTools – PeopleSoft – Enterprise Portal – Application specific groups • Mingle with peers • Solicit votes for ideas • See what other customers are asking, doing, and want to do • Post your own tips and techniques • Answer your peers questions © 2008 Oracle Corporation – Proprietary and Confidential
  • 7. Blogs • http://jjmpsj.blogspot.com/ • http://blog.greysparling.com/ • IT Toolbox groups ERP > PeopleSoft • http://blogs.ittoolbox.com/peoplesoft/rob • http://xtrahot.chili-mango.net/ • http://peoplesofttipster.com/ • http://campus-codemonkeys.blogspot.com/ • http://blogs.oracle.com/peopletools/ © 2008 Oracle Corporation – Proprietary and Confidential
  • 8. <Insert Picture Here> PeopleTools Foundation © 2008 Oracle Corporation – Proprietary and Confidential
  • 9. The Extensible Foundation The “Tech Stack” • Relational database – Programmable • Functions, procedures, triggers • App Server – Java VM – Native libraries • J2EE web server – JSP/JSF – Servlets – EJB • Web Browser © 2008 Oracle Corporation – Proprietary and Confidential
  • 10. <Insert Picture Here> Extend the App Server © 2008 Oracle Corporation – Proprietary and Confidential
  • 11. Extend the PeopleCode Language • Operating system native libraries – dll’s – so’s • Java VM – Standard Java API – Custom Java classes © 2008 Oracle Corporation – Proprietary and Confidential
  • 12. Extend the PeopleCode Language Why? • Some things are easier to do in Java – Java regular expressions versus PeopleCode String manipulation • Take advantage of existing libraries – Apache POI for reading binary Microsoft Excel files (integration) © 2008 Oracle Corporation – Proprietary and Confidential
  • 13. Extend PeopleCode Language Using the Java API Function ResolveMetaHTML(&html as string) returns string Local JavaObject &pattern; Local JavaObject &matcher; Local String &node_url; REM ** Resolve %NodePortalURL(NODENAME) tags; &pattern = GetJavaClass("java.util.regex.Pattern") .compile("(?i)%NodePortalURL((w+))"); &matcher = &pattern.matcher( CreateJavaObject("java.lang.String", &html)); While &matcher.find() SQLExec("SELECT URI_TEXT FROM PSNODEURITEXT WHERE MSGNODENAME = :1 AND URI_TYPE = 'PL'", &matcher.group(1), &node_url); &html = Substitute(&html, &matcher.group(), &node_url); End-While; End-Function; © 2008 Oracle Corporation – Proprietary and Confidential
  • 14. Extend PeopleCode Language Custom Java Classes REM ** Generate MD5 checksum; Function test_md5() Returns string Local JavaObject &jMD5; &jMD5 = GetJavaClass("com.oracle.ads.peoplesoft.MD5"); &sig = &jMD5.encodeString("String to encode"); End-Function; © 2008 Oracle Corporation – Proprietary and Confidential
  • 15. Access PeopleSoft from Java • Within a PeopleSoft session (app or process scheduler server) – PeopleCode objects • Record, SQL, Field, File, XMLDoc, etc – PeopleCode functions • Func.SQLExec, Func.SendMail, etc – PeopleCode system variables • Sysvar.UserId(), Sysvar.Roles() – TIP: Add peoplecode.jar to your Java IDE’s classpath © 2008 Oracle Corporation – Proprietary and Confidential
  • 16. Java Integration Scenario • Vendor e-mails invoice in Microsoft Excel format • You need to create a voucher from that invoice • Solution – Use Apache POI (http://poi.apache.org/) and PeopleCode objects/functions to copy spreadsheet to staging table (Java) – Use a component interface based on VCHR_EXPRESS to create vouchers (PeopleCode) © 2008 Oracle Corporation – Proprietary and Confidential
  • 17. Java Integration Scenario Java Component public static void processSpreadsheet(int processInstance) { //POI variable initilization, etc ... // 20 insert bind values Object[] parms = new Object[20]; parms[0] = row.getCell(0).getStringCellValue(); // column 2 contains an integer Parms[1] = new Integer(row.getCell(1).getNumericCellValue().intValue()); ... // use Meta-SQL to simplify retrieving SQL from // stored SQL object Func.SQLExec("%SQL(MYSQLOBJECT)", parms); ... } © 2008 Oracle Corporation – Proprietary and Confidential
  • 18. Advantages of using PeopleCode Data Objects from Java • Avoid JDBC configuration, data access, authentication, etc • Simplicity of SQLExec • Simplicity of SQL objects/cursors • Meta-SQL expansion • Avoid updating PS database directly © 2008 Oracle Corporation – Proprietary and Confidential
  • 19. Access PeopleSoft from Java Aditional References • Enterprise PeopleTools 8.49 PeopleBook: PeopleCode API Reference > Java Class • http://tinyurl.com/2vzv9w (links to my blog) © 2008 Oracle Corporation – Proprietary and Confidential
  • 20. <Insert Picture Here> Extend the Web Server © 2008 Oracle Corporation – Proprietary and Confidential
  • 21. Extensible Options • Standard J2EE web server options – Servlet filters – JSP – JSF – Custom Servlets – CGI © 2008 Oracle Corporation – Proprietary and Confidential
  • 22. Standard Request Response Cycle... … and then ServletFilters Web Server App Server Request est Requ Client/Browser Response se pon Res Web Server Modify Request ServletFilter Servlet Request Response Modify Response © 2008 Oracle Corporation – Proprietary and Confidential
  • 23. ServletFilters • Allow you to modify the HTTP request or response • Examples – Authentication – Injection • Monkeygrease – Add additional HTML/JavaScript/CSS to pages – Compression – URLRewriting – Encryption – Encoding – Request/Response header modification © 2008 Oracle Corporation – Proprietary and Confidential
  • 24. Monkeygrease Examples ServletFilter • Highlight the active field – http://jjmpsj.blogspot.com/2006/09/where-am-i.html • Keyboard navigation – http://tinyurl.com/yrwsap (links to Grey Sparling blog) • Override CSS without customizing PeopleSoft stylesheets © 2008 Oracle Corporation – Proprietary and Confidential
  • 25. Authentication Examples ServletFilter • Use jCIFS to pass Windows authentication token to web server using NTLM – http://tinyurl.com/yuk8bl (links to my blog) © 2008 Oracle Corporation – Proprietary and Confidential
  • 26. <Insert Picture Here> Extend Integration Broker © 2008 Oracle Corporation – Proprietary and Confidential
  • 27. Integration Broker SDK Custom Connectors • Create connectors to send Integration Broker messages to targets not covered by delivered connectors – Databases via JDBC (JDBCTargetConnector) – Other TCP/IP based protocols – Anywhere, in any electronic way • JavaTargetConnector • ScriptTargetConnector © 2008 Oracle Corporation – Proprietary and Confidential
  • 28. Vendor Batch Integration Scenario • Open cursor on vendor table • For each row, select row from target – If exist, compare values • If changed, update – If not exist, insert • How often do you run this? – Too often for the system to handle (resource intensive) – Not often enough for the user © 2008 Oracle Corporation – Proprietary and Confidential
  • 29. JavaTargetConnector Prototype package com.peoplesoft.pt.integrationgateway.targetconnector; import ...; public class JavaTargetConnector implements TargetConnector { // respond to "pings" public IBResponse ping(IBRequest request) throws ... { ... } // send the message public IBResponse send(IBRequest request) throws ... { // look up Java class handler from config and use reflection // to call registered Java class } // provide connector setup info for gateway and node setup public ConnectorDataCollection introspectConnector() { ... } } © 2008 Oracle Corporation – Proprietary and Confidential
  • 30. Custom Connector Advantages • Real time integration • Reuse PeopleSoft delivered integration points • Changes are published at save time, you don’t need complex logic to find them. © 2008 Oracle Corporation – Proprietary and Confidential
  • 31. Custom Connectors Custom Connectors Documentation and Examples • SDK location: web server’s /PSIGW/SDK directory • Java IDE configuration tips – See /PSIGW/SDK/docs/SDK/ReadMe.txt • Contains tips on configuring your classpath – Most important, add /PSIGW/WEB-INF/classes to your classpath © 2008 Oracle Corporation – Proprietary and Confidential
  • 32. <Insert Picture Here> IScripts – The Swiss Army Knife © 2008 Oracle Corporation – Proprietary and Confidential
  • 33. What is an IScript? • A function that can be called from a URL • http:…/EMPLOYEE/EMPL/s/WEBLIB_ADS_FB.ISCRIPT1 .FieldFormula.IScript_GetFriends • Takes no parameters and does not return a value Function IScript_GetFriends() ... End-Function; • Contained in a record named WEBLIB_XXXXXXXX • Provides access to %Request and %Response © 2008 Oracle Corporation – Proprietary and Confidential
  • 34. What can they Do? • Custom user interfaces – Not bound to Page/Component paradigm • Ajax/Flex/Applet request/response handlers – Serve JSON, XML, or HTML in response to Ajax requests • Excellent for testing PeopleCode snippets • Just about anything… but choose wisely (see disadvantages) © 2008 Oracle Corporation – Proprietary and Confidential
  • 35. IScript Examples • Bookmarklets – Turn on session tracing – Switch the language – Switch users – Get component CREF name – Lookup component search record • Data source for a Flex grid • Data source for an extjs Ajax grid (http://extjs.com/) © 2008 Oracle Corporation – Proprietary and Confidential
  • 36. Get Component Search Record IScript Example • IScript to query database • JavaScript Bookmarklet to gather parameters © 2008 Oracle Corporation – Proprietary and Confidential
  • 37. The IScript (Declare function and variables) Function IScript_GetSearchRecname() Local string &menu = %Request.GetParameter("m"); Local string &component = %Request.GetParameter("c"); Local string &market = %Request.GetParameter("mk"); Local string &recname; Local string &barname; Local boolean &override = True; REM continued on next slide; © 2008 Oracle Corporation – Proprietary and Confidential
  • 38. The IScript (Continued – Query the Database) REM continued from previous slide; REM ** select search record name override from menu defn; SQLExec("SELECT SEARCHRECNAME, BARNAME FROM PSMENUITEM WHERE MENUNAME = :1 AND PNLGRPNAME = :2 AND MARKET = :3", &menu, &component, &market, &recname, &barname); If (None(&recname)) Then &override = False; REM ** select search record name from component; SQLExec("SELECT SEARCHRECNAME FROM PSPNLGRPDEFN WHERE PNLGRPNAME = :1 AND MARKET = :2", &component, &market, &recname); End-If; REM continued on next slide; © 2008 Oracle Corporation – Proprietary and Confidential
  • 39. The IScript (Continued – Write the response) REM continued from previous slide; %Response.SetHeader("Content-Type", "text/plain"); %Response.Write("The search record is " | &recname); If (&override) Then %Response.Write(" and is overridden on menu " | &menu | " in bar " | &barname); End-If; %Response.Write("."); End-Function; © 2008 Oracle Corporation – Proprietary and Confidential
  • 40. The Bookmarklet javascript: (function(){ var v1 = frames['TargetContent'].strCurrUrl; // parse the menu, component, market var v2 = v1.match( //c/([w_]+?).([w_]+?).([w_]+?)b/); // parse the url components var v3 = v1.match( /^(https?://)(.+?/).+?/(.+?/)(.+?/)(.+?/)/); // open the new results window window.open(v3[1] + v3[2] + 'psc/' + v3[3] + v3[4] + v3[5] + 's/WEBLIB_ADS_UTIL.ISCRIPT1.FieldFormula.IScript_GetSearchRecname?m= ' + v2[1] + '&c=' + v2[2] + '&mk=' + v2[3], 'results', 'width=400,height=100'); })(); © 2008 Oracle Corporation – Proprietary and Confidential
  • 41. The Bookmarklet Compressed javascript:(function(){var v1=frames['TargetContent'].strCurrUrl;var v2=v1.match(//c/([w_]+?).([w_]+?).([w_]+?)b/);var v3=v1.match(/^(https?://)(.+?/).+?/(.+?/)(.+?/)(.+?/)/);wind ow.open(v3[1]+v3[2]+'psc/'+v3[3]+v3[4]+v3[5]+'s/WEBLIB_ADS_UTIL.ISC RIPT1.FieldFormula.IScript_GetSearchRecname?m='+v2[1]+'&c='+v2[2]+' &mk='+v2[3],'results', 'width=400,height=100');})() © 2008 Oracle Corporation – Proprietary and Confidential
  • 42. Advantages of IScripts • Unstructured Request/Response handling – PeopleCode version of JSP/ASP – Very few rules • Full PeopleCode/Database access • Leverage PeopleSoft security model • Great for non-UI development © 2008 Oracle Corporation – Proprietary and Confidential
  • 43. Disadvantages of IScripts • No META-DATA • No upgrade • No component processor – Event processing • More difficult to develop and maintain © 2008 Oracle Corporation – Proprietary and Confidential
  • 44. <Insert Picture Here> Ajax © 2008 Oracle Corporation – Proprietary and Confidential
  • 45. Keep the User Logged In Ajax Replacement for Timeout Warning • Relevant JavaScript variables timeOutURL warningTimeoutMilliseconds timeoutWarningID • Clear the existing timeout and timeout warning window.clearTimeout(timeoutWarningID); window.clearTimeout(timeoutID); • Ajax request to reset timeout at warning timeout interval // Ajax URL that will reset the timeout on the server timeOutURL.replace(/expire$/, "resettimeout"); • Set timeout interval low (5 min) and warning interval low (4 min) © 2008 Oracle Corporation – Proprietary and Confidential
  • 46. Keep the User Logged In The JavaScript Globals /* clear old timeout after 30 seconds * macs don't set timeout until 1000 ms */ window.setTimeout('ads_setupTimeout()', 30000); var ads_timeoutIntervalId; var ads_resetUrl = null; © 2008 Oracle Corporation – Proprietary and Confidential
  • 47. Keep the User Logged In The Setup Function function ads_setupTimeout() { /* some pages don't have timeouts defined */ if(typeof(timeOutURL) != "undefined") { if(timeOutURL.length > 0) { ads_resetUrl = timeOutURL.replace(/expire$/, "resettimeout"); if(totalTimeoutMilliseconds != null) { window.clearTimeout(timeoutWarningID); window.clearTimeout(timeoutID); ads_timeoutIntervalId = window.setInterval('ads_resetTimeout()', warningTimeoutMilliseconds); } } } } © 2008 Oracle Corporation – Proprietary and Confidential
  • 48. Keep the User Logged In Injection Methods • Modify the header HTML object – PeopleTools Header: PORTAL_UNI_HEADER_NNS (potential upgrade issue) – Enterprise Portal Header: • PAPPBR_HTMLHDR4_TOOLS • Custom HTML object • Monkeygrease (http://monkeygrease.org) – Servlet filter that allows you to inject HTML into the PeopleSoft response © 2008 Oracle Corporation – Proprietary and Confidential
  • 49. Pagelet Ajax Example Facebook (Social Networking) • Putting it all together – Java API, Ajax UI, IScripts © 2008 Oracle Corporation – Proprietary and Confidential
  • 50. References • Bookmarklets – http://www.subsimple.com/bookmarklets/default.asp • Excellent tutorial, rules, and builder – http://www.bookmarklets.com/ • Ajax – http://jquery.org – http://monkeygrease.org • Blogs with PeopleTools Tips – http://jjmpsj.blogspot.com (My blog) – http://blog.greysparling.com/ – http://blogs.oracle.com/peopletools/ © 2008 Oracle Corporation – Proprietary and Confidential
  • 51. © 2008 Oracle Corporation – Proprietary and Confidential
  • 52. The preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. © 2008 Oracle Corporation – Proprietary and Confidential
  • 53. © 2008 Oracle Corporation – Proprietary and Confidential
  • 54. © 2008 Oracle Corporation – Proprietary and Confidential