How to take back the control from RFC function module to calling program
Hi,
In our system landscape, more than 200 child systems are connected to Solution manager(SMP). I have copied a RFC enabled function module into all the child systems and calling that FM from Sol Man in sychronous mode.
Here goes my code in SolMan.
LOOP AT it_dest INTO wa_dest.
CALL FUNCTION 'Z_GET_LOGIN_DETAILS' DESTINATION wa_dest-rfcdest
EXPORTING
date_fr = s_date-low
date_to = s_date-high
TABLES
tab_data = it_val
EXCEPTIONS
communication_failure = 1
system_failure = 2
OTHERS = 3.
IF sy-subrc EQ 0.
* Updates zuserlogon
MODIFY zt_logon_det FROM TABLE it_val.
COMMIT WORK.
WRITE:/'RFC for Destination', wa_dest-rfcdest, 'succesfully updated.'.
ELSE.
WRITE:/'RFC for Destination', wa_dest-rfcdest, ' failed.'.
ENDIF.
ENDLOOP.
Few child systems are very slow & takes more than 20 minutes(Many of the times system hangs) to return the result. But I should not wait for so long. Even if the child system doesn't return any values in 5 minutes I shoud continue with other system ignoring the current one.
I tried calling the FM in asynchronous mode(STARTING NEW TASK) but no success because only 6 DIA processes possible but as I said I have more than 200 systems connected to SolMan.
Please help me resolving this problem.
Thanks,
Prathap
If there are only few child systems with bad response time, use asynchronous call using a CALL FUNCTION func STARTING NEW TASK task DESTINATION dest PERFORMING subr or CALLING meth ON END OF TASK. Count asynchronous calls still running/waiting (increment a counter when creating a task (not the one used for task id). In the form/method performed at end of a call decrement the counter. When counter is lower than a limit, 4-5 if 6 processes (*), perform an asynchronous call else perform a synchronous call or wait until the counter falls below the limit.
Regards,
Raymond
(*) Use SPBT_INITIALIZE at start of program to get actual number of free/available processes.
Similar Messages
-
How to upload Excel file in BI using function module in abap program
How to upload Excel file in BI using function module in abap program?
Hi Anuj,
To upload the file , you can try a standard program "RSEPSFTP" .
while you execute the program , a selection screen appears in which the inputs should be give as
RFC destination - The target server name
FTP command- PUT
local file - your file name
local directory - path of your local file
remote file - your target file name
remote directory - where it has to be stored
Hope this is useful for you
Thanks & regards
Anju -
Passing the structure to rfc function module
hi,
iam having a rfc function module which is importing structure.
i have to pass only one field value to that structure.
how can i pass that field value to that structure.
it is very urgent.
thanks in advanceHi..
You have to Declare the ACTUAL PARAMETER (workarea) with the Same Structure as that of the FORMAL PARAMETER.
but you can fill only the FIELD that you want pass in the workarea and pass it to the RFC.
<b>Reward if helpful.</b> -
Problem in the creation of rfc function module
hi,
I am creating one rfc function module comparing to standard non-rfc function module. In that one i have one export parameter with the standard strcture type. but this stcture component contains with strcture type. among all these components four fields are common. but when i am trying to activate function module it is giving message you cannot use internal tables, strings,references, or strctures as components. that function module name is BAL_FILTER_CREATE and that export parameter name is that export parameter name is E_S_LOG_FILTER that associated type is BAL_S_LFIL. how can i solve the problem. pls give me solution as soon as possible.hi,
for rfc fm's u should enable the call by value check box which will appear on that of import and export parameters. tick that one for each parameter in rfc and activate.
if helpful reward some points.
with regards,
Suresh Aluri. -
Procedure for Mapping two types of Idocs from RFC function Module
Hi
My Scenario is RFC -- XI -- IDOC
Here i have 2 custom Idocs
First IDOC for Creation
second is for Deletion/Changing
Based on the condition from RFC it should trigger either one of the IDOC above.
Please provide me the procedure to do in IR and ID..
Regards,
Yeswanth.YeswanthRaj:
I found your conflicted statements
The following statement you say you just have one receiver, to receive two IDOCs
But i have only one receiver where the 2 IDOcs needs to be send based on the condition..
The following statements showing that you have more than one receiver,
the condition editor for receiver determination usually used for multiple receivers based on XPATH or Context Object condition
It is mapped based on the condition that is given in Receiver Determination and i has two interface Determinations.
It seems that the first scenario is your situation.
If your answer is yes, and your source interface is just one,and target interface is two (two IDOC), then this should be typical
muti-mapping scenario, and the propose I gave to you should fit
Regards.
Liang -
How to refer to the class in regular functional module
Hi ABAP guru's
I wish to get details of GET_REQUID parameter of method IF_RSBK_REQUEST_GENERAL that is available in
class CL_RSBK_REQUEST.
I am writing a ABAP function module and I wish to use this class in that function
module. Can someone help to write this code on how to read value of GET_REQUID in my function module?
Thanks for your help in advance
AgHi Allgon,
welcome to the SAP Community Network. I hope you become a valuable member by contributing regularly.
You need to appreciate a few things.
Firstly read Welcome and Rules of Engagement.
It includes the following suggestions...
Please...
- Use the correct or most appropriate forum,
- Do not cross-post or multiple-post, and
- Search for information before asking basic questions, again.
Cheers
Graham Robbo -
RFC function module with call transaction and Import memory ID
Hi,
I am calling RFC function module from R/3 which exists in BW.
In BW stand alone function module works fine.
When I am Calling from R/3 it is not working,
Can you tell me is it because of the below code, And suggest if any corrections required.
I am calling the call transaction and using EXPORT memory iD inside the program
and IMPORT in after that.
And populating RFC table's table " p_i_tcode_user" finally.
set parameter id 'TCD' field p_tcode.
call transaction 'Z_BW_RSUSR002' AND SKIP FIRST SCREEN.
ENDIF.
get the final user data from submitted program
import gt_users_complete from memory id tcode_userid.
LOOP AT gt_users_complete.
lwa_tcode_user-tcode = p_tcode.
lwa_tcode_user-uname = gt_users_complete-Bname.
APPEND lwa_tcode_user TO p_i_tcode_user.
ENDLOOP.
Thanks,
Veerendra.HI,
Can you just exaplin it clearly plz..
Thanks
Mahesh -
How to get back the emails from an old hard drive that has no more OS ?
Hello,
My computer crashed recently.
The problem came from Windows somehow. So the hard drive is fine.
since windows couldn't be repaired I just copied a disk image backup to a new hard drive.
The problem is that I lost all the emails that were recieved between the moment I did my backup and now.
I can still access the folder :
%USERPROFILE%\Application Data\Thunderbird\Profiles\XXXXXXXX.default\Mail\
How can I use the files in that folder in order to get back my emails in Thunderbird ??
thanks for your help!Thunderbird mail is stored in MBOX files. these will be locted in the mile folder (well sub folders) along with an MSF index of their contents with the same name.
This add-on https://addons.mozilla.org/thunderbird/addon/importexporttools/ will import MBOX files. Once installed it adds an entry to the bottom of the Tools menu. -
How to Revert back the changes from the new version to old version
Hi, I need to revert back the changes in one of the Objects in Intergration Directory. Which means, I need to de-activate the existing version, and have the old version activated again. Can you help me on the steps on doing this? Thank you.
Mary,
If you have just saved urt object in IR / ID and not activated it, then u can simply go to the change list tab and right click on ur object and do " Reject changes".
if u have already activated the same, then u wud b required to open the object in IR/ ID.
Click on the history option and double click and open the same object version that u want and activate it.
regards,
Vishal -
Satellite A205-S5880 - How to get back the FN+F8 key function
Hello.
I have a problem with the HWSetup utility. The problem is that, when i press FN in the keyboard, that bar at the top shows up right, and there i use the F keys to use any of the options listed there.
Well the problem is that just a while ago i had the option for the WLAN, to turn it off or on. But well a while ago i was checking something with the WLAN driver and uninstalled it and installed it again, but then i guess that caused the WLAN option in the FN keys at the top bar to disappear.
It was in F8 but now I no longer have a F8 in the bar, and i don't know how to bring it back and I need it so if please someone could tell me how to bring it back?
And I use Windows Vista Home Premium btw, 32 bit
here's a screenshot in case your not sure what i'm talking about http://i33.tinypic.com/il9jee.jpgI re-installed it and still isn't there.
the driver shows up in the device manager and i click update driver just in case but it says mine is up date
i think i let the laptop install itself the driver
but the site i download the drivers from is from www.csd.toshiba.com
cause i think in www.toshiba.com they don't have drivers -
How to pick the entries from a function module fields values
hi guys,
i have a function module 'BP_JOBLOG_READ.when i execute this for a particular jobname,i will get some entries.again if i click those entries,i will get some fields with values.in that one field 'text' contains total credit amount(purely numeric).how to fetch this value into internal tabel and update into my internal table.very urgent.plz provide some coding.rewards wil b there for helpful sggestion.Mahesh,
Use the FM BP_JOBLOG_SHOW to display those job logs.
Hope this is helpful.
Thanks,
Naren -
Web Service from RFC function module
Hi all,
I'm searching for a way to create web services from RFC-enabled function modules. I know there is a wizard, but it's not suitable for my problem:
I have around 30 function modules (number raising in near future) I want to enable for web services, most of them share the same structures representing the underlying data model. When one structure is modified (i.e. a new sub-structure is added) I have to recreate all web services, which is quite uncomfortable.
In addition, using the wizard results in one wsdl-file for each web service operation, that leads to an administration overhead using this web services from a java frontend.
So I'm searching for a "bulk creation". I also know the wizard can be used for a function group, but I can't put all my RFC-enabled function module in one function group, that would lead to confusion in the package.
Does anyone know how web services are created programmaticaly? If I had a function module which creates the web services I could write a function module which creates all web services I need.
Thank you in anticipation!
FlorianI'm not sure I understand the 're-create' part...how are you re-creating the web service? if you modify the interface of a function-based web service, then you use the 'modify operations' functionality (context menu - right-click) to regenerate the web service interface; this works for a function group based web service as well and hits all of the methods at once. As for the java overhead on function group services, stating the obvious, maybe you just need to lower the number of functions in your groups. We use .Net-developed applications with multi-function webservices and don't have any overhead issues.
-
Unable to retrieve parameters from RFC Function Module
Hi All,
I have created a model for the RFC Enabled function module BAPI_BUPA_CENTRAL_GETDETAIL within my webdynpro program. I am passing parameters to the function module BAPI_BUPA_CENTRAL_GETDETAIL and I have validated that this is being passed correctly by displaying the passed value from the node of the input parameters.
Code used to pass input parameters -
IWDMessageManager manager = wdComponentAPI.getMessageManager();
try
wdContext.currentBapi_Bupa_Central_Getdetail_InputElement().modelObject().execute();
size = wdContext.nodeCentraldataperson().size();
wdComponentAPI.getMessageManager().reportSuccess(Integer.toString(size));
wdContext.nodeOutput().invalidate();
catch(WDDynamicRFCExecuteException e)
manager.reportException(e.getMessage(), false);
I also see that it returns 1 record by using the code below:
IWDMessageManager manager = wdComponentAPI.getMessageManager();
try
wdContext.currentBapi_Bupa_Central_Getdetail_InputElement().modelObject().execute();
size = wdContext.nodeCentraldataperson().size();
wdComponentAPI.getMessageManager().reportSuccess(Integer.toString(size));
wdContext.nodeOutput().invalidate();
catch(WDDynamicRFCExecuteException e)
manager.reportException(e.getMessage(), false);
But, when I try to retrieve the value returned it does not fetch that value -
Bapi_Bupa_Central_Getdetail_Output getdata = wdContext.nodeBapi_Bupa_Central_Getdetail_Input().nodeOutput().currentOutputElement().modelObject();
Bapibus1006_Central_Person[] getres = new Bapibus1006_Central_Person[size];
for(int i=0; i<size; i++){
wdComponentAPI.getMessageManager().reportSuccess(Integer.toString(i));
getres<i> = getdata.getCentraldataperson();
//String fullname = wdContext.nodeBapi_Bupa_Central_Getdetail_Input().nodeOutput().nodeCentraldataperson().getElementAt(i).getAttributeValue("Fullname").toString();
String fullname = getres<i>.getFullname();
fullname += Integer.toString(i);
wdContext.currentContextElement().setFullname(fullname);
wdComponentAPI.getMessageManager().reportSuccess("fullname:" + fullname);
It always returns 0 or null. Can someone please help me with this issue. The BAPI returns values in structure format and not internal table and hence I dont see the issue there as well.
What can be the problem?
Thanks for all your help in advance.
Best regards,
DivyaNikhil / Srihari,
I changed my code and it now looks like - I am trying get the return value into the context fullname but i still cant get the value although the size of nodeCentraldataperson() is thrown as 1 and the input is being passed correctly as i have validated this in this line of code [wdContext.nodeBapi_Bupa_Central_Getdetail_Input().currentBapi_Bupa_Central_Getdetail_InputElement().getBusinesspartner();]
IWDMessageManager manager = wdComponentAPI.getMessageManager();
try
wdContext.currentBapi_Bupa_Central_Getdetail_InputElement().modelObject().execute();
size = wdContext.nodeCentraldataperson().size();
wdComponentAPI.getMessageManager().reportSuccess(Integer.toString(size));
wdContext.nodeCentraldataperson().invalidate();
catch(WDDynamicRFCExecuteException e)
manager.reportException(e.getMessage(), false);
for(int i=0; i <size; i++){
String name = "FullName: ";
wdContext.nodeBapi_Bupa_Central_Getdetail_Input().nodeOutput().nodeCentraldataperson().setLeadSelection(i);
name += wdContext.nodeBapi_Bupa_Central_Getdetail_Input().currentBapi_Bupa_Central_Getdetail_InputElement().getBusinesspartner();
name += wdContext.nodeBapi_Bupa_Central_Getdetail_Input().nodeOutput().nodeCentraldataperson().currentCentraldatapersonElement().getFullname();
wdContext.currentContextElement().setFullname(name);
Any idea what could be wrong?
Thanks,
Divya -
How to get back the data from 'AddressBook.data.previous' ?
Hi! First of all: After using iSync all my address book data were duplicated, and I deleted all duplicated data manually. Then, I resetted the iSync data under 'Advanced' in '.Mac Sync Preferences'. Unfortunately, iSync deleted all my AddressBook data. I found a file named 'AddressBook.data.previous' and another file named 'AddressBook.data.beforesave' in my 'home folder/Library/Application Support/AddressBook'. Looking carefully into that file, I saw all the data I lost before in it! - Thus, how can I restore that data back into my AddressBook now? Does anyone knows some help for me? Thank you for answering! - Greetings, Gisela
Welcome to Apple Discussions.
You only have a very limited opportunity to recover your data this way. You should make sure that the Address Book application is not running, then drag the AddressBook.data file to your desktop or to the trash. Duplicate the AddressBook.data .previous file, and rename it AddressBook.data by removing the trailing <.previous> string. Then, launch the Address Book.
The application will read the contents of this renamed file, and display your contact records. You should regularly back up your contact records using the built-in Back up Address Book… option under its File menu. A similar option is available in iCal. -
How can we pass the control from servlet to portlet ?
Hi,
we use PortletRequestDispatcher.include method to call the servlet.
In my servlet, I have the following form information.
out.println("<form method=\"post\" action=\"http://abc 40acce5.3a.com/portal/dt?display=Command\">");
out.println("Enter value: ");
out.println("<input type=\"text\" name=\"UserName\" value=\"\">");
out.println("<center> "); out.println("<input type=\"submit\" value=\"Go Back Portlet\"> ");
out.println("</center> ");
out.println("</form>");
When user click the submit button, the servlet will go to portlet first, then go to another page.
is the url (action="http://abc40acce5.3a.com/portal/dt?display=Command) correct ?
if not, what url we should use ?
Can you help ?
Thanks!Oh I thought that you have selection-screen and again you are working on dialog programming.
if you want to use select-option directly in module pool then it is not possible.
but you can do other way.
create two varaiables
data : v_kun_low like kna1-kunnr,
v_kun_high like kna1-kunnr.
use these two variables in layout ,let user knows that he can not give options like gt,lt,eq ,it will be always BT.
and also when you see normal report program,you can use multiple values in either low or high,but here it is not possibel.
use can enter only low value and high value.
when you come to program point of view
declare one range
ranges r_kunnr for kna1-kunnr.
do the coding like
r_kunnr-low = v_kun_low.
r_kunnr-high = v_kun_high.
r_kunnr-options = 'BT'.
r_kunnr-sign = 'I'.
append r_kunnr.
now you can use r_kunnr in select query ,it will work like select-option.
other than this there is no option.
Thanks
Seshu
Maybe you are looking for
-
After my last and latest upgrade to Iphone 5, i can no longer delete open app by tapping the home button twice, and then swiping off the screen. In effect these apps are open and using data. This has only just occured since the upgrade to ios 7.1.1
-
E71 Feedback and Wish list for future development
Hi Nokia and Nokia Fans. E71 is a masterpiece but I believe there's much room for improvement. My E71 is indispensable to me. I wish Nokia will strive to thrive the E series and in particular the E71. Here's my wish list / features to add: 1. A Task
-
Network mac mini to macbook air
HOW DO YOU NETWORK MAC MINI WITH MACBOOK AIR
-
Uh oh...all I see is a band of gray lines about 1 inch?
I was using the Ipad and turned if off for a few minutes. Picked it back up...and viola'! Gray and colored band of lines appeared running across the screen, about an inch in width. Anything I can try before just sending it back? Only 4 months old. No
-
Create new Documentation types for Template project
Hi Expert, Can anyne tell me the process for creating new documentation types under projects standards tab under solar_project_admin for project? Thanks, Basis Admin