File-XI-SAP Control/Audit Report

Hi,
Any suggestions on the best way to obtain a control report when inputting data into SAP via XI.
For example. Input file contains five records each containing a field with a value of 100. I need a summary report containing a line to say - Total value = 500. Pretty simple requirement when just using ABAP to read a file and process it, but XI.....
I think there are several options but I would like some advice. Options as I see it are :
1. Pass whole file as a single payload into SAP, and process almost as I would have done using traditional ABAP logic.
2. Individual IDOC's for each record then have a separate report to evaluate the IDOC's. In which case I would need a way of recording which IDOC's came from which file....
3. Use a BPM to trigger the control report either pre or post file processing.
Any practical advice greatly appreciated.
Nigel

Hi Nigel,
>>>>3. Use a BPM to trigger the control report either pre or post file processing
in my opinion this one is the most flexible, why?
because this way you separate standard communication logic from the audit reporting
if your audit reporting needs will change you don't have to touch the standard communication just change
the "pre or post file processing"
but obviously it also depends on your scenario:
number of messages, BPM usage, etc... 
Regards,
michal

Similar Messages

  • SAP User Audit Report

    Hi Expert,
    I want to download SAP user audit report through USMM.
    but whenever i run USMM and click on system measurement its goes on background job.
    I need this report in PDF format. plz help 

    Hi Kumar
    1.  Once you’re all system measurement are getting over collect those data in to one system.
           Refer the PPT 's which provided the steps
    https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&cad=rja&uact=8&ved=0CC8QFjAD&url=https%3A%2F%2Fsupport.s…
    2 Transaction code  LAW perform a consolidation of user records and then send the information to SAP direct or email
    SAP Library - License Administration Workbench
    BR
    SS

  • Funcation module to send attachment file to sap user

    hello Friends,
    I want to send an external file to sap user when report is run
    is ther any funcation module to send attachment file to sap user
    plz reply
    thanx in adv.
    Bhaskar

    Check these FMs,
    SO_NEW_DOCUMENT_ATT_SEND_API1
    SO_DOCUMENT_SEND_API1
    SO_WIND_ATTACHMENT_LIST_API1
    Thanks and Regards

  • File Screening Audit Report does not contain any data : report statistics is empty

    Hi ,
     I have enabled File screen audit and Record file screening activity in auditing database options in file server 2008. 
    I am getting details of file screen audit in Event log  , But incident report file screen audit report does not contain any value.
    Getting report for each incident of file screen audit  , But it does not contain any data in report statistics.
    Data available in scheduled report of file screen audit.. not available in incident report only..
    Please assist...
    Thanks,
    Vasanth.M
    Thanks, Vasanth.M.

    Please note that, If the Record file screening activity in the auditing database check box is cleared, the File Screening Audit Reports will not contain any information. To configure file screen audit, I would refer you on this informative
    technet library :
    https://technet.microsoft.com/en-us/library/cc754540.aspx
    Carlo

  • Urgent: DBrefresh error 354 while creating control file, oracle9i, SAP R3

    Hi experts,
    I have created trace file in Source system and moved the same to target system and edited and then while executing the trace file to create control file the following eeror is coming
    my trace file is like this. . .
    STARTUP NOMOUNT
    CREATE CONTROLFILE SET DATABASE "P47" RESETLOGS ARCHIVELOG
    --  SET STANDBY TO MAXIMIZE PERFORMANCE
        MAXLOGFILES 255
        MAXLOGMEMBERS 3
        MAXDATAFILES 336
        MAXINSTANCES 50
        MAXLOGHISTORY 8168
      '/oracle/P47/sapdata9/btabd_63/btabd.data63',
      '/oracle/P47/sapdata9/stabi_27/stabi.data27',
      '/oracle/P47/sapdata9/btabi_122/btabi.data122',
      '/oracle/P47/sapdata9/stabd_28/stabd.data28',
      '/oracle/P47/sapdata9/btabi_123/btabi.data123',
      '/oracle/P47/sapdata9/btabd_64/btabd.data64',
      '/oracle/P47/sapdata9/btabi_124/btabi.data124'
    CHARACTER SET WE8DEC
    i run command like this:
    SQL> @/oracle/P47/saptrace/usertrace/control.sql
    ORACLE instance started.
    Total System Global Area          1249618992 bytes
    Fixed Size                                     732208 bytes
    Variable Size                             788529152 bytes 
    Database Buffers                       459022446 bytes
    Redo Buffers                                1335296 bytes
    <b>354</b>
    when I press 'enter' again SQL prompt is comming
    Please help
    rgds

    Hi markus,
    thanks for reply . .
    control files are not created. . . .
    alertSID logs shows as follows
    orap47> tail -f alert_P47.log
    ARCH shutting down
    Thu Dec 13 13:01:51 2007
    ARC0: Archival stopped
    Thu Dec 13 13:01:51 2007
    ARC1: Archival stopped
    Thu Dec 13 13:01:54 2007
    ARCH: Archiving is disabled
    Shutting down archive processes
    Archiving is disabled
    Archive process shutdown avoided: 0 active
    <b>When @/oracle/saptrace/usertrace/control.sql command given in sepearate SQL window</b>
    Thu Dec 13 13:03:37 2007
    Starting ORACLE instance (normal)
    Disable cache advisory with old cache parameters
    Thu Dec 13 13:03:37 2007
    WARNING: EINVAL creating segment of size 0x000000004b800000
    fix shm parameters in /etc/system or equivalent
    LICENSE_MAX_SESSION = 0
    LICENSE_SESSIONS_WARNING = 0
    SCN scheme 3
    LICENSE_MAX_USERS = 0
    SYS auditing is disabled
    Starting up ORACLE RDBMS Version: 9.2.0.4.0.
    System parameters with non-default values:
      processes                = 80
      sessions                 = 96
      timed_statistics         = TRUE
      shared_pool_size         = 704643072
      enqueue_resources        = 8000
      control_files            = /oracle/P47/sapdata1/cntrl/cntrlP47.dbf, /oracle/P47/sapdata2/cntrl/cntrlP47.dbf, /oracle/P47/sapdata3/cntrl/cntrlP47.dbf
      db_block_buffers         = 56033
      db_block_checksum        = FALSE
      db_block_size            = 8192
      compatible               = 9.2.0
      log_archive_start        = TRUE
      log_archive_dest         = /oracle/P47/saparch/P47arch
      log_buffer               = 1048576
      log_checkpoint_interval  = 0
      db_files                 = 354
      db_file_multiblock_read_count= 8
      log_checkpoints_to_alert = TRUE
      control_file_record_keep_time= 30
      dml_locks                = 2500
      row_locking              = always
      replication_dependency_tracking= FALSE
      transactions_per_rollback_segment= 20
      rollback_segments        = PRS_0, PRS_1, PRS_10, PRS_11, PRS_12, PRS_13, PRS_14, PRS_2, PRS_3, PRS_4, PRS_5, PRS_6, PRS_7, PRS_8, PRS_9
      transaction_auditing     = FALSE
      remote_os_authent        = TRUE
      db_domain                = world
      parallel_max_servers     = 20
      hash_join_enabled        = FALSE
      background_dump_dest     = /oracle/P47/saptrace/background
      user_dump_dest           = /oracle/P47/saptrace/usertrace
      core_dump_dest           = /oracle/P47/saptrace/background
      optimizer_features_enable= 9.2.0
      sort_area_size           = 2097152
      sort_area_retained_size  = 0
      db_name                  = P47
      open_cursors             = 800
      optimizer_mode           = choose
      btree_bitmap_plans     = FALSE
      pushjoin_predicate     = FALSE
      optimizer_index_cost_adj = 10
      newinitial_join_orders = FALSE
      optimpeek_user_binds   = FALSE
    PMON started with pid=2
    DBW0 started with pid=3
    LGWR started with pid=4
    CKPT started with pid=5
    SMON started with pid=6
    RECO started with pid=7
    Thu Dec 13 13:03:39 2007
    ARCH: STARTING ARCH PROCESSES
    ARC0 started with pid=8
    ARC0: Archival started
    ARC1 started with pid=9
    Thu Dec 13 13:03:39 2007
    ARCH: STARTING ARCH PROCESSES COMPLETE
    Thu Dec 13 13:03:39 2007
    ARC0: Thread not mounted
    Thu Dec 13 13:03:39 2007
    ARC1: Archival started
    ARC1: Thread not mounted
    rgds

  • Bug in Inventory Audit Report before upgradation from SAP B1 2004B to 2005B

    Sir,
    We upgraded SAP Business One 2004B to SAP Business One 2005B on 26/05/2007. Earlier we were having SAP B1 2004 in which therer was no Inventory Audit Report function in Inventory Reports. After upgradation if we take Inventory Audit Report, the closing quantity of the stock is shown is correct but the value for negative stock quantity is wrong for period before upgradation i.e.upto 26/05/2007. The difference is exactly double of the stock value of that item. The closing quantity and value is OK if we run the report for the period after upgradation i.e. from 27/05/2007 to till date.
    For e.g.
    If we make A.P.Credit Memo for an item qty.20 value INR 20,000/- based on A.P.Invoice and take Inventory Audit Report, the qty.is posted as -20 but the value is posted as INR 20,000/- but actually it should be INR -20,000/-. That is the value is taken twice of the original value.
    Reagrds,
    Vishal Takte

    Hi Vishal,
    Please contact SAP Support for your problem; I think they should be able to help you to fix the problem.
    Sorry for any inconvenience,
    Frank
    PS: Please note that such "application-related" questions fit best into the "SAP Business One" Forum...
    Message was edited by:
            Frank Moebius

  • Unable to export report to excel file from SAP

      Hi all,
    I have a problem to download data from a report. The XL gets downloaded in a different format than my colleague.
    We are using the same XL version but two weeks back the SAP GUI 730 got reinstalled to my machine and since then the problem
    started.
    Can you please confirm is there is any particular user settings for this?
    I have login in any different working ( SAP Export ) machine with my login ID and Password and try to export the report to excel file from SAP, and I have same issue . Same we have requested another user to login in my machine with their ID and Password and check the same, They have tried and its working for then in my machine.
    see screenshots attached.
    Thanks.

    Execute report>
    Right click anywhere in the report output and select Spreadsheet.
    A pop up box will appear, select which export option you would like to use and click green check.
    NOTE: If you don't see this option then goto Settings>Switch List then try above said.
    Thanks,
    Kumar

  • Standard cost audit report in SAP BI

    Dear Gurus
    We need a Cost audit report (module: CO) (detail required as per CAS  and rules) in BI, kindly suggest if there is a standard report for the same,if not then kindly suggest how to go about it.
    Is there a standard report for the same in ECC?

    Pls have a look into FI part of Business Content especialli to CO module:
    http://help.sap.com/saphelp_nw70ehp1/helpdata/en/61/7beb3cad744026e10000000a11405a/content.htm

  • Error message in inventory audit report

    Hi
    I'm trying to generate an Inventory Audit Report when this error appeared > "You have an insufficient resources to complete this action.Select fewer records and try again"..  I know that the report is too big coz it's from 2006-2010. Can some one give me a further explanaton about this error?Is it because the file is too big that sap 'system' can't generate this report (reach its limit) or the problem is within the 'server' of the sap still coz of a big file?
        Hope someone can help
         Thanks in advance
    Vissia

    Hi Vissia,
    The problem is your server's RAM. It will be too difficult to run 4 years audit report from any server. Even if you have 30G ram, it may not be enough.
    Try a smaller interval.
    Thanks,
    Gordon

  • Difference between G/L Balance and Inventory Audit Report

    Hi All,
            while checking the G/L ledger for Inventory account and the Inventory Audit report, there is a difference between the amounts posted. The closing balance till 31/03/09 is fine but afterwards the balance is not matchin at all. I hav tried to check between various posting dates but still there are differences. Any suggestions why there are differences and how should i check them??
    Thanks in advance,
    Joseph

    The GL account and the Inventory audit report will not tie for a couple of reasons:
    - You have posted directly (JE) to your Inventory account.  These amount since they are NOT tied to a Item in a transaction will not appear in the Inventory audit report.  The Inventory account(s) should be treated like a control account (enthough they
    cannot be set as one in SAP B1) and should not be posted to directly outside of the Item Inventory Transaction (GRPO, AP Inv, AR INV, DN, AR CM, AP CM, etc...) I have alos seen these posting when GL determinations are setup incorretly or when users use the inventory account in Stock Posting (staock taking) transactions
    - you have legacy issues resulting in audit report entries relating back to pre SP01 2005 days.
    To get these details analyzed by SAP for free along with the recomended corrections please contact your partner for a free Inventory Verification analysis   Your partner can take a copy of your DB backup and create a support message under SBO-MM-IVC and SAP support will analyse these differenes and show you the recommended changes.
    hope this helps

  • Difference Between Inventory Audit Report & Inventory Positing List Report

    Dear all,
    Please tell me the difference  between these twoInventory Audit Report & Inventory Positing List Report, Because I find difference , when observe Closing and Opening Stock Quantity on 1.4.10 audit report showing 610 units but on 1.4.10 posting list showing 973 units of opening stock
    Why so happen ? can anybody explain............
    Thank you
    Komanduri

    Hi......
    Please read below.....
    Inventory Audit:
    This report provides an audit trail for the posted inventory transactions in the chart of accounts.
    You use this report to make comparisons between the accounting view (inventory balance accounts)
    and the logistics view (inventory value displayed by the audit report). The report explains the value changes in inventory accounts.
    Inventory Posting List:
    The inventory posting list provides an overview of all postings in the system, based on various selection criteria and sort options. You can generate a report for specified warehouses based on one of the following selection criteria:
    Item
    Business partner
    Other: Enables you to specify a selection criterion such as warehouse or sales employee.
    Inventory Transfer:
    You use this function to transfer inventory from one warehouse to another. An inventory transfer can also be carried out as a consignment for a customer. The items are then stored in the customeru2019s warehouse and are sold from here.
    You cannot change the table after it has been added. If you display an existing inventory transfer later on, none of the fields in the table are active.
    You can, therefore, only correct an inventory transfer table that has not been entered correctly by entering a compensatory goods movement later.
    For more detail please refer help file in SAP.....
    Regards,
    Rahul

  • RM Audit Reports Incomplete

    I'm having inconsistent results with the Remote Management Audit Reports.
    Every time I run a RM Audit report I see increasing numbers of remotes,
    and that's a good thing because our Help Desk is being judged based on the
    number of remote controls to fix problems before escalating to our Desktop
    group. Unfortunately not all attempts are showing up in the reports. I
    go to a tech's desktop and watch him perform a remote control (yes, logged
    in as himself) but his attempts never show up on the reports. I checked
    the ..\system32\auditlog.txt on the target machine and see it logged
    there. I had him remote control from my machine (logged in as him) and he
    still doesn't show up. I checked the Inventory Database object to ensure
    that max records is 100 and expiry time is 180. I created a new user
    called ZENTEST and had him login as that user at his desk and at mine and
    no attempts for that user ever show up. Still, the RM numbers are
    increasing overall and the inventory process is running and STR files are
    being processed. Where should I look next? This is very perplexing...

    Iretonc,
    It appears that in the past few days you have not received a response to your posting. That concerns us, and has triggered this automated reply.
    Has your problem been resolved? If not, you might try one of the following options:
    - Do a search of our knowledgebase at http://support.novell.com/search/kb_index.jsp
    - Check all of the other support tools and options available at http://support.novell.com in both the "free product support" and "paid product support" drop down boxes.
    - You could also try posting your message again. Make sure it is posted in the correct newsgroup. (http://support.novell.com/forums)
    If this is a reply to a duplicate posting, please ignore and accept our apologies and rest assured we will issue a stern reprimand to our posting bot.
    Good luck!
    Your Novell Product Support Forums Team
    http://support.novell.com/forums/

  • SM20/SM20N audit report analysis - in background

    Hi,
    I would like to create an audit log / audit report analysis in background.
    I've found an article bu interested to understand if it is the only way to do that ?
    article: http://sap.ittoolbox.com/groups/technical-functional/sap-security/security-audit-reports-using-sm20-1019745?cv=expanded
    Any idea ?
    Dimitry Haritonov

    i have not tried it but yes thats what mentioned in the Note 838847
    Instructions for Releases 4.6C and 6.20
    Creating the RSAU_SELECT_EVENTS program:
    Title: "Selection of audit events from the audit files (background variant)"
    Type: Executable program
    Application: Basis
    Package: SECU
    Logical database:
    See the correction instructions for the source code.
    if your question is answered , mark it answered and award the points ..
    Regards
    dEE

  • To upload a RTF and a PDF file to SAP R/3 and print the same through SAP

    Hi,
    I have a requirement to upload a PDF file and a RTF file to SAP R/3 and print the same.
    I wrote the following code for uploading a RTF file to SAP R/3 and print the same. However, the problem is , the formatting present in the RTF document( bold/italics..etc) is not being reflected when I do the 'print-preview' after the executing the code below :
    report z_test_upload .
    data: begin of itab occurs 0,
             rec type string,
          end of itab.
    data: options like itcpo.
    data: filename type string,
          count type i.
    data: filetype(10) type c value 'ASC'.
    DATA: HEADER  LIKE THEAD    OCCURS   0 WITH HEADER LINE.
    DATA: NEWHEADER  LIKE THEAD    OCCURS   0 WITH HEADER LINE.
    DATA: ITFLINE LIKE TLINE    OCCURS   0 WITH HEADER LINE.
    DATA: RTFLINE LIKE HELP_STFA OCCURS   0 WITH HEADER LINE.
    DATA:   string_len TYPE i,
            n1 TYPE i.
    selection-screen begin of block b1.
      parameter: p_file1(128) default 'C:\test_itf.rtf'.
    selection-screen end of block b1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.
      CALL FUNCTION 'F4_FILENAME'
           IMPORTING
                file_name = p_file1.
    start-of-selection.
    move p_file1 to filename.
    call function 'GUI_UPLOAD'
         EXPORTING
              filename                = filename
              filetype                = filetype
         TABLES
              data_tab                = itab
         EXCEPTIONS
              file_open_error         = 1
              file_read_error         = 2
              no_batch                = 3
              gui_refuse_filetransfer = 4
              invalid_type            = 5
              no_authority            = 6
              unknown_error           = 7
              bad_data_format         = 8
              header_not_allowed      = 9
              separator_not_allowed   = 10
              header_too_long         = 11
              unknown_dp_error        = 12
              access_denied           = 13
              dp_out_of_memory        = 14
              disk_full               = 15
              dp_timeout              = 16
              others                  = 17.
    if sy-subrc <> 0.
      message id sy-msgid type sy-msgty number sy-msgno
                with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    endif.
    loop at itab.
      string_len = strlen( itab-rec ).
      n1 = string_len DIV 134.
      ADD 1 TO n1.
      DO n1 TIMES.
        rtfline-line = itab-rec.
        APPEND rtfline.
        SHIFT itab-rec BY 134 PLACES.
      ENDDO.
    endloop.
    HEADER-TDSTYLE = 'S_DOCUS1'.
    HEADER-TDFORM = 'S_DOCU_SHOW'.
    header-tdspras = 'E'.
    CALL FUNCTION 'CONVERT_TEXT'
      EXPORTING
      CODEPAGE               = '0000'
        DIRECTION              = 'IMPORT'
        FORMAT_TYPE            = 'RTF'
       FORMATWIDTH            = 72
        HEADER                 = header
        SSHEET                 = 'WINHELP.DOT'
        WITH_TAB               = 'X'
        WORD_LANGU             = SY-LANGU
        TABLETYPE              = 'ASC'
      TAB_SUBSTITUTE         = 'X09  '
      LF_SUBSTITUTE          = ' '
      REPLACE_SYMBOLS        = 'X'
      REPLACE_SAPCHARS       = 'X'
      MASK_BRACKETS          = 'X'
      IMPORTING
        NEWHEADER              = NEWHEADER
      WITH_TAB_E             =
      FORMATWIDTH_E          =
      TABLES
        FOREIGN                = RTFLINE
        ITF_LINES              = ITFLINE.
      LINKS_TO_CONVERT       =
    if sy-subrc <> 0.
    endif.
    CALL FUNCTION 'PRINT_TEXT_ITF'
      EXPORTING
         HEADER        = newheader
         OPTIONS       = options
    IMPORTING
      RESULT        =
      TABLES
        LINES         = itfline.
    if sy-subrc <> 0.
    endif.
    Any hints or suggestions to solve this problem will be highly appreciated.
    Thanks,
    Avra

    Hi Vishwas,
    Check out the thread [Efficient way of saving documents uploaded|Re: Efficient way of saving documents uploaded by users; and check the blog by Raja Thangamani.
    Also check the thread [Export Images through Function Modules   |Export Images through Function Modules;.
    Hope it helps you.

  • How to store multiple files from SAp in to Application server?

    Hi Guys,
                 Can anybody tell me how to store multiple files from SAP into Application server.in my application i have to get the data from SAP tables BSEG , BKPF , BSAK and BSIK that to daily i have to do.
                Any Logic  or Code for how to do is welcomed.
                        plz help me urgently.
    Thanks,
    Gopi

    Hi,
      directories creates basis. If you have task to store data in application server you already should have information into which folder you have to do it. If you don't have this information because it is just for example training for next task then you can use your personal folder into which you have access. To get list of all available folders please look at attached code and form get_directories (you get the list of folders you see in transaction AL11). But don't forget: If you are using open dataset you have to have rights to access application folder!
    Here you are code which I use to upload text files from local disc into application folder
    Regards,
      Karol
    *& Report  FILE_PC_TO_SAP
    REPORT  FILE_PC_TO_SAP.
    DATA: BEGIN OF searchpoints OCCURS 100,
            DIRNAME(200)     TYPE c, " name of directory.
            sp_name(100)     TYPE c," name of entry. (may end with *)
          END OF searchpoints.
    DATA: BEGIN OF isearchpoints OCCURS 10,
            dirname(75) TYPE c,            " name of directory.
            aliass(75)  TYPE c,            " alias for directory.
            svrname(75) TYPE c,            " svr where directory is availabl
            sp_name(75) TYPE c,            " name of entry. (may end with *)
            sp_cs(10)   TYPE c,            " ContainsString pattern for name
          END OF isearchpoints.
    data: l_file type filetable.
    data: l_rc   type i.
    data: itab   type TABLE OF string.
    data: g_tmp_file_path type rlgrap-filename.
    data: wa_itab type string.
    data: h_destin(100) type c.
    data: dat      type string.
    INITIALIZATION.
    perform get_directories.
    START-OF-SELECTION.
    parameters: in_file type string OBLIGATORY LOWER CASE.
    parameters: destin(100) type c OBLIGATORY LOWER CASE.
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
       FILENAME                      = in_file
       "FILETYPE                      = 'BIN'
       FILETYPE                      = 'ASC'
       HAS_FIELD_SEPARATOR           = ' '
       HEADER_LENGTH                 = 0
       READ_BY_LINE                  = 'X'
       DAT_MODE                      = ' '
      TABLES
        DATA_TAB                     = itab
    EXCEPTIONS
       FILE_OPEN_ERROR               = 1
       FILE_READ_ERROR               = 2
       NO_BATCH                      = 3
       GUI_REFUSE_FILETRANSFER       = 4
       INVALID_TYPE                  = 5
       NO_AUTHORITY                  = 6
       UNKNOWN_ERROR                 = 7
       BAD_DATA_FORMAT               = 8
       HEADER_NOT_ALLOWED            = 9
       SEPARATOR_NOT_ALLOWED         = 10
       HEADER_TOO_LONG               = 11
       UNKNOWN_DP_ERROR              = 12
       ACCESS_DENIED                 = 13
       DP_OUT_OF_MEMORY              = 14
       DISK_FULL                     = 15
       DP_TIMEOUT                    = 16
       OTHERS                        = 17.
    IF sy-SUBRC <> 0.
      write: / 'Error during loading input file!'.
    ENDIF.
    if h_destin is INITIAL.
      h_destin = in_file.
    endif.
    CONCATENATE destin h_destin into dat SEPARATED BY '/'.
    *TRANSLATE dat TO UPPER CASE.
    OPEN DATASET dat FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
    IF sy-SUBRC = 0.
      loop at itab into wa_itab.
         TRANSFER: wa_itab TO dat.
      endloop.
      CLOSE DATASET dat.
      write: / 'File uploaded!'.
    ELSE.
      write: / 'Not possible to open dataset'.
    ENDIF.
    at selection-screen on value-request for in_file.
      perform select_input_file_name.
      loop at l_file into g_tmp_file_path.
        move g_tmp_file_path to in_file.
        h_destin = ''.
        SPLIT g_tmp_file_path at '\' into table itab.
        loop at itab into g_tmp_file_path.
          h_destin = g_tmp_file_path.
        endloop.
      endloop.
    at selection-screen on value-request for destin.
      DATA: lt_dfies    TYPE TABLE OF dfies.
      DATA: lwa_dfies   TYPE dfies.
      CALL FUNCTION 'DDIF_FIELDINFO_GET'
        EXPORTING
          tabname    = '/BI0/PCO_AREA'
          lfieldname = 'CO_AREA'
        IMPORTING
          dfies_wa   = lwa_dfies.
      lwa_dfies-tabname = 'searchpoints'.
      lwa_dfies-REPTEXT   = 'Destination directory'.
      lwa_dfies-LENG      = 100.
      lwa_dfies-INTLEN    = 100.
      lwa_dfies-OUTPUTLEN = 100.
      lwa_dfies-fieldname = 'SP_NAME'.
      APPEND lwa_dfies TO lt_dfies.
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          RETFIELD = 'SP_NAME'
          DYNPPROG = SY-REPID
          DYNPNR = SY-DYNNR
          DYNPROFIELD = 'destin'
          VALUE_ORG = 'S'
        TABLES
          VALUE_TAB = searchpoints
          FIELD_TAB = lt_dfies
        EXCEPTIONS
          PARAMETER_ERROR = 1
          NO_VALUES_FOUND = 2
          OTHERS = 3.
    *&      Form  select_input_file_name
    *       text
    form select_input_file_name.
    *  call function 'F4_FILENAME'
    *       exporting
    *            program_name  = sy-repid
    *            dynpro_number = sy-dynnr
    *            field_name    = 'PATH'
    *       importing
    *            file_name     = g_tmp_file_path.
      CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
      EXPORTING
      WINDOW_TITLE = 'Please choose a file'
      "default_extension = '*.TXT'
      "default_filename = 'C:\*.txt'
      initial_directory = 'C:\'
      file_filter = '*.*'
      CHANGING
      FILE_TABLE = l_file
      RC = l_RC
      EXCEPTIONS
      FILE_OPEN_DIALOG_FAILED = 1
      CNTL_ERROR = 2
      ERROR_NO_GUI = 3
      NOT_SUPPORTED_BY_GUI = 4
      OTHERS = 5.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    endform.                    "select_input_file_name
    *&      Form  WRITE_DB_HOME
    *       Write DB home directory
    *       no parameters
    FORM write_db_home.
      CASE sy-dbsys(3).
        WHEN 'ORA'.
          CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_ORAHOME'
                             ID 'VALUE' FIELD searchpoints-dirname.
    *--- C5056155 Start of ALV -------------------------------*
    *      PERFORM flip_flop(rsora000) USING cflag.
    *      WRITE: / 'DIR_ORAHOME',       30 searchpoints-dirname.
          MOVE: 'DIR_ORAHOME'        TO searchpoints-sp_name.
          APPEND searchpoints.
    *--- C5056155 End   of ALV -------------------------------*
        WHEN 'ADA'.
          CALL 'C_GETENV' ID 'NAME'  FIELD 'DBROOT'
                          ID 'VALUE' FIELD searchpoints-dirname.
    *--- C5056155 Start of ALV -------------------------------*
    *      PERFORM flip_flop(rsora000) USING cflag.
    *      WRITE: / 'DIR_ADA_DBROOT',    30 searchpoints-dirname.
          MOVE: 'DIR_ADA_DBROOT'     TO searchpoints-sp_name.
          APPEND searchpoints.
    *--- C5056155 End   of ALV -------------------------------*
        WHEN 'INF'.
          CALL 'C_GETENV' ID 'NAME'  FIELD 'INFORMIXDIR'
                          ID 'VALUE' FIELD searchpoints-dirname.
    *--- C5056155 Start of ALV -------------------------------*
    *      PERFORM flip_flop(rsora000) USING cflag.
    *      WRITE: / 'DIR_INF_INFORMIXDIR', 30 searchpoints-dirname.
          MOVE: 'DIR_INF_INFORMIXDIR' TO searchpoints-sp_name.
          APPEND searchpoints..
    *--- C5056155 End   of ALV -------------------------------*
        WHEN 'DB6'.
          CALL 'C_GETENV' ID 'NAME'  FIELD 'INSTHOME'
                          ID 'VALUE' FIELD searchpoints-dirname.
          IF sy-subrc = 0.
    *--- C5056155 Start of ALV -------------------------------*
    *        PERFORM flip_flop(rsora000) USING cflag.
    *        WRITE: / 'DIR_DB2_HOME',    30 searchpoints-dirname.
            MOVE: 'DIR_DB2_HOME'       TO searchpoints-sp_name.
            APPEND searchpoints.
    *--- C5056155 End   of ALV -------------------------------*
          ELSE.
            EXIT.
          ENDIF.
        WHEN OTHERS.
          EXIT.
      ENDCASE.
    ENDFORM.                    " WRITE_DB_HOME
    FORM get_directories.
    * get the name and aliases of ALL userdefined directories
      SELECT * FROM user_dir INTO isearchpoints
        WHERE svrname = sy-uname.
        MOVE isearchpoints-dirname to searchpoints-dirname.
        MOVE isearchpoints-aliass  to searchpoints-sp_name.
        APPEND searchpoints.
      ENDSELECT.
      SELECT * FROM user_dir INTO isearchpoints
        WHERE svrname = 'all'.
        MOVE isearchpoints-dirname to searchpoints-dirname.
        MOVE isearchpoints-aliass  to searchpoints-sp_name.
        APPEND searchpoints.
      ENDSELECT.
    * Get DB home
      IF sy-dbsys(3) = 'ADA'.
        PERFORM write_db_home.
      ENDIF.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_ATRA'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_ATRA'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_BINARY'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_BINARY'         TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory $DIR_CCMS
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_CCMS'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_CCMS'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_CT_LOGGING'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_CT_LOGGING'     TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_CT_RUN'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_CT_RUN'         TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_DATA'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_DATA'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * Get DB home
      IF sy-dbsys(3) = 'DB6'.
        PERFORM write_db_home.
      ENDIF.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_DBMS'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_DBMS'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_EXECUTABLE'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_EXECUTABLE'     TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_EXE_ROOT'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_EXE_ROOT'       TO searchpoints-sp_name.
      APPEND searchpoints.
    *get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_GEN'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_GEN'            TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_GEN_ROOT'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_GEN_ROOT'       TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_GLOBAL'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_GLOBAL'         TO searchpoints-sp_name.
      APPEND searchpoints.
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_GRAPH_EXE'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_GRAPH_EXE'      TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_GRAPH_LIB'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_GRAPH_LIB'      TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_HOME'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_HOME'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * Get DB home
      IF sy-dbsys(3) = 'INF'.
        PERFORM write_db_home.
      ENDIF.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_INSTALL'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_INSTALL'        TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_INSTANCE'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_INSTANCE'       TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_LIBRARY'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_LIBRARY'        TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_LOGGING'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_LOGGING'        TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the files written by the memory inspector
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_MEMORY_INSPECTOR'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_MEMORY_INSPECTOR' TO searchpoints-sp_name.
      APPEND searchpoints.
    * Get DB home
      IF sy-dbsys(3) = 'ORA'.
        PERFORM write_db_home.
      ENDIF.
    *get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_PAGING'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_PAGING'         TO searchpoints-sp_name.
      APPEND searchpoints.
    *get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_PUT'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_PUT'            TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_PERF'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_PERF'           TO searchpoints-sp_name.
      APPEND searchpoints.
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_PROFILE'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_PROFILE'        TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_PROTOKOLLS'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_PROTOKOLLS'     TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_REORG'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_REORG'          TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_ROLL'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_ROLL'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_RSYN'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_RSYN'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * calculate directory for saphostagent (no sapparam available...)
      IF ( sy-opsys(3) = 'WIN' ) OR ( sy-opsys(3) = 'Win' ).
        DATA: windir_path(64),  programfiles_path(64).
    *   hoping that ProgramFiles is set in service user environment
        CALL 'C_GETENV' ID 'NAME'  FIELD 'ProgramFiles'
                        ID 'VALUE' FIELD programfiles_path.
        IF programfiles_path IS INITIAL.
    *     %ProgramFiles% not available. guess from windir
          CALL 'C_GETENV' ID 'NAME'  FIELD 'windir'
                          ID 'VALUE' FIELD windir_path.
    *     e.g. S:\WINDOWS ==> S:\Program Files
          CONCATENATE windir_path(3) 'Program Files' INTO programfiles_path.
        ENDIF.
        CONCATENATE programfiles_path '\SAP\hostctrl'
                                                 INTO searchpoints-dirname.
      ELSE.
    *   on UNIX, the path is hard coded
        searchpoints-dirname = '/usr/sap/hostctrl'.
      ENDIF.
      MOVE: 'DIR_SAPHOSTAGENT' TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_SAPUSERS'
                         ID 'VALUE' FIELD searchpoints-dirname.
      IF searchpoints-dirname = '.'.
        IF sy-opsys = 'Windows NT'.
          searchpoints-dirname = '.\'.
        ELSE.
          searchpoints-dirname = './'.
        ENDIF.
      ENDIF.
      MOVE: 'DIR_SAPUSERS'       TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_SETUPS'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_SETUPS'         TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_SORTTMP'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_SORTTMP'        TO searchpoints-sp_name.
      APPEND searchpoints.
    *get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_SOURCE'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_SOURCE'         TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_TEMP'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_TEMP'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_TRANS'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_TRANS'          TO searchpoints-sp_name.
      APPEND searchpoints.
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_TRFILES'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_TRFILES'        TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_TRSUB'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_TRSUB'          TO searchpoints-sp_name.
      APPEND searchpoints.
    *  get the name of the current server.
      CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'rdisp/myname'
                         ID 'VALUE' FIELD searchpoints-dirname.
      data: h_ind type i.
      LOOP AT searchpoints.
        h_ind = sy-tabix.
        IF searchpoints-sp_name IS INITIAL.
          DELETE searchpoints INDEX h_ind.
        ENDIF.
      ENDLOOP.
    ENDFORM.

Maybe you are looking for