[ADF, JDev12.1.3] Method in AM that returns a ViewRowImpl object. How...?

Hallo,

I need to create a method in the Module of the Application that returns a ViewRowImpl object.

I want to call this method to a bean that will consume the returned line.

I ask if this is possible, since in the AM configuration I don't see my method to expose it to the customer.

What's wrong?

Thank you

Federico

What's wrong?

Documentation: https://docs.oracle.com/middleware/1213/adf/api-reference-model/oracle/jbo/server/ViewRowImpl.html

"Client applications should not access this class on the client tier of an application. Instead, the Row interface must be used for access to the client tier. »

In general, if you can use the class interface or application in a certain part of the code, always use interface.

Dario

Tags: Java

Similar Questions

  • [ADF, JDev12.1.3] Plating of workflow that can function as 'serch & open' and 'create '? How to build?

    Hallo,

    in a stubborn workflow, I have a fragment of Details as you can see here...

    And it is the working group...

    Then dynamic region is contained within the page that has a menu.

    Each menu item has action = "#{viewScope.mainDynamicRegion.startBoundedTaskFlowX}". "

    The bean maniDynamicRegion I have a lot of functions, each for each menu item, like this:

    public String startBoundedTaskFlowX() {}

    taskFlowId = "/WEB-INF/btf-X.xml#btf-X";

    Returns a null value.

    }

    End of details

    I would like to have 2 menu items for the btf above: one as 'research and details open' and onoter like 'create new details '.

    When I click on "search...". "a search form should appear, the user selects a folder, then click on 'Open' and finally appears my fragment 'details' showing the desired folder.

    Of course I have now that I'll have to add a new snippet to search for the folder desired to open

    When I click "create...". "my fragment displays the master desired folder should appear. Af: form in the 1st tab must be ready to be filled.

    You kindly could help me to complete the stubborn workflow? What components do I use?

    How can I let know the stubborn workflow what mode should work (research & open or create)?

    Is there something in particular, I have to take care of?

    Thank you very much

    Federico

    Hi Federico

    You can do this by using a BTF or two

    So, using only a BTF you can do the following:

    1. create an inputPram in your BTF who receives a value if the application is called from the search menu or create (set its value to S (Search) and C (Create))

    2 use a router to check if BTF is called from the search menu, then he should go to the search page

    3. and if it is called in Menu create then they should goto createPage drirectly and in the range of the router and createPage createInsert (for the first tab) operating as a method in taskFlow, so it will show a folder created in the first tab

    See -task using flow router in Oracle ADF - YouTube activity

    Thank you

  • [ADF, JDev12.1.3] SelectOneChoiche created from VO instance with 3 fields: how to retrieve the value of all the fields of the selected element?

    Hallo,

    I defined a VO with 3 fields (A, B and C) and I would like to create a SelectOneChoiche that shows only the field as options from this instance of VO.

    In a managed bean, I need to retrieve the values for all areas (A, B and C) of the item selected by the user.

    I started dragging the entire VO instance to UI to create a SelectOneChoiche (in which I have chosen to show only the to field).

    Then, I created a for the SOC ValueChangeListener read the values A, B and C of the selected element, but the only thing I've done is to get the displayed value:

    System.out.println((String) ((RichSelectOneChoice) FacesUtils.findComponent("MySoc")).getValue());
    

    You kindly help me?

    Thank you

    Federico

    Federico, sorry I didn't see your answer.

    As you use 12.1.3 you can do this more easily than the code that I posted before. You can use

    {} public void onCountrySelection (ValueChangeEvent valueChangeEvent)

    FacesContext will involve = FacesContext.getCurrentInstance ();

    Make sure that the selection change is processed and the current link lov line has the new selected line

    valueChangeEvent.getComponent () .processUpdates (contxt);

    BindingContext lBindingContext = BindingContext.getCurrent ();

    BindingContainer lBindingContainer = lBindingContext.getCurrentBindingsEntry ();

    List JUCtrlListBinding = lBindingContainer.get ("CountryId") (JUCtrlListBinding);

    the newindex in not necessary, but ok let's get it (must be equal to the CountryId, the pharmacokinetics of the binding of the lov

    String newindex = (String) valueChangeEvent.getNewValue ();

    get the selected value in the list that is the selected line of the binding of the lov

    Line lFromList = list.getSelectedValue () (line);

    now, we can get the attributes of the line of lov

    String s = (String) lFromList.getAttribute ("CountryId");

    System.out.println ("CountryId:" + s);

    String s2 = (String) lFromList.getAttribute ("CountryName");

    System.out.println ("CountryName:" + s2);

    BigDecimal s3 = lFromList.getAttribute("RegionId") (BigDecimal);

    System.out.println ("RegionId:" + s3.toString ());

    }

    The form that I use is based on the location of the HR DB schema table. The CountryId is configured in the view object to display a lov based on the campagneVoir. This view contains thre CountryId, CountryName and RegionId attributes.

    If you want to get to the attributes of an action listener you can use this code

    {} public void onGetSelectedCountryLov (ActionEvent actionEvent)

    BindingContext lBindingContext = BindingContext.getCurrent ();

    BindingContainer lBindingContainer = lBindingContext.getCurrentBindingsEntry ();

    List JUCtrlListBinding = lBindingContainer.get ("CountryId") (JUCtrlListBinding);

    get the selected value in the list that is the selected line of the binding of the lov

    Line lFromList = list.getSelectedValue () (line);

    now, we can get the attributes of the line of lov

    String s = (String) lFromList.getAttribute ("CountryId");

    System.out.println ("CountryId:" + s);

    String s2 = (String) lFromList.getAttribute ("CountryName");

    System.out.println ("CountryName:" + s2);

    BigDecimal s3 = lFromList.getAttribute("RegionId") (BigDecimal);

    System.out.println ("RegionId:" + s3.toString ());

    }

    You must add the valueChangeListener and at least add the lines

    FacesContext will involve = FacesContext.getCurrentInstance ();

    Make sure that the selection change is processed and the current link lov line has the new selected line

    valueChangeEvent.getComponent () .processUpdates (contxt);

    to ensure that the selected line is available when you click the button.

    And set autosubmit'= true for the field in the UI that displays the LOV.

    Timo

  • [ADF, JDev12.1.3] Validation happens when LOV "lens" is clicked. How to avoid this?

    Hallo,

    I created a form of a VO istance which some fields are required.

    In the form, there is a LOV.

    When I click on the 'lens' of LOV validation happens.

    I would like to avoid this behavior.

    The solution is simply to set the immediate property of the LOV to 'true '?

    Thank you

    Federico

    I created a form of a VO istance which some fields are required.

    In the form, there is a LOV.

    When I click on the 'lens' of LOV validation happens.

    This was probably not happen.

    So, do you have something specific in your code? (for example, LOV on part of primary key, partially initialized row, etc.?)

    Is autosubmit = true set on your lov component?

    Is there a difference, if you set ChangeEventPolicy = none to your iterator?

    The solution is simply to set the immediate property of the LOV to 'true '?

    If this will solve the problem, then Yes

    Dario

  • [ADF, JDev12.1.3] Which is the best way to define the properties of CIU/fragments of pages. Is the approach that I have used a good choice (for a beginner)?

    Hallo,

    in my app, that I have a lot of pages and fragments in which properties (for example rendered text, disabled, Selected,...), lots of user interface components must be set, before/when the page is displayed, depending on the session and pageFlow scope attributes.

    So far I have created for each page/one backingBean brought bean fragment in which I defined an attribute for each property defined (e.g. 2 properties for each UIC: UIC is 10...) "I have 20 attributes to manage in the bean).

    Then, I linked each attribute of the bean to the respective UIC property. You can see in this my thread (unfortunately without answers ) [ADF, JDev12.1.3] backingBean bean: a lot of properties to set for lots of CIU... is better by using the properties of the binding or access code (created by ID) UIC? a small example. I put the attributes the bean Builder (or in a function of 'action' if the APP properties must be set based on the interaction of the user).

    I would like to know:

    • If it is a good approach / recommended / safe or if there is a better way;
    • If the scope backingBean is OK, or if a larger scope would be better.

    As I asked in the thread in the link above, the situation can become difficult to manage if the PPP for which setting, properties are very different.

    So I'd like if there is no alternative that I can use to get the same result with less effort.

    For example, using the class ComponentReference or invokeOnComponentAPI could simplify my life? And their use could I always use backingBean brought beans?

    Thank you

    Federico

    Federico, please understand that this forum has no sla. I have other work to do, who pays my bills. I will do my best to help, but you can not expect the instant replay.

    (1) you must not use the bean to init your beans. You can delay load or init your beans instead.

    (2) as Frank and says you can use a bean to view range and use it to make your calculations as long as you know how their parameters go to the btf

    (3) you should always use the reference of the component if you bind a component to a bean. Make a habit of all scopes.

    As we do not know how you calculate the State and how often it changes while the Working Group is on the page, it is difficult to give further advice.

    Timo

  • ADF Faces: RicheTableau - how to create a richeTableau method of bean datacontrol object that returns a list of objects

    Build JDEVADF_12.1.2.0.0_GENERIC_130608.2330.6668

    I have a data bean control method that returns a list of SearchResultRow objects. Each SearchResultRow has a list of SearchResultColumn objects. SearchResultColumn is the attribute name, value, type of data.

    The method returned data looks like:

    SearchResultRow {col1, a1, string}, {col2, a2, date}, {col4, 13, number}, {col4, a4, string}

    SearchResultRow {col1, b1, string}, {col2, b2, date}, {col4, 23, number}, {col4, b4, string}

    SearchResultRow {col1, c1, string}, {col2, c2, date}, {col4, 33, number}, {col4, c4, string}

    I try to display searchResult table depending on whether it

    col1 col2 col3 col4

    A1 a2 a4 13

    B1 b2 b4 23

    C1 c2 c4 33

    I drag my return value of method to the jsf page to create a link to the tree.

    < Tree IterBinding = "retrieveSearchResultsIterator" id = "SearchResultRow" >

    < nodeDefinition DefName = 'model. SearchResultRow"name ="SearchResultRow0">

    < AttrNames >

    < item Value = "resultType" / >

    < / AttrNames >

    < accessors >

    < item Value = "searchResultColumns" / >

    < / accessors >

    < / nodeDefinition >

    < nodeDefinition DefName = 'model. ResultColumn"name ="SearchResultRow1">

    < AttrNames >

    < item Value = "name" / >

    < item Value = 'length' / >

    < item Value = "query" / >

    < item Value = 'type' / >

    < item Value = 'value' / >

    < / AttrNames >

    < / nodeDefinition >

    < / tree >

    On my jsf page, I added a table then reused the liaison of the tree.

    < af:table value = "#{bindings." SearchResultRow.collectionModel width}"= '100% '.

    var = "row" rowBandingInterval = "0" id = "t3" binding = "#{backingBeanScope.backing_Test4.t3}" partialTriggers ="": b1 ' columnStretching 'last' = > "

    My thought is in backing bean, loop through the table variable "line" which is my SearchResultRow and then loop SearchResultColumns of the line to build the RichColumn and add it to the table.

    My question is: is this feasible? How can I get hold of the var 'line' backing bean?

    Any other suggestions how to proceed?

    Thank you.

    I thought about it the adf table creation dynamically.

    This link is useful. ORACLE ADF (Application Development Framework): creating dynamic table

  • [ADF, JDev12.1.3] How to create a reusable/configurable SelectOneChoiche that displays a range of years?

    Hallo,

    in my application, I would use SelectOneChoiche components a range of years including start/end of the year can be different based on other values/conditions of display.

    I found this thread helpful Andrejus Baranovskis Blog: select a choice with select elements Tag which explains how to fill a PLOUGHSHARE of a managed bean.

    Would it be possible (and how) to create a reusable component (something to drag them to the design-time user interface) configurable with expressions of start/end of year?

    This would avoid as me to write the code to fill the SOC whenever I need one of them.

    Thank you

    Federico

    You can see this example ADF practice: component example declarative ADF which shows how to create a component declarative which shows a decimal lov.

    This Oracle magazine article Oracle ADF: Build Your Own is another example that will guide you throughout the process.

    Timo

  • [ADF, JDev12.1.3] How to get the column headers, request of VO and VO bind vars used by an af:table?

    Hallo,

    I want to create a method that takes as a parameter the id of an af:table (used to display the search results) and returns:

    • the column headings of the af: table
    • Visible property (true/false) of the columns af:table
    • the actual query of the VO instance used to create the af: table
    • the values of real bind variables passed to the query of the instance of VO

    I would like to create a servlet which takes the parameters reruns the query and returns a report Excel/PDF file that contains exactly the same columns and same of the af records: table.

    I'm a little confused on who use the code to achieve this... you kindly help me?

    I did a similar qustion here Re: [ADF, JDev12.1.3] how to export an af:table to Excel in an ADF Essentials application? but then I guessed that it was preferable to create a new thread.

    Thank you

    Federico

    For this, you can use this type of code

    Context LocaleContext = _adfTableBinding.getLocaleContext ();

    for (attr AttributeDef: attributeDef) {}

    Label As String = attr.getUIHelper () .getLabel (context);

    _logger.info ("Attritbute name:" + attr.getName () + "column name:" + attr.getColumnName () + "Col4Query name:" + attr.getColumnNameForQuery () +)

    "Name:"+ label);

    }

    which produces this output

    Timo

  • [ADF, JDev12.1.3] When you use create/restoreSavepoint... Restore operation is still useful? And other doubts...

    Hallo,

    Dario and Timo advised me (in this thread Re: [ADF, JDev12.1.3] Master w/playback af:form only af:tables detail: how to handle insert and edit through forms?) I make a request using the functions create/restoreSavpoint to this fragment in my application.

    The tables are read-only, and the user can insert and modify records by a form of popup.

    Each table has its own pop-up that I created using a btf executed as diaolog (*).

    Before I open the popup, I create the backup point.

    BindingContext bctx = BindingContext.getCurrent();  
    DCDataControl dcDataControl = bctx.getDefaultDataControl();  
    String sph = (String) dcDataControl.createSavepoint();  
    AdfFacesContext.getCurrentInstance().getPageFlowScope().put("AdfmSavePoint", sph); 
    

    When the popup is closed, I restore the backup point if the Cancel button was clicked...

    Object confirmOrCancel = returnEvent.getReturnValue();  
    if (((String) confirmOrCancel).equals("cancel")) {  
      String sph = (String) AdfFacesContext.getCurrentInstance().getPageFlowScope().get("AdfmSavePoint");  
      BindingContext bctx = BindingContext.getCurrent();  
      DCDataControl dcDataControl = bctx.getDefaultDataControl();  
      dcDataControl.restoreSavepoint(sph);  
    } 
    

    I have these doubts:

    1. the button "CANCEL ALL" (so far) AM restore operation is still meaningful (is always useful) when you use the check points? Or can I avoid using the restore of the AM operation, creating a backup point before you enter the fragment and restore it if the user clicks on "RESTORE ALL"?
    2. for all tables: before opening the popup insert/change the backup point is implemented pageFlowScope under the same key 'AdfmSavePoint '. Is it OK or would it be better to use a different key for each table (for example 'AdfmSavePointTable1', 'AdfmSavePointTable2',...)?
    3. If the pageFlowScope already contains a checkpoint under the "AdfmSavePoint" key... What does if I give the floor to new .put ("AdfmSavePoint", sph)? Can I be sure that the old value is overwritten?
    4. is this safe with nested savepoint? For example in my case I want to create a backup before the fragment in the image point is displayed (and restore if the user leaves the fragment by clicking "RESTORE ALL"), then within the fragment, as I said above, I would manage other points of record when inserting/editing tables.
    5. I noticed that clicking on the button "RESTORE ALL" when it relates to the AM-restore operation causes this strange thing: when before displaying the fragment I call SetCurrentRowWithKey on the master istance VO... If I click on "ROLLBACK ALL" posted master VO Records changes and 1 minutes of the main of the VO table is displayed. Why the master istance VO is not reimain in the folder I've previously selected by SetCurrentRowWithKey?
    6. With reference to the expression (*) above. The BTF 'dialogue' I created contains only the page jspx with shape and a return to activity. I also tried a) create (and restore) the backup point, b) to call createInsert inside the "dialog box" operation BTF (see images below), but the createInsert on retail VO istance called inside the 'dialogue' BTF seems not to reflect on the table as when I call createInsert by calling btf. I have to make some adjustments in the 'dialogue' of BTF?

    Thank you

    Federico

    Federico,

    (1) Yes, what should happen if a user add or edit vo1 and click ok in the dialog box but decided that ask to work must be restored?

    (2) as long as you don't have that a dialog box is open, it should work.

    (3) the flowrate range of page is a map. You can put the same key more than once. If the key already exists, the value is replaced.

    (4) in fact, I don't know, but the sounds of complicated design. I guess you can record more points, but only in the order of creation. It's as if you try to rebuild the framework. BTF yo it even for you, when worn right. Please go to ADF Architecture Square and read and watch it task flow of related things.

    (5) this behavior is as expected. A restore resets all the iterators so thagetto point at the top of he. http://www.Oracle.com/technetwork/Developer-Tools/ADF/learnmore/OCT2010-OTN-Harvest-183714.pdf 'keep the line after cancellation' shows how to handle this situation.

    (6) I suppose have you refresh the table iterator, once you close the dialog box for the new data. But that's only a guess because it depends on how the btf share control of data and the your involved.

    Timo

  • How to use a method described in a customer VO interface that returns a value

    ADF 11 g

    Hello

    I created a method on a view object that returns a Boolean value.
    I exposed the method of the interface to the customer of the view object
    I paste the method in my view through page links page.

    How to call the method of a bean and get the return value?

    Concerning
    Paul

    Paul,

    I do not have the parameter passed to the method, I spent just the binding of method name in the method getOperationBinding. If you want to pass parameter, you can do either via the operationBinding or using NamedData bean in pagedef

    Jean Lou

  • Method that returns the bb::cascades:Application?

    Hi, is there a method that returns the bb::cascades:Application?

    I solved the problem by simply passing the request of my class that needs it. If its solved because there is no such method I think.

  • In my adf application, I use sequences, the problem that I face, is that this sequence break at 2:21 or three insertions. Any reason?

    Mr President

    In my adf application, I use sequences, the problem that I face, is that this sequence break at 2:21 or three insertions. Any reason?

    Concerning

    How can I correct this situation?

    Well, look at your definition of the sequence and correct

    There are CACHE 20 then change or recreate your sequence and use NOCACHE

    Dario

  • [ADF, JDev12.1.3] How to set a variable to bind a VO (where clause) in a managed bean?

    Hallo,

    I have a request based on VO.

    The query contains a where clause clause and a bindi variable.

    In a managed bean I would like to access the iterator of VO setting the value of the bind variable and read the result.

    I found this code it is good start, but I do not know how to set the variable binding.

    BindingContext bctx = BindingContext.getCurrent();
    BindingContainer bindings = bctx.getCurrentBindingsEntry();
    DCIteratorBinding iter = (DCIteratorBinding ) bindings.get("MyVO1Iterator");
    iter.execute();
    
    
    

    You kindly help me?

    Also, I would like to know if it is generally advisable to use VO directly in controlled beans or whether it would be best to create in the AppModuleImpl methods that do this and return the result.

    In my case for example of the VO will return max 1 plug so I'm in doubt, if the creation of a method in the AM that returns a custom class, which attributes contain values of the line of VO.

    Sorry if these questions may seem artificial, but I am a beginner, I have many doubts and so I would be happy to receive some tips regarding best practices.

    Thank you

    Federico

    You can use:

    iter.getViewObject().setNamedWhereClauseParam("yourBindVar", value);
    

    Note that this approach is used if you have bind variable in the where clause.

    To set variables bind to ViewCriteria, you must use VarableValueManager.

    This post may be useful for you: binary: how to set the Bind variable values at run time?

    Also, I would like to know if it is generally advisable to use VO directly in controlled beans or whether it would be best to create in the AppModuleImpl methods that do this and return the result.

    You must set "use VO directly.

    For example, from the point of architecture, is probably best to use the method in the model project which will set the bind variable and execute the query.

    Or you can use the ExecuteWithParams operation in your the view layer.

    In my case for example of the VO will return max 1 plug so I'm in doubt, if the creation of a method in the AM that returns a custom class, which attributes contain values of the line of VO.

    Not to complicate your life

    All VO lines are represented as ViewRowImpl class if you already have "custom class".

    Finally, you can generate your own ViewRowImpl class if it is necessary for this.

    Dario

  • [ADF, JDev12.1.3 how custom "entry LOV"?

    Hallo,

    The LOV is based on a query-based (only a db table is used in the query) VO.

    1. Is it possible to set the height and width of the pop-up window of the LOV?
    2. Is it possible to make the search fields in the pop-up of the LOV resistanc case?
    3. My LOV returns another 3 values that I have (in config LOV) associtated to 3 inputText fields. When I confirm the choiche made in the LOV, 4 fields in total are met. If I write in the 'main' textFIeld a non-existent value, validation happens. But if I change the other 3 values validation does not occur. I wish that the user can write in 4 fields but the inputText must be validated as group/record.

    For example, the VO on which is based the LOV is a query that returns these records (the field in bold is the main dedined as LOV):

    1, one, I

    2 twoII

    3, three, III

    If the user chooses "one" in love, we have:

    inputText1.value = '1 '.

    inputText2.value = 'a '.

    inputText3.value = 'I '.

    But the user can change all fields and notification occurs only if the value of continains of inputText2.value one does not exist.

    Such a situation not to raise any notification:

    inputText1.value = '1_.

    inputText2.value = 'a '.

    inputText3.value = 'Xe!

    4 instead of this, if I want the inputTexts can be filled only by choiching a record in the LOV... What configs do I care?

    5. can I base without problem entry LOV 5-6 on the same VO? Or each must have its own VO LOV?

    Thank you

    Federico

    Hi Federico

    To resize popup dialog - ADF practice: resizing of research and dialogue components LOV

    To make case insensitive searching, check ignore case checkbox in viewCriteria

    See -for JDeveloper & ADF af:inputListOfValues: enable case-insensitive search | JDev & ADF Goodies

    Yes, you can use VO even create several lov, just create a new acceessor for each lov

    or disable other fields so that the user will not be able to change the value of inputtexts

    Thank you

  • Looping on a method that returns a query

    Hello

    I have a method that returns a query, I convey in this method, an identification number, the query uses in where clause. Now I have another query that returns a list of identification numbers that I have to loop through the appellant the first method and passing in the ID number, for example

    methodA

    Browse the methodA results
    Call methodB passing methodA.ID
    results of methodB
    close the loop

    now, the problem I have is that methodB returns a query and I want to be able to return the results of methodB as a unique query structure. I don't know how many times I will do a loop through the results of methodA, maybe twice, he could by ten times. Thus, the results of calling methodB could be very large.
    How can I add methodB results in a single query structure?

    I finally had to create a monster query with joins in about three tables, but it works.

Maybe you are looking for