Child Form Validation

Hi All,
I have a child form, which contains the a lookup field containing multiple entries.
The scenario is the user should not select the same value multiple times for the same child form field.
Example: If the child form has a field "State" with the number of states in the lookup. Need to validate and prompt the user if trying to select the same state twice.
Is there any way to achieve this without tweaking the child form displaying JSP?
Is there any way to achieve this by the usage of Lookup.Query?

Hi,
I am having one Lookup field in my child form with name "Country" and its values are "India","Aus","Pak".
Consider user is selecting "India" from Lookup field and click on Add. Now you can see in Admin Console one row with value "India". Then the user selects the same value "India" and click on Add. At that time I need to validate and should not allow selection of "India" more than once.
I think Entity Adapter in Pre-insert of Data Object Manager of Child form will execute before the value added to child form table.
In my case, I need to do validation while clicking on Add button.
How to achieve this?
Correct me If I am wrong...
Edited by: S.K.N on Jun 15, 2010 11:41 AM

Similar Messages

  • Custom Target Reconciliation with child form entries in OIM 11g

    Hello experts,
    I have developed custom scheduler code to reconcile users from target system to OIM. In this code I am using the API createReconciliationEvent(java.lang.String psObjectName, java.util.Map poData, boolean pbFinishEvent). If the reconciled user does not have any child form entries(like roles and groups) then the user account is linked to OIM user profile but if the user has child form entries then user is not getting reconciled to OIM. In the logs it says...
    oracle.iam.platform.utils.SuperRuntimeException: -104: Error occurred in XL_SP_RECONEVALUATEUSER while processing Event No 849 Error occurred in XL_SP_RECONREQDATACHECK while processing Event 849 'Event Received' is an invalid event status. Valid event states are Data Received,Data Validation Failed,Being Re-evaluated,Being Re-tried
    at oracle.iam.reconciliation.dao.ReconActionDao.executeUserMatch(ReconActionDao.java:393)
    at oracle.iam.reconciliation.impl.UserHandler.process(UserHandler.java:64)
    at oracle.iam.reconciliation.impl.ActionEngine.processEvent(ActionEngine.java:194)
    at oracle.iam.reconciliation.impl.ReconOperationsServiceImpl.processReconciliationEvent(ReconOperationsServiceImpl.java:982)
    at oracle.iam.reconciliation.api.ReconOperationsServiceEJB.processReconciliationEventx(Unknown Source)
    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:597)
    at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
    at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
    at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at $Proxy334.processReconciliationEventx(Unknown Source)
    at oracle.iam.reconciliation.api.ReconOperationsService_emc07d_ReconOperationsServiceRemoteImpl.__WL_invoke(Unknown Source)
    at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:40)
    Here is my code...
    public void reconCall(String ResourceObject, Hashtable mUserDetail)
    ReconOperationsService tcreconObj =null;
    EventAttributes eventattr= new EventAttributes();
    ArrayList roles=roleOfUser(mUserDetail.get("CommanName").toString(),mUserDetail.get("OrganizationUnit").toString());
    ArrayList groups=groupOfUser(mUserDetail.get("CommanName").toString(),mUserDetail.get("OrganizationUnit").toString());
    if((roles.size()==0)&& (groups.size()==0))
    eventattr.setEventFinished(true);
    else
    eventattr.setEventFinished(false);
    try
    LOGGER.info("In com.gapp.recon.tasks.ReconAllUsers reconCall()");
    LOGGER.info("Creating object of Thor.API.Operations.tcReconciliationOperationsIntf");
    tcreconObj = Platform.getService(oracle.iam.reconciliation.api.ReconOperationsService.class);
    LOGGER.info("Creating reconcilation event");
    long lnreckey = tcreconObj.createReconciliationEvent(ResourceObject, mUserDetail, eventattr);
    if(roles.size()==0)
    LOGGER.info("there are no roles for the user");
    if(roles.size()>0)
    tcreconObj.providingAllMultiAttributeData(lnreckey, "RoleName", true);
    LOGGER.info("Iterating roles");
    LOGGER.info(roles.toString());
    for(int k=0; k <roles.size(); k++)
    LOGGER.info("Iteration "+k);
    HashMap multiroles=new HashMap();
    LOGGER.info("Adding role to hashmap");
    multiroles.put("RoleName", roles.get(k));
    LOGGER.info(multiroles.toString());
    long j= tcreconObj.addMultiAttributeData(lnreckey, "RoleName", multiroles);
    LOGGER.info("addMultiAttributeData key "+j);
    if(groups.size()==0)
    LOGGER.info("There Are No Groups For This User");
    if(groups.size()>0)
    tcreconObj.providingAllMultiAttributeData(lnreckey, "GroupName", true);
    LOGGER.info("Iterating groups");
    LOGGER.info(groups.toString());
    for(int k=0; k <groups.size(); k++)
    LOGGER.info("Iteration "+k);
    HashMap multigroups=new HashMap();
    LOGGER.info("Adding group to hashmap");
    multigroups.put("GroupName", groups.get(k));
    LOGGER.info(multigroups.toString());
    long j= tcreconObj.addMultiAttributeData(lnreckey, "GroupName", multigroups);
    LOGGER.info("addMultiAttributeData key "+j);
    // LOGGER.info("executing processReconciliationEvent");
    tcreconObj.processReconciliationEvent(lnreckey);
    //LOGGER.info("executing finishReconciliationEvent");
    // tcreconObj.finishReconciliationEvent(lnreckey);
    // LOGGER.info("executing updateScheduletaskattribute");
    }Pls Help.
    Thanks

    You gotta specify your child table recon-field in the process definition mappings as a Key Field. Refer OOTB AD connector and check:
    Process Definition -> AD User ->Reconciliation Field Mappings -> memberOf

  • Help with child forms

    Hi,
    I am trying something very simple to learn how child forms work but was not very successful so far. I am hoping one of the experts on this forum can shed some light on what I am doing wrong.
    I did the following:
    1) Created a simple Resource Object.
    2) Created 2 process forms with one of them designated as a child to the other one.
    3) Created a simple Process Task Adapter which simply prints the assigned variables data out to STDOUT
    4) Created a Process Definition and added a task called Create User and used the adapter created in previous step.
    5) In the integration tab, I did the mapping of both the parent and child form data to the adapter variables.
    Whenever I assign the RO to an user, I keep getting the following error.
    When ever I go and assign the RO to the user
    19:05:17,014 ERROR [DATABASE] select UD_RO3_CF_ATTR1 from UD_RO3_CF where UD_RO3_CF_KEY =
    java.sql.SQLException: ORA-00936: missing expression
    I also tried the following. In the general tab, from the child table drop down, I selected the child form name and for trigger type, selected insert. When I do that, I get the following error..
    In browser, I get
    DOBJ.GEN_ERROR
    Cannot schedule a task for child table change, schedule item save failed
    In the logs, I see the following exception..
    12:35:57,718 INFO [DATABASE] Class/Method: tcDataBase/setTransaction: ##########setTransaction getting called from: #######
    12:35:57,733 ERROR [APIS] Class/Method: tcFormInstanceOperationsBean/addProcessFormChildData encounter some problems: maoErrors:Cannot schedule a task for child table change, schedule item save failed
    12:35:57,749 ERROR [APIS] Class/Method: tcFormInstanceOperationsBean/addProcessFormChildData encounter some problems: Error occurred while validating password policy '
    12:35:57,749 ERROR [APIS] Class/Method: tcFormInstanceOperationsBean/addProcessFormChildData encounter some problems: Cannot schedule a task for child table change, schedule item save failed
    Thor.API.Exceptions.tcAPIException: Cannot schedule a task for child table change, schedule item save failed
    at com.thortech.xl.ejb.beansimpl.tcFormInstanceOperationsBean.addProcessFormChildData(Unknown Source)
    at com.thortech.xl.ejb.beansimpl.tcFormInstanceOperationsBean.addProcessFormChildData(Unknown Source)
    at com.thortech.xl.ejb.beans.tcFormInstanceOperationsSession.addProcessFormChildData(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    Thank you very much

    The details of a child table entry are available only when you define the process task as a child task trigger. You can define the task to trigger based on insert, update, or delete from child table. There is a drop down on the process task configuration screen. When the trigger happens on the child table entry, this is where you can map the value of the child table entry.
    You would want to configure your provisioning process definition to have 1 task for create user, and another task for adding an entry to the child table, and another entry for deleting an entry from the child table. On the delete, you'll want to check the "Old Value" checkbox for the child table mapping.
    -Kevin

  • Child forms are not getting displayed when user is linked through the targe

    I have provisioned the users to OID through OIM and we have the three child forms(USRB_ROLB,USRB_GRPD,USRB_NBNB) which work well when the user flow normally. Our normal flow implemented is that user comes from OHCM and get created in OIM and then get provisioned to AD and OID. We have also implemented the OID target recon. When we create the user directly in OID and then create the user through normal flow ie from OHCM to OIM) as expected the create user task fail as the user is already present in the OID (target system). Then after running the OID target recon the user is getting linked but its not showing the child forms in the new process form created after running the target recon.
    Please let me know if you require more information.
    Please let me know if anybody has encountered this issue and the steps to resolve the same

    what happened when you run target recon without creating user in oim(or just create user in oim without access policy and then run target recon)? Is this work fine?
    If no means you have to verify your child table mapping. But if above work then this the Produce/connector issue and may you need to raise SR

  • Tabular Form Validation not working in tabular form APEX 4.0

    Hi,
    I am using APEX 4.0. I have a tabular form with Tabular form validation done with it.
    Item not null is the validation.. so if I dont type any value in the any of the fields in the tabular form and press the Submit button, the first time error is shown... but when I click the Submit button again, with still the empty rows the page is submitted.
    How to resolve this issue?
    Edited by: Suzi on Oct 5, 2010 11:13 AM

    Look at this thread - Re: Validations of tabular forms in 4.0

  • Populating the Lookup values in AD Child Form based logged in user

    HI,
    Below is the Lookup code(AD Groups) format.
    Codekey , Decodekey
    IT-Development , IT-Development
    IT-Testing , IT-Testing
    IT-Production , IT-Production
    HR-system , HR-system
    HR-Finance , HR-Finance
    My requirement is I need to filter the data being presented in the lookup according to the logged in user in ad child form,
    If i am logged in as xelsysadm the lookup presents all groups.
    If i am logged in as IT administroter the lookup presents only the IT Related groups(EX:IT-Development,IT-Testing....).
    If i am logged in as HR administroter the lookup presents only the HR Related groups(EX:HR-System,HR-Finance...).
    like this we have contains so many administrators.
    We are desiding the administrators based on user form field.
    The Field contains the value like HR-Related,IT-Information Technology.....
    How can i achive this?
    Thanks in advance.
    Edited by: 790561 on 4/12/2011 17:48
    Edited by: 790561 on 5/12/2011 12:02

    Hi Rajiv,
    Thank you for quick reply,
    When i am login as IT administrator and i provisioned user to AD it showing the IT Related groups in ad child form based on your Suggestion.
    If i logout and login as a HR administrator and i edit the child process form of the same user still its showing IT Related Groups only.If I revoke and provision user to ad again with HR administrator this time its showing HR Related groups in AD Child form.
    I think based on the requester its showing the values.
    But i want to filter groups based on logged in user.
    EX:If i login as IT administrator and provision the user to AD in Child form its showing the IT Related groups only its correct.
    If I logout and login as HR administrator and i edit the same user AD Child form its showing the IT related groups only its not correct.this time it shows only HR Related.
    Any solution....
    Thanks in advance.

  • Populating the Lookup values in AD Child Form

    HI,
    Below is the Lookup code format.
    Codekey , Decodekey
    IT-Development , IT-Development
    IT-Testing , IT-Testing
    IT-Production , IT-Production
    HR-system , HR-system
    HR-...... , HR-......
    HR-...... , HR-.......
    In AD Process Form one of the field containing the valuee like " IT","HR".
    My requirement is if I select the "IT" in My AD peocess form field value.....In AD child form lookup field Shows values only Starts with "IT".Below is the sample.
    IT-Development , IT-Development
    IT-Testing , IT-Testing
    IT-Production , IT-Production
    If I select the "HR" in My peocess form field value.....In AD child form lookup field Shows values only Starts with "HR".Below is the sample.
    HR-...... , HR-......
    HR-...... , HR-.......
    How can i achive this?
    Thanks in Advance.
    Edited by: 790561 on 18/09/2011 19:52
    Edited by: 790561 on 18/09/2011 21:34
    Edited by: 790561 on 19/09/2011 14:22

    Hi,
    Thanks for Reply,
    my exact requirement is as followes,
    In my environment for each department(IT,HR) having one administrator(IT Administrator,HR Administrator).
    If login as a IT Administrator and at the time of provisioning user to "AD" in Child form lookup code only shows IT Related data as below...
    IT-Development , IT-Development
    IT-Testing , IT-Testing
    IT-Production , IT-Production
    If login as a HR Administrator and at the time of provisioning user to "AD" in Child form lookup code only shows HR Related data as below...
    HR-...... , HR-......
    HR-...... , HR-.......
    How can i achive this?
    Thanks in advance.
    Edited by: 790561 on 19/09/2011 19:20
    Edited by: 790561 on 19/09/2011 21:20

  • Is there a way to bypass the form Validation

    I'm getting really upset with the Coldfusion built-in form validation for any HTML formfield ending by _date , _required, _time and so on...
    My application proposes to the users to create some Properties for an object and later on to modify the values for all these properties.
    I've got a piece of code building dynamically some form fields named just like the properties (by a simple cfloop on a DB query getting the property list).
    And a registering page to records the new value in the DB.
    But it crashes onto the classical "
    Form entries are incomplete or invalid.
    I can't control what the users set as property name (one of them was Checklist_required).
    Is there any way to prevent this error by disabling this auto validation ?
    (I'd like to avoid having to rename any field dynamically created and rename any forms variables before registering them on the DB : it's just NO WAY for me to rename the properties created by the users)

    Fober1, that's not how it works.  It's pretty much the ultimate example of the disjoint between how HTML forms work and how the naive CFML Cfform / cfinput design wished they work.
    When a request is being processed by the coldfusion server, it just looks at the list of FORM (POST) variable names (whether it came from cfform or not; URL/GET params are exempt), and for those with certain suffixes (_date, _required, etc.), and it assumes their existence is intended to request validation another field without that suffix.  It doesn't actually know or care whether form submission, nor the HTML rendered in the user's browser, actually came from "cfform" or "cfinput".   The composition of the request that comes in (when a user clicks on "submit", or a hacker uses any tool imaginable) is out of the server's hands.  The cfform code is not used during form submission processing, because the receiving template (the form action="this_one.cfm") doesn't even have to be the same template that has the cfform in it. There could be multiple conflicting cfforms directing users to request the same template on a single site, with or without the validation, even without considering what a whole other person might decide to send to your server.
    The fact that it can work as intended for a typical user is irrelevant, because the purpose of validation is to deal with the atypical situation.  A malicious or merely mischievous user that wanted to circumvent the validation would simply modify a copy of the page to leave out the "validation request" fields.    For the developer to truly validate the input, additional code must be written, making the feature not only inadequate, but a complete waste of time.  There absolutely should be a way to disable it at worst; Ideally, it would be taken out of coldfusion completely.  It's not only useless, it's a security risk, wooing programmers to write code that doesn't do what they think it does.
    The error message it gives isn't so great, either, and it's a pity that it can't show more than one validation message at a time, either.  If more than one input is invalid, you could end up going through one round after another of submit + back button.
    edit: I forgot to add the other important reason that this feature should never have existed: It is a nuisance to everyone else who doesn't want to use it at all, too!  Those suffixes simply couldn't have been a worse choice, colliding with probably thousands of peoples' variable names.  Why not "*_cfval_date" "*_cfval_time" etc?

  • Form validation working on one page, but not the other....

    Hope someone can help with this.
    I have a page below with a load of contact forms which all work fine :
    http://www.goodsafariguide.com/judges/judges.php
    I've trued to recreate (admittedly mostly by saving as....) the same functionality here :
    http://www.goodsafariguide.com/awardssite/judges/
    They do work when fulled in correctly, but there's a glitch with the validation.
    Basically when you fill in a form incorrectly, the page reloads, with the form's accordion closed. When you open it up, its showing the ugly looking error at the top of the form.
    Any ideas what's causing it to act like this, as opposed to the way it works in the first link?
    Thanks.

    Iain71 wrote:
    I've trued to recreate (admittedly mostly by saving as....) the same functionality here :
    http://www.goodsafariguide.com/awardssite/judges/
    They do work when fulled in correctly, but there's a glitch with the validation.
    When looking at the source code I note that - unlike the first page - this one doesn´t contain any references to the ADDT form validation libraries ("../includes/tng/scripts/FormValidation.js" and "../includes/tng/scripts/FormValidation.js.php"), meaning that the validation can´t work.
    Cheers,
    Günter

  • Child form calling a method on it's parent's class.

    I am developing a form-based application. There is one root
    form called "Application" and a few child forms off the root (e.g.,
    Login, CustView). I would like the sibling forms to be able to pass
    contol to each other (e.g., after successful login, I want to make
    Login invisible and CustView visible).
    I wanted the root form to control this interaction, but I'm
    not sure how events in child can be handled in the parent. This is
    a common technique, but in this case, the parent doesn't explicitly
    instantiate the child, so I can't just pass a reference to the
    parent to the child's constructor. I can use this.parentForm to get
    a reference to the parent form, but I can't seem to find the
    parent's methods, just it's gui elements (i.e.,
    this.parentForm.parentMethod() doesn't work).
    Can some tell me how to do this? I am considering a
    FormManager class, which is a singleton class that each form can
    registers with and can use to toggle the visibility of itself and
    its siblings, but I wanted to see if there was an easier way to
    access methods on the class instance associated a parent's form.
    Any suggestions?
    Andy

    "agorman" <[email protected]> wrote in
    message
    news:e2163h$4na$[email protected]..
    >I am developing a form-based application. There is one
    root form called
    > "Application" and a few child forms off the root (e.g.,
    Login, CustView).
    > I
    > would like the sibling forms to be able to pass contol
    to each other
    > (e.g.,
    > after successful login, I want to make Login invisible
    and CustView
    > visible).
    >
    > I wanted the root form to control this interaction, but
    I'm not sure how
    > events in child can be handled in the parent. This is a
    common technique,
    > but
    > in this case, the parent doesn't explicitly instantiate
    the child, so I
    > can't
    > just pass a reference to the parent to the child's
    constructor. I can use
    > this.parentForm to get a reference to the parent form,
    but I can't seem to
    > find
    > the parent's methods, just it's gui elements (i.e.,
    > this.parentForm.parentMethod() doesn't work).
    >
    > Can some tell me how to do this? I am considering a
    FormManager class,
    > which
    > is a singleton class that each form can registers with
    and can use to
    > toggle
    > the visibility of itself and its siblings, but I wanted
    to see if there
    > was an
    > easier way to access methods on the class instance
    associated a parent's
    > form.
    >
    > Any suggestions?
    >
    Why don't you explicitly instantiate the children with a
    reference to the
    parent form. That way you could store the reference in the
    constructor. As
    long at the functions are public I think it should work.
    Amy

  • Error while accessing Child Form process info

    I've created my Process task Adapter and attached it to "AD User" Process Definition.
    When I try to retrieve information about AD Groups from the child form of UD_AD_USER (form named AD_RSC), I get the following error:
    ERROR,28 okt 2007 15:08:26,765,[XELLERATE.DATABASE],select obi_key, UD_ADUSER_VERSION from UD_ADUSER where obi_key=5
    java.sql.SQLException: ORA-00904: "OBI_KEY": invalid identifier
    the problem is that there's NO field named OBI_KEY in the standard UD_ADUSER table.
    The same thing happens when I'm trying to access child form data through Xellerate API
    ( getChildFormDefinition(long plParentFormDefinitionKey, int pnParentFormVersion) or getProcessFormChildData(long plChildFormDefinitionKey, long plProcessInstanceKey) )
    is it some king of bug? I haven't found anything at metalink :(

    I have no issues getting child table information using the APIs... I am doing it on both 9.0.1.X versions and 9.0.3.X versions. I would suggest looking at how you are getting the process keys.. (i.e., are you mapping it in through the adapter, getting it from findObjects, etc)... and also look at your configuration of the child tables and make sure everything is active and kosher.
    If you post the rest of your code, I might be able to help you.
    Cheers,
    Deborah

  • Reconciliation - Recon even results not reflected in child forms

    Hi All,
    I am new to OIM and prior to this i have worked Sun Identity Manager.
    My problem is:
    User(USER1) has two roles in SAP system. I have checked users resource profile (child form), it shows two records.
    Recon First Cycle: I have deleted one role in target system and ran the reconciliation for USER1. A recon event is created and recon manager shows that user has one role and status is "Event Linked". I have checked the users resource profile (child form), it shows only one record.
    Recon Second Cycle: Again i have deleted one more role in target system (SAP) and ran reconciliation. Now the reconciliation event is created and recon manager shows user has no role and status is "Event Linked". When i checking in users resource profile (child form), it still showing the last record.
    Even though the user doesn't have any role in target system and reconciliation manager, I don't know why it showing last records in users resource profile (child form).
    My system configuration:
    OIM version : OIM 9.1.0.2
    Oracle Database : 10g
    Application Server : JBOSS 4.2.3
    Web browser : Internet explorer 6.0
    Operating System : Windows server 2003
    -- Chellappan
    Edited by: user9164768 on May 12, 2010 12:30 PM

    Very strange result.
    Seems like a bug in the connector. Have you tried opening an SR with Oracle?
    Best regards
    /Martin

  • What is your strategy for form validation when using MVC pattern?

    This is more of a general discussion topic and will not necessarily have a correct answer. I'm using some of the Flex validator components in order to do form validation, but it seems I'm always coming back to the same issue, which is that in the world of Flex, validation needs to be put in the view components since in order to show error messages you need to set the source property of the validator to an instance of a view component. This again in my case seems to lead to me duplicating the code for setting up my Validators into several views. But, in terms of the MVC pattern, I always thought that data validation should happen in the model, since whether or not a piece of data is valid might be depending on business rules, which again should be stored in the model. Also, this way you'd only need to write the validation rules once for all fields that contain the same type of information in your application.
    So my question is, what strategies do you use when validating data and using an MVC framework? Do you create all the validators in the views and just duplicate the validator if the exact same rules are needed in some other view, or do you store the validators in the model and somehow reference them from the views, changing the source properties as needed? Or do you use some completely different strategy for validating forms and showing error messages to the user?

    Thanks for your answer, JoshBeall. Just to clarify, you would basically create a subclass of e.g. TextInput and add the validation rules to that? Then you'd use your subclass when you need a textinput with validation?
    Anyway, I ended up building sort of my own validation framework. Because the other issue I had with the standard validation was that it relies on inheritance instead of composition. Say I needed a TextInput to both check that it doesn't contain an empty string or just space characters, is between 4 and 100 characters long, and follows a certain pattern (e.g. allows only alphanumerical characters). With the Flex built in validators I would have to create a subclass or my own validator in order to meet all the requirements and if at some point I need another configuration (say just a length and pattern restriction) I would have to create another subclass which duplicates most of the rules, or I would have to build a lot of flags and conditional statements into that one subclass. With the framework I created I can just string together different rules using composition, and the filter classes themselves can be kept very simple since they only need to handle a single condition (check the string length for instance). E.g. below is the rule for my username:
    library["user_name"] = new EmptyStringFilter( new StringLengthFilter(4,255, new RegExpFilter(/^[a-z0-9\-@\._]+$/i) ) );
    <code>library</code> is a Dictionary that contains all my validation rules, and which resides in the model in a ValidationManager class. The framework calls a method <code>validate</code> on the stored filter references which goes through all the filters, the first filter to fail returns an error message and the validation fails:
    (library["user_name"] as IValidationFilter).validate("testuser");
    I only need to setup the rule once for each property I want to validate, regardless where in the app the validation needs to happen. The biggest plus of course that I can be sure the same rules are applied every time I need to validate e.g. a username.
    The second part of the framework basically relies on Chris Callendar's great ErrorTipManager class and a custom subclass of spark.components.Panel (in my case it seemed like the reasonable place to put the code needed, although perhaps extending Form would be even better). ErrorTipManager allows you to force open a error tooltip on a target component easily. The subclass I've created basically allows me to just extend the class whenever I need a form and pass in an array of inputs that I want to validate in the creationComplete handler:
    validatableInputs = [{source:productName, validateAs:"product_name"},
                         {source:unitWeight, validateAs:"unit_weight", dataField:"value"},
                   {source:unitsPerBox, validateAs:"units_per_box", dataField:"value"},
                        {source:producer, validateAs:"producer"}];
    The final step is to add a focusOut handler on the inputs that I want to validate if I want the validation to happen right away. The handler just calls a validateForm method, which in turn iterates through each of the inputs in the validatableInputs array, passing a reference of the input to a suitable validation rule in the model (a reference to the model has been injected into the view for this).
    Having written this down I could probably improve the View side of things a bit, remove the dependency on the Panel component and make the API easier (have the framework wire up more of the boilerplate like adding listeners etc). But for now the code does what it needs to.

  • Error while update Child Form

    Dear expert and guru,
    I'm having trouble when try to using update in child form. The page suddenly error.
    Is it bug or misconfiguration?
    I'm using OIM 9101.
    Need input ASAP... because the client cant proceed to production if still error.

    Dear Suren,
    The error log :
    2010-04-29 12:06:01,737 DEBUG [org.jboss.ejb.StatelessSessionContainer] Useless invocation of remove() for stateless session bean
    2010-04-29 12:06:08,340 ERROR [XELLERATE.DATABASE] select orc_key, UD_INETCOF_VERSION from UD_INETCOF where orc_key=108861
    java.sql.SQLSyntaxErrorException: ORA-00904: "ORC_KEY": invalid identifier
         at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:91)
         at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
         at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1030)
         at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:183)
         at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:774)
         at oracle.jdbc.driver.T4CStatement.executeMaybeDescribe(T4CStatement.java:849)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1186)
         at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1377)
         at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:386)
         at org.jboss.resource.adapter.jdbc.WrappedStatement.executeQuery(WrappedStatement.java:226)
         at com.thortech.xl.util.JDBCUtils.executeQuery(Unknown Source)
         at com.thortech.xl.dataaccess.tcDataBase.readPartialStatement(Unknown Source)
         at com.thortech.xl.dataobj.tcDataBase.readPartialStatement(Unknown Source)
         at com.thortech.xl.dataaccess.tcDataSet.executeQuery(Unknown Source)
         at com.thortech.xl.dataobj.tcDataSet.executeQuery(Unknown Source)
         at com.thortech.xl.dataaccess.tcDataSet.executeQuery(Unknown Source)
         at com.thortech.xl.dataobj.tcDataSet.executeQuery(Unknown Source)
         at com.thortech.xl.ejb.beansimpl.tcFormInstanceOperationsBean.getProcessFormChildDataData(Unknown Source)
         at com.thortech.xl.ejb.beansimpl.tcFormInstanceOperationsBean.getProcessFormChildData(Unknown Source)
         at com.thortech.xl.ejb.beans.tcFormInstanceOperationsSession.getProcessFormChildData(Unknown Source)
         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:597)
         at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
         at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:237)
         at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:158)
         at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:169)
         at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63)
         at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121)
         at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
         at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181)
         at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:168)
         at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205)
         at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:138)
         at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:648)
         at org.jboss.ejb.Container.invoke(Container.java:960)
         at sun.reflect.GeneratedMethodAccessor132.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
         at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
         at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
         at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
         at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:169)
         at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:118)
         at org.jboss.invocation.InvokerInterceptor.invokeLocal(InvokerInterceptor.java:209)
         at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:195)
         at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61)
         at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70)
         at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:112)
         at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100)
         at $Proxy758.getProcessFormChildData(Unknown Source)
         at Thor.API.Operations.tcFormInstanceOperationsClient.getProcessFormChildData(Unknown Source)
         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:597)
         at Thor.API.Base.SecurityInvocationHandler$1.run(Unknown Source)
         at Thor.API.Security.LoginHandler.jbossLoginSession.runAs(Unknown Source)
         at Thor.API.Base.SecurityInvocationHandler.invoke(Unknown Source)
         at $Proxy808.getProcessFormChildData(Unknown Source)
         at com.thortech.xl.webclient.actions.UserDefinedFormAction.updateChildFormData(Unknown Source)
         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:597)
         at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
         at com.thortech.xl.webclient.actions.tcLookupDispatchAction.execute(Unknown Source)
         at com.thortech.xl.webclient.actions.tcActionBase.execute(Unknown Source)
         at com.thortech.xl.webclient.actions.tcAction.execute(Unknown Source)
         at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
         at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at com.thortech.xl.webclient.security.SecurityFilter.doFilter(Unknown Source)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
         at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
         at java.lang.Thread.run(Thread.java:619)
    2010-04-29 12:06:08,345 ERROR [XELLERATE.DATABASE] Class/Method: tcDataBase/readPartialStatement encounter some problems: ORA-00904: "ORC_KEY": invalid identifier
    java.sql.SQLSyntaxErrorException: ORA-00904: "ORC_KEY": invalid identifier
         at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:91)
         at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
         at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1030)
         at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:183)
         at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:774)
         at oracle.jdbc.driver.T4CStatement.executeMaybeDescribe(T4CStatement.java:849)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1186)
         at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1377)
         at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:386)
         at org.jboss.resource.adapter.jdbc.WrappedStatement.executeQuery(WrappedStatement.java:226)
         at com.thortech.xl.util.JDBCUtils.executeQuery(Unknown Source)
         at com.thortech.xl.dataaccess.tcDataBase.readPartialStatement(Unknown Source)
         at com.thortech.xl.dataobj.tcDataBase.readPartialStatement(Unknown Source)
         at com.thortech.xl.dataaccess.tcDataSet.executeQuery(Unknown Source)
         at com.thortech.xl.dataobj.tcDataSet.executeQuery(Unknown Source)
         at com.thortech.xl.dataaccess.tcDataSet.executeQuery(Unknown Source)
         at com.thortech.xl.dataobj.tcDataSet.executeQuery(Unknown Source)
         at com.thortech.xl.ejb.beansimpl.tcFormInstanceOperationsBean.getProcessFormChildDataData(Unknown Source)
         at com.thortech.xl.ejb.beansimpl.tcFormInstanceOperationsBean.getProcessFormChildData(Unknown Source)
         at com.thortech.xl.ejb.beans.tcFormInstanceOperationsSession.getProcessFormChildData(Unknown Source)
         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:597)
         at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
         at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:237)
         at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:158)
         at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:169)
         at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63)
         at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121)
         at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
         at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100)
         at $Proxy758.getProcessFormChildData(Unknown Source)
         at Thor.API.Operations.tcFormInstanceOperationsClient.getProcessFormChildData(Unknown Source)
         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:597)
         at Thor.API.Base.SecurityInvocationHandler$1.run(Unknown Source)
         at Thor.API.Security.LoginHandler.jbossLoginSession.runAs(Unknown Source)
         at Thor.API.Base.SecurityInvocationHandler.invoke(Unknown Source)
         at $Proxy808.getProcessFormChildData(Unknown Source)
         at com.thortech.xl.webclient.actions.UserDefinedFormAction.updateChildFormData(Unknown Source)
         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:597)
         at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
         at com.thortech.xl.webclient.actions.tcLookupDispatchAction.execute(Unknown Source)
         at com.thortech.xl.webclient.actions.tcActionBase.execute(Unknown Source)
         at com.thortech.xl.webclient.actions.tcAction.execute(Unknown Source)
         at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
         at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at com.thortech.xl.webclient.security.SecurityFilter.doFilter(Unknown Source)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
         at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
         at java.lang.Thread.run(Thread.java:619)
    2010-04-29 12:06:08,352 ERROR [XELLERATE.APIS] Class/Method: tcFormInstanceOperationsBean/getProcessFormChildDataData encounter some problems: Error occurred while getting child form data for process instance with key '108861'.
    2010-04-29 12:06:08,352 ERROR [XELLERATE.APIS] Class/Method: tcFormInstanceOperationsBean/getProcessFormChildDataData encounter some problems: Data Access Error
    com.thortech.xl.dataaccess.tcDataSetException: Data Access Error
         at com.thortech.xl.dataaccess.tcDataSet.executeQuery(Unknown Source)
         at com.thortech.xl.dataobj.tcDataSet.executeQuery(Unknown Source)
         at com.thortech.xl.dataaccess.tcDataSet.executeQuery(Unknown Source)
         at com.thortech.xl.dataobj.tcDataSet.executeQuery(Unknown Source)
         at com.thortech.xl.ejb.beansimpl.tcFormInstanceOperationsBean.getProcessFormChildDataData(Unknown Source)
         at com.thortech.xl.ejb.beansimpl.tcFormInstanceOperationsBean.getProcessFormChildData(Unknown Source)
         at com.thortech.xl.ejb.beans.tcFormInstanceOperationsSession.getProcessFormChildData(Unknown Source)
         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:597)
         at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
         at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:237)
         at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
         at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
         at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
         at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:169)
         at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:118)
         at org.jboss.invocation.InvokerInterceptor.invokeLocal(InvokerInterceptor.java:209)
         at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:195)
         at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61)
         at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70)
         at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:112)
         at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100)
         at $Proxy758.getProcessFormChildData(Unknown Source)
         at Thor.API.Operations.tcFormInstanceOperationsClient.getProcessFormChildData(Unknown Source)
         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:597)
         at Thor.API.Base.SecurityInvocationHandler$1.run(Unknown Source)
         at Thor.API.Security.LoginHandler.jbossLoginSession.runAs(Unknown Source)
         at Thor.API.Base.SecurityInvocationHandler.invoke(Unknown Source)
         at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
         at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at com.thortech.xl.webclient.security.SecurityFilter.doFilter(Unknown Source)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
         at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
         at java.lang.Thread.run(Thread.java:619)
    Data AccessException:
    com.thortech.xl.orb.dataaccess.tcDataAccessException: DB_READ_FAILEDDetail: SQL: select orc_key, UD_INETCOF_VERSION from UD_INETCOF where orc_key=108861Description: ORA-00904: "ORC_KEY": invalid identifier
    SQL State: 42000Vendor Code: 904Additional Debug Info:com.thortech.xl.orb.dataaccess.tcDataAccessException
         at com.thortech.xl.dataaccess.tcDataAccessExceptionUtil.createException(Unknown Source)
         at com.thortech.xl.dataaccess.tcDataBase.createException(Unknown Source)
         at com.thortech.xl.dataaccess.tcDataBase.readPartialStatement(Unknown Source)
         at com.thortech.xl.dataobj.tcDataBase.readPartialStatement(Unknown Source)
         at com.thortech.xl.dataaccess.tcDataSet.executeQuery(Unknown Source)
         at com.thortech.xl.dataobj.tcDataSet.executeQuery(Unknown Source)
         at com.thortech.xl.dataaccess.tcDataSet.executeQuery(Unknown Source)
         at com.thortech.xl.dataobj.tcDataSet.executeQuery(Unknown Source)
         at com.thortech.xl.ejb.beansimpl.tcFormInstanceOperationsBean.getProcessFormChildDataData(Unknown Source)
         at com.thortech.xl.ejb.beansimpl.tcFormInstanceOperationsBean.getProcessFormChildData(Unknown Source)
         at com.thortech.xl.ejb.beans.tcFormInstanceOperationsSession.getProcessFormChildData(Unknown Source)
         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:597)
         at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
         at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:237)
         at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:158)
         at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:169)
         at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63)
         at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121)
         at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
         at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181)
         at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:168)
         at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205)
         at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:138)
         at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:648)
         at org.jboss.ejb.Container.invoke(Container.java:960)
         at sun.reflect.GeneratedMethodAccessor132.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
         at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
         at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
         at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
         at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:169)
         at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:118)
         at org.jboss.invocation.InvokerInterceptor.invokeLocal(InvokerInterceptor.java:209)
         at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:195)
         at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61)
         at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70)
         at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:112)
         at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100)
         at $Proxy758.getProcessFormChildData(Unknown Source)
         at Thor.API.Operations.tcFormInstanceOperationsClient.getProcessFormChildData(Unknown Source)
         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:597)
         at Thor.API.Base.SecurityInvocationHandler$1.run(Unknown Source)
         at Thor.API.Security.LoginHandler.jbossLoginSession.runAs(Unknown Source)
         at Thor.API.Base.SecurityInvocationHandler.invoke(Unknown Source)
         at $Proxy808.getProcessFormChildData(Unknown Source)
         at com.thortech.xl.webclient.actions.UserDefinedFormAction.updateChildFormData(Unknown Source)
         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:597)
         at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
         at com.thortech.xl.webclient.actions.tcLookupDispatchAction.execute(Unknown Source)
         at com.thortech.xl.webclient.actions.tcActionBase.execute(Unknown Source)
         at com.thortech.xl.webclient.actions.tcAction.execute(Unknown Source)
         at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
         at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at com.thortech.xl.webclient.security.SecurityFilter.doFilter(Unknown Source)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
         at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
         at java.lang.Thread.run(Thread.java:619)
    Its happened when approval process when the approver try to update information in child form. The child form page display the home page.
    Thanks,
    Ivan

  • MDIChildren flickering problem while switching between child form with dockstyle.fill and borderstyle.none

    I have an mdi applicaton in Visual studio 2010 (.Net framework 4.0). I'm having a flickering problem when user switch between an MDI Child form. I'm declaring the child form then setting the borderstyle.none at design time and dock property to fill
    through programming and make them a MDIChildren before I show them so that it takes up the entire space of the MDI Parent window without being maximized (client request). 
    i don't want to display control box(minimize, maximize,close) of child form in mdi parent form. (client request)
    The problem is that when the child form is being displayed it is briefly shown in it's default size with icon and control box before being resized to fill the available area on the MDI Parent form. When a Child Form loads, you can see it in it's original
    size (the size from Design-time) then all this flickering while maximizing .
    In other words, child form show up in the client area of the MDIForm, not maximized, with a caption, very shortly, before they are finally filling the client area. there is a short flicker when a new form is created and displayed. This process is most noticeable
    with a not-so-powerful PC or there are lots of control inside child form.
    below is my code to show child form 
       MyChild1 c1 = new MyChild1();
                                c1.MdiParent = MdiMainParent;
                                c1.Dock = DockStyle.Fill;
       c1.Show(); 
    how can i solved the problem of flickering issue?
    I tried many options which i have described below
    1.double buffering.
    2.set style property to child form
          this.SetStyle(ControlStyles.UserPaint, true);
          this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
          this.SetStyle(ControlStyles.DoubleBuffer, true); 
    3. override below method in each child form
    protected override CreateParams CreateParams
                get
                    CreateParams cp = base.CreateParams;
                    cp.ExStyle |= 0x02000000;
                    return cp;
    4. override below method in each child form
      const int WM_NCPAINT = 0x85;
            const int WM_SIZE = 0x05;
            protected override void WndProc(ref Message m)
                if (m.Msg == WM_NCPAINT)
                    if (this.WindowState == FormWindowState.Maximized)
                        return;
                if (m.Msg == WM_SIZE)
                    if (this.WindowState == FormWindowState.Maximized)
                        return;
                base.WndProc(ref m);
    but I didn't see any effects.  please someone help me to resolve flickering issue. thanks in advance.

    Hi hardikvaishnav,
    This is a known issue which has been reported to Microsoft Connect. Unfortunately, this issue will not fix due to stability issues around MDI. For more details, see 
    https://connect.microsoft.com/VisualStudio/feedback/details/97787/border-of-mdi-child-form-flashes-up-despite-formborderstyle-none.
    You might use a user control or panel instead.
    Best Regards,
    Bob Wu [MSFT]
    MSDN Community Support | Feedback to us

Maybe you are looking for

  • WSUS updates not applying to Office 2013 Home and Business OEM version

    Hi For some reason I cannot get WSUS updates to automatically install on clients running Office 2013 Home and Business OEM version. For example If user opens any of the office 2013 apps e.g. Outlook , word etc, it prompts a message at the top under t

  • Target is too Small to Hold Data (IES 10901)(WIS 10901) Webi Vs.Rich Client.

    Hi All, I am getting the attached error, when Refreshing the Report in Web Intelligence. However, I am able to Successfully Create and Refresh the Same report in WEBI RICH CLIENT. I am able to successfully run the query in "Teradata SQL Assistant" I

  • .pdf placed appears all black

    I'm not sure if this is an inDesign problem or an Adobe Acrobat Pro problem.  I'm attempting to crop bits of a .pdf and place them into inDesign (revising an advertisement).  One copied section appears perfectly, another portion comes across as solid

  • Original 5D Mark iii H264 to Color Issues

    Ive cut a project in Final Cut using ProRes422 Files created in Log and Transfer. ive now reconformed the final edit back to the original 5d3 H264 files ready to grade in color. The problem is once its in Color (via send to color) all the edits are w

  • How do i change my subscription from Photoshop only CC to the new PhotoGraphy Bundle without having

    Hi, I'm currently a Photoshop only CC member This costs me 24,95 Euro/month. I noticed today that a new photography bundle is available containing Photoshop & Lightroom for 12,29 euro/month. I would like to subscribe to this bundle since it's cheaper