POSTING_INTERFACE_CLEARING - ooxxvv/MySAPnotes GitHub Wiki

PageOutline

POSTING_INTERFACE_CLEARING

Code

{{{#!abap &--------------------------------------------------------------------- *& Form grabar_compensacion &--------------------------------------------------------------------- * ----------------------------------------------------------------------

  • --> i_bsik
  • --> p_bkpf
    ---------------------------------------------------------------------- FORM grabar_compensacion tables i_bsik structure bsik using p_bkpf type bkpf.

TABLES bseg.

DATA/ l_t_blntab TYPE blntab OCCURS 0 WITH HEADER LINE, l_t_ftclear TYPE ftclear OCCURS 0 WITH HEADER LINE, l_t_ftpost TYPE ftpost OCCURS 0 WITH HEADER LINE, l_t_fttax TYPE fttax OCCURS 0 WITH HEADER LINE.

DATA l_group LIKE apqi-groupid.

DEFINE rellena_ftpost. l_t_ftpost-stype=&1. l_t_ftpost-count=&2. l_t_ftpost-fnam=&3. l_t_ftpost-fval=&4. append l_t_ftpost. END-OF-DEFINITION.

DEFINE rellena_ftclear. select single * from bseg where belnr=&1 and bukrs=&2 and gjahr=&3 and buzei=&4.

  • select single *
  • from bseg
  • where belnr=BSIK-BELNR
  • and bukrs=BSIK-BUKRS
  • and gjahr=BSIK-GJAHR
  • and buzei=BSIK-BUZEI. l_t_ftclear-agkoa=bseg-koart. l_t_ftclear-agbuk=bseg-bukrs. l_t_ftclear-selfd='BELNR'. if bseg-umskz is initial. l_t_ftclear-xnops='X'. else. l_t_ftclear-agums=bseg-umskz. endif. concatenate bseg-belnr bseg-gjahr bseg-buzei into l_t_ftclear-selvon. append l_t_ftclear.

END-OF-DEFINITION.

l_group=sy-tcode.

*--- Posting interface start CALL FUNCTION 'POSTING_INTERFACE_START' EXPORTING

  • I_CLIENT =SY-MANDT i_function ='C' " Using Call Transaction i_group =l_group
  • I_HOLDDATE =' '
  • I_KEEP =' ' i_mode =anz_mode i_update ='S' i_user =sy-uname i_xbdcc ='X' EXCEPTIONS client_incorrect =1 function_invalid =2 group_name_missing =3 mode_invalid =4 update_invalid =5 OTHERS =6 . 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 i_bsik.

rellena_ftclear i_bsik-belnr i_bsik-bukrs i_bsik-gjahr i_bsik-buzei.

ENDLOOP.

DATA l_datum(10).

rellena_ftpost 'K' 1 'BKPF-BUKRS' p_bkpf-bukrs. rellena_ftpost 'K' 1 'BKPF-BLART' p_bkpf-blart. WRITE p_bkpf-bldat TO l_datum. rellena_ftpost 'K' 1 'BKPF-BLDAT' l_datum. WRITE p_bkpf-budat TO l_datum. rellena_ftpost 'K' 1 'BKPF-BUDAT' l_datum. rellena_ftpost 'K' 1 'BKPF-WAERS' p_bkpf-waers. rellena_ftpost 'K' 1 'BKPF-XBLNR' p_bkpf-xblnr.

CALL FUNCTION 'POSTING_INTERFACE_CLEARING' EXPORTING i_auglv ='EINGZAHL' " Entrada de Pagos i_tcode ='FB05'

  • I_SGFUNCT =' '
  • I_NO_AUTH =' ' IMPORTING e_msgid =sy-msgid e_msgno =sy-msgno e_msgty =sy-msgty e_msgv1 =sy-msgv1 e_msgv2 =sy-msgv2 e_msgv3 =sy-msgv3 e_msgv4 =sy-msgv4 e_subrc =sy-subrc TABLES t_blntab =l_t_blntab t_ftclear =l_t_ftclear t_ftpost =l_t_ftpost t_fttax =l_t_fttax EXCEPTIONS clearing_procedure_invalid =1 clearing_procedure_missing =2 table_t041a_empty =3 transaction_code_invalid =4 amount_format_error =5 too_many_line_items =6 company_code_invalid =7 screen_not_found =8 no_authorization =9 OTHERS =10 .

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

CALL FUNCTION 'POSTING_INTERFACE_END'

  • EXPORTING
  • I_BDCIMMED =' '
  • I_BDCSTRTDT =NO_DATE
  • I_BDCSTRTTM =NO_TIME EXCEPTIONS session_not_processable =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.

READ TABLE l_t_blntab INDEX 1. IF sy-subrc IS INITIAL. SET PARAMETER ID 'BUK' FIELD l_t_blntab-bukrs. SET PARAMETER ID 'BLN' FIELD l_t_blntab-belnr. SET PARAMETER ID 'GJR' FIELD l_t_blntab-gjahr. CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.

LEAVE TO TRANSACTION sy-tcode. ENDIF.

ENDFORM. " grabar_compensacion }}}

{{{#!comment -------------------- 以下的部份是固定的,不要變動 ----- }}}