Professional Documents
Culture Documents
Zfo17 Code
Zfo17 Code
"
"
"
"
"
"
"
"
"
"
Document Date
Posting Date
Document Type
Reference Document
Header Text
Item Text
G/L Account
Currency
Debit Amount
Credit Amount
DATA: new_entry_shkzg,
follow_entry_shkzg,
new_item_post.
DATA: tp_xblnr LIKE bkpf-xblnr,
tp_bktxt LIKE bkpf-bktxt,
count TYPE i,
m_message(20) TYPE c.
PARAMETERS: p_upmode(1) TYPE c DEFAULT 'N'.
SELECTION-SCREEN BEGIN OF BLOCK 01 WITH FRAME.
PARAMETERS: p_bukrs LIKE bseg-bukrs OBLIGATORY DEFAULT '8000'.
PARAMETERS: p_file LIKE rlgrap-filename DEFAULT 'C:\' OBLIGATORY.
SELECTION-SCREEN
SELECTION-SCREEN
SELECTION-SCREEN
SELECTION-SCREEN
" select_file
START-OF-SELECTION.
* AUTHORITY-CHECK OBJECT 'Z_RPTBUKRS' ID 'BUKRS' FIELD P_BUKRS.
* IF SY-SUBRC NE 0.
*
CONCATENATE 'for company' P_BUKRS INTO M_MESSAGE SEPARATED BY SPACE.
*
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
*
EXPORTING
*
TITEL
= 'Message'
*
TEXTLINE1
= 'You do not have authorization'
*
TEXTLINE2
= M_MESSAGE
*
START_COLUMN = 25
*
START_ROW
= 6
*
EXCEPTIONS
*
OTHERS
= 1.
*
EXIT.
* ENDIF.
*
*
*
*
*
*
*
*
*
*
REFRESH: itab.
MOVE p_file TO file_path.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename
filetype
has_field_separator
HEADER_LENGTH
READ_BY_LINE
DAT_MODE
CODEPAGE
IGNORE_CERR
REPLACEMENT
CHECK_BOM
IMPORTING
FILELENGTH
HEADER
TABLES
data_tab
EXCEPTIONS
file_open_error
file_read_error
no_batch
gui_refuse_filetransfer
invalid_type
no_authority
unknown_error
bad_data_format
header_not_allowed
separator_not_allowed
header_too_long
unknown_dp_error
access_denied
dp_out_of_memory
disk_full
dp_timeout
=
=
=
=
=
=
=
=
=
=
file_path
'ASC'
'X'
0
'X'
' '
ABAP_TRUE
'#'
' '
=
=
= itab
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
OTHERS
= 17.
CHECK sy-subrc EQ 0.
CLEAR itab.
DELETE itab WHERE debit = ' ' AND credt = ' '.
DESCRIBE TABLE itab LINES count.
IF count = 0.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
titel
= 'Message'
textline1
= 'No valid line for posting'
textline2
= 'Check your entries in upload file'
start_column = 25
start_row
= 6
EXCEPTIONS
OTHERS
= 1.
EXIT.
ENDIF.
* SORT ITAB BY XBLNR BKTXT HKONT.
PERFORM post_doc TABLES itab.
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*&
Form POST_DOC
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->ITAB
text
*----------------------------------------------------------------------*
FORM post_doc TABLES itab STRUCTURE itab.
DATA: p_prctr LIKE cobl-prctr,
tp_text LIKE t100-text,
len TYPE i.
FIELD-SYMBOLS <tp_msgv>.
DATA: lv_n TYPE i.
DATA: lv_n1 TYPE i.
DESCRIBE TABLE itab LINES lv_n.
LOOP AT itab.
lv_n1 = lv_n1 + 1.
* remove special characters in the item text
*
PERFORM f_rem_spec_char CHANGING itab-sgtxt.
CLEAR: p_prctr.
IF sy-tabix = 1.
MOVE: itab-xblnr TO tp_xblnr,
itab-bktxt TO tp_bktxt.
REFRESH bdc_table.
PERFORM bdc_construct USING:
'SAPMF05A'
' '
' '
' '
' '
' '
' '
' '
' '
ENDIF.
'0100'
' '
' '
' '
' '
' '
' '
' '
' '
'X'
' '
' '
' '
' '
' '
' '
' '
' '
' '
'BKPF-BLDAT'
'BKPF-BUDAT'
'BKPF-BLART'
'BKPF-BUKRS'
'BKPF-WAERS'
'BKPF-XBLNR'
'BKPF-BKTXT'
'FS006-DOCID'
' ',
itab-bldat,
itab-budat,
itab-blart,
p_bukrs,
itab-waers,
itab-xblnr,
itab-bktxt,
' '.
*********************************************************
IF itab-kostl <> ' '.
*Yiming 260608 - Auto Extract BA*************************
SELECT SINGLE * FROM csks WHERE kokrs = tka02-kokrs
AND kostl = itab-kostl.
IF sy-subrc = 0.
*
p_gsber = csks-gsber.
p_prctr = csks-prctr.
ENDIF.
*********************************************************
*
IF ITAB-GSBER IS INITIAL.
*
P_GSBER = ITAB-KOSTL+4(2).
*
ELSE.
*
P_GSBER = ITAB-GSBER.
*
ENDIF.
PERFORM bdc_construct USING:
' '
' '
' ' 'BDC_OKCODE' '/0',
'SAPLKACB' '0002' 'X' ' '
' '.
*
' '
' '
' ' 'COBL-PRCTR' P_PRCTR,
*
' '
' '
' ' 'COBL-GSBER' P_GSBER,
*
' '
' '
' ' 'COBL-KOSTL' ITAB-KOSTL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = itab-hkont
IMPORTING
output = itab-hkont.
SELECT SINGLE fstag FROM skb1 INTO skb1-fstag
WHERE bukrs EQ p_bukrs
AND saknr EQ itab-hkont.
*Cost Center
SELECT SINGLE * FROM zffstag WHERE fstag EQ skb1-fstag
AND NOT kostl EQ 'X'.
IF sy-subrc IS INITIAL.
PERFORM bdc_construct USING:
' '
' '
' ' 'COBL-KOSTL' itab-kostl.
"Cost Center
ENDIF.
*Profit Center
SELECT SINGLE * FROM zffstag WHERE fstag EQ skb1-fstag
AND NOT prctr EQ 'X'.
IF sy-subrc IS INITIAL.
PERFORM bdc_construct USING:
' '
' '
' ' 'COBL-PRCTR' p_prctr.
"Profit Center
ENDIF.
*Bussines Area
SELECT SINGLE * FROM zffstag WHERE fstag EQ skb1-fstag
AND NOT gsber EQ 'X'.
IF sy-subrc IS INITIAL.
PERFORM bdc_construct USING:
' '
' '
' ' 'COBL-GSBER' ''.
ENDIF.
*
PERFORM bdc_construct
' '
' '
' '
'SAPMF05A' '0300' 'X'
' '
' '
' '
USING:
'BDC_OKCODE' '/8',
' '
' ',
'DKACB-FMORE' ' '.
' '
' '
ENDIF.
End of modification
MOD01 - added
ELSE.
Start of modification MOD01 - added
IF itab-pernr IS NOT INITIAL.
PERFORM bdc_construct USING:
' '
' '
' ' 'BDC_OKCODE'
'SAPLKACB' '0002' 'X' ' '
' '
' '
' ' 'COBL-PERNR'
'SAPMF05A' '0300' 'X' ' '
' '
' '
' ' 'DKACB-FMORE'
ELSE.
End of modification MOD01 - added
PERFORM bdc_construct USING:
' '
' '
' ' 'DKACB-FMORE'
ENDIF. " MOD01 - added
ENDIF.
"Personnel no
'/0',
' ',
itab-pernr,
' ',
' '.
"Personnel no
' '.
'
',
' '
' '
' '
' '
' '
0',
ab-hkont,
**
' '
' '
',
' ' ' ' ' ' 'BDC_OKCODE' '=ENTE',
'SAPLKACB' '0002' 'X' ' '
'
',
' ' ' ' ' ' 'BDC_CURSOR' 'COBL-ANLN1'
,
' ' ' ' ' ' 'BDC_OKCODE' '=COBL_XERGO
',
*
*
O',
'
',
' ' ' ' ' ' 'BDC_CURSOR' 'RKEAK-FIELD
(13)',
' ' ' ' ' ' 'BDC_OKCODE' 'P+',
' ' ' ' ' ' 'RKEAK-FIELD(13)' itab-pr
ctr,
'
',
' ' ' ' ' ' 'BDC_CURSOR' 'RKEAK-FIELD
(14)',
' ' ' ' ' ' 'BDC_OKCODE' '=WEIT',
' ' ' ' ' ' 'RKEAK-FIELD(13)' itab-pa
ph1,
' ' ' ' ' ' 'RKEAK-FIELD(14)' itab-pa
ph2,
'SAPLKACB' '0002' 'X' ' '
'
',
' ' ' ' ' ' 'BDC_CURSOR' 'COBL-ANLN1'
,
' ' ' ' ' ' 'BDC_OKCODE' '=ENTE'.
IF NOT lv_n = lv_n1.
PERFORM bdc_construct
' ',
USING :
WRBTR',
' ' ' ' ' ' 'BDC_OKCODE' '=RW',
' ' ' ' ' ' 'DKACB-FMORE' 'X'.
ENDIF.
*
' ' ' ' ' ' 'BDC_CURSOR' '/0'.
*
*
********************************************************************************
*********
**
'SAPMF05A' '0300' 'X' ' '
' ',
**
' ' ' ' ' ' 'BDC_CURSOR' 'BSEG-WRBT
R',
**
' ' ' ' ' ' 'BDC_OKCODE' '=RW',
**
' ' ' ' ' ' 'DKACB-FMORE' 'X',
**
'SAPLKACB' '0002' 'X' ' '
' ',
**
' ' ' ' ' ' 'BDC_CURSOR' 'COBL-ANLN
1',
**
' ' ' ' ' ' 'BDC_OKCODE' '=ENTE',
**
'SAPMF05A' '0700' 'X' ' '
' ',
**
' ' ' ' ' ' 'BDC_CURSOR' 'RF05A-NEW
BS',
**
' ' ' ' ' ' 'BDC_OKCODE' '=BU',
*
*
*
**
'SAPMF05A' '0330' 'X' ' '
' ',
**
' ' ' ' ' ' 'BDC_CURSOR' 'BSEG-ABPE
R',
**
' ' ' ' ' ' 'BDC_OKCODE' '=RW',
**
'SAPMF05A' '0700' 'X' ' '
' ',
**
' ' ' ' ' ' 'BDC_CURSOR' 'RF05A-NEW
BS',
**
' ' ' ' ' ' 'BDC_OKCODE' '=BU',
**
'SAPLSPO1' '0200' 'X' ' '
' ',
**
' ' ' ' ' ' 'BDC_OKCODE' '=YES'.
*
*
ENDIF.
***&-- End of insert Kiran 09/10/2013 CR107615
ENDLOOP.
*
PERFORM bdc_construct USING:
' ' ' ' ' ' 'BDC_OKCODE' '=ENTE',
' '
' '
' ' 'BDC_OKCODE' '/11'.
IF
itab-hkont(1) = '7'.
PERFORM bdc_construct USING:
' ' ' ' ' ' 'BDC_OKCODE' '=ENTE',
' ' ' ' ' ' 'BDC_OKCODE' '=ENTE',
' ' ' ' ' ' 'BDC_OKCODE' '=ENTE',
'SAPMF05A' '0300' 'X' ' '
' ',
' ' ' ' ' ' 'BDC_CURSOR' 'BSEG-WRBT
R',
' ' ' ' ' ' 'BDC_OKCODE' '=RW',
' ' ' ' ' ' 'DKACB-FMORE' 'X',
'SAPLKACB' '0002' 'X' ' '
' ',
' ' ' ' ' ' 'BDC_CURSOR' 'COBL-ANLN
1',
' ' ' ' ' ' 'BDC_OKCODE' '=ENTE',
'SAPLKACB' '0002' 'X' ' '
' ',
' ' ' ' ' ' 'BDC_CURSOR' 'COBL-ANLN1'
,
' ' ' ' ' ' 'BDC_OKCODE' '=ENTE',
'SAPLKACB' '0002' 'X' ' '
'
',
' ' ' ' ' ' 'BDC_CURSOR' 'COBL-ANLN1'
,
' ' ' ' ' ' 'BDC_OKCODE' '=ENTE',
'SAPMF05A' '0700' 'X' ' '
' ',
*
' ' ' ' ' ' 'BDC_CURSOR' 'RF05A-NE
WBS',
' '
' '
' ' 'BDC_OKCODE' '
/11'.
*
' ' ' ' ' ' 'BDC_OKCODE' '=BU',
*
' ' ' ' ' ' 'BDC_OKCODE' '=YES'.
*
'SAPLSPO1' '0200' 'X' ' '
' ',
*
' ' ' ' ' ' 'BDC_OKCODE' '=YES'.
ENDIF.
* PERFORM bdc_construct USING:
*
' '
' '
' ' 'BDC_OKCODE' '/11'.
REFRESH messtab.
CALL TRANSACTION 'F-02' USING bdc_table MODE p_upmode
UPDATE 'S'
MESSAGES INTO messtab.
WRITE: / tp_xblnr, 20 tp_bktxt.
IF sy-subrc NE 0.
WRITE: 50 'Error in Posting document:'.
LOOP AT messtab WHERE msgtyp = 'E' OR msgtyp = 'A'
OR msgtyp = 'S'.
SELECT SINGLE * FROM t100 WHERE sprsl = sy-langu
AND arbgb = messtab-msgid
*
ENDIF.
*
IF messtab-msgv3 <> ' '.
*
len = STRLEN( messtab-msgv3 ).
*
ASSIGN messtab-msgv3+0(len) TO <tp_msgv>.
*
REPLACE '&' WITH <tp_msgv> INTO tp_text.
*
ENDIF.
*
IF messtab-msgv4 <> ' '.
*
len = STRLEN( messtab-msgv4 ).
*
ASSIGN messtab-msgv4+0(len) TO <tp_msgv>.
*
ENDIF.
*
WRITE : /50 tp_text.
*
ENDLOOP.
* ELSEIF sy-subrc EQ 0.
*
READ TABLE messtab WITH KEY msgid = 'F5' msgnr = '312'.
*
posted_doc = messtab-msgv1+0(10).
*
WRITE: 50 'Document', posted_doc, ' posted successfully'.
* ENDIF.
****** End posting document
ENDFORM.
"POST_DOC
*&---------------------------------------------------------------------*
*&
Form BDC_CONSTRUCT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->PROGRAM
text
*
-->DYNPRO
text
*
-->DYNBEGIN text
*
-->FNAM
text
*
-->FVAL
text
*----------------------------------------------------------------------*
FORM bdc_construct USING program dynpro dynbegin fnam fval.
CLEAR bdc_table.
bdc_table-program = program.
bdc_table-dynpro = dynpro.
bdc_table-dynbegin = dynbegin.
bdc_table-fnam
= fnam.
bdc_table-fval
= fval.
APPEND bdc_table.
ENDFORM.
" BDC_INSERT
TOP-OF-PAGE.
WRITE: / 'Reference Doc.',
20 'Header Text',
50 'Posting Result'.
ULINE.
*&---------------------------------------------------------------------*
*&
Form F_REM_SPEC_CHAR
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
<--P_ITAB_SGTXT text
*----------------------------------------------------------------------*
FORM f_rem_spec_char CHANGING p_sgtxt TYPE sgtxt.
* DATA lv_txt TYPE char100.
* MOVE p_sgtxt TO lv_txt.
DATA: char TYPE string.
*
*
*
*
*
*
*
*
*
*
condense lv_txt.
CALL FUNCTION 'ES_REMOVE_SPECIAL_CHARACTER'
EXPORTING
text1
= lv_txt
IMPORTING
corr_string = lv_txt.
MOVE lv_txt TO p_sgtxt.
TRANSLATE p_sgtxt USING '# '.
CONDENSE p_sgtxt.
" F_REM_SPEC_CHAR