0% ont trouvé ce document utile (0 vote)
101 vues7 pages

BAPI pour le traitement FB60 dans SAP

Le document décrit des types de données pour le traitement de documents financiers. Il contient la définition de structures de données pour importer et traiter des données de factures à partir d'un fichier, ainsi que leur publication comptable.

Transféré par

ashwin
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
101 vues7 pages

BAPI pour le traitement FB60 dans SAP

Le document décrit des types de données pour le traitement de documents financiers. Il contient la définition de structures de données pour importer et traiter des données de factures à partir d'un fichier, ainsi que leur publication comptable.

Transféré par

ashwin
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd

*****TYPES BEGIN OF ty_upload.

*****TYPES posnr TYPE string.


*****TYPES user TYPE string.
*****TYPES hdr_txt TYPE string.
*****TYPES bukrs TYPE string.
*****TYPES bupla TYPE string.
*****TYPES doc_dat TYPE string.
*****TYPES pos_dat TYPE string.
*****TYPES h_tax TYPE string.
*****TYPES hdmbtr TYPE string.
*****TYPES xblnr TYPE string.
*****TYPES itm_no TYPE string.
*****TYPES hkont TYPE string.
*****TYPES itm_txt TYPE string.
*****TYPES i_tax TYPE string.
*****TYPES kostl TYPE string.
*****TYPES gsber TYPE string.
*****TYPES wbs_el TYPE string.
*****TYPES hsn TYPE string.
*****TYPES dmbtr TYPE string.
*****TYPES waers TYPE string.
*****TYPES lifnr TYPE string.
*****TYPES bdate TYPE string.
*****TYPES with_amt TYPE string.
*****TYPES END OF ty_upload.
*****
*****TYPES BEGIN OF ty_final.
*****TYPES posnr TYPE posnr.
*****TYPES user TYPE sy-uname.
*****TYPES hdr_txt TYPE sgtxt.
*****TYPES bukrs TYPE bukrs.
*****TYPES bupla TYPE bupla.
*****TYPES doc_dat TYPE bldat.
*****TYPES pos_dat TYPE budat.
*****TYPES h_tax TYPE mwskz.
*****TYPES hdmbtr TYPE dmbtr.
*****TYPES xblnr TYPE bkpf-xblnr.
*****TYPES itm_no TYPE posnr.
*****TYPES hkont TYPE hkont.
*****TYPES itm_txt TYPE string.
*****TYPES i_tax TYPE mwskz.
*****TYPES kostl TYPE kostl.
*****TYPES gsber TYPE gsber.
*****TYPES wbs_el TYPE ps_psp_pnr.
*****TYPES hsn TYPE j_1ig_hsn_sac.
*****TYPES dmbtr TYPE dmbtr.
*****TYPES waers TYPE waers.
*****TYPES lifnr TYPE lifnr.
*****TYPES bdate TYPE dzfbdt.
*****TYPES w_tax_code TYPE acpi_qsskz.
*****TYPES with_amt TYPE dmbtr.
*****TYPES END OF ty_final.

******PARAMETER p_file TYPE rlgrap-filename.


******
******
******DATA : BEGIN OF doc_new,
****** belnr TYPE belnr,
****** bukrs TYPE bukrs,
****** gjahr TYPE gjahr,
****** END OF doc_new.
******DATA: lt_glacct TYPE TABLE OF bapiacgl09,
****** ls_cust TYPE bapiacpa09,
****** lt_vendact TYPE TABLE OF bapiacap09,
****** lt_actrec TYPE TABLE OF bapiacar09,
****** lt_curramt TYPE TABLE OF bapiaccr09,
****** lt_return TYPE TABLE OF bapiret2,
****** ls_return1 TYPE bapiret2,
****** it_belnr TYPE TABLE OF rf048_d WITH HEADER LINE,
****** lt_bkpf TYPE STANDARD TABLE OF bkpf,
****** lt_bseg TYPE STANDARD TABLE OF bseg.
******
******DATA lt_ext2 TYPE TABLE OF bapiparex.
******DATA wa_ext2 TYPE bapiparex.
******DATA lv_posnr TYPE posnr.
******
******** Workarea and variable declaration
******DATA: lv_objtyp TYPE bapiache09-obj_type,
****** lv_objkey TYPE bapiache09-obj_key,
****** lv_objsys TYPE bapiache09-obj_sys,
****** wa_docheader TYPE bapiache09,
****** wa_actrec LIKE LINE OF lt_actrec,
****** wa_glacct LIKE LINE OF lt_glacct,
****** wa_curramt LIKE LINE OF lt_curramt,
****** wa_vendact LIKE LINE OF lt_vendact,
****** wa_return LIKE LINE OF lt_return,
****** lt_upload TYPE TABLE OF ty_upload,
****** ls_upload TYPE ty_upload,
****** lt_final TYPE TABLE OF ty_final,
****** ls_final TYPE ty_final,
****** it_type TYPE truxs_t_text_data.
******
******AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
****** CALL FUNCTION 'F4_FILENAME'
****** EXPORTING
******* PROGRAM_NAME = SYST-CPROG
******* DYNPRO_NUMBER = SYST-DYNNR
****** field_name = 'P_FILE'
****** IMPORTING
****** file_name = p_file.
******
******START-OF-SELECTION.
******* Uploading the data in the file into internal table
****** CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
****** EXPORTING
******* I_FIELD_SEPERATOR =
******* I_LINE_HEADER = 'X'
****** i_tab_raw_data = it_type
****** i_filename = p_file
****** TABLES
****** i_tab_converted_data = lt_upload[]
****** EXCEPTIONS
****** conversion_failed = 1
****** OTHERS = 2.
****** IF sy-subrc NE 0.
****** MESSAGE ID sy-msgid
****** TYPE sy-msgty
****** NUMBER sy-msgno
****** WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
****** ENDIF.
******
******END-OF-SELECTION.
******
******
****** LOOP AT lt_upload INTO ls_upload.
****** MOVE ls_upload-posnr TO ls_final-posnr.
****** CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
****** EXPORTING
****** input = ls_final-posnr
****** IMPORTING
****** output = ls_final-posnr.
******
****** MOVE ls_upload-user TO ls_final-user.
****** MOVE ls_upload-hdr_txt TO ls_final-hdr_txt.
****** MOVE ls_upload-bukrs TO ls_final-bukrs.
****** MOVE ls_upload-bupla TO ls_final-bupla.
****** REPLACE ALL OCCURRENCES OF '/' IN ls_upload-doc_dat WITH '.'.
****** REPLACE ALL OCCURRENCES OF '/' IN ls_upload-pos_dat WITH '.'.
****** CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
****** EXPORTING
****** date_external = ls_upload-doc_dat
******* ACCEPT_INITIAL_DATE =
****** IMPORTING
****** date_internal = ls_final-doc_dat
****** EXCEPTIONS
****** date_external_is_invalid = 1
****** OTHERS = 2.
****** IF sy-subrc <> 0.
******* Implement suitable error handling here
****** ENDIF.
****** CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
****** EXPORTING
****** date_external = ls_upload-pos_dat
******* ACCEPT_INITIAL_DATE =
****** IMPORTING
****** date_internal = ls_final-pos_dat
****** EXCEPTIONS
****** date_external_is_invalid = 1
****** OTHERS = 2.
****** IF sy-subrc <> 0.
******* Implement suitable error handling here
****** ENDIF.
****** MOVE ls_upload-h_tax TO ls_final-h_tax.
****** MOVE ls_upload-hdmbtr TO ls_final-hdmbtr.
****** MOVE ls_upload-xblnr TO ls_final-xblnr.
****** MOVE ls_upload-itm_no TO ls_final-itm_no.
******
****** CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
****** EXPORTING
****** input = ls_final-itm_no
****** IMPORTING
****** output = ls_final-itm_no.
******
****** MOVE ls_upload-hkont TO ls_final-hkont.
****** MOVE ls_upload-itm_txt TO ls_final-itm_txt.
****** MOVE ls_upload-i_tax TO ls_final-i_tax.
****** MOVE ls_upload-kostl TO ls_final-kostl.
****** MOVE ls_upload-gsber TO ls_final-gsber.
****** MOVE ls_upload-wbs_el TO ls_final-wbs_el.
****** MOVE ls_upload-hsn TO ls_final-hsn.
****** MOVE ls_upload-dmbtr TO ls_final-dmbtr.
****** MOVE ls_upload-waers TO ls_final-waers.
****** MOVE ls_upload-lifnr TO ls_final-lifnr.
******
****** REPLACE ALL OCCURRENCES OF '/' IN ls_upload-bdate WITH '.'.
****** CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
****** EXPORTING
****** date_external = ls_upload-bdate
******* ACCEPT_INITIAL_DATE =
****** IMPORTING
****** date_internal = ls_final-bdate
****** EXCEPTIONS
****** date_external_is_invalid = 1
****** OTHERS = 2.
****** IF sy-subrc <> 0.
******* Implement suitable error handling here
****** ENDIF.
****** MOVE ls_upload-with_amt TO ls_final-with_amt.
****** APPEND ls_final TO lt_final.
****** CLEAR ls_final.
****** ENDLOOP.
**************************************************************************
**************************************************************************
***************** Posting **********************************************
****** CLEAR lv_posnr.
****** LOOP AT lt_final INTO ls_final.
****** IF lv_posnr NE ls_final-posnr AND
****** lv_posnr IS NOT INITIAL.
******
****** CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
****** EXPORTING
****** documentheader = wa_docheader
******* CUSTOMERCPD =
******* CONTRACTHEADER =
****** IMPORTING
****** obj_type = lv_objtyp
****** obj_key = lv_objkey
****** obj_sys = lv_objsys
****** TABLES
****** accountgl = lt_glacct
******* accountreceivable =
****** accountpayable = lt_vendact
******* ACCOUNTTAX =
****** currencyamount = lt_curramt
******* CRITERIA =
******* VALUEFIELD =
******* EXTENSION1 =
****** return = lt_return
******* PAYMENTCARD =
******* CONTRACTITEM =
****** extension2 = lt_ext2
******* REALESTATE =
******* ACCOUNTWT =
****** .
******
****** IF sy-subrc EQ 0.
****** LOOP AT lt_return INTO wa_return.
****** WRITE:/ wa_return-message_v4.
****** WRITE:/ wa_return-message.
****** CLEAR wa_return.
****** ENDLOOP.
******
****** COMMIT WORK AND WAIT.
****** ENDIF.
******
******** all necessary fields for vendor invoices will be considerd.
******* Populate header data of document
****** wa_docheader-obj_type = 'BKPFF'. "'REACI'.
****** wa_docheader-obj_key = '$'.
****** wa_docheader-obj_sys = sy-mandt. "'RD1CLNT800'."T90CLNT090'.
****** wa_docheader-bus_act = 'RFBU'.
****** wa_docheader-comp_code = ls_final-bukrs."'YBIL'.
****** wa_docheader-username = ls_final-user.
****** wa_docheader-header_txt = ls_final-hdr_txt. "'FI-Test'.
****** wa_docheader-doc_date = ls_final-doc_dat."'20170822'.
****** wa_docheader-pstng_date = ls_final-pos_dat."'20170822'.
*******wa_docheader-fisc_year = '2016'.
*******wa_docheader-fis_period = '06'.
****** wa_docheader-doc_type = 'KZ'.
*******wa_docheader-ac_doc_no = '1400000009'.
****** wa_docheader-ref_doc_no = ls_final-xblnr."'0090039889'.
*******wa_docheader-
******
******* Account payable are maintained here
****** wa_vendact-itemno_acc = '0000000002'.
****** wa_vendact-vendor_no = '0000010173'.
*******wa_vendact-gl_account = '0000159000'." '0000160000'.
****** wa_vendact-comp_code = 'YBIL'.
*******wa_vendact-pmnttrms = '0001'.
*******wa_vendact-bline_date = '20160809'.
*******wa_vendact-item_text = 'Account payable Ismail'.
*******wa_vendact-sp_gl_ind = 'A'.
****** APPEND wa_vendact TO lt_vendact.
******
****** ELSEIF lv_posnr IS INITIAL.
******** All necessary fields for vendor invoices will be considerd.
******* Populate header data of document
****** wa_docheader-obj_type = 'BKPFF'. "'REACI'.
****** wa_docheader-obj_key = '$'.
****** wa_docheader-obj_sys = sy-mandt. "'RD1CLNT800'."T90CLNT090'.
****** wa_docheader-bus_act = 'RFBU'.
****** wa_docheader-comp_code = ls_final-bukrs."'YBIL'.
****** wa_docheader-username = ls_final-user.
****** wa_docheader-header_txt = ls_final-hdr_txt. "'FI-Test'.
****** wa_docheader-doc_date = ls_final-doc_dat."'20170822'.
****** wa_docheader-pstng_date = ls_final-pos_dat."'20170822'.
*******wa_docheader-fisc_year = '2016'.
*******wa_docheader-fis_period = '06'.
****** wa_docheader-doc_type = 'KZ'.
*******wa_docheader-ac_doc_no = '1400000009'.
****** wa_docheader-ref_doc_no = ls_final-xblnr."'0090039889'.
*******wa_docheader-
******
******* Account payable are maintained here
****** wa_vendact-itemno_acc = '0000000001'.
****** wa_vendact-vendor_no = ls_final-lifnr.
*******wa_vendact-gl_account = '0000159000'." '0000160000'.
****** wa_vendact-comp_code = 'YBIL'.
****** wa_vendact-w_tax_code =
*******wa_vendact-pmnttrms = '0001'.
*******wa_vendact-bline_date = '20160809'.
*******wa_vendact-item_text = 'Account payable Ismail'.
*******wa_vendact-sp_gl_ind = 'A'.
****** append wa_vendact TO lt_vendact.
******
******
****** CLEAR wa_curramt.
****** wa_curramt-itemno_acc = '0000000001'.
*******wa_curramt-curr_type = '00'.
****** wa_curramt-currency = ls_final-waers.
*******wa_curramt-currency_iso = 'INR'.
****** wa_curramt-amt_doccur = ls_final-dmbtr.
*******wa_curramt-amt_base = '-9.00'.
*******wa_curramt-tax_amt = '-14.76'.
****** APPEND wa_curramt TO lt_curramt.
****** CLEAR wa_curramt.
****** ENDIF.
******
******
*******ls_cust-bank_acct = '110009'.
******* Corresponding entry in GL Account
****** CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
****** EXPORTING
****** input = ls_final-posnr
****** IMPORTING
****** output = ls_final-posnr.
******
****** wa_glacct-itemno_acc = ls_final-posnr.
****** wa_glacct-gl_account = ls_final-hkont. "'159000'.
****** wa_glacct-costcenter = ls_final-kostl.
****** wa_glacct-wbs_element = ls_final-wbs_el.
****** wa_glacct-bus_area = ls_final-gsber.
****** wa_glacct-doc_type = 'KZ'.
****** wa_glacct-comp_code = 'YBIL'.
******
*******wa_glacct-fis_period = '08'.
*******wa_glacct-acct_type = 'S'.
****** "New
*******wa_glacct-fisc_year = '2016'.
*******wa_glacct-pstng_date = sy-datum.
*******wa_glacct-value_date = sy-datum.
*******wa_glacct-vendor_no = '0000100620'.
*******"end
*******wa_glacct-item_text = 'GL account Ismail'.
*******wa_glacct-po_number = '9441501340'."'9441501332'." '9441501336'.
*******wa_glacct-po_item = '00010'.
****** APPEND wa_glacct TO lt_glacct.
******
******
*******Make sure total amount balance for a document should be zero
******
****** wa_curramt-itemno_acc = '0000000002'.
*******wa_curramt-curr_type = '00'.
****** wa_curramt-currency = 'INR'.
*******wa_curramt-currency_iso = 'INR'.
****** wa_curramt-amt_doccur = '-123.00'.
*******wa_curramt-amt_base = '9.00'.
*******wa_curramt-tax_amt = '-14.76'.
****** APPEND wa_curramt TO lt_curramt.
****** CLEAR: wa_curramt,wa_glacct,wa_vendact.
******
******
****** CLEAR wa_ext2.
****** wa_ext2-structure = 'EBELN'.
****** wa_ext2-valuepart1 = '0000000001'.
****** wa_ext2-valuepart2 = '123456'.
****** APPEND wa_ext2 TO lt_ext2.
******
******
****** ENDLOOP.

Vous aimerez peut-être aussi