ApEx and BPEL

Hi,
I was wondering if anyone has any experience of integrating ApEx Applications with SOA and BPEL. We know it is possible but would like to hear from anyone who has had any experiences with it.
Thanks
Suzanne

Hi,
The difficulty in this scenario is that you're going to integrate a data-centric application, APEX, with a data-centric process-handling technology, BPEL. In this case you will feed data from the database, fetched with APEX, back into a bpel process that inserts the data in the database.
The surplus of BPEL is the orchestration part to handle a process flow from A to Z, which can't be handled easily by APEX without a lot of manual work.
How is APEX going to handle hierarchical data that needs to be fed into your bpel process. Still a lot of architectural questions that need to handled, which is the case for each scenario of course ;o)
Kind regards,
Nathalie

Similar Messages

  • Best practice for version control B2B, ESB and BPEL

    Hello,
    we are setting up a new system using B2B, ESB and BPEL. The development team is more experienced working with PL/SQL, Oracle Workflow and we are worried that Jdeveloper generates changes to the source files during development and that we might have problems with the version control.
    Is there any best practice for setting up version control for these systems? Do we need to take anything in particular into consideration when setting up the projects?
    We are using Serena Dimensions 9.1 for version control with the add-on in Jdeveloper.
    Thanks in advance!

    I believe JDeveloper has a plugin for Dimensions.
    I havent used it but to get it, go to tools (It may be help I don't have JDeveloper on this machine to confirm) check for updates.
    If you select the thrid party check box - next, you will see an entry for dimentions.
    Configure the connection and develop as you would any other project.
    cheers
    James

  • Create PDF report with APEX and Oracle 11g doesn't work

    Hi everyone,
    I have a problem with the downloading of PDF reports from APEX with Oracle 11g.
    When I try to download a PDF, Acrobat Reader says it can not open the file.
    I have done the same test in an environment with APEX and Oracle 10g and it works perfectly.
    Does anyone know if there is a known bug for version 11g.
    Thank you very much.

    Hi Munky,
    I open the generated file the Notepad++ I can read the next message:
    *<HTML><HEAD><TITLE>500 Internal Server Error</TITLE></HEAD><BODY><H1>500 Internal Server Error</H1>OracleJSP:*
    An error occurred. Consult your application/system administrator for support. Programmers should consider setting the init-param <code>debug_mode</code> to "true" to see the complete exception message.</BODY></HTML>
    I have not idea can I solve the problem.
    Have you got any solution for this problem??
    Thank you so much.
    Victor Muñoz.

  • How to automatically login to apex and run a specific page / application

    Hi all.
    I'd like to know if there is a way of automatically login to apex and run a specific page / application. I mean, invoke browser and pass the necessary information to login (not public user) and run a specific application( ina secure way if possible).
    Thanks in advance ...!

    Hi,
    Well, as a very crude test you can set your authentication scheme to be Application Express Authenticationand define some users in Apex. Then create a before header login process on the login page (101) to automatically logon containing:
    apex_authentication.login(
        p_username => :P101_USERNAME,
        p_password => :P101_PASSWORD );
    :P101_PASSWORD := NULL;conditional on P101_PASSWORD is not null.
    Then you can login by specifying your username and password in the URL e.g.
    f?p=YOURAPP:LOGIN:::::P101_USERNAME,P101_PASSWORD:username,password
    Rod West

  • What are variables or parameters in Apex and how to use them?

    Hi
    What are variables or parameters in apex and how to use them to connect and run BI Publisher Report
    From Apex URL

    Hello Kanaiya,
    You should go here: http://www.oracle.com/technology/products/database/application_express/index.html
    Look at "What is Oracle APEX?" then download the documentation and review the various PDF files that are available.
    If you have a version of APEX installed and available, go through the 2-Day Application Express Developer's Guide followed by the Advanced Developer's Guide.
    Good luck,
    Don.

  • APEX and Oracle XE

    I am trying to use the APEX (as a substitute for my PHP forms base application) for a new client.
    Can I use the APEX and Oracle XE in production, without spending any money for a license from Oracle - i.e. for listener, Web server, etc,?
    I already have setup the APEX that works fine on my laptop, able to see and work with the form on the browser, so can I take the same to a server as a production?
    Any help is appreciated,
    Merdad

    Mehrdad wrote:
    I am trying to use the APEX (as a substitute for my PHP forms base application) for a new client.
    Can I use the APEX and Oracle XE in production, without spending any money for a license from Oracle - i.e. for listener, Web server, etc,?
    I already have setup the APEX that works fine on my laptop, able to see and work with the form on the browser, so can I take the same to a server as a production?Yes. Oracle XE is free to use for internal use or use in your products subject to the license terms for Oracle Database Express Edition.
    APEX is a no-cost database option, so if you have a licensed database (including XE), you can use APEX to develop applications. (Note that if XE is upgraded to use the latest version of APEX, some of the built-in GUI database admin features described in the guides will be lost. All admin will then have to be performed using SQL*Plus or SQL Developer.)
    The licensing information covers the features included (and not included) in Oracle XE.
    There's a dedicated {forum:id=251} forum. This is the only channel for XE support as Oracle do not support the product through MOS (even for customers paying for support of other database editions).

  • Oracle apex and extjs grid table

    hi
    im new to extjs and i was wondering if someone can help me with this;
    i want to create a report in oracle apex and put the output in extjs grid table
    for example i want to view the output of select * from all_objects in grid table
    thnx in advance

    Okay
    To get you started...
    Create a new report template with named rows.
    In row 1 template put this
    ["#1#","#2#","#3#","#4#","#5#","#6#","#7#","#8#"]Assuming you have 8 rows say... and make it conditional based on a PL/SQL Expression like this
    #ROWNUM# = 1Then row 2 template like this
    ,["#1#","#2#","#3#","#4#","#5#","#6#","#7#","#8#"]Conditional on
    #ROWNUM# > 1Then in before row put this
    <script type="text/javascript">
    Ext.onReady(function(){
    var munkyData = [And after rows something like this (based on the emp table)
    var store = new Ext.data.SimpleStore({
          fields: [
                   {name: 'empno', mapping: '0'},
                   {name: 'ename', mapping: '1'},
                   {name: 'job', mapping: '2'},
                   {name: 'mgr', mapping: '3'},
                   {name: 'hiredate', mapping: '4'},
                   {name: 'sal', mapping: '5'},
                   {name: 'comm', mapping: '6'},
                   {name: 'deptno', mapping: '7'}
    store.loadData(munkyData);
    var grid = new Ext.grid.GridPanel({
           store: store,
           columns: [
                     {id:'empno',header: "Employee",sortable:true, width:100,dataIndex:'empno'},
                     {header: "Name", sortable:true,width:75, dataIndex:'ename'},
                     {header: "Job", sortable:true, dataIndex:'job'},
                     {header: "Manager", sortable:true,width:75, dataIndex:'mgr'},
                     {header: "Hire Date", sortable:true,dataIndex:'hiredate'},
                     {header: "Salary", sortable:true,width:50,dataIndex:'sal'},
                     {header: "Commission", sortable:true,dataIndex:'comm'},
                     {header: "Department", dataIndex:'deptno'}
           stripeRows: true,
           width:700,
           autoHeight:true,
           title:'Array Grid',
           renderTo: 'munkyDiv'
    </script>Then create a region to hold it with a source of
    <div id="munkyDiv>
    </div>
    {code}
    This is pretty basic but it should get you going...
    Cheers
    Ben
    http://www.munkyben.wordpress.com
    +Don't forget to mark replies helpful or correct+ ;)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Differences between Apex and Oracle Answers (being part of OBIEE)?

    Hi!
    A colleague and I just completed a very simple demonstration prototype in Oracle answers consisting of tables (using filters, columns selectors, etc.) to control asset price deviations in fund management. The prototype is based on a star schema with a couple of facts and about 15 dimensions. We made some dashboards using traffic lights as alerts for price tables and designed a couple of data entry forms. The client says that licence costs are not issue (he is a very large banking institute) since he has special licensing agreements with Oracle. However, he wants to know what the main differences between OBIEE's Answers and Apex are. He is about to install Apex and is not sure if he should also introduce OBIEE's Answers. Is there any official Oracle paper comparing Apex and OBIEE's Answers or does someone know the main differences between both products?
    Thanks a lot for your help!!
    Ilias

    Hi,
    Q2). I assume that is something that is not default on Apex when you install it.
    appshosting have e.g. [Apex builder plug in |http://builderplugin.oracleapex.info/] that is not supported by Oracle.
    But I just ques here
    Br,Jari

  • How to add wsdl files and bpel files in new folders automatically

    Hi All,
    In our project, we have a lot of wsdl files and bpel file generated.
    By default, they are all under the folder of SOA Content, like a mess.
    I want to put them in separate folders.
    I can manually change the wsdl location and manually change references to these wsdls, but it will take a lot of extra time to do so.
    Is there a way to achieve this in UI?
    Thanks and Regards!
    Bruce

    Hi Eric,
    Thanks for your reply!
    I can use refector->move to move the wsdl file to newly created folders.
    But unfortunately, JDeveloper won't update the references to the wsdl files.
    I have to update the references manually, and it will take a lot of time if there exists many wsdl files in one project.
    Thanks and Regards!
    Bruce

  • Xpath and BPEL

    What is xpath and BPEL?

    Hi !
    WSDL, XSD, Xpath and BPEL are all open standard.
    ABAP for instance, is not an open standard.
    look at the below URL's for more details
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/cfab6fdd-0501-0010-bc82-f5c2414080ed
    BPEL in a Nutshell
    WS-BPEL 2.0 from OASIS - How it has progressed since BPEL 1.1
    BPEL Glossary for Developers
    Regards
    Abhishek

  • Issue while integrating  OID and BPEL.

    Issue while integrating OID and BPEL.
    We followed steps mentioned in for integration. WE have two SoA instances, home, oc4j_soa.
    http://download-uk.oracle.com/docs/cd/B31017_01/integrate.1013/b28982/service_config.htm#BABIBGFF
    Before running configure_oid.bat script, we changed jazn.xml to include the contents that are available in home\jazn.xml.
    The contents we replaced contain
    <jazn xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/jazn-10_0.xsd" schema-major-version="10" schema-minor-version="0" provider="LDAP" location="ldap://myhost:389" default-realm="my-realm" >
         <property name="custom.sso.url.login" value="/jsso/SSOLogin" />
         <property name="ldap.user" value="orclApplicationCommonName=jaznadmin2,cn=JAZNContext,cn=products,cn=OracleContext" />
         <property name="ldap.password" value="{903}dA0r1HydR5qIhjAn2OCLMSWlFXeLdV//sCLFNwSfWhE=" />
         <property name="custom.sso.key.alias" value="ssoSymmetricKey" />
         <property name="idm.token.asserter.class" value="oracle.security.jazn.sso.SSOCookieTokenAsserter" />
         <property name="idm.token.collector.class" value="oracle.security.jazn.sso.SSOCookieTokenCollector" />
         <property name="idm.token.type" value="HTTP_COOKIE" />
         <property name="idm.token.collector.cookie.1" value="ORA_OC4J_SSO" />
         <property name="custom.sso.url.logout" value="/jsso/SSOLogout" />
         <property name="ldap.protocol" value="no-ssl" />
         <property name="idm.authentication.name" value="JavaSSO" />
    </jazn>
    configure_oid.bat ran successfully.
    But when we try restarting SoA, it gives error. If we replace the above to point to XML-based jazn then SoA starts succcessfully.
    Please let us know if we are missing anything.
    Regards
    Yatan

    *1.) No I am not able to complete 2.1.3.3 step 3 the*
    work list application is showing "authentication fail"
    user look up is showing "unable to find the realm with name my-realm "
    *2.) After 2.1.3.3 step 2, if I try restarting the SOA suite, it throws following error.*------------------------------------------------------------------------------------------------------------------------------------------------------------
    Configuration information
    Running in C:\product\10.1.3.1\OracleAS_1
    Operation mode:Startup, App Server, No Enterprise Manager, Single Instance
    Oracle home:C:\product\10.1.3.1\OracleAS_1
    Oracle home name:Unnamed
    Instance name:ias_soa.myhost
    Instance type:allProducts
    Version:10.1.3.1.0
    Uses infrastructure:false
    Not an infrastructure instance, no infrastructure information available
    Components:[j2ee, apache, orabpel, oraesb, owsm, Wsil]
    2009-06-29 04:10:49.962--Begin log output for Mid-tier services (ias_soa.myhost)
    2009-06-29 04:10:49.962--Processing Step: starting OPMN
    2009-06-29 04:10:57.493--Processing Step: starting OPMN managed processes
    2009-06-29 04:11:22.806--End log output for Mid-tier services (ias_soa.myhost)
    An unknown OPMN error has occured
    oracle.appserver.startupconsole.model.ConsoleException: An unknown OPMN error has occured
         at oracle.appserver.startupconsole.control.OPMNController.doStart(OPMNController.java:140)
         at oracle.appserver.startupconsole.control.Controller.start(Controller.java:69)
         at oracle.appserver.startupconsole.control.GroupController.doStart(GroupController.java:47)
         at oracle.appserver.startupconsole.control.Controller.start(Controller.java:69)
         at oracle.appserver.startupconsole.view.controller.ControllerAdapter.start(ControllerAdapter.java:30)
         at oracle.appserver.startupconsole.view.controller.MasterControlAdapter.run(MasterControlAdapter.java:94)
         at oracle.appserver.startupconsole.view.Runner.main(Runner.java:39)
    Caused by: oracle.appserver.startupconsole.model.ConsoleException: There are some errors while stopping the following components. Refer to the generated error report for more details.
    ==================================================
    ias-component: default_group
    process-type: oc4j_soa
    process-set: default_group
    Error Message:failed to start a managed process after the maximum retry limit
    ==================================================
         at oracle.appserver.startupconsole.control.OPMNController.doStart(OPMNController.java:139)
         ... 6 more
    Caused by: oracle.ias.opmn.optic.OpticControlException: Error from opmn during process control operation
         at oracle.ias.opmn.optic.AbstractOpmnEntity.runCommand(AbstractOpmnEntity.java:174)
         at oracle.ias.opmn.optic.AbstractOpmnEntity.start(AbstractOpmnEntity.java:110)
         at oracle.appserver.startupconsole.control.OPMNController.doStart(OPMNController.java:97)
         ... 6 more
    Exception caused by
    There are some errors while stopping the following components. Refer to the generated error report for more details.
    ==================================================
    ias-component: default_group
    process-type: oc4j_soa
    process-set: default_group
    Error Message:failed to start a managed process after the maximum retry limit
    ==================================================
    oracle.appserver.startupconsole.model.ConsoleException: There are some errors while stopping the following components. Refer to the generated error report for more details.
    ==================================================
    ias-component: default_group
    process-type: oc4j_soa
    process-set: default_group
    Error Message:failed to start a managed process after the maximum retry limit
    ==================================================
         at oracle.appserver.startupconsole.control.OPMNController.doStart(OPMNController.java:139)
         at oracle.appserver.startupconsole.control.Controller.start(Controller.java:69)
         at oracle.appserver.startupconsole.control.GroupController.doStart(GroupController.java:47)
         at oracle.appserver.startupconsole.control.Controller.start(Controller.java:69)
         at oracle.appserver.startupconsole.view.controller.ControllerAdapter.start(ControllerAdapter.java:30)
         at oracle.appserver.startupconsole.view.controller.MasterControlAdapter.run(MasterControlAdapter.java:94)
         at oracle.appserver.startupconsole.view.Runner.main(Runner.java:39)
    Caused by: oracle.ias.opmn.optic.OpticControlException: Error from opmn during process control operation
         at oracle.ias.opmn.optic.AbstractOpmnEntity.runCommand(AbstractOpmnEntity.java:174)
         at oracle.ias.opmn.optic.AbstractOpmnEntity.start(AbstractOpmnEntity.java:110)
         at oracle.appserver.startupconsole.control.OPMNController.doStart(OPMNController.java:97)
         ... 6 more
    <?xml version='1.0' encoding='WINDOWS-1252'?>
    <response>
    <msg code="-82" text="Remote request with weak authentication.">
    </msg>
    <opmn id="bg1ws0008:6201" http-status="206" http-response="2 of 3 processes started.">
    <ias-instance id="ias_soa.myhost">
    <ias-component id="default_group">
    <process-type id="home">
    <process-set id="default_group">
    <process id="91427687" pid="4148" status="Alive" index="1" log="C:\product\10.1.3.1\OracleAS_1\opmn\logs\\default_group~home~default_group~1.log" operation="request" result="success">
    <msg code="0" text="">
    </msg>
    </process>
    </process-set>
    </process-type>
    <process-type id="oc4j_soa">
    <process-set id="default_group">
    <process id="91427688" pid="5856" status="Init" index="1" log="C:\product\10.1.3.1\OracleAS_1\opmn\logs\\default_group~oc4j_soa~default_group~1.log" operation="request" result="failure">
    <msg code="-21" text="failed to start a managed process after the maximum retry limit">
    </msg>
    </process>
    </process-set>
    </process-type>
    </ias-component>
    <ias-component id="HTTP_Server">
    <process-type id="HTTP_Server">
    <process-set id="HTTP_Server">
    <process id="91427686" pid="5140" status="Alive" index="1" log="C:\product\10.1.3.1\OracleAS_1\opmn\logs\\HTTP_Server~1.log" operation="request" result="success">
    <msg code="0" text="">
    </msg>
    </process>
    </process-set>
    </process-type>
    </ias-component>
    </ias-instance>
    </opmn>
    </response>
    *3.) opmnctl status -all ?*
    C:\product\10.1.3.1\OracleAS_1\opmn\bin>opmnctl status -all
    Usage:
    opmnctl [<scope>] status [<options>] [host port]
    Notes:
    - if host,port is specified, contact opmn on host,port;
    otherwise, contact opmn in local ias instance.
    scope:
    @instance(:name)*|@cluster
    scope specifies how far to apply the query. To apply the query to
    all known iAS Instances, specify "cluster". To apply the query
    to a specific set of 1 or more iAS Instances, specify
    "instance(:instname(:instname...))". If no names are supplied
    in an instance scope string then the request is applied to the
    "local" instance. In this context, "local" means the instance
    containing the opmn server handling the request.
    Default: local iAS Instance.
    Options:
    [ias-component|oc4j-group]=id
    - filter output by ias-component name
    - i.e. filter output by oc4j-group name
    -l - pre-selected long output format:
    %cmp32%prt18%pid7R%sta8%uid10R%mem8R%utm9R%por
    -fmt <fmtlist> - output format (see details below)
    Option "-fmt <fmtlist>" and "-l" are mutually exclusive
    -fsep <string> - field separator (default:" | ")
    -rsep <string> - record separator (default:"\n")
    -noheaders - don't print a header
    -c <count> - number of times to print status (default:1)
    -i <nsecs> - seconds between each print (default:5)
    -app [-l] - application status (optional long format)
    -port - opmn "request" host and port (scope
    argument invalid)
    Format String Syntax:
    <fmtlist> - A single string containing one or more statistic
    identifiers concatenated together where each identifier has
    the following format: %<statname>[<width>[<justification>]]
    default: %cmp32%prt18%pid7R%sta8
    <statname> - Must be one of the following:
    ins - iAS Instance Name
    cmp - iAS Component Id
    prt - Process Type Id
    prs - Process Set Id
    idx - Index of process in Process Set
    pid - OS Process Identifier
    uid - Opmn Unique Id
    typ - Name for this kind of process
    sta - Process status
    stm - start time (ms)
    utm - up time (ms)
    cpu - cpu time (ms)
    mem - memory used (Kb)
    pme - private memory (Kb)
    sme - shared memory (Kb)
    hpz - heap size (Kb)
    por - Port List
    <width> - The number of columns to use for this field. Output
    less than this value will receive padding according to the
    specified justification. Output more than this value will
    be truncated and terminated with '~'.
    default: the width of each datum
    <justification> - How to justify output when less than the width.
    Must be L, R, or C (left, right, or center justification).
    default: L
    4.) SOA Suite version ? *10.1.3.1.0*
    5.) Did you manually tweak some configuration file or followed the documentation as it is ? I have followed the document as it is.
    I have changed only jazn.xml available in ..j2ee/oc4j_soa suite to have the below section:  This section was copied from jazn.xml of ..j2ee/home directory that has been automatically updated after running configure_oid.bat file
    <jazn xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/jazn-10_0.xsd" schema-major-version="10" schema-minor-version="0" provider="LDAP" location="ldap://myhost:389" default-realm="myrealm" >
         <property name="custom.sso.url.login" value="/jsso/SSOLogin" />
         <property name="ldap.user" value="orclApplicationCommonName=jaznadmin2,cn=JAZNContext,cn=products,cn=OracleContext" />
         <property name="ldap.password" value="{903}dA0r1HydR5qIhjAn2OCLMSWlFXeLdV//sCLFNwSfWhE=" />
         <property name="custom.sso.key.alias" value="ssoSymmetricKey" />
         <property name="idm.token.asserter.class" value="oracle.security.jazn.sso.SSOCookieTokenAsserter" />
         <property name="idm.token.collector.class" value="oracle.security.jazn.sso.SSOCookieTokenCollector" />
         <property name="idm.token.type" value="HTTP_COOKIE" />
         <property name="idm.token.collector.cookie.1" value="ORA_OC4J_SSO" />
         <property name="custom.sso.url.logout" value="/jsso/SSOLogout" />
         <property name="ldap.protocol" value="no-ssl" />
         <property name="idm.authentication.name" value="JavaSSO" />
    </jazn>
    instead of
    <jazn xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/jazn-10_0.xsd" schema-major-version="10" schema-minor-version="0" provider="XML" location="./system-jazn-data.xml" default-realm="jazn.com">
    <!-- properties to configure the 3rd party IDM framework -->
         <property name="idm.authentication.name" value="JavaSSO"/>
         <property name="idm.token.asserter.class" value="oracle.security.jazn.sso.SSOCookieTokenAsserter"/>
         <property name="idm.token.collector.class" value="oracle.security.jazn.sso.SSOCookieTokenCollector"/>
         <property name="idm.token.type" value="HTTP_COOKIE"/>
         <property name="idm.token.collector.cookie.1" value="ORA_OC4J_SSO"/>
    <!-- properties for the out of the box Java SSO -->
         <property name="custom.sso.url.login" value="/jsso/SSOLogin"/>
         <property name="custom.sso.url.logout" value="/jsso/SSOLogout"/>
         <property name="custom.sso.key.alias" value="ssoSymmetricKey"/>
    </jazn>

  • Server name, port from OSB proxy and BPEL processes

    How do I read the server name, port and any other server related information from OSB proxy and BPEL processes?

    http://www.experts-exchange.com/Software/Server_Software/Application_Servers/Java/BEA_WebLogic/Q_24480613.html
    ObjectName service = new ObjectName("com.bea:Name=RuntimeService,Type=weblogic.management.mbeanservers.runtime.RuntimeServiceMBean");
    InitialContext ctx = new InitialContext();
    MBeanServer server = (MBeanServer)ctx.lookup("java:comp/env/jmx/runtime");
    ObjectName rt = (ObjectName)server.getAttribute(service,"ServerRuntime");
    System.out.println("Server Name : "+server.getAttribute(rt,"Name"));
    System.out.println("Server Address : "+server.getAttribute(rt,"ListenAddress"));
    System.out.println("Server Port : "+server.getAttribute(rt,"ListenPort"));
    ctx.close();
    By the way, it tool 10 seconds on google ...

  • Apex and Natural Vs Surrogate keys

    Hi
    We've been using Apex for a few months now and there's a debate raging in our department over whether we should design our database tables using natural or surrogate (based on Oracle sequences / triggers) keys. Our experience as Apex developers shows that Apex itself looks to lean towards surrogate keys, a few examples are below:
    - When creating forms on reports / tables Apex only allows 2 primary key columns without adding 'extras' in the background (see a previous post of mine).
    - If we have a form on a table and our natural primary keys can be updated, the Apex-created DML statements break, as they look to do the update using the changed key values in the WHERE clause rather than the old ones. The only way around this seems to be to delete the inbuilt DML statements created by Apex and code your own, which is extra work.
    - The Apex sample applications themselves seem to use sequences / surrogate keys.
    What are people's opinions on this? In particular is there any guidance from the Apex development team on which is best to use with Apex?
    Regards
    Antilles

    Hi Andrew,
    As with abots_d, I only use "natural" keys for lookups.
    >
    1. the department names were here for 20 years and they never changed
    >
    But, can you guarantee that they never will? My firm has changed departmental names so many times, it's getting ridiculous! But other things also change over time - consider what happens if a person gets married and changes their name and you've used their previous names as the keys (and consider how much data in other tables may use those keys).
    >
    2. Server names are uniquely generated by special formula in excel to preciously avoid the duplication problem and guarantee the uniqueness within our glamorous bank.
    >
    SQL could probably recreate that formula and Unique Key constraints would handle the rest
    >
    3. no, we are not going to extend this app to cover any other banks
    >
    Given what's happening with the banking industry right now, who can say ;)
    >
    4. PK that means smth ( aka "server name" ) has a meaning, whereas meaningless - has no (business) value
    >
    Why does a bit of data have to have explicit "business value"? I would suggest that a surrogate key is a pointer to a record and allows you to easily create relationships. Once created, the key would never be changed regardless of what happens to the data on its record. Thus, the relationship is maintained. Using personnel (which our firm renamed as "Human Resources" a while back) as an example, it's likely that every employee would have an employee number. Does this number actually mean anything in itself, does it have "business value"? Most likely, it's just a convenient way to identify a person and relate records to them.
    I would suggest that any non-numeric/date keys are relatively slow. As strings, the only way to check for their sort order would be to (A) convert to upper or lower case and (B) perform a string comparison left-to-right across the entire string. There's also the possibility of certain characters appearing in the strings that can cause issues - for example, quotes, apostrophes, colons, commas, question marks and percentage signs.
    Also, consider the length of a VARCHAR2 that you would have to use - how big would it need to be to cover all possibilities? You may say 20 now but tomorrow you get data with 21 characters in it - do you want to update the table plus all related tables for that?
    There are further issues with parent, child, grand-child etc relationships where the keys would have to be passed down in full through the relationships. Depending on how many levels you may have, a fair number of the fields on the bottom-most table would be there just for the keys.
    It has been a standard industry practice for many years now to "normalise databases" to avoid lots of issues with keys and "repeating data". Apart from very simple lookup tables, I have stuck with those guidelines for years now without any problems at all.
    Andy

  • OSB and BPEL Capacity Planning

    Guys,
    I am looking for a start point to begin a capacity planing of OSB and BPEL infrastructure.
    What are the parameters to take in account?
    How many managed servers?
    RAM?
    CPU?
    I know that some answers might be shallow because there are so many factor to work with, but I need a small guidance.
    Anyone?
    Thanks a lot

    You can't expect a serious answer to your question. With so many unknown factors in place ...
    However, if we stay on this "general level", then based on my experience I can easily say that OSB is not greedy at all. You can handle tens to hundreds of requests per second on a retail hardware. Of course, it all depends on the character of your services. The more complexity (XQuery, XSLT, service callouts, java callouts) you add to your services the more power you need.

  • ESB and BPEL in different servers

    Hi ,
    Is there any performance based advantage when we have BPEL and ESB in different servers ?

    If you seperate them, it will have impacht on the perfromance. Services are called over the network, assuming BPEL and ESB are on different servers. Otherwise they can call each other via native binding if ESB and BPEL are in the server and container.
    Marc
    http://orasoa.blogspot.com

Maybe you are looking for

  • What is POP, POP3, and IMAP When I Setup My Email Account in the HP ePrint App?

    I have done as much research as I can do in regards to setting up the HP ePrint App Email Accounts.  If you do not see your email information listed here, feel free to post it below or contact your internet service provider, phone or email company, o

  • Hard drive failure (why can't I start up with boot disk)?

    Running OS 10.4.6. I was getting flashing question mark at startup. Tried starting with Disk Warrior holding down "C" key. Got Apple logo, but then screen frooze with horizontal lines across screen. Rebooted, held mouse to eject disk. Tried TechTool

  • How to create a lock object dynamically ?

    Hi all, I have a report with  a selection screen having one parameter in which the user can put a table name(Custom table) and some other paremeters.Based on these parameters I need to delete records from table put on the selection screen.Before deet

  • Special Button

    Hi all, I need to develop a transaction, a special button is needed to add under the OK button and above the applicaction toolbar,(not on the application toolbar), you can see it in T-Code ES32. It is for create attachment and workflow ... Does anyon

  • Bdoc BUPA_MAIN R/3 CRM reccurent errors

    Hi all, We have often the following error on bupa_main bdocs in SMW01 : "Partner function already exists in exclusion list" Can you hekp us ? Thanks a lot. J.C.