Skip to Content
author's profile photo Former Member
Former Member

UNIX command and SXPG_COMMAND_EXECUTE

HI all,

Let me explain my requirement:

I need to move all files from source dir to target.

For that i need to read source dir and target dir from selection screen.

I wrote UNIX command as follows:

"mv -f /common/home/edw/parsekb/b2/* /common/home/edw/parsekb/b1"

where i m specifying the src and target dir.

so i need to pass the parmeters as srcdir and targetdir?

how should i do it?

i knw i need to create a command in SM69,then what will be the parameters in that case?

and how to call that from ABAP ?

if anybody give me explaination w.r.t. coding steps then that will be gr8.

but pls specify SM69 steps and ABAP both

Thanx in advance

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

4 Answers

  • author's profile photo Former Member
    Former Member
    Posted on Nov 18, 2005 at 04:42 AM

    You can use ARCHIVFILE_SERVER_TO_SERVER function module instead of writing your own code.

    Cheers.

    Sanjay

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Nov 18, 2005 at 04:52 AM

    Hi h k,

    1. I suppose a new command has already been created

    thru SM69.

    The Unix Command is MV (with additional required parameters )

    So in SM69

    a) Just Write mv ( in the field for os command)

    b) Leave blank the field of parameters for os command

    c) Tick the checkbox for 'Additional parameters allowed'

    2. Now the question for passing additional parameters :

    a) u must be having 2 variables / parameters

    one for source dir, and other for target dir.

    b) concatenate them in one another variable

    eg. concatenate srcdir trgdir TD into myvar.

    3. Now when calling the FM,

    there is one optional parameter

    ADDITIONAL_PARAMETERS

    Pass the new variable MYVAR into this parameter.

    HOPE This Helps

    Regards,

    Amit Mittal.

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Nov 18, 2005 at 05:00 AM

    Hi!

    1. Create your shell script your_shell_script.sh:

    src=$1

    dst=$2

    mv -f $src $dst

    2. Create your command Z_YOUR_COMMAND using SM69:

    - Operating system command: /bin/sh (the path to your shell interpretator)

    - Parameters for operating system command:

    /home/sap/bin/your_shell_script.sh (the path to your shell script)

    - Set "Additional parameters allowed" checkbox

    3. Call your command from ABAP:

    data:

    param type sxpgcolist-parameters.

    status type extcmdexex-status,

    exitcode type extcmdexex-exitcode,

    it_log type table of btcxpm.

    p_src = '/common/home/edw/parsekb/b2/*'.

    p_dst = '/common/home/edw/parsekb/b1'.

    concatenate p_src p_dst into param separated by space.

    CALL FUNCTION 'SXPG_CALL_SYSTEM'

    EXPORTING

    COMMANDNAME = 'Z_YOUR_COMMAND'

    ADDITIONAL_PARAMETERS = param

    IMPORTING

    STATUS = status

    EXITCODE = exitcode

    TABLES

    EXEC_PROTOCOL = it_log

    EXCEPTIONS

    NO_PERMISSION = 1

    COMMAND_NOT_FOUND = 2

    PARAMETERS_TOO_LONG = 3

    SECURITY_RISK = 4

    WRONG_CHECK_CALL_INTERFACE = 5

    PROGRAM_START_ERROR = 6

    PROGRAM_TERMINATION_ERROR = 7

    X_ERROR = 8

    PARAMETER_EXPECTED = 9

    TOO_MANY_PARAMETERS = 10

    ILLEGAL_COMMAND = 11

    OTHERS = 99.

    if sy-subrc <> 0.

    *TODO: add your error handling logic

    endif.

    Regards,

    Maxim.

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Nov 18, 2005 at 08:09 AM

    Hi Why are u worrying for this u try this

    Program it will solve ur problem.

    u have to pass the Unix command as paramter.

    in selection screen give this and try

    <b>mv -f /common/home/edw/parsekb/b2/* /common/home/edw/parsekb/b1</b>

    REPORT ZTEST line-size 400

    no standard page heading.

    selection-screen begin of block ucmd with frame title text-001.

    parameters: unixcom like rlgrap-filename. " ...SAP Interface file

    selection-screen end of block ucmd.

    data: begin of tabl occurs 500,

    line(400),

    end of tabl.

    data: lines type i.

    *----


    start-of-selection.

    refresh tabl.

    call 'SYSTEM' id 'COMMAND' field unixcom

    id 'TAB' field tabl[].

    describe table tabl lines lines.

    loop at tabl.

    write:/01 tabl-line.

    endloop.

    skip 2.

    if lines = 0.

    write:/ 'NO Occurances were found'.

    else.

    write:/ 'Command was successfully executed' color col_total.

    write:/ 'Number of entries in Search' color col_total,

    lines color 6.

    endif.

    regards

    vijay

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.