You are on page 1of 11

*&---------------------------------------------------------------------*

*& Report ZVIMTA_BDC_F_22


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZVIMTA_BDC_F_22.
**********************************************************************
*Report
:
*Description : bdc For f'22 (Invoice Header) )for vimtha.
*Company
:
*Location
:
*Module
:
*Developed By :
*Created on
:
*Approved By :
*Request On
:
*Issue No
:
*Completed On :
*Submitted On :
*Request ID
:
**********************************************************************

* flat File
*_____________
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

BKPF-BLDAT
BKPF-BLART
BKPF-BUKRS
BKPF-BUDAT
BKPF-MONAT
BKPF-WAERS
BKPF-BKTXT
RF05A-NEWBS
RF05A-NEWKO
BSEG-WRBTR
BSEG-GSBER
BSEG-ZFBDT
BSEG-SGTXT
RF05A-NEWBS
RF05A-NEWKO
BSEG-WRBTR
BSEG-SGTXT

26.11.2012
DR
rel
26.11.2012
8
inr
Invoice Posting
1
1400001
5000
relh
26.11.2012
Invoice No:
50
300000
5000
Invoice No:1234 posting

INITIALIZATION.
**********************************************************************
*********************** T A B L E S *********************************
**********************************************************************

**********************************************************************
*************************** T Y P E S ********************************
**********************************************************************
type-pools : TRUXS.
types : begin Of ty_flat_file,
Doc_Date
,
Doc_Type
Company_Code
Posting_Date
Posting_Period
Currency
Doc_Header_Text

TYPE

BKPF-BLDAT,

"

'BKPF-BLDAT'

TYPE
TYPE
TYPE
TYPE
TYPE
TYPE

BKPF-BLART,
BKPF-BUKRS,
BKPF-BUDAT,
BKPF-MONAT,
BKPF-WAERS,
BKPF-BKTXT,

"
"
"
"
"
"

'BKPF-BLART',
'BKPF-BUKRS',
'BKPF-BUDAT',
'BKPF-MONAT',
'BKPF-WAERS',
'BKPF-BKTXT',

Posting_Key
Cust_Account_No

TYPE
TYPE

RF05A-NEWBS, " 'RF05A-NEWBS',


RF05A-NEWKO, " 'RF05A-NEWKO',

Amt_in_Local

TYPE

BSEG-WRBTR,

" 0000

BSEG-W

Business_area

TYPE

BSEG-GSBER,

" 0000

BSEG-G

Base_Line_Date

TYPE

BSEG-ZFBDT,

" 0000

BSEG-Z

Text

TYPE

BSEG-SGTXT,

" 0000

BSEG-S

Posting_Key1

TYPE

RF05A-NEWBS, " 0000

RF05A-

Account_No

TYPE

RF05A-NEWKO, " 0000

RF05A-

TYPE
TYPE

BSEG-WRBTR,
BSEG-SGTXT,

RBTR
SBER
FBDT
GTXT
NEWBS
NEWKO
Amount_in_Local_Curr1
Text1
end of ty_flat_file.
*PROGRAM
*DYNPRO
*DYNBEGIN
*FNAM
*FVAL

" 0000

TYPE
TYPE

BDC_PROG
BDC_DYNR
TYPE
BDC_START
TYPE
FNAM_____4
TYPE
BDC_FVAL

**********************************************************************
**************I N T E R N A L T A B L E S ***************************
**********************************************************************
DATA : IT_FLAT_FILE TYPE TABLE OF TY_FLAT_FILE,
IT_BDCDATA TYPE TABLE OF BDCDATA.
**********************************************************************
******************* W O R K A R E A ******************************
**********************************************************************
DATA : WA_FLAT_FILE TYPE TY_FLAT_FILE,
WA_BDCDATA TYPE BDCDATA.
**********************************************************************
******************* F I E L D S Y M B O L S ************************

**********************************************************************

**********************************************************************
************************* V A R I A B L E ****************************
**********************************************************************
DATA : FILENAME LIKE RLGRAP-FILENAME.
DATA : IT_FLAT_FILE_EXCEL TYPE TABLE OF ALSMEX_TABLINE," Interne Tabelle mit Ex
cel-Daten
WA_FLAT_FILE_EXCEL TYPE ALSMEX_TABLINE," Interne Tabelle mit Excel-Date
n
WA_FLAT_FILE_EXCEL1 TYPE ALSMEX_TABLINE," Interne Tabelle mit Excel-Date
n
*
it_flat_file TYPE STANDARD TABLE of ty_flat_file.
I_TAB_RAW_DATA TYPE TRUXS_T_TEXT_DATA.
*
p_file
LIKE RLGRAP-FILENAME.
**********************************************************************
*************** S E L E C T I O N S C R E E N ********************
**********************************************************************
PARAMETERS : P_FILE TYPE IBIPPARMS-PATH.
PARAMETERS : R_TXT RADIOBUTTON GROUP G1,
R_EXCEL RADIOBUTTON GROUP G1.
**********************************************************************
*************** AT SELECTION-SCREEN ON VALUE-REQUEST FOR ************
**********************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL FUNCTION 'F4_FILENAME'
* EXPORTING
* PROGRAM_NAME
= SYST-CPROG
* DYNPRO_NUMBER
= SYST-DYNNR
* FIELD_NAME
= ' '
IMPORTING
FILE_NAME
= P_FILE
of Filemngr
.

"Path name selected by user with help

**********************************************************************
*************** AT SELECTION-SCREEN ************
**********************************************************************
AT SELECTION-SCREEN.
perform validation_for_file_extention.
**********************************************************************
*************** START-OF-SELECTION ********************
**********************************************************************
START-OF-SELECTION.
translate p_file TO UPPER CASE.
PERFORM flat_file_into_itab_4_txt_file.
PERFORM flat_file_into_itab_4_xls_file.

loop at it_FLAT_FILE into wa_FLAT_FILE.


REFRESH IT_BDCDATA.
PERFORM CALL_SCREEN_DETAILS USING : 'SAPMF05A' '0100' 'X'.
PERFORM CALL_FIELD_DETAILS USING :
'BDC_CURSOR'
'BDC_OKCODE'
'BKPF-BLDAT'

'RF05A-NEWKO',
'/00',
wa_FLAT_FILE-Doc_Date

'BKPF-BLART'

wa_FLAT_FILE-Doc_Type

'BKPF-BUKRS'

wa_FLAT_FILE-Company_Code

'BKPF-BUDAT'

wa_FLAT_FILE-Posting_Date

'BKPF-MONAT'

wa_FLAT_FILE-Posting_Period

'BKPF-WAERS'

wa_FLAT_FILE-Currency

'BKPF-BKTXT'

wa_FLAT_FILE-Doc_Header_Tex

'FS006-DOCID'
'RF05A-NEWBS'

'*',
wa_FLAT_FILE-Posting_Key

'RF05A-NEWKO'

wa_FLAT_FILE-Cust_Account_N

'BDC_SUBSCR'
'BDC_SUBSCR'

'SAPMF05A',
'SAPLSEXM'.

,
,
,
,
,
,
t ,
,
o

PERFORM CALL_SCREEN_DETAILS USING : 'SAPMF05A'


PERFORM CALL_FIELD_DETAILS USING :
'BDC_CURSOR'
'BDC_OKCODE'
'BSEG-WRBTR'
cal.
* PERFORM CALL_FIELD_DETAILS1 USING : 'BSEG-WRBTR'
ocal.

'0301' 'X'.
'RF05A-NEWKO',
'/00',
wa_FLAT_FILE-Amt_in_Lo

wa_FLAT_FILE-Amt_in_L

PERFORM CALL_FIELD_DETAILS USING :


'BSEG-GSBER'

wa_FLAT_FILE-Business_

'BSEG-ZTERM'
'BSEG-ZFBDT'

'0001',
wa_FLAT_FILE-Base_Line_

'BSEG-SGTXT'

wa_FLAT_FILE-Text

'RF05A-NEWBS'

wa_FLAT_FILE-Posting_Ke

'RF05A-NEWKO'

wa_FLAT_FILE-Account_No

area,
Date,
,
y1 ,
.

PERFORM CALL_SCREEN_DETAILS USING : 'SAPMF05A'


'0300'
'X'.
PERFORM CALL_FIELD_DETAILS USING : 'BDC_CURSOR'
'RF05A-NEWBS',
'BDC_OKCODE'
'=BU',
'BSEG-WRBTR'
wa_FLAT_FILE-Amount_in
_Local_Curr1 ,
'BSEG-SGTXT'
wa_FLAT_FILE-Text1
,
'BDC_SUBSCR'
'SAPLKACB',
'DKACB-FMORE'
'X'.

PERFORM CALL_SCREEN_DETAILS USING :'SAPLKACB'


'0002' 'X'.
PERFORM CALL_FIELD_DETAILS USING : 'BDC_CURSOR'
'COBL-GSBER',
'BDC_OKCODE'
'ENTE',
'COBL-GSBER'
'001',
'BDC_SUBSCR'
'SAPLKACB',
'COBL-KOSTL'
'1001',
'BDC_SUBSCR'
'SAPLKACB'.

PERFORM CALL_SCREEN_DETAILS USING :'SAPLKACB' '0700' 'X'.


PERFORM CALL_FIELD_DETAILS USING : 'BDC_CURSOR'
'RF05A-NEWBS',
'BDC_OKCODE'
'/00',
'BKPF-BKTXT'
'doc header text'.

PERFORM CALL_SCREEN_DETAILS USING :'SAPLKACB' '0700'


PERFORM CALL_FIELD_DETAILS USING :
'BDC_CURSOR'
'BDC_OKCODE'
'BKPF-BKTXT'

CALL TRANSACTION 'F-22' USING IT_BDCDATA


mode 'A'
UPDATE 'A'. " ASYNCHRONOUS.

endloop.

*
*__________
*
*SAPMF05A
*
*
*
*

0000 T F-22
0100 X
0000
BDC_CURSOR
0000
BDC_OKCODE
0000
BKPF-BLDAT
0000
BKPF-BLART

RF05A-NEWKO
/00
28.11.2012
DR

'X'.
'RF05A-NEWBS',
'=BU',
'doc header text'.

*
*
*
*
*
*
*
*
*
*
*SAPMF05A
*
*
*
*
*
*
*
*
*
*SAPMF05A
*
*
*
*
*
*
*SAPLKACB
*
*
*
*
*
*
*SAPMF05A
*
*
*
*SAPMF05A
*
*
*

0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0301
0000
0000
0000
0000
0000
0000
0000
0000
0000
0300
0000
0000
0000
0000
0000
0000
0002
0000
0000
0000
0000
0000
0000
0700
0000
0000
0000
0700
0000
0000
0000

BKPF-BUKRS
BKPF-BUDAT
BKPF-MONAT
BKPF-WAERS
BKPF-BKTXT
FS006-DOCID
RF05A-NEWBS
RF05A-NEWKO
BDC_SUBSCR
BDC_SUBSCR

atl1
28.11.2012
08
inr
doc header text
*
01
16
SAPMF05A
SAPLSEXM

BDC_CURSOR
BDC_OKCODE
BSEG-WRBTR
BSEG-GSBER
BSEG-ZTERM
BSEG-ZFBDT
BSEG-SGTXT
RF05A-NEWBS
RF05A-NEWKO

RF05A-NEWKO
/00
10000
001
0001
28.11.2012
invoice no
50
304001

BDC_CURSOR
BDC_OKCODE
BSEG-WRBTR
BSEG-SGTXT
BDC_SUBSCR
DKACB-FMORE

RF05A-NEWBS
=BU
10000
+
SAPLKACB
X

BDC_CURSOR
BDC_OKCODE
COBL-GSBER
BDC_SUBSCR
COBL-KOSTL
BDC_SUBSCR

COBL-GSBER
ENTE
001
SAPLKACB
1001
SAPLKACB

BDC_CURSOR
BDC_OKCODE
BKPF-BKTXT

RF05A-NEWBS
/00
doc header text

BDC_CURSOR
BDC_OKCODE
BKPF-BKTXT

RF05A-NEWBS
=BU
doc header text

1300APPL_SUB_T
0200APPL_SUB

0001BLOCK

0003BLOCK1
0003BLOCK1

*
*&---------------------------------------------------------------------*
*&
Form flat_file_into_itab_4_txt_file
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*

* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form flat_file_into_itab_4_txt_file.
DATA : filename TYPE STRING.
filename = P_FILE.
IF R_TXT = 'X'.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename
= filename "P_FILE
*
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_FLAT_FILE
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.
ENDIF.
endform.
" flat_file_into_itab_4_txt_file
*&---------------------------------------------------------------------*
*&
Form flat_file_into_itab_4_xls_file
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text

*----------------------------------------------------------------------*
form flat_file_into_itab_4_xls_file.
filename = P_FILE.
IF R_EXCEL = 'X'.

*
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
*
EXPORTING
*
I_FIELD_SEPERATOR
= 'X'
**
I_LINE_HEADER
=
*
i_tab_raw_data
= i_tab_raw_data
*
i_filename
= p_file
*
tables
*
i_tab_converted_data
= it_flat_file
*
EXCEPTIONS
*
CONVERSION_FAILED
= 1
*
OTHERS
= 2
*
.
*
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*
ENDIF.
*

endif.

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'


EXPORTING
filename
= filename
i_begin_col
= 1
i_begin_row
= 1
i_end_col
= 17
i_end_row
= 3
tables
intern
= IT_FLAT_FILE_EXCEL
EXCEPTIONS
INCONSISTENT_PARAMETERS
= 1
UPLOAD_OLE
= 2
OTHERS
= 3
.
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 IT_FLAT_FILE_EXCEL INTO WA_FLAT_FILE_EXCEL1.
WA_FLAT_FILE_EXCEL = WA_FLAT_FILE_EXCEL1.
CASE WA_FLAT_FILE_EXCEL-COL .
WHEN 1.
WA_flat_file-Doc_Date
= WA_FLAT_FILE_EXCEL-VALUE.
WHEN 2.
WA_flat_file-Doc_Type
= WA_FLAT_FILE_EXCEL-VALUE.
WHEN 3.

WA_flat_file-Company_Code
= WA_FLAT_FILE_EXCEL-VALUE.
WHEN 4.
WA_flat_file-Posting_Date
= WA_FLAT_FILE_EXCEL-VALUE.
WHEN 5.
WA_flat_file-Posting_Period
= WA_FLAT_FILE_EXCEL-VALUE.
WHEN 6.
WA_flat_file-Currency
= WA_FLAT_FILE_EXCEL-VALUE.
WHEN 7.
WA_flat_file-Doc_Header_Text
= WA_FLAT_FILE_EXCEL-VALUE.
WHEN 8.
WA_flat_file-Posting_Key
= WA_FLAT_FILE_EXCEL-VALUE.
WHEN 9.
WA_flat_file-Cust_Account_No
= WA_FLAT_FILE_EXCEL-VALUE.
WHEN 10.
WA_flat_file-Amt_in_Local
= WA_FLAT_FILE_EXCEL-VALUE.
WHEN 11.
WA_flat_file-Business_area
= WA_FLAT_FILE_EXCEL-VALUE.
WHEN 12.
WA_flat_file-Base_Line_Date
= WA_FLAT_FILE_EXCEL-VALUE.
WHEN 13.
WA_flat_file-Text
= WA_FLAT_FILE_EXCEL-VALUE.
WHEN 14.
WA_flat_file-Posting_Key1
= WA_FLAT_FILE_EXCEL-VALUE.
WHEN 15.
WA_flat_file-Account_No
= WA_FLAT_FILE_EXCEL-VALUE.
WHEN 16.
WA_flat_file-Amount_in_Local_Curr1
= WA_FLAT_FILE_EXCEL-VALUE.
WHEN 17.
WA_flat_file-Text1
= WA_FLAT_FILE_EXCEL-VALUE.

APPEND WA_FLAT_FILE to it_FLAT_FILE.


clear WA_FLAT_FILE.
ENDCASE.
ENDLOOP.
endif.
endform.
" flat_file_into_itab_4_xls_file
*&---------------------------------------------------------------------*
*&
Form VALIDATION_FOR_FILE_EXTENTION
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form VALIDATION_FOR_FILE_EXTENTION .
IF R_TXT = 'X'.
SEARCH P_FILE FOR '*TXT'. " it will check file neme ends with .txt or not
IF SY-SUBRC <> 0.
MESSAGE 'FILE EXTENTATION MUST BE .TXT' TYPE 'E'.
ENDIF.
ELSEIF R_EXCEL = 'X'.
SEARCH P_FILE FOR '*XLS'. "it will check file neme ends with .xls or not
IF SY-SUBRC <> 0.
MESSAGE 'FILE EXTENTATION MUST BE .XLS' TYPE 'E'.
ENDIF.

ENDIF.
endform.
" VALIDATION_FOR_FILE_EXTENTION
*&---------------------------------------------------------------------*
*&
Form CALL_SCREEN_DETAILS
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_0163 text
*
-->P_0164 text
*
-->P_0165 text
*----------------------------------------------------------------------*
form CALL_SCREEN_DETAILS using
value(p_0163)
value(p_0164)
value(p_0165).
WA_BDCDATA-PROGRAM
= p_0163.
WA_BDCDATA-DYNPRO
= p_0164.
WA_BDCDATA-DYNBEGIN = p_0165.
APPEND WA_BDCDATA TO IT_BDCDATA.
CLEAR WA_BDCDATA.
endform.
" CALL_SCREEN_DETAILS
*&---------------------------------------------------------------------*
*&
Form CALL_FIELD_DETAILS
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_0169 text
*
-->P_0170 text
*----------------------------------------------------------------------*
form CALL_FIELD_DETAILS using
value(p_0169)
value(p_0170).
WA_BDCDATA-fnam
= p_0169.
if p_0169 eq 'BSEG-WRBTR'.
WA_BDCDATA-FVAL
= p_0170.
CONDENSE WA_BDCDATA-FVAL.
REPLACE ALL OCCURRENCES OF '.' IN WA_BDCDATA-FVAL WITH ','.
ELSE.
WA_BDCDATA-FVAL
= p_0170.
ENDIF.
APPEND WA_BDCDATA TO IT_BDCDATA.
CLEAR WA_BDCDATA.
endform.
" CALL_FIELD_DETAILS
*&---------------------------------------------------------------------*
*&
Form CALL_FIELD_DETAILS1
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_0267 text
*
-->P_0268 text
*----------------------------------------------------------------------*
form CALL_FIELD_DETAILS1 using
value(p_0267)

value(p_0268).
*

WA_BDCDATA-FVAL = WA_BDCDATA-FVAL
WA_BDCDATA-fnam = p_0267.
WA_BDCDATA-FVAL
= p_0268.

APPEND WA_BDCDATA TO IT_BDCDATA.


CLEAR WA_BDCDATA.
endform.
" CALL_FIELD_DETAILS1

You might also like