How to call a method defined in AppmoduleImpl using a groovy expression?

Hi experts,

With the help of jdev 11.1.1.5.0 - adfbc battery.

I followed this post as the blogger says.
How to call a method defined in AppmoduleImpl using a groovy expression?
https://blogs.Oracle.com/ADF/entry/how_to_call_a_method

While a button insert hit

Suite error survey.
java.sql.SQLException: ORA-20483: ADM-
ORA-06512: at "RMSTD.FUNC_FIND_PLNT_DESC", line 22
ORA-06512: at line 1

     at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:457)
     at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:405)
     at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:889)
     at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:476)
     at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:204)
     at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:540)
It is my code for the function.
CREATE OR REPLACE FUNCTION func_find_plnt_desc (
   p_bu        VARCHAR2,
   p_plnt_id   VARCHAR2,
   p_lang      NUMBER
)
   RETURN VARCHAR2
IS
   CURSOR cur_find_plant
   IS
      SELECT bup_name1, bup_name2
        FROM bus_unit_plants
       WHERE bup_bu = p_bu AND bup_plant_id = p_plnt_id;

   rec_find_plant   cur_find_plant%ROWTYPE;
BEGIN
   OPEN cur_find_plant;
   FETCH cur_find_plant INTO rec_find_plant;
--RAISE_APPLICATION_ERROR(-20999,P_BU||P_PLNT_ID);
   IF cur_find_plant%NOTFOUND
   THEN

      raise_application_error (-20483, 'ADM' || P_PLNT_ID ||'-'||P_BU);
      --NULL;
   END IF;

   CLOSE cur_find_plant;

   IF p_lang = 1 THEN
      RETURN (rec_find_plant.bup_name1);
   ELSIF p_lang = 2 THEN
      RETURN (rec_find_plant.bup_name2);
   END IF;
END;
/
Reason behind:
while hitting the insert means null from the value of the survey so error function.

If am not hitting doesn't mean no problem. the function works correctly return description.

can someone help me how to override?

Published by: ADF7 on April 10, 2012 23:51

ADF7,
the subject of the post has nothing to do with the question (for as far as I see it).
As you can see the error message clearly comes from the procedure pl/sql you call the application module, works of groovy appeal method.

We cannot decide what makes your service if you pass null as a parameter. You can check the settings before you proceed to the procedure or write the procedure in how it treats null parameters.

Timo

Tags: Java

Similar Questions

  • How to call a method defined in AM when I select a value in LOV

    Lets say there is a LOV. The scenario is as soon as I select a value in LOV, a method should be called I wrote in the AM. And the output of the method in an output text area.

    I am not able to understand how to call a method when the user selects a value from the LOV.


    This is wht I did. I had created the connection for the method. One replaced the property autosubmit to the LOV for real and in the properties of the output area, in partial submission trigger property, the ID of the LOV. But I don't have any place where I need to call the method. I'm also not able to remove a listener for action on the LOV
  • How to call a method of the Module of the Application of a class of ViewObjectImpl?

    Howdy,

    With the help of Studio Edition Version 11.1.1.3.0.

    I have a setup where a user between an element and a price. When the item and the price is committed, I want this event to then influence the price of his parents. My idea is to do a ViewRowImpl class and then call an AppModuleImpl class that is her parents and it affects their attributes.

    Question:

    (1) how to call a method on the Module of the Application of a class of ViewObjectImpl?
      public void setPrice(Number value)
      {
        setAttributeInternal(PRICE, value);
        
        DCBindingContainer bindings = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
        BindingContext bctx = bindings.getBindingContext();
        DCDataControl control = bctx.findDataControl("AppModuleDataControl");
        ApplicationModule am = (ApplicationModule ) control.getDataProvider();
        //uh now what??
        // am.getProperty("method call(getTipsNum())") ?
      }
    (2) when I set an attribute on a view through the AppModuleImpl object, I'll make an infinite loop in this way? that is the AppModuleImpl calls the ViewRowImpl class on a setAttribue (< name >, < value >)?

    Thank you guys.

    It's an interesting problem, I'll take a stab to solve here.

    First let's see I understand the data model:

    (a) there is a table called BOM with a self referencing FK creating a hierarchy of data
    (b) each record BOM is usually a child to another record BOM, so using your example, a van is composed of frames and tires - Let's say that this amounts to 3 records in the Schedule table.
    (c) check parent, truck, is the root of the hierarchy, and so the FK relationship sucks.
    (d) the price of a truck consists of its children. So if the frame costs $1,000 and tires $500, the pickup truck costs total $1,500.
    (e) a change in the price of any folder BOM, upwards or downwards must be propagated to its parent folder BOM. As an example, if the tires up to $600, the pickup truck is now $1600 ($1000 frame + tires $600).

    Does this sound right?

    Well, that I understand the data model, here's what I'd do build in what concerns objects ADF BC:

    (1) an entity BOM (EO) object - let's call this Bom
    (2) a BOM BOM EO association (representing the self referencing FK)-Let's call it BomBomFkAssoc
    (3) an object to view BOM (VO) based on the EO - let's call it BomView
    (4) BOM VO view link BOM VO based on EO of #2 association - call BomBomFkLink

    Next, we create the Java constructs:

    (5) #1 ensures that the EntityImpl has been created
    (6) #4 guarantees for the EO association that it generates the required Java accessors

    Now the additional code:

    (7) for the EntityImpl # 5, in the field of setter setPrice() something like the following:

    public Number setPrice(Number value) {
      Number diffPrice = value.minus(getPrice()); 
    
      setAttributeInternal(PRICE, value);
    
      BomImpl parentBom = getBom(); // from step #6, the EntityImpl should have an accessor method to it's parent BomImpl record
      Number parentDiffPrice = parentBom.getPrice().add(diffPrice);
      parentBom.setPrice(parentDiffPrice);
    }
    

    From a point of view JSF, now when I change a specific record of the Nomenclature in an edit form, a change for the price of registration for the Bill to submit time will automatically propagated to the top of the hierarchy of the BOM because the method setPrice() of the current OS of BOM will walk to the top of the hierarchy of the BOM to the parent following the call it is setPrice() method , which will be then walk to the next BOM record and so forth. At the time all BOM records with changes should be committed to the database.

    You don't need to test this in JSF, but simply the browser component of company on the Application template project Module.

    .... Of course... If I misunderstood your data model, it will be of no help whatsoever.

    CM.

  • question on "How to call a method once when starting the application"

    Hello everyone.

    I'm trying to implement that article "How to call a method once when you start the application" by Frank suggests.
    https://blogs.Oracle.com/jdevotnharvest/entry/how_to_invoke_a_method


    Suppose I want to have a single entry point, so in my login.jpsx I have the below:
    <f:view beforePhase="#{login.onBeforePhase}">
    In the 'onBeforePhase' method, I have to pass the phaseEvent, since the signature is as follows:
    public void onBeforePhase(PhaseEvent phaseEvent)
    But how do I know the phaseEvent during the call to the login.onBeforePhase? How the call should be?

    Thank you very much!


    PS. I use jDev 11.1.2.1.0

    You must not pass something to this method, this method is called before each Phase except view restoration
    Just write logic as Frank suggested to the phase in which you want the code to run. You can get the PhaseId analogues

    PhaseId.RENDER_RESPONSE

    public void onBeforePhase(PhaseEvent phaseEvent) {// from Frank's doc
     //render response is called on an initial page request
      if(phaseEvent.getPhaseId() == PhaseId.RENDER_RESPONSE){
    ... etc
    
  • How to call a method of the AM with parameters of Bean managed?

    Hello world

    I have a situation where I need to call the Managed bean (setDefaultSubInv) AM, under value changes Listner method. Here's what I do, I added the AM method on page links, and then at the bean call it

    Class [] paramTypes = {};
    Object [] params = {};
    invokeEL ("#{bindings.setDefaultSubInv.execute}", paramTypes, params);

    It works and be able to call this method, if there are no parameters. Say that I pass a parameter to setDefaultSubInv(String a) method AM, I tried to call it bean but raise an error

    The string available = 'test ';
    Class [] paramTypes = {String.class};
    Object [] params = {DISP};
    invokeEL ("#{bindings.setDefaultSubInv.execute}", paramTypes, params);

    I'm not sure this is the right way to call the method with parameters. Can anyone tell how to call a method of the AM with bean to manage settings

    Thank you
    San.

    Just do the following

    1. your method in the Client Interface.
    2 - Add to Page Def.
    3 - Customize your Script like below one to reach your goal.

    BindingContainer links = getBindings();
    OperationBinding operationBinding = bindings.getOperationBinding("GetUserRoles");
    operationBinding.getParamsMap () .put ("username", "oracle");
    operationBinding.getParamsMap () .put ("role", "F1211");
    operationBinding.getParamsMap () .put ("Connection", "JDBC");
    Object result = operationBinding.execute ();
    If (! operationBinding.getErrors () .isEmpty ()) {}
    Returns a null value.
    }
    Returns a null value.
    }

    I hope it helps you
    Thank you

  • How to call this method?

    I wrote this method earlier, but I do not remember how to call it. Can someone help me?

    public class PostReview extends Thread {
        String _url = new String();
    
        public void Submit(String _url) {
            ConnectionFactory connFact = new ConnectionFactory();
            ConnectionDescriptor connDesc;
            connDesc = connFact.getConnection(_url);
            if (connDesc != null) {
                HttpConnection httpConn;
                httpConn = (HttpConnection)connDesc.getConnection();
                try {
                    final int iResponseCode = httpConn.getResponseCode();
                    UiApplication.getUiApplication().invokeLater(new Runnable()
                    {
                    public void run() {
                        //Dialog.alert("Response code: " + Integer.toString(iResponseCode));
                    }
                    });
                } catch (IOException e) {
                    Dialog.alert("Caught IOException: " + e.getMessage());
                }
            }
        }
    }
    

    You can simply call News PostReview.Submit (url). But why the class extends Thread If you aren't actually create or who runs an instance of thread?

  • AM how to call the methods of class Impl EO

    Hello world

    I try to display database data in a table, and I need to add a transitional and calculated attribute.

    So I created an EO, I added a transitional attribute, and now I need to create the method that calculates its value.

    I created this method of AOS.

    Back to EO Impl class, I want to call this method in the Get accessor of my transitional attribute.

    To call this AM method in the EO Impl category, I have to get the AM, and I don't know how to do it. Because I'm used to getting the pageContext controller AM.

    I googled and found that I don't need to create the method in the AM, I found that I just have to code directly in the Get accessor.

    But again, to calculate my transitional attribute, I have need for some queries and for that I need OADBTransaction, which means once again, I need to get the AM in the Impl EO class.

    I'm confused, I don't know how to do, if anyone can help please

    Thank you

    Kind regards

    Afaf

    If you derive the value based on the query, it would be better to do it in a single query.

    If you can stick the main request and the subquery (s) here, I take a look.

    If this is not possible using the query, you can get the oaDBTransaction like below in the VO RowImpl.

    Import oracle.apps.fnd.framework.OAApplicationModule;

            OAApplicationModule appModule = (OAApplicationModule)this.getApplicationModule();
            appModule.getOADBTransaction()
    

    See you soon

    AJ

  • How to call a method abstract in Java

    Hi all

    I am new to Java, and have been learning. I have a question here. I came across the following Java class and trying to understand but got confused how he is able to call an abstract method. Here's the code I'm referring to:

    package sampleapps.gui;

    Javax.swing import. *;

    import java.awt.*. *;

    public class InnerClassAnimationExample {}

    int x = 70, y = 70;

    Public Shared Sub main (String [] args) {}

    InnerClassAnimationExample innerClassAnimationExample = new InnerClassAnimationExample();

    innerClassAnimationExample.go ();

    }

    public void getCurrentCard {}

    JFrame frame = new JFrame();

    frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

    NewMyDrawPanel drawPanel = new NewMyDrawPanel();

    frame.getContentPane () .add (drawPanel);

    frame.setSize (300, 300);

    frame.setVisible (true);

    for (int i = 0; i < 500; i ++) {}

    x ++ ;

    y ++ ;

    drawPanel.repaint ();

    try {}

    Thread.Sleep (50);

    } catch (Exception e) {}

    e.printStackTrace ();

    }

    }

    }

    class NewMyDrawPanel extends JPanel {

    {} public void paintComponent (Graphics g)

    Graphics2D g2d = (Graphics2D) g;

    Red int = (int) (Math. random() * 255);

    int green = (int) (Math.Random () * 255);

    Blue int = (int) (Math. random() * 255);

    Color startColor = new color (red, green, blue);

    Red = (int) (Math. random () * 255);

    Green = (int) (Math.Random () * 255);

    Blue = (int) (Math.Random () * 255);

    Color endColor = new color (red, green, blue);

    GradientPaint gradient = new GradientPaint (7070, startColor, 150 150, endColor); We can also use colors straight as Color.RED, Color.BLUE

    GradientPaint gradient = new GradientPaint (7070, startColor, 150 150, endColor);

    g2d.setColor (Color.White);

    g2d.fillRect (0, 0, this.getWidth (), this.getHeight ());

    g2d.setPaint (gradient);

    g2d.fillOval (x, y, 40, 40);

    }

    }

    }

    For example, in the code above, there are an internal NewMyDrawPanel class that has a method paintComponent (Graphics g). I've highlighted the 2 lines of code above.

    Line 1 : Graphics2D g2d = (Graphics2D) g;

    Line 2 : g2d.fillOval(x,y,40,40);


    I understand that we are casting type reference to Graphics2D g reference g2d and we call the method fillOval() on g2d. I do not see a method of fillOval() in the Graphics2D class but it's there in the Graphics class and Filloval()) method is an abstract method.

    So my question is:

    1. If we are not able to instantiate an abstract class (Graphics2D Graphics classes) and how are we able to access the abstract method fillOval()

    2. Secondly, given that the fillOval() method is an abstract method, it has no implementation for the method. However, when I call the method fillOval() on Graphics2D reference, I was able to draw and fill in an oval of the specified coordinates. Then, where the actual implementation code would be?

    Could you please, somebody explain how this happened? Pls help.

    Thanks in advance.

    Mahesh Reddy Y V wrote:

    1. If we are not able to instantiate an abstract class (Graphics2D Graphics classes) and how are we able to access the abstract method fillOval()

    2. Secondly, given that the fillOval() method is an abstract method, it has no implementation for the method. However, when I call the method fillOval() on Graphics2D reference, I was able to draw and fill in an oval of the specified coordinates. Then, where the actual implementation code would be?

    The point of having the Graphics class declaring fillOval() summary, is that we can have confidence that all the graph goes instantiable subclass is an implementation of this method. You as the user of this unknown implementer of graphics have no need of care including probably several classes in this legacy hirarchie did the implementation. You just trust in the fact that it must be there, because the java compiler takes care of this.

    Good bye

    DPT

  • How to call a method of itemRenderer

    Hello

    I need to call a method when the click on an HBox in DataGrid. However, when I try to call the method on click Control HBox property, an error appears stating "call to a goToAlertTab possibly undefined method." I duly defined this method within the tag < mx:Script >. Here is the code example. Is someone can you please tell me what is the problem?

    < mx:DataGridColumn headerText = "Alerts" dataField = "alert" >
    < mx:itemRenderer >
    < mx:Component >
    < mx:HBox horizontalGap = "2" horizontalAlign = "center" click = "goToAlertTab ()" >
    < mx:Canvas height = "100%" backgroundColor = "Red" alpha = "0.8".
    Width = "{Data.Alert.Critical}" toolTip = "{" criticism:'+ data.alert.critical "}" > "
    < mx:Label text = "" / >
    < / mx:Canvas >
    < mx:Canvas height = "100%" backgroundColor = "0xff6600" width = "{data.alert.error}" toolTip = "{'Error:'+ data .alert .error}" > "
    < mx:Label text = "" / >
    < / mx:Canvas >

    < mx:Canvas height = "100%" backgroundColor = "Yellow" alpha = "0.8".
    Width = "{Data.Alert.Warning}" toolTip = "{'Warning:'+ data .alert .warning}" > "
    < mx:Label text = "" / >
    < / mx:Canvas >

    < / mx:HBox >
    < / mx:Component >
    < / mx:itemRenderer >
    < / mx:DataGridColumn >

    It is obvious that it is very difficult to go throw your hierarhy to change tab, event dispatching easier.

    It http://www.adobe.com/devnet/flex/articles/itemrenderers_pt1.html is a good example on the distribution of the itemRenderer events handling them.

    Can be also useful that you can use to navigate through the application. Read the docs to learn more about them.

  • How to call a method public applicationModuleIMPL bean managed

    Hi all

    How can I call a method public amimpl in my bean managed

    my version of jdev is 11.1.1.2.0

    Thanks in adv

    Please see the developer's guide:
    http://download.Oracle.com/docs/CD/E12839_01/Web.1111/b31974/bcservices.htm#sm0212
    First, the method must be exposed in the interface of the client of the AOS.

    (The link is 11g dev guide).

  • How to call the method of notification service websocket project different from the same application?

    Hi all

    My problem:

    * I have ADF application with model, view and websocket service inside projects.

    * I wish to inform the client (browser) on event triggered in the model project.

    * So, I need somehow to invoke the websocket service method to send the message to all the sessions that are enrolled in the websocket communication channel.

    * How can I achieve that?

    I use JDev 12.1.3 with built-in WebLogic Server. Thank you!

    -Danas

    No doubt with some form of messaging (JMS or something similar - in-memory cache solutions have pub/sub support).

    Dario

  • How to call a method when it is clicked on selectBooleanCheckbox?

    Hello experts!

    I use Jdev 12.1.2 and I'm currently calling a method in a Bean managed using an af:button and works great:

    <af:button id="b1"
             icon="/images/icons/highlighted.png"
             actionListener="#{backingBeanScope.pppProjectsBean.toggleHighlighted}"
             text="#{sessionScope.highlighted_only ? 'Show All' : 'Show Highlighted Only'}"
             immediate="true"/>
    

    My requirement is to change the button for a selectBooleanCheckbox, but the attributeChangeListener method is not executed:

    <af:selectBooleanCheckbox text="Show Only Highlighted Projects"
       label=" id="sbc1"
       attributeChangeListener="#{backingBeanScope.pppProjectsBean.toggleHighlighted}"
       immediate="true">
    

    What are the 3 codes methods in the managed bean:

        private void toggleHighlighted() {
            <code tested and working fine>
        }
        //For the action listener of the button
    
        public void toggleHighlighted(ActionEvent actionEvent) {   
            toggleHighlighted();
        }
       //For the attribute change listener of the checkbox    
        public void toggleHighlighted(AttributeChangeEvent attributeChangeEvent) {
            toggleHighlighted();
        }
    

    Thanks in advance,
    Jose.

    Use valuechangeListener.

  • How to call a method to support bean when change the af:panelTabbed tab?

    I use component af:panelTabbed and want to call a method of bean support when change tab. I tried to use itemListener on af:showDetailItem, but it's not working. and use clientListener / serverListener to call the backup method does not work either.

    Hello

    use the earpiece of the disclosure on the detail element

    http://download.Oracle.com/docs/CD/E15523_01/apirefs.1111/e12419/tagdoc/af_showDetail.html

    Frank

  • How to display a user defined symbol when using addLinearFeature

    Hello

    We display our geospatial data of database image on the browser.

    With the help of MapViewer mv.addLinearFeature I am able to draw lines on it.
    I created styles in MapBuilder for our symbols userdefined and added to the Mapviewerconfig file.


    Now, according to our condition, we need to put our user defined symbols in the middle of the line when a line is drawn using addLinearFeature

    For example like this:



    -------------(::) -------------------

    Suppose that (:) that is our symbol.


    Please tell me how to do this.

    You can use the marker (user-defined symbol) as a label for the line. Something like the theme/style definition of roads in the mvdemo example where the highway shield is a marker.
    SQL > select styling_rules from user_sdo_themes, whose name = "THEME_DEMO_HIGHWAYS";

    STYLING_RULES
    ---------------------------------------------------------------------------






    SQL > select the definition of user_sdo_styles where name = 'M.SHIELD1';

    DEFINITION
    --------------------------------------------------------------------------------





    SQL >
    The content of ROUTEN (column/attribute) is displayed in the marker (m.shield1).

    Is your different condition or something similar work?

    If its for just displaying a marker (i.e. your symbol defined by the user who is the notice of user_sdo_styles of database) somewhere along the line then use a line style definition (see Appendix A of the guide):





    This will display the marker M.IMAGE105_BW on 0.15th of the length of the line.
    If you would like this marker repeated at fixed intervals (the length of the line subsequently 0.15) then use





  • How to call javascript method action listener.

    Hi Experts ADF,

    JDEV version 11.1.1.7.0

    I cb2 and cb1 button, 2. I call the pressing cb1, cb1 - actionListener () method. I invoke the javascript cb1() method.

    And JavaScript, I need to invoke the command button 2 actionListener. How do I get there?

    I tried the below code but its not invoking is not the cb2_actionListener.


    var button
    = AdfPage.PAGE.findComponentByAbsoluteId ("cb2");

    ActionEvent.queue (button, true);

    Thanks in advance,

    Animesh

    HI Anne

    If you have created actionListener for button cb1 cb2 actionListener call you in this

    See - Blog of Ashish Awasthi (Jdev/ADF): call to Action button by programming, Queuing ActionEvent

    Or if you insist on using Javascript then try this

    var component = AdfPage.PAGE.findComponentByAbsoluteId (commanButtonId);

    AdfActionEvent.queue (component, component.getPartialSubmit ());


    Thank you

Maybe you are looking for