Issue while calling COBOL program from Component Interface in PeopleSoft HRMS 9.2
In HRMS 9.2, I am facing problem while calling the remote call function through component interface. In GP_ABS_EESS_REQ (Navigation Main Menu > Self Service > Time Reporting > Report Time > Absence Request) component, we have “Forecast Balance” button as shown below:
This button checks for eligibility for leave being applied. While using component interface, it executes FORCAST_PB field change event peoplecode which contains a remote call to a cobol program as below:
RemoteCall("PSRCCBL", "PSCOBOLPROG", "GPPOLRUN", "NET_RETURN_CD", &NET_RETURN_CD, "NET_TXN_ID", &NET_TXN_ID, "NET_TXN_NUM", &NET_TXN_NUM, "NET_MSG_ID", &NET_MSG_ID, "NET_MSG_PRM_CNT", &NET_MSG_PRM_CNT, "NET_MSG_PRM1", &NET_MSG_PRM1, "NET_MSG_PRM2", &NET_MSG_PRM2, "NET_MSG_PRM3", &NET_MSG_PRM3);
I am getting following error while executing it via component interface:
(2,148) - Think-time PeopleCode event (RemoteCall), but a SQL update has occurred in the commit interval. (2,148) FUNCLIB_GP_ABS.FCST_PB.FieldFormula Name:Abs_ForecastExec PCPC:5311 Statement:60
Called from:GP_ABS_EESS_REQ.GBL.DERIVED_ABS_SS.FCST_PB.FieldChange Statement:26
(91,34) - Error changing value. {Z_GP_ABS_EESS_REQ_CI.FCST_PB} (91,34)
(18,2) - Data being added conflicts with existing data. (18,2)
(91,37) - Error saving Component Interface. {Z_GP_ABS_EESS_REQ_CI} (91,37)
After commenting out this line of code, I was able to save the CI successfully. But I need to execute this statement before saving CI so that I can check the eligibility for leave being applied. Can anyone help me on this issue?
When I tried to read the file using `CAT -vt <filename>`, I could see that the file contains special characters such as ^M and ^I. This may be because of the file transfer mode(but I transferred in ASCII mode, still the special characters where appearing).
I opened a VI editor and pasted the same script. Save the file, tried to run the script, It was working fine.
I still didn't get how the special characters appeared. I used notepad++ as my editor.
Similar Messages
-
Error while calling java program from ABAP
Hi Experts,
We are trying for RFC inbound scenario.
We followed the below blog
/people/gregor.wolf3/blog/2004/08/26/setup-and-test-sap-java-connector-outbound-connection
We are working with SAP JCO 3.0.2
We are getting the error : 'STFC_CONNECTION' could not be found in the server repository.
After I run the Java server program if I execute the RFC destination directly from SM 59 it is showing successful messages.
If I stop the java program then this RFC is failing. Based on this we concluded that RFC to Java connection is working fine.
But as mentioned in blog if we call the RFC Destination from ABAP program it is giving the below error,
'STFC_CONNECTION' could not be found in the server repository.
If we test the RFC destination using RFC_TRUSTED_CHECK standard FM we are getting the below error.
'RFCPING' could not be found in the server repository.
We create the RFC destination of Type : TCP/IP as exactly mention in the blog.
Please help us in resolving this issue.
Thanks
PrincePabi,
Using the RFC connection,we can establish a link between Java and SAP.
Afterwards,hope we can call Java program from ABAP.
Below is the sample piece of code to establish RFC connection(link) between Java and SAP.
DATA: REQUTEXT LIKE SY-LISEL,
RESPTEXT LIKE SY-LISEL,
ECHOTEXT LIKE SY-LISEL.
DATA: RFCDEST like rfcdes-rfcdest VALUE 'NONE'.
DATA: RFC_MESS(128).
REQUTEXT = 'HELLO WORLD'.
RFCDEST = 'JCOSERVER01'. "corresponds to the destination name defined in the SM59
CALL FUNCTION 'STFC_CONNECTION'
DESTINATION RFCDEST
EXPORTING
REQUTEXT = REQUTEXT
IMPORTING
RESPTEXT = RESPTEXT
ECHOTEXT = ECHOTEXT
EXCEPTIONS
SYSTEM_FAILURE = 1 MESSAGE RFC_MESS
COMMUNICATION_FAILURE = 2 MESSAGE RFC_MESS.
IF SY-SUBRC NE 0.
WRITE: / 'Call STFC_CONNECTION SY-SUBRC = ', SY-SUBRC.
WRITE: / RFC_MESS.
ENDIF.
Regards,
Sree -
Calling Cobol program from PL/SQL
What is the caling convention for PL/SQL to call a Cobol program?
You cannot do it directly from PL/SQL. PL/SQL is.. well, kind of abstract ito the actual platform it runs on. PL/SQL cannot talk directly to operating system. It cannot (itself) do socket calls, file I/O calls, use the printer, etc.
<p>
All this has to be done using a lower level implementation library - like UTL_FILE for example that wraps internal C written modules that does file I/O. PL/SQL can call these to do I/O on its behalf. Ditto for wrappers like UTL_TCP and others.
<p>
There is no default wrapper for calling external processes from PL/SQL. It can however be done indirectly using the external procedure (EXTPROC) feature, or using Java to do it.
<p>
The latter is the easiest. You create a Java stored proc that can access the operating system and run external programs and commands. You punch a big hole in the Oracle Java security to allow this Java stored proc access to the operating system. Next you create a PL/SQL wrapper for this Java proc which then in turn can be called from PL/SQL.
Just remember that you MUST secure this hole you've punched into Oracle security. If any Oracle user can access this PL/SQL wrapper, they can hack, compromise, trash or simply destroy your entire Oracle account on that server.
Here is the basic code:
create or replace and compile Java Source named "OSCommand" as
-- java: OS COMMAND
-- descr: Executes an Operating System Command using the JAVA RTS
-- IN parameter: os command to execute (including fully qualified path names)
-- OUT parameter: returncode [\nstring]
-- where string a max of 32000 chars of the output of the command
-- (note that \n is used as separators in the string)
-- returncode=-1 Java RTS error occurred (e.g. command does not exist)
-- returncode=255 o/s command failed (e.g. invalid command params)
import java.io.*;
import java.lang.*;
public class OSCommand{
public static String Run(String Command){
Runtime rt = Runtime.getRuntime();
int rc = -1;
try{
Process p = rt.exec( Command );
int bufSize = 32000;
int len = 0;
byte buffer[] = new byte[bufSize];
String s = null;
BufferedInputStream bis = new BufferedInputStream( p.getInputStream(), bufSize );
len = bis.read( buffer, 0, bufSize );
rc = p.waitFor();
if ( len != -1 ){
s = new String( buffer, 0, len );
return( s );
return( rc+"" );
catch (Exception e){
e.printStackTrace();
return( "-1\ncommand[" + Command + "]\n" + e.getMessage() );
show errors
create or replace function OSexec( cCommand IN string ) return varchar2 is
-- function: OS EXEC
-- descr: PL/SQL wrapper for the Java OSCOMMAND stored proc
language JAVA
name 'OSCommand.Run(java.lang.String) return java.lang.String';
show errors
-- Punching a hole into the Java VM sandbox. The following must be run as
-- sysdba. Substitute SCOTT with the applicable schema that owns the OSEXEC
-- and OSCOMMAND stored procs.
declare
SCHEMA varchar2(30) := 'SCOTT';
begin
dbms_java.grant_permission(
SCHEMA,
'SYS:java.io.FilePermission',
'<<ALL FILES>>',
'execute'
dbms_java.grant_permission(
SCHEMA,
'SYS:java.lang.RuntimePermission',
'writeFileDescriptor',
dbms_java.grant_permission(
SCHEMA,
'SYS:java.lang.RuntimePermission',
'readFileDescriptor',
commit;
end;
-- example: running the Unix/Linux date command to get the current date and time
SQL> select OSexec('/usr/bin/date') as STDOUT from dual;
STDOUT
Fri Sep 1 08:09:34 SAST 2006
1 row selected.
SQL>Edited by: Billy Verreynne on Sep 4, 2008 6:26 PM to make the code snippet readable with the new Jive forum s/w. -
Execute immediate issue while calling a procedure from plsql block
Hi all,
I have the following simple code ,my execute immediate is not working(I am pasting the error below as well)
CREATE OR REPLACE PROCEDURE CALL_RAHUL_PROCEDURES
AS
strng varchar2(1000);
BEGIN
for i in (select proc_name,flag,id from rahul_procedures order by id)
loop
if (i.flag = 'Y')
then
strng := 'exec '||i.proc_name||'(''rahul'')';
dbms_output.put_line(strng);
execute immediate strng;
end if;
end loop;
END CALL_RAHUL_PROCEDURES;
Error:
Connecting to the database INQDWD.
ORA-00900: invalid SQL statement
ORA-06512: at "ETLADMIN.CALL_RAHUL_PROCEDURES", line 17
ORA-06512: at line 2
exec RAHUL_HELLO_WORLD2('rahul');
Process exited.
Disconnecting from the database INQDWD.
data in rahul_procedures table :
Proc_name flag Id
RAHUL_HELLO_WORLD N 1
RAHUL_HELLO_WORLD2 Y 2
RAHUL_HELLO_WORLD N 3
RAHUL_HELLO_WORLD3 N 4
please help.
Regards
RahulMac_Freak_Rahul wrote:
Well I have to call 26 procedures one by one and the names of the procedures would be in a table'rahul_procedures' Which is 100% wrong.
Data is stored in tables, program code is stored in procedures or view defintions.
http://en.wikipedia.org/wiki/Data_%28computing%29
>
Data vs programs
Typically, different files are used to store programs vs data. Executable files contain programs; all other files are data files.
>
So you have just violated the primary distinction between data and program code.
I dont find anything strange in my question,Only because you do not appear to know what you are doing or the difference between data and program code.
http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:1943344500346351703
>
ugh, what an ugly "design". I can see your life will be full of performance issues, strange 'bugs', and other unpleasant side effects. I mean, it all looks "so cool", but it'll be a nightmare to maintain and enhance.
but then you have the issue of binds, which will be intractable. You'd have to know the binds at compile time, but you have hidden all of your sql in a magic generic table - so you cannot possibly know your binds at compile time.
I would suggest you discard all of this code (I am DEAD SERIOUS) and start over. This is a bad idea from the get go. Or at least do me a favor and do not use plsql (you make it look like a good database implementation, but it isn't)
The objective here is to store SQL Statements in a Table(a sql repository) and just call the required SQL from the application using the sqlid using the sql_execute procedure. ...
CHANGE YOUR OBJECTIVE.
How about this for a good objective:
the objective here is to store sql statement in a plsql routine (a sql repository, you call a procedure and we run sql) and just call the required sql form the applicatoin using the STORED PROCEDURE
sorry, can I think of hacks to get you going? yes, application contexts come to mind - a fixed number of binds comes to mind. Am I going to work them out? No - it is the wrong way to approach a database application. -
Issue while submitting concurrent program from OAPage
Hi Team,
In OApage in One LOV field is der. From that LOV we need to select one concurrent program and click next button. while clicking on the next button i am getting error like below
The data that defines the flexfield on this field may be inconsistent.
Inform your system administrator that the segment referred to by the flexfield bind variable
:$FLEX$.PFCPA_JOB_NUMBER.ID:NULL could not be found.
Make sure this variable references the segment or value set name of a prior segment
in the flexfield structure. This flexfield bind variable is in either a WHERE clause in a table-validated value set,
or in a default value for one of the segments of this flexfield.
Please help me in this issue.
Thanks,
RajashekarHi Team,
In OApage in One LOV field is der. From that LOV we need to select one concurrent program and click next button. while clicking on the next button i am getting error like below
The data that defines the flexfield on this field may be inconsistent.
Inform your system administrator that the segment referred to by the flexfield bind variable
:$FLEX$.PFCPA_JOB_NUMBER.ID:NULL could not be found.
Make sure this variable references the segment or value set name of a prior segment
in the flexfield structure. This flexfield bind variable is in either a WHERE clause in a table-validated value set,
or in a default value for one of the segments of this flexfield.
Please help me in this issue.
Thanks,
Rajashekar -
Hi,
I know there are many questions in this subject but none of them help to resolve the issue I am currently facing.
Below is the signature of C Function from DJVULibre added in .NET code
[DllImport("C:\\Program Files\\DJVULIBRE\\LIBDJVULIBRE.dll", CharSet=CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
private unsafe static extern int ddjvu_page_render(IntPtr page, ddjvu_render_mode_t mode, IntPtr pagerect,
IntPtr renderrect,
IntPtr pixelformat,
ulong rowsize,
[Out][MarshalAs(UnmanagedType.LPArray)]byte[] imagebuffer);Below is how I am calling this function in the c# codebyte* buffer = (byte *)Memory.Alloc(nSize);
try
IntPtr ptr1 = (IntPtr)Memory.Alloc(Marshal.SizeOf(prect));
Marshal.StructureToPtr(prect, ptr1, false);
IntPtr ptr2 = (IntPtr)Memory.Alloc(Marshal.SizeOf(rrect));
Marshal.StructureToPtr(rrect, ptr2, false);
byte[] array = new byte[nSize];
fixed (byte* p = array) Memory.Copy(buffer, p, nSize);
ddjvu_page_render(page, ddjvu_render_mode_t.DDJVU_RENDER_MASKONLY, ptr1, ptr2, fmt, (ulong)stride, array);
finally
Memory.Free(buffer);
}call to ddjvu_page_render in above code is throwing "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
Prior to this post I must have tried all the option could find in various blogs.
Appreciate any help, is almost a day I am clueless, your timely help could save my jobThanks Viorel, below is the definition of original C function
DDJVUAPI int
ddjvu_page_render(ddjvu_page_t *page,
const ddjvu_render_mode_t mode,
const ddjvu_rect_t *pagerect,
const ddjvu_rect_t *renderrect,
const ddjvu_format_t *pixelformat,
unsigned long rowsize,
char *imagebuffer );below is how the code is calling this function in C#, the in pointers are all valid pointer I checked in debugging window byte* buffer = (byte *)Memory.Alloc(nSize);
try
IntPtr ptr1 = (IntPtr)Memory.Alloc(Marshal.SizeOf(prect));
Marshal.StructureToPtr(prect, ptr1, false);
IntPtr ptr2 = (IntPtr)Memory.Alloc(Marshal.SizeOf(rrect));
Marshal.StructureToPtr(rrect, ptr2, false);
byte[] array = new byte[nSize];
fixed (byte* p = array) Memory.Copy(buffer, p, nSize);
ddjvu_page_render(page, ddjvu_render_mode_t.DDJVU_RENDER_MASKONLY, ptr1, ptr2, fmt, (ulong)stride, array);
finally
Memory.Free(buffer); -
Error while calling ABAP program from Data Services
Hi All,
We have a ABAP program which accepts two parameters 1] a date 2] a string of comma separated ARTICLE numbers .
We have used a ABAB transform in ABAP dataflow which refers this ABAP program.
If I pass a string of 6 articles as second parameter the job executes successfully
But if i pass 9 articles as follows
$GV_ITEM_VALUES='3564785,1234789,1234509,1987654,1234567,2345678,3456789,4567890,5456759';
i get the following error
ABAP program syntax error: <Literals that take up more than one line are not permitted>.
The error occurs immediately after ABAP dataflow starts, ie even before the ABAP job gets submitted to ECC
I am using BODS 4.2 . The datatype of $GV_ITEM_VALUES is varchar(1000).
The ABAP program that gets generated by the DS job has the following datatype for this parameter
PARAMETER $PARAM2(1000) TYPE C
Is there a different way to pass string characters to ABAP transform in data services?
I have attached the screen shot of trace log and error
Regards,
SharayuHi Sharayu,
The error your getting is because the literals exceeds more than 72 characters.
It seems that the length of the string is exceeding more than 72 character.
Can you check the following in ECC GUI
Go to Transaction SE38=>Utilities=>Settings=>ABAP Editor=>Editor=> Downwards -Comp.Line Length(72).
The checkbox which defines length 72 must be clicked so the error is coming. Can you uncheck the checkbox and then try passing the parameter $GV_ITEM_VALUES using the BODS job
Regards
Arun Sasi -
Hi Experts,
We are facing a issue while calling a Automated activity from BPM process, the process gets suspended and the BPM logs says "Process XYZ suspended, A technical error during invocation: Could not invoke service reference name fdhueoegghejietyhsjk6886 Component name ABC " We have already checked the mapped service reference and provider system. Gone through the below link, but no help.
http://http://wiki.scn.sap.com/wiki/display/TechTSG/Sending+a+message+from+SAP+NetWeaver+BPM+process+to+PI+fails+via+automated+activity?original_fqdn=wiki.sdn.sap.com
Any pointers or suggestions to fix up this issue will be highly appreciated. Thanks in advance.
Regards,
Mohit JajuThe details/ID in NWDS Service Reference must exactly match the SOA configuration. Sometimes it's possible you have changed the reference or the group itself and something changed to become mismatched.
It's possible they don't match - but the SG itself will show green in NWA since the service exists and responds on the target system. Does the ID listed in the error match what is shown in the NWDS project?
regards, Nick -
Error, while calling driver program for Smartforms
Hi All,
I am getting a error while running DRIVER PROGRAM of smart form.
both driver program and smart form running successfully without any error while executing separately. But
while calling Smart Form from driver program. it is giving error as :-
*Events are already defined.*
Description :- You tried to define events for a section, but a section with
events is already active. You are not allowed to nest events.
Regards,
Pavan.MThis is nothing to do with coding, this coz of error is from smartforms....
Regards,
Pavan.M -
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 -
Issue while deleting a row from a table
Dear friends,
i am getting an issue while deleting a row from a table, pls check screen shots , the first screen shot is my table contents
when i delete 2 row , the second row is deleting properly like below screen shot
but i want like below screen shot , Col1 contents should be like pic 1 . could any one pls let me know how to solve this issue.
Thanks
VijayaHi vijaya,
please try this code, it will help you.
DATA : it_rows TYPE wdr_context_element_set,
wa_rows LIKE LINE OF it_rows.
DATA lo_nd_table TYPE REF TO if_wd_context_node.
DATA lt_table TYPE wd_this->elements_table.
DATA lo_el_table TYPE REF TO if_wd_context_element.
DATA ls_vbap TYPE wd_this->element_table.
DATA: ld_index TYPE i.
data value TYPE sy-index.
* navigate from <CONTEXT> to <table> via lead selection
lo_nd_table= wd_context->get_child_node( name = wd_this->wdctx_table ).
* @TODO handle non existant child
* IF lo_nd_table IS INITIAL.
* ENDIF.
* get element via lead selection
* alternative access via index
* lo_el_table = lo_nd_table->get_element( index = 1 ).
* @TODO handle not set lead selection
IF lo_el_table IS INITIAL.
ENDIF.
* navigate from <CONTEXT> to <table> via lead selection
lo_nd_table = wd_context->get_child_node( name = wd_this->wdctx_table ).
* @TODO handle non existant child
* IF lo_nd_table IS INITIAL.
* ENDIF.
lo_nd_table->get_static_attributes_table( IMPORTING table = lt_table ).
* @TODO handle non existant child
* IF lo_nd_table IS INITIAL.
* ENDIF.
** @TODO compute values
** e.g. call a model function
* navigate from <CONTEXT> to <table> via lead selection
lo_nd_table = wd_context->get_child_node( name = wd_this->wdctx_table ).
* @TODO handle non existant child
* IF lo_nd_table IS INITIAL.
* ENDIF.
** @TODO compute values
** e.g. call a model function
it_rows = lo_nd_table>get_selected_elements( ).
CALL METHOD lo_nd_table->GET_LEAD_SELECTION_INDEX
RECEIVING
INDEX = value .
LOOP AT it_rows INTO wa_rows.
CALL METHOD wa_rows->get_static_attributes
IMPORTING
static_attributes = ls_table.
READ TABLE lt_table INTO ls_table WITH KEY col1 = ls_table-col1.
ld_index = value.
ENDLOOP.
CLEAR : ls_table-col2,
ls_table-col2.
MODIFY lt_table INDEX ld_index FROM ls_table.
lo_nd_table->bind_table( new_items = lt_table set_initial_elements = abap_true ). -
How to call java program from ABAP
Hi Experts,
My requirement is to call java programs from ABAP. For that i have set up SAP JCO connection by using this link http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/739. [original link is broken] [original link is broken] [original link is broken] Connection gets sucessfully. After this how to call java program from ABAP as per our requirement. Please help me out.
Also i tried this way also.. but while executing the DOS Command line appear & disappear in few seconds. So couldnt see the JAVA output. Please help me out to call java programs in ABAP..
DATA:command TYPE string VALUE 'D:Javajdk1.6.0_20 injavac',
parameter TYPE string VALUE 'D:java MyFirstProgram'.
CALL METHOD cl_gui_frontend_services=>execute
EXPORTING
application = command
parameter = parameter
OPERATION = 'OPEN'
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
bad_parameter = 3
file_not_found = 4
path_not_found = 5
file_extension_unknown = 6
error_execute_failed = 7
OTHERS = 8.
Thanks.This depends on the version of your Netweaver Java AS. If you are running 7.0, you will have to use the Jco framework. The Jco framework is deprecated since 7.1 though. If you want to build a RFC server in 7.1 or higher, it is adviced that you set it up through JRA.
Implement an RFC server in 7.0:
http://help.sap.com/saphelp_nw04/helpdata/en/6a/82343ecc7f892ee10000000a114084/frameset.htm
Implement an RFC server in 7.1 or higher:
http://help.sap.com/saphelp_nwce72/helpdata/en/43/fd063b1f497063e10000000a1553f6/frameset.htm -
Exception while calling a BDC from webdynpro
Hi All,
I am getting an exception 'Exception condition "CNTL_ERROR" raised' while calling a BDC from the WD application, though i am calling the transaction in background mode. The statment which was throwing the exception was a create object statement in the function module DOC_DISPLAY_INITIALIZE. Can u please tell me, what is the reason for this?
Thanks in Advance,
Laxmikanth>
amit saini wrote:
> hi ,
> The message "CNTL_ERROR" appear when you are using some of the SAP enjoy transaction code like ME21N / ME22N / ME23N.
>
> This are bugs cause by the earlier version of the SAPGUI. It usually occurs when you are running a BDC session
> for a transaction that has 'fancy' screen elements like table controls ortabstrips. These work fine in the foreground, but not so well in the background.
>
>
> To solve it, goto OSS and apply the SAPGUI's latest front end patch to your PC.
>
> rgds,
> amit
There is a mixture of accurate information here.
This is NOT a SAPGUI problem. It can not be fixed with a newer version fo the SAPGUI. It is caused by transactions that were created with Enjoy Controls. Enjoy controls are not the table control or the tabstrip. They are controls that used ActiveX components on the desktop as part of the SAPGUI - like the ALV Grid, the Tree, the ABAP Editor, etc.
You can not use call transaction/BDC against such transactions in the background or in WDA because there is no connection to the frontend to create instances of these controls. These transactions with the enjoy controls should have appropriate BAPIs or Enterprise Services that you should call instead in order to make data updates or creations.
For instance see SAP Note 304122 that discusses this issue for transaction MIGO. -
Running COBOL programs from java
I am on a project at the moment where we want the client-server to be written in Java on Solaris Sparc UNIX machines. The thing is we want the server to start a COBOL program and the output from the COBOL program will be the reply to the client. Is this possible and if so how?
Any help gratefully received
Chris
PS We are not looking to buy expensive toolsJNI would be necesssary if you want to call cobol routines from your java program or vice versa. If you want to communicate with another process then JNI is not really necessary. Indeed it is a very difficult API to master and unnecessary complexity. Well the way I was thinking was that your cobol program can accept input from standard input and write to standard output (if there is such a thing in cobol). You can then read the inputstream of the process which you spawned using runtime.getRuntime.exec("mycobolprogram) mechanism...This should work fairly realiably. I am not sure if this is what you are looking for but give it a try by writing a small cobol program which outputs "Hello World" to standard output and then try reading it from a test java program...
-
Hi,
we have written some code in c and we need to call those codes from an interface written in java. How do I do it ?
so far as i heard, there is something call java native interface...is that true...how do i call up the c programjava native interface...is that true...how do i call up the c program
JNI Tutorial
JNI Tutorial (ZIP)
(found by the Magic of Google: JNI Tutorial)
or Runtime.exec if you c program is a complete program.
Maybe you are looking for
-
My Time Capsule is constantly flashing yellow and it will not preform periodic back-ups. When I tell it to from the icon on the top task bar, it freezes MacBook...every time. I am now dragging files from internal HD to TC found in Finder after hardwi
-
MSI 865PE Neo2-V and 1GB RAM stick, compatibility?
Hi all, I've just bought a new mainboard, the MSI 865PE Neo2-V... I read that supports up to 3GB of DDR333, so now I want to buy 2 new RAM modules. These modules has the specific: - 184 memory pins - 1GB RAM - PC2700 DDR 333MHz - 2.5 Module - No
-
Solution to Airport Extreme Base Station + Airport Express networking probs
I've been investigating this for 3 straight days after inadvertently destabilizing my network. There are tons of posts discussing a variety of issues, all of which seem related. My goal here is to provide links to other relevant posts and explain wha
-
Get apk infromation using c#
apk file (android application package file) : equivalent to executable (exe) files on windows aapt.exe : A command line tool which comes with android sdk in order to fetch information of an apk file (It obviously has other usages) An apk file has a n
-
Gf4MX440-VTP TV-Out doesnt work.
I've just buyed a dual gf4 mx440 with 64Mb and TV-Out, TV-In. When I installed it I began working with two monitors witout problems, but when I've tried to connect de TV-Out, it doesnt word. I've checked a hundred times the cable connecting, and it's