<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic BAPI_USER_GET_DETAIL in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-user-get-detail/m-p/2782797#M648705</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi all,&lt;/P&gt;&lt;P&gt;i need to know all about this function module.&lt;/P&gt;&lt;P&gt;i know this can be use  as function module and interface.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;but what i really want to know is that  &lt;/P&gt;&lt;P&gt;what can be use as export parameter(what sud i give as export parameter)&lt;/P&gt;&lt;P&gt;  import parameter.&lt;/P&gt;&lt;P&gt; and what is retun table and what data is fill in it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if possible give me a working code for the same.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;points ll be sure awarded.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;anuj&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 18 Sep 2007 07:44:05 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-09-18T07:44:05Z</dc:date>
    <item>
      <title>BAPI_USER_GET_DETAIL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-user-get-detail/m-p/2782797#M648705</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi all,&lt;/P&gt;&lt;P&gt;i need to know all about this function module.&lt;/P&gt;&lt;P&gt;i know this can be use  as function module and interface.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;but what i really want to know is that  &lt;/P&gt;&lt;P&gt;what can be use as export parameter(what sud i give as export parameter)&lt;/P&gt;&lt;P&gt;  import parameter.&lt;/P&gt;&lt;P&gt; and what is retun table and what data is fill in it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if possible give me a working code for the same.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;points ll be sure awarded.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;anuj&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Sep 2007 07:44:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-user-get-detail/m-p/2782797#M648705</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-18T07:44:05Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_USER_GET_DETAIL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-user-get-detail/m-p/2782798#M648706</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The method GetDetail returns the attributes of user USERNAME, as well as&lt;/P&gt;&lt;P&gt;the profiles and activity groups that are assigned to that user.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'BAPI_USER_GET_DETAIL'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              USERNAME  = SY-UNAME&lt;/P&gt;&lt;P&gt;         TABLES&lt;/P&gt;&lt;P&gt;              PARAMETER = L_IT_PARAM&lt;/P&gt;&lt;P&gt;              RETURN    = L_IT_RETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Reward if helpful.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Sep 2007 07:49:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-user-get-detail/m-p/2782798#M648706</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-18T07:49:53Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_USER_GET_DETAIL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-user-get-detail/m-p/2782799#M648707</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You have to pass the user's ID to the function module.  It's the only input parameter, but it is mandatory.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The module then returns pretty much every attribute of that user.  The data where there is only one set for each user (eg name and address) is passed in a structure, anything where there is many items (parameters, roles) is returned in a table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Get familiar with the data in transaction SU01 for a user, the BAPI returns all of this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Nick&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Sep 2007 07:53:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-user-get-detail/m-p/2782799#M648707</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-18T07:53:33Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_USER_GET_DETAIL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-user-get-detail/m-p/2782800#M648708</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;FU BAPI_USER_GET_DETAIL[/b Read User Details&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Functionality&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;The method GetDetail returns the attributes of user USERNAME, as well as the profiles and activity groups that are assigned to that user.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Parameters&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;USERNAME&lt;/P&gt;&lt;P&gt;LOGONDATA&lt;/P&gt;&lt;P&gt;DEFAULTS&lt;/P&gt;&lt;P&gt;ADDRESS&lt;/P&gt;&lt;P&gt;COMPANY&lt;/P&gt;&lt;P&gt;SNC&lt;/P&gt;&lt;P&gt;REF_USER&lt;/P&gt;&lt;P&gt;ALIAS&lt;/P&gt;&lt;P&gt;UCLASS&lt;/P&gt;&lt;P&gt;LASTMODIFIED&lt;/P&gt;&lt;P&gt;ISLOCKED&lt;/P&gt;&lt;P&gt;PARAMETER&lt;/P&gt;&lt;P&gt;PROFILES&lt;/P&gt;&lt;P&gt;ACTIVITYGROUPS&lt;/P&gt;&lt;P&gt;RETURN&lt;/P&gt;&lt;P&gt;ADDTEL&lt;/P&gt;&lt;P&gt;ADDFAX&lt;/P&gt;&lt;P&gt;ADDTTX&lt;/P&gt;&lt;P&gt;ADDTLX&lt;/P&gt;&lt;P&gt;ADDSMTP&lt;/P&gt;&lt;P&gt;ADDRML&lt;/P&gt;&lt;P&gt;ADDX400&lt;/P&gt;&lt;P&gt;ADDRFC&lt;/P&gt;&lt;P&gt;ADDPRT&lt;/P&gt;&lt;P&gt;ADDSSF&lt;/P&gt;&lt;P&gt;ADDURI&lt;/P&gt;&lt;P&gt;ADDPAG&lt;/P&gt;&lt;P&gt;ADDCOMREM&lt;/P&gt;&lt;P&gt;PARAMETER1&lt;/P&gt;&lt;P&gt;GROUPS&lt;/P&gt;&lt;P&gt;UCLASSSYS&lt;/P&gt;&lt;P&gt;EXTIDHEAD&lt;/P&gt;&lt;P&gt;EXTIDPART&lt;/P&gt;&lt;P&gt;SYSTEMS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Exceptions&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Function Group&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;SU_USER&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;hi see this program and how i had used that one&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;************************************************************************
*      Copyright (C) and all other rights in this program              *
*      are reserved by xxxxxxxxxxxxxxxxxxxxxxxxxxxx                    *
*                                                                      *
************************************************************************

REPORT  zfi_gl_upload .

*----------------------------------------------------------------------*
* EXTERNAL TABLE DECLARATIONS                                          *
*----------------------------------------------------------------------*


*----------------------------------------------------------------------*
* TYPES                                                                *
*----------------------------------------------------------------------*


* Data type for Raw data from file

TYPES : BEGIN OF tt_file_data,
          record_data TYPE char200,   "LocalFile data
        END OF tt_file_data.

* Data Type for document header

TYPES : BEGIN OF tt_header,
           record_no  TYPE i,         "Record Number in the file
           company_code  TYPE bukrs,  "Company Code
           doc_type      TYPE blart,  "Document type
           doc_date      TYPE bldat,  "Document Date in Document
           post_date     TYPE budat,  "Posting Date in the Document
           currency      TYPE waers,  "Currency Key
           exchg_rate    TYPE kursf,  "Exchange Rate
           ref_num       TYPE xblnr1, "Reference Document Number
           head_text     TYPE bktxt,  "Document Header Text
        END OF tt_header.

*Data type for document items
TYPES  : BEGIN OF tt_line_item,
           record_no     TYPE i,      "Record Number in the file
           line_item_no  TYPE buzei,  "Line Item Within Document
           account_num   TYPE hkont,  "General Ledger Account
           cost_centre   TYPE kostl,  "Cost Center
           order_no      TYPE aufnr,  "Order Number
           segment       TYPE fb_segment, "Segment
           profit_ctr    TYPE prctr,  "Profit Center
           amt_debit     TYPE wrbtr,  "Amount in document currencyline_item_text TYPE sgtxt, "Item Text
           amt_credit    TYPE wrbtr,  "Amount in document currencyline_item_text TYPE sgtxt, "Item Text
           tax_code      TYPE mwskz,  "Sales Tax Code
           company_code  TYPE bukrs,
           trade_part    TYPE rassc,
           movement_type TYPE rmvct,
           item_text     TYPE sgtxt,
END OF tt_line_item.


*Data type for tracking the record number in file
TYPES  : BEGIN OF tt_error_log,
           record_no   TYPE i,      "Record Number in file
           message     TYPE
                   abaptxt255-line,  "Error Message
         END OF tt_error_log.

*Data type for tracking the record number in file
TYPES  : BEGIN OF tt_doc_split_log,
           doc_no    TYPE i,   "Record Number in file
           balance_entry TYPE char1,
           balance_record TYPE i,
         END OF tt_doc_split_log.

*Data type for application server file format
TYPES  : BEGIN OF tt_file_upload,
          data(2541) TYPE c,        "Formatted data for upload
         END OF tt_file_upload.

*Data type for application server file format
TYPES  : BEGIN OF tt_tax_code,
          company_code TYPE bukrs,
          tax_code TYPE mwskz,
          condition_type TYPE  kscha,
         END OF tt_tax_code.

*----------------------------------------------------------------------*
* CONSTANTS                                                            *
*----------------------------------------------------------------------*
CONSTANTS : gc_foreground   TYPE char1  VALUE ' ',
            gc_header       TYPE char1  VALUE 'H',
            gc_max_line     TYPE i      VALUE 950,
            gc_pkey_40      TYPE newbs  VALUE '40' ,
            gc_pkey_50      TYPE newbs  VALUE '50' ,
            gc_file_end     TYPE char1  VALUE 'X',
            gc_format       TYPE char2  VALUE ' /',
            gc_slash        TYPE char1  VALUE '',
            gc_ok           TYPE char1  VALUE 'X',
            gc_s0           TYPE char1  VALUE '0',
            gc_s1           TYPE char1  VALUE '1',
            gc_s2           TYPE char1  VALUE '2',
            gc_nodata       TYPE char1  VALUE '/',
            gc_tcode         TYPE char4  VALUE 'FBV1',
            gc_error        TYPE char1  VALUE 'E',
            gc_batch        TYPE char1  VALUE 'B',
            gc_success      TYPE char1  VALUE 'S',
            gc_gbp          TYPE waers  VALUE 'GBP',
*           gc_fmt_amt      TYPE char2  VALUE '/0',
            gc_saparator    TYPE char1  VALUE ',',
            gc_dot          TYPE char1  VALUE '.',
            gc_fmt_dot      TYPE char2  VALUE ',.',
            gc_bseg         TYPE bbseg-tbnam  VALUE 'BBSEG',
            gc_cancel       TYPE char1        VALUE '2',
            gc_check        TYPE char4        VALUE 'CHCK',
            gc_post         TYPE char4        VALUE 'POST',
            gc_park         TYPE char4        VALUE 'PARK',
            gc_x            TYPE char1        VALUE 'X',
            gc_line         TYPE char1  VALUE 'L'.


*----------------------------------------------------------------------*
* STRUCTURE DECLARATIONS                                               *
*----------------------------------------------------------------------*

DATA :   gs_header        TYPE tt_header,
         gs_file_data     TYPE tt_file_data,
         gs_line_item     TYPE tt_line_item,
         gs_tax_code      TYPE tt_tax_code,
         gs_bal_line_item TYPE tt_line_item,
         gs_file_upload   TYPE tt_file_upload,
         gs_error_log     TYPE tt_error_log,
         gs_bgr00         TYPE bgr00 ,
         gs_bbkpf         TYPE bbkpf,
         gs_bbseg         TYPE bbseg,
*         gs_run_log       TYPE ztfi_int_run_log,
         gs_doc_split_log TYPE tt_doc_split_log,
         wa_fcat          TYPE lvc_s_fcat.
*----------------------------------------------------------------------*
* INTERNAL TABLE DECLARATIONS                                          *
*----------------------------------------------------------------------*

DATA :
*Internal table for file data
gt_file_data    TYPE STANDARD TABLE OF tt_file_data,

*Internal table for document items
gt_line_item    TYPE STANDARD TABLE OF tt_line_item,

gt_bal_line_item    TYPE STANDARD TABLE OF tt_line_item,

*Iternal table for aplication server file data
gt_file_upload  TYPE STANDARD TABLE OF tt_file_upload,

*Internal  table for error logs
gt_error_log    TYPE STANDARD TABLE OF tt_error_log,


*Internal table for posting log
gt_tax_code  TYPE STANDARD TABLE OF tt_tax_code,

*Table for interface run log
*gt_run_log   TYPE STANDARD TABLE OF ztfi_int_run_log,

*
gt_doc_split_log   TYPE STANDARD TABLE OF tt_doc_split_log,

*Table for field catalog of ALV table
i_fcat TYPE TABLE OF  lvc_s_fcat.

*----------------------------------------------------------------------*
* FIELD GROUPS &amp;amp; FIELD SYMBOLS                                         *
*----------------------------------------------------------------------*

*----------------------------------------------------------------------*
* VARIABLE DECLARATIONS                                                *
*----------------------------------------------------------------------*
DATA  : gv_filename        TYPE fileextern,
        gv_exit_cnt        TYPE i,
        gv_file_type       TYPE char1,
        gv_start_date      TYPE sy-datum,
        gv_start_time      TYPE sy-uzeit,
        gv_post_error      TYPE char1,
        gv_string          TYPE string,
        gv_process         TYPE char4,
        gv_error           TYPE char1,
        gv_session_name    TYPE char12,
        gv_park            TYPE char1,
        gv_check_level     TYPE char1,
        gv_user_info       TYPE char1,
        gv_fiscal_year     TYPE gjahr,
        gv_colpos          TYPE i,
        gv_continue_flag   TYPE c,
        gv_back_flag   TYPE c,
        gv_ucomm           TYPE sy-ucomm,
        gv_okcode_9001     TYPE sy-ucomm.


*Objects for ALV grid
DATA:   gv_alv             TYPE REF TO cl_gui_alv_grid,
        gv_control         TYPE REF TO cl_gui_custom_container.


TYPE-POOLS icon.
TABLES sscrfields.
TABLES usr02.
*----------------------------------------------------------------------*
* SELECT-OPTIONS AND PARAMETERS                                        *
*----------------------------------------------------------------------*
* Local File path

SELECTION-SCREEN BEGIN OF BLOCK file_info  WITH FRAME TITLE text-001.

PARAMETER : p_file TYPE ibipparms-path .

SELECTION-SCREEN END OF BLOCK file_info.


SELECTION-SCREEN BEGIN OF BLOCK file_park  WITH FRAME
TITLE text-002.

SELECTION-SCREEN BEGIN OF LINE.
POSITION 5.
SELECTION-SCREEN COMMENT 5(5) com1.

POSITION 12.
PARAMETERS  p_park  RADIOBUTTON GROUP gr1.

POSITION 21.
SELECTION-SCREEN COMMENT  21(5) com2.

POSITION 28.
PARAMETERS  p_post  RADIOBUTTON GROUP gr1.

POSITION 40.
SELECTION-SCREEN PUSHBUTTON 40(9) but1 USER-COMMAND cli1.

POSITION 64.
SELECTION-SCREEN COMMENT  64(6) com3.

POSITION 71.
PARAMETER  p_status TYPE char4.

POSITION 1.
SELECTION-SCREEN END OF LINE .

SELECTION-SCREEN END OF BLOCK file_park.


SELECTION-SCREEN BEGIN OF BLOCK user_info  WITH FRAME TITLE text-003.

SELECT-OPTIONS s_user FOR usr02-bname .

SELECTION-SCREEN SKIP 2.

SELECTION-SCREEN PUSHBUTTON 60(10) but2 USER-COMMAND cli2.

SELECTION-SCREEN END OF BLOCK user_info.

*----------------------------------------------------------------------*
* ON LOAD EVENT         - Occurs only once, when the program is loaded *
*----------------------------------------------------------------------*
LOAD-OF-PROGRAM.

*----------------------------------------------------------------------*
* INITIALIZATION EVENT          - processing prior to selection screen *
*----------------------------------------------------------------------*
INITIALIZATION.

*----------------------------------------------------------------------*
* AT SELECTION-SCREEN OUTPUT    - processing prior to selection screen *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.

  PERFORM authority_check.

  but1 = 'Update'.
  but2 = 'Find User'.
  com1 = 'Park'.
  com2 = 'Post'.
  com3 = 'Status'.

  IF gv_park = 'X'.
    p_status = 'PARK'.
  ELSE.
    p_status = 'POST'.
  ENDIF.

AT SELECTION-SCREEN.

  CLEAR gv_user_info .

  IF sscrfields = 'CLI1'.
    PERFORM posting_block_update .
  ELSEIF  sscrfields = 'CLI2'.
    PERFORM report_user_info.
  ENDIF.

***************************************************************
*   Initialization event
***************************************************************
INITIALIZATION.
*  w_repname = sy-repid.
  PERFORM initialize_fieldcat.

  PERFORM initialize_layout.


***************************************************************
*      Start of selection
***************************************************************
START-OF-SELECTION.

*  clear all global variables
  PERFORM clear_memory.

* Read file from the presentation server
  PERFORM read_local_file.

* Process the data read from the file
  PERFORM process_data.

* Display ALV report..
  PERFORM display_alv_rpt.

*    LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.

*Print Data

*  CALL SCREEN 9001.

*come back

*ENDIF.


*----------------------------------------------------------------------*
* AT SELECTION-SCREEN EVENTS    - validate user input                  *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

*Pop up screen to select the local file from PC
  CALL FUNCTION 'F4_FILENAME'
    IMPORTING
      file_name = p_file.

* -------- S T A R T    O F    M A I N    P R O C E S S I N G -------- *

*----------------------------------------------------------------------*
* START-OF-SELECTION            - start of database access             *
*----------------------------------------------------------------------*
START-OF-SELECTION.



  IF gv_continue_flag IS NOT INITIAL.

*    CASE sy-ucomm.
*      WHEN 'CONTINUE'.
    SET PF-STATUS 'SCREEN3'.

*    ENDCASE.

* Data validation / posting
    PERFORM check_data.

    PERFORM report_error.

    PERFORM update_log_table.



  ENDIF. "IF gv_continue_flag IS NOT INITIAL

AT USER-COMMAND.

  CASE sy-ucomm.
    WHEN 'BACK2'.

      CLEAR gv_continue_flag.

      LEAVE TO SCREEN 9001.

*      CALL SCREEN 9001.
*      LEAVE LIST-PROCESSING AND RETURN TO SCREEN 9001.

    WHEN 'EXIT' OR 'CANCEL'.
      LEAVE PROGRAM.

  ENDCASE.






*----------------------------------------------------------------------*
* END-OF-SELECTION              - end of logical database selections   *
*----------------------------------------------------------------------*
*END-OF-SELECTION.

*----------------------------------------------------------------------*
* FORMS                                                                *
*----------------------------------------------------------------------*

*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  clear_memory
*&amp;amp;--------------------------------------------------------------------*
*        Clear All global tables and variables
*---------------------------------------------------------------------*
FORM clear_memory.

  REFRESH : gt_file_data[],
            gt_line_item[] ,
            gt_file_upload[] ,
            gt_error_log[].
*            gt_run_log[].

  CLEAR  : gs_header      ,
           gs_file_data   ,
           gs_line_item   ,
           gs_file_upload ,
           gs_error_log   ,
           gs_bgr00       ,
           gs_bbkpf       ,
           gs_bbseg       ,
*           gs_run_log     ,
           gv_filename    ,
           gv_file_type       ,
           gv_start_date      ,
           gv_start_time  .

ENDFORM.                    "CLEAR_MEMORY


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  authority_check
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM authority_check.

  DATA:      "ls_ztfi_param TYPE ztfi_param,
             lv_authority_check TYPE char1.


  AUTHORITY-CHECK OBJECT 'F_BKPF_BUP'
          ID 'BRGRU' FIELD 'TEST'.

  IF sy-subrc = 0.
    lv_authority_check = gc_success.
  ENDIF.


  LOOP AT SCREEN.

    IF lv_authority_check &amp;lt;&amp;gt; gc_success.

      IF screen-name = 'P_PARK' OR
         screen-name = 'P_POST' OR
         screen-name = 'BUT1' .

        screen-input = 0.

      ENDIF.
    ENDIF.

    IF screen-name = 'P_STATUS' .
      screen-input = 0.

    ENDIF.

    MODIFY SCREEN.


  ENDLOOP.


*  SELECT SINGLE value INTO  gv_park
*                            FROM ztfi_param
*                            WHERE param_name = 'PARK_INDICATOR'.
*
*  IF sy-subrc = 0.
*
*    IF gv_park = 'X'.
*      p_park = 'X'.
*      p_post = ' '.
*    ELSE.
*      p_park = ' '.
*      p_post = 'X'.
*    ENDIF.
*
*  ENDIF.


ENDFORM.                    "authority_check



*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  report_user_info
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM report_user_info.

  DATA : lt_return TYPE TABLE OF bapiret2,
         lt_user  TYPE TABLE OF usr01-bname.

  DATA : ls_return  TYPE bapiret2,
         ls_address TYPE bapiaddr3,
         ls_user    TYPE usr01-bname.

  DATA:  lv_user TYPE bapibname-bapibname,
        lv_string TYPE string.

  LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 1000.
  SET PF-STATUS space.

  SELECT bname FROM usr01 INTO TABLE lt_user WHERE bname IN s_user.

  IF sy-subrc = 0.

    WRITE :/ 'User Details'.
    SKIP 1.

    LOOP AT lt_user INTO ls_user.

      lv_user = ls_user.

      CALL FUNCTION 'BAPI_USER_GET_DETAIL'
        EXPORTING
          username = lv_user
        IMPORTING
          address  = ls_address
        TABLES
          return   = lt_return.

      CONCATENATE ls_address-firstname
                    ls_address-lastname
               INTO lv_string
          SEPARATED BY space.


      WRITE :/ 'User Id    :',lv_user,
             / 'Name       :',lv_string.

      SKIP 1 .

    ENDLOOP.


  ENDIF.



ENDFORM.                    "report_user_info















*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  posting_block_update
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM posting_block_update.

*  DATA :   ls_ztfi_param TYPE ztfi_param.

*  IF p_park &amp;lt;&amp;gt; gv_park.
*
*    ls_ztfi_param-param_name = 'PARK_INDICATOR'.
*    ls_ztfi_param-value = p_park.
*
*    MODIFY ztfi_param FROM ls_ztfi_param.
*
*    COMMIT WORK.
*
*    gv_park =  p_park.
*
*  ENDIF.
  IF gv_park = 'X'.
    MESSAGE 'Posting in previous period is set to PARK' TYPE 'S'.
  ELSE.
    MESSAGE 'Posting in previous period is set to POST' TYPE 'S'.
  ENDIF.

ENDFORM.                    "posting_block_update




*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  read_local_file
*&amp;amp;--------------------------------------------------------------------*
*       Reads the file from presentation server. The file format is CSV
*---------------------------------------------------------------------*
FORM read_local_file.

  DATA lv_filename TYPE string.

  lv_filename = p_file.


  IF sy-mandt =  '100'.

    MESSAGE ' Can not run at client 100' TYPE 'I'.
    LEAVE LIST-PROCESSING.

  ENDIF.

*Check whether the file is already uploaded .
  PERFORM check_interface_run_log.

*Read the file from presentation server
  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename                = lv_filename
    TABLES
      data_tab                = gt_file_data
    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 &amp;lt;&amp;gt; 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.                     "IF SY-SUBRC &amp;lt;&amp;gt; 0.

*Remove unwanted lines from file
  DELETE gt_file_data INDEX 1.
  DELETE gt_file_data INDEX 2.
  DELETE gt_file_data INDEX 2.

ENDFORM.                    "read_local_file


*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  process_data
*&amp;amp;--------------------------------------------------------------------*
*   This form implemets the following  functionalities
*---------------------------------------------------------------------*
*   1. Split each record into individual fields
*---------------------------------------------------------------------*
*   2. Check each record for mandatory and optional fields
*---------------------------------------------------------------------*
*   3. Data validation for positng the document
*---------------------------------------------------------------------*
*   4. Upload the file to server if there is no validation errors
*---------------------------------------------------------------------*

FORM process_data.
*&amp;amp;---------------------------------------------------------------------
*&amp;amp; Local Variables
*&amp;amp;---------------------------------------------------------------------
  DATA : lv_rec_type      TYPE char1,
         lv_amt_debit     TYPE char15,
         lv_amt_credit    TYPE char15,
         lv_exchg_rate    TYPE char15,
         lv_line_type     TYPE char1,
         lv_line_count    TYPE i,
         lv_string        TYPE string,                      "#EC NEEDED
         lv_index         TYPE i,
         lv_park_indicator TYPE char10,
         lv_eof_indicator  TYPE char1,
         lv_post_date     TYPE char10,
         lv_doc_date      TYPE char10.

* Exit the form If an error occured in any of the previous Blocks

  CLEAR lv_eof_indicator.

*  SELECT SINGLE value INTO lv_park_indicator
*                      FROM ztfi_param
*                      WHERE param_name = 'PARK_INDICATOR'.
*
*  IF sy-subrc = 0.
*
*    IF lv_park_indicator = 'X'.
*
*      gv_park = 'X'.
*
*    ENDIF.
*
*  ENDIF.

  lv_line_count = 0.

  LOOP AT gt_file_data INTO gs_file_data.

    lv_index = sy-tabix.

    IF lv_index = 1.


*       Split document header data
      SPLIT gs_file_data
          AT gc_saparator
          INTO
            gs_header-company_code
            gs_header-doc_type
            lv_doc_date
            lv_post_date
            gs_header-currency
            lv_exchg_rate
            gs_header-ref_num
            gs_header-head_text
            lv_string
          IN CHARACTER MODE.

      gs_header-record_no =  2.

      IF gs_header-currency = 'GBP'.
        CLEAR gs_header-exchg_rate .
      ELSE.
        gs_header-exchg_rate = lv_exchg_rate.
      ENDIF.


*       Data input format change with left padding of zeros
      PERFORM convert_data_input CHANGING lv_doc_date.

*       Data input format change with left padding of zeros
      PERFORM convert_data_input CHANGING gs_header-company_code.

      CALL FUNCTION 'CONVERSION_EXIT_DATEX_INPUT'
        EXPORTING
          input  = lv_doc_date
        IMPORTING
          output = gs_header-doc_date.

*       Data input format change with left padding of zeros
      PERFORM convert_data_input CHANGING lv_post_date.

      CALL FUNCTION 'CONVERSION_EXIT_DATEX_INPUT'
        EXPORTING
          input  = lv_post_date
        IMPORTING
          output = gs_header-post_date.

      SPLIT gv_filename AT gc_dot
                 INTO gs_header-ref_num
                      lv_string
                      IN CHARACTER MODE.


*Check the posting period.
    ELSE.
*       Split documents items data

      ADD 1 TO lv_line_count.

      SPLIT gs_file_data
              AT gc_saparator
              INTO
                gs_line_item-account_num
                gs_line_item-cost_centre
                gs_line_item-order_no
                gs_line_item-segment
                gs_line_item-profit_ctr
                lv_amt_debit
                lv_amt_credit
                gs_line_item-tax_code
                gs_line_item-company_code
                gs_line_item-trade_part
                gs_line_item-movement_type
                gs_line_item-item_text
                lv_string
              IN CHARACTER MODE.

      IF gs_line_item-account_num IS  INITIAL AND
         gs_line_item-cost_centre IS  INITIAL AND
         gs_line_item-order_no    IS  INITIAL AND
         gs_line_item-segment     IS  INITIAL AND
         gs_line_item-profit_ctr       IS  INITIAL.

        EXIT.

      ELSE.

        gs_line_item-amt_debit = lv_amt_debit.
        gs_line_item-amt_credit = lv_amt_credit.

        gs_line_item-record_no    =  lv_index + 3.

        gs_line_item-line_item_no =  lv_line_count.


*       Data input format change with left padding of zeros
        PERFORM convert_data_input CHANGING
                             gs_line_item-account_num.

*       Data input format change with left padding of zeros
        PERFORM convert_data_input CHANGING
                             gs_line_item-cost_centre.


        APPEND gs_line_item TO gt_line_item.
        CLEAR gs_line_item.

      ENDIF.

    ENDIF.

  ENDLOOP.

ENDFORM.                    "Process_data



*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  CONVERT_DATA_INPUT
*&amp;amp;--------------------------------------------------------------------*
*   COverts the contents of the data to left padded with zeros
*---------------------------------------------------------------------*
*      --&amp;gt;DATA       text
*---------------------------------------------------------------------*
FORM convert_data_input  CHANGING lv_data TYPE any.

  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      input  = lv_data
    IMPORTING
      output = lv_data.

ENDFORM.                    "CONVERt_DATA_INPUT


*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  CHECK_DATA
*&amp;amp;--------------------------------------------------------------------*
*  This form implements the following functionalities
*---------------------------------------------------------------------*
*  1. Split the document if line items are more than 950
*---------------------------------------------------------------------*
*  2. Mandatory and optional field check
*---------------------------------------------------------------------*
*  3. Posting rehersal for data validation
*---------------------------------------------------------------------*
*  4. format the data into application server file formatt
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
FORM check_data.

*&amp;amp;---------------------------------------------------------------------
*&amp;amp; Local Variables
*&amp;amp;---------------------------------------------------------------------
  DATA : lv_line_count TYPE i,
         lv_str_length TYPE i,
         lv_debit      TYPE bseg-wrbtr,
         lv_credit     TYPE bseg-wrbtr,
         lv_answer     TYPE char1.

  lv_debit   = 0.
  lv_credit  = 0.

  gs_error_log-record_no = gs_header-record_no.

* Mandatory field check for Document header.

  IF   gs_header-company_code IS INITIAL OR
       gs_header-doc_type     IS INITIAL OR
       gs_header-currency     IS INITIAL OR
       gs_header-doc_date     IS INITIAL OR
       gs_header-post_date    IS INITIAL .

    gs_error_log-message = 'Mandatory Field Missing'.
    APPEND gs_error_log TO gt_error_log.

  ENDIF.                     "IF  GS_HEADER-UPLOAD_TYPE IS INITIAL.

  DESCRIBE TABLE gt_line_item LINES lv_line_count.

  IF lv_line_count &amp;gt; 950.

    MESSAGE 'File Validation Error : Number of lines more than 950' TYPE 'I'.
    LEAVE LIST-PROCESSING.

  ELSE.

    PERFORM bapi_document_check.

  ENDIF.



ENDFORM.                    "check_data


*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;     Form GET_FILENAME
*&amp;amp;--------------------------------------------------------------------*
*  This from extracts the filename from the complete local file path
*---------------------------------------------------------------------*
*  Then the physical file path is extracted from the logical file path
*---------------------------------------------------------------------*
*  of application server file. The complete application server file
*---------------------------------------------------------------------*
*  path is formed by combining the physical path and filename.
*---------------------------------------------------------------------*

FORM get_filename.

  DATA: lv_path(150)    TYPE c,
        lv_lines       TYPE i.

  DATA : lt_split_data TYPE STANDARD TABLE OF char100,
         ls_split_data TYPE char100.

  lv_path = p_file.

  SPLIT lv_path AT gc_slash INTO TABLE lt_split_data.

  DESCRIBE TABLE lt_split_data LINES lv_lines.

  READ TABLE lt_split_data  INTO ls_split_data INDEX lv_lines.

  gv_filename = ls_split_data.

ENDFORM.                    "Get_header_text

*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  report_error
*&amp;amp;--------------------------------------------------------------------*
*       This form reports all errors detected during data validations
*---------------------------------------------------------------------*

FORM report_error.

  DATA :  lv_line_no  TYPE i.

  lv_line_no = 4.

  IF gt_error_log[] IS NOT INITIAL.
    SKIP 1.
    WRITE : / 'Date          :' ,  sy-datum,
            / 'Time          :' ,  sy-uzeit,
            / 'User Name     :' ,  sy-uname,
            / 'File Name     :' ,  gv_filename.

    SKIP 1.

    SORT gt_error_log BY record_no ASCENDING.

    IF gv_check_level = gc_line.
      WRITE :/ 'File Check : Error in Line item level'.
    ELSE.
      WRITE :/ 'File Check : Error in Dcoument level'.
    ENDIF.


    LOOP AT gt_error_log INTO gs_error_log FROM 2.

      AT NEW record_no.

        WRITE :/1(11)'Line No :', 14(5) gs_error_log-record_no.
      ENDAT.

      WRITE :/1(10)'Error :', 14(90) gs_error_log-message.

    ENDLOOP.

  ENDIF.

ENDFORM.                    "report_error


*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  Update_Log_table
*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      This form updates the interface run log table with the
*---------------------------------------------------------------------*
*      current status of the file
*---------------------------------------------------------------------*

FORM update_log_table.
*&amp;amp;---------------------------------------------------------------------
*&amp;amp; Local Variables
*&amp;amp;---------------------------------------------------------------------

*  IF gt_error_log[] IS INITIAL.
*    gs_run_log-file_name  = gv_filename.
*    gs_run_log-post_date =  sy-datum.
*    gs_run_log-post_time =  sy-uzeit.
*
*
**Insert the log entry into table
*    MODIFY ztfi_int_run_log
*        FROM gs_run_log.
*
*    IF sy-subrc = 0.
*
*      COMMIT WORK.
*
*    ENDIF.                   "IF SY-SUBRC = 0.
*
*  ENDIF.
*

ENDFORM.                      "Update_Log_table

*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  check_interface_run_log
*&amp;amp;--------------------------------------------------------------------*
*      Validation of the process using log entries in ZTFI_INT_RUN_LOG
*---------------------------------------------------------------------*
*      Any process (check,upload,Post) will checked before excecution
*---------------------------------------------------------------------*
*      to know whether it is already done for the same file or not.This
*---------------------------------------------------------------------*
*      This validation prevents the user from repeating the process
*---------------------------------------------------------------------*
*      by mistake.
*---------------------------------------------------------------------*

FORM check_interface_run_log.

  DATA : lv_post_date TYPE char10,
         lv_post_time TYPE char10,
         lv_answer TYPE char1.

*Get the file path for the application server file
  PERFORM get_filename.

**Get all records corresonding to the file from run log table
*  SELECT *  FROM ztfi_int_run_log INTO TABLE gt_run_log
*                  WHERE   file_name  = gv_filename .
*
*  IF sy-dbcnt &amp;gt; 1.
*
*    SORT gt_run_log BY post_date DESCENDING post_time DESCENDING.
*
*  ENDIF.

*  READ TABLE  gt_run_log INTO gs_run_log INDEX 1.

*  IF sy-subrc = 0.
*
*    WRITE gs_run_log-post_date TO lv_post_date.
*
*    WRITE gs_run_log-post_time TO lv_post_time.
*
*    CONCATENATE 'File already posted on'
*                  lv_post_date
*                  'Time '
*                  lv_post_time
*                  'Would you like to continue ?'
*                  INTO
*                  gv_string
*                  SEPARATED BY space.
*
*    CALL FUNCTION 'POPUP_TO_CONFIRM'
*      EXPORTING
*        titlebar              = 'Confirm file Name'
*        text_question         = gv_string
*        text_button_1         = 'Yes'
*        text_button_2         = 'No'
*        display_cancel_button = ' '
*        start_column          = 20
*        start_row             = 10
*        iv_quickinfo_button_1 = 'Proceed with posting process'
*        iv_quickinfo_button_2 = 'Cancel the posting process'
*      IMPORTING
*        answer                = lv_answer
*      EXCEPTIONS
*        text_not_found        = 1
*        OTHERS                = 2.
*
*    IF sy-subrc &amp;lt;&amp;gt; 0.
*      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
*              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
*    ENDIF.
*
*  ENDIF.
*

  IF lv_answer = gc_cancel.

    PERFORM clear_memory.

    LEAVE LIST-PROCESSING.

  ENDIF.


ENDFORM.                 "CHECK_INTERFACE_RUN_LOG


*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  bapi_document_check
*&amp;amp;--------------------------------------------------------------------*
*      Check The accounting document using BAPI_ACC_DOCUMENT_CHECK
*---------------------------------------------------------------------*
FORM bapi_document_check.


  CONSTANTS :
        lc_idoc    TYPE char4              VALUE 'IDOC',
        lc_rfbu    TYPE char4              VALUE 'RFBU',
        lc_dest    TYPE bdi_logsys-logsys  VALUE space,
        lc_msg_id  TYPE symsgid            VALUE 'F5',
        lc_msg_no  TYPE symsgno            VALUE '201'.


  DATA: ls_doc_header TYPE bapiache09,
        lc_ref_key TYPE bapiache01-obj_key,
        lv_line_cnt   TYPE i,
        lv_error      TYPE char1,
        lv_post       TYPE char1,
        lv_loop_cnt   TYPE i,
        lv_lines      TYPE i.

  DATA : lv_line_count TYPE i,
         lv_str_length TYPE i,
         lv_debit      TYPE bseg-wrbtr,
         lv_credit     TYPE bseg-wrbtr,
         lv_answer     TYPE char1,
         lv_comp_code  TYPE bukrs.

  DATA:
     lt_accnt_rec    TYPE TABLE OF bapiacar09,
     lt_accnt_gl_tmp TYPE TABLE OF bapiacgl09,
     lt_accnt_gl     TYPE TABLE OF bapiacgl09,
     lt_accnt_tax    TYPE TABLE OF bapiactx09,
     lt_currency_amt TYPE TABLE OF bapiaccr09,              "#EC NEEDED
     lt_return       TYPE TABLE OF bapiret2  ,
     lt_accnt_pay    TYPE TABLE OF bapiacap09.

  DATA: lt_belnr TYPE STANDARD TABLE OF rf048_d INITIAL SIZE 0.
  DATA: ls_belnr TYPE rf048_d.
  DATA: gt_a053 TYPE TABLE OF a053,
        gs_a053 TYPE a053.

  DATA: ls_e1bpache09 TYPE e1bpache09,
        ls_e1bpacgl09 TYPE e1bpacgl09,
        ls_e1bpactx09 TYPE e1bpactx09,
        ls_e1bpaccr09 TYPE e1bpaccr09.

  DATA:
       ls_accnt_gl     TYPE bapiacgl09,
       ls_accnt_tax    TYPE bapiactx09,
       ls_currency_amt TYPE bapiaccr09,
       ls_return       TYPE bapiret2  .


  CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET'
    IMPORTING
      own_logical_system = ls_doc_header-obj_sys.

  ls_doc_header-obj_type   = lc_idoc.

  CONCATENATE sy-datum
              sy-uzeit
              INTO  ls_doc_header-obj_key.

*create reference key yourself above statement,

  ls_doc_header-username   = sy-uname.
  ls_doc_header-header_txt = gs_header-head_text .
  ls_doc_header-comp_code  = gs_header-company_code.
  ls_doc_header-doc_date   = gs_header-doc_date.
  ls_doc_header-pstng_date = gs_header-post_date.

  ls_doc_header-fisc_year  = gs_header-post_date+0(4).

  ls_doc_header-doc_type   = gs_header-doc_type.
  ls_doc_header-ref_doc_no = gs_header-ref_num.
  ls_doc_header-bus_act    = lc_rfbu.


  LOOP AT gt_line_item INTO gs_line_item .

    ADD 1 TO lv_line_cnt.

    CLEAR ls_accnt_gl.

    ls_accnt_gl-itemno_acc   = lv_line_cnt.
    ls_accnt_gl-gl_account   = gs_line_item-account_num.
    ls_accnt_gl-tax_code     = gs_line_item-tax_code.
    ls_accnt_gl-item_text    = gs_line_item-item_text.
    ls_accnt_gl-costcenter   = gs_line_item-cost_centre.
    ls_accnt_gl-orderid      = gs_line_item-order_no.
    ls_accnt_gl-profit_ctr   = gs_line_item-profit_ctr.
*    ls_accnt_gl-segment      = gs_line_item-segment.


    IF  gs_line_item-company_code IS INITIAL.

      ls_accnt_gl-comp_code  = gs_header-company_code.

    ENDIF.

    ls_accnt_gl-trade_id    = gs_line_item-trade_part.
    ls_accnt_gl-cs_trans_t  = gs_line_item-movement_type.

    APPEND ls_accnt_gl TO lt_accnt_gl.

    CLEAR ls_currency_amt.
    ls_currency_amt-itemno_acc   = lv_line_cnt.
    ls_currency_amt-currency     = gs_header-currency.
    ls_currency_amt-exch_rate    = gs_header-exchg_rate.

    IF gs_line_item-amt_debit IS NOT INITIAL .

      ls_currency_amt-amt_doccur = gs_line_item-amt_debit.

    ELSE.

      ls_currency_amt-amt_doccur   = gs_line_item-amt_credit * -1.

    ENDIF.


    APPEND ls_currency_amt TO lt_currency_amt.

  ENDLOOP.


  lt_accnt_gl_tmp = lt_accnt_gl.

  SORT lt_accnt_gl_tmp BY tax_code.

  DELETE ADJACENT DUPLICATES FROM lt_accnt_gl_tmp COMPARING tax_code.


  LOOP AT lt_accnt_gl_tmp INTO ls_accnt_gl.

    ADD 1 TO lv_line_cnt.

*    CLEAR ls_accnt_tax.
*
*
*    IF ls_accnt_gl-comp_code IS INITIAL.
*      lv_comp_code = gs_header-company_code.
*    ELSE.
*      lv_comp_code = ls_accnt_gl-comp_code.
*    ENDIF.
*
*
*    CALL FUNCTION 'FI_TAX_GET_CONDITION_TYPES'
*      EXPORTING
*        i_bukrs           = lv_comp_code
*        i_mwskz           = ls_accnt_gl-tax_code
*      TABLES
*        t_a053            = gt_a053[]
*      EXCEPTIONS
*        parameter_error   = 1
*        bukrs_not_found   = 2
*        country_not_found = 3
*        entry_not_found   = 4
*        kalsm_not_found   = 5
*        txjcd_not_found   = 6
*        invalid_length    = 7
*        unknown_error     = 8
*        OTHERS            = 9.
*
*    IF sy-subrc = 0.
*
*      READ TABLE gt_a053[] INTO gs_a053 WITH KEY mwskz = ls_accnt_gl-tax_code.
*
*      ls_accnt_tax-cond_key   = gs_a053-kschl.
*
*    ENDIF.


    ls_accnt_tax-itemno_acc = lv_line_cnt.
    ls_accnt_tax-tax_code   = gs_line_item-tax_code.
    APPEND ls_accnt_tax TO lt_accnt_tax.


    CLEAR ls_currency_amt.
    ls_currency_amt-itemno_acc   = lv_line_cnt.
    ls_currency_amt-currency     = gs_header-currency.
    ls_currency_amt-exch_rate    = gs_header-exchg_rate.
    APPEND ls_currency_amt TO lt_currency_amt.

  ENDLOOP.



  CLEAR lv_error.

  gv_check_level = gc_line.

  CALL FUNCTION 'BAPI_ACC_DOCUMENT_CHECK'
    DESTINATION lc_dest
    EXPORTING
      documentheader = ls_doc_header                        "#EC ENHOK
    TABLES
      accountgl      = lt_accnt_gl                          "#EC ENHOK
      accounttax     = lt_accnt_tax                         "#EC ENHOK
      return         = lt_return.

*Check the return table for any errors detected

  LOOP AT lt_return INTO ls_return WHERE type = gc_error.

    CLEAR gs_error_log.

    gs_error_log-record_no = ls_return-row + 4.
    gs_error_log-message   = ls_return-message.

    APPEND gs_error_log TO gt_error_log .
    lv_error = gc_ok.

  ENDLOOP.  " LOOP AT GT_RETURN INTO GS_RETURN.


  ADD 1 TO lv_loop_cnt.

  IF gt_error_log[] IS INITIAL.

    gv_check_level = gc_header.

    CALL FUNCTION 'BAPI_ACC_DOCUMENT_CHECK'
      DESTINATION lc_dest
      EXPORTING
        documentheader = ls_doc_header                      "#EC ENHOK
      TABLES
        accountgl      = lt_accnt_gl                        "#EC ENHOK
        accounttax     = lt_accnt_tax                       "#EC ENHOK
        currencyamount = lt_currency_amt
        return         = lt_return.

*Check the return table for any errors detected

    LOOP AT lt_return INTO ls_return WHERE type = gc_error.

      CLEAR gs_error_log.

      gs_error_log-record_no = ls_return-row + 4.
      gs_error_log-message   = ls_return-message.

      APPEND gs_error_log TO gt_error_log .

    ENDLOOP.  " LOOP AT GT_RETURN INTO GS_RETURN.


    IF gt_error_log IS INITIAL.

      DATA:lv_period_file TYPE monat,
           lv_period_system TYPE monat,
           lt_ret_table TYPE bapireturn1.


      CALL FUNCTION 'BAPI_COMPANYCODE_GET_PERIOD'
        EXPORTING
          companycodeid       = ls_doc_header-comp_code
          posting_date        = ls_doc_header-pstng_date
       IMPORTING
*   FISCAL_YEAR         =  lv_FISCAL_YEAR
         fiscal_period       = lv_period_file
         return              =  lt_ret_table .


      CALL FUNCTION 'BAPI_COMPANYCODE_GET_PERIOD'
        EXPORTING
          companycodeid = ls_doc_header-comp_code
          posting_date  = sy-datum
        IMPORTING
          fiscal_year   = gv_fiscal_year
          fiscal_period = lv_period_system
          return        = lt_ret_table.


      IF lv_period_file &amp;gt;= lv_period_system.

        CLEAR gv_park.

      ENDIF.


      IF gv_park &amp;lt;&amp;gt; 'X'.

        WRITE : / 'Date          :' ,  sy-datum,
                / 'Time          :' ,  sy-uzeit,
                / 'User Name     :' ,  sy-uname,
                / 'File Name     :' ,  gv_filename.
        SKIP 1.

        CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
          DESTINATION lc_dest
          EXPORTING
            documentheader = ls_doc_header                  "#EC ENHOK
          TABLES
            accountgl      = lt_accnt_gl                    "#EC ENHOK
            accounttax     = lt_accnt_tax                   "#EC ENHOK
            currencyamount = lt_currency_amt
            return         = lt_return.

        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

        CALL FUNCTION 'FI_ACCBELNR_GET'
          TABLES
            t_belnr = lt_belnr.
        CLEAR ls_belnr.
        LOOP AT  lt_belnr INTO ls_belnr .

          WRITE :/'Document Posted :', ls_belnr-belnr_e.
          WRITE :' Company Code :', : ls_belnr-bukrs.

        ENDLOOP.

      ELSE.

        MESSAGE 'The Document will be Parked' TYPE 'I'.
*Get the new session name
        PERFORM get_new_session_name.

        CLEAR gs_bgr00 .
        TRANSLATE gs_bgr00 USING gc_format.

*Fill file header

        lv_str_length = STRLEN( gv_filename ).
        lv_str_length = lv_str_length - 4.

        gs_bgr00-stype   =  gc_s0.
        gs_bgr00-group   =  gv_session_name.
        gs_bgr00-mandt   =  sy-mandt.
        gs_bgr00-usnam   =  sy-uname.
        gs_bgr00-start   =  space.
        gs_bgr00-xkeep   =  gc_ok.
        gs_bgr00-nodata  =  gc_nodata.

        gs_file_upload-data = gs_bgr00.                     "#EC ENHOK
        APPEND gs_file_upload TO gt_file_upload.
        CLEAR gs_file_upload.


        CLEAR gs_bbkpf.
        TRANSLATE gs_bbkpf USING gc_format.

*Fill Document header
        gs_bbkpf-stype   = gc_s1.
        gs_bbkpf-tcode   = gc_tcode.
        gs_bbkpf-bukrs   = gs_header-company_code.
        gs_bbkpf-blart   = gs_header-doc_type.

        WRITE gs_header-doc_date  TO  gs_bbkpf-bldat .

        WRITE gs_header-post_date TO  gs_bbkpf-budat .


        gs_bbkpf-waers   = gs_header-currency.

        IF gs_header-exchg_rate IS NOT INITIAL.

          gs_bbkpf-kursf = gs_header-exchg_rate.

        ENDIF.



        IF gs_header-ref_num IS NOT INITIAL.
          gs_bbkpf-xblnr = gs_header-ref_num.
        ENDIF.                   "IF GS_HEADER-REF_NUM IS NOT INITIAL.


        IF gs_header-head_text IS NOT INITIAL.
          gs_bbkpf-bktxt  = gs_header-head_text.
        ENDIF.                   "IF GS_HEADER-REF_NUM IS NOT INITIAL.


        LOOP AT gt_line_item INTO gs_line_item.

          CLEAR gs_bbseg.

          TRANSLATE gs_bbseg USING gc_format.

          IF gs_line_item-line_item_no = 1.

            gs_file_upload-data = gs_bbkpf.                 "#EC ENHOK
            APPEND gs_file_upload TO gt_file_upload.
            CLEAR gs_file_upload.

          ENDIF.                 "IF GS_LINE_ITEM-LINE_ITEM_NO = 1.

*        fill document items.

          gs_bbseg-stype  =  gc_s2.
          gs_bbseg-tbnam  =  gc_bseg.

          IF gs_line_item-amt_debit IS NOT INITIAL.

            gs_bbseg-newbs  =  gc_pkey_40 .

            WRITE gs_line_item-amt_debit
            TO gs_bbseg-wrbtr
            NO-GROUPING
            CURRENCY gs_bbkpf-waers .

          ELSE.
            gs_bbseg-newbs  =  gc_pkey_50.

            WRITE gs_line_item-amt_credit
             TO gs_bbseg-wrbtr
             NO-GROUPING
             CURRENCY gs_bbkpf-waers .

          ENDIF.


          IF gs_line_item-tax_code IS NOT INITIAL.
            gs_bbseg-mwskz = gs_line_item-tax_code.
          ENDIF.                 "IF GS_LINE_ITEM-TAX_CODE IS NOT INITIAL.


          IF gs_line_item-cost_centre IS NOT INITIAL.
            gs_bbseg-kostl = gs_line_item-cost_centre.
          ENDIF. "IF GS_LINE_ITEM-COST_CENTRE IS NOT INITIAL.


          IF gs_line_item-order_no  IS NOT INITIAL.
            gs_bbseg-aufnr = gs_line_item-order_no.
          ENDIF.                 "IF GS_LINE_ITEM-ORDER_NO  IS NOT INITIAL.


          IF gs_line_item-item_text IS NOT INITIAL.
            gs_bbseg-sgtxt = gs_line_item-item_text.
          ENDIF.


          IF gs_line_item-profit_ctr  IS NOT INITIAL.
            gs_bbseg-prctr = gs_line_item-profit_ctr.
          ENDIF.


          IF gs_line_item-segment IS NOT INITIAL.
            gs_bbseg-segment = gs_line_item-segment.
          ENDIF.

          IF gs_line_item-account_num IS NOT INITIAL.
            gs_bbseg-newko = gs_line_item-account_num.
          ENDIF.

          IF gs_line_item-company_code IS NOT INITIAL AND
             gs_line_item-line_item_no &amp;lt;&amp;gt; 1.
            gs_bbseg-newbk = gs_line_item-company_code.
          ENDIF.


          gs_file_upload-data = gs_bbseg.                   "#EC ENHOK
          APPEND gs_file_upload TO gt_file_upload.
          CLEAR gs_file_upload.

        ENDLOOP.

        PERFORM park_document.

      ENDIF.

    ENDIF.

  ENDIF.

ENDFORM.                    "bapi_document_check


*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  CONVERT_DATE_FORMAT
*&amp;amp;--------------------------------------------------------------------*
*      Converts date formatt from DDMMYYYY to YYYYMMDD
*---------------------------------------------------------------------*
*      --&amp;gt;DATE       Date
*---------------------------------------------------------------------*
FORM convert_date_format CHANGING date TYPE any .

  CALL FUNCTION 'CONVERSION_EXIT_DATEX_INPUT'
    EXPORTING
      input  = date
    IMPORTING
      output = date.

ENDFORM.                    "CONVERt_DATE_INPUT

*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  get_new_session_name
*&amp;amp;--------------------------------------------------------------------*
*       Get new Session Name by from date and time
*---------------------------------------------------------------------*
FORM get_new_session_name.

  CONSTANTS :
         lc_fi TYPE char2 VALUE 'FI'.

  gv_session_name+0(2) = lc_fi.
  gv_session_name+2(4) = sy-datum+2(4).
  gv_session_name+6(6) = sy-uzeit.

ENDFORM.                    "get_new_session_name


**&amp;amp;--------------------------------------------------------------------*
**&amp;amp;      Form  Post_data
**&amp;amp;--------------------------------------------------------------------*
**      This form is called only when the program is run in background
**---------------------------------------------------------------------*
**      The form uses RFBIBL00 program for posting the data to SAP
**---------------------------------------------------------------------*
*
FORM park_document.

*&amp;amp;---------------------------------------------------------------------
*&amp;amp; Local tables
*&amp;amp;---------------------------------------------------------------------
  DATA : lt_list  TYPE STANDARD TABLE OF abaplist,
         lt_vlist TYPE STANDARD TABLE OF char100 .

*&amp;amp;---------------------------------------------------------------------
*&amp;amp; Local Structures
*&amp;amp;---------------------------------------------------------------------
  DATA : ls_vlist TYPE char100 .

*&amp;amp;---------------------------------------------------------------------
*&amp;amp; Local Variables
*&amp;amp;---------------------------------------------------------------------
  DATA : lv_que_id   TYPE apql-qid,
         lv_group_id TYPE apql-groupid,
         lv_read_log TYPE char1 ,
         lv_server_file TYPE rcgfiletr-ftappl,
         lv_local_file TYPE rcgfiletr-ftfront,
         lv_server_filename TYPE ibipparms-path,
         lv_string TYPE string,
         lv_doc_no TYPE char10.

  DATA :lv_numkr TYPE numkr,
        lv_nrlevel_old TYPE nrlevel,
        lv_nrlevel_new TYPE nrlevel.


  lv_server_filename = 'G:usrsapFCDDVEBMGS00workpark.dat'.

  OPEN DATASET lv_server_filename
                     FOR OUTPUT
                     IN TEXT MODE
              ENCODING DEFAULT.


  LOOP AT  gt_file_upload INTO gs_file_upload.

*Transfer data to application server
    TRANSFER gs_file_upload TO lv_server_filename.

  ENDLOOP. " LOOP AT  GT_FILE_UPLOAD INTO GS_FILE_UPLOAD.

  CLOSE DATASET lv_server_filename.


  SELECT SINGLE numkr FROM t003 INTO lv_numkr WHERE blart = 'SA'.

  SELECT SINGLE nrlevel FROM nriv INTO lv_nrlevel_old WHERE
                                object    = 'RF_BELEG' AND
                                subobject = gs_header-company_code AND
                                nrrangenr = lv_numkr AND
                                toyear    = gv_fiscal_year.

  SUBMIT rfbibl00 WITH  ds_name   =   lv_server_filename
                  WITH  fl_check  =   space
                  WITH  callmode  =   'C'
                  WITH  xinf      =   gc_ok
                  AND RETURN.
  IF sy-subrc &amp;lt;&amp;gt; 0.

    WRITE :/ 'Error: Check the file path'(028).
    LEAVE LIST-PROCESSING.

  ELSE.


    SELECT SINGLE nrlevel FROM nriv INTO lv_nrlevel_new WHERE
                                object    = 'RF_BELEG' AND
                                subobject = gs_header-company_code AND
                                nrrangenr = lv_numkr AND
                                toyear    =  gv_fiscal_year.

    IF lv_nrlevel_old &amp;lt;&amp;gt; lv_nrlevel_new.

      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
        EXPORTING
          input  = lv_nrlevel_new
        IMPORTING
          output = lv_nrlevel_new.


      WRITE :/'Document Parked :',18(10) lv_nrlevel_new.
      WRITE :' Company Code    :', gs_header-company_code.

    ELSE.

      WRITE :/'Document could not be Parked : Program Exception'.

    ENDIF.                     "if Sy-subrc &amp;lt;&amp;gt; 0.

  ENDIF.

ENDFORM.                          "post_data


.


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  USER_COMMAND_9001  INPUT
*&amp;amp;---------------------------------------------------------------------*
*       For action on user command in PBO of ALV Screen 9001.
*----------------------------------------------------------------------*
MODULE user_command_9001 INPUT.

  DATA: lv_savecode TYPE sy-ucomm.

  lv_savecode = gv_okcode_9001.

  CLEAR gv_okcode_9001.

  CASE lv_savecode.

    WHEN 'BACK1'.
* Go back to selection screen.

*      LEAVE LIST-PROCESSING.
*      EXIT.
      gv_back_flag = 'X'.
      gv_ucomm = 'ONLI'.
      CALL SELECTION-SCREEN 1000.
*      LEAVE TO SCREEN 0.

    WHEN 'CONTINUE'.
* Move to next screen.
      gv_continue_flag = 'X'.
      LEAVE TO SCREEN 0.

  ENDCASE. "case lv_savecode


ENDMODULE.                 " USER_COMMAND_9001  INPUT


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  prepare_field_catalog
*&amp;amp;---------------------------------------------------------------------*
*       Used to prepare field catalog for table gt_line_item in ALV
*----------------------------------------------------------------------*

FORM prepare_field_catalog .

  CLEAR wa_fcat.
  REFRESH i_fcat.

  wa_fcat-col_pos = '1'.
  wa_fcat-fieldname = 'RECORD_NO'.
  wa_fcat-tabname = 'GT_LINE_ITEM'.
  wa_fcat-just = 'R'.
  wa_fcat-scrtext_m = 'Record Number'.

  APPEND wa_fcat TO i_fcat.
  CLEAR wa_fcat.

  wa_fcat-col_pos = '2'.
  wa_fcat-fieldname = 'LINE_ITEM_NO'.
  wa_fcat-tabname = 'GT_LINE_ITEM'.
  wa_fcat-just = 'R'.
  wa_fcat-scrtext_m = 'Item Number'.

  APPEND wa_fcat TO i_fcat.
  CLEAR wa_fcat.

  wa_fcat-col_pos = '3'.
  wa_fcat-fieldname = 'ACCOUNT_NUM'.
  wa_fcat-tabname = 'GT_LINE_ITEM'.
  wa_fcat-just = 'R'.
  wa_fcat-scrtext_m = 'Account Number'.

  APPEND wa_fcat TO i_fcat.
  CLEAR wa_fcat.

  wa_fcat-col_pos = '4'.
  wa_fcat-fieldname = 'COST_CENTRE'.
  wa_fcat-tabname = 'GT_LINE_ITEM'.
  wa_fcat-just = 'R'.
  wa_fcat-scrtext_m = 'Cost Centre'.

  APPEND wa_fcat TO i_fcat.
  CLEAR wa_fcat.

  wa_fcat-col_pos = '5'.
  wa_fcat-fieldname = 'ORDER_NO'.
  wa_fcat-tabname = 'GT_LINE_ITEM'.
  wa_fcat-just = 'R'.
  wa_fcat-scrtext_m = 'Order Number'.

  APPEND wa_fcat TO i_fcat.
  CLEAR wa_fcat.

  wa_fcat-col_pos = '6'.
  wa_fcat-fieldname = 'SEGMENT'.
  wa_fcat-tabname = 'GT_LINE_ITEM'.
  wa_fcat-just = 'R'.
  wa_fcat-scrtext_m = 'Segment'.

  APPEND wa_fcat TO i_fcat.
  CLEAR wa_fcat.

  wa_fcat-col_pos = '7'.
  wa_fcat-fieldname = 'PROFIT_CTR'.
  wa_fcat-tabname = 'GT_LINE_ITEM'.
  wa_fcat-just = 'R'.
  wa_fcat-scrtext_m = 'Profit Center'.

  APPEND wa_fcat TO i_fcat.
  CLEAR wa_fcat.


ENDFORM.                    " prepare_field_catalog
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  output  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*

MODULE status_9001 OUTPUT.
  SET PF-STATUS 'PF9001'.
  SET TITLEBAR '001'.

ENDMODULE.                 " STATUS_9001  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  PREPARE_ALV  OUTPUT
*&amp;amp;---------------------------------------------------------------------*
*       Preparing ALV grid for screen 9001.
*----------------------------------------------------------------------*
MODULE prepare_alv OUTPUT.

  IF gv_control IS INITIAL.

    CREATE OBJECT gv_control
      EXPORTING
*    PARENT                      =
        container_name              = 'GV_CONTAINER'
*    STYLE                       =
*    LIFETIME                    = lifetime_default
*    REPID                       =
*    DYNNR                       =
*    NO_AUTODEF_PROGID_DYNNR     =
*  EXCEPTIONS
*    CNTL_ERROR                  = 1
*    CNTL_SYSTEM_ERROR           = 2
*    CREATE_ERROR                = 3
*    LIFETIME_ERROR              = 4
*    LIFETIME_DYNPRO_DYNPRO_LINK = 5
*    others                      = 6
        .
    IF sy-subrc &amp;lt;&amp;gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.


  ENDIF. "IF gv_control IS INITIAL

  IF gv_alv IS INITIAL.

    CREATE OBJECT gv_alv
      EXPORTING
*    I_SHELLSTYLE      = 0
*    I_LIFETIME        =
        i_parent          = gv_control
*    I_APPL_EVENTS     = space
*    I_PARENTDBG       =
*    I_APPLOGPARENT    =
*    I_GRAPHICSPARENT  =
*    I_NAME            =
*    I_FCAT_COMPLETE   = SPACE
*  EXCEPTIONS
*    ERROR_CNTL_CREATE = 1
*    ERROR_CNTL_INIT   = 2
*    ERROR_CNTL_LINK   = 3
*    ERROR_DP_CREATE   = 4
*    others            = 5
    .
    IF sy-subrc &amp;lt;&amp;gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

  ENDIF. "IF gv_alv IS INITIAL

* Field catalog for table in alv display
  PERFORM prepare_field_catalog.

* Preparing table for ALV display
  CALL METHOD gv_alv-&amp;gt;set_table_for_first_display
*  EXPORTING
*    I_BUFFER_ACTIVE               =
*    I_BYPASSING_BUFFER            =
*    I_CONSISTENCY_CHECK           =
*    I_STRUCTURE_NAME              =
*    IS_VARIANT                    =
*    I_SAVE                        =
*    I_DEFAULT                     = 'X'
*    IS_LAYOUT                     =
*    IS_PRINT                      =
*    IT_SPECIAL_GROUPS             =
*    IT_TOOLBAR_EXCLUDING          =
*    IT_HYPERLINK                  =
*    IT_ALV_GRAPHICS               =
*    IT_EXCEPT_QINFO               =
*    IR_SALV_ADAPTER               =
    CHANGING
      it_outtab                     = gt_line_item
      it_fieldcatalog               = i_fcat
*    IT_SORT                       =
*    IT_FILTER                     =
*  EXCEPTIONS
*    INVALID_PARAMETER_COMBINATION = 1
*    PROGRAM_ERROR                 = 2
*    TOO_MANY_LINES                = 3
*    others                        = 4
          .
  IF sy-subrc &amp;lt;&amp;gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDMODULE.                 " output  OUTPUT



*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  INITIALIZE_FIELDCAT
*&amp;amp;---------------------------------------------------------------------*
*       Initialize field catalog
*----------------------------------------------------------------------*

FORM initialize_fieldcat.

  CLEAR wa_fcat.
  REFRESH i_fcat.

  wa_fcat-col_pos = '1'.
  wa_fcat-fieldname = 'RECORD_NO'.
  wa_fcat-tabname = 'GT_LINE_ITEM'.
  wa_fcat-just = 'R'.
  wa_fcat-seltext = 'Record Number'.

  APPEND wa_fcat TO i_fcat.
  CLEAR wa_fcat.

  wa_fcat-col_pos = '2'.
  wa_fcat-fieldname = 'LINE_ITEM_NO'.
  wa_fcat-tabname = 'GT_LINE_ITEM'.
  wa_fcat-just = 'R'.
  wa_fcat-seltext = 'Item Number'.

  APPEND wa_fcat TO i_fcat.
  CLEAR wa_fcat.

  wa_fcat-col_pos = '3'.
  wa_fcat-fieldname = 'ACCOUNT_NUM'.
  wa_fcat-tabname = 'GT_LINE_ITEM'.
  wa_fcat-just = 'R'.
  wa_fcat-seltext = 'Account Number'.

  APPEND wa_fcat TO i_fcat.
  CLEAR wa_fcat.

  wa_fcat-col_pos = '4'.
  wa_fcat-fieldname = 'COST_CENTRE'.
  wa_fcat-tabname = 'GT_LINE_ITEM'.
  wa_fcat-just = 'R'.
  wa_fcat-seltext = 'Cost Centre'.

  APPEND wa_fcat TO i_fcat.
  CLEAR wa_fcat.

  wa_fcat-col_pos = '5'.
  wa_fcat-fieldname = 'ORDER_NO'.
  wa_fcat-tabname = 'GT_LINE_ITEM'.
  wa_fcat-just = 'R'.
  wa_fcat-seltext = 'Order Number'.

  APPEND wa_fcat TO i_fcat.
  CLEAR wa_fcat.

  wa_fcat-col_pos = '6'.
  wa_fcat-fieldname = 'SEGMENT'.
  wa_fcat-tabname = 'GT_LINE_ITEM'.
  wa_fcat-just = 'R'.
  wa_fcat-seltext = 'Segment'.

  APPEND wa_fcat TO i_fcat.
  CLEAR wa_fcat.

  wa_fcat-col_pos = '7'.
  wa_fcat-fieldname = 'PROFIT_CTR'.
  wa_fcat-tabname = 'GT_LINE_ITEM'.
  wa_fcat-just = 'R'.
  wa_fcat-seltext = 'Profit Center'.

  APPEND wa_fcat TO i_fcat.
  CLEAR wa_fcat.

ENDFORM.                    " INITIALIZE_FIELDCAT


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  INITIALIZE_LAYOUT
*&amp;amp;---------------------------------------------------------------------*
* Add layout details
*----------------------------------------------------------------------*
FORM initialize_layout .

*  st_layout-colwidth_optimize = 'X'.
*  st_layout-zebra             = 'X'.
*
ENDFORM.                    " INITIALIZE_LAYOUT
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  display_alv_rpt
*&amp;amp;---------------------------------------------------------------------*
FORM display_alv_rpt .

  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
   EXPORTING
*   I_INTERFACE_CHECK              = ' '
*   I_BYPASSING_BUFFER             =
*   I_BUFFER_ACTIVE                = ' '
 i_callback_program             = sy-repid
*   I_CALLBACK_PF_STATUS_SET       = ' '
*   I_CALLBACK_USER_COMMAND        = ' '
*   I_STRUCTURE_NAME               =
*   IS_LAYOUT                      =
     it_fieldcat                    = i_fcat
*   IT_EXCLUDING                   =
*   IT_SPECIAL_GROUPS              =
*   IT_SORT                        =
*   IT_FILTER                      =
*   IS_SEL_HIDE                    =
*   I_DEFAULT                      = 'X'
 i_save                         = 'X'
*   IS_VARIANT                     =
*   IT_EVENTS                      =
*   IT_EVENT_EXIT                  =
*   IS_PRINT                       =
*   IS_REPREP_ID                   =
*   I_SCREEN_START_COLUMN          = 0
*   I_SCREEN_START_LINE            = 0
*   I_SCREEN_END_COLUMN            = 0
*   I_SCREEN_END_LINE              = 0
*   IR_SALV_LIST_ADAPTER           =
*   IT_EXCEPT_QINFO                =
*   I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER        =
*   ES_EXIT_CAUSED_BY_USER         =
    TABLES
      t_outtab                       = gt_line_item
* EXCEPTIONS
*   PROGRAM_ERROR                  = 1
*   OTHERS                         = 2
            .
  IF sy-subrc &amp;lt;&amp;gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
*come back

ENDFORM.                    " display_alv_rpt&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Sep 2007 07:53:52 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-user-get-detail/m-p/2782800#M648708</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-18T07:53:52Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_USER_GET_DETAIL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-user-get-detail/m-p/2782801#M648709</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;simply like this &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;getting user data &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;* --- Read user-related data&lt;/P&gt;&lt;P&gt;      call function 'BAPI_USER_GET_DETAIL'&lt;/P&gt;&lt;P&gt;        exporting&lt;/P&gt;&lt;P&gt;          username       = username&lt;/P&gt;&lt;P&gt;        importing&lt;/P&gt;&lt;P&gt;          logondata      = tlogondata-logondata&lt;/P&gt;&lt;P&gt;          defaults       = tdefaults-defaults&lt;/P&gt;&lt;P&gt;          address        = taddress+12&lt;/P&gt;&lt;P&gt;          company        = tcompany-company&lt;/P&gt;&lt;P&gt;          ref_user       = trefdata-ref_user&lt;/P&gt;&lt;P&gt;          alias          = taliasdata-alias&lt;/P&gt;&lt;P&gt;        tables&lt;/P&gt;&lt;P&gt;          parameter      = xparameter&lt;/P&gt;&lt;P&gt;          profiles       = xprofiles&lt;/P&gt;&lt;P&gt;          activitygroups = xactivitygroups&lt;/P&gt;&lt;P&gt;          return         = return.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward if usefull&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Sep 2007 07:55:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-user-get-detail/m-p/2782801#M648709</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-18T07:55:46Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_USER_GET_DETAIL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-user-get-detail/m-p/2782802#M648710</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;u just pass data in USERNAME parameter u ll get all details of user &lt;SPAN __jive_emoticon_name="happy"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this will work&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Sep 2007 07:59:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-user-get-detail/m-p/2782802#M648710</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-18T07:59:09Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_USER_GET_DETAIL</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-user-get-detail/m-p/2782803#M648711</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;thanks all for yout early reply&lt;/P&gt;&lt;P&gt;but i to know&lt;/P&gt;&lt;P&gt;what for import export and table returns is used for&lt;/P&gt;&lt;P&gt; please tell me  what i should give in then&lt;/P&gt;&lt;P&gt;if i want to use all the three&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;anuj&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Sep 2007 10:35:00 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-user-get-detail/m-p/2782803#M648711</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-18T10:35:00Z</dc:date>
    </item>
  </channel>
</rss>

