Call an RFC from a Bean Class
Hi,
My question is how to call an RFC from a bean Class (stateless Session Bean). I have followed a link and wrote a following class :
public class Bapi1
public static void main(String args[])throws ApplicationFaultException, SystemFaultException
String aMonth[] = null;
String aMonthVal[] = null;
JCO.Client jcoclient = null;
Yfunc001_Output output = null;
try {
jcoclient = JCO.createClient("Client","Username","Password","Lang","SAP Application System"," SAP System Number");
try {
jcoclient.connect();
System.out.println(""+ jcoclient.getASHost()+ jcoclient.getClient()+ jcoclient.getLanguage()+ jcoclient.getSystemNumber()jcoclient.getUser()jcoclient.isValid());
} catch (RuntimeException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(e.getLocalizedMessage());
e.printStackTrace();
Yfunc001_Input input = new Yfunc001_Input();
Graph_PortType mytype = new Graph_PortType();
mytype.messageSpecifier.setJcoClient(jcoclient);
try {
output = mytype.yfunc001(input);
} catch (SystemFaultException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (ApplicationFaultException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
jcoclient.disconnect();
YstructType_List list = output.get_as_listItab();
int listsize = list.size();
for (int i = 0; i < listsize; i++) {
YstructType elem = list.getYstructType(i);
aMonth<i> = elem.getMth();
aMonthVal<i> = elem.getMval();
When I try to Execute this class I get the following Exception
java.lang.NoClassDefFoundError
* at com.sap.mw.jco.MiddlewareJRfc$Client.connect(MiddlewareJRfc.java:882)*
* at com.sap.mw.jco.JCO$Client.connect(JCO.java:3159)*
* at com.ltil.fusionejb.Bapi1.main(Bapi1.java:32)*
Exception in thread "main"
I get an Error on Line : jcoclient.connect();
What All libraries I need to install? Please List down the Steps if possible. Points with be awarded...
Thanks,
Prasanna.
Hi,
Add the following jar to the classpath,
<Drive>:/usr/sap/<SID>/JC00/j2ee/cluster/server0/bin/ext/com.sap.mw.jco/jrfc.jar
Hope this helps in solving the issue !
Regards,
Srinivasan T
Similar Messages
-
Few basic doubts about accessing AM from backing bean class
Hi ADF experts,
I have just started working in ADF Faces.I made a sample search page.My page is attached to a managed backing bean. I have attached command button on my page to a custom method in backing bean class.
So on, click of button this method is called in backing bean.Now, i have few doubts:
1)How to get values of various UI beans in this event code?
2)I am accesing AM , in my method with this code:
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext extContext = facesContext.getExternalContext();
Application app = facesContext.getApplication();
DCBindingContainer binding = (DCBindingContainer)app.getVariableResolver().resolveVariable(facesContext, "bindings");
//Accessing AM
ApplicationModule am = binding.getDataControl().getApplicationModule();
iS this correct ?
3) After getting handle of am how to call my custom method in AM Class?there was "invokeMethod" API in application module class in OAF, is there any such method here?
Please help me.
--ADF learner.Thanks for ur response Frank, actually I am from OA Framework back ground.It would be great if help us a little with ur valuble thoughts.
OA Framework also uses bc4j in model layer of framework. We have a requirement where our existing developers from OA Framework have to move to ADF to make a new application where time lines are quite strict.If this would not be possible we will switch to plain jsp and jdbc,but our tech experts say ADF Faces is the best tech.
In OA Framework, Application Module is key class for all busiess logic and Controller is used for page navigation. So, I m just trying to find the same similarity , where we write we add all event codes in custom action methods in the backing bean class of page, which we consider equivalent to process form request method in Controller class of OAF.
But there are two things, I still want to know:
1)While page render, how to call specific AM methods(like setting where clause of certain VOs)
2)In action methods, the way i described(I found that in one thread only)to access AM, what is wrong in that?Also, I went through
http://radio.weblogs.com/0118231/stories/2004/09/23/notYetDocumentedAdfSampleApplications.html
where coule of examples use similar approach to access AM from backing bean class and call custom methods of AM(Doing various, deletes etc from VOs).
3)In these methods can we set any property of beans on the page, I am asking because in OAF, generally we use PPR for js alternatives.But all properties of beans cannot be set in post event.
Thanks and Regards
--ADF Learner -
Printing directly from the bean class
i am using a 3 tier layer to implement an event calendar
i have a calendar.jsp that sends form data to eventday.jsp, which extracts the form data and calls mtds from eventBean.java that connects to db. my print statements are in the bean class. my prob is that the required information are not printed.
i have debugged calendar.jsp and eventday.jsp and am quite sure that both are ok. i have placed a simple print statement in the bean class n it does not get printed.
can i know if it's true we can't print directly from the bean class?
should i return the values to be printed in dayevent.jsp instead?i see, then will it be okay if i store the value retrieved from the bean in a vector n retrieve the vector content in the jsp page? but i remember my tutor sayin that it's poor programing to expose the data structure to other classes or pages? wat other mtd can i use then? thks!
-
How can I call a RFC from dynpage ?
Hi!
I would like to know how can I call a RFC from a Portal aplication, dynpage or jspdynpage. there include some libraries ?
any idea?
thanksfor deploying SAP Jra :
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/ad09cd07-0a01-0010-93a9-933e247d3ba4#search=%22how%20to%20use%20jca%20sapjra%20site%3Asap.com%22
For lookup of SAP Jra use:
com.sapportals.connector.connection.IConnectionFactory connectionFactory =(IConnectionFactory) initctx.lookup( "deployedAdapters/SAPFactory/shareable/SAPFactory");
Using SAP Jra
http://help.sap.com/saphelp_nw04s/helpdata/en/47/13044258bdd417e10000000a1550b0/content.htm
The important jars required are:
connector.jar
Genericconnector.jar
prtjndisupport.jar
Thanks -
Operation not found error while calling AM methods from managed bean
Hi,
operation not found error while calling AM methods from managed bean.
written a method with two parameters in AM.
exposed the method in AM client interface
in the page bindings added the method in method action ..left empty in the value fields of the parameters.
calling the method from managed bean like below
String userNameVal = (String)userName.getValue();
String passwordVal = (String)password.getValue();
OperationBinding operationBinding =
ADFUtils.findOperation("verifyLogin");
operationBinding.getParamsMap().put("userName",userNameVal);
operationBinding.getParamsMap().put("password",passwordVal);
operationBinding.execute();
i am getting operation verifyLogin not found error.Please suggest me something to do.
Thanks
SatyaHi vlsn,
Can you try with the below code
// in your backing bean
OperationBinding operation = bindings.getOperationBinding("verifyLogin");
//Put your both parameters here
operation.getParamsMap().put("parameter_name1", parameterValue1);
operation.getParamsMap().put("parameter_name2", parameterValue2);
operation.execute();
if (operation.getResult() != null) {
Boolean result = (Boolean) operation.getResult();
and share the result.
regards,
Rajan -
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?). -
Error while calling an RFC from R/3
Hi all,
I am new to webdynpro. I am calling a RFC from R/3/.the code is like this.
Zhr_Fm_Loan_Input input = new Zhr_Fm_Loan_Input();
wdContext.nodeZhr_Fm_Loan_Input().bind(input);
input.setUsrid(wdContext.currentContextElement().getEmpnoa());
try
wdContext.nodeZhr_Fm_Loan_Input().currentZhr_Fm_Loan_InputElement().modelObject().execute();
catch(Exception e)
wdComponentAPI.getMessageManager().reportException("Exception "+e,true);
In the output i am getting an eror Exception com.sap.tc.webdynpro.modelimpl.dynamicrfc.WDDynamicRFCExecuteException.
Can anybody explain the error.
Regards,
RajeshHi Rajesh
Kindly check ur BAPI once from Backend, i hope there is no other mandatory field required apart from Usrid.
I hope BAPI doesnot have any mandatory Structure in it. in case it has , u have to pass that also..
Try printing this context also ..wdContext.currentContextElement().getEmpnoa().. i hope it is not returning a null.
wdContext.nodeZfm_Input().nodeOutput().invalidate(); // Add this line after execute statement
Regards
Puneet -
How to call the RFC from R/3 to SRM, when we use webdynpro abap? (Urgent)
Hello
We use SRM Server 5.5 with classic scenario.
We want to call RFC in R/3 from webdynpro ABAP.
How can we do that?
We are developing the web report using webdynpro abap.
So we need some of R/3 data such like PR(EBAN)and PO(EKKO,EKPO).
When user choose the search parameter, report diplay the Shopping cart, PR and PO data on webdynpro. So we call the R/3 RFC to display the PR, PO data.
But I tired to call the RFC in R/3, We could not call it.
How to call the RFC from R/3 to SRM, when we use webdynpro abap?
Thank you,
Best Regards,
SH.Hi
<b>Please look at the following threads as well -></b>
WebDynpro in SRM
BAPI's /RFC's in SRM
BAPI to Change Shopping Cart by RFC
SRM60 and webdynpro
Webdynpro Services Exception
WebDynpro using BAPI has an error
SRM60 and webdynpro...
<b>SAP uses META Function modules in SRM to get data from R/3 back-end.</b>
<u>For getting Purchase requistion data, use the function modules -></u>
META_REQUISITION_CHANGE Change purchase requisition
META_REQUISITION_CREATE Create Requisition
META_REQUISITION_DELETE Delete/close purchase requisition
META_REQUISITION_GETDETAIL Display requisition details
META_REQUISITION_GETITEMS Display requisition items
META_REQUISITION_GETRELINFO Get Releasease Info for requisitions
<u>For getting Purchase order data, use the function modules -></u>
META_PO_CREATE Create purchase order
META_PO_DELETE Delete reservation
META_PO_GETDETAIL Display purchase order details
META_PO_GETITEMS Display purchase order items
META_PO_GETRELINFO Display purchase order release information
Hope this will definitely help. Do let me know.
Regards
- Atul -
HI Guys,
I have a requirement to call ABAP RFC from Message Mapping.
Can any one pls share the document links or ideas with me.
Thanks,
MSHi
u can use RFC LoopUp
if PI 7.0 / 3.0 -- need to write the UDF to execute
link
https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/70d90a91-3cf4-2a10-d189-bfd37d9c3231
if PI 7.1 then u have functionality in MM itself to do so
rgds
srini -
Procedure to call an RFC from another R/3 system
Hi ,
I am new to RFC, how can we do the following steps:
1. Run a routine in Dev environment which calls an RFC which is in testing
2. The RFC performs the task as written in it
3. RFC passes the result to routine in Dev and
4. We display the return in the end in Dev.
Do i need any authorization for that?
Regards,
PoojaHi,
I wanted to know how to call an RFC from one R/3 system to another R/3 system .
And what settings should be made to do a RFC in T code SM59?
what does the function module RFC_READ_REPORT do? Can i call any program through this?(As the documentation is not available I am not able to understand the functionality of this Function module)
Regards,
Pooja -
I want to call SAP RFC from ODI. Client has provided only a set of RFC's. So I want to call these RFC's to extract data from SAP ERP system or BW to Oracle Staging using ODI. Would anyone please tell me how it will be possible?
I want to call SAP RFC from ODI. Client has provided only a set of RFC's. So I want to call these RFC's to extract data from SAP ERP system or BW to Oracle Staging using ODI. Would anyone please tell me how it will be possible?
-
How to directly call business object class from backing bean class
I woul like to call business object class directly from the backing bean class and implement methods in BO. If possible can anyone give an example code.
Thanks in advanceWhich problems are you occurring then? I really don't see problems. You're just free to access and invoke them.
-
Unable to call the RFC from the WD java Program
Hi All,
I have a table and three buttons Create, Edit, Save in the layout.
If no record available in the R3 the the end user will click on create and then he will click on save so that the insert RFC will be called accordingly and the record will be inserted.My table is limited to 5 records only. If i enter all the 5 records and Click on submit the record is inserting in the backend , but if i enter less than 5 records im unable to call the RFC what might be the issue.
My insert RFC takes one Table node and 4 import parameters i'm passing all of the all the mentioned import parameters.
Code:-
View Controller code
// This file has been generated partially by the Web Dynpro Code Generator.
// MODIFY CODE ONLY IN SECTIONS ENCLOSED BY @@begin AND @@end.
// ALL OTHER CHANGES WILL BE LOST IF THE FILE IS REGENERATED.
package com.gmr.ess;
// IMPORTANT NOTE:
// ALL IMPORT STATEMENTS MUST BE PLACED IN THE FOLLOWING SECTION ENCLOSED
// BY @@begin imports AND @@end. FURTHERMORE, THIS SECTION MUST ALWAYS CONTAIN
// AT LEAST ONE IMPORT STATEMENT (E.G. THAT FOR IPrivateAPPView).
// OTHERWISE, USING THE ECLIPSE FUNCTION "Organize Imports" FOLLOWED BY
// A WEB DYNPRO CODE GENERATION (E.G. PROJECT BUILD) WILL RESULT IN THE LOSS
// OF IMPORT STATEMENTS.
//@@begin imports
import java.math.BigDecimal;
import java.util.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.Iterator;
import com.gmr.ess.wdp.IPrivateAPPView;
import com.gmr.pck.Zst_Hr_Nominee;
import com.sap.tc.webdynpro.progmodel.api.IWDMessageManager;
import com.sap.tc.webdynpro.services.sal.um.api.IWDClientUser;
import com.sap.tc.webdynpro.services.sal.um.api.WDClientUser;
//@@end
//@@begin documentation
//@@end
public class APPView
Logging location.
private static final com.sap.tc.logging.Location logger =
com.sap.tc.logging.Location.getLocation(APPView.class);
static
//@@begin id
String id = "$Id$";
//@@end
com.sap.tc.logging.Location.getLocation("ID.com.sap.tc.webdynpro").infoT(id);
Private access to the generated Web Dynpro counterpart
for this controller class. </p>
Use <code>wdThis</code> to gain typed access to the context,
to trigger navigation via outbound plugs, to get and enable/disable
actions, fire declared events, and access used controllers and/or
component usages.
@see com.gmr.ess.wdp.IPrivateAPPView for more details
private final IPrivateAPPView wdThis;
Root node of this controller's context. </p>
Provides typed access not only to the elements of the root node
but also to all nodes in the context (methods node<i>XYZ</i>())
and their currently selected element (methods current<i>XYZ</i>Element()).
It also facilitates the creation of new elements for all nodes
(methods create<i>XYZ</i>Element()). </p>
@see com.gmr.ess.wdp.IPrivateAPPView.IContextNode for more details.
private final IPrivateAPPView.IContextNode wdContext;
A shortcut for <code>wdThis.wdGetAPI()</code>. </p>
Represents the generic API of the generic Web Dynpro counterpart
for this controller. </p>
private final com.sap.tc.webdynpro.progmodel.api.IWDViewController wdControllerAPI;
A shortcut for <code>wdThis.wdGetAPI().getComponent()</code>. </p>
Represents the generic API of the Web Dynpro component this controller
belongs to. Can be used to access the message manager, the window manager,
to add/remove event handlers and so on. </p>
private final com.sap.tc.webdynpro.progmodel.api.IWDComponent wdComponentAPI;
public APPView(IPrivateAPPView wdThis)
this.wdThis = wdThis;
this.wdContext = wdThis.wdGetContext();
this.wdControllerAPI = wdThis.wdGetAPI();
this.wdComponentAPI = wdThis.wdGetAPI().getComponent();
//@@begin javadoc:wdDoInit()
/** Hook method called to initialize controller. */
//@@end
public void wdDoInit()
//@@begin wdDoInit()
try{
IWDMessageManager manager1 = wdComponentAPI.getMessageManager();
IWDClientUser user = WDClientUser.getLoggedInClientUser();
String logUser= user.getSAPUser().getUniqueName();
wdContext.currentContextElement().setUserid(logUser);
wdThis.wdGetAPPController().executeBapi_Employee_Getdata_Input();//Returns the user id for the employee
Collection nomineeList = new ArrayList();
wdThis.wdGetAPPController(). executeZ_Hrfm_Nominee_Disp_Input( );
int nomineeTableSize = wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().size();
for(int i=0;i< nomineeTableSize;i++){
IPrivateAPPView.IDisplay_table_nodeElement ele = wdContext.nodeDisplay_table_node().createDisplay_table_nodeElement();
ele.setAddr(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getAddr());
ele.setDob(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getDob());
ele.setGuard(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getGuard());
ele.setName(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getName());
ele.setPerc(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getPerc());
ele.setRelat(wdContext.nodeZ_Hrfm_Nominee_Disp_Input().nodeOutput_Nominee().nodeNominee().getNomineeElementAt(i).getRelat());
nomineeList.add(ele);
wdContext.nodeDisplay_table_node().bind(nomineeList);
wdContext.currentContextElement().setEdit_val_attr(true);
if(nomineeTableSize<=0){
wdContext.currentContextElement().setCreateButtonEnable(true);
wdContext.currentContextElement().setEditButtonEnable(false);
else{
wdContext.currentContextElement().setCreateButtonEnable(false);
wdContext.currentContextElement().setEditButtonEnable(true);
catch(Exception e){
wdComponentAPI.getMessageManager().reportException("",true);
//@@end
//@@begin javadoc:wdDoExit()
/** Hook method called to clean up controller. */
//@@end
public void wdDoExit()
//@@begin wdDoExit()
//@@end
//@@begin javadoc:wdDoModifyView
Hook method called to modify a view just before rendering.
This method conceptually belongs to the view itself, not to the
controller (cf. MVC pattern).
It is made static to discourage a way of programming that
routinely stores references to UI elements in instance fields
for access by the view controller's event handlers, and so on.
The Web Dynpro programming model recommends that UI elements can
only be accessed by code executed within the call to this hook method.
@param wdThis Generated private interface of the view's controller, as
provided by Web Dynpro. Provides access to the view controller's
outgoing controller usages, etc.
@param wdContext Generated interface of the view's context, as provided
by Web Dynpro. Provides access to the view's data.
@param view The view's generic API, as provided by Web Dynpro.
Provides access to UI elements.
@param firstTime Indicates whether the hook is called for the first time
during the lifetime of the view.
//@@end
public static void wdDoModifyView(IPrivateAPPView wdThis, IPrivateAPPView.IContextNode wdContext, com.sap.tc.webdynpro.progmodel.api.IWDView view, boolean firstTime)
//@@begin wdDoModifyView
//@@end
//@@begin javadoc:onActionGetData(ServerEvent)
/** Declared validating event handler. */
//@@end
public void onActionGetData(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
//@@begin onActionGetData(ServerEvent)
//$$begin ActionButton(-535519310)
//wdThis.wdGetAPPController().executeZ_Hrfm_Nominee_Disp_Input();
//$$end
//@@end
//@@begin javadoc:onActionEdit(ServerEvent)
/** Declared validating event handler. */
//@@end
public void onActionEdit(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
//@@begin onActionEdit(ServerEvent)
//$$begin ActionButton(-535519310)
displayTablesize=wdContext.nodeDisplay_table_node().size();
if(displayTablesize<5){
for(int i=0;i<size-displayTablesize;i++){
IPrivateAPPView.IDisplay_table_nodeElement ele = wdContext.nodeDisplay_table_node().createDisplay_table_nodeElement();
wdContext. nodeDisplay_table_node().addElement(ele);
operation="MOD";
wdContext.currentContextElement().setTableReadOnly(true);
wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setOperation(operation);
//$$end
//@@end
//@@begin javadoc:onActionCreate(ServerEvent)
/** Declared validating event handler. */
//@@end
public void onActionCreate(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
//@@begin onActionCreate(ServerEvent)
int month=0,year=0,day=0;
String month1,day1,year1;
try{
displayTablesize=wdContext.nodeDisplay_table_node().size();
wdContext.currentContextElement().setEdit_val_attr(false);
if(wdContext.nodeDisplay_table_node().isEmpty()){
if(displayTablesize<5){
Calendar cal=Calendar.getInstance();
month=cal.get(Calendar.MONTH)+1;
if(month==1||month==2||month==3||month==4||month==5||month==6||month==7||month==8||month==9){
month1="0"+month;
else{
month1=""+month;
day = cal.get(Calendar.DAY_OF_MONTH);
if(day==1||day==2||day==3||day==4||day==5||day==6||day==7||day==8||day==9){
day1= "0"+day;
else{
day1=""+day;
year = cal.get(Calendar.YEAR);
year1=""+year;
String strFormat=day1"."month1"."year1;
wdContext.currentOutput_NomineeElement().setBegda(strFormat);
wdContext.currentOutput_NomineeElement().setEndda("31.12.9999");
for(int i=0;i<size-displayTablesize;i++){
IPrivateAPPView.IDisplay_table_nodeElement ele = wdContext.nodeDisplay_table_node().createDisplay_table_nodeElement();
wdContext. nodeDisplay_table_node().addElement(ele);
operation="INS";
wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setOperation(operation);
wdContext.currentContextElement().setTableReadOnly(true);
catch(NullPointerException npe){
wdComponentAPI.getMessageManager().reportException("No Data Available",true);
//@@end
//@@begin javadoc:onActionSaveData(ServerEvent)
/** Declared validating event handler. */
//@@end
public void onActionSaveData(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
//@@begin onActionSaveData(ServerEvent)
float percentage=0;
float dupePercentage=0;
boolean isTest = false;
Collection DispTList = new ArrayList();
IWDMessageManager manager1 = wdComponentAPI.getMessageManager();
try{
displayTablesize = wdContext.nodeDisplay_table_node().size();
//for(int i=1;i<=displayTablesize;i++){
for(int i=0;i<displayTablesize;i++){
BigDecimal share = wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getPerc();
String name = wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getName();
percentage = share.floatValue();
dupePercentage = dupePercentage + percentage;
if(name!=null && share!=null){
Zst_Hr_Nominee nominee = new Zst_Hr_Nominee();
nominee.setAddr(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getAddr());
manager1.reportSuccess(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getAddr());
nominee.setDob(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getDob());
manager1.reportSuccess(""+wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getDob());
nominee.setGuard(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getGuard());
manager1.reportSuccess(""+wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getGuard());
nominee.setName(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getName());
manager1.reportSuccess(""+wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getName());
nominee.setPerc(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getPerc());
manager1.reportSuccess(""+wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getPerc());
nominee.setRelat(wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getRelat());
manager1.reportSuccess(""+wdContext.nodeDisplay_table_node().getDisplay_table_nodeElementAt(i).getRelat());
DispTList.add(nominee);
wdContext.nodeZ_Hrfm_Nominee_Ins_Mod_Input().nodeNominee_ins().bind(DispTList);
if((dupePercentage)!=100)
wdComponentAPI.getMessageManager().reportException(
"The sum of the share Percentages is not 100. Modify the percentages accordingly",true);
wdContext.nodeZ_Hrfm_Nominee_Ins_Mod_Input().nodeNominee_ins().bind(DispTList);
IWDMessageManager manager = wdComponentAPI.getMessageManager();
String beginDate = wdContext.currentOutput_NomineeElement().getBegda();
manager.reportSuccess(wdContext.currentOutput_NomineeElement().getBegda());
String endDate=wdContext.currentOutput_NomineeElement().getEndda();
manager.reportSuccess(wdContext.currentOutput_NomineeElement().getEndda());
wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setBegda(beginDate);
wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setEndda(endDate);
wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setOperation(operation);
wdComponentAPI.getMessageManager().reportSuccess(operation);
wdThis.wdGetAPPController().executeBapi_Employee_Getdata_Input();
wdThis.wdGetAPPController().executeZ_Hrfm_Nominee_Ins_Mod_Input();
//wdContext.currentContextElement().setTableReadOnly(false);
catch(Exception e){
e.getMessage();
//@@end
The following code section can be used for any Java code that is
not to be visible to other controllers/views or that contains constructs
currently not supported directly by Web Dynpro (such as inner classes or
member variables etc.). </p>
Note: The content of this section is in no way managed/controlled
by the Web Dynpro Designtime or the Web Dynpro Runtime.
//@@begin others
int nomineeTableSize = 0;
int displayTablesize = 0;
String operation= null;
int size=5;
// float dupePercentage=0;
//String mod_op="MOD";
//@@end
content of obsolete user coding area(s) -
//@@begin obsolete:javadoc:onActionSave(ServerEvent)
// /** Declared validating even
Component controller code
// This file has been generated partially by the Web Dynpro Code Generator.
// MODIFY CODE ONLY IN SECTIONS ENCLOSED BY @@begin AND @@end.
// ALL OTHER CHANGES WILL BE LOST IF THE FILE IS REGENERATED.
package com.gmr.ess;
// IMPORTANT NOTE:
// ALL IMPORT STATEMENTS MUST BE PLACED IN THE FOLLOWING SECTION ENCLOSED
// BY @@begin imports AND @@end. FURTHERMORE, THIS SECTION MUST ALWAYS CONTAIN
// AT LEAST ONE IMPORT STATEMENT (E.G. THAT FOR IPrivateAPP).
// OTHERWISE, USING THE ECLIPSE FUNCTION "Organize Imports" FOLLOWED BY
// A WEB DYNPRO CODE GENERATION (E.G. PROJECT BUILD) WILL RESULT IN THE LOSS
// OF IMPORT STATEMENTS.
//@@begin imports
import java.util.Iterator;
import com.gmr.ess.wdp.IPrivateAPP;
import com.gmr.pck.Bapi_Employee_Getdata_Input;
import com.gmr.pck.Bapip0002B;
import com.gmr.pck.Z_Hrfm_Nominee_Disp_Input;
import com.gmr.pck.Z_Hrfm_Nominee_Ins_Mod_Input;
import com.gmr.pck.Zst_Hr_Nominee;
import com.sap.lcr.api.util.SetProfileConnect;
import com.sap.tc.webdynpro.modelimpl.dynamicrfc.WDDynamicRFCExecuteException;
import com.sap.tc.webdynpro.progmodel.api.IWDMessageManager;
//@@end
//@@begin documentation
//@@end
public class APP
Logging location.
private static final com.sap.tc.logging.Location logger =
com.sap.tc.logging.Location.getLocation(APP.class);
static
//@@begin id
String id = "$Id$";
//@@end
com.sap.tc.logging.Location.getLocation("ID.com.sap.tc.webdynpro").infoT(id);
Private access to the generated Web Dynpro counterpart
for this controller class. </p>
Use <code>wdThis</code> to gain typed access to the context,
to trigger navigation via outbound plugs, to get and enable/disable
actions, fire declared events, and access used controllers and/or
component usages.
@see com.gmr.ess.wdp.IPrivateAPP for more details
private final IPrivateAPP wdThis;
Root node of this controller's context. </p>
Provides typed access not only to the elements of the root node
but also to all nodes in the context (methods node<i>XYZ</i>())
and their currently selected element (methods current<i>XYZ</i>Element()).
It also facilitates the creation of new elements for all nodes
(methods create<i>XYZ</i>Element()). </p>
@see com.gmr.ess.wdp.IPrivateAPP.IContextNode for more details.
private final IPrivateAPP.IContextNode wdContext;
A shortcut for <code>wdThis.wdGetAPI()</code>. </p>
Represents the generic API of the generic Web Dynpro counterpart
for this controller. </p>
private final com.sap.tc.webdynpro.progmodel.api.IWDComponent wdControllerAPI;
A shortcut for <code>wdThis.wdGetAPI().getComponent()</code>. </p>
Represents the generic API of the Web Dynpro component this controller
belongs to. Can be used to access the message manager, the window manager,
to add/remove event handlers and so on. </p>
private final com.sap.tc.webdynpro.progmodel.api.IWDComponent wdComponentAPI;
public APP(IPrivateAPP wdThis)
this.wdThis = wdThis;
this.wdContext = wdThis.wdGetContext();
this.wdControllerAPI = wdThis.wdGetAPI();
this.wdComponentAPI = wdThis.wdGetAPI().getComponent();
//@@begin javadoc:wdDoInit()
/** Hook method called to initialize controller. */
//@@end
public void wdDoInit()
//@@begin wdDoInit()
//$$begin Service Controller(1490375209)
// wdContext.nodeZ_Hrfm_Nominee_Ins_Mod_Input().bind(new Z_Hrfm_Nominee_Ins_Mod_Input());
Z_Hrfm_Nominee_Ins_Mod_Input input = new Z_Hrfm_Nominee_Ins_Mod_Input();
input.addNominee(new Zst_Hr_Nominee());
wdContext.nodeZ_Hrfm_Nominee_Ins_Mod_Input().bind(input);
//$$end
//$$begin Service Controller(-932523997)
wdContext.nodeZ_Hrfm_Nominee_Disp_Input().bind(new Z_Hrfm_Nominee_Disp_Input());
//$$end
//$$begin Service Controller(-368783613)
wdContext.nodeBapi_Employee_Getdata_Input().bind(new Bapi_Employee_Getdata_Input());
//$$end
//@@end
//@@begin javadoc:wdDoExit()
/** Hook method called to clean up controller. */
//@@end
public void wdDoExit()
//@@begin wdDoExit()
//@@end
//@@begin javadoc:wdDoPostProcessing()
Hook called to handle data retrieval errors before rendering.
After doModifyView(), the Web Dynpro Framework gets all context data needed
for rendering by validating the contexts (which in turn calls the supply
functions and supplying relation roles). In this hook, the application
should handle the errors which occurred during validation of the contexts.
Using preorder depth-first traversal, this hook is called for all component
controllers starting with the current root component.
Permitted operations:
- Flushing model queue
- Creating messages
- Reading context and model data
Forbidden operations:
- Invalidating model data
- Manipulating the context
- Firing outbound plugs
- Creating components
@param isCurrentRoot true if this is the root of the current request
//@@end
public void wdDoPostProcessing(boolean isCurrentRoot)
//@@begin wdDoPostProcessing()
//@@end
//@@begin javadoc:wdDoBeforeNavigation()
Hook before the navigation phase starts.
This hook allows you to flush the model queue and handle any
errors that occur. Firing outbound plugs is allowed in this hook.
Using preorder depth-first traversal, this hook is called for all component
controllers starting with the current root component.
@param isCurrentRoot true if this is the root of the current request
//@@end
public void wdDoBeforeNavigation(boolean isCurrentRoot)
//@@begin wdDoBeforeNavigation()
//@@end
//@@begin javadoc:wdDoApplicationStateChange()
Hook that informs the application about a state change.
<p>
This hook is called e.g. to tell the application that will be
<ul>
<li>left via a suspend plug and therefore should go into a suspend/sleep
mode with minimal need of resources. errors that occur. Firing
outbound plugs is allowed in this hook.
<li>left due to a timeout and could write it's state to a data base if the
user comes back later on
</ul>
The concrete reason is available via IWDApplicationStateChangeInfo
<p>
<b>Important</b>: This hook is called for the top level component only!
@param stateChangeInfo contains the information about the nature of the state change
@param stateChangeReturn allows the application to ask for a different state change.
The framework is allowed to ignore it considering i.e. the current resources situation.
//@@end
public void wdDoApplicationStateChange(com.sap.tc.webdynpro.progmodel.api.IWDApplicationStateChangeInfo stateChangeInfo, com.sap.tc.webdynpro.progmodel.api.IWDApplicationStateChangeReturn stateChangeReturn)
//@@begin wdDoApplicationStateChange()
//@@end
//@@begin javadoc:executeBapi_Employee_Getdata_Input()
/** Declared method. */
//@@end
public void executeBapi_Employee_Getdata_Input( )
//@@begin executeBapi_Employee_Getdata_Input()
//$$begin Service Controller(1705750894)
IWDMessageManager manager = wdComponentAPI.getMessageManager();
Iterator itrGetData = null;
Bapip0002B out = null;
try
wdContext.currentBapi_Employee_Getdata_InputElement().modelObject().execute();
wdContext.nodeOutput().invalidate();
itrGetData = wdContext.currentOutputElement().modelObject().getPersonal_Data().iterator();
while (itrGetData.hasNext()) {
out = (Bapip0002B) itrGetData.next();
empNo = out.getPerno();
wdContext.currentZ_Hrfm_Nominee_Disp_InputElement().setPernr(empNo);
wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().setPernr(empNo);
// manager.reportSuccess(empNo);
//wdThis.executeZ_Hrfm_Nominee_Disp_Input();
catch(WDDynamicRFCExecuteException e)
manager.reportException(e.getMessage(), false);
//$$end
//@@end
//@@begin javadoc:executeZ_Hrfm_Nominee_Disp_Input()
/** Declared method. */
//@@end
public void executeZ_Hrfm_Nominee_Disp_Input( )
//@@begin executeZ_Hrfm_Nominee_Disp_Input()
//$$begin Service Controller(-366407911)
IWDMessageManager manager = wdComponentAPI.getMessageManager();
try
wdContext.currentZ_Hrfm_Nominee_Disp_InputElement().modelObject().execute();
wdContext.nodeOutput_Nominee().invalidate();
catch(WDDynamicRFCExecuteException e)
manager.reportException(e.getMessage(), false);
//$$end
//@@end
//@@begin javadoc:executeZ_Hrfm_Nominee_Ins_Mod_Input()
/** Declared method. */
//@@end
public void executeZ_Hrfm_Nominee_Ins_Mod_Input( )
//@@begin executeZ_Hrfm_Nominee_Ins_Mod_Input()
//$$begin Service Controller(1524028406)
IWDMessageManager manager = wdComponentAPI.getMessageManager();
try
wdContext.currentZ_Hrfm_Nominee_Ins_Mod_InputElement().modelObject().execute();
wdContext.nodeOutput_nominee_ins_mod().invalidate();
catch(WDDynamicRFCExecuteException e)
manager.reportException(e.getMessage(), false);
//$$end
//@@end
The following code section can be used for any Java code that is
not to be visible to other controllers/views or that contains constructs
currently not supported directly by Web Dynpro (such as inner classes or
member variables etc.). </p>
Note: The content of this section is in no way managed/controlled
by the Web Dynpro Designtime or the Web Dynpro Runtime.
//@@begin others
String empNo = null;
//@@end
Suman
Edited by: sumankumar kurimilla on Dec 23, 2008 9:26 AMHi,
I have checked from RFC side that is working fine only java app its not working can you tell any thing needs to be changed from my application end.
Please check in Savedata action.
Regards,
Suman
Edited by: sumankumar kurimilla on Dec 23, 2008 11:01 AM -
Calling an RFC from an EJB over an Enterprise Connector
Hi all,
I would like to call an RFC enabled Function Modul (FuBa) from a BW-System over an EJB in a Web AS environment bei passing SAP Logon Ticket.
To achive this goal, i've generated proxy classes (Enterprise Connector) via NWDS .
If i call enterprise connector localy from an example class (See attachment), it works.
BUT
if I use the same Code within an EJB, bei correct deployment , it doesn't work. I become an exception, during to establish a connection
What is wrong here ?
What do i have to do in an a EJB-Environment to use an Enterprise Connector ?
Best Regards
A. Büyükyilmaz
ATTACHMENT
Created on 13.02.2007
To change the template for this generated file go to
Window>Preferences>Java>Code Generation>Code and Comments
package de.xxx.test.ep.main;
import java.sql.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import com.sap.aii.proxy.framework.core.ApplicationFaultException;
import com.sap.aii.proxy.framework.core.SystemFaultException;
import com.sap.mw.jco.JCO;
import de.xxx.yyy.zzz.connectivity.fuba.Anlage_PortType;
import de.xxx.yyy.zzz.connectivity.fuba.Zge_Gerel_Data_For_Kne_Kn_Input;
import de.xxx.yyy.zzz.connectivity.fuba.Zge_Gerel_Data_For_Kne_Kn_Output;
@author pg4011
To change the template for this generated type comment go to
Window>Preferences>Java>Code Generation>Code and Comments
public class GetAnlage {
private JCO.Client mConnection = null;
public boolean connectToSAP(
String client,
String user,
String passwd,
String lang,
String appServer,
String sysNo) {
try {
mConnection =
JCO.createClient(client, user, passwd, lang, appServer, sysNo);
mConnection.connect();
} catch (Exception e) {
e.printStackTrace();
return false;
return true;
public static void main(String[] args) {
GetAnlage anlage = new GetAnlage();
if (anlage.connectToSAP ("50", "abc", "pwd", "DE", "system", "00")) {
System.out.println("Anlage wird erstellt");
anlage.getData();
System.out.println("");
System.exit(0);
private void getData() {
// ImportParameter
Zge_Gerel_Data_For_Kne_Kn_Input input = new Zge_Gerel_Data_For_Kne_Kn_Input();
// Hole proxy Instance mit JCO.Client instance
Anlage_PortType proxy = new Anlage_PortType();
proxy.messageSpecifier.setJcoClient(mConnection);
Zge_Gerel_Data_For_Kne_Kn_Output output = new Zge_Gerel_Data_For_Kne_Kn_Output();
input.setI_Bp_Nr("7901514764");
input.setI_View("03");
input.setI_Spras("DE");
Date stichtag = new Date(2006, 9, 22);
input.setI_Stichtag(stichtag);
//Rufe RFC auf
try {
output = proxy.zge_Gerel_Data_For_Kne_Kn(input);
String s = "";
System.out.println(s);
} catch (SystemFaultException e) {
e.printStackTrace();
} catch (ApplicationFaultException e) {
e.printStackTrace();Hi Rajesh,
it's realy funny. Although, i inserted som trace outputs behind of catch-statement, i do not see any information about exception in application log.
but i see, that the method becomes correct inputparameters and i see it try to make a connection. After that, it end without a trace.
Best Regards
Ahmet -
Need help calling a method from an immutable class
I'm having difficulties in calling a method from my class called Cabin to my main. Here's the code in my main if(this is where i want my method hasKitchen() from my Cabin class)
System.out.println("There is a kitchen.");
else
System.out.println("There is not a kitchen.");
}and here's my method from my Cabin class:public boolean hasKitchen()
return kitchen;
}You should first have an instance of Cabin created by using
Cabin c = ....
if (c.hasKitchen()) {
System.out.println("There is a kitchen.");
} else {
System.out.println("There is not a kitchen.");
}
Maybe you are looking for
-
Creative Cloud is asking to verify an email I don't have access to
Creative Cloud is asking to verify an email that I don't have access to and is not allowing me to change the email to sign in with. I have also uninstalled and run the adobe cleaner (Use the CC Cleaner Tool to solve installation problems | CC, CS3-CS
-
Flashupdater filling system.log with spew
Has anyone else noticed that flashupdater is filling their system.log with spew? This is happening on systems with and without flash installed. Sign, yet another blunder...
-
Hi, During Goods receipt for import purcahse order bellow three condition type value posted with high value and difference of total purchase order value and these three condition type posted to Inventory account. ZOA1 Customs % CVD
-
ok this has been happening since iOS 8 got released, and is still happening with 8.1 It generally begins with copying a link from Safari, either by using the copy button at the bottom of the browser or copying the link directly in the navigation bar.
-
How to use a Local Clipboard in a TransferHandler
I'm working on a system that needs to restrict cut, copy and paste to a single JVM. I have assumed that I will need to deny access to the system clipboard and use a local one instead. I've tried using a TransferHandler but cannot find a way of making