Executing external command and program in background
Hi,
how to execute external command and external program in background.
please provide me some tips on the same.
while creating external command, what is the significance of "operating system command" and "parameters for operating system command".
Thanks,
Dinesh.
Hi,
You can define external commands using transaction code SM69.
External commands are commands which would be executed at your operating
system with or without parameters.
Operating system commands are those which you execute at OS level like
mkdir, cat, rm, cp, ls
Parameters are options that you add to os commands to get more functionalities.
like, < ls -l > : will give you a long listing of files where " l " is the parameter
< ls -lt > : will give you a long listing with last changed file at top where " lt " is the parameter.
You can mention these in SM69 when you define the external commands.
Now, in order to execute these in your background job. In the steps click on "external command" and give your command name in SM36 while creating your job.
" Points for solution ".
Thanks and Regards,
Sandeep.
Similar Messages
-
Error 801 when executing external command on
Hello,
I have installed CCMS agents and CCMS ping in my system yesterday. And activated the CPH BGD jobs for SL reporting purpse. Now I am getting an error "Error 801 when executing external command on" under class LC 2. I am not able to find any relevant note or help for this error. Any idea why this happens? How can I solve this? The details as follows:
EXTERNAL COMMAND: rc = Error 801
SXPG_COMMAND_EXECUTE(LONG):
<timestamp>: 20100310144206
COMMANDNAME: PING
ADDITIONAL_PARAMETERS: s-sapcae
LONG_PARAMS:
OPERATINGSYSTEM: AIX
TARGETSYSTEM: sapasmc1
DESTINATION:
SY-SUBRC: 801
Regards,
RajeevHi,
I have activated the trace level to 3 and now I get some messages in dev_cp which is as follows:
Trace file of control program (trace level 3)
< Function: BtcTrcInit> Function: main SAPXPG 720
2010-03-11 08-52-09 : Before BtcXpgDetach
> Function: BtcXpgDetach < Function: BtcXpgDetach Accept RFC connection from R/3 system
2010-03-11 08-52-09 : Before RfcAccept
2010-03-11 08-52-09 : RfcAccept returned OK
Begin of check_if_security_list
security check switched OFF
End of check_if_security_list
Begin of check_trace_option
End of check_trace_option
Install RFC call SAPXPG_START_XPG
Install RFC call SAPXPG_START_XPG_LONG
Install RFC call SAPXPG_END_XPG
Wait for RFC call SAPXPG_START_XPG or SAPXPG_START_XPG_LONG
2010-03-11 08-52-09 : Before first call of RFCDispatch
Security: rfcexec_logon_check
rfcexec_logon_check: logon_user = TT4WNUC
sapxpg_logon_check: rfc_attr.user = TT4WNUC
rfcexec_logon_check: client = 100
2010-03-11 08-52-09 : After first call of RFCDispatch
2010-03-11 08-52-09 : Before call of RfcClose (sequencing error)
2010-03-11 08-52-09 : After call of RfcClose (sequencing error)
< Function: main
2010-03-11 08-52-09 : End of SAPXPG: main
I think the issue is with the user TT4WNUC. Could you please let me know from where I can change this user?
Rajeev -
LC 2 Error 1003 when executing external command brconnect on (xpgid=0,con
Dear all,
I am getting error in sm21.Please suggest .
Details Page 2 Line 23 System Log: Local Analysis of clusa 1
Time Type Nr Clt User TCode Grp N Text
10:00:32 DIA 000 600 DDIC LC 2 Error 1003 when executing external command brconnect on (xpgid=0,convid=.)
Error 1003 when executing external command brconnect on (xpgid=0,convid=.)
Details
Recording at local and central time........................ 10.05.2010 10:00:32
Task...... Process User...... Terminal Session TCode Program Cl Problem cl Package
06952 Dialog work process No. 000 DDIC 1 SAPMSSY1 S Operation Trace SBTC
No documentation for syslog message LC 2 exists
Parameter
1 .... xpgid=0,convid=.
Technical details
File Offset RecFm System log Grp N variable message data
224 260640 LC 2 brconnect & &Error 1003 & & &
Regards,
KumarDear Juan,
Please find the logs.Please suggest.
dev_cp log
Trace file of control program (trace level 3)
< Function: BtcTrcInit> Function: main SAPXPG 720
2010-05-10--09-33-29 : Before BtcXpgDetach
> Function: BtcXpgDetach < Function: BtcXpgDetach Accept RFC connection from R/3 system
2010-05-10--09-33-29 : Before RfcAccept
2010-05-10--09-33-29 : RfcAccept returned OK
Begin of check_if_security_list
security check switched OFF
End of check_if_security_list
Begin of check_trace_option
End of check_trace_option
Install RFC call SAPXPG_START_XPG
Install RFC call SAPXPG_START_XPG_LONG
Install RFC call SAPXPG_END_XPG
Wait for RFC call SAPXPG_START_XPG or SAPXPG_START_XPG_LONG
2010-05-10--09-33-29 : Before first call of RFCDispatch
Security: rfcexec_logon_check
rfcexec_logon_check: logon_user =
sapxpg_logon_check: rfc_attr.user = BASIS
rfcexec_logon_check: client =
> Function: BtcXpgStartXpgLong
2010-05-10--09-33-29 : Beginning of BtcXpgStartXpgLong
> Function: BtcXpgStartXpgImportLong > Function: BtcXpgParam < Function: BtcXpgParam > Function: BtcXpgParam < Function: BtcXpgParam > Function: BtcXpgParam < Function: BtcXpgParam > Function: BtcXpgParam < Function: BtcXpgParam > Function: BtcXpgParam < Function: BtcXpgParam > Function: BtcXpgParam < Function: BtcXpgParam > Function: BtcXpgParam < Function: BtcXpgParam > Function: BtcXpgParam < Function: BtcXpgParam > Function: BtcXpgTable < Function: BtcXpgTable < Function: BtcXpgStartXpgImportLong
BtcXpgStartXpgLong: special_trace_flag = <6>
> Function: BtcXpgStartXpgInt > Function: BtcXpgItTransfer Content of source log table:
Line Text
<No StdOut/StdErr output reported>
Target log table is not identical to source
ItGetLine terminated with NULL
< Function: BtcXpgItTransfer > Function: BtcTrcReset < Function: BtcTrcReset Call mode: VIA RFC
Input arguments of BtcXpgStartXpg:
External program: brtools
tracecntl = : 6
Display of Parameter string switched off !!
Contents of control flags:
StdIn control flag: redirect StdIn
StdOut control flag: store StdOut output in memory
StdErr control flag: store StdErr output in memory
Trace control flag: unknown contents
Termination control flag: control program will wait for termination
> Function: BtcXpgCheck > Function: BtcXpgArgv
parameter number 1:
parameter number 2:
parameter number 3:
parameter number 4:
parameter number 5:
parameter number 6:
parameter number 7:
Total number of arguments scanned: 7
Argument argv[0]: brtools
< Function: BtcXpgArgv < Function: BtcXpgCheck > Function: BtcXpgSigInst < Function: BtcXpgSigInst > Function: BtcXpgStart Rearrange stderr to be collected in memory
Rearrange stdout to be collected in memory
Redirect stdin, read from NUL:
> Function: BtcTrcInit< Function: BtcXpgStartStart status of external program: external program successfully started
Id of external process: 0000005296
StdOut/StdErr collected in memory
Line Text
<No StdOut/StdErr output reported>
< Function: BtcXpgStartXpgInt> Function: BtcXpgStartXpgExport > Function: BtcXpgParam < Function: BtcXpgParam > Function: BtcXpgParam < Function: BtcXpgParam > Function: BtcXpgParam < Function: BtcXpgParam< Function: BtcXpgStartXpgExport
2010-05-10--09-33-29 : End of BtcXpgStartXpgLong
< Function: BtcXpgStartXpgLong
2010-05-10--09-33-29 : After first call of RFCDispatch
Wait for RFC call SAPXPG_END_XPG
2010-05-10--09-33-29 : Before second call of RFCDispatch
Security: rfcexec_logon_check
rfcexec_logon_check: logon_user =
sapxpg_logon_check: rfc_attr.user = BASIS
rfcexec_logon_check: client =
> Function: BtcXpgEndXpg
2010-05-10--09-33-29 : Beginning of BtcXpgEndXpg
> Function: BtcXpgStartXpgExport > Function: BtcXpgTable < Function: BtcXpgTable < Function: BtcXpgEndXpgImport > Function: BtcXpgEndXpgInt > Function: BtcXpgItTransfer Content of source log table:
Line Text
<No StdOut/StdErr output reported>
Target log table is not identical to source
ItGetLine terminated with NULL
< Function: BtcXpgItTransfer > Function: BtcXpgReadChild Output of external command not written to log !!
Process executing external program has terminated
< Function: BtcXpgReadChild > Function: BtcXpgEnd < Function: BtcXpgEnd Termination status of external program: no errors reported
StdOut/StdErr collected in memory
< Function: BtcXpgEndXpgInt > Function: BtcXpgEndXpgExport > Function: BtcXpgParam < Function: BtcXpgParam > Function: BtcXpgParam < Function: BtcXpgParam < Function: BtcXpgEndXpgExport
2010-05-10--09-33-30 : End of BtcXpgEndXpg
< Function: BtcXpgEndXpg
2010-05-10--09-33-30 : After second call of RFCDispatch
2010-05-10--09-33-30 : After call of RfcClose (wait)
< Function: main
2010-05-10--09-33-30 : End of SAPXPG: main
dev_xpg
Trace file of External Program (trace level 3)
< Function: BtcTrcInit> Function: BtcXpgStart External program: brtools -sid prd -F printout alert_log 20100401000000 0128
Regards,
Kumar -
Adobe AIR - java is not recognized as an internal or external command operable program or batch file
Hi,
I've done everything as in the HelloWorld tutorial but when i run this cmd: adt
it gives me the following error java is not recognized as an internal or external command operable program or batch file
I've installed the AIR runtime v2
Downloaded the SDK v2 and placed in D:\Www\air
Modified the path variable with D:\Www\air\bin
And then i open a new cmd console and simply write adt and gives me that error.
I've updated to the latest version of Java, but it did solve it.
But what's strage it's that the adl command work, but i'm not being able to pack my application.
I'm running Windows 7 on x64 platform.
Sincerely,
AlexI think the 32bit version will work, but it sounds like you'll need to add the Java bin folder to your system path. This is usually done by the Java installer, so I'm not sure what failed, did you run the installer located at www.java.com? Either way, this document might be able to help you out:
How do I set or change the PATH system variable
Add the Java "bin" folder to your path, you might also need to add the CLASSPATH.
Please let me know how it goes! -
Error 801 when executing external command
Dear all,
One of our PRODcution system (PI) system getting lot of below error in SM21.
00:07:17 sappip_PIP_03 BTC 038 400 BASIS LC 2 Error 801 when executing external command on (xpgid=0,convid=.)
00:07:17 sappip_PIP_03 BTC 038 400 BASIS LC 2 Error 801 when executing external command on (xpgid=0,convid=.)
00:07:17 sappip_PIP_03 BTC 038 400 BASIS LC 2 Error 801 when executing external command on (xpgid=0,convid=.)
00:07:17 sappip_PIP_03 BTC 038 400 BASIS LC 2 Error 801 when executing external command on (xpgid=0,convid=.)
00:07:17 sappip_PIP_03 BTC 038 400 BASIS LC 2 Error 801 when executing external command on (xpgid=0,convid=.)
00:07:17 sappip_PIP_03 BTC 038 400 BASIS LC 2 Error 801 when executing external command on (xpgid=0,convid=.)
00:07:17 sappip_PIP_03 BTC 038 400 BASIS LC 2 Error 801 when executing external command on (xpgid=0,convid=.)
00:07:17 sappip_PIP_03 BTC 038 400 BASIS LC 2 Error 801 when executing external command on (xpgid=0,convid=.)
00:07:17 sappip_PIP_03 BTC 038 400 BASIS LC 2 Error 801 when executing external command on (xpgid=0,convid=.)
OS : HP-UX , DB : Oracle and sapnetweaver2004s
Kindly advise and let me know what should i check SM49 ?
Thanks
Edited by: satheesh0812 on Aug 18, 2011 4:37 PMHi,
Perhaps the steps and solution in this thread could help.:
Error 801 when executing external command on
Regards,
Srikishan -
Error1006 when executing external command mv ...
This error concerns one of the several daily batch most critical. It was not detected before because even if there is an error the program won't never fail (we will review for sure this program).
The error appears at the call of an external command ZRENAME that corresponds to the OS command "mv" to rename a physical file on directory /interface.
This error seems corresponds to a timeout when the SAP system tries to call the mv command on the OS level ...
ERROR:
Time Type Nr Clt User TCode Priority Grp N Text
12:00:51 BTC 034 120 BUSER_HK20 LC 2 *Error1006 when executing external command mv on %_TCPIP_%1 (in=R,out=M,err=M,trc=0,trm=C. strtstat=,xpgid=0,convid=. msg:timeout during a)*
Thanks in advance for helpHello
Check note #1406178 Error 1006 occurs when you execute an external
Regards
Mark -
How to execute external command?
How to execute follow command and get its ouput on linux ?
$ grep processor /proc/cpuinfo | wc -lsabre150 wrote:
nitelia wrote:
String[] command = {"sh","-c","grep processor /proc/cpuinfo | wc -l"};
Process pro = Runtime.getRuntime().exec(command);
BufferedReader bf = new BufferedReader(new InputStreamReader(pro
.getInputStream()));
String x = null;
while ((x = bf.readLine()) != null) {
System.out.println(x);
This should workWow! So all one has to do is to use a shell to run the command! Isn't it a pity I did not give this solution in reply #3?You old sabre rattler! ;-) -
Sm_SolmanSID error 503 when executing external command
Hello,
On one of my managed system (my productive ECC),
I have the following error ,everyday at 20:00,
for the user SM_SolamnSID.
"Error 503 when executing external command on (xpgid=0,convid=.)"
The role ZSAP_SOLMAN_READ has been given to this user.
Could you tell me what I should perform to avoid this problem?
Regards,Hi Benoit,
Pls refer below threads for external error of 503,
Cannot run SM69 external commands from application server
Cannot run SM69 external commands from application server,&nbsp;SM21&nbsp;|&nbsp;ABAP,&nbsp;SAP,&nbs…
Regards
K.N -
I executed stopsap command and I rebooted server.Now I can not use startsap
I executed stopsap command and rebooted server.Now I can not use startsap
I use Oracle Database
System gives me message below:
Checking ORC Database
ABAP database is not avalable via R3Trans
ABAP Database ORC must be started on remote server
How can I solve this problem?
Thanks.Hello Cemil,
Could you save the output that the script startsap returns to a file and upload it somewhere. Also the startsap logs, the location of which you could see when you run the startsap script. You could use http://www.rapidshare.com/ to upload the files.
Regards,
Ventsi Tsachev
Technology Development Support (J2EE Engine)
SAP Labs, Palo Alto, Ca (USA) -
Disallow java program to execute external command
How to disallow java program to execute some external command.
Thank.It work by using custom policy, thank
Test.java
String command1[] = {"/bin/ls","-a,","-l"};
String command2[] = {"/bin/pwd"};
Runtime runtime = Runtime.getRuntime();
try{
Process p1 = runtime.exec(command1);
Process p2 = runtime.exec(command2); // AccessControlException: access denied
Scanner s1 = new Scanner(p1.getInputStream());
Scanner s2 = new Scanner(p2.getInputStream());
System.out.println(s1.nextLine());
System.out.println(s2.nextLine());
}catch(Exception ex){
ex.printStackTrace();
}java.policy
grant{
permission java.io.FilePermission "/bin/ls", "execute";
}Run
$java -Djava.security.manager -Djava.security.policy=java.policy Test
java.security.AccessControlException: access denied (java.io.FilePermission /bin/pwd execute) -
Executing external commands problem
Hi,
I have the following problem. I need to execute an external command on Linux (ffmpeg for example), but I want it to keep running even after my program exits.
Any ideas how this could be done? I thought Runtime.exec() is the way to go, but as soon as my program terminates, so does the execution.
Thanks in advance,
Stefan GueorguievThat was a good idea. Didn't know about nohup. I
tried it but it doesn't seem to work.
The command starts to execute but the program doesn't
continue its execution.
this is what I have so far
myCommand = "nohup " + myCommand;
ps9= Runtime.getRuntime().exec(myCommand);Where myCommand is a huge string with a lot of
command line options.
Any clues as to why that won't work?
And is there a native java way to do this, without
nohup.
Thanks,
StefanI tried to say that you should place that in a script file, and execute the script file from your application. (The script file can take arguments)
Description of nohup:
"Run a command immune to hangups, runs the given COMMAND with hangup signals ignored, so that the command can continue running in the background after you log out."
The & after the command means that the process should run in the background.
/Kaj -
Executing external commands(vbscript from network drive)
Hello All,
There is a client requirement where a certain number of steps need to be automated as a background job. The current manual process is such that first a vbscript is run, which creates a temporary folder and connects to a FTP location and pick data and dump it into this temporary folder on the network drive. Then a standard SAP program uses this file from the defined path and is executed. Then another vbscript is run, which basically archives the files to a different folder. These steps need to be automated.
Now we can use the cscript command in DOS to execute a .vbs script file. but this will not work with GUI_EXEC as this will fail in background. Will SXPG_COMMAND_EXECUTE/SXPG_CALL_SYSTEM fucntion modules work in this case ? I have not used them, so will they execute the command on the presentation server as I am guessing these work on the application server with the command created in SM69 ?
Thanks and Regards,
Sachinhi all,
You don't have to create a System Commands in transaction SM69 to be able to execute the VBScript or other script within the program in background mode.
When calling function "WS_EXECUTE" just add the "In Background Task" at the end to execute the VBscript or other scripts.
This extra line "In backround task" should not raise the exception
CL_GUI_FRONTEND_SERVICES======CP.
it should look like this.
data: commandline(1000).
commandline = 'P:\sapfrontend.vbs'.
call function 'WS_EXECUTE' in BACKGROUND TASK
exporting
commandline = commandline
program = 'WSCRIPT.EXE'
exceptions
frontend_error = 1
no_batch = 2
prog_not_found = 3
illegal_option = 4
others = 5. -
Executing external 16 bit programs
i want to execute some old 16 bit programs as back-end . I used process object and successfully executed some 32 bit programs. But when executing 16 bit programs it gives error as 'error in setting up environment' on windows. why is it happening and what changes are needed?try {
Process ps=Runtime.getRuntime().exec("cmd.exe /c star1.exe ");
OutputStream stdin=null;
stdin=ps.getOutputStream();
stdin.write("\n".getBytes());
stdin.close();
BufferedReader bos=new BufferedReader(new InputStreamReader(ps.getInputStream()));
String st=new String();
String ln=new String("");
while((ln=bos.readLine())!=null){
st+=ln;
st+="\n";
bos.close();
jt.setText(st);
catch (Exception e)
e.printStackTrace();
}yeah i tried on some other 16 bit programs and it executes them, so it seems thats not the problem. the error i mentioned was being given to the command line without cmd.exe /c some.exe So thats not the case either. I found
that it doesn't show output unless program is terminated. And if program is waiting for keyboard stroke it doesn't accept it through inputstream of java, which i have in my code. So problem for me now is how to get output form program while it is still running and how to give keyboard stroke input to program expecting such an input. i need a resource suggestion or any kind of help explaining these points. please help me out... -
How to execute external command from SAP
Hi gurus,
i need to execute an external command from a Sap (rel ECC.5.0) to a server UNIX (no SAP); precisely i have to write a file into a directory in unix server.
I see transaction SM49 and Sm69 but i don't know how can i use these features.
Please coul'd you help me or give me a documentation.
Thank's in advance
Maurizio Ortolani
email. [email protected]Hi Maurizio,
i do it in this way:
CONSTANTS: CMD_LS(50) VALUE 'ls -al /transfer/sap'.
DATA: BEGIN OF ITAB_LS OCCURS 0,
LINE(200),
END OF ITAB_LS.
CALL 'SYSTEM'
ID 'COMMAND' FIELD CMD_LS
ID 'TAB' FIELD ITAB_LS-SYS.
How do you write the file, via an UNIX-COMMAND than try the above call
with your command.
Another way is to write the file via OPEN DATASET ..., TRANSFER ... TO ..., CLOSE DATASET.
If you mean this i can give you an example.
Hope it helps.
Regards, Dieter -
Executing external commands (linux)
Hello everybody,
I have to execute a command from my java program but I have a problem, when I do something like this:
input has the complet path to a file I have, output has the complete path to the output file cert has the complete path to a digital certificate file keyfile has the complete path to the privatekey file.
command = "openca-sv sign -in " + input +".pem -out " + output +" -cert " +cert +" -keyfile " + key;
r = Runtime.getRuntime();
p = r.exec(comamnd);
p.waitFor();
System.out.println("output value:: " +p.exitValue());
InputStream stream = r.exec(command).getErrorStream();
int resl = stream.read();
System.out.println("result: " +resl);I know java is finding the command. But why it doesn't end the right way?
The output for this piece of code is something like this:
Output value: 1
result: 91
I know that the output value 1 means that the command didn't finished successfully, but what is the meaning of the other value? 91??
I have also tryed passing as arguments the names of the files without the complete path, but the result is the same.
I have tryed to execute the command from a console but it ends successfully. I have also tryed from a console passing all the files path and files without path and it worked. What could be the problem? AFAIK the command was written in C
Thanks for any help
JhonnyHello, thanks for your reply.
I know java is finding the command.
How do you know that? It's always best to assume that Runtime.exec doesn't know your PATH.Because when I give a bad path for the command java says in the console:
java.io.IOException: java.io.IOException: /usr/openca-sv: not found
at java.lang.UNIXProcess.<init>(UNIXProcess.java:143)
at java.lang.Runtime.execInternal(Native Method)
at java.lang.Runtime.exec(Runtime.java:566)
at java.lang.Runtime.exec(Runtime.java:428)
at java.lang.Runtime.exec(Runtime.java:364)
at java.lang.Runtime.exec(Runtime.java:326)
at Prueba.firmar(Prueba.java:125)
at Prueba.main(Prueba.java:56)
I know that the output value 1 means that the command didn't finished successfully, but what is the meaning of the other value? 91??
It's the ASCII value of the first character printed to stderr.ok.
I forgot to give another info, I'm working in eclipse 3.0
Now what do you think?
Thanks again,
Johnny
Maybe you are looking for
-
Got a very weird issue here and wondering if anyone has any other ideas. Basically over the wired NIC only, my Mac has started to send out large HTTP/HTTPS packets from the browser (> 1500 bytes) Captures show packet sizes from 2000 all the way to 40
-
The scanner is not working, how can I solve this
product hp photosmart D110 operating system windows 7 64-bit scanner is not working can´t copy/scann
-
All the information I can get for exporting bookmarks to IE tell me to go to bookmarks and click on organize bookmarks and then click on import-export. There is no such thing as import-export in my organize bookmarks.
-
Swi-prolog package is missing interface libraries for Java (jpl)
I want to embed Prolog in my Java app, but Arch's swi-prolog package doesn't seem to have the Java interface libraries (jpl) included. Anyone know why?
-
Hi All, I'm making an application for a uni assignment which uses JSP and in the index.jsp file i'm trying to use the import statement to reference a particular class which is located in the bank.util package, but I keep getting the following error: