Showing posts with label PROGRAM of Pofit Centre upload. Show all posts
Showing posts with label PROGRAM of Pofit Centre upload. Show all posts

Monday, August 13, 2012

Program of profit centre upload



PROGRAM:-----

  *&---------------------------------------------------------------------*
*& Report  ZPROFIT_CENTER
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*


REPORT  ZPC_TEST.
*----------------------------------------------------------------------*
* TYPES
*----------------------------------------------------------------------*
TYPESBEGIN OF T_PCU,        "Structure for profit center upload
      CO_AREA       
TYPE  KOKRS,
      PROFIT_CENTRE 
TYPE  PRCTR ,
      VALID_FROM    
TYPE  SYDATUM ,
      VALID_TO      
TYPE  SYDATUM ,
      NAME          
TYPE  KTEXT ,
      DESCRIPTION   
TYPE  LTEXT ,
      PERSON        
TYPE  VERAPC ,
      DEPARTMENT    
TYPE  ABTEIL ,
      
GROUP         TYPE  PHINR,
  
END OF T_PCU,

  
BEGIN OF T_LOG,            "Structure for log
    PRCTR   
TYPE PRCTR,
    
MESSAGE TYPE BAPI_MSG,
  
END OF T_LOG.

*----------------------------------------------------------------------*
* DATA
*----------------------------------------------------------------------*
DATA: WA_PCID       TYPE  BAPI0015ID2,
      WA_S1         
TYPE  BAPI0015_4,
      LV_FROM       
TYPE  BAPI0015_3-DATE,
      LV_TO         
TYPE  BAPI0015_3-DATE,
      WA_RETURN     
TYPE  BAPIRET2,
      WA_RETURN1    
TYPE  BAPIRET2,
      WA_BASIC_DATA 
TYPE  BAPI0015_4,
      WA_ID         
TYPE  BAPI0015ID2,
      LV_FROM_DATE  
TYPE  SYDATUM,
      LV_TO_DATE    
TYPE  SYDATUM,
      WA_ERROR      
TYPE  T_LOG,
      WA_SUCCESS    
TYPE  T_LOG,
      LI_ERROR      
TYPE  STANDARD TABLE OF T_LOG,
      LI_SUCCESS    
TYPE  STANDARD TABLE OF T_LOG,
      LV_ERROR      
TYPE  I,
      LV_SUCCESS    
TYPE  I,
      LV_TOTAL      
TYPE  I,
      IT            
TYPE STANDARD TABLE OF T_PCU,   "declaration of internal table
      WA            
TYPE T_PCU,                     " work area declaration
      LV_SUBRC      
LIKE SY-SUBRC,
      LT_IT_TAB     
TYPE FILETABLE.

*----------------------------------------------------------------------*
* SELECTION SCREEN
*----------------------------------------------------------------------*

SELECTION-
SCREEN BEGIN OF BLOCK BLOCK-1 WITH FRAME TITLE TEXT-001.

PARAMETERS : F_LOC LIKE RLGRAP-FILENAME DEFAULT 'D:\RT.XLS'.

SELECTION-
SCREEN END OF BLOCK BLOCK-1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR F_LOC.
  
CALL FUNCTION 'F4_FILENAME'
    
EXPORTING
      PROGRAM_NAME  = SYST-CPROG
      DYNPRO_NUMBER = SYST-DYNNR
      FIELD_NAME    = 
'F_LOC'
    
IMPORTING
      FILE_NAME     = F_LOC.

*----------------------------------------------------------------------*
* GUI UPLOAD
*----------------------------------------------------------------------*
START-
OF-SELECTION.
  
CALL FUNCTION 'GUI_UPLOAD'
    
EXPORTING
      FILENAME                      = 
'D:/RT.XLS'
      FILETYPE                      = 
'ASC'
     HAS_FIELD_SEPARATOR            = 
'X'
*   HEADER_LENGTH                 = 0
*   READ_BY_LINE                   = 'X'
     DAT_MODE                      = 
' '
*   CODEPAGE                      = ' '
*   IGNORE_CERR                   = ABAP_TRUE
*   REPLACEMENT                   = '#'
*   CHECK_BOM                     = ' '
*   VIRUS_SCAN_PROFILE            =
*   NO_AUTH_CHECK                 = ' '
* IMPORTING
*   FILELENGTH                    =
*   HEADER                        =
    
TABLES
      DATA_TAB                      = IT
* 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.

  
DELETE IT INDEX 1.

  
LOOP AT IT INTO WA.

    
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      
EXPORTING
        
INPUT  = WA-CO_AREA
      
IMPORTING
        
OUTPUT = WA-CO_AREA.

    WA_ID-CO_AREA = WA-CO_AREA.

    
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      
EXPORTING
        
INPUT  = WA-PROFIT_CENTRE
      
IMPORTING
        
OUTPUT = WA-PROFIT_CENTRE.

    WA_ID-PROFIT_CTR = WA-PROFIT_CENTRE.

    WA_BASIC_DATA-PRCTR_NAME = WA-NAME.
    WA_BASIC_DATA-LONG_TEXT = WA-DESCRIPTION.
    WA_BASIC_DATA-IN_CHARGE = WA-PERSON.
    WA_BASIC_DATA-DEPARTMENT = WA-DEPARTMENT.
    WA_BASIC_DATA-PRCTR_HIER_GRP = WA-
GROUP.
*----------------------------------------------------------------------*
* BAPI PROFIT CENTER CREARTE FUNCTION MODULE
*----------------------------------------------------------------------*
    
CALL FUNCTION 'BAPI_PROFITCENTER_CREATE'
      
EXPORTING
        PROFITCENTERID        = WA_ID
        VALIDFROM             = WA-VALID_FROM
        VALIDTO               = WA-VALID_TO
        BASICDATA             = WA_BASIC_DATA
*   ADDRESS               =
*   COMMUNICATION         =
*   INDICATORS            =
*   TESTRUN               =
*   LANGUAGE              =
     
IMPORTING
       
RETURN                = WA_RETURN
*   PROFITCENTER          =
*   CONTROLLINGAREA       =
* TABLES
*   COMPANYCODES          =
           .

    
IF WA_RETURN-TYPE NE 'E'.
      
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'    "
        
EXPORTING
          
WAIT   = 'X'
        
IMPORTING
          
RETURN = WA_RETURN1.

      WA_SUCCESS-PRCTR   = WA-PROFIT_CENTRE.
      WA_SUCCESS-
MESSAGE = WA_RETURN-MESSAGE.
      
APPEND WA_SUCCESS TO LI_SUCCESS.
      
CLEAR  WA_SUCCESS.
      
ADD 1 TO LV_SUCCESS.

    
ELSE.
      WA_ERROR-PRCTR   = WA-PROFIT_CENTRE.
      WA_ERROR-
MESSAGE = WA_RETURN-MESSAGE.
      
APPEND WA_ERROR TO LI_ERROR.
      
CLEAR  WA_ERROR.
      
ADD 1 TO LV_ERROR.
    
ENDIF.
  
ENDLOOP.
  LV_TOTAL = LV_ERROR + LV_SUCCESS.
  
WRITE:/10(45)'Total no of profit centers processed:', LV_TOTAL,
        /10(
45)'Total no of successfully created profit centers:', LV_SUCCESS,
        /10(
45)'Total no of failed profit centers:', LV_ERROR.
  
IF LV_SUCCESS IS NOT INITIAL.

    
SKIP 2.

    
WRITE:/10'Susseccfully created profit centers'.
    
WRITE:/10 SY-ULINE(102).
    
WRITE:/10 SY-VLINE,
          (
25'Profit Center No'COLOR COL_HEADING, SY-VLINE,
          (
70' Message'COLOR COL_HEADING, SY-VLINE.
    
WRITE:/10 SY-ULINE(102).
    
LOOP AT LI_SUCCESS INTO WA_SUCCESS.
      
WRITE:/10 SY-VLINE,
            (
25)WA_SUCCESS-PRCTR ,SY-VLINE,
            (
70)WA_SUCCESS-MESSAGE, SY-VLINE.
      
WRITE:/10 SY-ULINE(102).
    
ENDLOOP.
  
ENDIF.

  
IF LV_ERROR IS NOT INITIAL.
    
SKIP 2.
    
WRITE:/10'Unsuccessful profit centers'.
    
WRITE:/10 SY-ULINE(102).
    
WRITE:/10 SY-VLINE,
          (
25'Profit Center No'COLOR COL_HEADING, SY-VLINE,
          (
70' Message'COLOR COL_HEADING, SY-VLINE.
    
WRITE:/10 SY-ULINE(102).
    
LOOP AT LI_ERROR INTO WA_ERROR.
      
WRITE:/10 SY-VLINE,
            (
25)WA_ERROR-PRCTR ,SY-VLINE,
            (
70)WA_ERROR-MESSAGE, SY-VLINE.
      
WRITE:/10 SY-ULINE(102).
    
ENDLOOP.
  
ENDIF.

END-OF-SELECTION.