OAAttrValException error

I'm adding validation for my dimensions and one of the requirements is that the value must be > 0. Therefore, I'm rasing an exception if length,width, or height = 0. I'm using OAAttrValException to prompt user that 0 is unacceptable.
I've define the following ...
import oracle.apps.fnd.framework.OAAttrValException;
Here's my call to OAAttrValException inside my *VORowImpl setter...
public void setPartLength(Number value)
if (value != null)
// Verify value is > 0
if (value.compareTo(0) <= 0)
throw new OAAttrValException(OAException.TYP_VIEW_OBJECT, // indicates VO source
getPartLength(), // view instance name
getFormId(), // entity primary key
"PartLength", // attribute Name
value, // bad attribute value
"AK", // nessage application short name
"FWK_TBX_T_EMP_SALARY_REQUIRED");
// message name
setAttributeInternal(PARTLENGTH, value);
I receive the following error at runtime...
Error(196,20): constructor OAAttrValException(int, oracle.jbo.domain.Number, oracle.jbo.domain.Number, java.lang.String, oracle.jbo.domain.Number, java.lang.String, java.lang.String) not found in class oracle.apps.fnd.framework.OAAttrValException
Any ideas?

Kumar,
Thanks for responding. I've updated the code to include the view instance name, however, I still recieve the following error. Any other ideas? BTW, I'm calling this from my VORowImpl and not my EOImpl as you can probably tell by "TYP_VIEW_OBJECT".
public void setPartLength(Number value)
if (value != null)
// Verify value is > 0
if (value.compareTo(0) <= 0)
throw new OAAttrValException(OAException.TYP_VIEW_OBJECT,
*"PartGenerationVO1",*
getFormId(),
"PartLength",
value,
"AK",
"FWK_TBX_T_EMP_SALARY_REQUIRED");
setAttributeInternal(PARTLENGTH, value);
Error(198,19): constructor OAAttrValException(int, java.lang.String, oracle.jbo.domain.Number, java.lang.String, oracle.jbo.domain.Number, java.lang.String, java.lang.String) not found in class oracle.apps.fnd.framework.OAAttrValException

Similar Messages

  • Oracle.jbo.RowCreateException: JBO-25017: Error while creating a new ROW

    I am trying same multi step PO example. I have created a search page and there are 3 other pages for PO Header, PO Line and Review/Submit Page. I am coming on 2nd page(creating Line Item) and when I click on create new item record I am getting this error. Any help will be aprrecaited.
    oracle.jbo.RowCreateException: JBO-25017: Error while creating a new entity row for POLinesEO.
    This is my code for POLineShipFullVORowImpl.java
    protected void create(oracle.jbo.AttributeList nvp)
    POLinesEOImpl lineEO = (POLinesEOImpl)getEntity(0);
    POShipmentEOImpl shipmentEO = (POShipmentEOImpl)getEntity(1);
    try
    // Create Lines EO
    lineEO.create(nvp);
    // Create Shipments EO
    shipmentEO.create(lineEO);
    // Calling this ensures that any personalization default values are
    // properly set since the OAF normally sets this in the super.create(), but
    // since this is not called in this workaround, we need another method
    // to ensure customer defaults are applied.
    // The following method was introduced in OAF internal release 11.5.10J. Since
    // the production release of the ToolBox must be able to run on 11.5.10I, this
    // cannot be enabled.
    // setDefaultValue();
    catch (Exception ex)
    lineEO.revert();
    shipmentEO.revert();
    if (ex instanceof oracle.jbo.JboException)
    oracle.jbo.JboException jboEx = (oracle.jbo.JboException)ex;
    // Developers have to do the mapping on their own becauce of the override.
    jboEx.doEntityToVOMapping(getApplicationModule(), new oracle.jbo.ViewObject[]{getViewObject()});
    throw jboEx;
    throw OAException.wrapperException(ex);
    } // end create()
    Code for PoLinesEOImpl.java
    * Initializes a new purchase order line.
    public void create(AttributeList attributeList)
         // NOTE: header id is automatically set by BC4J because of the
    // composition association.
    super.create(attributeList);
    OADBTransaction transaction = (OADBTransaction)getOADBTransaction();
    // DEFAULT: line id
    Number lineId = transaction.getSequenceValue("FWK_TBX_PO_LINES_S");
    setLineId(lineId);
    // DEFAULT: Line number
    POHeaderEOImpl headerEO = getPOHeaderEO();
    Number newLineNum = headerEO.getNextLineNum();
    setLineNumber(newLineNum);
    } // end create()
    * Sets <code>value</code> as the attribute value for ShipmentNumber
    * Business Rules
    * Required; cannot be null
    * Cannot be updated on a committed line
    * Must be unique for this purchase order
    * Must be >= 1
    public void setLineNumber(Number value)
    if (value != null)
    // Verify value is > 0
    if (value.compareTo(0) <= 0)
    throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT,
    getEntityDef().getFullName(), // EO name
    getPrimaryKey(), // EO PK
    "LineNumber", // Attribute Name
    value, // Attribute value
    "AK", // Message product short name
    "DEBUG -- add message"); // Message name
    // To verify uniqueness, start by checking the entity cache.
    com.sun.java.util.collections.Iterator lineIterator =
    getEntityDef().getAllEntityInstancesIterator(getDBTransaction());
    Number lineId = getLineId();
    Number headerId = getHeaderId();
    while ( lineIterator.hasNext() )
    POLinesEOImpl cachedLine =
    (POLinesEOImpl)lineIterator.next();
    Number cachedLineNum = cachedLine.getLineNumber();
    Number cachedLineId = cachedLine.getLineId();
    Number cachedHeaderId = cachedLine.getHeaderId();
    if ((cachedLineNum != null) &&
    (cachedLineNum.compareTo(value) == 0) &&
    (cachedLineId.compareTo(lineId) != 0) && // Exclude this line
    (cachedHeaderId.compareTo(headerId) == 0))
    throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT,
    getEntityDef().getFullName(), // EO name
    getPrimaryKey(), // EO PK
    "LineNumber", // Attribute Name
    value, // Attribute value
    "AK", // Message product short name
    "DEBUG -- add message"); // Message name
    // Didn't find a duplicate in the entity cache so now we check the database.
    // Note: don't bother with this if the header is in a NEW state since that
    // means we won't have any lines in the database yet.
    POHeaderEOImpl headerEO = getPOHeaderEO();
    if (headerEO.getEntityState() != STATUS_NEW)
    PurchaseEntityExpert poExpert =
    POHeaderEOImpl.getPurchaseEntityExpert(getOADBTransaction());
    PoLineNumVVOImpl valLineNumVO =
    (PoLineNumVVOImpl)poExpert.findValidationViewObject("PoLineNumVVO1");
    valLineNumVO.initQuery(headerId, value);
    // We're doing an existence check; shouldn't have any rows.
    if (valLineNumVO.hasNext())
    throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT,
    getEntityDef().getFullName(), // EO name
    getPrimaryKey(), // EO PK
    "LineNumber", // Attribute Name
    value, // Attribute value
    "AK", // Message product short name
    "DEBUG -- add message"); // Message name
    // If this is the largest line number for this order, this will store it for
    // reference when creating subsequent lines.
    headerEO.resetLineNum(value);
    setAttributeInternal(LINENUMBER, value);
    } // end setLineNumber()
    Edited by: user9941374 on Mar 15, 2012 3:16 PM

    Hi Frank,
    As per the steps mentioned in the following link :
    http://www-apps.us.oracle.com:1100/fwk/jdev/doc/devguide/bus/bus_java.htm#tl
    I have created the required entity objects and view objects.
    I have an entity JobsDEO which is based on a view per_jobs_vl which is itself based on 2 tables,per_jobs_f and per_jobs_tl,wherein _tl is the translation table.
    The entity for _tl table is JobTranslationEO and has no VO associated with it.Its the JobsVO,based on JobsDEO,that has to handle any interactions with this entity too.
    JOBSDEO has a property set up for HCM_DBSEQUENCE,which makes it read the value of job_id from the sequence per_jobs_s.
    Now,when I try to insert into the JobsVO,based on JobsDEO,it gives me the above mentioned error.
    One more thing is that the error does'nt occur when we commit a row,its just when we click the "+" button in the AM Tester that we get this error.
    Please advice.

  • Error message without link to field

    I have a page where I am entering some information and saving it. I am using a VO which is based on an EO. I have two instance of this VO. One is being populated from the page and other one is being populated in the background.
    I have put some validation in EO and using following code in validateEntity()
        if (getTotEngHrs() == null)
            throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT,
                                      getEntityDef().getFullName(),
                                      null,
                                      "TotEngHrs",
                                      getTotEngHrs(),
                                      "CRM",
                                      "CINT_CRM_TOT_ENG_HRS_NULL");
    When I try to save data without entering any value in TotEngHrs field. I do get the error but without any link to this field (just get the plain message). I then enter value in some other field and save it again and I start getting the error with link to those field.
    Is there anyone who can help me in this?
    Thanks in advance

    Just in case it's not clear from above.
    If I don't enter value for TotEngHrs I get error as I should be but without link to the field ..when I hit save second time the link to error field does appear.

  • Inline Error Message in a table cell

    There is a requirement where in an error message is to be thrown in a table cell.
    (For eg, when the filed value is getting populated from a VO.Considering the scenario where the value is null for some reasons.)Can anyone suggest to implement the same?

    It is possible with the controller coding.
    User putAttrDialogMessage method on pageContext.
    public void putAttrDialogMessage(OAWebBean webBean,
    OAException message)
    Registers a dialog message for a web bean that is not based on a view object. The dialog message will be displayed in the message box located in the top section of the current page and also attached to the corresponding region item as an inline message.
    The proper way for preserving the bad value which caused the exception is by using OAAttrValException as follows:
    OAMessageTextInputBean textField = ....; // webBean in question
    OAAttrValException attrEx = new OAAttrValException(
    OAAttrValException.TYP_VIEW_OBJECT, // Just default it to ViewObject
    null, // View Usage Name as null
    null, // The primary key as null
    textField.getDataAttributeName(), // The attribute name
    value, // The attribute bad value which caused validation failure
    "FND", // Message application short name
    "ATTR_EXCEPTION_MSG"); // Message code
    pageContext.putAttrDialogMessage(textField, attrEx);
    Parameters:
    webBean - the web bean to which the message belongs
    message - an OAException object representing the dialog message. An appropriate message type must be set on the exception object through the constructor.
    Do let me know if you got struck.

  • Creating new record in Results Table giving Error

    Hi All,
    On update page there is a Results Table with Add button to create a new row.
    While creating a new record on Results Table gives error
    Attribute set for AccessId in view object XXLCUpdVariablesVO1 failed
    I have checked EO and VO attributes, everything seems to be right.
    Also Updatable is set to 'Always'.
    Still don't know why this error is coming up.
    Plz help to resolve this error.
    Thanks,
    SK

    Ajay,
    XML code
    <?xml version='1.0' encoding='windows-1252' ?>
    <!DOCTYPE Entity SYSTEM "jbo_03_01.dtd">
    <Entity
    Name="XXLCVarAssignmentsEO"
    DBObjectType="table"
    DBObjectName="XXLCOKC_VARIABLE_ASSIGNMENTS"
    AliasName="XXLCVarAssignmentsEO"
    BindingStyle="OracleName"
    UseGlueCode="false"
    RowClass="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEOImpl"
    DefClass="oracle.apps.fnd.framework.server.OAEntityDefImpl"
    CollClass="oracle.apps.fnd.framework.server.OAEntityCache" >
    <DesignTime>
    <Attr Name="_isCodegen" Value="true" />
    <Attr Name="_version" Value="10.1.3.41.57" />
    <AttrArray Name="_publishEvents">
    </AttrArray>
    <Attr Name="_panelSchema" Value="table|alias" />
    <Attr Name="_codeGenFlag2" Value="Init|Delete|Access|Val" />
    </DesignTime>
    <Attribute
    Name="AssignmentId"
    IsNotNull="true"
    ColumnName="ASSIGNMENT_ID"
    Type="oracle.jbo.domain.Number"
    ColumnType="NUMBER"
    SQLType="NUMERIC"
    TableName="XXLCOKC_VARIABLE_ASSIGNMENTS"
    PrimaryKey="true" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </Attribute>
    <Attribute
    Name="AssignmentAccess"
    IsNotNull="true"
    Precision="30"
    ColumnName="ASSIGNMENT_ACCESS"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    SQLType="VARCHAR"
    TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="30" />
    </DesignTime>
    </Attribute>
    <Attribute
    Name="VariableId"
    IsNotNull="true"
    ColumnName="VARIABLE_ID"
    Type="oracle.jbo.domain.Number"
    ColumnType="NUMBER"
    SQLType="NUMERIC"
    TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </Attribute>
    <Attribute
    Name="ListValueId"
    IsNotNull="true"
    ColumnName="LIST_VALUE_ID"
    Type="oracle.jbo.domain.Number"
    ColumnType="NUMBER"
    SQLType="NUMERIC"
    TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </Attribute>
    <Attribute
    Name="OrganizationId"
    IsNotNull="true"
    Precision="15"
    Scale="0"
    ColumnName="ORGANIZATION_ID"
    Type="oracle.jbo.domain.Number"
    ColumnType="NUMBER"
    SQLType="NUMERIC"
    TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </Attribute>
    <Attribute
    Name="TemplateId"
    IsNotNull="true"
    ColumnName="TEMPLATE_ID"
    Type="oracle.jbo.domain.Number"
    ColumnType="NUMBER"
    SQLType="NUMERIC"
    TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </Attribute>
    <Attribute
    Name="AuctionHeaderId"
    IsNotNull="true"
    ColumnName="AUCTION_HEADER_ID"
    Type="oracle.jbo.domain.Number"
    ColumnType="NUMBER"
    SQLType="NUMERIC"
    TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </Attribute>
    <Attribute
    Name="PoHeaderId"
    IsNotNull="true"
    ColumnName="PO_HEADER_ID"
    Type="oracle.jbo.domain.Number"
    ColumnType="NUMBER"
    SQLType="NUMERIC"
    TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </Attribute>
    <Attribute
    Name="CreatedBy"
    IsNotNull="true"
    ColumnName="CREATED_BY"
    Type="oracle.jbo.domain.Number"
    ColumnType="NUMBER"
    SQLType="NUMERIC"
    TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </Attribute>
    <Attribute
    Name="CreationDate"
    IsNotNull="true"
    ColumnName="CREATION_DATE"
    Type="oracle.jbo.domain.Date"
    ColumnType="DATE"
    SQLType="DATE"
    TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="7" />
    </DesignTime>
    </Attribute>
    <Attribute
    Name="LastUpdateDate"
    IsNotNull="true"
    ColumnName="LAST_UPDATE_DATE"
    Type="oracle.jbo.domain.Date"
    ColumnType="DATE"
    SQLType="DATE"
    TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="7" />
    </DesignTime>
    </Attribute>
    <Attribute
    Name="LastUpdatedBy"
    IsNotNull="true"
    ColumnName="LAST_UPDATED_BY"
    Type="oracle.jbo.domain.Number"
    ColumnType="NUMBER"
    SQLType="NUMERIC"
    TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </Attribute>
    <Attribute
    Name="LastUpdateLogin"
    IsNotNull="true"
    ColumnName="LAST_UPDATE_LOGIN"
    Type="oracle.jbo.domain.Number"
    ColumnType="NUMBER"
    SQLType="NUMERIC"
    TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </Attribute>
    <Attribute
    Name="AccessId"
    ColumnName="ACCESS_ID"
    Type="oracle.jbo.domain.Number"
    ColumnType="NUMBER"
    SQLType="NUMERIC"
    TableName="XXLCOKC_VARIABLE_ASSIGNMENTS" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </Attribute>
    <Key
    Name="SysC00329905" >
    <AttrArray Name="Attributes">
    <Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.AssignmentAccess" />
    </AttrArray>
    <DesignTime>
    <Attr Name="_checkCondition" Value="&#34;ASSIGNMENT_ACCESS&#34; IS NOT NULL" />
    <Attr Name="_isCheck" Value="true" />
    <Attr Name="_DBObjectName" Value="SYS_C00329905" />
    </DesignTime>
    </Key>
    <Key
    Name="SysC00329906" >
    <AttrArray Name="Attributes">
    <Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.VariableId" />
    </AttrArray>
    <DesignTime>
    <Attr Name="_checkCondition" Value="&#34;VARIABLE_ID&#34; IS NOT NULL" />
    <Attr Name="_isCheck" Value="true" />
    <Attr Name="_DBObjectName" Value="SYS_C00329906" />
    </DesignTime>
    </Key>
    <Key
    Name="SysC00329907" >
    <AttrArray Name="Attributes">
    <Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.ListValueId" />
    </AttrArray>
    <DesignTime>
    <Attr Name="_checkCondition" Value="&#34;LIST_VALUE_ID&#34; IS NOT NULL" />
    <Attr Name="_isCheck" Value="true" />
    <Attr Name="_DBObjectName" Value="SYS_C00329907" />
    </DesignTime>
    </Key>
    <Key
    Name="SysC00329908" >
    <AttrArray Name="Attributes">
    <Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.OrganizationId" />
    </AttrArray>
    <DesignTime>
    <Attr Name="_checkCondition" Value="&#34;ORGANIZATION_ID&#34; IS NOT NULL" />
    <Attr Name="_isCheck" Value="true" />
    <Attr Name="_DBObjectName" Value="SYS_C00329908" />
    </DesignTime>
    </Key>
    <Key
    Name="SysC00329909" >
    <AttrArray Name="Attributes">
    <Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.TemplateId" />
    </AttrArray>
    <DesignTime>
    <Attr Name="_checkCondition" Value="&#34;TEMPLATE_ID&#34; IS NOT NULL" />
    <Attr Name="_isCheck" Value="true" />
    <Attr Name="_DBObjectName" Value="SYS_C00329909" />
    </DesignTime>
    </Key>
    <Key
    Name="SysC00329910" >
    <AttrArray Name="Attributes">
    <Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.AuctionHeaderId" />
    </AttrArray>
    <DesignTime>
    <Attr Name="_checkCondition" Value="&#34;AUCTION_HEADER_ID&#34; IS NOT NULL" />
    <Attr Name="_isCheck" Value="true" />
    <Attr Name="_DBObjectName" Value="SYS_C00329910" />
    </DesignTime>
    </Key>
    <Key
    Name="SysC00329911" >
    <AttrArray Name="Attributes">
    <Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.PoHeaderId" />
    </AttrArray>
    <DesignTime>
    <Attr Name="_checkCondition" Value="&#34;PO_HEADER_ID&#34; IS NOT NULL" />
    <Attr Name="_isCheck" Value="true" />
    <Attr Name="_DBObjectName" Value="SYS_C00329911" />
    </DesignTime>
    </Key>
    <Key
    Name="SysC00329912" >
    <AttrArray Name="Attributes">
    <Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.CreatedBy" />
    </AttrArray>
    <DesignTime>
    <Attr Name="_checkCondition" Value="&#34;CREATED_BY&#34; IS NOT NULL" />
    <Attr Name="_isCheck" Value="true" />
    <Attr Name="_DBObjectName" Value="SYS_C00329912" />
    </DesignTime>
    </Key>
    <Key
    Name="SysC00329913" >
    <AttrArray Name="Attributes">
    <Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.CreationDate" />
    </AttrArray>
    <DesignTime>
    <Attr Name="_checkCondition" Value="&#34;CREATION_DATE&#34; IS NOT NULL" />
    <Attr Name="_isCheck" Value="true" />
    <Attr Name="_DBObjectName" Value="SYS_C00329913" />
    </DesignTime>
    </Key>
    <Key
    Name="SysC00329914" >
    <AttrArray Name="Attributes">
    <Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.LastUpdateDate" />
    </AttrArray>
    <DesignTime>
    <Attr Name="_checkCondition" Value="&#34;LAST_UPDATE_DATE&#34; IS NOT NULL" />
    <Attr Name="_isCheck" Value="true" />
    <Attr Name="_DBObjectName" Value="SYS_C00329914" />
    </DesignTime>
    </Key>
    <Key
    Name="SysC00329915" >
    <AttrArray Name="Attributes">
    <Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.LastUpdatedBy" />
    </AttrArray>
    <DesignTime>
    <Attr Name="_checkCondition" Value="&#34;LAST_UPDATED_BY&#34; IS NOT NULL" />
    <Attr Name="_isCheck" Value="true" />
    <Attr Name="_DBObjectName" Value="SYS_C00329915" />
    </DesignTime>
    </Key>
    <Key
    Name="SysC00329916" >
    <AttrArray Name="Attributes">
    <Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.LastUpdateLogin" />
    </AttrArray>
    <DesignTime>
    <Attr Name="_checkCondition" Value="&#34;LAST_UPDATE_LOGIN&#34; IS NOT NULL" />
    <Attr Name="_isCheck" Value="true" />
    <Attr Name="_DBObjectName" Value="SYS_C00329916" />
    </DesignTime>
    </Key>
    <Key
    Name="SysC00329917" >
    <AttrArray Name="Attributes">
    <Item Value="xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO.AssignmentId" />
    </AttrArray>
    <DesignTime>
    <Attr Name="_isPrimary" Value="true" />
    <Attr Name="_DBObjectName" Value="SYS_C00329917" />
    </DesignTime>
    </Key>
    </Entity>
    XXLCVarAssignmentsEOImpl Code
    package xxlc.oracle.apps.okc.schema.articles.variables.server;
    import oracle.apps.fnd.framework.OAAttrValException;
    import oracle.apps.fnd.framework.OAException;
    import oracle.apps.fnd.framework.server.OADBTransaction;
    import oracle.apps.fnd.framework.server.OAEntityDefImpl;
    import oracle.apps.fnd.framework.server.OAEntityImpl;
    import oracle.jbo.AttributeList;
    import oracle.jbo.Key;
    import oracle.jbo.domain.Date;
    import oracle.jbo.domain.Number;
    import oracle.jbo.server.AttributeDefImpl;
    import oracle.jbo.server.EntityDefImpl;
    // --- File generated by Oracle ADF Business Components Design Time.
    // --- Custom code may be added to this class.
    // --- Warning: Do not modify method signatures of generated methods.
    public class XXLCVarAssignmentsEOImpl extends OAEntityImpl
    public static final int ASSIGNMENTID = 0;
    public static final int ASSIGNMENTACCESS = 1;
    public static final int VARIABLEID = 2;
    public static final int LISTVALUEID = 3;
    public static final int ORGANIZATIONID = 4;
    public static final int TEMPLATEID = 5;
    public static final int AUCTIONHEADERID = 6;
    public static final int POHEADERID = 7;
    public static final int CREATEDBY = 8;
    public static final int CREATIONDATE = 9;
    public static final int LASTUPDATEDATE = 10;
    public static final int LASTUPDATEDBY = 11;
    public static final int LASTUPDATELOGIN = 12;
    public static final int ACCESSID = 13;
    private static OAEntityDefImpl mDefinitionObject;
    /**This is the default constructor (do not remove)
    public XXLCVarAssignmentsEOImpl()
    /**Retrieves the definition object for this instance class.
    public static synchronized EntityDefImpl getDefinitionObject()
    if (mDefinitionObject == null)
    mDefinitionObject =
    (OAEntityDefImpl)EntityDefImpl.findDefObject("xxlc.oracle.apps.okc.schema.articles.variables.server.XXLCVarAssignmentsEO");
    return mDefinitionObject;
    /**Add attribute defaulting logic in this method.
    public void create(AttributeList attributeList)
    super.create(attributeList);
    OADBTransaction transaction = getOADBTransaction();
    Number asgId = transaction.getSequenceValue("XXLC_VAR_ASG_SEQ");
    setAssignmentId(asgId);
    /**Add entity remove logic in this method.
    public void remove()
    super.remove();
    /**Add Entity validation code in this method.
    protected void validateEntity()
    super.validateEntity();
    /**Gets the attribute value for AssignmentId, using the alias name AssignmentId
    public Number getAssignmentId()
    return (Number)getAttributeInternal(ASSIGNMENTID);
    /**Sets <code>value</code> as the attribute value for AssignmentId
    public void setAssignmentId(Number value)
    if (value != null)
    OADBTransaction transaction = getOADBTransaction();
    Object[] varKey = {value};
    EntityDefImpl varDefinition = XXLCVarAssignmentsEOImpl.getDefinitionObject();
    XXLCVarAssignmentsEOImpl variable =
    (XXLCVarAssignmentsEOImpl)varDefinition.findByPrimaryKey(transaction, new Key(varKey));
    if (variable != null)
    throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT,
    getEntityDef().getFullName(), // EO name
    getPrimaryKey(), // EO PK
    "AssignmentId", // Attribute Name
    value, // Attribute value
    "AK", // Message product short name
    "FWK_TBX_T_EMP_ID_UNIQUE"); // Message name
    setAttributeInternal(ASSIGNMENTID, value);
    /**Gets the attribute value for AssignmentAccess, using the alias name AssignmentAccess
    public String getAssignmentAccess()
    return (String)getAttributeInternal(ASSIGNMENTACCESS);
    /**Sets <code>value</code> as the attribute value for AssignmentAccess
    public void setAssignmentAccess(String value)
    setAttributeInternal(ASSIGNMENTACCESS, value);
    /**Gets the attribute value for VariableId, using the alias name VariableId
    public Number getVariableId()
    return (Number)getAttributeInternal(VARIABLEID);
    /**Sets <code>value</code> as the attribute value for VariableId
    public void setVariableId(Number value)
    setAttributeInternal(VARIABLEID, value);
    /**Gets the attribute value for ListValueId, using the alias name ListValueId
    public Number getListValueId()
    return (Number)getAttributeInternal(LISTVALUEID);
    /**Sets <code>value</code> as the attribute value for ListValueId
    public void setListValueId(Number value)
    setAttributeInternal(LISTVALUEID, value);
    /**Gets the attribute value for OrganizationId, using the alias name OrganizationId
    public Number getOrganizationId()
    return (Number)getAttributeInternal(ORGANIZATIONID);
    /**Sets <code>value</code> as the attribute value for OrganizationId
    public void setOrganizationId(Number value)
    setAttributeInternal(ORGANIZATIONID, value);
    /**Gets the attribute value for TemplateId, using the alias name TemplateId
    public Number getTemplateId()
    return (Number)getAttributeInternal(TEMPLATEID);
    /**Sets <code>value</code> as the attribute value for TemplateId
    public void setTemplateId(Number value)
    setAttributeInternal(TEMPLATEID, value);
    /**Gets the attribute value for AuctionHeaderId, using the alias name AuctionHeaderId
    public Number getAuctionHeaderId()
    return (Number)getAttributeInternal(AUCTIONHEADERID);
    /**Sets <code>value</code> as the attribute value for AuctionHeaderId
    public void setAuctionHeaderId(Number value)
    setAttributeInternal(AUCTIONHEADERID, value);
    /**Gets the attribute value for PoHeaderId, using the alias name PoHeaderId
    public Number getPoHeaderId()
    return (Number)getAttributeInternal(POHEADERID);
    /**Sets <code>value</code> as the attribute value for PoHeaderId
    public void setPoHeaderId(Number value)
    setAttributeInternal(POHEADERID, value);
    /**Gets the attribute value for CreatedBy, using the alias name CreatedBy
    public Number getCreatedBy()
    return (Number)getAttributeInternal(CREATEDBY);
    /**Sets <code>value</code> as the attribute value for CreatedBy
    public void setCreatedBy(Number value)
    setAttributeInternal(CREATEDBY, value);
    /**Gets the attribute value for CreationDate, using the alias name CreationDate
    public Date getCreationDate()
    return (Date)getAttributeInternal(CREATIONDATE);
    /**Sets <code>value</code> as the attribute value for CreationDate
    public void setCreationDate(Date value)
    setAttributeInternal(CREATIONDATE, value);
    /**Gets the attribute value for LastUpdateDate, using the alias name LastUpdateDate
    public Date getLastUpdateDate()
    return (Date)getAttributeInternal(LASTUPDATEDATE);
    /**Sets <code>value</code> as the attribute value for LastUpdateDate
    public void setLastUpdateDate(Date value)
    setAttributeInternal(LASTUPDATEDATE, value);
    /**Gets the attribute value for LastUpdatedBy, using the alias name LastUpdatedBy
    public Number getLastUpdatedBy()
    return (Number)getAttributeInternal(LASTUPDATEDBY);
    /**Sets <code>value</code> as the attribute value for LastUpdatedBy
    public void setLastUpdatedBy(Number value)
    setAttributeInternal(LASTUPDATEDBY, value);
    /**Gets the attribute value for LastUpdateLogin, using the alias name LastUpdateLogin
    public Number getLastUpdateLogin()
    return (Number)getAttributeInternal(LASTUPDATELOGIN);
    /**Sets <code>value</code> as the attribute value for LastUpdateLogin
    public void setLastUpdateLogin(Number value)
    setAttributeInternal(LASTUPDATELOGIN, value);
    /**getAttrInvokeAccessor: generated method. Do not modify.
    protected Object getAttrInvokeAccessor(int index,
    AttributeDefImpl attrDef) throws Exception
    switch (index)
    case ASSIGNMENTID:
    return getAssignmentId();
    case ASSIGNMENTACCESS:
    return getAssignmentAccess();
    case VARIABLEID:
    return getVariableId();
    case LISTVALUEID:
    return getListValueId();
    case ORGANIZATIONID:
    return getOrganizationId();
    case TEMPLATEID:
    return getTemplateId();
    case AUCTIONHEADERID:
    return getAuctionHeaderId();
    case POHEADERID:
    return getPoHeaderId();
    case CREATEDBY:
    return getCreatedBy();
    case CREATIONDATE:
    return getCreationDate();
    case LASTUPDATEDATE:
    return getLastUpdateDate();
    case LASTUPDATEDBY:
    return getLastUpdatedBy();
    case LASTUPDATELOGIN:
    return getLastUpdateLogin();
    case ACCESSID:
    return getAccessId();
    default:
    return super.getAttrInvokeAccessor(index, attrDef);
    /**setAttrInvokeAccessor: generated method. Do not modify.
    protected void setAttrInvokeAccessor(int index, Object value,
    AttributeDefImpl attrDef) throws Exception
    switch (index)
    case ASSIGNMENTID:
    setAssignmentId((Number)value);
    return;
    case ASSIGNMENTACCESS:
    setAssignmentAccess((String)value);
    return;
    case VARIABLEID:
    setVariableId((Number)value);
    return;
    case LISTVALUEID:
    setListValueId((Number)value);
    return;
    case ORGANIZATIONID:
    setOrganizationId((Number)value);
    return;
    case TEMPLATEID:
    setTemplateId((Number)value);
    return;
    case AUCTIONHEADERID:
    setAuctionHeaderId((Number)value);
    return;
    case POHEADERID:
    setPoHeaderId((Number)value);
    return;
    case CREATEDBY:
    setCreatedBy((Number)value);
    return;
    case CREATIONDATE:
    setCreationDate((Date)value);
    return;
    case LASTUPDATEDATE:
    setLastUpdateDate((Date)value);
    return;
    case LASTUPDATEDBY:
    setLastUpdatedBy((Number)value);
    return;
    case LASTUPDATELOGIN:
    setLastUpdateLogin((Number)value);
    return;
    case ACCESSID:
    setAccessId((Number)value);
    return;
    default:
    super.setAttrInvokeAccessor(index, value, attrDef);
    return;
    /**Gets the attribute value for AccessId, using the alias name AccessId
    public Number getAccessId()
    return (Number)getAttributeInternal(ACCESSID);
    /**Sets <code>value</code> as the attribute value for AccessId
    public void setAccessId(Number value)
    setAttributeInternal(ACCESSID, value);
    /**Creates a Key object based on given key constituents
    public static Key createPrimaryKey(Number assignmentId)
    return new Key(new Object[]{assignmentId});
    Thanks,
    SK

  • Getting error Unable to perform transaction on the record.

    Hi,
    My requirement is to implement the custom attachment, and to store the data into custom lob table.
    my custom table structure is similer to that of standard fnd_lobs table and have inserted the data through EO based VO.
    Structure of custom table
    CREATE TABLE XXAPL.XXAPL_LOBS
    ATTACHMENT_ID NUMBER NOT NULL,
    FILE_NAME VARCHAR2(256 BYTE),
    FILE_CONTENT_TYPE VARCHAR2(256 BYTE) NOT NULL,
    FILE_DATA BLOB,
    UPLOAD_DATE DATE,
    EXPIRATION_DATE DATE,
    PROGRAM_NAME VARCHAR2(32 BYTE),
    PROGRAM_TAG VARCHAR2(32 BYTE),
    LANGUAGE VARCHAR2(4 BYTE) DEFAULT ( userenv ( 'LANG') ),
    ORACLE_CHARSET VARCHAR2(30 BYTE) DEFAULT ( substr ( userenv ( 'LANGUAGE') , instr ( userenv ( 'LANGUAGE') , '.') +1 ) ),
    FILE_FORMAT VARCHAR2(10 BYTE) NOT NULL
    i have created a simple messegefileupload and submit button on my custom page and written below code on CO:
    Process Request Code:
    if(!pageContext.isBackNavigationFired(false))
    TransactionUnitHelper.startTransactionUnit(pageContext, "AttachmentCreateTxn");
    if(!pageContext.isFormSubmission()){
    System.out.println("In ProcessRequest of AplAttachmentCO");
    am.invokeMethod("initAplAttachment");
    else
    if(!TransactionUnitHelper.isTransactionUnitInProgress(pageContext, "AttachmentCreateTxn", true))
    OADialogPage dialogPage = new OADialogPage(NAVIGATION_ERROR);
    pageContext.redirectToDialogPage(dialogPage);
    ProcessFormRequest Code:
    if (pageContext.getParameter("Upload") != null)
    DataObject fileUploadData = (DataObject)pageContext.getNamedDataObject("FileItem");
    String strFileName = null;
    strFileName = pageContext.getParameter("FileItem");
    if(strFileName == null || "".equals(strFileName))
    throw new OAException("Please select a File for upload");
    fileName = strFileName;
    contentType = (String)fileUploadData.selectValue(null, "UPLOAD_FILE_MIME_TYPE");
    BlobDomain uploadedByteStream = (BlobDomain)fileUploadData.selectValue(null, fileName);
    String strItemDescr = pageContext.getParameter("ItemDesc");
    OAFormValueBean bean = (OAFormValueBean)webBean.findIndexedChildRecursive("AttachmentId");
    String strAttachId = (String)bean.getValue(pageContext);
    System.out.println("Attachment Id:" +strAttachId);
    int aInt = Integer.parseInt(strAttachId);
    Number numAttachId = new Number(aInt);
    Serializable[] methodParams = {fileName, contentType , uploadedByteStream , strItemDescr , numAttachId};
    Class[] methodParamTypes = {fileName.getClass(), contentType.getClass() , uploadedByteStream.getClass() , strItemDescr.getClass() , numAttachId.getClass()};
    am.invokeMethod("setUploadFileRowData", methodParams, methodParamTypes);
    am.invokeMethod("apply");
    System.out.println("Records committed in lobs table");
    if (pageContext.getParameter("AddAnother") != null)
    pageContext.forwardImmediatelyToCurrentPage(null,
    true, // retain AM
    OAWebBeanConstants.ADD_BREAD_CRUMB_YES);
    if (pageContext.getParameter("cancel") != null)
    am.invokeMethod("rollbackShipment");
    TransactionUnitHelper.endTransactionUnit(pageContext, "AttachmentCreateTxn");
    Code in AM:
    public void apply(){
    getTransaction().commit();
    public void initAplAttachment() {
    OAViewObject lobsvo = (OAViewObject)getAplLobsAttachVO1();
    if (!lobsvo.isPreparedForExecution())
    lobsvo.executeQuery();
    Row row = lobsvo.createRow();
    lobsvo.insertRow(row);
    row.setNewRowState(Row.STATUS_INITIALIZED);
    public void setUploadFileRowData(String fName, String fContentType, BlobDomain fileData , String fItemDescr , Number fAttachId)
    AplLobsAttachVOImpl VOImpl = (AplLobsAttachVOImpl)getAplLobsAttachVO1();
    System.out.println("In setUploadFileRowData method");
    System.out.println("In setUploadFileRowData method fAttachId: "+fAttachId);
    System.out.println("In setUploadFileRowData method fName: "+fName);
    System.out.println("In setUploadFileRowData method fContentType: "+fContentType);
    RowSetIterator rowIter = VOImpl.createRowSetIterator("rowIter");
    while (rowIter.hasNext())
    AplLobsAttachVORowImpl viewRow = (AplLobsAttachVORowImpl)rowIter.next();
    viewRow.setFileContentType(fContentType);
    viewRow.setFileData(fileData);
    viewRow.setFileFormat("IGNORE");
    viewRow.setFileName(fName);
    rowIter.closeRowSetIterator();
    System.out.println("setting on fndlobs done");
    The attchemnt id is the sequence generated number, and its defaulting logic is written in EO
    public void create(AttributeList attributeList) {
    super.create(attributeList);
    OADBTransaction transaction = getOADBTransaction();
    Number attachmentId = transaction.getSequenceValue("xxapl_po_ship_attch_s");
    setAttachmentId(attachmentId);
    public void setAttachmentId(Number value) {
    System.out.println("In ShipmentsEOImpl value::"+value);
    if (getAttachmentId() != null)
    System.out.println("In AplLobsAttachEOImpl AttachmentId::"+(Number)getAttachmentId());
    throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT,
    getEntityDef().getFullName(), // EO name
    getPrimaryKey(), // EO PK
    "AttachmentId", // Attribute Name
    value, // Attribute value
    "AK", // Message product short name
    "FWK_TBX_T_EMP_ID_NO_UPDATE"); // Message name
    if (value != null)
    // Attachment ID must be unique. To verify this, you must 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 AplLobsAttachment.
    // First it checks the entity cache, then it checks the database.
    OADBTransaction transaction = getOADBTransaction();
    Object[] attachmentKey = {value};
    EntityDefImpl attachDefinition = AplLobsAttachEOImpl.getDefinitionObject();
    AplLobsAttachEOImpl attachment =
    (AplLobsAttachEOImpl)attachDefinition.findByPrimaryKey(transaction, new Key(attachmentKey));
    if (attachment != null)
    throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT,
    getEntityDef().getFullName(), // EO name
    getPrimaryKey(), // EO PK
    "AttachmentId", // Attribute Name
    value, // Attribute value
    "AK", // Message product short name
    "FWK_TBX_T_EMP_ID_UNIQUE"); // Message name
    setAttributeInternal(ATTACHMENTID, value);
    Issue faced:
    When i run the page for the first time data gets inserted into custom table perfectly on clicking upload button,
    but when clicked on add another button on the same page (which basically redirects to the same upload page and increments the attachment id by 1)
    i am getting the below error:
    Error
    Unable to perform transaction on the record.
    Cause: The record contains stale data. The record has been modified by another user.
    Action: Cancel the transaction and re-query the record to get the new data.
    Have spent entire day to resolve this issue but no luck.
    Any help on this will be appreciated, let me know if i am going wrong anywhere.
    Thanks nd Regards
    Avinash

    Hi,
    After, inserting the values please re-execute the VO query.
    Also, try to redirect the page with no AM retension
    Thanks,
    Gaurav

  • Submit button not throwing error

    I have a Search Region and a table to show the data based on Search criteria...After search I am modifying the some fields with invalid data in Result table
    and I am clicking the Submit button, it is throwing error(I written Exception in EO level) , the same time if i click the submit button second time , it is not validating and throwing the error and record is saving to database with invalid data.
    Could you please help me and let me know what I am missing here?

    I written the following code in EntityExpert, the EntityExpert code in EO
    public boolean isItemNameValid(String ItemName)
    System.out.println("Entity Expert");
    System.out.println(ItemName);
    boolean isActive = false;
    ItemNameVVOImpl ItemNameVO = (ItemNameVVOImpl)findValidationViewObject("ItemNameVVO1");
    ItemNameVO.initQuery(ItemName);
    if (ItemNameVO.hasNext())
    isActive = true;
    System.out.println("Return ");
    System.out.println(isActive);
    return isActive;
    and I am calling the above method in EOImpl
    public void setItemName(String value)
    if ((value != null) || (!("".equals(value.trim()))))
    ItemNameEntityExpert expert = getItemNameEntityExpert(getOADBTransaction());
    if (!(expert.isItemNameValid(value)))
    throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT,
    getEntityDef().getFullName(), // EO name
    getPrimaryKey(), // EO PK
    "Item Name", // Attribute Name
    value, // Attribute value
    "MSC", // Message product short name
    "UPDATE_SUPPLY_ITEMNAME"); // Message name
    setAttributeInternal(ITEMNAME, value);
    Please check.
    Thanks,
    K.Murugesan

  • Any way to display row-level errors in AdvancedTable from ProcessRequest?

    I have a page which displays data in an Advanced Table. Users are also able to edit the data on each row, and then save. Upon saving, it will validate the data, and display row-level errors (via either OARowValException or OAAttrValException). That's all working fine.
    The issue I have, is that sometimes data can become invalid from outside of this particular screen. So when a user opens the screen, some of the data displayed is already invalid. If the user saves, without changing anything, they'll see the errors. I want to show the errors immediately, without them having to save on every range of records. So I basically want to re-validate everything when it is first displayed, so from ProcessRequest. Is there any way to actually do that? I've tried several ways, but nothing seems to work.

    Hi,
    I havent used it but u can try with the below logic
    Write ur logic in AM...
    Import oracle.apps.fnd.framework.OAAttrValException
    Import oracle.apps.fnd.framework.OARowValException
    //Iterate through all the rows.
    if(attr1!=attr2)
       throw new OARowValException (
            getEntityDef().getFullName(), // entity full definition name
            getPrimaryKey(),              // entity object primary key
            "FND",                        // message application short name
            "ATTR_EXCEPTION");            // message name Regards,
    Gyan

  • Urgent : Facing an error after deploying Extended EO

    I have extended an EO,Overridden a method to add some validation logic.I have successfully deployed it on the Application Server.
    But when I click save on the page,When that Validation should be fired,I am getting the following error:
    (Am pasting a part of the error stack)
    oracle.apps.fnd.framework.OAException: oracle.jbo.DMLException: JBO-26041: Failed to post data to database during "Insert": SQL Statement " INSERT INTO TELENOREXPENSEREPORTLINEEO(REPORT_HEADER_ID,LAST_UPDATE_DATE,LAST_UPDATED_BY,ITEM_DESCRIPTION,SET_OF_BOOKS_ID,AMOUNT,ATTRIBUTE_CATEGORY,ATTRIBUTE1,ATTRIBUTE2,ATTRIBUTE3,ATTRIBUTE4,ATTRIBUTE5,ATTRIBUTE6,ATTRIBUTE7,ATTRIBUTE8,ATTRIBUTE10,ATTRIBUTE11,ATTRIBUTE12,ATTRIBUTE13,ATTRIBUTE14,ATTRIBUTE15,CURRENCY_CODE,VAT_CODE,LINE_TYPE_LOOKUP_CODE,LAST_UPDATE_LOGIN,CREATION_DATE,CREATED_BY,DISTRIBUTION_LINE_NUMBER,JUSTIFICATION_REQUIRED_FLAG,RECEIPT_REQUIRED_FLAG,RECEIPT_MISSING_FLAG,JUSTIFICATION,START_EXPENSE_DATE,END_EXPENSE_DATE,RECEIPT_CURRENCY_CODE,RECEIPT_CONVERSION_RATE,DAILY_AMOUNT,RECEIPT_CURRENCY_AMOUNT,WEB_PARAMETER_ID,AMOUNT_INCLUDES_TAX_FLAG,TAX_CODE_ID,TAX_CODE_OVERRIDE_FLAG,DESTINATION_FROM,DESTINATION_TO,ATTENDEES,TICKET_CLASS_CODE,TICKET_NUMBER,NUMBER_ATTENDEES,TRAVEL_TYPE,LOCATION,CATEGORY_CODE,REPORT_LINE_ID) VALUES (:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14,:15,:16,:17,:18,:19,:20,:21,:22,:23,:24,:25,:26,:27,:28,:29,:30,:31,:32,:33,:34,:35,:36,:37,:38,:39,:40,:41,:42,:43,:44,:45,:46,:47,:48,:49,:50,:51,:52)".
         at oracle.apps.fnd.framework.OAException.wrapperInvocationTargetException(OAException.java:975)
         at oracle.apps.fnd.framework.server.OAUtility.invokeMethod(OAUtility.java:211)
         at oracle.apps.fnd.framework.server.OAApplicationModuleImpl.invokeMethod(OAApplicationModuleImpl.java:707)
         at oracle.apps.ap.oie.webui.NavigationUtility.doImplicitSave(NavigationUtility.java:1587)
         at oracle.apps.ap.oie.webui.NavigationUtility.forwardImmediately(NavigationUtility.java:1284)
         at oracle.apps.ap.oie.webui.NavigationUtility.forwardToTrainPage(NavigationUtility.java:1232)
         at oracle.apps.ap.oie.webui.ButtonsCO.processFormRequest(ButtonsCO.java:395)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:804)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:363)
         at oracle.apps.fnd.framework.webui.beans.nav.OAPageButtonBarBean.processFormRequest(OAPageButtonBarBean.java:370)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:1015)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:966)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:821)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:363)
         at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processFormRequest(OAPageLayoutHelper.java:1156)
         at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processFormRequest(OAPageLayoutBean.java:1579)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:1000)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:966)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:821)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:363)
         at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processFormRequest(OAFormBean.java:395)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:1000)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:966)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:821)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:363)
         at oracle.apps.fnd.framework.webui.beans.OABodyBean.processFormRequest(OABodyBean.java:363)
         at oracle.apps.fnd.framework.webui.OAPageBean.processFormRequest(OAPageBean.java:2658)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1665)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:502)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:423)
         at oa_html._OA._jspService(_OA.java:88)
         at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
         at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
         at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
         at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
         at oracle.jsp.JspServlet.service(JspServlet.java:156)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
         at org.apache.jserv.JServConnection.processRequest(JServConnection.java:456)
         at org.apache.jserv.JServConnection.run(JServConnection.java:294)
         at java.lang.Thread.run(Thread.java:534)
    ## Detail 0 ##
    java.sql.SQLException: ORA-00942: table or view 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:589)
         at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1972)
         at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1119)
         at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2185)
         at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2059)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2976)
         at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:656)
         at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:734)
         at oracle.jbo.server.OracleSQLBuilderImpl.doEntityDML(OracleSQLBuilderImpl.java:371)
         at oracle.jbo.server.EntityImpl.doDML(EntityImpl.java:5105)
         at oracle.apps.ap.oie.server.ExpenseReportLineEOImpl.doDML(ExpenseReportLineEOImpl.java:427)
         at oracle.jbo.server.EntityImpl.postChanges(EntityImpl.java:4012)
         at oracle.apps.fnd.framework.server.OAEntityImpl.postChanges(OAEntityImpl.java:1706)
         at oracle.jbo.server.DBTransactionImpl.doPostTransactionListeners(DBTransactionImpl.java:2761)
         at oracle.jbo.server.DBTransactionImpl.postChanges(DBTransactionImpl.java:2607)
         at oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:1796)
         at oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:1993)
         at oracle.apps.fnd.framework.server.OADBTransactionImpl.commit(OADBTransactionImpl.java:695)
         at oracle.apps.ap.oie.server.ExpensesAMImpl.saveExpenseReport(ExpensesAMImpl.java:2414)
         at oracle.apps.ap.oie.server.WebExpensesAMImpl.saveExpenseReport(WebExpensesAMImpl.java:5803)
         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.OAApplicationModuleImpl.invokeMethod(OAApplicationModuleImpl.java:707)
         at oracle.apps.ap.oie.webui.NavigationUtility.doImplicitSave(NavigationUtility.java:1587)
         at oracle.apps.ap.oie.webui.NavigationUtility.forwardImmediately(NavigationUtility.java:1284)
         at oracle.apps.ap.oie.webui.NavigationUtility.forwardToTrainPage(NavigationUtility.java:1232)
         at oracle.apps.ap.oie.webui.ButtonsCO.processFormRequest(ButtonsCO.java:395)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:804)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:363)
         at oracle.apps.fnd.framework.webui.beans.nav.OAPageButtonBarBean.processFormRequest(OAPageButtonBarBean.java:370)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:1015)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:966)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:821)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:363)
         at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processFormRequest(OAPageLayoutHelper.java:1156)
         at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processFormRequest(OAPageLayoutBean.java:1579)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:1000)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:966)
    Regards
    Jujaar

    Hi,
    Please find the Code of the extended EO
    package telenor.oracle.apps.ap.oie.server;
    import oracle.apps.ap.oie.server.ExpenseReportLineEOImpl;
    import oracle.jbo.server.EntityDefImpl;
    import oracle.jbo.server.AttributeDefImpl;
    import oracle.jbo.AttributeList;
    import oracle.jbo.Key;
    import oracle.apps.fnd.framework.OAException;
    import oracle.jbo.domain.Number;
    import oracle.apps.fnd.framework.OAAttrValException;
    // --- File generated by Oracle Business Components for Java.
    public class TelenorExpenseReportLineEOImpl extends ExpenseReportLineEOImpl
    protected static final int MAXATTRCONST = EntityDefImpl.getMaxAttrConst("oracle.apps.ap.oie.server.ExpenseReportLineEO");
    private static oracle.apps.fnd.framework.server.OAEntityDefImpl mDefinitionObject;
    * This is the default constructor (do not remove)
    public TelenorExpenseReportLineEOImpl()
    * Retrieves the definition object for this instance class.
    public static synchronized EntityDefImpl getDefinitionObject()
    if (mDefinitionObject == null)
    mDefinitionObject = (oracle.apps.fnd.framework.server.OAEntityDefImpl)EntityDefImpl.findDefObject("telenor.oracle.apps.ap.oie.server.TelenorExpenseReportLineEO");
    return mDefinitionObject;
    * Creates a Key object based on given key constituents
    public static Key createPrimaryKey(Number reportLineId)
    return new Key(new Object[] {reportLineId});
    public void setSubmittedAmount(Number number)
    if(number.compareTo(400) != 0 )
    throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT,
    getEntityDef().getFullName(), // EO name
    getPrimaryKey(), // EO PK
    "UnitPrice", // Attribute Name
    number, // Attribute value
    "AK", // Message product short name
    "FWK_TBX_T_PO_PRICE_EXCEEDED"); // Message name
    // throw new OAException("hI IN eXCEPTION", OAException.INFORMATION);
    super.setSubmittedAmount(number);
    }

  • How to clear exception cache in VO when using OAAttrValException

    I am using OAAttrValException to validate that individual required attributes are populated before a user can submit the page. The function i have in the VOImpl is as follows
    public void validateRow() {
    ArrayList exceptions = new ArrayList();
    String address1 = (String)getCurrentRow().getAttribute("Address1");
    String postCode = (String)getCurrentRow().getAttribute("PostalCode");
    if (address1==null) {
    MessageToken[] tokens = { new MessageToken("FIELD", address1) };
    exceptions.add( new OAAttrValException(OAException.TYP_VIEW_OBJECT
    , getViewObject().getFullName() // VO name
    , getCurrentRow().getKey() // VO PKs
    , "Address1" // Attribute Name
    , address1 // Attribute value
    , "XX" // Message product short name
    , "NTZZ_CZ_ADDRESS_FIELD_REQUIRED"// Message name
    , tokens)); // Message Parameters
    if (postCode==null) {
    MessageToken[] tokens = { new MessageToken("FIELD", postCode) };
    exceptions.add( new OAAttrValException(OAException.TYP_VIEW_OBJECT
    , getViewObject().getFullName() // VO name
    , getCurrentRow().getKey() // VO PKs
    , "PostalCode" // Attribute Name
    , postCode // Attribute value
    , "XX" // Message product short name
    , "NTZZ_CZ_ADDRESS_FIELD_REQUIRED"// Message name
    , tokens)); // Message Parameters
    OAException.raiseBundledOAException(exceptions);
    The problem is that every time you click submit it adds these exceptions to the list of exception already thrown i.e. it doesnt seem to clear the exceptions from the last submit, so the list of exception messages just gets longer and longer. Ideally I would like to flush these messages on submit but before I validate using something like clearAllExceptions() as in the EOImpl, but this method does not appear to be available in he VO.
    Does anyone have any suggestions about how I can achieve this?
    Thanks,
    Danny

    Danny,
    The simple and straight solution to your problem in that the row validation code you are writing is written in wrong file.VOIMpl file should only contain logic related to query manipulation of View Object. If you wanna do row validation at vo level, this code should go in VORowimpl file and not VOimpl file. In VORowimpl file BC4J framework provides a method called validate(), you can utilise that.The validate() method is automically called every time a post event has been generated.The method in turn invokes validate entity method in each of the entity objects involved in VO.
    This validate method is called in process form data in OAF lifecycle. So this how your code should look like in VORowimpl :
    public void validate()
    super.validate();
    ArrayList exceptions = new ArrayList();
    String address1 = (String)getCurrentRow().getAttribute("Address1");
    String postCode = (String)getCurrentRow().getAttribute("PostalCode");
    if (address1==null) {
    MessageToken[] tokens = { new MessageToken("FIELD", address1) };
    exceptions.add( new OAAttrValException(OAException.TYP_VIEW_OBJECT
    , getViewObject().getFullName() // VO name
    , getCurrentRow().getKey() // VO PKs
    , "Address1" // Attribute Name
    , address1 // Attribute value
    , "XX" // Message product short name
    , "NTZZ_CZ_ADDRESS_FIELD_REQUIRED"// Message name
    , tokens)); // Message Parameters
    if (postCode==null) {
    MessageToken[] tokens = { new MessageToken("FIELD", postCode) };
    exceptions.add( new OAAttrValException(OAException.TYP_VIEW_OBJECT
    , getViewObject().getFullName() // VO name
    , getCurrentRow().getKey() // VO PKs
    , "PostalCode" // Attribute Name
    , postCode // Attribute value
    , "XX" // Message product short name
    , "NTZZ_CZ_ADDRESS_FIELD_REQUIRED"// Message name
    , tokens)); // Message Parameters
    OAException.raiseBundledOAException(exceptions);
    Sumit,
    Making Arraylist defined globally in VOimpl class would not solve the purpose, because in present code ArrayList has been initialized inside validateRow() method hence, everytime this method is called Arraylist is automatically initialized by new , but the errorstack is not cleared.This code should be at such a place where it should be automaticallyclear the last error stack when its called everytime in framework i.e. validate method in VOImpl or validateEntity method in EOImpl.
    I hope this helps.
    --Mukul                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Question on customizing OAAttrValException

    I have validations coded in EO's validateEntity().
    They are working properly with my custom exceptions message.
    Validation Code in EO:
        if (getObjectCode().length() < 4)
          MessageToken[] ObjectCodetokens = { new MessageToken("DIGIT", "4") };
          throw new OAAttrValException (
                OAException.TYP_ENTITY_OBJECT,
                getEntityDef().getFullName(), // EO name
                getPrimaryKey(), // EO PK
                "ObjectCode", //attribute name
                getObjectCode(), // bad attribute value
                "XX", //message application short name
                "XX_FWK_DIGIT_REQUIRED",
                ObjectCodetokens); // message name
        }The exception shows like the following on top of the page, if object code input is less then 4 digit
    Row 1 ObjectCode - 4 digit numeric required.My question is, is there a way to get rid of "Row 1 ObjectCode -" and just show "4 digit numeric required."?
    (Note: "Row 1 ObjectCode -" is not part of my custom exception message.)
    Thanks.

    You can customize the "Row 1" etc text. You do this by using the view property ROW_DISPLAY_PREFIX_ATTR_NAME. You set the value to name of a transient view attribute. Then, in your VORowImpl, you build the string that will be displayed instead of "Row 1". For example if your view attribute is called ErrorText you would have this:
    public String getErrorText{}
    return "Error for " + this.getAnotherAttibuteValue() + ":";
    }ROW_DISPLAY_PREFIX_ATTR_NAME is documented in the OAF Developer's Guide.

  • How to suppress system generated error message in message box

    HI OAF Guys
    combination of headerId and role id constitutes the primary key in my applicaiton. I am setting header id in create method of the EO.java file. when i click on add another row, it creates a table row and displays with the list of values in drop down list. when i selected the role that is selected already, and click on save the OA framework showing the error like this.
    Row 2 ApproverName - Attribute Role in TermsDeviationsAM.BsaMainRN510_BsaMainRN_com_equinix_oracle_apps_okc_terms_deviations_server_EqxBsaApproversAM.EqxOMBSAApproversVO1 is required
    I tried to suppress this error by handling at EO.java file in setRole() by throwing OAAttrValException with message. but I could not suppress the previous error message. Now it is displaying the user message along with the first one.
    i want suppress the previous error message. How can i achive that.
    Thanks in advance
    Thanks & Regards
    U.palakondaiah.

    Try this example code:
    PARAMETERS: p_text(10) TYPE c.
    PARAMETERS: p_check TYPE c AS CHECKBOX.
    AT SELECTION-SCREEN.
      IF p_check EQ 'X'.
        IF p_text IS INITIAL.
          MESSAGE 'Text field is mandatory' TYPE 'E'.
        ENDIF.
      ENDIF.
    START-OF-SELECTION.
    WRITE: / 'OK!'.

  • Using OAAttrValException in a train locator

    Hi, i'm having big trouble with OAAttrValException in a train locator. I have written several validation logic in my EOimpl.java setters and used OAAttrValException to throw errors.
    I even tried at the VORowImpl level but same result.
    I have debugged the pages and when a validaton test fails i can see that the debugger steps into the OAAttrValException statement but no exception is shown in my page, the application just goes on to the next page in the train.
    Are there any special considerations to take when usin OAAttrValException in a train?
    Regards
    Steinar

    Hi Shiv!
    Been on a looong vacation, hence the delay.
    Here is the code i have written in EOImpl:
    ============================================================
    * Sets <code>value</code> as the attribute value for Navn
    public void setNavn(String value)
    if (value.length() != 5 )
    throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT,
    getEntityDef().getFullName(), // EO name
    getPrimaryKey(), // EO PK
    "Navn", // Attribute Name
    value, // Attribute value
    "XXET", // Message product short name
    "XXET_BL020_ERR_VAL_NAVN"); // Message name
    setAttributeInternal(NAVN, value);
    ============================================================
    Debugging shows that "throw" statement is entered and that the
    "setAttributeInternal" is never called. Still no error message is displayed and the next page in the train is displayed.
    Regards
    Steinar
    Message was edited by:
    sgrhdk

  • How to overwrite the server side validation error message generated by OAF

    Hi,
    I have an update page, after a new row is added, if I leave column1 blank, and click 'save' button, I get the error message both on the top of the page and under column1, the error message is like:
    Row 4 Q1 Value - Attribute Q1Value in Xxg2cNodeSeasonalityAM.Xxg2cNodeSeasonalityVO1 is required.
    I would like to have error message as following:
    Row 4 Q1 Value - Q1 is mandatory.
    How should I do?
    thanks
    Lei

    Lei,
    Check use of OAAttrValException in javadoc.
    --Shiv                                                                                                                                                                                                   

  • Pass message token to OAAttrValException

    Hi All,
    I am performing some validation at validateEntity() level in my EO.
    I want to throw an error message like this:
    Receipt &RECEIPT_NO has an invoice number completed but no supporter has been specified.
    I can do this message with the below code:
    MessageToken[] tokens =
    new MessageToken("RECEIPT_NO", getReceiptIdDsp())
    throw new OAException("XX", "CUST_QEP_SUPPORTER_NO_REQUIRED", tokens, OAException.ERROR, null);
    but this obviously wont highlight the field that caused the error on the page unlike the below code:
    throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT,
    getEntityDef().getFullName(), // EO name
    getPrimaryKey(), // EO PK
    "SupporterId", // Attribute Name
    getSupporterId(), // Attribute value
    "XX", // Message product short name
    "CUST_QEP_SUPPORTER_NO_REQUIRED"); // Message name
    My question is how do I pass a token containing my error message params using OAAttrValException so my message will pick them up?
    Thanks
    Keith

    Try this one:
    throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT,
    getEntityDef().getFullName(), // EO name
    getPrimaryKey(), // EO PK
    "SupporterId", // Attribute Name
    getSupporterId(), // Attribute value
    "XX", // Message product short name
    "CUST_QEP_SUPPORTER_NO_REQUIRED", // Message name
    new MessageToken("RECEIPT_NO", getReceiptIdDsp())); //Message Token
    Please let me know if you face any problems.
    Thanks
    Sumit

Maybe you are looking for