Help! Question on calling a function module
Hi,everybody.
I have a problem about function module. I created a normal function module which would call itself when user double clicked some screen elements. But when I exit the function called in second time, the value of the global variants in function called in first time changed to the value in function called in second time. It seems that they shared the global variants. So is there any ease approach to recover the data to the original value?
Thanks for any help!
Hi Dan,
you can use field-symbols instead.
check the following code
IM_TEST is the importing parameter
EX_TEST is the exporting parameter
FUNCTION ZTEST_RECURSION.
*"*"Local interface:
*" IMPORTING
*" REFERENCE(IM_TEST) TYPE C
*" EXPORTING
*" REFERENCE(EX_TEST) TYPE C
field-symbols : <var> type c.
if im_test = 1.
assign im_test to <var>.
*<var> = 4.
elseif im_test = 3.
assign im_test to <var>.
endif.
if im_test = 1.
CALL FUNCTION 'ZTEST_RECURSION'
EXPORTING
IM_TEST = '3'
endif.
ex_test = <var>.
ENDFUNCTION.
i hope this will help you.
regards,
Kinshuk Saxena
PS reward points if you find the post helpful
Similar Messages
-
How do you call a function module in a web dynpro application ?
Why do you delete my postings ?????????????????????????????
pls see subject
Edited by: Ilhan Ertas on Apr 1, 2009 4:51 PM
Edited by: Ilhan Ertas on Apr 1, 2009 4:52 PMIts not me deleting them. Perhaps a different moderator or a technical problem within SCN itself.
Someone might be concerned about your question because it is very basic.
You can call a function module from WD the same way you did in any ABAP program - with the CALL FUNCTION syntax. There is a service call wizard that will generate a matching context and calling code for you - but it is just a helper, code generator. Everything it does can be done by hand as well (and often better than the generator). -
Can i call a function module of SAP?
Hi, i have a question... Can i call a function module of SAP... I need print a document from a device, can i call the function module of SAP in order that me it prints it?
Thanks,Hi Victor,
you can use the GenericSync Example of the MDK. This calls the Module to verify the user directly. Generic Sync is exactly for that purpose: call a BADI directly and no usage of SyncBO. Be aware, that you - out of the box- sync your app data as well at that moment, because a sync runs both - generic and smartsync. Even worse: even when you have nothing to sync in Generic Sync - so nothing to print - it will call the function module for generic sync as long as it is registered.
Well, anyway, this is the way to call a function module separate.
If it works with you rparticular print module? I have no idea, but if this is a normal function module - well, it should be ok.
Hope this helps.
Regards,
Oliver -
CNTL_ERROR while calling a function module from Java webdynpro
I am calling a RFC function module from javawebdynpro app
which inturn calls a function module performing BDC on CAPP transaction. When I run this from SE37 of the same system or a different system everything works fine. But when called from Java webdynpro app, it raises a CNTL_ERROR exception and creates a short dump.
Any help on this is highly appreciatedGood catch, BI Learner. This was exactly it: when assigning the values from SOURCEFIELDS directly to the import/export parameters, you have to make sure that the types are EXACTLY the same, otherwise it will not work (the routine stops with an error when calling the FM, but there is no dump).
Therefore, to solve my problem, I created the declarations precisely as expected by the FM and assigned the values to these fields:
DATA:
SOURCEVAL TYPE /BIC/OIINVQTY,
SOURCEUOM TYPE /BIC/OIUSUOM,
USITM TYPE /BIC/OIUSITM,
TARGETUOM TYPE /BIC/OIUSUOM,
CONVERTED_COST TYPE /BIC/OIINVQTY.
DATA PRODUCTION_UOM TYPE /BIC/OIUSUOM.
" get the Production UOM
SELECT SINGLE I~/BIC/USPRDUOM
FROM /BIC/PUSITM AS I
INTO PRODUCTION_UOM
WHERE I~/BIC/USITM = SOURCE_FIELDS-/BIC/USITM AND I~OBJVERS = 'A'.
IF ( SY-SUBRC = 4 ). " no records found
"RAISE PARTNO_NOT_FOUND.
RAISE EXCEPTION TYPE CX_RSROUT_SKIP_RECORD.
ENDIF.
" load the parameters
SOURCEVAL = SOURCE_FIELDS-/BIC/USFRZMFC.
SOURCEUOM = SOURCE_FIELDS-BASE_UOM.
USITM = SOURCE_FIELDS-/BIC/USITM.
" then you can call the FM
CALL FUNCTION 'Z_CA_CONVERT_US_COST'
EXPORTING
PSOURCEVAL = SOURCEVAL
PSOURCEUOM = SOURCEUOM
PUSITM = USITM
PTARGETUOM = PRODUCTION_UOM
IMPORTING
PTARGETVAL = CONVERTED_COST
EXCEPTIONS
CONVERSION_NOT_MAINTAINED = 1
PARTNO_NOT_FOUND = 2
OTHERS = 3.
" ... [do the rest]
Thanks for your help,
Dennis -
Can we call a function module in ADHOC query
Hi
Can we call a function module in ADHOC query if yes how.
Also we ned to know how to call a function module in SAP query.
An early responce is appreciated.
Thanks and best regards
RajeevOkay as far as I understand your aim is:
To fill a field in the output list with a value that is based on the current line information and calculated by a function module
So go to SQ02 and create an additional field in the InfoSet.
You can refer in the coding to the technical names you can see in the left tree window like P0000-PERNR.
More information is avaiable in the Help part look for additional field in SQ02.
Regards,
Michael -
How to call a function module from the Web Template?
Hi all,
how can I call a function module from a BI 7.x web template and then show the result of the FM on the web template?
Many thanks for your hints.
Regards, NilsHi!
I am too working on a similar issue.
Probably this helps:
Re: Calling a function module from a Web Template
Regards,
Sri -
System failure, during call of function module RSWR_RFC_SERVICE_TEST
Hi Team,
I am working with BW and Portal Integration, with the Netweaver
2004s SP 11 version. I have a issue when i run the RSPOR_SETUP program
to test the configuration.
The error is on status 5 and 12, i get the following error:
System failure, during call of function module RSWR_RFC_SERVICE_TEST,
and when i enter at the dev_jrfc.trc log file, i have the following
error:
Exception thrown [Tue Jul 10 16:12:16,687]:Exception thrown by
application running in JCo Server
java.lang.RuntimeException: call FM RSWR_RFC_SERVICE_TEST to ProgId
smxpedvc_PORTAL_EPD on host smxpedvc.grupoempresarialangeles.com.mx
with SSO not authorized: No login module succeeded.
at
com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest
(RFCDefaultRequestHandler.java:79)
at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequest
(RFCJCOServer.java:156)
at com.sap.mw.jco.JCO$Server.dispatchRequest(JCO.java:7785)
at com.sap.mw.jco.MiddlewareJRfc$Server.dispatchRequest
(MiddlewareJRfc.java:2405)
at com.sap.mw.jco.MiddlewareJRfc$Server.listen
(MiddlewareJRfc.java:1728)
at com.sap.mw.jco.JCO$Server.listen(JCO.java:8145)
at com.sap.mw.jco.JCO$Server.work(JCO.java:8265)
at com.sap.mw.jco.JCO$Server.loop(JCO.java:8212)
at com.sap.mw.jco.JCO$Server.run(JCO.java:8128)
at com.sap.engine.core.thread.impl3.ActionObject.run
(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute
(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run
(SingleThread.java:170)
Could you help me to solve this issue.
Thanks so much.Have you checked the user that is used to connect from J2EE back to ABAP?
I had a similar problem, went into the Visual Administrator and found the incorrect password (or possibly outdated password) was being used to communicate back to ABAP, and updating that sorted out my problem.
Hope this helps.
Cheers,
Andrew -
Call of function module "SUBST_START_BATCHJOB" by RFC failed
Hello Guru's,
We have the following Issue:
In Phase PREP_INIT/JOB_RSUPDTEC we get this error from EHPI (Version 710-1)
Checks after phase PREP_INIT/JOB_RSUPDTEC were negative!
Last error code set: BATCHJOB RSUPDTEC FAILED: Calling RSUPDTEC failed - repeat phase.
In the file PSUPDTEC.LOG are the following error:
4 ETQ260 Starting batchjob "RSUPDTEC"
4 ETQ230 Starting RFC Login to: System = "E11", GwHost = "sape11", GwService = "sapgw00"
4 ETQ359 RFC Login to: System="E11", Nr="00", GwHost="sape11", GwService="sapgw00"
4 ETQ232 RFC Login succeeded
4 ETQ233 Calling function module "SUBST_START_BATCHJOB" by RFC
4 ETQ399 JOBNAME='RSUPDTEC', REPNAME='RSUPDTEC', VARNAME='', BATCHHOST='sape11', IV_SCHEDEVER=' '
4 ETQ234 Call of function module "SUBST_START_BATCHJOB" by RFC succeeded
4 ETQ399 Returned JOBCOUNT='14230100'
2EETQ235 Call of function module "SUBST_START_BATCHJOB" by RFC failed (error-status "27")
2EETQ261 Start of batchjob "RSUPDTEC" failed
In the Sysem we can see, that the Job RSUPDTEC was created by DDIC but not started.
We can start (and finish) the job successfully as logged in DDIC.
We don't know whats the problem. The EHPI stopped every time at this point.
Need Help...
regards
ChrisIssue solved.
In /etc/hosts the first entry was SAPE11.
But it must be sape11, because the instance is sape11_E11_00.
In SM51 we could see that
sape11_E11_00 SAPE11 Dialog Batch Update Upd2 Spool Enqueue ICM active
We changed the entry and restarted SAP.
Then the job can be started. -
ERROR: -Type conflict when calling a function module
hi to all,
when iam executing the program in browser Type conflict when calling a function module error is showing, i have bind all the attribute correctly still iam getting error, WHEN I CLICK ON THE SEARCH BUTTON DATA IS NOT COMING TO MY TABLE ITAB1 plz help me....
DATA:
NODE_IP_SELECTION TYPE REF TO IF_WD_CONTEXT_NODE,
ELEM_IP_SELECTION TYPE REF TO IF_WD_CONTEXT_ELEMENT,
STRU_IP_SELECTION TYPE IF_PLANNING_HISTORY=>ELEMENT_IP_SELECTION ,
ITAB TYPE TABLE OF ZSL_PL_UPDATE1,
WA TYPE ZSL_PL_UPDATE1.
navigate from <CONTEXT> to <IP_SELECTION> via lead selection
NODE_IP_SELECTION = WD_CONTEXT->GET_CHILD_NODE( NAME = `IP_SELECTION` ).
get element via lead selection
ELEM_IP_SELECTION = NODE_IP_SELECTION->GET_ELEMENT( ).
get all declared attributes
ELEM_IP_SELECTION->GET_STATIC_ATTRIBUTES(
IMPORTING
STATIC_ATTRIBUTES = STRU_IP_SELECTION ).
CALL FUNCTION 'ZBAPI_PL_UPDATE'
EXPORTING
GV_LIFNR = STRU_IP_SELECTION-LIFNR
GV_MATNR = STRU_IP_SELECTION-LIFNR
GV_GJAHR = ' '
GV_WEEK_LOW = STRU_IP_SELECTION-FROM_WEEK
GV_WEEK_HIGH = STRU_IP_SELECTION-TO_WEEK
IMPORTING
RETURN =
TABLES
GT_PL_UPDATE = ITAB
DATA:
NODE_PLANN_NODE TYPE REF TO IF_WD_CONTEXT_NODE,
ELEM_PLANN_NODE TYPE REF TO IF_WD_CONTEXT_ELEMENT,
STRU_PLANN_NODE TYPE IF_PLANNING_HISTORY=>ELEMENT_PLANN_NODE,
WA1 TYPE IF_PLANNING_HISTORY=>ELEMENT_PLANN_NODE,
ITAB1 TYPE TABLE OF IF_PLANNING_HISTORY=>ELEMENT_PLANN_NODE.
LOOP AT ITAB INTO WA.
MOVE-CORRESPONDING WA TO WA1.
APPEND WA1 TO ITAB1.
ENDLOOP.
navigate from <CONTEXT> to <PLANN_NODE> via lead selection
NODE_PLANN_NODE = WD_CONTEXT->GET_CHILD_NODE( NAME = `PLANN_NODE` ).
CALL METHOD NODE_PLANN_NODE->BIND_TABLE
EXPORTING
NEW_ITEMS = ITAB1
SET_INITIAL_ELEMENTS = ABAP_TRUE
INDEX =
ENDMETHOD.CALL FUNCTION 'ZBAPI_PL_UPDATE'
EXPORTING
GV_LIFNR = STRU_IP_SELECTION-LIFNR
GV_MATNR = STRU_IP_SELECTION-LIFNR
GV_GJAHR = ' '
GV_WEEK_LOW = STRU_IP_SELECTION-FROM_WEEK
GV_WEEK_HIGH = STRU_IP_SELECTION-TO_WEEK
IMPORTING
RETURN =
TABLES
GT_PL_UPDATE = ITAB
Problem is here
check out the type GV_GJAHR whether it accepts string type.
thanks
sarbjeet singh -
Calling a function module from within a transformation routine
I created a routine within a transformation and experience the following weird behavior now:
When I call a function module within that routine, the load fails with the following error message:
Exceptions in Substep: Rules
When I click on the button next to this text, it point me to my function module call.
What I do not understand is, that the following two scenarios work fine:
- Having the same function call (with fake values) in a plain ABAP program works beautilfully
- If I copy the content of my function module directly into my transformation routine, everything works fine as well
I am now wondering whether the routine does not "see" the function module I am calling. The module resides in a different package. Is that a problem? Do I have to include something first?
Here is the code that calls my FM (
CALL FUNCTION 'Z_CA_CONVERT_US_COST'
EXPORTING
PSOURCEVAL = SOURCE_FIELDS-/BIC/USFRZMFC
PSOURCEUOM = SOURCE_FIELDS-BASE_UOM
PUSITM = SOURCE_FIELDS-/BIC/USITM
PTARGETUOM = PRODUCTION_UOM
IMPORTING
PTARGETVAL = RESULT
EXCEPTIONS
CONVERSION_NOT_MAINTAINED = 1
PARTNO_NOT_FOUND = 2
OTHERS = 3.
Thanks a lot for your help. Points will be assigned.
DennisGood catch, BI Learner. This was exactly it: when assigning the values from SOURCEFIELDS directly to the import/export parameters, you have to make sure that the types are EXACTLY the same, otherwise it will not work (the routine stops with an error when calling the FM, but there is no dump).
Therefore, to solve my problem, I created the declarations precisely as expected by the FM and assigned the values to these fields:
DATA:
SOURCEVAL TYPE /BIC/OIINVQTY,
SOURCEUOM TYPE /BIC/OIUSUOM,
USITM TYPE /BIC/OIUSITM,
TARGETUOM TYPE /BIC/OIUSUOM,
CONVERTED_COST TYPE /BIC/OIINVQTY.
DATA PRODUCTION_UOM TYPE /BIC/OIUSUOM.
" get the Production UOM
SELECT SINGLE I~/BIC/USPRDUOM
FROM /BIC/PUSITM AS I
INTO PRODUCTION_UOM
WHERE I~/BIC/USITM = SOURCE_FIELDS-/BIC/USITM AND I~OBJVERS = 'A'.
IF ( SY-SUBRC = 4 ). " no records found
"RAISE PARTNO_NOT_FOUND.
RAISE EXCEPTION TYPE CX_RSROUT_SKIP_RECORD.
ENDIF.
" load the parameters
SOURCEVAL = SOURCE_FIELDS-/BIC/USFRZMFC.
SOURCEUOM = SOURCE_FIELDS-BASE_UOM.
USITM = SOURCE_FIELDS-/BIC/USITM.
" then you can call the FM
CALL FUNCTION 'Z_CA_CONVERT_US_COST'
EXPORTING
PSOURCEVAL = SOURCEVAL
PSOURCEUOM = SOURCEUOM
PUSITM = USITM
PTARGETUOM = PRODUCTION_UOM
IMPORTING
PTARGETVAL = CONVERTED_COST
EXCEPTIONS
CONVERSION_NOT_MAINTAINED = 1
PARTNO_NOT_FOUND = 2
OTHERS = 3.
" ... [do the rest]
Thanks for your help,
Dennis -
Errors occurred during call of function module BUPR_EMPLO_DELETE
when distributing employee data from (HCM) to (CRM) there is an error that appears in relation with the settings for the Business Parner:
"Errors occurred during call of function module BUPR_EMPLO_DELETE
Message no. R11335
Diagnosis
The business partner BAPIs were called up incorrectly. The indicator IV_X_SAVE was given differing settings when the modules were called.
Within a LUW, the indicator must be consistently set or not set.
System Response
The indicator IV_X_SAVE should be set or not set once off. Up to COMMIT WORK the content of the field may not be changed, as problems will otherwise occur with the internal memory, thus leading to runtime errors."
This prevents CRM to be updated with the changes. Kindly help me on the same.Hi Sai,
This is too late to reply this post, but to let everyone know about the issue I am posting here.
Start new UI session and put breakpoint at BUPR_EMPLO_DELETE and check parameter IV_X_SAVE everytime, till you get the error message. The parameter IV_X_SAVE should be same/consistent (either ' ' or 'X') in whole Logical Unit of Work. It should not change in between.
I faced the same kind of problem and found that standard was passing IV_X_SAVE = ' ' and in our custom code we were passing IV_X_SAVE = 'X'. I changed it to IV_X_SAVE = ' ' and my problem got resolved.
You can try the same. Please post the alternate solution if you find it.
Best Regards,
Rahul Koshti -
Help , if there exists a Function Module
Hello everybody,
I want a help whether SAP has some Function Module which can take an "Internal Table" as an Import Parameter and give us "CSV File" as an export parameter , more-or-less like the "GUI_DOWNLOAD" Function Module , which downloads the file as ".DAT" or ".ASC" .
Please remember that i would need a CSV file , which i can read later through Opening a Dataset and transferring the contents into a file.
Your immediate answers is most needed.
Thanks,
Suddha Laikhi suddha,
try with GUI_DOWNLOAD with filetype as 'ASC' and
give the filename as 'C:\TEST.CSV'.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE =
FILENAME = 'C:\TEST.CSV'
FILETYPE = 'ASC'
APPEND = ' '
WRITE_FIELD_SEPARATOR = 'X'
HEADER = '00'
TRUNC_TRAILING_BLANKS = ' '
WRITE_LF = 'X'
COL_SELECT = ' '
COL_SELECT_MASK = ' '
DAT_MODE = ' '
CONFIRM_OVERWRITE = ' '
NO_AUTH_CHECK = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
WRITE_BOM = ' '
TRUNC_TRAILING_BLANKS_EOL = 'X'
WK1_N_FORMAT = ' '
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
IMPORTING
FILELENGTH =
TABLES
DATA_TAB = itab
FIELDNAMES =
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
do reward if it helps,
regards,
priya.
Message was edited by: Priya -
Call RFC Function Module in R/3 via XI during Mapping
Hi,
I have an XI scenario where I have to fill the IDoc ADRMAS03 in XI and send it to R/3. Unfortunately the sender system does not provide the required address number (ADRNR) for the Business Partner, only the Business Partner number. Therefore I want to call a Function Module in R/3 during the mapping in order to get the ADRNR.
Does anybody know which RFC-Function Module I can call in R/3 4.6c providing the Busness Partner number in order to get the ADRNR?
Thanks.
AlexHi,
no need for RFC lookup it's better to do as he wants
(inside an exit in R3) - just my point of view
BTW
don't use a FM just find a table with both values
and create a select statement youself
Regards,
michal
<a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a> -
Can one call a function module in Calculated Key Figure?
Can one call a function module in Calculated Key Figure? If yes how, if not, what is the solution if formula does not suffice?
I want to convert duration which is in seconds to Duration in Hours and Minutes. There is a function module for doing it. Not sure how to do it in a formula.One option you have is a Virtual Key Figure and User Exit to use the Function Module to convert the time from seconds to HH:MM. Here are two documents on this subject to help you create them, based on the technology your comfortable with:
[Implementing Virtual Key Figure/ Characteristics Makes Query More Dynamic|https://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/e051fda8-71a9-2a10-ac9e-8d17414a8c8c&overridelayout=true]
[Step By Step Process for Virtual Key Figures and Characteristics through BAdi|http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/60e34f63-f44c-2c10-488e-c89b04e0ca7c&overridelayout=true] -
Call a function module from CRM 5.0 via ITS to FICA
Hi
I want to call a function module in FICA (FICA is using sapgui) from CRM (IC-web) via ITS (Not integrated in FICA)
Is it possible and how should this be done???
If someone know how, please help
BR//JLgenerally RFCs should not have user dialogs.
any how to handle your case, you need ITS and since FICA is a WAS 6.20 system, you need to have a ITS installed for FICA system, without which you cannot do that.
alternatively you can mimic the functionality of the RFC by programming the same in a BSP and call this from CRM system
Regards
Raja
Maybe you are looking for
-
Is "Broadcast Safe" necessary if the output will never be broadcast?
I'm doing a project whose final output will be a set of DVD's which will never be broadcast. I really like the color look I've achieved for my clips, but when I check my scopes, they're outside broadcast safe, both up and down. If the output will nev
-
TS Name is not displayed against BS Name in SLD
Hi Friends, In SLD (PI 7.0), under Business Systems wizard, for each business system name, technical system is not displayed (Integration Tab --> Technical system) But, when we go to Technical System wizard, under Business System Tab Business System
-
History problem in jsp page,internet explorer back button
hi everyone i have a jsp page suppose a.jsp.in which i am using dropdown menu to displays:list of data from database,one submit button i am using name select and click here.after selecting the value from dropdown menu ,again some other data will be d
-
Km Index does not Start Automatically
Hi: I created an Index with one data source ( FSDB Repository ). In the TREX Monitor I edit the Queue Parameters: Schedule type: Both Schedule Time: All-0:01 ( Every minute ). I have added documents manually to the repository and the index started au
-
Transport package creation in EP7
Hi, We have recently migrated from EP6 to EP7. While creating transport package in EP7, I found that the "include dependent" option is no more there in EP7. Can someone tell me how do we include dependent objects in EP7. Thank you. Regards Muke