Sie sind auf Seite 1von 9

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

*& Report ZMYTEST_FB50B1


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZMYTEST_FB50B1.
DATA: BEGIN OF ITAB OCCURS 0,
BLDAT LIKE BKPF-BLDAT,
BUKRS LIKE BKPF-BUKRS,
WAERS LIKE BKPF-WAERS,
BUDAT LIKE BKPF-BUDAT,
XBLNR LIKE BKPF-XBLNR,
BKTXT LIKE BKPF-BKTXT,
BVORG LIKE BKPF-BVORG,
n
HKONT LIKE BSEG-HKONT,
SHKZG LIKE BSEG-SHKZG,
WRBTR LIKE BSEG-WRBTR,
MWSKZ LIKE BSEG-MWSKZ,
ZUONR LIKE BSEG-ZUONR,
SGTXT LIKE BSEG-SGTXT,
KOSTL LIKE BSEG-KOSTL,
PRCTR LIKE BSEG-PRCTR,
END OF ITAB.

"Document Date in Document


"Company Code
"Currency Key
"Posting Date in the Document
"Reference Document Number
"Document Header Text
"Number of Cross-Company Code Posting Transactio
"General Ledger Account
"Debit/Credit Indicator
"Amount in Document Currency
"Tax on sales/purchases code
"Assignment Number
"Item Text
"Cost Center
"Profit Center

**********BAPI WAY*********************************
DATA:
GD_DOCUMENTHEADER
LIKE BAPIACHE09,
GD_CUSTOMERCPD
LIKE BAPIACPA09,
GD_FICA_HD
LIKE BAPIACCAHD,
IT_ACCOUNTRECEIVABLE LIKE TABLE OF BAPIACAR09 WITH HEADER LINE,
IT_ACCOUNTGL
LIKE TABLE OF BAPIACGL09 WITH HEADER LINE,
IT_ACCOUNTTAX
LIKE TABLE OF BAPIACTX09 WITH HEADER LINE,
IT_CRITERIA
LIKE TABLE OF BAPIACKEC9 WITH HEADER LINE,
IT_VALUEFIELD
LIKE TABLE OF BAPIACKEV9 WITH HEADER LINE,
IT_CURRENCYAMOUNT
LIKE TABLE OF BAPIACCR09 WITH HEADER LINE,
IT_RETURN
LIKE TABLE OF BAPIRET2 WITH HEADER LINE,
IT_RECEIVERS
LIKE TABLE OF BDI_LOGSYS WITH HEADER LINE,
IT_FICA_IT
LIKE TABLE OF BAPIACCAIT WITH HEADER LINE,
IT_ACCOUNTPAYABLE
LIKE TABLE OF BAPIACAP09 WITH HEADER LINE,
IT_PAYMENTCARD
LIKE TABLE OF BAPIACPC09 WITH HEADER LINE,
IT_EXT
LIKE TABLE OF BAPIACEXTC WITH HEADER LINE,
IT_RE
LIKE TABLE OF BAPIACRE09 WITH HEADER LINE,
IT_EXT2
LIKE TABLE OF BAPIPAREX WITH HEADER LINE.
********************************************************
TYPE-POOLS: SLIS.
DATA: I_FIELDCAT
TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
dcat_alv WITH HEADER LINE,slis_t_fieldcat_alv
I_FIELDCAT_ALV TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
I_EVENTS
TYPE SLIS_T_EVENT,
"alv??
W_EVENTS
LIKE LINE OF I_EVENTS,
GD_TAB_GROUP TYPE SLIS_T_SP_GROUP_ALV,
*
gd_layout
TYPE lvc_s_layo,
"slis_layout_alv,
GD_LAYOUT
TYPE SLIS_LAYOUT_ALV,
USERCOMMAND
TYPE SLIS_FIELDNAME VALUE 'USERCOMMAND',

"slis_t_fiel

GD_REPID
*CONSTANTS:
* C_BEGIN_ROW
* C_BEGIN_COL
* C_END_ROW
* C_END_COL

LIKE SY-REPID.
TYPE
TYPE
TYPE
TYPE

I
I
I
I

VALUE
VALUE
VALUE
VALUE

1,
1,
9999,
55.

"Beginning row of excel file


"Beginning column of excel file
"Ending row of excel file
"Ending column of excel file

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE T2.


PARAMETERS:CC AS CHECKBOX DEFAULT 'X'.
PARAMETERS: PC_FILE(80).
SELECTION-SCREEN END OF BLOCK B2.
INITIALIZATION.
T2 = 'File Upload'.
"AT SELECTION-SCREEN ON VALUE-REQUEST FOR PC_FILE.
" PERFORM SUB_FIND USING PC_FILE. Ariv
*&---------------------------------------------------------------------*
*&
Form sub_find
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->PC_FILE
text
*----------------------------------------------------------------------*
FORM SUB_FIND USING PC_FILE.
* Data for open dialog
DATA: L_FILETAB TYPE FILETABLE,
L_RC
TYPE I.
CLEAR L_FILETAB.
REFRESH L_FILETAB.
* Open dialog
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
EXPORTING
*
WINDOW_TITLE
= 'SAP Custom - Open File'
*
DEFAULT_EXTENSION
=
DEFAULT_FILENAME
= '*.txt'
*
FILE_FILTER
= '*.xls'
INITIAL_DIRECTORY
= 'c:\'
MULTISELECTION
= ''
CHANGING
FILE_TABLE
= L_FILETAB
RC
= L_RC
EXCEPTIONS
CNTL_ERROR
= 1
ERROR_NO_GUI
= 2
NOT_SUPPORTED_BY_GUI = 3
OTHERS
= 4.
* Get file path
CHECK L_RC EQ 1.
READ TABLE L_FILETAB INDEX 1 INTO PC_FILE.
ENDFORM.
START-OF-SELECTION.
IF CC = 'X' AND PC_FILE = ''.
MESSAGE S001(00) WITH 'Error! Please select a file'.

EXIT.
ENDIF.
"IF CC = 'X'.
PERFORM UPLOADDATA.
"ENDIF.

"1.Upload files from your PC into the table

PERFORM FIELDS_BUILD. "2.Used to define the form of the relevant information f


or each column , such as column names
PERFORM DISPLAY_DATA. "3.To display ALV Form
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*&
2.RFORM uploaddata. "Upload files from your PC into the table
*&---------------------------------------------------------------------*
FORM UPLOADDATA.
* DATA: BEGIN OF I_EXCEL OCCURS 0.
*
INCLUDE STRUCTURE ALSMEX_TABLINE.
* DATA: END OF I_EXCEL.
* DATA: L_ANSWER(1) TYPE C.
* DATA: L_COLUMN TYPE I.
* FIELD-SYMBOLS: <FS>.
DATA: L_PATHNAME LIKE RLGRAP-FILENAME.
MOVE PC_FILE TO L_PATHNAME.

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

CALL FUNCTION 'GUI_UPLOAD'


EXPORTING
FILENAME
= 'C:\Users\arivazhagan.c\Desktop\testingfb50.txt'
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
= itab
CHANGING
ISSCANPERFORMED
= ' '
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
UNKNOWN_DP_ERROR
ACCESS_DENIED
DP_OUT_OF_MEMORY
DISK_FULL
DP_TIMEOUT
OTHERS

=
=
=
=
=
=
=

11
12
13
14
15
16
17

.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
*
* CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
*
EXPORTING
*
filename
= l_pathname
*
i_begin_col
= c_begin_col
*
i_begin_row
= c_begin_row
*
i_end_col
= c_end_col
*
i_end_row
= c_end_row
*
TABLES
*
intern
= i_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.
* ELSE.
*
IF i_excel[] IS INITIAL.
*
CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
*
EXPORTING
**
DEFAULTOPTION
= 'Y'
*
diagnosetext1
= 'No data in excel'
**
DIAGNOSETEXT2
= ' '
**
DIAGNOSETEXT3
= ' '
*
textline1
= 'No data in excel'
**
TEXTLINE2
= ' '
*
titel
= 'Confirm'
**
START_COLUMN
= 25
**
START_ROW
= 6
**
CANCEL_DISPLAY
= 'X'
*
IMPORTING
*
answer
= l_answer.
*
ELSE.
*
DELETE i_excel WHERE row = '0001'.
*
SORT i_excel BY row col.
*
LOOP AT i_excel.
*
MOVE i_excel-col TO l_column.
*
ASSIGN COMPONENT l_column OF STRUCTURE ITAB TO <fs>.
*
MOVE i_excel-value TO <fs>.
*
AT END OF row.
*
APPEND ITAB.
*
CLEAR ITAB.
*
ENDAT.
*
ENDLOOP.
*
ENDIF.
* ENDIF.
ENDFORM.
"UPLOADDATA

*&---------------------------------------------------------------------*
*&
1.Execute user command
*&---------------------------------------------------------------------*
FORM USERCOMMAND USING UCOMM TYPE SY-UCOMM SELFIELD TYPE SLIS_SELFIELD.
*

CASE SY-UCOMM.
WHEN 'DELE'.
WHEN 'SCPZ'.
MESSAGE S001(00) WITH 'You want to do BAPI for this data'.
"PERFORM BAPI_EXEC.

ENDCASE.
ENDFORM.

"USER_COMMAND

*&---------------------------------------------------------------------*
*&
2.Form fields_build Set the report displays the list attribute informat
ion
*&---------------------------------------------------------------------*
FORM FIELDS_BUILD .
REFRESH I_FIELDCAT_ALV.
GD_REPID = SY-REPID.
CLEAR I_FIELDCAT.
DATA COLNUM TYPE I.
I_FIELDCAT-FIELDNAME = 'BLDAT'.
I_FIELDCAT-SELTEXT_S = 'Document Date'.
I_FIELDCAT-OUTPUTLEN = 15.
I_FIELDCAT-KEY = 'X'.
APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
CLEAR I_FIELDCAT.
COLNUM = COLNUM + 1.
I_FIELDCAT-COL_POS =
I_FIELDCAT-FIELDNAME
I_FIELDCAT-SELTEXT_S
I_FIELDCAT-OUTPUTLEN
APPEND I_FIELDCAT TO
CLEAR I_FIELDCAT.

COLNUM.
= 'BUKRS'.
= 'Company Code'.
= 10.
I_FIELDCAT_ALV.

COLNUM = COLNUM + 1.
I_FIELDCAT-COL_POS = COLNUM.
I_FIELDCAT-FIELDNAME = 'WAERS'.
I_FIELDCAT-SELTEXT_S = 'Currency'.
* i_fieldcat-outputlen = 20.
* i_fieldcat-key = 'X'.
APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
CLEAR I_FIELDCAT.
COLNUM = COLNUM + 1.
I_FIELDCAT-COL_POS =
I_FIELDCAT-FIELDNAME
I_FIELDCAT-SELTEXT_S
APPEND I_FIELDCAT TO
CLEAR I_FIELDCAT.

COLNUM.
= 'BUDAT'.
= 'Posting Date'.
I_FIELDCAT_ALV.

COLNUM = COLNUM + 1.
I_FIELDCAT-COL_POS = COLNUM.
I_FIELDCAT-FIELDNAME = 'XBLNR'.
I_FIELDCAT-SELTEXT_S = 'Reference'.

APPEND I_FIELDCAT TO I_FIELDCAT_ALV.


CLEAR I_FIELDCAT.
COLNUM = COLNUM + 1.
I_FIELDCAT-COL_POS =
I_FIELDCAT-FIELDNAME
I_FIELDCAT-SELTEXT_S
APPEND I_FIELDCAT TO
CLEAR I_FIELDCAT.

COLNUM.
= 'BKTXT'.
= 'Header Text'.
I_FIELDCAT_ALV.

COLNUM = COLNUM + 1.
I_FIELDCAT-COL_POS =
I_FIELDCAT-FIELDNAME
I_FIELDCAT-SELTEXT_S
APPEND I_FIELDCAT TO
CLEAR I_FIELDCAT.

COLNUM.
= 'BVORG'.
= 'Dealings document number'.
I_FIELDCAT_ALV.

COLNUM = COLNUM + 1.
I_FIELDCAT-COL_POS =
I_FIELDCAT-FIELDNAME
I_FIELDCAT-SELTEXT_S
APPEND I_FIELDCAT TO
CLEAR I_FIELDCAT.

COLNUM.
= 'HKONT'.
= 'Subject'.
I_FIELDCAT_ALV.

COLNUM = COLNUM + 1.
I_FIELDCAT-COL_POS =
I_FIELDCAT-FIELDNAME
I_FIELDCAT-SELTEXT_S
APPEND I_FIELDCAT TO
CLEAR I_FIELDCAT.

COLNUM.
= 'SHKZG'.
= 'Debit / credit'.
I_FIELDCAT_ALV.

COLNUM = COLNUM + 1.
I_FIELDCAT-COL_POS =
I_FIELDCAT-FIELDNAME
I_FIELDCAT-SELTEXT_S
APPEND I_FIELDCAT TO
CLEAR I_FIELDCAT.

COLNUM.
= 'WRBTR'.
= 'Currency'.
I_FIELDCAT_ALV.

COLNUM = COLNUM + 1.
I_FIELDCAT-COL_POS =
I_FIELDCAT-FIELDNAME
I_FIELDCAT-SELTEXT_S
APPEND I_FIELDCAT TO
CLEAR I_FIELDCAT.

COLNUM.
= 'MWSKZ'.
= 'Tax Code'.
I_FIELDCAT_ALV.

COLNUM = COLNUM + 1.
I_FIELDCAT-COL_POS =
I_FIELDCAT-FIELDNAME
I_FIELDCAT-SELTEXT_S
APPEND I_FIELDCAT TO
CLEAR I_FIELDCAT.

COLNUM.
= 'ZUONR'.
= 'Projects are assigned numbers'.
I_FIELDCAT_ALV.

COLNUM = COLNUM + 1.
I_FIELDCAT-COL_POS =
I_FIELDCAT-FIELDNAME
I_FIELDCAT-SELTEXT_S
APPEND I_FIELDCAT TO
CLEAR I_FIELDCAT.

COLNUM.
= 'SGTXT'.
= 'Item text'.
I_FIELDCAT_ALV.

COLNUM = COLNUM + 1.

I_FIELDCAT-COL_POS =
I_FIELDCAT-FIELDNAME
I_FIELDCAT-SELTEXT_S
APPEND I_FIELDCAT TO
CLEAR I_FIELDCAT.

COLNUM.
= 'KOSTL'.
= 'Cost Center'.
I_FIELDCAT_ALV.

COLNUM = COLNUM + 1.
I_FIELDCAT-COL_POS = COLNUM.
I_FIELDCAT-FIELDNAME = 'PRCTR'.
I_FIELDCAT-SELTEXT_S = 'Profit Center'.
APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
CLEAR I_FIELDCAT.
ENDFORM.
"fields_build
*&---------------------------------------------------------------------*
*&
3.Form display_data To display ALV Form
*&---------------------------------------------------------------------*
FORM DISPLAY_DATA .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
*
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
*
i_callback_pf_status_set = 'PF_STATUS_SET'(001)
I_CALLBACK_PROGRAM
= GD_REPID
IS_LAYOUT
= GD_LAYOUT
IT_FIELDCAT
= I_FIELDCAT_ALV[]
IT_EVENTS
= I_EVENTS[]
" i_grid_title
= ''
I_CALLBACK_USER_COMMAND = USERCOMMAND
"3.Processing services
I_SAVE
= 'A'
I_CALLBACK_PF_STATUS_SET = 'TOOLBAR'
TABLES
T_OUTTAB
= ITAB.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM.
" display_data
*FORM BAPI_EXEC.
* Data: _row(3) type n.
* DATA: l_type LIKE gd_documentheader-obj_type,
*
l_key LIKE gd_documentheader-obj_key,
*
l_sys LIKE gd_documentheader-obj_sys.
*
*
* CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET'
*
IMPORTING
*
own_logical_system = gd_documentheader-obj_sys.
*
* READ TABLE ITAB INDEX 1.
*
* gd_documentheader-obj_type = 'BKPFF'.
* gd_documentheader-obj_key
= '$'.
* gd_documentheader-username = SY-UNAME.
* gd_documentheader-header_txt = ITAB-BKTXT. "'BAPI Test'.
NOTEXT
* gd_documentheader-comp_code = ITAB-BUKRS. "'2000'.
* gd_documentheader-doc_type = 'SA'.
*" gd_documentheader-fisc_year = '2012'.
*" gd_documentheader-fis_period = '12'.
* gd_documentheader-doc_date = itab-bldat. "sy-datum.

"#EC

* gd_documentheader-pstng_date = itab-BUDAT. "sy-datum.


** gd_documentheader-BUS_ACT
= 'FB50'.
"Enter this error?
*
* clear it_accountgl[].
* clear it_currencyamount[].
* _row = 1.
* loop at itab.
*
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
"Adding leading zeros
, we should not say can not find ?
*
EXPORTING
*
input = ITAB-KOSTL
*
IMPORTING
*
output = ITAB-KOSTL.
*
*
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
*
EXPORTING
*
input = ITAB-PRCTR
*
IMPORTING
*
output = ITAB-PRCTR.
*
*
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
*
EXPORTING
*
input = itab-HKONT
*
IMPORTING
*
output = itab-HKONT.
*
*
CLEAR it_accountgl.
*
it_accountgl-itemno_acc
= _row.
*
it_accountgl-gl_account
= itab-HKONT. "'0000700245'.
*
it_accountgl-item_text
= itab-SGTXT. "'ITEM TEST1'. "#EC NOTEXT
Somehow there
*
it_accountgl-costcenter
= ITAB-KOSTL. "'0008000002'.
must be a leading zero job.
*
it_accountgl-profit_ctr
= ITAB-PRCTR. "'0000900098'. Somehow there mus
t be a leading zero job. Cost centers, profit centers can not used.
*
it_accountgl-comp_code
= ITAB-BUKRS. "'2000'.
*
APPEND it_accountgl.
*
*
if itab-shkzg = 'H'.
*
ITAB-WRBTR = ITAB-WRBTR * -1.
"In fact, if the value is posit
ive or negative is OK , not a separate field shows D / C
*
endif.
*
*
CLEAR it_currencyamount.
*
it_currencyamount-itemno_acc = _row.
*
it_currencyamount-currency
= ITAB-WAERS.
*
it_currencyamount-amt_doccur = ITAB-WRBTR.
*
APPEND it_currencyamount.
*
_row = _row + 1.
* endloop.
*
* CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
*
EXPORTING
*
documentheader
= gd_documentheader
*
IMPORTING
*
obj_type
= l_type
*
obj_key
= l_key
*
obj_sys
= l_sys
*
TABLES
*
accountgl
= it_accountgl
*
currencyamount
= it_currencyamount

*
return
= it_return.
*
* COMMIT WORK.
*
* MESSAGE ID it_return-ID TYPE it_return-type NUMBER it_return-number WITH it_re
turn-message.
*
*
"PERFORM show_messages.
*ENDFORM.
*---------------------------------------------------------------------*
*
Form Show_messages
*---------------------------------------------------------------------*
FORM SHOW_MESSAGES.

*
*
*
*
*
*

IF IT_RETURN[] IS INITIAL.
WRITE: / 'no messages'.
ELSE.
SKIP 1.
LOOP AT IT_RETURN.
WRITE: /
IT_RETURN-TYPE,
(2) IT_RETURN-ID,
IT_RETURN-NUMBER,
(80) IT_RETURN-MESSAGE,
IT_RETURN-LOG_NO,
IT_RETURN-LOG_MSG_NO,
IT_RETURN-MESSAGE_V1,
IT_RETURN-MESSAGE_V2,
IT_RETURN-MESSAGE_V3,
IT_RETURN-MESSAGE_V4,
(20) IT_RETURN-PARAMETER,
(3) IT_RETURN-ROW,
IT_RETURN-FIELD.
IT_RETURN-SYSTEM
ENDLOOP.
ENDIF.
ULINE.

ENDFORM.

" Show_messages

Das könnte Ihnen auch gefallen