Skip to Content
author's profile photo
Former Member

Related to application server

Hi All,

When a file name with directory path is entered in the selection screen, ho w to check if the user actually has permissions to create an output file in the given directory(Application server) .Is there any function module or other logic to find out where user have permission to create a file in directory.Please do needful help.

Thanks

Abhi....

Add comment
10|10000 characters needed characters exceeded

5 Answers

  • author's profile photo
    Former Member
    Posted on May 08, 2007 at 09:18 AM

    Hi Shaik,

    You can do the same i.e. uploading the file in the application layer directly thru Transaction.

    use the transactions.

    CG3Y and CG3Z

    Also,

    there are two function modules you can use....

    C13Z_FRONT_END_TO_APPL to go from presentation to application server

    C13Z_APPL_TO_FRONT_END to go from app server to front end

    And about verifying whether you have the authorization for that folder in the applocationlayer or not I thin is related with the authorization objects.

    Regards,

    Jayant.

    Add comment
    10|10000 characters needed characters exceeded

  • author's profile photo
    Former Member
    Posted on May 08, 2007 at 09:17 AM

    when you use OPEN DATASET

    The system automatically checks authorizations for the

    operation. If the authorization check fails, a runtime

    error occurs. You can prevent this by checking the

    authorization in advance using the function module

    AUTHORITY_CHECK_DATASET.

    Add comment
    10|10000 characters needed characters exceeded

  • author's profile photo
    Former Member
    Posted on May 08, 2007 at 09:15 AM

    i think u have to check Authorization Object-

    S_DATASET

    Definition

    Authorizations for accessing files from ABAP/4 programs.

    You use this object to assign authorizations for accessing operating system files (with the ABAP/4 key word OPEN DATASET, READ DATASET, TRANSFER and DELETE ). This key word can also be used to assign the authorization for using operating system commands as a file filter.

    In ABAP/4 programs, you perform the authorization check with the function module AUTHORITY_CHECK_DATASET.

    Defined fields

    The object consists of the following fields:

    ABAP/4 program name: Name of the ABAP/4 program that contains the access. You can restrict the file access to a few known access programs.

    Activity: Possible values:

    33: Normal file read

    34: Normal file write or deletion

    A6: Read file with filter (operating system command)

    A7: Write to a file with filter (operating system command)

    File name: Name of the operating system file. Here, you can restrict the accessible files.

    Regards

    Prabhu

    Add comment
    10|10000 characters needed characters exceeded

  • author's profile photo
    Former Member
    Posted on May 08, 2007 at 09:15 AM

    Hi shaik,

    1. one thing is we can initially use open filename for output command.

    2. if sy-subrc <> 0,

    then based upon the value of sy-subrc (just see f1 help on this command and its return values),

    we can know whether rights are there or not.

    regards,

    amit m.

    Add comment
    10|10000 characters needed characters exceeded

  • author's profile photo
    Former Member
    Posted on Aug 22, 2007 at 09:09 AM

    Hi Abhi,

    The easiest way is to use function module RZL_READ_DIR_LOCAL it full fills all your requirements. See example below.

    • check existence file path

    CALL FUNCTION 'PFL_CHECK_DIRECTORY'

    EXPORTING

    directory = '/tmp'

    WRITE_CHECK = 'X' "check for write access

    FILENAME = 'filename'

    EXCEPTIONS

    PFL_DIR_NOT_EXIST = 1

    PFL_PERMISSION_DENIED = 2

    PFL_CANT_BUILD_DATASET_NAME = 3

    PFL_FILE_NOT_EXIST = 4

    OTHERS = 5.

    IF sy-subrc <> 0.

    • invalid directory

    MESSAGE ID 'EA' TYPE 'E' NUMBER '334'

    WITH p_path.

    ENDIF.

    Do not forget to tick the box "Uppercase/Lowercase" if you test the function module with transaction SE37 (Unix is case sensitive).

    I hope this is what you are looking for.

    Best Regards,

    Dennis

    Add comment
    10|10000 characters needed characters exceeded