Unable to set new values in Entity

Hi Experts,
I am trying to change an entity from readonly to changeable and set property of an attribute. But, i am not successful. In the below "If ME->IS_CHAN......" condition, the second condition is not successful and it doesnot let the entity to change. I am not sure, from where the data is getting filled for "ME->CONTAINER_PROXY->DATA_REF->ATTRIBUTE_REF". Can someone please point me the solution ?
Thanks in advance.
method IF_BOL_BO_PROPERTY_ACCESS~SET_PROPERTY .
  data: LV_IDX       type CRMT_IDX,
        LV_PROPS_OBJ type ref to IF_GENIL_OBJ_ATTR_PROPERTIES.
  field-symbols: <DATA>  type any,
                 <VALUE> type any.
  MAKE_VALID_STATE( ).
  assign ME->CONTAINER_PROXY->DATA_REF->ATTRIBUTE_REF->* to <DATA>.
  assign component IV_ATTR_NAME of structure <DATA> to <VALUE>.
  if SY-SUBRC = 0.
*   check changeability of property
    LV_PROPS_OBJ = ME->CONTAINER_PROXY->GET_ATTR_PROPS_OBJ( ).
    try.
        LV_IDX = OBJECT_MODEL->GET_ATTR_IDX_BY_NAME(
                             IV_OBJECT_NAME = ME->MY_INSTANCE_KEY->OBJECT_NAME
                             IV_ATTR_NAME   = IV_ATTR_NAME ).
        if ME->IS_CHANGEABLE( ) = ABAP_TRUE and
           LV_PROPS_OBJ->GET_PROPERTY_BY_IDX( LV_IDX ) ne IF_GENIL_OBJ_ATTR_PROPERTIES=>READ_ONLY.
          if <VALUE> ne IV_VALUE.
            if ME->MY_MANAGER_ENTRY->DELTA_FLAG is initial.
*             first 'change' -> proof that entity is locked
              if ME->MY_MANAGER_ENTRY->LOCKED = FALSE.
                if ME->LOCK( ) = FALSE.
                  return.
                endif.
              endif.
Edited by: Gaurav Subramaniam on Jun 2, 2011 5:30 PM
Edited by: Gaurav Subramaniam on Jun 2, 2011 5:31 PM

Hi Gaurav,
As already mentioned your entity is set to READ-ONLY mode at GenIL level. Hence, the following line returns READ-ONLY :-
LV_PROPS_OBJ->GET_PROPERTY_BY_IDX( LV_IDX ) ne IF_GENIL_OBJ_ATTR_PROPERTIES=>READ_ONLY.
This is set at GenIL level in the GenIL class. Hence, you'll have to find the GenIL class and look for method - SET_ATTR_PROPERTIES. Here you will find code that sets mode (changeable / readonly) each attribute.
Follow below steps :-
- Create a Zclass and inherit it from the above class.
- Redefine the above method.
- Set attributes to changeable mode.
Here is a sample code :-
  DATA: lv_attr_props       TYPE REF TO if_genil_obj_attr_properties.
* First get the property object
  lv_attr_props = iv_object->get_attr_props_obj( ).
  lv_attr_props->set_property_by_name( iv_name  = 'Field1'
                                       iv_value = if_genil_obj_attr_properties=>changeable ).
  lv_attr_props->set_property_by_name( iv_name  = 'Field2'
                                       iv_value = if_genil_obj_attr_properties=>changeable ).
Alternatively you can set attribute properties for all fields at once :-
* set property 'changeable' for all attributes
  lv_attr_props->set_all_properties( if_genil_obj_attr_properties=>changeable ).
Thanks,
Ashish

Similar Messages

  • Problem while setting new value to entity object attribute in doDML meathod

    Hi all,
    I am overriding the entity objects doDML method for generating the value of Sequence Number just before insert .
    For this puropose i am using doDML method. I am fetching the maximum value for the sequence number feild from the table by a prepared statement
    and then incrementing that value by one.
        protected void doDML(int operation, TransactionEvent e) {
            if (operation == DML_INSERT) {
                // code for getting the max+1 of sequence number before insert
                //command executes.
                try {
                    System.out.println("Inside doDML Method");
                    String sql =
                        "select nvl(max(seq_no),0)+1  from WF_LEAVE_HDR where org_unit_code = " +
                        this.getOrgUnitCode();
                    PreparedStatement pstmt =
                        getDBTransaction().createPreparedStatement(sql, 0);
                    ResultSet rs = pstmt.executeQuery();
                    rs.next();
                    Integer newSeqNo =rs.getInt(1); //(Number)rs.getString(0);
                    //this.setSeqNo(new Number(newSeqNo));
                    setAttributeInternal("SeqNo",new Number(newSeqNo));
                    System.out.println("Value of new seq no is -->>"+getSeqNo());
                } catch (Exception excpt) {
                    System.out.println("Inside catch block ");
                    excpt.printStackTrace();
            super.doDML(operation, e);
        }i am getting the value correct by using the sql statement but while i am using setAttributeInternal("SeqNo",new Number(newSeqNo));
    it is giving an error and value for new sequence no is not passed to the seq no feild of the entity object. I have tried this.setSeqNo(new Number(newSeqNo))
    but it is also not wotrking .
    Any one please help , I am using Jdeveloper 10.1.3
    Thanks all in advance.

    iloveoracle,
    Sigh... in addition to doing this in doDML (which Dimitar points out is the wrong place to do this)... you are making a huge huge mistake.
    select nvl(max(seq_no),0)+1  from WF_LEAVE_HDRWhat happens when two people do this at around the same time? You don't do any locking, so you will get two rows with the same SeqNo. This is absolutely the wrong way of doing sequence numbers. The best way of doing this would be to use real sequence numbers (an Oracle sequence) and ignore the fact that there will be gaps. If you insist on using your approach, you MUST LOCK THE ENTIRE TABLE before you try to do your little max() + 1 trick, otherwise you run the very real risk of getting duplicate SeqNos. OK, I see that you are trying to do sequences by org_unit_code, so you don't have to lock the whole table, but you do have to have some way of holding a lock. You must also write some code to be able to handle an "unable to get the lock because someone else already holds it" type of situation.
    <rant>
    I have seen so many people try to do this little max() + 1 trick. It DOES NOT, WILL NOT work until you handle locking properly. One question that I often ask when I interview database developers is about generating "gapless" sequences; unless the job is for a brand-new-with-absolutely-no-experience trainee, answering "select max() + 1" without any mention of concurrency issues would be grounds for an immediate rejection of the candidate. Seriously. Have a run over to http://asktom.oracle.com and search for "gapless" if you'd like to see a more strongly worded rant.
    </rant>
    Bottom line, just use an Oracle sequence if it's at all possible; otherwise, be prepared to write some bunches of code to deal with locking.
    John

  • Set new value for VO attribut

    I have function in package on database which is param is String and return value is also String(VARCHAR2).
    That function calculate some field on db and return a result.That is OK
    I made VO in my AM.
    "SELECT package_name.func_name("string") from dual" and that is OK also.
    When I start that module I recive valid result from database based on string which I passed to function.
    And that works fine.
    Question :
    How can I change value or how can I set new value for the package_name.func_name(variable) in VO
    during runtime in my application ? ^^^^^^^^
    JDeveloper 9.0.3.988

    I have function in package on database which is param is String and return value is also String(VARCHAR2).
    That function calculate some field on db and return a result.That is OK
    I made VO in my AM.
    "SELECT package_name.func_name("string") from dual" and that is OK also.
    When I start that module I recive valid result from database based on string which I passed to function.
    And that works fine.
    Question :
    How can I change value or how can I set new value for the package_name.func_name(variable) in VO
    during runtime in my application ? ^^^^^^^^
    JDeveloper 9.0.3.988 1. When using stored procedures it would be better to use it in following way:
    Connection conn = //get it some how
    CallableStatement cs = conn.prepareCall("{call myPackage.do_something(?)}");
    cs.registerOutParameter(1, java.sql.Types.VARCHAR);
    cs.execute();
    2. You could parameterize it like this:
    CallableStatement cs = conn.prepareCall("{call " + packageName "." + funcName + "(?)}");
    cs.registerOutParameter(1, java.sql.Types.VARCHAR);
    cs.setString(1,"someString");
    cs.execute();
    String result = cs.getString(1);
    where packageName and funcName are defined elsewhere
    --hery

  • Setting dynamic values to entity object

    Is there any way to set bean values (dynamic values) to Entity Object while commit the record, and how can i set these values using Groovy language
    Thanks in advance

    You need to give more information about the version of Jdev you use and your use case. read more -
    https://forums.oracle.com/forums/ann.jspa?annID=56

  • Set new value as a default value while creating PD(Performance Dailog) Form

    Hi,
    In Performance management,
    While clicking on the Create new PD Form Button, We are getting one Pop up window with the deafult selection screen.
    In that,
    We are getting Valid From: and Valid To value bydefault as a '01.01.2011' and '31.12.2011' .
    We need to change that value. How can we set our new value as a default value.
    We checked in debugging, this values are hardcoded in the SAP standard dyanpro component.
    how can we set our new default value?
    Please suggest.
    Thanks in advance.
    Monika

    You create it through PHAP_ADMIN_PA?
    The validity period is being defined by the BAdI HRHAP00_DOC_DEF_DV
    Implementation HRHAP00_DOC_DEF_DV02,
    can you chekc this/
    If you want to create appraisal documents for multiple participants, a
    more convenient way would be to use 'PHAP_PREPARE'. This also sets the
    validity period.
    If you still want to create the appraisal documents using 'PHAP_CREATE'
    and you want to use the BAdI for defaulting the validity period, you can
    adapt the BAdI implementation to your needs yourself. In that case,
    please make a copy of the BAdI implementation 'HRHAP00_DOC_DEF_DV02'.
    When creating a new appraisal, the system suggests the period January 1
    to December 31 of the current year as the default appraisal period. You
    can change this default by changing the Business Add-In (BAdI)
    HRPDV00APPRAISAL0001 in the ERP system."

  • E31 - Unable to set Bios values through WMI

    Dear All,
    I am trying to set Bios values on E31 through a VB Script using WMI in our lab. It is working on all the machines except one. It does not return an error while setting the value or saving it. But when I manually enter Setup, the values would not be set. No error is set in Event viewer.
    Manually modifying the value works.
    Machine type: E31 (2552CS4)
    Bios Version: 9SKT61AUS
    Values trying to set:
    Select Active Video=IGD
    Total Graphics Memory=128MB
    Multi-Monitor Support=Enabled
    Core Multi-Processing=Enabled
    etc.
    Command executed:
        ObjItem.SetBiosSetting Select Active Video,IGD;
        ObjItem.SetBiosSetting Multi-Monitor Support,Enabled;
        ObjItem.SetBiosSetting Core Multi-Processing,Enabled;
    Can anyone tell me what could be wrong with the machine. How it can be corrected.
    Thanks in advance.
    -Uttam

    Are those values (WMI commands) actually changing anything from what the defaults are?
    It's odd that you've seen it work correctly on other E31 systems but fail on only this one.  Is there something in the configuration that's unique to this system as compared to the other E31 systems that passed with no issue?
    In the failing scenario, which value(s) are not getting set correctly?

  • Firefox android opens to about.config as home page. unable to set new home page

    firefox android always opens new tab or browser session on about:config page.
    I've restarted browser and tablet(Samsung Galaxy Tab 3), and this behavior still persists.
    All google searches suggest that the firefox android browser home page cannot be changed but this is obviously not true.
    I've tried solutions that suggest navigating to about:home and modifying bookmarks and these paths do not work.
    The awesome bar is far from awesome!!!!!!
    How do I stop the browser from starting at about:config and how can I make the home page be what I want?

    In the about:config page entry on the desktop there is a homepage entry, but does not show up on my android, odd.
    Try this > Settings > Customize > Home
    Change setting here and open a new tab to see if changes are made.
    Also check the about:addons page to see if you have any homepage add ons that has saved the about:config page as the home page.
    Looking forward to your reply!

  • CMS: Unable to set new SP Number or Patch Level at Assembly

    Hi!
    For one of my development tracks in CMS, I have lost the ability to set a new Support Package Number or Patch Level when I execute Assembly. In the Assembly Options pop-up, I can assign a patch name as usual, but under Support Package Number I only have the option to "Keep Current Support Package Number", and under Patch Level I only the have the option to "Keep Current Patch Level".
    Anyone have an idea of what is causing this??
    Best regards,
    Thorsten

    Hi Fabian,
    No solution yet, unfortunately. Yours is the first reply to this topic at all
    If I manage to solve the issue somehow, I'll be sure to post a reply to this thread.
    Regards,
    Thorsten

  • How to set new value for the existing jar file

    Help:
    I am wondering if there is a simple to update value for Manifest-Version in a existing jar file?
    Thanks!

    The jar command's -u option is about as easy as I know.
    See the jar command documentation for the details.

  • 30EA3: Unable to set new password containing semicolon

    Hello Forum,
    I just encountered an error while trying to change my password on an Oracle 10.2.0.5 Database. I entered the command "password" in the SQL worksheet and pressed F9. I was asked to enter old and new passwords both of them containing a semicolon (";"). I just got the message "password could not be changed" (I hope I translated the message correctly from german).
    SQL*Plus does accept the new password though...
    I'm running SQL Developer on Windows XP SP3 with the bundled jdk (shown as 1.6.0_11) and connecting to Oracle 10.2.0.5 on Windows 2000.
    The normal login does accept my new password after changing it via SQL*Plus.
    Regards,
    dhalek
    Edited by: dhalek on 06.02.2011 23:48

    http://techreport.com/review/26905/ocz-arc-100-solid-state-drive-reviewed
    "However, support for the related IEEE and TCG Opal specifications is missing from the Arc 100's feature list, which rules out compliance with Microsoft's eDrive standard and third-party encryption management software."
    This is probably why.
    W520: i7-2720QM, Q2000M at 1080/688/1376, 21GB RAM, 500GB + 750GB HDD, FHD screen
    X61T: L7500, 3GB RAM, 500GB HDD, XGA screen, Ultrabase
    Y3P: 5Y70, 8GB RAM, 256GB SSD, QHD+ screen

  • HowTo: Replace values in Entity, best practice

    I was reading jsr-220 and now I have a question.
    What is the best practice to replace values in an entity?
    For example I have an entity Person:
    @Table(name = "Person", schema = SCHEMA)
    public class Person{
         @Id
         @GeneratedValue
         private int id;
         private String sourceUri;
           @ManyToMany(fetch=FetchType.EAGER, cascade={CascadeType.MERGE, CascadeType.REFRESH, CascadeType.PERSIST} )
         private List<Representative> representatives;
         @OrderBy("date")
         @ManyToMany(fetch=FetchType.EAGER, cascade={CascadeType.ALL}, mappedBy="person")
            private List<PersonAccessCounter> counter;
         @OneToMany(fetch=FetchType.EAGER, cascade={CascadeType.ALL}, mappedBy="person")
         private List<EducationLevel> educationLevels;
          //some other fileds + getters/setters
    }As you can see, my Person has autoGenerated id. But also it has other "unformal" identity field: sourceUri
    Imagine such situation:
    I've persisted a Person. While system was in use, it's id points to some other entities. So I can't loose it.
    Then, my special crawler gathered new info about person.
    Using sourceUri of Person(crawler has provided it) I can select already persisted person from DB.
    Now, my task is to completely remove some fields (this data must disappear from DB, totally, no orphaned links) from persisted person and replace them with values from new person gathered by crawler.
    What's better?
    1. Find persitedPerson using sourceUri
    2. Replace some fields of persitedPerson with new values taken from crawledPerson.
    3. em.merge(persistedPerson)
    OR
    1. Find persitedPerson using sourceUri.
    2. Set some fields of persitedPerson to NULL
    3. Merge persitedPerson
    4. Set new values to persitedPerson taken from crawledPerson.
    3. em.merge(persistedPerson)
    Seems like the first variant is enough. It will fork fine if annotations were set correctly (cascade={CascadeType.ALL} and other)
    Edited by: Holod on 10.11.2008 16:32
    Edited by: Holod on 10.11.2008 16:46

    I was reading jsr-220 and now I have a question.
    What is the best practice to replace values in an entity?
    For example I have an entity Person:
    @Table(name = "Person", schema = SCHEMA)
    public class Person{
         @Id
         @GeneratedValue
         private int id;
         private String sourceUri;
           @ManyToMany(fetch=FetchType.EAGER, cascade={CascadeType.MERGE, CascadeType.REFRESH, CascadeType.PERSIST} )
         private List<Representative> representatives;
         @OrderBy("date")
         @ManyToMany(fetch=FetchType.EAGER, cascade={CascadeType.ALL}, mappedBy="person")
            private List<PersonAccessCounter> counter;
         @OneToMany(fetch=FetchType.EAGER, cascade={CascadeType.ALL}, mappedBy="person")
         private List<EducationLevel> educationLevels;
          //some other fileds + getters/setters
    }As you can see, my Person has autoGenerated id. But also it has other "unformal" identity field: sourceUri
    Imagine such situation:
    I've persisted a Person. While system was in use, it's id points to some other entities. So I can't loose it.
    Then, my special crawler gathered new info about person.
    Using sourceUri of Person(crawler has provided it) I can select already persisted person from DB.
    Now, my task is to completely remove some fields (this data must disappear from DB, totally, no orphaned links) from persisted person and replace them with values from new person gathered by crawler.
    What's better?
    1. Find persitedPerson using sourceUri
    2. Replace some fields of persitedPerson with new values taken from crawledPerson.
    3. em.merge(persistedPerson)
    OR
    1. Find persitedPerson using sourceUri.
    2. Set some fields of persitedPerson to NULL
    3. Merge persitedPerson
    4. Set new values to persitedPerson taken from crawledPerson.
    3. em.merge(persistedPerson)
    Seems like the first variant is enough. It will fork fine if annotations were set correctly (cascade={CascadeType.ALL} and other)
    Edited by: Holod on 10.11.2008 16:32
    Edited by: Holod on 10.11.2008 16:46

  • UNABLE TO SET parallel_automatic_tuning=TRUE IN Oracle9i Enterprise Edition

    Hi,
    i am trying to set parallel_automatic_tuning=TRUE . but i am unable to set it.
    My oracle version is as below.
    SQL> SELECT * FROM V$VERSION;
    BANNER
    Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
    PL/SQL Release 9.2.0.1.0 - Production
    CORE 9.2.0.1.0 Production
    TNS for 32-bit Windows: Version 9.2.0.1.0 - Production
    NLSRTL Version 9.2.0.1.0 - Production
    Please help to resolve this issue.
    thanks
    sivasankar.

    hi i am unable to set the value as true for parallel_automatic_tuning parameter. ,
    SQL> SHOW PARAMETER PARALLEL
    NAME TYPE VALUE
    fast_start_parallel_rollback string LOW
    log_parallelism integer 1
    parallel_adaptive_multi_user boolean TRUE
    parallel_automatic_tuning boolean FALSE
    parallel_execution_message_size integer 2148
    parallel_instance_group string
    parallel_max_servers integer 5
    parallel_min_percent integer 0
    parallel_min_servers integer 0
    parallel_server boolean FALSE
    parallel_server_instances integer 1
    NAME TYPE VALUE
    parallel_threads_per_cpu integer 2
    recovery_parallelism integer 0

  • Set new smartforms for Plant

    Hi All,
    I have new plant, When  I create new smartform, but a don know how to assigned new form to that plant ?
    Please help me do it !

    I have function in package on database which is param is String and return value is also String(VARCHAR2).
    That function calculate some field on db and return a result.That is OK
    I made VO in my AM.
    "SELECT package_name.func_name("string") from dual" and that is OK also.
    When I start that module I recive valid result from database based on string which I passed to function.
    And that works fine.
    Question :
    How can I change value or how can I set new value for the package_name.func_name(variable) in VO
    during runtime in my application ? ^^^^^^^^
    JDeveloper 9.0.3.988 1. When using stored procedures it would be better to use it in following way:
    Connection conn = //get it some how
    CallableStatement cs = conn.prepareCall("{call myPackage.do_something(?)}");
    cs.registerOutParameter(1, java.sql.Types.VARCHAR);
    cs.execute();
    2. You could parameterize it like this:
    CallableStatement cs = conn.prepareCall("{call " + packageName "." + funcName + "(?)}");
    cs.registerOutParameter(1, java.sql.Types.VARCHAR);
    cs.setString(1,"someString");
    cs.execute();
    String result = cs.getString(1);
    where packageName and funcName are defined elsewhere
    --hery

  • How set the values programatically in custom tables ?

    Hi Guru's,
    Please help me where i did mistake....
    My scenario is i have 4 columns that 4 columns are look up based on row i need save the "XX_hr_Vacancies_CompTab"
    4 columns look like....
    column1(15 questions ) column2(message choice) column3(message choice) column4(free text)
    (1-15)question manually select (1-10) manually select (1-10) comments
    this vo purpose i am using this query
    SELECT ROWNUM,
    xhv.VACANCY_ID
    , xhv.RFP_NO
    , hl.lookup_code
    , hl.meaning
    , XJCT.BUHR_RATING
    , XJCT.COMBEN_RATING
    , XJCT.RATIONALE
    FROM hr_lookups hl ,
    xx_hr_vacancies xhv,
    XX_JOBEVAL_COMP_TAB XJCT
    WHERE lookup_type = 'XX_JE_QUESTIONAIRE'
    AND xhv.RFP_NO = 'IRC616'
    AND XJCT.VACANCY_ID(+) = XHV.VACANCY_ID
    ORDER BY ROWNUM
    I am using sample code is for one column inserting.....please help where i am doing mistake.
    public void processRequest(OAPageContext pageContext, OAWebBean webBean)
    super.processRequest(pageContext, webBean);
    OAApplicationModule am = pageContext.getApplicationModule(webBean);
    am.invokeMethod("createjobVacancy1");
    public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
    super.processFormRequest(pageContext, webBean);
    if (pageContext.getParameter("Save") != null)
    OAApplicationModule am = pageContext.getApplicationModule(webBean);
    OAViewObject vacncyVO = (OAViewObject)am.findViewObject("XXTableLookupVO1");
    int fetchedrowcount = vacncyVO.getRowCount();
    RowSetIterator multiIter;
    multiIter = vacncyVO.createRowSetIterator("VacancyId");//Attribite of the select box
    multiIter.setRangeStart(0);
    multiIter.setRangeSize(fetchedrowcount);
    System.out.println("no before for loop condition rows"+fetchedrowcount);
    for(int i=0;i<fetchedrowcount;i++)
    am.invokeMethod("createjobVacancy1");
    OAViewObject vacncyVO1 =
    (OAViewObject)am.findViewObject("XX_hr_Vacancies_CompTab_EOVO1");
    Object vacancy = vacncyVO.getRowAtRangeIndex(i).getAttribute("VacancyId"); */*63 Line code is this one*/*
    System.out.println("vacancy number is in table region current row is "+vacancy);
    System.out.println("no or rows"+fetchedrowcount);
    if(vacancy != null && !"".equals("vacancy"))
    vacncyVO1.getCurrentRow().setAttribute("VacancyId",vacancy);
    System.out.println("set create vacancy number is in table region current row is "+vacancy);
    }else{
    vacncyVO1.getCurrentRow().setAttribute("VacancyId",null);
    am.invokeMethod("apply1");
    System.out.println("out of for loop :"+fetchedrowcount);
    Sop:
    13/01/10 06:55:28 no before for loop condition rows15
    13/01/10 06:55:29 Header is =725
    13/01/10 06:55:30 vacancy number is in table region current row is 616
    13/01/10 06:55:30 no or rows15
    13/01/10 06:55:30 set create vacancy number is in table region current row is 616
    13/01/10 06:55:30 Header is =726
    Error:
    ## Detail 0 ##
    java.lang.NullPointerException
    at xxsup.oracle.apps.per.jobevaluation.webui.MainCO.processFormRequest(MainCO.java:63)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(Unknown Source)
    at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(Unknown Source)
    at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processFormRequest(Unknown Source)
    Regards,
    Srinivas

    Thanks Keerthi,
    i am getting values but i unable to set the values, once i am setting values i am facing null pointer exception ..
    java.lang.NullPointerException
         at xxsup.oracle.apps.per.jobevaluation.webui.MainCO.processFormRequest(MainCO.java:86)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(Unknown Source)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(Unknown Source)
         at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processFormRequest(Unknown Source)
         at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processFormRequest(Unknown Source)
    i am using below coding in PFR
    public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
    super.processFormRequest(pageContext, webBean);
    if (pageContext.getParameter("Save") != null)
    OAApplicationModule am = pageContext.getApplicationModule(webBean);
    OAViewObject oaviewobject =(OAViewObject)am.findViewObject("XXTableLookupVO1");
    if(oaviewobject!=null)
    pageContext.writeDiagnostics(this,"View Object is exists",OAFwkConstants.STATEMENT);
    int rowcountValue = oaviewobject.getRowCount();
    pageContext.writeDiagnostics(this,"Row returned by the View Object"+rowcountValue,OAFwkConstants.STATEMENT);
    System.out.println("before for loop geting values = "+rowcountValue);
    Row rowAdv= oaviewobject.first();
    RowSetIterator iterator = oaviewobject.createRowSetIterator("iterator");
    iterator.setRangeStart(0);
    iterator.setRangeSize(oaviewobject.getRowCount());
    for(int i=0; i<iterator.getRowCount(); i++)
    pageContext.writeDiagnostics(this,"Inside For loop ",OAFwkConstants.STATEMENT);
    rowAdv =iterator.getRowAtRangeIndex(i);
    if(rowAdv != null)
    pageContext.writeDiagnostics(this,"flag not null",OAFwkConstants.STATEMENT);
    pageContext.writeDiagnostics(this,"Flag Value Checked as Y",OAFwkConstants.STATEMENT);
    OAViewObject vacncyVO1 =
    (OAViewObject)am.findViewObject("XX_hr_Vacancies_CompTab_EOVO1");
    if(rowAdv.getAttribute("VacancyId")!=null)
    Object vacancyname = rowAdv.getAttribute("VacancyId").toString();
    vacncyVO1.getCurrentRow().setAttribute("VacancyId",vacancyname); This is the 86 line
    System.out.println("Vacancy ID IS = "+vacancyname);
    System.out.println("Vacancy ID IS = "+rowAdv);
    am.invokeMethod("apply1");
    // System.out.println("out of for loop :"+iterator);
    please help me where i am doing mistake...
    Regards,
    Srinivas

  • Unable to set a new value in an extended property from within a For Each Loop

    Setting a new value in an extented property fails when the property is dereferenced within a For Each loop usin the item  iterator. However, if you use the First or Last Iterators from the Find Targets activity works fine.
    The error message is : "Setting a value for this object type is not allowed"
    I believe this is a defect, can you please confirm

    Looks like a bug that needs to be reported.
    While we are figuring out the issue you can work around the bug.
    Add another "Find Targets" inside the loop, and use the ID of the current item in the loop to find the target (again) by ID.
    And then use Set Variable on the target that was just found...
    I know... Not an ideal workaround, so please open a Severity 4 bug for this.

Maybe you are looking for