CALL A JAVA PROGRAM FROM ABAP -- NEED HELP
Hi all,
Can somebody tell me how to call a java xml code from an ABAP program? First let me know if at all, is it possible to call a java program from SAP that is from an ABAP executable progam?
Please suggest me in this. All your inputs in this is valuable to me and highly appreciated.
Thanks in advance,
Vaishnavi Varadarajan
Hi,
Previous explanation i gave is not correct.
ABAP web services expose the function modules outside R/3, so that other technologies like Java can consume that webservice and read the data in R/3 using the function module.
For your requirement, create a Java web service to read the XML. Consume this webservice in ABAP. This way you can read the XML from ABAP.
Regards
Srikanth KV.
Similar Messages
-
Calling Java program from ABAP
Hi All,
my ABAP program downloads one file to one folder. Then one Java program is running to Encrypt the file.
Now , they want to call the JAVA program in ABAP, so that they can encrypt the file before downloading.
Is it possible to call a Java program from ABAP ? If Yes, please give me the detailed procedure.
Thanks
pabiPabi,
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 -
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 -
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 -
Hi,
I would like your help in identifying a mechanism in calling a Java Program from an ABAP program. The requirement is that I need to pass enough parameters(possibly in a single object like a <i>table</i>) and fetch that in a Java Program residing in a jar in the J2EE engine. The possibility of this java file interpreting this incoming object and also be able to return something to ABAP which can eventually be printed on the screen needs to be known.
I also would like to validate an assumption of mine which is that, the jar(the receipient java file) file needs to be put under the directory
"\usr\sap\<i>SystemID</i>\<i>instancenumber</i>j2ee\deploying\lib"
Appreciate your time and effort in helping me with this.
Regards,
Sam.i am not sure about
I also would like to validate an assumption of mine which is that, the jar(the receipient java file) file needs to be put under the directory
"\usr\sap\SystemID\instancenumberj2ee\deploying\lib"
but for your case what you could do is, on the java side get developed a jsp page which will receive data and use the jar to proces and return the results as xml. once thats done.
from abap you can use cl_http_client class to call this jsp page to pass parameters and get the processed results from jsp page.
Raja -
Call a Java Function From Abap
Hi, I need to call a java function from ABAP, I have a WAS 640 to deploy the module.
I have found this tutorial...
[ABAP calls Java via RFC|/people/thorsten.franz3/blog/2008/11/21/abap-calls-java-via-rfc-1-introduction]
The problem is that it uses a newer version of WAS and it implements EJB 3.0 wich only works on Java 5, but my WAS has java 1.4.2.
Anyone knows how to adapt this Blog to a WAS 640 version ?
Or Perhaps there is another way of doing this, maybe publishing my function as a web service.
Regards.
Mariano.Why don't you expose your Java functionality as a Web Service and consume it in ABAP program. That should be much easier and the web service can be used in other places as well.
Best regards,
Ritesh Chopra -
Call Java Program from ABAP Program
Dear all,
In our scenario, we need to let ABAP call services provided by a standalone Java program. From online help I found some overview introduction and I'd make the called program a registered program in a RFC with type "T" (TCP/IP Connection). Can anybody give some concrete documentation? A step-by-step guide would be greatly appreciated.
Best Regards
Jeromecheck this thread
Re: Calling Java API from ABAP using JCo -
Calling a JAVA program from an RFC in SAP ABAP
Hi All,
I have an RFC for a specific purpose in which I need to call a JAVA program whose path is given to me. Please suggest a possible process to do the same .
Your's <removed by moderator> responce is highly appreciated.
Thank you.
Edited by: Thomas Zloch on Nov 26, 2010 1:33 PM - priority normalisedHi Priyanth,
I am not sure but check this out
If you are using any commands , check if that command is configured in SM69 -
Calling a Java Program from another
Hi,
I am putting together a Java program which will launch other Java programs.
I was thinking of doing this by calling unix scripts from my java program by getting an instance of the Runtime object and then calling the exec method with the script name.
I am just wondering what is the best practice when doing this? i.e., dealing with timeout issues, and errors in the scripts etc.
I have read this article, which is quite good: http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=1
Is there any code available on the web that deals with all of the basic error scenarios?
Is it good practice to use a java program to call another java program? Or is there a better way of doing this?
The main reason I am using java is because I am most familiar with it and I need to connect to a database as well and do some manipulation of results returned.
Any thoughts or suggestions would be much appreciated.
Message was edited by:
LondonJavaDevThanks Prometheuzz
Is the main difference between your suggestion and
using the Runtime.getRuntime().exec(cmd) way of doing
things is that in the former both eill run as the
same process (Thread) but in the second scenario the
.getRuntime().exec(cmd) will start a separate new
thread?
Many ThanksCorrect. But you can create a sort of wrapper class for A which implements Runnable and stuff it in it's own thread. If you're dealing with Java code only, I advise you to create threads yourself instead of letting your OS handle them.
Here's a demo:
class Foo {
public static void main(String[] args) {
(new Thread(new ARunner())).start();
B.main(null);
class ARunner implements Runnable {
public void run() {
A.main(null);
class A {
public static void main(String[] args) {
try {
Thread.sleep(3000);
} catch (InterruptedException e) { /* ... */ }
System.out.println("A");
class B {
public static void main(String[] args) {
System.out.println("B");
}Of course, you can create a wrapper for B as well. -
Calling one java program from another
Hello,
How can I start another java program from one? Lets
say I want Second.java to start by calling it from
First.java. How do I do it? The two programs are given
below. Any help is appreciated.
Thanks,
Amanda
First.java
import java.io.*;
import java.lang.reflect.*;
public class First
public static void main(String[] args)
Process theProcess=null;
System.out.println("Hello World from First.java!");
String second=new String("Second.java");
//System.load(second);
//Runtime.getRuntime().load(second);
try
theProcess=Runtime.getRuntime().exec( "Second.java"
System.out.println("after exec");
catch (IOException ioe)
System.out.println(">>IOException thrown in
First.java while calling
Second.java."+ioe.getMessage());
Second.java
public class Second
public static void main(String[] args)
System.out.println("Hello World from Second.java!");
}Thanks, warnerja
What if Second.java is on a remote machine i.e.
First.java and second.java are on different machines?
Will I have to use RMI?Well, you'd have to do some kind of remote invocation. Depends on what kinds of apps house the classes. There are all kinds of ways - web services, servlets, RMI, (maybe others...)
That's a totally different question than what you originally posted, and would have been very relevant to say so in the first place. -
Requesting an overview of how to call a Java program from EBS.
Hi,
I am an experienced Java developer in the middle of an implementation of EBS 12g. I am very new to EBS and I'm not sure where to start on this. I need to provide users the ability to call a Java program that prints a report from EBS. I would be grateful if somebody would outline the general approach that should be used. Links to documentation/tutorials are appreciated also.
Thanks,
MikeHi,
I need to provide users the ability to call a Java program that prints a report from EBS. Are you referring to Java concurrent programs? If yes, please see the documents referenced in this thread.
Java Concurrent Programs
Java Concurrent Programs
Regards,
Hussein -
Calling a java program from a perl CGI
The perl program takes form data, does stuff with it, writes it to a file, and then calls a java program to encrypt it, and email it.
When I telnet to the server, I can run the java program using:
java CryptoMail.class [email protected] data.txt
The java program uses jar files which are defined in the Classpath in an .sh script in the etc/profile.d/ directory.
When I run the perl cgi from the web, it doesn't work. I figured that it wasn't getting the classpath defined because the user wasn't actually logging in so I tried it with java -classpath etc...
Any ideas???
I tried the following:
==================
$cmdtorun='/usr/j2sdk1.4.0_02/bin/java CryptoMail $email $file';
system($cmdtorun);
==================
and also tried variations of the following:
==================
/usr/j2sdk1.4.0_02/bin/java -classpath .:/home/sites/site1/web/cgi-bin/activation.jar:/home/sites/site1/web/cgi-bin/mail.jar /home/sites/site1/web/cgi-bin/CryptoMail [email protected] /home/sites/site1/web/cgi-bin/wellsfargo.txt
==================>
Any ideas???Write a script file that explicitly paths everything.
Test it by setting the class path and path to nothing in the environment and seeing if it works.
Redirect errors from everything to a log file.
Then run the script from your perl program. Verify that it did not return any errors. Verify there are no errors in the log file. -
Can I call a Java program from a SQL Server Trigger?
Hello,
I want to encrypt some data in a database column in SQL Server. Today I am using java code to encrypt the value and store it in the database using JDBC.
Now I want to use a VB client to store the encrypted value in the SQL Server DB. Since the encryption is handled by a java class, can I write a trigger in SQL Server that while inserting the raw data, calls the java class for encrypting the value and then inserts the encrypted value into the column?
In general, is it possible to call a java class from a SQL Server trigger?
Thanks
BipinHere are 3 examples of code for insert, update and delete:
CREATE TRIGGER [PLI_INSERT_TRIGGER] ON [dbo].[PLI]
FOR INSERT
AS
Declare @cmd sysname, @code sysname, @list sysname
Select @code = PLI_K_COD, @list = PLI_K_LISTINO from inserted
Set @cmd = 'java mirrorDb.Copy PLI INSERT ' + @code + ' ' + @list
EXEC master..xp_cmdshell @cmd
CREATE TRIGGER [PLI_UPDATE_TRIGGER] ON [dbo].[PLI]
FOR UPDATE
AS
Declare @cmd sysname, @code sysname, @list sysname
Select @code = PLI_K_COD, @list = PLI_K_LISTINO from inserted
Set @cmd = 'java mirrorDb.Copy PLI UPDATE ' + @code + ' ' + @list
EXEC master..xp_cmdshell @cmd
CREATE TRIGGER [PLI_DELETE_TRIGGER] ON [dbo].[PLI]
FOR DELETE
AS
Declare @cmd sysname, @code sysname, @list sysname
Select @code = PLI_K_COD, @list = PLI_K_LISTINO from deleted
Set @cmd = 'java mirrorDb.Copy PLI DELETE ' + @code + ' ' + @list
EXEC master..xp_cmdshell @cmd
you must go "sql server entreprise manager" right click on the table you want to add triggers and select: all activities, manage triggers.
You have 3 examples: for an insert, for an update and for a delete
ON [dbo].[PLI] specify the table on which you want to setup trigger.
FOR DELETE, INSERT, UPDATE specify the event.
The Declare statement create the variables in which I want to put some values to pass to the java program, for example which table, which event, which key fields.
the "Select @code = PLI_K_COD, @list = PLI_K_LISTINO from inserted" set the variables with the value of the columns of the table I am interested to read from my java program, for example the variable @code receive the value of the column pli_k_kod (is the key) of the table PLI.
The "Set @cmd = 'java mirrorDb.Copy PLI DELETE ' + @code + ' ' + @list " prepared the variable @cmd with the java command followed by the package.classname and parameters.
The EXEC launch the command to the operating system.
Daniele -
Calling a java class from abap/bsp
Hello,
I am still learning ABAP. I need to call a java class (a chart drawing library) from ABAP or from a BSP. What is the best way to do that ?
Basically I would create an object, pass data from a database and then get some binary data from that object (an image).
Hope you can help me
Sincerely,
Olivier Matt/people/gregor.wolf3/blog/2004/08/26/setup-and-test-sap-java-connector-outbound-connection
check the above link and this forum too
Call Java Class and Methods from ABAP -
Trying to run Java programs I wrote, need help~
I wrote some very simple programs for image viewing with flickrj and other external libraries. But I don't know what would I do to make it run on other people's computers ( only with JRE installed, I can run it only because I have eclipse, can't even get it to work under windows command prompt). I have tried exe4j trial version, but it was really a mess. Please give me some advices~~~
Thank you very much~Thx so much, i got it to work...is it possible for me
to export it to a .jar file? and just double click it
will run?Yes. Consult the Java Tutorial on using jars, and especially learn about the attribute "Main-Class" in manifest files. I also suggest you read the jar documentation here:
http://java.sun.com/j2se/1.5.0/docs/guide/jar/index.html
and how do you suppress all console output?
TIAEither don't create it, or redirect it. Some operating systems provide a null device that can be used as a destination that acts as a data sink that will "eat" the data.
See the setOut and setErr methods in java.lang.System class.
Maybe you are looking for
-
After downloading iTunes 11, my calendar on my iMac (OS X 10.6.8) does not sync with iCal on my iPad 2. Why is this?
-
How do I uninstall SyncMate Server, Activity Monitor shows it still there after appzapper uninstall of SyncMate app? Killing in AM proceeds with a SyncMate Server startup again?? Mavricks, MacbookPro, typical config of everything and standard busines
-
Edit WebHelp Skin Buttons?
On the Toolbar tab in the WebHelp Skin Editor, can the default buttons (Contents, Index, etc.) in The Main and Nav Bar lists be rearranged or deleted? When I select one of these buttons, the delete button ( - minus button) is disabled. And there seem
-
9c error (no usb ports used)
I tried booting up my pc and I keep getting 9c errors, even though I unplugged and replugged all the wiring in my motherboard (MSI z97 Gaming 5). Even after removing all the usb connectors to my motherboard I keep getting 9c errors, there are no usb
-
SPSiteCollection.Add in WCF service for FBA web application throws "user not found"
Hi, I use SharePoint 2010 SP2. Programmatically I can create a FBA-based web application and now I want to add a new site collection ("/") subsequently. Everything is done in a WCF web service with its own application pool and web application. In ext