PERFORM ... ON ROLLBACK

Hi all,
i have some code in an user exit at the end of TO creation.  I also write there some Application Log Messages. But when i throw an A Message in this user exit the Applog is empty after the transaction because the A Mesages causes an rollback. I had the idea to solve this with an perform on commit routine but this form routine is never been executed. Has anyone an idea what i have done wrong with this statement?
Thanks in advance
Steffen

I solved the problem in another way:
i write all my Application Log Messages with a function module that i call with fuction destination 'NONE'
so all the Application Log Handling is in a seperate program context.
after the A-Messages is thrown in the user exit and the rollback is performed, the Application Log is on the database anyway.
here a short sample:
create Applog ( in an own RFC able function module as wrapper for BAL_LOG_CREATE ):
  CALL FUNCTION 'Z_BAL_LOG_CREATE' destination 'NONE'
    EXPORTING
      i_s_log                       = s_log_hdr
    IMPORTING
      E_LOG_HANDLE                  = log_handle
    EXCEPTIONS
      MISSING_LOG_HEADER            = 1
      LOG_HEADER_INCONSISTENT       = 2
      ERROR                         = 3
      OTHERS                        = 4.
Add Message to Applog ( in an own RFC able function module as wrapper for BAL_LOG_MSG_ADD ):
  CALL FUNCTION 'Z_BAL_MSG_ADD' destination 'NONE'
    EXPORTING
      i_log_handle              = log_handle
      i_s_msg                   = s_bal_msg
    EXCEPTIONS
      MISSING_LOG_HANDLE        = 1
      MISSING_LOG_MESSAGE       = 2
      LOG_NOT_FOUND             = 3
      MSG_INCONSISTENT          = 4
      LOG_IS_FULL               = 5
      ERROR                     = 6
      OTHERS                    = 7.
save Applog to database( in an own RFC able function module as wrapper for BAL_DB_SAVE ):
  CALL FUNCTION 'Z_BAL_DB_SAVE_SINGLE' destination 'NONE'
    EXPORTING
      i_log_handle             = log_handle
    EXCEPTIONS
      MISSING_LOG_HANDLE       = 1
      LOG_NOT_FOUND            = 2
      SAVE_NOT_ALLOWED         = 3
      NUMBERING_ERROR          = 4
      ERROR                    = 5
      OTHERS                   = 6.
throw A-MESSAGE:
message axxx(yyy).
the transaction performs a rollback but the applog is written to database anyway.
regards steffen
Message was edited by: Steffen Engert

Similar Messages

  • Performance problems after installing XP Service Pack 3

    Hello,
    After upgrading my client XP-machine to Service Pack 3, I have serious performance issues working with ApEx. Firstly, establishing the connection to the ApEx Workspace and then logging in both are very slow. Navigating through the workspace works fine, however when I then open any page for editing and/or try to run it, again it is very slow. As we work with PL/sql Embedded gateway I have changed the parameter SHARED_SERVERS to 10, but this did not make any difference. Remotely connecting to this server in other ways such as ping, connecting to xmlpserver, mapping network drives and connecting to the database all work fine.
    My collegues also working witk Service Pack 3 have no performance issues. However when I performed a rollback of the XP Service Pack 3, the performance issue was gone!
    Does anyone know of any issues similar to this problem?
    Regards,
    Ben van Dort

    This issue is probably related to an update of InternetExplorer by Service Pack 3. Working with Firefox instead of IE gives no performance problems whatsoever.
    Version of IE after Service Pack 3: 6.0.2900.5512.xpsp_sp3_gdr.080814-1236CO
    Ben

  • Windows 2003 SP2 = 2008 R2 SP1 Upgrade 62% Rollback

    Hello,
    we have to upgrade our Windows Server 2003 SP2 x64 (DC), to Windows 2008 R2 SP1.
    Unfortunately, a clean install is not an option.
    The server is a virtual machine. Therefore, first we make a clone, for a test upgrade, of the server.
    Adprep and domainprep was successful. Problematic Software: Acronis, DaemonTools, Kasperksy.. is uninstalled.
    Will upgraded with a clean iso, downloaded from the VLSC.
    All Windows 2003 updates have been installed and a clean-boot (msconfig : MS services, no startup items), was done.
    During the upgrade, we download the installation updates (Get important updates for installation).
    The environment variable MIG_UPGRADE_IGNORE_PLUGINS = IphlpsvcMigPlugin.dll was already tried in another upgrade.
    We have the setupact.log (33MB) from the \$Windows folder.~ BT\Sources\Panther\ . But can't found the error.
    The Upgrade stops at 62%:
    Then the server reboots and performs a rollback :
    What can we do?
    Regards,
    Stefan

    Hi Stefan,
    Stopped at 62% is a common issue which could be caused by many factors.
    First I suggest you to remove all unnecessary devices like printer, USB device etc.
    Also try to uninstall drivers for hardware devices. I noticed that many applications are already deleted in troubleshooting process so check if any unnecessary program still exists.
    If issue still exists, try check disk and SFC.
    The last option is to perform an in-place upgrade with Windows Server 2003 and try the 2008 upgrade again. 
    We
    are trying to better understand customer views on social support experience, so your participation in this
    interview project would be greatly appreciated if you have time.
    Thanks for helping make community forum a great place.

  • Rollback in Master-Detail form - SOLVED

    Hellou.
    I have 2 blocks Mater-Detail relation. I execute query and make some changes in Items from block 1 and some changes in items in block 2.There are althoug some POSTs. I have Button "Change Back" and i need to use this button to rollback all changes i have made (All post will be rollbacked). But it always rollback me only DETAIL block items, but MASTER block items didn't rollback.
    I use Forms_ddl('rollback')
    Althoug I change Session_mode to OFF and perform FULL rollback. But always the same. Master block NO ROLLBACK.
    Some ideas???
    Message was edited by:
    zoffob

    I want rollback and continue in query.I guess I don't understand what you are trying to do. Do you simply want to be at the same record when a rollback is issued? If so, this can still be accomplished using CLEAR_FORM() built-in. You simply need to capture the pertinent data so you can return to this record after the Form has been re-queried. For example, the user in on record number 75 when they decide they need to rollback the changes. In your Button trigger, you will need to capture that a rollback was performed and store the current record in a parameter or global variable. When the form is re-queried, check to see if a rollback was done and if so use the GO_BLOCK(), GO_ITEM(), and GO_RECORD() built-ins to return the user to the record they were on when they clicked on the Rollback button.
    For Example:
    When-Button-Pressed trigger
    BEGIN
       /**I prefer to use Forms Parameters to capture Forms unique global variables because
          these values only apply to the current form and shouldn't be visible to other Forms
          in the same session. **/
       :parameter.rollback_issued := 'Y';
       :parameter.current_block := :system.current_block;
       :parameter.current_item := :system.current_item;
       :parameter.current_record := :system.current_record;
       /**If you modified the Data Block's Default Where clause you will want to capture this
           information also. **/
       :parameter.curr_blk_def_where := get_block_property(:system.current_block,DEFAULT_WHERE);
       CLEAR_FORM(NO_COMMIT,FULL_ROLLBACK);
    END;Now, in your When-New-Form-Instance or When-New-Block-Instance trigger do something like:
    BEGIN
       IF (:parameter.rollback_issued = 'Y') THEN
          :parameter.rollback_issued := 'N';
          set_block_property(:parameter.current_block,DEFAULT_WHERE,:parameter.curr_blk_def_where);
          GO_BLOCK(:parameter.current_block);
          EXECUTE_QUERY;
          GO_ITEM(:parameter.current_item);
          GO_RECORD(:parameter.current_record);
       ELSE
          /** Do what you would normally do here.  **/
       END IF;
    END;If this is not what you are trying to achieve, please post what you are trying to achieve and why the CLEAR_FORM() method wont work and we'll see if we can help you find a way to achieve what you are trying to do.
    Hope this helps.
    Craig...

  • Control the render true/false after rollback in ValueChangeListener

    Hello
    I am using Jdeveloper 11.1.1.3.0 ADF BC.
    I have this problem:
    in my page I have some LOV that conrol the rendering true/false for other components,
    and we achieved this by a valuechangeLisntener method in a backing bean. and
    everything works well. However when we use the rollback the rendering does not work as expected.
    to clarify the problem, suppose we have LOV1(has two values 1,2) that control the rendering of
    LOV2, when the user selects 1 LOV2 will be rendered and when the user selects 2 LOV2 will be hidden
    now suppose that the default value of LOV1 is 2, so LOV2 is hidden, now the user change the value
    of LOV1 to 1 so the LOV2 will be rendered, now the user press rollBack the value of LOV1 will
    reset to 2 but the LOV2 is still rendered on the page. which is not true.
    initially I thought that I need to call the valueChangeListener method again after rollback,
    I found something like this in this thread:
    Dynamic ValuechangeListener Addition
    but this is for Jdeveloper 10g and that method is deprecated in 11g, as someone comments, and
    he mentioned that this is not the best practice. is there any working solution for this problem?
    can anyone help please

    Thank you LovettWB and Navaneeth for your suggestion, but unfortunately the problem is still exist.
    I will a snapshot for my code and my page definition.
    my page definition is:
    <af:selectOneRadio value="#{bindings.Citizen.inputValue}"
                                         label="#{bindings.Citizen.label}"
                                         required="#{bindings.Citizen.hints.mandatory}"
                                         shortDesc="#{bindings.Citizen.hints.tooltip}"
                                         id="citizen" autoSubmit="true"
                                         immediate="true"
                                         valueChangeListener="#{StudentInformationBean.showCountriesLOV}"
                                         binding="#{StudentInformationBean.citizenRadio}">
                        <f:selectItems value="#{bindings.Citizen.items}" id="si6"/>
                      </af:selectOneRadio>
    <af:selectOneChoice value="#{bindings.CountryOfCitizenship.inputValue}"
                                          label="#{bindings.CountryOfCitizenship.label}"
                                          required="#{bindings.citizenValue.inputValue=='غير كويتي'}"
                                          shortDesc="#{bindings.CountryOfCitizenship.hints.tooltip}"
                                          id="soc2"
                                          partialTriggers="citizen"
                                          binding="#{StudentInformationBean.countryOfCitizenship}"
                                          requiredMessageDetail="#{bundle.non_ku_country}"
                                          visible="#{bindings.citizenValue.inputValue=='0'}">
                        <f:selectItems value="#{bindings.CountryOfCitizenship.items}"
                                       id="si5"/>
                      </af:selectOneChoice>                      and my code is in the valueChangeLisitener is:
        public void showCountriesLOV(ValueChangeEvent valueChangeEvent) {
               // Add event code here...
               FacesContext context = FacesContext.getCurrentInstance();
               if(valueChangeEvent.getNewValue().toString().equals("0"))
                 System.out.println("the new citizen value is " + valueChangeEvent.getNewValue().toString());
               //  this.countryOfCitizenship.setRendered(false); 
                 this.countryOfCitizenship.setVisible(false);
                 this.countryOfCitizenship.setRequired(false);
                 context.renderResponse();            
               else
                 System.out.println("the new citizen value is " + valueChangeEvent.getNewValue().toString());
             //  this.countryOfCitizenship.setRendered(true);
                 this.countryOfCitizenship.setVisible(true);
                 this.countryOfCitizenship.setRequired(true);
                 context.renderResponse();
          public void rollBack(ActionEvent actionEvent) {
            // Add event code here...
            OperationBinding operationBinding = bindings.getOperationBinding("Rollback");
            System.out.println("perform the rollback");
            Object result = operationBinding.execute();
              AdfFacesContext adffacesctx = AdfFacesContext.getCurrentInstance();
            adffacesctx.addPartialTarget(this.citizenRadio);
            public void setRollBackButton(RichCommandButton rollBackButton) {
            this.rollBackButton = rollBackButton;
        public RichCommandButton getRollBackButton() {
            return rollBackButton;
         }any help or suggestion please.
    Edited by: M.Jabr on Feb 7, 2011 12:26 AM
    Edited by: M.Jabr on Feb 7, 2011 12:29 AM

  • How to rollback the complete process

    hi frnds...i have 3 services 1,2,3..here 1 and 2 has completed its processees and i got a problem with 3..so here i need to rollback all the process to my starting point..how to do that please let me know

    see compensation handler is a block where you can keep the activities by which you can perform a rollback or compensation. compensation handler can be kept for a scope level or the process level, and compensation handler should be called from compensation activity. so, something unexpected happens in your BPEL where you want to perform the rollback, you can call the compensation handler using a compensate activity from a catch or catchAll branch.
    Example:
    Lets say your BPEL is inserting a record into the database and in the next step something unexpected happens and it goes to catch or catchall branch, now you need to delete the earlier inserted record, what you need to do is, keep a compensate activity in the catch or catchall branch, which it then calls the compensation handler and in the compensation handler, your code will be something like delete the record from the database using the pure sql option in the db adapter.
    Hope this helps
    N

  • MDB rollback to Queues/Topics

    Can somebody explain the MDB rollback behaviour in Queues and Topics.
    My specific questions are:
    1) When a MDB, listening to a Queue, performs a rollback, does the message go back to the head of the queue (assumption is that the message should go back to the head of the queue)? Is this somewhere in the spec? Seems like different providers have different interpretations, all the JMS providers do not gurantee this behaviour.
    2) If we replace the queue with Topic, where does the message go on a rollback?
    3) Where does the message go when there are multiple subscribers to the Topic? Can the other subscribers that did consume the message successfully get the message again, if a subscriber performs a rollback?
    The JMS specification does not cover these situation very well, so we are left to the mercy of the JMS providers.
    4) Can somebody share the experience in this context, if we are trying to build a 'JMS agnostic' solution, how should we handle this rollback?
    Thanks

    1. Its dependent on the JMS provider. In ActiveMQ 4.x it is replayed to the consumer a number of times before being placed on the head of the queue - so ordering is maintained if the message is successfully processed by the same consumer.
    However ordering is often broken if the message is put back on the head of the queue if you have multiple consumers, since they compete for messages. Though if you have multiple consumers anyway, you often loose total ordering unless you use a technique like Exclusive Queues or Message Groups.
    2. Typically it'll be replayed to the same consumer again. Most JMS providers provide a way to customize the redelivery policy; how many times will it be redelivered before sending to a dead letter queue, what is the replay exponential back off time etc.
    3. Yes. Each topic subscriber gets their own copy of the message. It doesn't matter if one consumer does or does not process the message; other consumers are unaffected.
    4. I'd just retry the operation and rely on the MDB/JMS providers dead letter queue and you should be fine.
    BTW if ever you need a tool to browse the dead letter queues and maybe move messages from the dead letter queue back to the originating queue, you could try Hermes
    http://www.hermesjms.com/
    James
    http://logicblaze.com/

  • Rollback Questions for 10.1.3.1

    Hi all,
    I have some issues with rollback in a bpel process.
    I have all partner links (DB adapters and File Adapters) with transaction=participate and the process as well.
    I have a partner link that uses a Local transaction (because I want to commit only that operation), all the other uses a XA transaction.
    All the rest I want to rollback in case of error.
    I have a Throw with Rollback but before that I have a Reply informing the client that the process is ongoing.
    Inside the scope that have the Rollback Throw, if the process gives an error in one place, he can do the rollback, but in another place, he can't.
    I'm not understanding this behavior, can you please help?
    Thank in advance.
    CD
    Edited by: user586904 on Oct 20, 2009 6:20 PM
    I forgot to say that is a Sync process.

    Hi CD,
    I developed a process similar to your process in 10.1.3.3
    I think throwing rollback exception will not undo the DB operations that are allready done.
    Even if you use transaction=participate property it will not perform the rollback operation.
    transaction=participate will not commit the transaction untill it completes successfully... so in your second scope if exception occurs it will go that scope catch and from there to main catch.
    It means your process completed successfully by catching the inner scope fault.
    EX: In your inner scope fault occurs during file reading first two DB operations in that scope will get commited.
    Now in Main Scope after catching the inner fault throw any fault.
    It means your process is not completed.... in this case Inner scope DB operations will not get commited.
    Hi Experts
    Please correct me if i am wrong.
    Really will bpelx:rollback perform the rollback operation
    Regards
    Pavankumar
    Edited by: [email protected] on Oct 22, 2009 3:21 AM
    Edited by: [email protected] on Oct 22, 2009 3:21 AM

  • How to rollback the installation of a content package?

    Dear Community,
    We are using CQ 5.4 on my current assignment and I have a (hopefully trivial :) question concerning deployment/rollback best practices.
    Assume I have a content package ContentPackageA.zip which contains:
    /etc/packages/com.somesite/ContentPackageB.zip
    /apps/somesite/install/someservice.jar
    The subpackage ContentPackageB contains:
    /content/somesite/somepage
    /content/somesite/somepage/somechildpage
    /etc/tags/somesite/sometag
    To install this in my environment I will do the following:
    Open CRX Package Manager on my Author instance
    Upload ContentPackageA.zip
    Make sure the setting 'Extract Subpackages' is checked and install ContentPackageA.zip
    Open the Tools Admin interface
    Browse to /etc/packages/com.somesite/
    Activate ContentPackageA.zip
    Now my environment, both Author and Publish instances, contains all the new nodes included in the content packages: ContentPackageA.zip and subpackage ContentPackageB.zip
    Assume now that I want to rollback this deployment. I will then do the following:
    Open the Tools Admin interface
    Browse to /etc/packages/com.somesite/
    Deactivate ContentPackageA.zip
    Open CRX Package Manager on my Author instance
    Uninstall ContentPackageA.zip
    Delete ContentPackageA.zip (optional I guess)
    My experience is that this procedure does not work entirely. The resulting state is:
    On the Author instance, everything is removed, i.e. both packages and package contents
    On Publish instance, only one package is removed: /etc/packages/com.somesite/ContentPackageA.zip
    The subpackage remains: /etc/packages/com.somesite/ContentPackageB.zip
    The package contents remains as well from both ContentPackageA.zip and ContentPackageB.zip
    My questions are:
    What are the best practices to perform a rollback from both Author and Publish instances?
    Is deactivation of a package supposed to delete package contents and deactive subpackages?
    Are there any changes in CQ 5.5 regarding this?
    Thanks for the support!
    Best regards,
    Jonas Oskö

    Currently OOB we do not have option that by deactivate it uninstall package.  The enhancement request is in place & not yet considered for future release. Please file daycare with business impact & valid usecase.
    You might not use this feature more often right ?  During your code deployment if you wan't to rollback you can restore from the backup that you had before deployment.
    If repository is big & restore is not an option. As a workaround You need to uninstall the package from publish before deactivate. This can be achieved through script using curl.

  • PGW config backup and rollback

    Hello. I'm about to update a PGW config. I'm writing the backup and rollback procedures. I understand that to perform a backup I must use the MML command "prov-exp" (which creates config.mml and trunk.dat files) and later the UNIX command "mgcbackup". My question is, if I make changes in the config and it doesnt work well, how can I perform the rollback? I understand I can use the UNIX command "mml -b config.mml" but that file doesnt have any "prov-sta" commands so I think that wouldnt work by itself, to return to the previous config. Maybe I need to issue the "prov-sta" command before issuing the "mml -b" ? Thanks in advance for your answers. Any comments about how you perform the rollback would be very appreciated.

    Yes you are correct. Just add the prov-sta command to the top of the config.mml file and then a prov-cpy and prov-stp at the bottom.

  • Unable to save Sequence value to Database

    Hi,
    I am trying to pupulate a sequence value so that I can use it as primary key along with the combination of other columns later. My problem is that the sequence value is getting populated on the page with the right value, But is not getting saved to the database. The Column is there in the VO. The column is blank on the table. When I print it(System.out.println("Seq=" + xSeq.getText(pageContext));), the value is null. Can anyone please advice what I am doing wrong OR if I am missing anything here.
    Thanks
    Ali
    My CO file:
    ============
    package lac.oracle.apps.lac.jobperf.server.webui;
    import oracle.apps.fnd.common.VersionInfo;
    import oracle.apps.fnd.framework.webui.OAControllerImpl;
    import oracle.apps.fnd.framework.webui.OAPageContext;
    import oracle.apps.fnd.framework.webui.beans.OAWebBean;
    import oracle.apps.fnd.framework.OAApplicationModule;
    import oracle.apps.fnd.framework.webui.OADialogPage;
    import oracle.apps.fnd.framework.webui.TransactionUnitHelper;
    import oracle.jbo.domain.Number;
    import oracle.apps.fnd.common.MessageToken;
    import oracle.apps.fnd.framework.OAApplicationModule;
    import oracle.apps.fnd.framework.OAException;
    import oracle.apps.fnd.framework.OAViewObject;
    import oracle.apps.fnd.framework.webui.OAWebBeanConstants;
    import oracle.apps.fnd.framework.webui.beans.layout.OAMessageComponentLayoutBean;
    import oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean;
    import oracle.apps.fnd.framework.webui.beans.message.OAMessageStyledTextBean;
    import com.sun.java.util.collections.HashMap;
    import oracle.bali.share.util.IntegerUtils;
    import oracle.apps.fnd.framework.server.OADBTransaction;
    * Controller for ...
    public class ReviewCreateCO extends OAControllerImpl
    public static final String RCS_ID="$Header$";
    public static final boolean RCS_ID_RECORDED =
    VersionInfo.recordClassVersion(RCS_ID, "%packagename%");
    * Layout and page setup logic for a region.
    * @param pageContext the current OA page context
    * @param webBean the web bean corresponding to the region
    OAApplicationModule am; // dave
    OADBTransaction oadbxn; // dave
    oracle.jbo.domain.Number Seq;
    public void processRequest(OAPageContext pageContext, OAWebBean webBean)
    // Always call this first
    super.processRequest(pageContext, webBean);
    am = pageContext.getApplicationModule(webBean); // dave
    oadbxn = am.getOADBTransaction(); // dave
    OAPageLayoutBean pageLayout = pageContext.getPageLayoutBean();
    OAMessageComponentLayoutBean mainRn = (OAMessageComponentLayoutBean)pageLayout.findIndexedChildRecursive("MainRN");
    // If isBackNavigationFired = false, we are here after a valid navigation
    // (the user selected the Create Review button) and we should proceed
    // normally and initialize a new Review.
    if (!pageContext.isBackNavigationFired(false))
    // We indicate that we are starting the create transaction(this
    // is used to ensure correct Back button behavior).
    TransactionUnitHelper.startTransactionUnit(pageContext,"jobperfCreateTxn");
    // This test ensures that we don't try to create a new review if we
    // had a JVM failover, or if a recycled application module is activated
    // after passivation. If this things happen, BC4J will be able to find
    // the row you created so the user can resume work.
    if (!pageContext.isFormSubmission())
    OAApplicationModule am = pageContext.getApplicationModule(webBean);
    // String Seq = (String)oadbxn.getValue("Seq");
    oracle.jbo.domain.Number Seq = oadbxn.getSequenceValue("lac.LAC_CM_PERF_REVIEW_SEQ");
    OAMessageStyledTextBean xSeq = (OAMessageStyledTextBean)mainRn.findIndexedChildRecursive("Seq");
    xSeq.setText(Seq.toString());
    am.invokeMethod("createReview",null);
    // Initialize the ApplicationpropertiesVO for PPR.
    // am.invokeMethod("init");
    else
    if (!TransactionUnitHelper.isTransactionUnitInProgress(pageContext,"jobperfCreateTxn", true))
    // We got here through some use of the browser "Back" button, so we
    // want to display a stale data error and disallow access to the page.
    // if this were a real application, we would propably display a more
    // context-specific message telling the user she can't use the browser
    //"Back" button and the "Create" page. Instead, we wanted to illustrate
    // how to display the Applications standard NAVIGATION ERROR message.
    OADialogPage dialogPage = new OADialogPage(NAVIGATION_ERROR);
    pageContext.redirectToDialogPage(dialogPage);
    } // end processRequest()
    * Procedure to handle form submissions for form elements in
    * a region.
    * @param pageContext the current OA page context
    * @param webBean the web bean corresponding to the region
    public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
    {    //super.processFormRequest(pageContext, webBean);
    // Always call this first.
    super.processFormRequest(pageContext, webBean);
    OAApplicationModule am = pageContext.getApplicationModule(webBean);
    OAPageLayoutBean pageLayout = pageContext.getPageLayoutBean();
    OAMessageComponentLayoutBean mainRn = (OAMessageComponentLayoutBean)pageLayout.findIndexedChildRecursive("MainRN");
    // Pressing the "Apply" button means the transaction should be validated
    // and committed.
    // OAPageLayoutBean pageLayout = pageContext.getPageLayoutBean();
    // String Seq = SeqText.getText(pageContext);
    oadbxn.putValue("Seq", Seq);
    am = pageContext.getApplicationModule(webBean);
    oadbxn = am.getOADBTransaction();
    if (pageContext.getParameter("Apply") != null)
    // Generally in the tutorial application and the labs, we've illustrated
    // all BC4J interaction on the server (except for the AMs, of course). Here,
    // we're dealing with the VO directly so the comments about the reasons
    // why we're obtaining values from the VO and not the request make sense
    // in context.
    OAViewObject vo = (OAViewObject)am.findViewObject("jobperfVO1");
    // Note that we have to get this value from the VO because the EO will
    // assemble it during its validation cycle.
    // For performance reasons, we should generally be calling getEmployeeName()
    // on the EmployeeFullVORowImpl object, but we don't want to do this
    // on the client so we're illustrating the interface-appropriate call. If
    // we implemented this code in the AM where it belongs, we would use the
    // other approach.
    String employeeName = (String)vo.getCurrentRow().getAttribute("FullName");
    // We need to get a String so we can pass it to the MessageToken array below. Note
    // that we are getting this value from the VO (we could also get it from.
    // the Bean as shown in the Drilldwon to Details lab) because the item style is messageStyledText,
    // so the value isn't put on the request like a messaqeTextInput value is.
    String employeeNumber = (String)vo.getCurrentRow().getAttribute("EmployeeNumber");
    //ma String employeeNum = String.valueOf(employeeNumber.intValue());
    //ma Number employeeNumber = (Number)vo.getCurrentRow().getAttribute("EmployeeNumber");
    //ma String employeeNum = String.valueOf(employeeNumber.intValue());
    // Simply telling the transaction to commit will cause all the Entity Object validation
    // to fire.
    // Note: there's no reason for a developer to perform a rollback. This is handled by
    // the framework if errors are encountered.
    OAMessageStyledTextBean xSeq = (OAMessageStyledTextBean)mainRn.findIndexedChildRecursive("Seq");
    System.out.println("Seq=" + xSeq.getText(pageContext));
    am.invokeMethod("apply");
    // Indicate that the Create transaction is complete.
    TransactionUnitHelper.endTransactionUnit(pageContext, "jobperfCreateTxn");
    // Assuming the "commit" succeeds, navigate back to the "Search" page with
    // the user's search criteria intact and display a "Confirmation" message
    // at the top of the page.
    MessageToken[] tokens = { new MessageToken("EMP_NAME", employeeName),
    new MessageToken("EMP_NUMBER", employeeNumber) };
    OAException confirmMessage = new OAException("PER", "LAC_FWK_TBX_T_EMP_CREATE_CONF", tokens,
    OAException.CONFIRMATION, null);
    // Per the UI guidelines, we want to add the confirmation message at the
    // top of the search/results page and we want the old search criteria and
    // results to display.
    pageContext.putDialogMessage(confirmMessage);
    HashMap params = new HashMap(1);
    // Replace the current employeeNumber request parameter value with "X"
    params.put("employeeNumber", "employeeNumber");
    // IntegerUtils is a handy utility
    params.put("employeeNumber",IntegerUtils.getInteger(5));
    pageContext.forwardImmediately(
    "OA.jsp?page=/lac/oracle/apps/lac/jobperf/webui/jobperfPG",
    null,
    OAWebBeanConstants.KEEP_MENU_CONTEXT,
    null,
    params, //null,
    false, // retain AM
    OAWebBeanConstants.ADD_BREAD_CRUMB_YES);
    else if (pageContext.getParameter("Cancel") != null)
    am.invokeMethod("rollbackReview");
    // Indicate that the Create transaction is complete.
    TransactionUnitHelper.endTransactionUnit(pageContext, "jobperfCreateTxn");
    pageContext.forwardImmediately("OA.jsp?page=/lac/oracle/apps/lac/jobperf/webui/jobperfPG",
    null,
    OAWebBeanConstants.KEEP_MENU_CONTEXT,
    null,
    null,
    false, // retain AM
    OAWebBeanConstants.ADD_BREAD_CRUMB_NO);
    } // end processFormRequest()
    }

    Hi Tapash,
    Thanks for all of you guys(Tapash/Sumit/user550094) help. The sequence is working and also populating the values in the table when I do not have any validation checks imposed on it.
    If I add any validations as mentioned in the exercise for create page where it checks if the sequence can be updated while null and so on... and throws appropriate exception. I get error. That is the code that I mentioned above.
    Here is the validation code for EOImpl:
    As mentioned below in order for the code to compile and work I had to comment the "throw new OAAttrvalException". If I uncomment the
    "throw new OAAttrvalException" part, it gives me the following error while compiling:
    "Error(796,13): method getPrimarykey not found in class lac.oracle.apps.lac.jobperf.schema.server.jobperfEOImpl"
    public void setSeq(Number value)
    // Because of the declaritive validation that you specified for this attribute,
    // BC4J validates that this can be updated only on a new line, and that this,
    // mandatory attribute cannot be null. This code adds the additional check
    // of only allowing an update if the value is null to prevent changes while
    // the object is in memory.
    if (getSeq() != null)
    /* throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT,
    getEntityDef().getFullName(), //getSeq(), // EO name
    getPrimarykey(), // EO PK
    "Seq", // Attribute Name
    value, // Attribute value
    "AK", // Message product short name
    "FWK_TBX_T_EMP_ID_NO_UPDATE"); // Message name */
    if (value != null)
    // Seq ID must be unique. To verify this, check both the
    // entity cache and the database. In this case, it's appropriate
    // to use findByPrimaryKey() because you're unlikely to get a match, and
    // and are therefore unlikely to pull a bunch of large objects into memory.
    // Note that findByPrimaryKey() is guaranteed to check all employees.
    // First it checks the entity cache, then it checks the database.
    OADBTransaction transaction = getOADBTransaction();
    Object[] employeeKey = {value};
    EntityDefImpl empDefinition = jobperfEOImpl.getDefinitionObject();
    jobperfEOImpl Seq =
    (jobperfEOImpl) empDefinition.findByPrimaryKey(transaction, new Key(employeeKey));
    if (Seq != null)
    /* throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT,
    getEntityDef().getFullName(), // .getSeq(), // EO name
    getPrimaryKey(), // EO PK
    "Seq", // Attribute Name
    value, // Attribute value
    "AK", // Message product short name
    "FWK_TBX_T_EMP_ID_UNIQUE"); // Message name */
    // Note that this is the point at which the value is actually set on the EO cache
    // (during the scope of setAttributeInternal processing). If you don't make this
    // call after you perform your validation, your value will not be set correctly.
    // Also, any declarative validation that you define for this attribute is executed
    // within this method.
    setAttributeInternal(SEQ, value);
    } // end SetSeq
    I am sorry if I have confused you. I really did not mean to do it.
    Thanks,
    Ali

  • Passing parameters to Update page

    Hi,
    I created the search/create/update page going by the instructions in the tutorial exercise. My primary key is a combination of employee number AND sequence number.
    When I query the employee in the search page and if the employee has more than one record it displays all the records for that employee.
    When I click on the "update" button on one of the record, It is not displaying me the record on which I clicked the "update" button. Instead it is displaying me the other record for the same employee. I believe I need to pass the sequence value as the parameter, but do not know how to pass it. Can anyone one help me accomplish this?
    Thanks in advance,
    Al
    Below is the CO code for SEARCH page:
    /*===========================================================================+
    | Copyright (c) 2001, 2005 Oracle Corporation, Redwood Shores, CA, USA |
    | All rights reserved. |
    +===========================================================================+
    | HISTORY |
    +===========================================================================*/
    package lac.oracle.apps.lac.jobperf.server.webui;
    import oracle.apps.fnd.common.VersionInfo;
    import oracle.apps.fnd.framework.webui.OAControllerImpl;
    import oracle.apps.fnd.framework.webui.OAPageContext;
    import oracle.apps.fnd.framework.webui.beans.OAWebBean;
    import oracle.apps.fnd.framework.webui.OAWebBeanConstants;
    import oracle.apps.fnd.framework.webui.TransactionUnitHelper;
    import oracle.apps.fnd.framework.OAApplicationModule;
    import java.io.Serializable;
    import java.sql.Connection;
    import java.text.SimpleDateFormat;
    import java.text.ParseException;
    import oracle.apps.fnd.common.MessageToken;
    import oracle.apps.fnd.common.VersionInfo;
    import oracle.apps.fnd.framework.OAApplicationModule;
    import oracle.apps.fnd.framework.OAException;
    import oracle.apps.fnd.framework.server.OADBTransaction;
    import oracle.apps.fnd.framework.webui.OAControllerImpl;
    import oracle.apps.fnd.framework.webui.OADialogPage;
    import oracle.apps.fnd.framework.webui.OAPageContext;
    import oracle.apps.fnd.framework.webui.OAWebBeanConstants;
    import oracle.apps.fnd.framework.webui.TransactionUnitHelper;
    import oracle.apps.fnd.framework.webui.beans.OAWebBean;
    import oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean;
    import oracle.apps.fnd.framework.webui.beans.layout.OAQueryBean;
    import oracle.apps.fnd.framework.webui.beans.message.OAMessageStyledTextBean;
    import oracle.apps.fnd.framework.webui.beans.message.OAMessageDateFieldBean;
    //import oracle.apps.fnd.framework.webui.beans.message.OAMessageTextInputBean;
    import oracle.apps.fnd.framework.webui.beans.table.OATableBean;
    import com.sun.java.util.collections.HashMap;
    import oracle.bali.share.util.IntegerUtils;
    * Controller for ...
    public class jobperfCO extends OAControllerImpl
    public static final String RCS_ID="$Header$";
    public static final boolean RCS_ID_RECORDED =
    VersionInfo.recordClassVersion(RCS_ID, "%packagename%");
    * Layout and page setup logic for a region.
    * @param pageContext the current OA page context
    * @param webBean the web bean corresponding to the region
    public void processRequest(OAPageContext pageContext, OAWebBean webBean)
    super.processRequest(pageContext, webBean);
    OAApplicationModule am = pageContext.getApplicationModule(webBean);
    // The following checks to see if the user navigated back to this page
    // without taking an action that cleared an "in transaction" indicator.
    // If so, we want to rollback any changes that she abondoned to ensure
    // they aren't left lingering in the BC4J cache to cause problems with
    // subsequent transactions. For example, if the user navigates to the
    //Create Review page where you start a "Create" transactio unit, then
    //navigastes back to this page using the browser Back button and selects
    // the Create Review button again, teh OA Framework detects this
    // Back button navigation and steps through processRequest() so this
    // code is executed before you try to Create another new Review.
    if (TransactionUnitHelper.isTransactionUnitInProgress(pageContext,"jobperfCreateTxn", false))
    am.invokeMethod("rollbackReview");
    TransactionUnitHelper.endTransactionUnit(pageContext,"jobperfCreateTxn");
    else if(TransactionUnitHelper.isTransactionUnitInProgress(pageContext,"jobperfUpdateTxn",false))
    am.invokeMethod("rollbackReview");
    TransactionUnitHelper.endTransactionUnit(pageContext,"jobperfUpdateTxn");
    * Procedure to handle form submissions for form elements in
    * a region.
    * @param pageContext the current OA page context
    * @param webBean the web bean corresponding to the region
    public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
    super.processFormRequest(pageContext, webBean);
    OAApplicationModule am;
    OADBTransaction oadbxn;
    am = pageContext.getRootApplicationModule();
    oadbxn = am.getOADBTransaction();
    if (pageContext.getParameter("Create") != null)
    //Navigate to teh "Create Review" page while retaining the AM.
    //Note the use of KEEP_MENU_CONTEXT as opposed to GUESS_MENU_CONTEXT
    //since we know the current tab should remain highlighted.
    pageContext.setForwardURL("OA.jsp?page=/lac/oracle/apps/lac/jobperf/webui/ReviewPG",
    null,
    OAWebBeanConstants.KEEP_MENU_CONTEXT,
    null,
    null,
    true, //Retain AM
    OAWebBeanConstants.ADD_BREAD_CRUMB_YES,
    OAWebBeanConstants.IGNORE_MESSAGES);
    else if ("update".equals(pageContext.getParameter(EVENT_PARAM)))
    String EmployeeNumber = pageContext.getParameter("EmployeeNumber");
    String Seq = pageContext.getParameter("Seq");
    //String EmployeeName = pageContext.getParameter("FullName");
    System.out.println("Update Selected");
    System.out.println(EmployeeNumber);
    //System.out.println(EmployeeName);
    System.out.println(Seq);
    oadbxn.putValue("EmployeeNumber",EmployeeNumber);
    oadbxn.putValue( "Seq",Seq);
    //oadbxn.putValue("EmployeeName",EmployeeName);
    HashMap params = new HashMap(2);
    // Replace the current employeeNumber request parameter value with "X"
    params.put("EmployeeNumber", EmployeeNumber);
    //params.put("EmployeeName", "EmployeeName");
    params.put("Seq", Seq);
    // IntegerUtils is a handy utility
    //params.put("EmployeeName", EmployeeName);
    //params.put("EmployeeNumber",IntegerUtils.getInteger(1));
    //params.put("EmployeeName",IntegerUtils.getInteger(2));
    //params.put("Seq",IntegerUtils.getInteger(2));
    // The user has clicked an "Update" icon so we want to navigate
    // to the first step of the multistep "Update Employee" flow.
    pageContext.setForwardURL("OA.jsp?page=/lac/oracle/apps/lac/jobperf/webui/UpdateReviewPG",
    null,
    OAWebBeanConstants.KEEP_MENU_CONTEXT,
    null,
    params, //mir null,
    true, // Retain AM
    OAWebBeanConstants.ADD_BREAD_CRUMB_YES, // Do not display breadcrumbs
    OAWebBeanConstants.IGNORE_MESSAGES);
    Below is the CO code for UPDATE page:
    /*===========================================================================+
    | Copyright (c) 2001, 2005 Oracle Corporation, Redwood Shores, CA, USA |
    | All rights reserved. |
    +===========================================================================+
    | HISTORY |
    +===========================================================================*/
    package lac.oracle.apps.lac.jobperf.server.webui;
    import oracle.apps.fnd.common.VersionInfo;
    import oracle.apps.fnd.framework.webui.OAControllerImpl;
    import oracle.apps.fnd.framework.webui.OAPageContext;
    import oracle.apps.fnd.framework.webui.beans.OAWebBean;
    import oracle.apps.fnd.framework.OAApplicationModule;
    import oracle.apps.fnd.framework.webui.OADialogPage;
    import oracle.apps.fnd.framework.webui.TransactionUnitHelper;
    import oracle.jbo.domain.Number;
    import oracle.apps.fnd.common.MessageToken;
    import oracle.apps.fnd.framework.OAApplicationModule;
    import oracle.apps.fnd.framework.OAException;
    import oracle.apps.fnd.framework.OAViewObject;
    import oracle.apps.fnd.framework.webui.OAWebBeanConstants;
    import java.io.Serializable;
    * Controller for ...
    public class ReviewUpdateCO extends OAControllerImpl
    public static final String RCS_ID="$Header$";
    public static final boolean RCS_ID_RECORDED =
    VersionInfo.recordClassVersion(RCS_ID, "%packagename%");
    * Layout and page setup logic for a region.
    * @param pageContext the current OA page context
    * @param webBean the web bean corresponding to the region
    public void processRequest(OAPageContext pageContext, OAWebBean webBean)
    // Always call this first
    super.processRequest(pageContext, webBean);
    // Put a transaction value indicating that the update transaction
    // is now in progress.
    TransactionUnitHelper.startTransactionUnit(pageContext,"jobperfUpdateTxn");
    String EmployeeNumber = pageContext.getParameter("EmployeeNumber"); //small e
    String Seq = pageContext.getParameter("Seq");
    System.out.println("Into ReviewUpdateCOUpdate IN Process Request values from Page Context");
    System.out.println(EmployeeNumber);
    //System.out.println(EmployeeName);
    System.out.println(Seq);
    // We'll use this at the end of the flow for a confirmation message.
    String EmployeeName = pageContext.getParameter("FullName");
    pageContext.putTransactionValue("FullName",EmployeeName);
    Serializable[] params = { EmployeeNumber,Seq}; //small e
    OAApplicationModule am = pageContext.getApplicationModule(webBean);
    // For the update, since we are using the same VO as teg "Details" page, we
    // can use the same initialization logic.
    System.out.println("Into ReviewUpdateCOUpdate IN Process Request");
    System.out.println(EmployeeNumber); //small e
    //System.out.println(EmployeeName);
    System.out.println(Seq);
    am.invokeMethod("initDetails", params);
    //am.invokeMethod("jobperfAMImpl.createReview");
    System.out.println("Into ReviewUpdateCOUpdate IN Process Request AFTER INITDETAILS");
    System.out.println(EmployeeNumber); //small e
    //System.out.println(EmployeeName);
    System.out.println(Seq);
    } // end processRequest()
    * Procedure to handle form submissions for form elements in
    * a region.
    * @param pageContext the current OA page context
    * @param webBean the web bean corresponding to the region
    public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
    {    //super.processFormRequest(pageContext, webBean);
    // Always call this first.
    super.processFormRequest(pageContext, webBean);
    System.out.println("Into ReviewUpdateCOUpdate INTO Process FORM before apply Request");
    OAApplicationModule am = pageContext.getApplicationModule(webBean);
    // Pressing the "Apply" button means the transaction should be validated
    // and committed.
    if (pageContext.getParameter("Apply") != null)
    // Generally in the tutorial application and the labs, we've illustrated
    // all BC4J interaction on the server (except for the AMs, of course). Here,
    // we're dealing with the VO directly so the comments about the reasons
    // why we're obtaining values from the VO and not the request make sense
    // in context.
    OAViewObject vo = (OAViewObject)am.findViewObject("jobperfVO1");
    // Note that we have to get this value from the VO because the EO will
    // assemble it during its validation cycle.
    // For performance reasons, we should generally be calling getEmployeeName()
    // on the EmployeeFullVORowImpl object, but we don't want to do this
    // on the client so we're illustrating the interface-appropriate call. If
    // we implemented this code in the AM where it belongs, we would use the
    // other approach.
    String EmployeeName = (String)vo.getCurrentRow().getAttribute("FullName");
    // We need to get a String so we can pass it to the MessageToken array below. Note
    // that we are getting this value from the VO (we could also get it from.
    // the Bean as shown in the Drilldwon to Details lab) because the item style is messageStyledText,
    // so the value isn't put on the request like a messaqeTextInput value is.
    String EmployeeNumber = (String)vo.getCurrentRow().getAttribute("EmployeeNumber");
    String Seq = (String)vo.getCurrentRow().getAttribute("Seq");
    //ma String employeeNum = String.valueOf(employeeNumber.intValue());
    //ma Number employeeNumber = (Number)vo.getCurrentRow().getAttribute("EmployeeNumber");
    //ma String employeeNum = String.valueOf(employeeNumber.intValue());
    // Simply telling the transaction to commit will cause all the Entity Object validation
    // to fire.
    // Note: there's no reason for a developer to perform a rollback. This is handled by
    // the framework if errors are encountered.
    System.out.println("Into ReviewUpdateCOUpdate IN Process Form Request");
    System.out.println(EmployeeNumber);
    //System.out.println(EmployeeName);
    System.out.println(Seq);
    am.invokeMethod("apply");
    // Indicate that the Create transaction is complete.
    TransactionUnitHelper.endTransactionUnit(pageContext, "jobperfUpdateTxn");
    // Assuming the "commit" succeeds, navigate back to the "Search" page with
    // the user's search criteria intact and display a "Confirmation" message
    // at the top of the page.
    MessageToken[] tokens = { new MessageToken("EMP_NAME", EmployeeName),
    new MessageToken("EMP_NUMBER", EmployeeNumber) };
    OAException confirmMessage = new OAException("PER", "LAC_FWK_TBX_T_EMP_CREATE_CONF", tokens,
    OAException.CONFIRMATION, null);
    // Per the UI guidelines, we want to add the confirmation message at the
    // top of the search/results page and we want the old search criteria and
    // results to display.
    pageContext.putDialogMessage(confirmMessage);
    pageContext.forwardImmediately(
    "OA.jsp?page=/lac/oracle/apps/lac/jobperf/webui/jobperfPG",
    null,
    OAWebBeanConstants.KEEP_MENU_CONTEXT,
    null,
    null,
    true, // retain AM
    OAWebBeanConstants.ADD_BREAD_CRUMB_NO);
    else if (pageContext.getParameter("Cancel") != null)
    am.invokeMethod("rollbackReview");
    // Indicate that the Create transaction is complete.
    TransactionUnitHelper.endTransactionUnit(pageContext, "jobperfUpdateTxn");
    pageContext.forwardImmediately("OA.jsp?page=/lac/oracle/apps/lac/jobperf/webui/jobperfPG",
    null,
    OAWebBeanConstants.KEEP_MENU_CONTEXT,
    null,
    null,
    true, // retain AM
    OAWebBeanConstants.ADD_BREAD_CRUMB_NO);
    } // end processFormRequest()
    Message was edited by:
    user617353

    Hi,
    I created a new method(initQueryUpdate) in the VOImpl(here I am also setting the where clause).
    Also created a method(initDetailsUpdate) in the AMImpl and I am calling the vo.initQueryUpdate in AM code.
    I am also passing the parameters to method via a call in the ReviewupdateCO(am.invokeMethod("initDetailsUpdate", params);).
    It is compiling the entire jpr without any errors.
    When I Search an employee and clisk on the update button then I am geting the following error.
    I tried to pass parameters by putting them on the update button property with the action type of "fireAction.
    I also tried by making the actiontype "none" and putting the forwarding apge with parameters in the "Destination URL" property and still I get the error message when I run it. Any one has any clues.
    Thanks in Advance,
    Ali
    Exception Details.
    oracle.apps.fnd.framework.OAException: oracle.jbo.SQLStmtException: JBO-27122: SQL error during statement preparation. Statement: SELECT * FROM (SELECT
    jobperfEO.EMPLOYEE_NUMBER,
    jobperfEO.FULL_NAME,
    jobperfEO.PERSON_ID,
    jobperfEO.ASSIGNMENT_ID,
    jobperfEO.PERIOD_START_DATE,
    jobperfEO.PERIOD_END_DATE,
    jobperfEO.REVIEW_DATE,
    jobperfEO.REVIEW_TYPE,
    jobperfEO.REVIEW_STATUS,
    jobperfEO.JOB_CLASSIFICATION,
    jobperfEO.DISTRICT,
    jobperfEO.SUPERVISOR_ID,
    jobperfEO.SUPERVISOR_EMPLOYEE_NUMBER,
    jobperfEO.SUPERVISOR_NAME,
    jobperfEO.QUALITY_OF_WORK,
    jobperfEO.QUANTITY_OF_WORK,
    jobperfEO.JOB_KNOWLEDGE,
    jobperfEO.EFFICIENCY,
    jobperfEO.RELATING_TO_OTHERS,
    jobperfEO.INITIATIVE,
    jobperfEO.RELIABILITY,
    jobperfEO.HOUSEKEEPING_SAFETY,
    jobperfEO.OVERALL_PERFORMANCE,
    jobperfEO.SUGGESTED_IMPROVEMENT_AREAS,
    jobperfEO.EMPLOYEE_COMMENTS,
    jobperfEO.CREATED_BY,
    jobperfEO.CREATION_DATE,
    jobperfEO.LAST_UPDATED_BY,
    jobperfEO.LAST_UPDATE_DATE,
    jobperfEO.SEQ,
    jobperfEO.SECOND_SUPRV_EMPNO,
    jobperfEO.SECOND_SUPRV_FULLNAME
    FROM apps.LAC_CM_PERF_REVIEW jobperfEO) QRSLT WHERE (SEQ = :1 AND ( UPPER(EMPLOYEE_NUMBER) like :3 AND (EMPLOYEE_NUMBER like :4 OR EMPLOYEE_NUMBER like :5 OR EMPLOYEE_NUMBER like :6 OR EMPLOYEE_NUMBER like :7))) ORDER BY EMPLOYEE_NUMBER ASC
         at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:891)
         at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:865)
         at oracle.apps.fnd.framework.OAException.wrapperInvocationTargetException(OAException.java:988)
         at oracle.apps.fnd.framework.server.OAUtility.invokeMethod(OAUtility.java:211)
         at oracle.apps.fnd.framework.server.OAUtility.invokeMethod(OAUtility.java:153)
         at oracle.apps.fnd.framework.server.OAApplicationModuleImpl.invokeMethod(OAApplicationModuleImpl.java:749)
         at lac.oracle.apps.lac.jobperf.server.webui.ReviewUpdateCO.processRequest(ReviewUpdateCO.java:116)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:587)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
         at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(OAPageLayoutHelper.java:1136)
         at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(OAPageLayoutBean.java:1569)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
         at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(OAFormBean.java:385)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
         at oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(OABodyBean.java:353)
         at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2335)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1734)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:508)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:429)
         at _OA._jspService(OA.jsp:34)
         at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
         at com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:209)
         at com.evermind.server.http.GetParametersRequestDispatcher.forward(GetParametersRequestDispatcher.java:189)
         at com.evermind.server.http.EvermindPageContext.forward(EvermindPageContext.java:199)
         at _OA._jspService(OA.jsp:39)
         at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
         at java.lang.Thread.run(Thread.java:534)
    ## Detail 0 ##
    java.sql.SQLException: ORA-01006: bind variable does not exist
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
         at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
         at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:583)
         at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1986)
         at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1144)
         at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2548)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2933)
         at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:650)
         at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:578)
         at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:631)
         at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:518)
         at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:3375)
         at oracle.jbo.server.OAJboViewObjectImpl.executeQueryForCollection(OAJboViewObjectImpl.java:828)
         at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQueryForCollection(OAViewObjectImpl.java:4507)
         at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:574)
         at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:544)
         at oracle.jbo.server.ViewRowSetImpl.executeDetailQuery(ViewRowSetImpl.java:619)
         at oracle.jbo.server.ViewObjectImpl.executeDetailQuery(ViewObjectImpl.java:3339)
         at oracle.jbo.server.ViewObjectImpl.executeQuery(ViewObjectImpl.java:3326)
         at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQuery(OAViewObjectImpl.java:441)
         at lac.oracle.apps.lac.jobperf.server.jobperfVOImpl.initQueryUpdate(jobperfVOImpl.java:77)
         at lac.oracle.apps.lac.jobperf.server.jobperfAMImpl.initDetailsUpdate(jobperfAMImpl.java:129)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at oracle.apps.fnd.framework.server.OAUtility.invokeMethod(OAUtility.java:190)
         at oracle.apps.fnd.framework.server.OAUtility.invokeMethod(OAUtility.java:153)
         at oracle.apps.fnd.framework.server.OAApplicationModuleImpl.invokeMethod(OAApplicationModuleImpl.java:749)
         at lac.oracle.apps.lac.jobperf.server.webui.ReviewUpdateCO.processRequest(ReviewUpdateCO.java:116)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:587)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
         at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(OAPageLayoutHelper.java:1136)
         at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(OAPageLayoutBean.java:1569)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
         at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(OAFormBean.java:385)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
         at oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(OABodyBean.java:353)
         at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2335)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1734)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:508)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:429)
         at _OA._jspService(OA.jsp:34)
         at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
         at com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:209)
         at com.evermind.server.http.GetParametersRequestDispatcher.forward(GetParametersRequestDispatcher.java:189)
         at com.evermind.server.http.EvermindPageContext.forward(EvermindPageContext.java:199)
         at _OA._jspService(OA.jsp:39)
         at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
         at java.lang.Thread.run(Thread.java:534)
    java.sql.SQLException: ORA-01006: bind variable does not exist
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
         at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
         at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:583)
         at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1986)
         at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1144)
         at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2548)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2933)
         at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:650)
         at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:578)
         at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:631)
         at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:518)
         at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:3375)
         at oracle.jbo.server.OAJboViewObjectImpl.executeQueryForCollection(OAJboViewObjectImpl.java:828)
         at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQueryForCollection(OAViewObjectImpl.java:4507)
         at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:574)
         at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:544)
         at oracle.jbo.server.ViewRowSetImpl.executeDetailQuery(ViewRowSetImpl.java:619)
         at oracle.jbo.server.ViewObjectImpl.executeDetailQuery(ViewObjectImpl.java:3339)
         at oracle.jbo.server.ViewObjectImpl.executeQuery(ViewObjectImpl.java:3326)
         at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQuery(OAViewObjectImpl.java:441)
         at lac.oracle.apps.lac.jobperf.server.jobperfVOImpl.initQueryUpdate(jobperfVOImpl.java:77)
         at lac.oracle.apps.lac.jobperf.server.jobperfAMImpl.initDetailsUpdate(jobperfAMImpl.java:129)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at oracle.apps.fnd.framework.server.OAUtility.invokeMethod(OAUtility.java:190)
         at oracle.apps.fnd.framework.server.OAUtility.invokeMethod(OAUtility.java:153)
         at oracle.apps.fnd.framework.server.OAApplicationModuleImpl.invokeMethod(OAApplicationModuleImpl.java:749)
         at lac.oracle.apps.lac.jobperf.server.webui.ReviewUpdateCO.processRequest(ReviewUpdateCO.java:116)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:587)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
         at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(OAPageLayoutHelper.java:1136)
         at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(OAPageLayoutBean.java:1569)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
         at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(OAFormBean.java:385)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
         at oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(OABodyBean.java:353)
         at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2335)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1734)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:508)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:429)
         at _OA._jspService(OA.jsp:34)
         at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
         at com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:209)
         at com.evermind.server.http.GetParametersRequestDispatcher.forward(GetParametersRequestDispatcher.java:189)
         at com.evermind.server.http.EvermindPageContext.forward(EvermindPageContext.java:199)
         at _OA._jspService(OA.jsp:39)
         at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
         at java.lang.Thread.run(Thread.java:534)

  • BMT and transaction timeout

    Hello,
    Does anybody knows what the behavior should be for a Session EJB with BMT (using JTA) after a transaction timeout? Does the container performs a database rollback for you immediately after the time-out event? I’ve noticed that JBoss does not perform a rollback but Web does. What do the J2EE specs say what should happen?
    We are experiencing database locks in an Oracle database caused by ‘hanging’ JTA-transactions which aren’t removed after a timeout. An application server restart will remove them. We are trying to find the cause, there fore I’am posting this message.
    Regards,
    Marteyn Heijlaerts

              "Laurel Neustadter" <[email protected]> wrote:
              >
              >Hi:
              >
              >The WLS 6.0 documentation states that for a CMT bean, one specifies the
              >transaction
              >timeout in weblogic-ejb-jar.xml, and for a BMT bean, one specifies the
              >transaction
              >timeout via UserTransaction.setTransactionTimeout().
              >
              >You also set a transaction timeout attribute at the domain level. How
              >does the
              >domain level attribute work into all of this? How is it used?
              >
              >For example, if a transaction timeout value is not specified at the bean
              >level,
              >will the domain level value be used?
              >
              >Laurel
              Yes, the domain level timeout is the default.
              It is overridden by any setting at the EJB level. This in turn
              can be overridden by the client calling the EJB, if the client
              starts a transaction and uses
              transactionManager.setTransactionTimeout()
              

  • How to use embeddable EJB container (Java EE 6 / EJB 3.1) on Mac OS?

    To my understanding, the intent of the embeddable EJB 3.1 container is - among others - to support out-of-container testing. I've created a JUnit test case that uses glassfish embeddable for integration testing of ejb 3.1 Light ejbs. I run the tests using Maven.
    I have one general problem and one problem specific to Mac OS (I'm not able to use the embeddable container at all on Mac OS).
    1. First the general problem: the ejb container does not inject or publish classes that are on the test class-path only:
    src>main>java>MyEjb.class
    src>test>java>MyTestEjb.class
    The test case looks like this:
    public class TestCase1b {
         static EJBContainer container;
         @BeforeClass
         public static void initEjbContainer() {
              container = EJBContainer.createEJBContainer();
              for ( Object property : System.getProperties().keySet() ) {
              System.out.print(property + " : ");
              System.out.println(System.getProperty((String)property));
         @Test
         public void canTestWithTransaction() throws NamingException, NotSupportedException, SystemException {
              Context ctx = container.getContext();
              OrderServiceTesterEjb orderServiceTester = (OrderServiceTesterEjb) ctx
                        .lookup("java:global/classes/OrderServiceTesterEjb");
              Assert.assertNotNull(orderServiceTester.testCreateOrderWithTransaction());
         @AfterClass
         public static void closeEjbContainer() {
              container.close();
    The idea with a test-ejb is to mimic the way I typically perform junit integration testing with Spring: the test database i preloaded with test data. Each test-method of the junit test case starts a transaction, invokes the service, evaluates the state of the database and finally performs a rollback. My idea was to mimic that by creating a test ejb (Stateless, REQUIRES_NEW), that injects the EJB to test, calls the method to test, evaluates the result or db state and finally sets rollbackonly before returning. The problem is that the test case can lookup ejbs in src/main/java, but not the "test" ejbs in src/test/java. My workaround is to include the test-EJBs in src/main/java which I think is not acceptable.
    2. Next the Mac-problem:
    The Mac OS JDK 1.6 contains version 1.0 of javax.annotation (jsr 250). EJBs developed with Java EE 6 depends on version 1.1 of javax.annotation. Specifically, one typically need @Resource(lookup=... and @DataSourceDefinition of javax.annotation.sql which are both missing in the JDK. I can compile my EJBs by adding the javaee-api-6.0.jar library to my classpath. But when running unit tests with maven (as described above), a runtime error is reported, stating that the lookup-property of the @Resource annotation is undefined. This is logical, since the boot classpath should have precedence. So I added javaee-api-6.0.jar to the lib/endorsed directory of the jre. Unfortunetely, this triggers a segmentation fault of the Mac OS JVM when running the test. I have no other workaround than switching to windows. Any help / hints are much appreciated.
    /Johan

    Just as an update, we're soon to release the WLS 11g R1 PS2 update, which will contain WLS 10.3.3 just to confuse things.
    As part of that, we're distributing for the first time, an additional .zip version of WLS to make it easier for developers.
    The zip file distribution has no GUI installer -- it's a simple case of unzip, run a script it provides, then start the server.
    The zip file distribution has been specifically tested on Mac OS X and the WLS config/domain scripts automatically adjust as necessary for the Mac OS X java environment.
    Once the zip file distribution is available, we hope that developing against WLS on Mac OS X (and Windows/Linux) will be an easier task.
    -steve-

  • Ora-01453

    hi,
    my development team mailed me that they are getting an error while uploading a template.
    i am not understandng the exact reason why they are receiving this error.the error is listed below
    ORA-01453: SET TRANSACTION must be first statement of transaction
    Unable to begin transaction" for all the templates.
    can any one suggest me regarding this error.
    thanks in advance,
    kishore.

    All the statments should be commited/Rollbacked before you SET the transaction option. Check out wheter any DML operatiion happened before you Change the transaction level.. if so then
    1. Perform commit/rollback based on the requirement before you SET the transaction OR
    2. Move the SET TRANSACTION code prior to DML statement

Maybe you are looking for

  • To Find Include for Enhancement for Particular Transaction

    Hi Friends, Could You Plz assist me... How to find out the User Exit for Particular Transaction. Like for ME23N, we have a Include RV64A701     OR       for VA01, we have the include MV45AFZZ and so on for every Transaction, which we believe as the U

  • Adobe Premiere has encountered a serious error and needs to shut down.

    I encounter this every once in awhile and it's super irritating. I've cleared the cache a few times and even created new project files and saved them elsewhere to try and avoid the issue. Are there any updates or patches available? Premiere Pro CS6 6

  • Anyway to set up automatic saving or recover the project when FCP quit

    I am rather perturbed at the fact that the last 5 hours or so of work has gone up in smoke. Not the biggest deal in the world, because I remember most everything. However, is there a way to save automatically or even recover the file before the app q

  • To stop scroll bars appearing around iView

    Hello all, I've placed a small iVIew in the tool area of the framework page, below the masthead, above the TLN; right beside the KM search iView. The user has noticed that when he doesn't have IE fully maximized, if he makes the window small enough t

  • EDI Output type generating multiple IDOCs

    Hi All, For one of the Business requirement we have created a Delivery EDI output type and output type is processed via Report RSNAST00 in a batch job. The delivery document shows only one output type prcossed still, mutiple idocs are being sent out