Error in call function statement
hi,
i have defined a function with one of the "tables" parameter as shipto_xxx.
in my calling prorgam , i say
call function "zzzz"
tables
shipto_xxx = yyy.
where yyy is a similar structure to hold the data received by the function module.
when i compile i get the error "The field shipto_xxx is unknown but there is a similar field " *shipto_xxx".
why ?
Hi Micky,
Here we go. Main program logic...
DATA: BEGIN OF *uuu OCCURS 0,
xxx LIKE vbap-xxx,
END OF *uuu.
DATA: BEGIN OF *shipto OCCURS 0,
vbeln LIKE likp-vbeln,
adrnr LIKE vbpa-adrnr,
END OF *shipto.
TYPES: BEGIN OF t_xxx,
vbeln LIKE vbrp-vbeln,
vgtyp LIKE vbrp-vgtyp,
END OF t_xxx.
DATA *vvv TYPE SORTED TABLE OF t_xxx
WITH HEADER LINE
WITH NON-UNIQUE KEY vbeln.
CALL FUNCTION 'ZZZZ'
TABLES
UUUU = *uuu.
VVVV = *vvv.
SHIPTO = *shipto.
Here I am trying to call the RFC function which will interface with XI and pull the data from another SAP system and get me the results in the two internal tables, i.e. *vvv and *shipto. The internal table *uuu acts as input data which will be passed to XI and thru that to another sap system.
Now the FM "ZZZZ" has been created based on the relevant structures created in SE 11. and these have been included in the TABLES tab of the function.
so i have created 3 structures zuuu, zshipto and zvvv in SE11 similar to the code above and included the same in the function udner the tables tab. no import / export parameters have been set. and no code in the FM. this FM is dummy and is used just to pass the data and retrieve the data from other sap system.
the basic thing is send an internal table of values and receive multiple internal table of values. hope i am clear...please let me know how to proceed. thks
Similar Messages
-
Type error while calling function module with in FOX formula
Hi,
I am getting following error while calling function module from FOX Formula:
"Types of parameter DAY_IN () and variable J_CALDAY(D) are inconsistent"
Following is the code:
DATA I_CALDAY TYPE 0CALDAY.
DATA N_CALDAY TYPE 0CALDAY.
DATA KYF TYPE KEYFIGURE_NAME.
FOREACH I_CALDAY, KYF.
CALL FUNCTION SLS_MISC_GET_LAST_DAY_OF_MONTH
EXPORTING
DAY_IN = I_CALDAY
IMPORTING
LAST_DAY_OF_MONTH = N_CALDAY.
{KYF, N_CALDAY} = {KYF, L_CALDAY}.
ENDFOR.
Import parameter DAY_IN is of type sy-datum (that inturn is data element SYDATUM of data type DATS - same as 0CALDAY). Not sure why error is being thrown. Any idea? Thanks.
Edited by: SAP_BOY on Dec 4, 2009 5:26 PMHi,
I think It will not identify ,though you have (data element SYDATUM of data type DATS - same as 0CALDAY).Check it out by assigning it through a variable of type D.
Data I_CALDAY TYPE D.
Hope it may work out.
Regards,
Indu -
Getting error of CALL FUNCTION in coding
hi all,
i have wrtie a code for calling SMART FORM.In the coding START OF SELECTION,i got error at f_display_report
This the code:
FORM f_display_report .
DATA: fname(30) TYPE c.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZCCL_RATE_COMPARISION2'
IMPORTING
fm_name = fname
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc = 0.
CALL FUNCTION fname
EXPORTING
gi_main = gs_main
TABLES
it_detail = gi_detail.
ENDIF.
ENDFORM.
where GS_MIAN and GI_DETAIL are:
gs_main LIKE ekko,
gi_detail LIKE STANDARD TABLE OF ekpo WITH HEADER LINE.
after execuring it gives me error of Incorrect parameter with CALL FUNCTION.
Thanks & Regards,
sappk25Please also place the type refered in smart forms.
Your dump analysis will clearly say which parameter was mistyped.
My assumption is
CALL FUNCTION fname
EXPORTING
gi_main = gs_main
TABLES
it_detail = gi_detail[] "<--- try adding a square bracket here -
Strange error of CALL FUNCTION within Method
Hi all,
i'm facing a very strange problem. Some Function Modules can't be called from within a method and a dump appears with the following message CALL_FUNCTION_CONFLICT_LENG (CX_SY_DYN_CALL_ILLEGAL_TYPE).
Here's an example: I've created a normal class with only one static method.
Class: ZCL_TEST
Method: CHECK_EMPLOYEE
Importing Parameter: IV_PERNR TYPE PERNR_D
Coding:
DATA gt_return TYPE TABLE OF bapireturn1.
CALL FUNCTION 'BAPI_EMPLOYEET_ENQUEUE'
EXPORTING
number = iv_pernr
validitybegin = sy-datum
IMPORTING
return = gt_return.
CALL FUNCTION 'BAPI_EMPLOYEET_DEQUEUE'
EXPORTING
number = iv_pernr
validitybegin = sy-datum.
If i call this method a dump appears and if the same code of that method is implemented directly in a normal report everything works fine.
Why can't i call this function module from within a method?
Regards
Mark-AndréHi,
the dump even appears by testing the method from Class Builder with F8!
In my test report iv_pernr isn't declared as follows:
REPORT z_test.
PARAMETERS p_pernr TYPE pernr_d.
zcl_test=>check_employee( p_pernr ).
The reason of the dump is parameter RETURN. But i don't understand it why it only doesn't work from within a method.
Dump Message:
In the function module interface, you can specify only
fields of a specific type and length under "RETURN".
Although the currently specified field
"GT_RETURN" is the correct type, its length is incorrect.
Regards
Mark-André -
Error while calling function module to start form
Hello Experts .
First i make my data selection. Then i will get the name of the generated function module. Then i call FP Job open. up to here all is ok. But when i call the generated function module. There comes the popup error message. The text on this popup is SAP <SystemID>:System message, Workprocess restarts. Session deleted" (or similar, I only get the german text "PBI: SAP-Systemnachricht: Workprozess druchgestartet (Modus abgebrochen)).
I dont know why.
Can anybody help?
Regards
Chris-> Executing Test Report FP_TEST_00 works correct. i see a pdf.
->Excecuting Test Report FP_CHECK_DESTINATION_SERVICE works correct
FP_JOB_CLOSE is not called in my report.
-> Executing Testreport:FP_TEST_IA_01 I get the error message:'
ADS: com.adobe.ProcessingException: Could not retrieve a password for credential: ReaderRights(200.101).' -
ORA-06502 Error When Calling Function
Hi,
We have upgraded Oracle Database Server 9i to 11.1.0.7 and we are now using ODP.NET version 2.112.2.0 instead of 9.2.0.4 dll.
After the migration, we encountered ORA-06502 problem when we are calling a function from .NET application. We investigated and found that we have to set the parameter size for the return value parameter (varchar2). But there is a strange case that how do we guess the return value size, it can be 5 characters or 5.000 characters. Before 11g Oracle.DataAccess, we do not have that such problem. We were setting the parameter size 225 by default, but ODP.NET was returning 500 characters without any error.
The question is that how do we guess or know the actual parameter size when we are passing a Return Value parameter to the function?
Or is there a solution for this behaviour of ODP.NET?
Thanks.Is there a reason you can not set it to the default maximum size for a varchar2 of 32k?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Oracle.DataAccess.Client;
using System.Data;
namespace test_function2
class Program
static void Main(string[] args)
OracleConnection con = new OracleConnection("Data Source=UTF8;User ID=scott;Password=tiger");
OracleCommand cmd = new OracleCommand("test_return", con);
cmd.CommandType = CommandType.StoredProcedure;
OracleParameter test_return = new OracleParameter("test_return", OracleDbType.Varchar2, 32000);
test_return.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(test_return);
OracleParameter test_input = new OracleParameter("test_input", OracleDbType.Varchar2);
test_input.Direction = ParameterDirection.Input;
test_input.Value = "blah";
cmd.Parameters.Add(test_input);
try
con.Open();
cmd.ExecuteNonQuery();
con.Close();
Console.WriteLine("{0}", test_return.Value);
Console.WriteLine("Press Enter to Continue");
Console.ReadLine();
catch (OracleException e)
Console.WriteLine(e.Number);
Console.WriteLine(e.Message);
Console.WriteLine("test failed\nPress Enter to Continue");
Console.ReadLine();
create or replace function test_return(in_var in varchar2)
return varchar2 is
begin
return lpad(in_var, 4000, 'TEST test') || lpad(in_var, 4000, 'DONE done');
end test_return;
/ -
Xpath error in calling function module through jco
Hello Experts,
We have a production XMII system which was running fine when suddenly it started giving the xpath errors in the log file.
The error that we got was -
Uncaught exception from SAPJCOInterface_0, No nodes found in variable 'SAPJCOInterface_0.Request' and xpath:
I checked the XML found that the structure was there but values were missing in the XML. We restarted the server and the error stopped coming.
Has anyone faced similar issue ? What should be look at to find the root cause of this problem ?
Thanks,
SBHi,
While using the form interface variables, don't use them directly in the smartforms because form interface variable, workareas and tables are read only (in ur case g_vbeln,g_age,g_mahza). Instead of that declare a global variable in the smartform of the same type and In the initiialization tab assign print parameter values to global fields and use them in the smartform. This case holds good when u are passing tables and work areas to smartforms from print program.
Revert back if u face any problem.
Regards,
Gautham Paspala -
HI ALL
WHERE CAN I FIND ALL THE FUNCTION MODULES USED IN ABAP AND I ALSO NEED EXPLANATIONS ....CAN ANYONE HELP
WITH REGARDS
VIJAYHi,
You can use the table TFDIR to see all the fun modules in ABAP.
see the doc and links for further details
Function Modules;
Check this matter.
Function Modules are Glopbal ABAP programs created by SAP for reusable purpose.they have IMPORT,EXPORT and TABLE parameters, and EXCEPTIONS to through when error occurs.
You can create them from TCode SE37.
Go through the following doc:
Function modules are cross-program, reusable procedures that are organized into function groups, and whose functions are implemented between the statements FUNCTION and ENDFUNCTION. Function modules and their interfaces are created in the Function Builder.
Function Module Interfaces
The parameter interface of a function module is defined in the Function Builder. It includes the definition of interface parameters and the specification of exceptions that can be triggered by a function module. The Function Builder automatically generates comment lines below the FUNCTION statement in the source code of the function module, which represent the interface of the function module with the following syntax:
Syntax
... [IMPORTING parameters]
[EXPORTING parameters]
[CHANGING parameters]
[TABLES table_parameters]
[{RAISING|EXCEPTIONS} exc1 exc2 ...]
The syntax and semantics of IMPORTING, EXPORTING, CHANGING, RAISING, and EXCEPTIONS mainly correspond to the definition of method interfaces with [CLASS-]METHODS. The additional option of defining table parameters using TABLES is obsolete.
Interface parameters
The interface parameters are defined on the relevant tab pages in the Function Builder.
IMPORTING parameters are input parameters. When the function module is called, a suitable actual parameter must be specified for every non-optional input parameter. The content of the actual parameter is passed to the input parameter when the call is made. The content of an input parameter for which 'pass by reference' is defined cannot be changed in the function module.
EXPORTING parameters are output parameters. When the function module is called, a suitable actual parameter can be specified for every output parameter. The content of an output parameter that is defined for 'pass by value' is transferred to the actual parameter if the function module is completed without errors. An output parameter that is defined for pass by reference is not initialized when the function module is called.
CHANGING parameters are input and output parameters. When the function module is called, a suitable actual parameter must be specified for every non-optional input or output parameter. When the function module is called, the content of the actual parameter is passed to the input/output parameter, and when the function module is completed, the content of the input/output parameter is passed to the actual parameter.
TABLES parameters are table parameters. Table parameters are obsolete CHANGING parameters that are typed as standard tables with a header line. If an internal table without a header line or a table body is passed as an actual parameter to a formal parameter of this type, an empty local header line is generated in the function module. If an internal table with a header line is used as an actual parameter, both the table body and the header line are passed to the function module. Pass by value is not possible in formal parameters defined using TABLES. Formal parameters defined with TABLES can be replaced by formal parameters defined with CHANGING. A local work area can be created for the internal table in the function module by using the addition LIKE LINE OF itab of the DATA statement.
Exceptions
The exception of a function module are defined on the Exceptions tab page in the Function Builder. Here you can select exception classes to define whether class-based exceptions are declared or non-class-based exception are defined. Class-based exceptions are represented in the above syntax by RAISING, and non-class-based exceptions are represented by EXCEPTIONS.
The addition RAISING is used to declare class-based exceptions that can be propagated from the function module to the caller. Exceptions in the categories CX_STATIC_CHECK and CX_DYNAMIC_CHECK must be explicitly declared, otherwise a propagation can lead to an interface violation. A violation of the interface leads to the treatable exception CX_SY_NO_HANDLER. Exceptions of the category CX_NO_CHECK are implicitly always declared. The declaration of exceptions of the category CX_STATIC_CHECK is statically checked in the syntax check. For exceptions of the category CX_DYNAMIC_CHECK, the check is not performed until runtime. In a function module in which class-based exceptions are declared with the RAISING addition, the statement CATCH SYSTEM-EXCEPTIONS cannot be used. Instead, the relevant treatable exceptions should be handled in a TRY control structure.
The addition EXCEPTIONS is used to define a list of non-class-based exceptions that can be triggered in the function module using the statements RAISE or MESSAGE RAISING. Exceptions defined in this way - as with formal parameters - are bound to the function module and cannot be propagated. If an exception of this type is triggered in a function module, and no return value has been assigned to it with the homonymous addition EXCEPTIONS of the CALL FUNCTION statement when the call was made, this leads to a runtime error.
Note
For new developments after release 6.10, SAP recommends that you work with class-based exceptions that are independent of the function module.
RFC is a technology which is used to access a functions (Modules) from
the remote systems.
If a function module is set as remote enabled which can be access from
the remote system via RFC.Eg: U can access the Remote enabled function modules in ur VB,Webdynpro,Java,Visual composer program.
A function module can be set as remote enabled by SE37->Go to ur FM->click the option Button "remote enabled".
But Normal function modules can not accessd from the remote system.
Good Example for RFC enabled function module is : BAPI(Business Application Programming Interface)
Note: All BAPIs are Remote enabled but not all remote enabled function modules are BAPI.
CALLING A FUNCTION MODULE:
1)In U ABAP Editor --> Click "Patter" ---> Selection Option Button "Call Function"
--> Write the Corresponding FM name --> Hit Enter
2)The appropriate import ,export Parameters will be displayed in ur editor
3)Pass the Values Here.
Also check these links.
Check this link:
http://help.sap.com/saphelp_erp2004/helpdata/en/9f/db988735c111d1829f0000e829fbfe/content.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/ef/d94b78ebf811d295b100a0c94260a5/frameset.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/43/41341147041806e10000000a1553f6/frameset.htm
Check this link:
http://help.sap.com/saphelp_erp2004/helpdata/en/9f/db988735c111d1829f0000e829fbfe/content.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/ef/d94b78ebf811d295b100a0c94260a5/frameset.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/43/41341147041806e10000000a1553f6/frameset.htm
See the following links:
http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/26/64f623fa8911d386e70000e82011b8/content.htm
reward if useful
regards,
Anji -
Error while calling the Mapping function module for BW Extraction
Hi
iam getting runtime error while calling the BW mapping function
The error description is as shown below.
Runtime Errors CALL_FUNCTION_UC_STRUCT
Except. CX_SY_DYN_CALL_ILLEGAL_TYPE
<b>Short text</b>
Type conflict during structure parameter transfer at CALL FUNCTION.
<b>What happened?</b>
Error in the ABAP Application Program
The current ABAP program "GP466CV1Y7W2VML1PJ3VB80KDOP" had to be terminated
because it has
come across a statement that unfortunately cannot be executed.
<b>Error analysis</b>
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_SY_DYN_CALL_ILLEGAL_TYPE', was
not caught in
procedure "CALL_MAPPING_FUNCTION" "(FORM)", nor was it propagated by a RAISING
clause.
Since the caller of the procedure could not have anticipated that the
exception would occur, the current program is terminated.
The reason for the exception is:
In the function "CMS_CB_BW_MAP", the STRUCTURE parameter "EXTRACT_DATA" is
typed in such a way
that only actual parameters are allowed, which are compatible in Unicode
with respect to the fragment view. However, the specified actual
parameter " " has an incompatible fragment view.
I am passing the EXTRACT_DATA parameter as specification LIKE with the associated type - corresponding structure
Please let me know how can i resolve this issue
Regards
LeonDear benarji ,
I'm having the same problem help me to correct . I have mentioned below as what error i got.
Runtime Errors CALL_FUNCTION_UC_STRUCT
Except. CX_SY_DYN_CALL_ILLEGAL_TYPE
Short text
Type conflict during structure parameter transfer at CALL FUNCTION.
What happened?
Error in the ABAP Application Program
The current ABAP program "ZDLROUTSTANDING_COPY" had to be terminated because it
has
come across a statement that unfortunately cannot be executed.
Error analysis
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_SY_DYN_CALL_ILLEGAL_TYPE', was
not caught in
procedure "PDF" "(FORM)", nor was it propagated by a RAISING clause.
Since the caller of the procedure could not have anticipated that the
exception would occur, the current program is terminated.
The reason for the exception is:
In the function "/1BCDWB/SF00000080", the STRUCTURE parameter "IT_WORKS_SF" is
typed in such a way
that only actual parameters are allowed, which are compatible in Unicode
with respect to the fragment view. However, the specified actual
parameter "SFTWORKS" has an incompatible fragment view.
Missing RAISING Clause in Interface
Program ZDLROUTSTANDING_COPY
Include ZDLROUTSTANDING_COPY
Row 876
Module type (FORM)
Module Name PDF
Trigger Location of Exception
Program ZDLROUTSTANDING_COPY
Include ZDLROUTSTANDING_COPY
Row 894
Module type (FORM)
Module Name PDF
Source Code Extract
Line SourceCde
864 ** i_logo = 'ENJOYSAP_LOGO'
865 * IT_LIST_COMMENTARY = I_LIST_COMMENTS1.
866
867 ENDFORM. "alv_top_of_page1
868 *&---------------------------------------------------------------------*
869 *& Form PDF
870 *&---------------------------------------------------------------------*
871 * text
872 *----------------------------------------------------------------------*
873 * --> p1 text
874 * <-- p2 text
875 *----------------------------------------------------------------------*
876 FORM pdf .
877
878 * *** Smartforms & PDF ***
879
880 ssfctrlop-no_dialog = 'X'.
881 ssfctrlop-preview = 'X'.
882 ssfctrlop-getotf = 'X'.
883 ssfcompop-tddest = 'ERP7'.
884 DATA : mcheck LIKE sy-subrc.
885 CLEAR : fm_name.
886
887 "Get Function module name for given smartform
888 CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
889 EXPORTING
890 formname = 'ZSFDLOS1'
891 IMPORTING
892 fm_name = fm_name.
893
>>>> CALL FUNCTION fm_name
895 EXPORTING
896 control_parameters = ssfctrlop
897 output_options = ssfcompop
898 mrefno = mrefno
899 * P_TITLE = MTITLE
900 IMPORTING
901 document_output_info = st_document_output_info
902 job_output_info = st_job_output_info " IT_OTF_DATA
903 job_output_options = st_job_output_options
904 TABLES
905 it_works_sf = sftworks
906 EXCEPTIONS
907 formatting_error = 1
908 internal_error = 2
909 send_error = 3
910 user_canceled = 4
911 OTHERS = 5.
912
913 IF sy-subrc NE 0.
Advance Thanks -
Error "pure virtual function call"
Hi,
Windows7, PCI-GPIB, NI-488.2 Version 3.1.1, Visual Studio 2010 C++ Application.
Randomly between 10 minuntes and 4 hours I get the error "pure virtual function call"
With the debbuger attached to the process in error I identified NI4882.dll as the source of the error.
Then I deinstalled NI-488.2 Version 3.1.1 and installed NI488.2 July 2000. Then my application runs without any error!
I tried to attach the source files which represents the interface between my application and the NI-4882 driver but it did not work for the C++ file.
Any help appreciated.
Best Regards
Walter
Attachments:
_GPIB.h 4 KBPart 2:
Int TGpib::Open (UShort adr, ULong timeoutMs)
if (mDevices.empty ())
Reset ();
Int ud = ibdev (mBoardID, adr, 0, TimeoutCode (timeoutMs), 1, 0);
if (ud < 0)
MCTraceLib (this, eTraceError, TFCTX, _T("open device '%d' failed"), adr);
GPIBError (-1, FCTX, true);
return -1;
SDevInfo devInf;
devInf.mGpibAdr = adr;
mDevices[ud] = devInf;
if (!DeviceClear (ud))
MCTraceLib (this, eTraceError, TFCTX, _T("no device on address '%d'"), adr);
GPIBError (ud, FCTX, true);
Close (ud);
return -1;
if (Send (ud, "*IDN?"))
Tstring s = String2Tstring (Enter (ud));
StringList l = Split (s, _T(','));
if (l.size () == 4)
mDevices[ud].mVendorName = l[0];
mDevices[ud].mModelName = l[1];
else
MCTraceLib (this, eTraceError, TFCTX, _T("no device on address '%d'"), adr);
GPIBError (ud, FCTX, true);
Close (ud);
return -1;
Local (ud);
return ud;
bool TGpib::Close (Int ud)
GPIBDevMap::iterator it = mDevices.find (ud);
if (it != mDevices.end ())
Local (ud);
Int stat = ibonl (ud, 0);
if ((stat & ERR) != 0)
MCTraceLib (this, eTraceError, TFCTX, _T("close device ud = '%d' failed"), ud);
GPIBError (ud, FCTX, true);
return false;
mDevices.erase (it);
return true;
return false;
bool TGpib::SetTimeout (Int ud, ULong timeoutMs)
Int stat = ibtmo (ud, TimeoutCode (timeoutMs));
if ((stat & ERR) != 0)
MCTraceLib (this, eTraceError, TFCTX, _T("set timeout device ud = '%d' failed"), ud);
GPIBError (ud, FCTX, true);
return false;
return true;
ULong TGpib::Timeout ()
return mTimeout;
bool TGpib::EnableSRQ (Int ud, HANDLE srqEvent)
if (srqEvent != INVALID_HANDLE_VALUE)
GPIBDevMap::iterator it = mDevices.find (ud);
if (it != mDevices.end ())
(it->second).mSRQEvent = srqEvent;
Int stat = ibnotify (mBoardID, SRQI, GpibSRQ, (void*)this);
if ((stat & ERR) != 0)
MCTraceLib (this, eTraceError, TFCTX, _T("on device ud = '%d' failed"), ud);
GPIBError (ud, FCTX, true);
return false;
MCTraceLib (this, eTraceDebug, TFCTX, _T("(SRQ)on device ud = '%d' success"), ud);
return true;
else
MCTraceLib (this, eTraceError, TFCTX, _T("srqEvent == INVALID_HANDLE_VALUE"));
return false;
bool TGpib::DisableSRQ (Int /*ud*/)
return true;
bool TGpib::Remote (Int ud)
Int adr;
ibask (ud, IbaPAD, &adr);
adr += 32; // Talk Address = Listen Address + 32
char cmdbuf[] = {MTA0, 0, LLO, UNT, UNL};
cmdbuf[1] = char(adr);
Int stat = ibcmd (mBoardID, &cmdbuf, 5);
if ((stat & ERR) != 0)
MCTraceLib (this, eTraceError, TFCTX, _T("on device ud = '%d' failed"), ud);
GPIBError (ud, FCTX, true);
return false;
mDevices[ud].mRemote = true;
return true;
bool TGpib::Local (Int ud)
mDevices[ud].mRemote = false;
Int stat = ibloc (ud);
if ((stat & ERR) != 0)
MCTraceLib (this, eTraceError, TFCTX, _T("on device ud = '%d' failed"), ud);
GPIBError (ud, FCTX, true);
return false;
return true;
char TGpib::SerialPoll (Int ud)
char pollChr;
Int stat = ibrsp (ud, &pollChr);
if ((stat & ERR) != 0)
MCTraceLib (this, eTraceError, TFCTX, _T("on device ud = '%d' failed"), ud);
GPIBError (ud, FCTX);
return false;
return static_cast<char> (pollChr & 0x9F); // VM QueryError eliminieren
bool TGpib::DeviceClear (Int ud)
Int stat = ibclr (ud);
if ((stat & ERR) != 0)
MCTraceLib (this, eTraceError, TFCTX, _T("on device ud = '%d' failed"), ud);
GPIBError (ud, FCTX, true);
return false;
return true;
bool TGpib::Trigger (Int ud)
Int stat = ibtrg (ud);
if ((stat & ERR) != 0)
MCTraceLib (this, eTraceError, TFCTX, _T("on device ud = '%d' failed"), ud);
GPIBError (ud, FCTX);
return false;
return true;
bool TGpib::Send (Int ud, const std::string& str)
Int stat = ibeot (ud, 1);
if ((stat & ERR) != 0)
MCTraceLib (this, eTraceError, TFCTX, _T("'EOI on' on ud = '%d' failed"), ud);
GPIBError (ud, FCTX);
return false;
stat = ibwrt (ud, (void*)str.c_str (), str.length ());
Long sent = ThreadIbcntl ();
if ((stat & ERR) != 0)
MCTraceLib (this, eTraceError, TFCTX, _T("on device ud = '%d' failed"), ud);
GPIBError (ud, FCTX);
return false;
if (sent != static_cast<Long> (str.length ()))
MCTraceLib (this, eTraceError, TFCTX, _T("only %d of %d characters sent"), sent, str.length ());
return false;
return true;
bool TGpib::SendNoEOI (Int ud, const std::string& str)
Int stat = ibeot (ud, 0);
if ((stat & ERR) != 0)
MCTraceLib (this, eTraceError, TFCTX, _T("'EOI off' on ud = '%d' failed"), ud);
GPIBError (ud, FCTX);
return false;
stat = ibwrt (ud, (void*)str.c_str (), str.length ());
Long sent = ThreadIbcntl ();
if ((stat & ERR) != 0)
MCTraceLib (this, eTraceError, TFCTX, _T("on device ud = '%d' failed"), ud);
GPIBError (ud, FCTX);
return false;
if (sent != static_cast<Long> (str.length ()))
MCTraceLib (this, eTraceError, TFCTX, _T("only %d of %d characters sent"), sent, str.length ());
return false;
return true;
std::string TGpib::Enter (Int ud)
std::string str = "";
char* buf = new char[2048];
Int stat = ibrd (ud, (void*)buf, 2047);
Long got = ThreadIbcntl ();
if ((stat & ERR) != 0)
MCTraceLib (this, eTraceError, TFCTX, _T("on device ud = '%d' failed"), ud);
GPIBError (ud, FCTX);
else
buf[got] = '\0';
str = buf;
// eventuelle LF und CR vom Ende entfernen!
string::size_type idx = str.find_last_of (k_CR);
str = str.substr (0, idx);
idx = str.find_last_of (k_LF);
str = str.substr (0, idx);
delete[] buf;
return str; -
Undefined symbol error when calling stat from extproc
Hi, I'm trying to call an external procedure written in C that calls stat, and am getting the following error. Note that we have other extprocs running, and we are on Oracle 8.1.7 on redhat 6.2...
SQL Error: ORA-06520: PL/SQL: Error loading external library
ORA-06522: /tmp/extproc.so: undefined symbol: stat
OS/compiler
Linux enchilada 2.2.14-5.0 #1 Tue Mar 7 21:07:39 EST 2000 i686 unknown
gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
Oracle version: 8.1.7
added following lines to file plsql/demo/extproc.c:
(at top of file)
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
(inside UpdateSalary function)
struct stat mystat;
stat("/tmp/foo", &mystat);
reported error:
SQL Error: ORA-06520: PL/SQL: Error loading external library
ORA-06522: /tmp/extproc.so: undefined symbol: stat
NOTE: when I remove call to stat, procudure runs properly.
nullI've talked to support, and this is supposedly a problem with Oracle not recognizing the library path. It is supposed to be fixed in 8.1.7.1.
-
Error while calling external library functions
Using visual studio I wrote the following code test javascript communication with external C/C++ libraries:
aabc.cpp :
extern "C" __declspec(dllexport) char* ESInitialize (TaggedData* argv, long argc);
extern "C" __declspec(dllexport) long ESGetVersion (void );
extern "C" __declspec(dllexport) void ESFreeMem (void* p);
extern "C" __declspec(dllexport) void ESTerminate (void );
extern "C" __declspec(dllexport) double AddNumbers(void);
double AddNumbers(double a, double b)
return a + b;
long ESGetVersion (void){
return 5;
And the code that I wrote in javascript is:
var obj = new ExternalObject("lib: aabc.dll");
alert(obj.version);
var aa = obj.AddNumbers(10, 20);
alert(aa);
It seems to me that it loaded successfully due to the output I am getting from the second statement. But I am getting error at the third statement where I called AddNumbers(10,20) function.
Somebody help me.
Thanks in advance,
sailuI have the same problem. This is my code:
extern "C" __declspec(dllexport) char* ESInitialize (TaggedData* argv, long argc);
extern "C" __declspec(dllexport) long ESGetVersion (void );
extern "C" __declspec(dllexport) void ESFreeMem (void* p);
extern "C" __declspec(dllexport) void ESTerminate (void );
extern "C" __declspec(dllexport) int AddNumbers(int a, int b);
extern "C" __declspec(dllexport) char* ESInitialize (TaggedData* argv, long argc)
return "AddNumbers_dd";
int AddNumbers(int a, int b)
return a + b;
long ESGetVersion (void){
return 17;
And the code that I wrote in javascript is:
var obj = new ExternalObject("lib: mydll.dll");
var x = obj.AddNumbers(10, 20);
alert(x);
The version of the library is correct, but when I try to use the function "AddNumbers" I receive this error "AddNumbers is not function".
What would be the correct procedure to call a function inside a DLL? -
Error while replacing IF statements with DECODE function in procedure
Hi All,
I have created a procedure which has nested IF statements. Now I want to replace the IF statements with DECODE functions to improve performance.
Procedure:
IF (var_int_sev = '0')
THEN
var_sev := '2';
ELSE
SELECT sev
INTO var_int_sev
FROM errorconfig
WHERE errorcode = var_errorcode;
var_sev := var_int_sev;
END IF;
I converted the above IF statement into DECODE function as mentioned below:
var_Sev := DECODE(var_int_sev,0,2,SELECT severity FROM errorconfig WHERE errorcode=var_ErrorCode)
But it throws below error at the select statement used inside DECODE.
Error(58,51): PLS-00103: Encountered the symbol "SELECT" when expecting one of the following: ( - + case mod new not null others <an identifier> <a double-quoted delimited-identifier> <a bind variable> avg count current exists max min prior sql stddev sum variance execute forall merge time timestamp interval date <a string literal with character set specification> <a number> <a single-quoted SQL string> pipe <an alternatively-quoted string literal with character set specification> <an alternativ
Can someone help me in converting the IF to DECODE in the above case. Also how can we use a select statement inside decode.instead of trying to rewrite all your code and hoping that the performance will be better, it's a better option to investigate and find out which part of your application is slow
read this:
When your query takes too long ... -
Error when call RFC Function module in R/3
Dear All,
We are trying to call RFC function module CBIF_GLM1_PROCESS_ORDER_READ (This is not a BAPI and also not released ) in R/3 from XI system.
we are facing the error "Error while lookup Exception during processing the payload. Error when calling an adapter by using the communication channel CC_PPPI_MES_RFC_Rcvr (Party: , Service: WCD_320, Object ID: 16563889b449328eac76caa6a3bc592e) XI AF API call failed. Module exception: 'error while processing the request to rfc-client: com.sap.aii.adapter.rfc.afcommunication.RfcAFWException: error while processing message to remote system:com.sap.aii.adapter.rfc.core.client.RfcClientException: failed to parse BAPI response due to: com.sap.aii.adapter.rfc.util.bapi.BapiException: Parameter with name RETURN not found.'. Cause Exception: 'com.sap.aii.adapter.rfc.afcommunication.RfcAFWException: error while processing message to remote system:com.sap.aii.adapter.rfc.core.client.RfcClientException: failed to parse BAPI response due to: com.sap.aii.adapter.rfc.util.bapi.BapiException: Parameter with name RETURN not found.'."
This is the first time we are doing this configuration.
Could you please let me know what woulbe the reason.read the original message
We are trying to call RFC function module CBIF_GLM1_PROCESS_ORDER_READ (This is not a BAPI and also not released ) in R/3 from XI system.
I am talking about the above Receiver RFC channel which you guys are using to call R/3 from XI. That where you need to change the commit parameter -
Error while calling FM : Function parameter "PE_LFA1" is unknown
Dear Experts,
I am trying to call a FM in my code, but somehow I am getting the following error .Please help !
My code is :
DATA : VENDOR_NO TYPE WSRS_SHVDST_RES-VENDOR_NO,
PE_LFA2 TYPE LFA1,
PE_ADDR2 TYPE BAPIADDR1,
PE_ADRPRT2 TYPE WISO_ADRPRT,
PE_RETURN2 TYPE WSRS_RETURN,
PE_LFM2 TYPE LFM1,
PE_LFB2 TYPE LFB1.
DATA:
node_vendor TYPE REF TO if_wd_context_node,
elem_vendor TYPE REF TO if_wd_context_element,
stru_vendor TYPE if_vendor_view=>element_vendor ,
item_vendorinp LIKE stru_vendor-vendorinp.
navigate from <CONTEXT> to <VENDOR> via lead selection
node_vendor = wd_context->get_child_node( name = if_vendor_view=>wdctx_vendor ).
get element via lead selection
elem_vendor = node_vendor->get_element( ).
get single attribute
elem_vendor->get_attribute(
EXPORTING
name = `VENDORINP`
IMPORTING
value = item_vendorinp ).
VENDOR_NO = item_vendorinp.
CALL FUNCTION 'WSRS_O_VENDOR_GET_DETAIL'
EXPORTING
PE_LFA1 = PE_LFA2
PE_ADDR1 = PE_ADDR2
PE_ADRPRT = PE_ADRPRT2
PE_RETURN =PE_RETURN2
PE_LFM1 = PE_LFM2
PE_LFB1 = PE_LFB2
IMPORTING
PI_VENDOR_NO = VENDOR_NO.
My Error is :
Note
The following error text was processed in the system HE6 : Function parameter "PE_LFA1" is unknown.
The error occurred on the application server hsdnt24s11_HE6_00 and in the work process 5 .
The termination type was: RABAX_STATE
The ABAP call stack was:
Method: ONACTIONFETCH_VENDOR_DETAILS of program /1BCWDY/A8XPPCRFM5I0CTSGLFDT==CP
Method: IF_WDR_VIEW_DELEGATE~WD_INVOKE_EVENT_HANDLER of program /1BCWDY/A8XPPCRFM5I0CTSGLFDT==CP
Method: INVOKE_EVENTHANDLER of program CL_WDR_DELEGATING_VIEW========CP
Method: IF_WDR_ACTION~FIRE of program CL_WDR_ACTION=================CP
Method: DO_HANDLE_ACTION_EVENT of program CL_WDR_WINDOW_PHASE_MODEL=====CP
Method: PROCESS_REQUEST of program CL_WDR_WINDOW_PHASE_MODEL=====CP
Method: PROCESS_REQUEST of program CL_WDR_WINDOW=================CP
Method: EXECUTE of program CL_WDR_MAIN_TASK==============CP
Method: IF_HTTP_EXTENSION~HANDLE_REQUEST of program CL_WDR_MAIN_TASK==============CP
Method: EXECUTE_REQUEST_FROM_MEMORY of program CL_HTTP_SERVER================CP
Please help.Hi,
I will ask this way, from where did you get list of parameters for this FM? Try using pattern to call this FM, than you will be proposed with correct interface.
EDIT:
After checking it in system you should switch IMPORTING and EXPORTING
CALL FUNCTION 'WSRS_O_VENDOR_GET_DETAIL'
EXPORTING
PI_VENDOR_NO = '99'
* PI_ACCEPT_NOTFOUND =
* PI_PURCH_ORG =
* PI_COMP_CODE =
IMPORTING
PE_LFA1 = lv
* PE_ADDR1 =
* PE_ADRPRT =
* PE_RETURN =
* PE_LFM1 =
* PE_LFB1 =
Best regards
Marcin Cholewczuk
Edited by: Marcin Cholewczuk on Apr 12, 2011 1:20 PM
Maybe you are looking for
-
CD-R drive or CD-RW drive is not recognized as a recordable device Windows 8
Hi I have Windows 8 installed and if I right click on my CD/DVD drive my Recording tab is missing in Properties. Basically I can read any CD/DVD but I cannot write a CD/DVD. I have 3 CD/DVD drives on my computer. I found the following solution on thi
-
Why does the scroll mouse freez when opening a pdf file in the browser?
My scroll mouse is freezing each time I opened a pdf file in different tab in the browser. When I close the tab (that open a pdf file), the scroll mouse back to normal. I use foxit to read a pdf file. I dont know if the problem occur when you use ado
-
Latency between audio and keyboard commands (10.9 and 10.10)
Apologies for the length of this. Don't pay too much attention to the precise details of my setup, because we're dealing with practically identical systems, where the problem occurs depending on the version of OSX. I'm on a 2010 Mac Pro, 2.66GHz 12-c
-
If you create a map on your Mac using Maps how do you get it onto your iPad Mini? Thanks
-
Hi I need help with a BAPI for the following scenario: We have created a Z field for VAT in ECC BP which gets replacated in CRM 5.0 The problem is when we update the field in ECC, table KNA1 shows that it is updated but it does not update in CRM. Als