Calling Public Method in OOP.
Hello All,
How to call a Public method in one using the object of the other class.
The second class doesn't inherit the first class.
Thanx and Regards,
SampathKumar.
Got the solution.
Similar Messages
-
Error while calling a super class public method in the subclass constructor
Hi ,
I have code like this:
CLASS gacl_applog DEFINITION ABSTRACT.
PUBLIC SECTION.
METHODS:
create_new_a
IMPORTING pf_obj TYPE balobj_d
pf_subobj TYPE balsubobj
pf_extnumber TYPE string
EXPORTING pfx_log_hndl TYPE balloghndl
EXCEPTIONS error
ENDCLASS.
CLASS gacl_applog IMPLEMENTATION.
METHOD create_new_a.
DATA: ls_log TYPE bal_s_log.
Header aufsetzen
MOVE pf_extnumber TO ls_log-extnumber.
ls_log-object = pf_obj.
ls_log-subobject = pf_subobj.
ls_log-aluser = sy-uname.
ls_log-alprog = sy-repid.
ls_log-aldate = sy-datum.
ls_log-altime = sy-uzeit.
ls_log-aldate_del = ls_log-aldate + 1.
CALL FUNCTION 'BAL_LOG_CREATE'
EXPORTING
i_s_log = ls_log
IMPORTING
e_log_handle = pfx_log_hndl
EXCEPTIONS
OTHERS = 1.
IF ( sy-subrc NE 0 ).
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
RAISING error.
ENDIF.
ENDMETHOD.
CLASS gcl_applog_temp DEFINITION INHERITING FROM gacl_applog.
PUBLIC SECTION.
DATA: log_hndl TYPE balloghndl READ-ONLY
, t_log_hndl TYPE bal_t_logh READ-ONLY
METHODS: constructor
IMPORTING pf_obj TYPE balobj_d
pf_subobj TYPE balsubobj
pf_extnumber TYPE string
EXCEPTIONS error
, msg_add REDEFINITION
, display REDEFINITION
ENDCLASS.
CLASS gcl_applog_temp IMPLEMENTATION.
METHOD constructor.
CALL METHOD create_new_a
EXPORTING pf_obj = pf_obj
pf_subobj = pf_subobj
pf_extnumber = pf_extnumber
IMPORTING pfx_log_hndl = log_hndl.
IF ( sy-subrc NE 0 ).
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
RAISING error.
ENDIF.
ENDMETHOD.
A public method of Super class has been called from the constructor of the sub class. we are getting the syntax error :
' In the constructor method, you can only access instance attributes, instance methods, or "ME" after calling the constructor of the superclass '
Can you please suggest how to change the code with out affecting the functioanlity.
Thank you ,
Lakshmi.Hi,
Call that method by instance of Subclass. OR
SUPER-->method.
Read very useful document
Constructors
Constructors are special methods that cannot be called using CALL METHOD. Instead, they are called automatically by the system to set the starting state of a new object or class. There are two types of constructors - instance constructors and static constructors. Constructors are methods with a predefined name. To use them, you must declare them explicitly in the class.
The instance constructor of a class is the predefined instance method CONSTRUCTOR. You declare it in the public section as follows:
METHODS CONSTRUCTOR
IMPORTING.. [VALUE(]<ii>[)] TYPE type [OPTIONAL]..
EXCEPTIONS.. <ei>.
and implement it in the implementation section like any other method. The system calls the instance constructor once for each instance of the class, directly after the object has been created in the CREATE OBJECT statement. You can pass the input parameters of the instance constructor and handle its exceptions using the EXPORTING and EXCEPTIONS additions in the CREATE OBJECT statement.
The static constructor of a class is the predefined static method CLASS_CONSTRUCTOR. You declare it in the public section as follows:
CLASS-METHODS CLASS_CONSTRUCTOR.
and implement it in the implementation section like any other method. The static constructor has no parameters. The system calls the static constructor once for each class, before the class is accessed for the first time. The static constructor cannot therefore access the components of its own class.
Pls. reward if useful.... -
Error when calling a Webservice's public method in Forms10g
Hi,
I'm getting the following error when calling a webservice's public method, i'm using Forms10g 10.1.2.3
java.rmi.RemoteException; nested exception is: HTTP transport error javax.xml.soap.SOAPException
java.security.PrivilegedActionException javax.xml.soap.SOAPException
Message send failed javax.net.ssl.SSLException SSL handshake failed X509CertChI have added the Jar containing the client proxy in both Classpaths(system variable and default.env), the jar has been made with jdk 1.4
I also have tested the client proxy from jDeveloper and it's working there, but in Forms i'm getting this error.
I guess my problem might be that i'm calling a webservice that is secured since the url starts with https
what should i do to fix this ??
Regards
CarlosI understand, so i have a doubt, why the webservice works on jDeveloper ??Not just JDeveloper even soapUI and Neatbeans have a way of working without a client certificate installed.
I do not know how they achieve it. I know that they work without a client DC.
Cheers,
PS: See this http://stackoverflow.com/questions/8887434/webservices-ssl-https, it offers a clue.
The java programs run unhindered when one-way authentication is being used. These products ship with a digital certificate that is in the path of most popular CAs.
Corollary, if the Web Server is configured for mutual authentication then you need to install and configure the client certificate in the tools.
Edited by: Prabodh on Dec 5, 2012 8:36 PM -
Calling a method in a public web dynpro DC from EP
Hi all,
I have a public web dynpro DC which exposes some methods. I want to call these methods from an EP application (JSP Dynpage). IS this possible to do?
Any info on this would be of great help.
Regards,
Naraharihi,
Step by step solution for calling a webdynpro application from portal is given.
this will help you ....
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/7cf6a990-0201-0010-dd80-c09fc1438056
http://help.sap.com/saphelp_nw04/helpdata/en/d8/6ee03fc2269615e10000000a155106/frameset.htm
regards,
ganesh -
How to call a method in private section of a class in the public section
Hi Everybody,
i have written a method(meth1) in the private section of a class(C1).
it is as follows
class C1 definition.
private section.
methods: meth1 importing im_dt1 like tp1
im_dt2 like tp2
im_dt3 like tp3
im_dt4 like tp4
returning value(re_dt1) like tp5.
endclass.
i have the final data that has to be displayed in internal table re_dt1.
now my question is how to call this method present in private section into public section and display the data present in re_dt1.
Thanks,
learning.abap.Hi,
what you need is one public method being called at start-of-selection. Within this the private methods have to be called.
The question is, why has the method for reading the database tables to be private? If you have only one private method reading all database tables the public method being called at start-of-selection will only consist of a call-method statement.
This seems to be one call to much.
The logic for reading the different database tables is hidden inside the class anyway.
Is there any further logic reading the different database tables?
Have always all table to be read? If not another approach would be one private method for each database table being called by a public method deciding which table has to be read:
public section.
methods get_data returning value(re_Dt1).
private section.
methods:
get_table_a returning value(im_dt1),
get_table_b returning value(im_dt2),
get_table_c returning value(im_dt3),
get_table_d returning value(im_dt4),
combine_data importing im_dt1
im_dt2
im_dt3
im_dt4
returning value(re_dt1).
*- implementation of public method:
method get_data.
data: lt_dt1 ...
lt_dt2,
lt_dt3,
lt_dt4.
* here decide which tables have to be read:
lt_dt1 = get_table_a( ).
lt_dt2 = get_table_b( ).
lt_dt3 = get_table_c( ).
lt_dt4 = get_table_d( ).
re_dt1 = combine_data( i_dt1 = lt_dt1
i_dt2 = lt_dt2
i_dt3 = lt_dt3
i_dt4 = lt_dt4 ).
endmethod.
*- implementation of private methods
method get_table_a.
endmethod.
method get_table_b.
endmethod.
method get_table_c.
endmethod.
method get_table_d.
endmethod.
method combine_data.
endmethod.
Regards
Dirk -
Calling public class method from the servlet dopost() implementation
Hi!
My application is a simple application where i wrote a JSP page to enter the USERNAME and PASSWORD. And this JSP will call a HttpServlet
with in which i am calling another Java class ValidateUser which will check aginst the Oracle Database table whether that Username and password combination exists and returns the user's name.
But when i am trying to call that method is throwing me an error. here is the typical code i wrote.
servlet
package isispack;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.*;
public class Login extends HttpServlet{
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException,IOException{
String userId = req.getParameter("user_id");
String password = req.getParameter("user_pass");
// if uName is null .. user is not authorized.
String uName = Validate(userId, password);
and
Validate class
package isispack;
import java.sql.*;
import java.util.*;
import java.lang.*;
public class ValidateUser
public String ValidateUser(String inputUserid, String inputPwd) throws
SQLException{
String returnString = null;
String dbUserid = "isis"; // our Database user id
String dbPassword = "isisos" ; // our Database password
Connection con = DriverManager.getConnection("jdbc:odbc:JdbcOdbcDriver","isis","osiris");
Statement stmt = con.createStatement();
String sql= "select user_id from isis_table where user_id = '" inputUserid + "' and user_pass= '" + inputPwd +"' ;" ;
ResultSet rs = stmt.executeQuery(sql);
if (rs.next())
returnString = rs.getString("user_id");
stmt.close();
con.close();
return returnString ;
The ERROR
Error(18,18): method ValidateUser(java.lang.String, java.lang.String) not found in class isispack.Login
One more thing i forgot to tell you. I am trying to run this application on JDeveloper. Please helpme out if you can . Thank you.
-SreekanthOK! I made it static method
and tried to call the method as follows
String uName = ValidateUser.ValidateUser(userId, password);
even if i create the instence and
ValidateUser Validate;
then call
String uName= Validate.ValidateUser(userId,password)
In either case is giving me the following error.Tarun, am new to Java programming, please help me out. And can you please tell me where can i find things in consise to brush up my fundamentals?.
Error(18,43): unreported exception: java.sql.SQLException; must be caught or declared to be thrown -
Can you call a public method in a custom skin?
I made a custom skin for a button. In the skin there's a method to change some text. Can I call this method from my application?
I get an error message when I try to call it like a normal object:
uploadNewBtn.setNewPhotosLabel("test");
Error 1061: Call to a possibly undefined method setNewPhotosLabel through a reference with static type spark.components:Button.You said it yourself, the method is inside skin not the HostComponent (button in your case). Obviously you cannot call it.
There is a skin protperty inside SkinnableComponent, but it is typed as UIComponent so you still cannot cal it on the skin without casting. I don't know your use case, so in theory you either push the text/label from the host towards the skin, or you listen or bind from the skin on the hostcomponent.
C -
hello,
I have a requirement that I am working on, I need to create a program that will have vendor number and vendor bank account number on the selection screen.
Now what I need to do is I need to call a method from a class that will do some kind of validation, method name is 'validation'
My problem here is that method validation has only vendor bank account number as a parameter. Vendor number is defined as an attribute in the class, let's say z_vendor, and in the method we are using Z_vendor as a vendor number.
Can you please tell me how can I set the value of the attribute to the one that the user will enter using a FM and then how to call the method validation in to my program.
I can not make any change the way class has been declared.
The attribute z_vendor is defined as follows:
1. Level - Instance Attribute
2. Visibility - Public
I am very new to OOPS.. so any help will be really appreciated.Hi Rahul,
You can do like this:
data:lr_object type ref to CLASS (NAME of your class)
create object lr.
1.lr_object->z_vendor = vendor no.
2. call method lr_object->method name (in Importing parameter pass the vendor bank account no.
And then in the method your vendor no and bank account will be passed.
Thanks
Bhanu -
Generically calling a method on an object
Hello,
I am trying to write a small utility method to generically call a method on an object.
This is what I have.
public static void doCall(Object o, String methodName, Object ... args){
Class[] types = new Class[args.length];
int i = 0;
for(Object arg : args){
types[i] = arg.getClass();
try {
Method m = o.getClass().getMethod(methodName, types);
m.invoke(o, args);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("Error dynamically calling method " + methodName + " on " + o.toString());
}It doesn't work because it can't find the method. If I hard code the parameter types as "new Object[] {Double.TYPE}" it works fine (on methods that take a double).
So, my question is, how can I generically set up the parameter types based on the types of the arguments?
Thanks,
~EricThe problem is not on calling agr.getClass(), your primitive double is already autoboxed to a Double object. It is the doCall(...) method who expects an object, not a primitive. So when giving it a primitive value, java autoboxes it to the corresponding object type.
This means your attempt will only work if the methods to call do not have any primitives as parameters.
Test this code:
public class GenericMethodCaller {
public static void doCall(Object o, String methodName, Object ... args){
Class[] types = new Class[args.length];
int i = 0;
for(Object arg : args){
types[i++] = arg.getClass();
try {
Method m = o.getClass().getMethod(methodName, types);
m.invoke(o, args);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("Error dynamically calling method " + methodName + " on " + o.toString());
public static void main(String[] args) {
Callable callee = new Callable();
callee.callabelMethod(10d);
GenericMethodCaller.doCall( callee, "callabelMethod", 10d ); // 10d gets autoboxed to a Double object.
class Callable {
public void callabelMethod(Double o) {
System.out.println("callabelMethod(Double o) called");
public void callabelMethod(double o) {
System.out.println("callabelMethod(double o) called");
}The output will be:
callabelMethod(double o) called
callabelMethod(Double o) called
- Roy -
LVOOP "call parent method" doesn't work when used in sibling VI
It seems to me that the "call parent method" doesn't work properly according to the description given in the LabVIEW help.
I have two basic OOP functions I am doing examples for. I can get one to work easily and the other one is impossible.
Background
There are 3 basic situations in which you could use the "call parent method"
You are calling the parent VI (or method) of a child VI from within the child VI
You are calling the parent VI (or method) of a child VI from within a sibling VI
You are calling the parent VI (or method) of a child VI from a different class/object.
From the LabVIEW help system for "call parent method":
Calls the nearest ancestor implementation of a class method. You can use the Call Parent Method node only on the block diagram of a member VI that belongs to a class that inherits member VIs from an ancestor class. The child member VI must be a dynamic dispatching member VI and have the same name as the ancestor member VI
From my reading of that it means situation 3 is not supported but 1 & 2 should be.
Unfortunately only Situation 1 works in LabVIEW 2012.
Here is what I want
And this is what I actually get
What this means is that I can perform a classic "Extend Method" where a child VI will use the parent's implementation to augment it's functions BUT I cannot perform a "Revert Method" where I call the parent method's implementation rather than the one that belongs to the object.
If you want a picture
Any time I try and make operation2 the VI with the "call parent method" it shows up for about 1/2 sec and then turns into operation.
So there are only 3 possibilities I can see
Bug
Neither situation 2 or 3 are intended to work (see above) and the help is misleading
I just don't know what I am doing (and I am willing to accept this if someone can explain it to me)
The downside is that if situation 2 above doesn't work it does make the "call parent node" much less usefull AND it's usage/application just doesn't make sense. You cannot just drop the "call parent node" on a diagram, it only works if you have an existing VI and you perform a replace. If you can only perform situation 1 (see above) then you should just drop the "call parent node" and it picks up the correct VI as there is only 1 option. Basically if situation 2 is not intended to work then the way you apply "call parent method" doesn't make sense.
Attachements:
For the really keen I have included 2 zip files
One is the "Revert Method labVIEW project" which is of course not working properly because it wants to "call parent method" on operation not operation2
The other zip file is all pictures with a PIN for both "Revert Method" and "Extend Method" so you can see the subtle but important differences and pictrures of the relavant block diagrams including what NI suggested to me as the original fix for this problem but wasn't (they were suggesting I implement Extend Method).
If you are wondering where I got the names, concepts and PIN diagrams from see:
Elemental Design Patterns
By: Jason McColm Smith
Publisher: Addison-Wesley Professional
Pub. Date: March 28, 2012
Print ISBN-10: 0-321-71192-0
Print ISBN-13: 978-0-321-71192-2
Web ISBN-10: 0-321-71255-2
Web ISBN-13: 978-0-321-71255-4
All the best
David
Attachments:
Call parent node fault.zip 356 KB
Call parent node fault.zip 356 KBHi tst,
Thankyou for your reply. Can you have a look at my comments below on the points you make.
1) Have to disagree on that one. The help is unfortunately not clear. The part you quote in your reply only indicates that the VI you are applying "Call Parent Node" to must be dynamic dispatch. There is nowhere in the help it actually states that the call parent node applies to the VI of the block diagram it is placed into. Basically case 2 in my example fulfills all that the help file requires of it. The dynamic dispatch VI's operation are part of a class that inherits from a given ancestor. Operation 2 for Reverted behaviour is a child VI that is dynamic dispatch and has the same name as the ancestor VI (operation2). The help is missing one important piece of information and should be corrected.
2) True it does work this way. I was trying to build case 2 and had not yet built my ancestor DD for operation so the function dropped but wasn't associated with any VI. I was able to do this via a replace (obviously once the ancestor Vi was built) so this one is just bad operator
3) Keep in mind this is an example not my end goal. I have a child implementation because this is a case where I am trying to do a "reverse override" if you like.
3a) The point of the example is to override an objects method (operation2) with it's parent's method NOT it's own. The reason there is a child implementation with specific code is to prove that the parent method is called not the one that relates to the object (child's VI). If I start having to put case structures into the child VI I make the child VI have to determine which code to execute. The point of Revert method is to take this function out of the method that is doing the work. (Single Use Principal and encapsulation)
3b) The VI I am calling is a Dynamic Dispatch VI. That means if I drop the superclass's VI onto the child's block diagram it will become the child's implementation. Basically I can't use Dynamic Dispatch in this case at all. It would have to be static. That then means I have to put in additional logic unless there is some way to force a VI to use a particular version of a DD VI (which I can't seem to find).
Additional Background
One of the uses for "Revert Method" is in versioning.
I have a parent Version1 implementation of something and a child Version2. The child uses Version2 BUT if it fails the error trapping performs a call to Version1.
LabVIEW has the possibility of handling the scenario but only if both Case 1 and Case 2 work. It would actually be more useful if all 3 cases worked.
The advantage of the call parent method moving one up the tree means I don't have the track what my current object is and choose from a possible list, if, for example the hierarchy is maybe 5 levels deep. (so V4 calls V3 with a simple application of "call parent method" rather than doing additional plumbing with case structures that require care and feeding). Basically the sort of thing OOP is meant to help reduce. Anything that doesn't allow case 2 or 3 means you have to work around the limitation from a software design perspective.
If at the end of the day Case 2 and case 3 don't and won't ever work then the help file entry needs to be fixed.
All the best
David -
Calling a method from another class. Please Help!!
Here is my full program. Like I said in my last post. I am having trouble calling the baseMakesError1 method. This method is called in the subcallsbase1 method. Also, it would be of great help if you could look for any other errors with with my program. Thank you so much. I really appreciate it.
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
public class ThomasR11
String sy;
public static void main(String[] args)
System.out.println("(main): Ryan Thomas, file ThomasR11: Exceptions");
SubRT obj3;
SubRT obj4;
String sX;
String x;
String s;
String sY;
try
ThomasR11 obj1=new ThomasR11();
catch(NullPointerException NPE)
System.err.println("Null Pointer Exception");
ThomasR11 obj2=new ThomasR11("Hello");
System.out.println("This is the last statement in main");
public ThomasR11()
SubRT obj3= new SubRT();
obj3.subCallsBase1();
public ThomasR11(String sY)
throws FileNotFoundException
SubRT obj4= new SubRT();
obj4.subError2();
obj4.subError3(sY);
private static class BaseRT
public BaseRT()
System.out.println("In BaseRT constructor= " + this);
public void baseMakesError1(int value0)
System.out.println("In BaseRT constructor, about to throw exception");
if (value0==0)
throw new NullPointerException("NullPointerException");
private class SubRT extends BaseRT
SubRT subNull;
public SubRT()
System.out.println("In SubRT constructor before call to aMakes an error= " +
"\n SubRT constructor= " + this);
public void subCallsBase1()
try
System.out.println("Calling the method baseMakeserror1");
baseMakesError1(subNull);<---------------------This is where I am getting the error it says "ThomasR11.java [79:1] baseMakesError1(int) in ThomasR11.BaseRT cannot be applied to (ThomasR11.SubRT)"
catch(NumberFormatException NFE)
System.err.println("\nNumber Format Exception");
catch (NullPointerException NPE)
System.err.println(NPE.getMessage() + "\n");
System.err.println(NPE.toString() + "\n");
throw NPE;
public void subError2()
try
BufferedReader in = new BufferedReader( new FileReader( "c:/xx/xx.xx" ) );
catch(NullPointerException NPE)
System.out.println("Null Pointer Exception");
catch (FileNotFoundException FNFE)
System.err.println("FileNotFoundException");
public void subError3( String sX)
try
System.out.println("Hello");
System.out.println (sX.length());
catch(NullPointerException NPE)
System.err.println("Null Pointer Exception");"ThomasR11.java [79:1] baseMakesError1(int) in ThomasR11.BaseRT cannot be applied to (ThomasR11.SubRT)"
...this error is telling out that you wrote baseMakesError1 to accept an "int" as an argument, and you are trying to pass it an instance of the ThomasR11.SubRT class. You either have to change baseMakesError1 to accept a SubRT as an argument, or change your call to pass an integer. -
Calling a method from a super class
Hello, I'm trying to write a program that will call a method from a super class. This program is the test program, so should i include extends in the class declaration? Also, what code is needed for the call? Just to make things clear the program includes three different types of object classes and one abstract superclass and the test program which is what im having problems with. I try to use the test program to calculate somthing for each of them using the abstract method in the superclass, but its overridden for each of the three object classes. Now to call this function what syntax should I include? the function returns a double. Thanks.
Well, this sort of depends on how the methods are overridden.
public class SuperFoo {
public void foo() {
//do something;
public void bar(){
//do something
public class SubFoo extends SuperFoo {
public void foo() {
//do something different that overrides foo()
public void baz() {
bar(); //calls superclass method
foo(); //calls method in this (sub) class
super.foo(); //calls method in superclass
}However, if you have a superclass with an abstract method, then all the subclasses implement that same method with a relevant implementation. Since the parent method is abstract, you can't make a call to it (it contains no implementation, right?). -
Calling another method in the class from within the body of a method Im wri
Hello out there.
I have a question. I keep getting an error that reads as follows:
1 error found:
File: /Users/matthieubell/Academia/University of Waterloo/CS 125/L06/CreditCard.java [line: 80]
Error: double cannot be dereferenced
I think it is occuring because I am trying to call a method on an instance variable, which is not an object. But how do call a method I have already written, on another method I am writing in the general sense. I could make a particular object, but Im not shure that would get me the same result. I want to be able to call the method calcMinPayment on the instance variable currentBalance to wirte the method makePayment.
I have a class CreditCard
with the instance variables "private double currentBalance = 0; "
public double calcMinPayment()
// Add code here
double minimumPayment;
if (currentBalance < 50)
minimumPayment = currentBalance/10;
else
minimumPayment = 50;
return minimumPayment; // Replace this statement
* This method will decrease the current balance on the credit card if
* this payment meets or exceeds the minimum payment amount.
* pre: paymentAmt > 0
* post: The current balance should be decreased by paymentAmt if
* paymentAmt >= the minimum payment amount. Otherwise, the payment
* will not be recorded and an appropriate error message should be
* displayed.
public void makePayment(double paymentAmt)
// Add code here
double minimumPaymentAmount;
minimumPaymentAmount = currentBalance.calcMinPayment();
if (paymentAmt < minimumPaymentAmount)
System.out.println("Sorry, but your payment must exceed the minimum payment amount.");
System.out.println("This payment has not been recorded, please try again.");
else
this.currentBalance = currentBalance - paymentAmt;
thanks for youre help
-Matthieu'calcMinPayment' takes no arguments, uses a member variable (currentBalance) to compute a local variable 'minimumPayment' which it returns, ie, sends back to the caller. So you can call 'calcMinPayment' at any time.
minimumPaymentAmount = calcMinPayment(); -
Issue with calling a method activity before page render
Hi All,
I am using Jdeveloper 11.1.1.7.
I am trying to achieve the approach defined in "1.b. Calling a Method in Backing Bean:" elaborated in the blog - https://blogs.oracle.com/adf/entry/an_epic_question_how_to
As illustrated, I defined a default method activity (binding to a method in managed bean) and a view activity activity in a bounded task flow.
When I launch the application (running the view activity), following error is encountered -
oracle.adf.controller.metadata.ParsingException: ADFC-02020: Cannot find default activity 'check' in task flow definition '/WEB-INF/task-flow-definition.xml#task-flow-definition'.
at oracle.adfinternal.controller.metadata.model.xml.XmlUtil.createAndLogParsingException(XmlUtil.java:474)
at oracle.adfinternal.controller.metadata.model.xml.MetadataResourceXmlImpl.parseTaskFlowDefinition(MetadataResourceXmlImpl.java:507)
at oracle.adfinternal.controller.metadata.model.xml.MetadataResourceXmlImpl.parse(MetadataResourceXmlImpl.java:361)
at oracle.adfinternal.controller.metadata.provider.mds.MdsMetadataResourceProvider.parseResource(MdsMetadataResourceProvider.java:748)
at oracle.adfinternal.controller.metadata.provider.mds.MdsMetadataResourceProvider.getMDSCachedResourceOrParse(MdsMetadataResourceProvider.java:732)
Please advise.
Best Regards,
Ankit GuptaHi Cvele, Timo,
Many thanks for the suggestions.
To avoid confusions, I have created a new application altogether. It seems that the method call is not being called when I run the page.
For your reference I have attached the task flow definition and method code below -
Task Flow Definition
<?xml version="1.0" encoding="windows-1252" ?>
<adfc-config xmlns="http://xmlns.oracle.com/adf/controller" version="1.2">
<task-flow-definition id="task-flow-definition">
<default-activity id="__1">methodCall1</default-activity>
<managed-bean id="__11">
<managed-bean-name id="__13">TestBean</managed-bean-name>
<managed-bean-class id="__10">TestBean</managed-bean-class>
<managed-bean-scope id="__12">request</managed-bean-scope>
</managed-bean>
<view id="view1">
<page>/view1.jspx</page>
</view>
<view id="exception">
<page>/exception.jspx</page>
</view>
<method-call id="methodCall1">
<method>#{requestScope.TestBean.checkURL}</method>
<return-value id="__15">#{TestBean.checkURL}</return-value>
<outcome id="__14">
<to-string/>
</outcome>
</method-call>
<control-flow-rule id="__2">
<from-activity-id id="__3">methodCall1</from-activity-id>
<control-flow-case id="__5">
<from-outcome id="__6">go</from-outcome>
<to-activity-id id="__4">view1</to-activity-id>
</control-flow-case>
<control-flow-case id="__8">
<from-outcome id="__9">error</from-outcome>
<to-activity-id id="__7">exception</to-activity-id>
</control-flow-case>
</control-flow-rule>
</task-flow-definition>
</adfc-config>
Method Code
public String checkURL() {
// Add event code here...
System.out.println("method activity called");
return "error";
Best Regards,
Ankit Gupta -
Problem calling a method which takes a parameter from a table
Hi guys,
I'm very new to jsf and hope you can help me out.
On my page i'm generating a list, which is working fine. now i want to add some commandLinks to the list entries. on click, i want to execute a bean method, which takes a parameter from the list, generates a picture and displays it on my page.
here's a piece of code thats already working:
<rich:dataTable var="data" value="#{pathwayBean.orgList}">
<rich:columnGroup>
<rich:column>
<h:outputText value="#{data.name}" />
</rich:column>
</rich:columnGroup>
</rich:dataTable>now, i want to replace the outputText with a commandLink, and execute a method with {data.id} as parameter. Unfortunately, the commandLink property "action" can only call bean methods with no parameter, or is that wrong?
Thanks in advance,
Alexuse actionlistener.
here a typical code that works fine for me:
(JSF 1.2)
//Java
private Integer selectedItemId=null;
public void selectItem(ActionEvent event) {
// Find the UIParameter component by expression
UIParameter component = (UIParameter) event.getComponent().findComponent("itemId");
// parse the value of the UIParameter component
try {
selectedItemId = Integer.parseInt(component.getValue().toString());
// find itemBean here using selectedItemId
} catch (Exception e) {
logger.error(e, e);
logger.info(" +++ selectedItemId =" + selectedItemId);
public String viewItem() {
//create view beans here
return "itemView";//return appropriate view.
//JSF
<h:column>
<h:commandLink id="View"
action="#{itemListBean.viewItem}"
actionListener="#{itemListBean.selectItem}">
<h:outputText value="select"/>
<f:param id="itemId" name="itemId" value="#{itemBean.id}"/>
</h:commandLink>
</h:column>
Maybe you are looking for
-
When i turn on my macbook a box appears telling me i need to restart my computer (in different languages) and in order to do so i have to press on the off button for a lil while. Even after doing this the same box appears and it never restarts correc
-
Reg:SAP_REORG_UPDATERECORDS job getting cancelled
Hi Experts, I have a standard background job,SAP_REORG_UPDATERECORDS getting cancelled regularly in one of our production boxes. It runs only for a few seconds and then gets cancelled. The job log is..... "Job started Step 001 started (program RSM130
-
Hi expert, I am a beginner with SAP CRM 2007. I have created a qualification catalog in the SAP GUI with a structure : for example : SAP CRM Module Service In the WebUI, when I want to assign a qualification to an employee I see only the first level
-
Import 'lion' Backup to newest OS.
my mac book pro (Lion) is defect (graficcard?) and now i want to buy a new one. is it easy to import my backup from the timemachine?
-
Hi I am unable to open the infopacks of the DS 2lis_11_vahdr and 2lis_11_vchdr for the cube 0SD_C03 in prodn. I have tried transporting them a number of times but every time i try to open it for execution i get a short dump. how is this issue??? Rega