Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

BAPI FB01

Former Member
0 Kudos
445

Hi gurus,

I am trying to run a BAPI 'BAPI_ACC_DOCUMENT_POST' for transacion FB01, although the program is not giving any errror but somehow no document is creating.

Can you please help me out.

Thanks

Rajeev Gupta

data: begin of it_input occurs 0,

doc_date(10),

pos_date(10),

doc_type(2),

pos_per(2),

c_code(4),

currency(3),

pos_key(2),

glaccount(10),

amount(16),

cctr(10),

prctr(10),

assignment(18),

end of it_input.

data: documentheader type BAPIACHE09,

obj_type type BAPIACHE09-OBJ_TYPE,

obj_key type BAPIACHE09-OBJ_KEY,

obj_sys type BAPIACHE09-OBJ_SYS,

glaccount like BAPIACGL09 occurs 0 with header line,

  • ap like BAPIACAP09 occurs 0 with header line,

currencyamount like BAPIACCR09 occurs 0 with header line,

return like BAPIRET2 occurs 0 with header line,

return2 type BAPIRET2.

perform get_data.

perform call_bapi.

&----


*& Form get_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_data .

call function 'WS_UPLOAD'

EXPORTING

filename = 'C:\Documents and Settings\rajeevgupta\Desktop\fb01.txt'

filetype = 'DAT'

TABLES

data_tab = it_input

EXCEPTIONS

conversion_error = 1

file_open_error = 2

file_read_error = 3

invalid_type = 4

no_batch = 5

unknown_error = 6

invalid_table_width = 7

gui_refuse_filetransfer = 8

customer_error = 9

others = 10.

ENDFORM. " get_data

&----


*& Form call_bapi

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM call_bapi .

move:

it_input-doc_date to documentheader-doc_date,

it_input-pos_date to documentheader-pstng_date,

it_input-doc_type to documentheader-doc_type,

it_input-c_code to documentheader-comp_code,

it_input-pos_per to documentheader-fis_period.

move:

it_input-glaccount to glaccount-gl_account,

it_input-cctr to glaccount-costcenter,

it_input-prctr to glaccount-profit_ctr,

it_input-assignment to glaccount-alloc_numbr.

append glaccount.

move:

it_input-currency to currencyamount-currency,

it_input-amount to currencyamount-amt_doccur.

append currencyamount.

CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'

EXPORTING

DOCUMENTHEADER = documentheader

IMPORTING

OBJ_TYPE = obj_type

OBJ_KEY = obj_key

OBJ_SYS = obj_sys

TABLES

ACCOUNTGL = glaccount

  • ACCOUNTPAYABLE = ap

CURRENCYAMOUNT = currencyamount

RETURN = return.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

  • EXPORTING

  • WAIT =

IMPORTING

RETURN = return2.

ENDFORM. " call_bapi

3 REPLIES 3

Former Member
0 Kudos
150

Hi,

Here is the example program



*REPORT  acc_bapi_test_document                  .

selection-screen begin of block bl01 .

parameters:
  check_l             radiobutton group rb1,
  check_a default 'X' radiobutton group rb1,
  post                radiobutton group rb1.
selection-screen uline.
parameters:
  rev_c               radiobutton group rb1,
  rev_p               radiobutton group rb1.
selection-screen uline.
parameters:
  ref_key like bapiache01-obj_key default 'TEST000001BAPICALL',
  dest    like bdi_logsys-logsys  default '          '.

selection-screen end   of block bl01 .

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.


perform fill_internal_tables.

if check_l = 'X'.

  call function 'BAPI_ACC_DOCUMENT_CHECK'
       destination dest
       exporting
            documentheader    = gd_documentheader
            customercpd       = gd_customercpd
            contractheader    = gd_fica_hd
       tables
            accountgl         = it_accountgl
            accountreceivable = it_accountreceivable
            accountpayable    = it_accountpayable
            accounttax        = it_accounttax
*            currencyamount    = it_currencyamount
            criteria          = it_criteria
            valuefield        = it_valuefield
            extension1        = it_ext
            return            = it_return
            paymentcard       = it_paymentcard
            contractitem      = it_fica_it.
*            extension2        = it_ext2
*            realestate        = it_re.
  .

  write: / 'Result of check lines:'.                        "#EC NOTEXT
  perform show_messages.

endif.

if check_a = 'X'.

  call function 'BAPI_ACC_DOCUMENT_CHECK'
    destination dest
    exporting
      documentheader    = gd_documentheader
      customercpd       = gd_customercpd
      contractheader    = gd_fica_hd
    tables
      accountgl         = it_accountgl
      accountreceivable = it_accountreceivable
      accountpayable    = it_accountpayable
      accounttax        = it_accounttax
      currencyamount    = it_currencyamount
      criteria          = it_criteria
      valuefield        = it_valuefield
      extension1        = it_ext
      return            = it_return
      paymentcard       = it_paymentcard
      contractitem      = it_fica_it.
*      extension2        = it_ext2
*      realestate        = it_re.

  write: / 'Result of check all:'.                          "#EC NOTEXT
  perform show_messages.

endif.

if post = 'X'.

  data: l_type like gd_documentheader-obj_type,
        l_key  like gd_documentheader-obj_key,
        l_sys  like gd_documentheader-obj_sys.

  if dest = space or
     dest = gd_documentheader-obj_sys.
*    post synchron

    call function 'BAPI_ACC_DOCUMENT_POST'
      exporting
        documentheader    = gd_documentheader
        customercpd       = gd_customercpd
        contractheader    = gd_fica_hd
      importing
        obj_type          = l_type
        obj_key           = l_key
        obj_sys           = l_sys
      tables
        accountgl         = it_accountgl
        accountreceivable = it_accountreceivable
        accountpayable    = it_accountpayable
        accounttax        = it_accounttax
        currencyamount    = it_currencyamount
        criteria          = it_criteria
        valuefield        = it_valuefield
        extension1        = it_ext
        return            = it_return
        paymentcard       = it_paymentcard
        contractitem      = it_fica_it.
*        extension2        = it_ext2
*        realestate        = it_re.

    write: / 'Result of post:'.                             "#EC NOTEXT
    perform show_messages.

  else.
*   create Idoc

    it_receivers-logsys = dest.
    append it_receivers.

    call function 'ALE_ACC_DOCUMENT_POST'
      exporting
        documentheader    = gd_documentheader
        customercpd       = gd_customercpd
        contractheader    = gd_fica_hd
      tables
        accountgl         = it_accountgl
        accountreceivable = it_accountreceivable
        accountpayable    = it_accountpayable
        accounttax        = it_accounttax
        currencyamount    = it_currencyamount
        criteria          = it_criteria
        valuefield        = it_valuefield
        extension1        = it_ext
        paymentcard       = it_paymentcard
        contractitem      = it_fica_it
*        extension2        = it_ext2
*        realestate        = it_re
        receivers         = it_receivers
*       COMMUNICATION_DOCUMENTS =
*       APPLICATION_OBJECTS     =
      exceptions
        error_creating_idocs    = 1
        others                  = 2  .

    if sy-subrc = 0.
      write: / 'IDoc created'.                              "#EC NOTEXT
    else.
      write: sy-msgid.
    endif.

  endif.
endif.

if rev_p = 'X' or rev_c = 'X'.
  data: rev like bapiacrev,
        rev_key like ref_key.

  rev_key       = ref_key.
  rev_key(1)    = 'R'.
  rev-obj_type  = gd_documentheader-obj_type.
  rev-obj_key   = rev_key.
  rev-obj_sys   = gd_documentheader-obj_sys.
  rev-obj_key_r = ref_key.

  if rev_c is initial.
    if dest = space or
       dest = gd_documentheader-obj_sys.

      call function 'BAPI_ACC_DOCUMENT_REV_POST'
        exporting
          reversal = rev
          bus_act  = gd_documentheader-bus_act
        tables
          return   = it_return.
    else.
      it_receivers-logsys = dest.
      append it_receivers.

      call function 'ALE_ACC_DOCUMENT_REV_POST'
        exporting
          reversal                      = rev
          busact                        = gd_documentheader-bus_act
*         OBJ_TYPE                      = 'BUS6035'
*         SERIAL_ID                     = '0'
        tables
          receivers                     = it_receivers
*         COMMUNICATION_DOCUMENTS       =
*         APPLICATION_OBJECTS           =
        exceptions
          error_creating_idocs          = 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.
      else.
        write: / 'IDoc created'.                            "#EC NOTEXT
      endif.

    endif.
  else.
    call function 'BAPI_ACC_DOCUMENT_REV_CHECK'
      exporting
        reversal = rev
        bus_act  = gd_documentheader-bus_act
      tables
        return   = it_return.
  endif.

  write: / 'Result of Reversal Posting:'.                   "#EC NOTEXT
  perform show_messages.

endif.

commit work.




*---------------------------------------------------------------------*
*      Form  fill_internal_tables
*---------------------------------------------------------------------*
form fill_internal_tables.

  perform fill_header.
  perform fill_accountgl.
*  perform fill_accountar.
  perform fill_accountap.
  perform fill_accounttax.
  perform fill_currencyamount.
*  perform fill_criteria.
*  perform fill_valuefield.
*  perform fill_re.
*  perform fill_cpd.
*  perform fill_contractitem.
*  perform fill_contractheader.
*  perform fill_paymentcard.
*  perform fill_extension.

endform.                               " fill_internal_tables

*---------------------------------------------------------------------*
*      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


*---------------------------------------------------------------------*
*       FORM fill_accountgl                                           *
*---------------------------------------------------------------------*
form fill_accountgl.

  clear it_accountgl.
  it_accountgl-itemno_acc     = 2.
  it_accountgl-gl_account     = '0021510201'.
  it_accountgl-item_text      = 'BAPI Test G/L line item'.  "#EC NOTEXT
 it_accountgl-bus_area       = '01'.
 it_accountgl-profit_ctr     = '0000010101'.
 it_accountgl-comp_code      = 'SLOC'.
  append it_accountgl.


  clear it_accountgl.
  it_accountgl-itemno_acc     = 3.
  it_accountgl-gl_account     = '0082000201'.
  it_accountgl-item_text      = 'BAPI Test G/L line item'.  "#EC NOTEXT
  it_accountgl-bus_area       = '01'.
  it_accountgl-profit_ctr     = '0000010101'.
  it_accountgl-comp_code      = 'SLOC'.
  it_accountgl-tax_code       = 'A3'.
  append it_accountgl.


  clear it_accountgl.
  it_accountgl-itemno_acc     = 5.
  it_accountgl-gl_account     = '0021510201'.
  it_accountgl-item_text      = 'BAPI Test G/L line item'.  "#EC NOTEXT
 it_accountgl-bus_area       = '01'.
 it_accountgl-profit_ctr     = '0000010301'.
 it_accountgl-comp_code      = 'SLOC'.
  append it_accountgl.

  clear it_accountgl.
  it_accountgl-itemno_acc     = 6.
  it_accountgl-gl_account     = '0082000201'.
  it_accountgl-item_text      = 'BAPI Test G/L line item'.  "#EC NOTEXT
  it_accountgl-bus_area       = '01'.
  it_accountgl-profit_ctr     = '0000010301'.
  it_accountgl-comp_code      = 'SLOC'.
  it_accountgl-tax_code       = 'A3'.
  append it_accountgl.


  clear it_accountgl.
  it_accountgl-itemno_acc     = 7.
*  it_accountgl-itemno_acc     = 8.
  it_accountgl-gl_account     = '0021510201'.
  it_accountgl-item_text      = 'BAPI Test G/L line item'.  "#EC NOTEXT
 it_accountgl-bus_area       = '90'.
 it_accountgl-profit_ctr     = '0000900008'.
 it_accountgl-comp_code      = 'CORP'.
  append it_accountgl.


  clear it_accountgl.
  it_accountgl-itemno_acc     = 8.
*  it_accountgl-itemno_acc     = 9.
  it_accountgl-gl_account     = '0082000201'.
  it_accountgl-item_text      = 'BAPI Test G/L line item'.  "#EC NOTEXT
  it_accountgl-bus_area       = '90'.
  it_accountgl-profit_ctr     = '0000900008'.
  it_accountgl-comp_code      = 'CORP'.
*  it_accountgl-tax_code       = 'A3'.
  append it_accountgl.

endform.                    "fill_accountgl

*---------------------------------------------------------------------*
*       FORM fill_header                                              *
*---------------------------------------------------------------------*
form fill_header.

*  CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET'
*    IMPORTING
*      own_logical_system = gd_documentheader-obj_sys.

* OBJ_TYPE has to be replaced by customers object key (Y* or Z*)
*  gd_documentheader-obj_type   = 'IDOC'.
*  gd_documentheader-obj_key    = ref_key.
  gd_documentheader-username   = sy-uname.
  gd_documentheader-header_txt = 'BAPI Test'.               "#EC NOTEXT
* gd_documentheader-obj_key_r  =
* GD_DOCUMENTHEADER-reason_rev =
 gd_documentheader-comp_code  = 'SLOC'.
* GD_DOCUMENTHEADER-AC_DOC_NO  =
  gd_documentheader-fisc_year  = sy-datum(4).
  gd_documentheader-doc_date   = sy-datum.
  gd_documentheader-pstng_date = sy-datum.
* GD_DOCUMENTHEADER-TRANS_DATE =
* GD_DOCUMENTHEADER-VALUE_DATE =
* GD_DOCUMENTHEADER-FIS_PERIOD =
 gd_documentheader-doc_type   = 'KR'.
 gd_documentheader-ref_doc_no = 'xxxx'.
* GD_DOCUMENTHEADER-COMPO_ACC  =
  gd_documentheader-bus_act    = 'RFBU'.

endform.                    "fill_header

*---------------------------------------------------------------------*
*       FORM fill_contractheader                                     *
*---------------------------------------------------------------------*
form fill_contractheader.

*  gd_fica_hd-doc_no           =
*  gd_fica_hd-doc_type_ca      =
*  gd_fica_hd-res_key          =
*  gd_fica_hd-fikey            =
*  gd_fica_hd-payment_form_ref =

endform.                    "fill_contractheader

*---------------------------------------------------------------------*
*       FORM fill_cpd                                                 *
*---------------------------------------------------------------------*
form fill_cpd.

*  gd_customercpd-name
*  gd_customercpd-name_2
*  gd_customercpd-name_3
*  gd_customercpd-name_4
*  gd_customercpd-postl_code
*  gd_customercpd-city
*  gd_customercpd-country
*  gd_customercpd-country_iso
*  gd_customercpd-street
*  gd_customercpd-po_box
*  gd_customercpd-pobx_pcd
*  gd_customercpd-pobk_curac
*  gd_customercpd-bank_acct
*  gd_customercpd-bank_no
*  gd_customercpd-bank_ctry
*  gd_customercpd-bank_ctry_iso
*  gd_customercpd-tax_no_1
*  gd_customercpd-tax_no_2
*  gd_customercpd-tax
*  gd_customercpd-equal_tax
*  gd_customercpd-region
*  gd_customercpd-ctrl_key
*  gd_customercpd-instr_key
*  gd_customercpd-dme_ind
*  gd_customercpd-langu_iso

endform.                    "fill_cpd

*---------------------------------------------------------------------*
*       FORM fill_ar                                                  *
*---------------------------------------------------------------------*
form fill_accountar.

* CLEAR it_accountreceivable.
* it_accountreceivable-itemno_acc =
* it_accountreceivable-customer   =
* IT_ACCOUNTRECEIVABLE-REF_KEY_1  =
* IT_ACCOUNTRECEIVABLE-REF_KEY_2  =
* IT_ACCOUNTRECEIVABLE-REF_KEY_3  =
* IT_ACCOUNTRECEIVABLE-PMNTTRMS   =
* IT_ACCOUNTRECEIVABLE-BLINE_DATE =
* IT_ACCOUNTRECEIVABLE-DSCT_DAYS1 =
* IT_ACCOUNTRECEIVABLE-DSCT_DAYS2 =
* IT_ACCOUNTRECEIVABLE-NETTERMS   =
* IT_ACCOUNTRECEIVABLE-DSCT_PCT1  =
* IT_ACCOUNTRECEIVABLE-DSCT_PCT2  =
* IT_ACCOUNTRECEIVABLE-PYMT_METH  =
* IT_ACCOUNTRECEIVABLE-DUNN_KEY   =
* IT_ACCOUNTRECEIVABLE-DUNN_BLOCK =
* IT_ACCOUNTRECEIVABLE-PMNT_BLOCK =
* IT_ACCOUNTRECEIVABLE-VAT_REG_NO =
* IT_ACCOUNTRECEIVABLE-ALLOC_NMBR =
* it_accountreceivable-item_text  =
* IT_ACCOUNTRECEIVABLE-PARTNER_BK =
* IT_ACCOUNTRECEIVABLE-GL_ACCOUNT =
* it_accountreceivable-comp_code
* it_accountreceivable-bus_area
* it_accountreceivable-pmtmthsupl
* it_accountreceivable-paymt_ref
* it_accountreceivable-scbank_ind
* it_accountreceivable-businessplace
* it_accountreceivable-sectioncode
* it_accountreceivable-branch
* it_accountreceivable-pymt_cur
* it_accountreceivable-pymt_cur_iso
* it_accountreceivable-pymt_amt
* it_accountreceivable-c_ctr_area
* it_accountreceivable-bank_id
* it_accountreceivable-supcountry
* it_accountreceivable-supcountry_iso
* it_accountreceivable-tax_code
* it_accountreceivable-taxjurcode
* it_accountreceivable-tax_date
* it_accountreceivable-sp_gl_ind
* it_accountreceivable-partner_guid = '1465464654'.
* APPEND it_accountreceivable.

endform.                    "fill_accountar

*---------------------------------------------------------------------*
*       FORM fill_ap                                                  *
*---------------------------------------------------------------------*
form fill_accountap.

  clear it_accountpayable.
  it_accountpayable-itemno_acc = 1.
*  it_accountpayable-vendor_no  = '0000060259'.
  it_accountpayable-vendor_no  = '0000060693'.
* it_accountpayable-gl_account
* it_accountpayable-ref_key_1
* it_accountpayable-ref_key_2
* it_accountpayable-ref_key_3
 it_accountpayable-comp_code = 'SLOC'.
 it_accountpayable-bus_area = '01'.
 it_accountpayable-pmnttrms = 'A000'.
* it_accountpayable-bline_date
* it_accountpayable-dsct_days1
* it_accountpayable-dsct_days2
* it_accountpayable-netterms
* it_accountpayable-dsct_pct1
* it_accountpayable-dsct_pct2
* it_accountpayable-pymt_meth
* it_accountpayable-pmtmthsupl
* it_accountpayable-pmnt_block
* it_accountpayable-scbank_ind
* it_accountpayable-supcountry
* it_accountpayable-supcountry_iso
* it_accountpayable-bllsrv_ind
* it_accountpayable-alloc_nmbr
  it_accountpayable-item_text  = 'BAPI Test A/P line item'. "#EC NOTEXT
* it_accountpayable-po_sub_no
* it_accountpayable-po_checkdg
* it_accountpayable-po_ref_no
* it_accountpayable-w_tax_code
* it_accountpayable-businessplace
* it_accountpayable-sectioncode
* it_accountpayable-instr1
* it_accountpayable-instr2
* it_accountpayable-instr3
* it_accountpayable-instr4
* it_accountpayable-branch
* it_accountpayable-pymt_cur
* it_accountpayable-pymt_amt
* it_accountpayable-pymt_cur_iso
* it_accountpayable-sp_gl_ind

  append it_accountpayable.

endform.                    "fill_accountap

*---------------------------------------------------------------------*
*       FORM fill_tax                                                 *
*---------------------------------------------------------------------*
form fill_accounttax.

  clear it_accounttax.
  it_accounttax-itemno_acc = 4.
  it_accounttax-gl_account = '0011361502'.
  it_accounttax-tax_code   = 'A3'.
  it_accounttax-acct_key   = 'VST'.
  it_accounttax-cond_key   = 'MWVS'.
* it_accounttax-itemno_tax = 8.
  append it_accounttax.

*  clear it_accounttax.
*  it_accounttax-itemno_acc = 7.
*  it_accounttax-gl_account = '0011361502'.
*  it_accounttax-tax_code   = 'A3'.
*  it_accounttax-acct_key   = 'VST'.
*  it_accounttax-COND_KEY   = 'MWVS'.
*  append it_accounttax.

*  clear it_accounttax.
**  it_accounttax-itemno_acc = 10.
*  it_accounttax-itemno_acc = 9.
*  it_accounttax-gl_account = '0011361502'.
*  it_accounttax-tax_code   = 'A3'.
*  it_accounttax-acct_key   = 'VST'.
*  it_accounttax-cond_key   = 'MWVS'.
** it_accounttax-itemno_tax = 4.
*  append it_accounttax.

endform.                    "fill_accounttax

*---------------------------------------------------------------------*
*       FORM fill_currencyamount                                      *
*---------------------------------------------------------------------*
form fill_currencyamount.

  clear it_currencyamount.
  it_currencyamount-itemno_acc   = 1.
  it_currencyamount-curr_type    = '00'.
  it_currencyamount-currency     = 'MXN'.
  it_currencyamount-amt_doccur   = '-7408036.2'.
  append it_currencyamount.

  clear it_currencyamount.
  it_currencyamount-itemno_acc   = 2.
  it_currencyamount-curr_type    = '00'.
  it_currencyamount-currency     = 'MXN'.
  it_currencyamount-amt_doccur   = '5336472.00'.
  append it_currencyamount.

  clear it_currencyamount.
  it_currencyamount-itemno_acc   = 3.
  it_currencyamount-curr_type    = '00'.
  it_currencyamount-currency     = 'MXN'.
  it_currencyamount-amt_doccur   = '3840.00'.
  append it_currencyamount.

  clear it_currencyamount.
  it_currencyamount-itemno_acc   = 4.
  it_currencyamount-curr_type    = '00'.
  it_currencyamount-currency     = 'MXN'.
  it_currencyamount-amt_base   = '5548.00'.
  it_currencyamount-amt_doccur   = '832.2'.
*  it_currencyamount-amt_doccur   = '576.00'.
*  it_currencyamount-amt_base   = '3840.00'.
  append it_currencyamount.

  clear it_currencyamount.
  it_currencyamount-itemno_acc   = 5.
  it_currencyamount-curr_type    = '00'.
  it_currencyamount-currency     = 'MXN'.
  it_currencyamount-amt_doccur   = '2051279.00'.
  append it_currencyamount.

  clear it_currencyamount.
  it_currencyamount-itemno_acc   = 6.
  it_currencyamount-curr_type    = '00'.
  it_currencyamount-currency     = 'MXN'.
  it_currencyamount-amt_doccur   = '1690.00'.
  append it_currencyamount.

*  clear it_currencyamount.
*  it_currencyamount-itemno_acc   = 7.
*  it_currencyamount-curr_type    = '00'.
*  it_currencyamount-currency     = 'MXN'.
*  it_currencyamount-amt_base     = '1690.00'.
*  it_currencyamount-amt_doccur   = '253.5'.
*  append it_currencyamount.

  clear it_currencyamount.
*  it_currencyamount-itemno_acc   = 8.
  it_currencyamount-itemno_acc   = 7.
  it_currencyamount-curr_type    = '00'.
  it_currencyamount-currency     = 'MXN'.
  it_currencyamount-amt_doccur   = '13905.00'.
  append it_currencyamount.

  clear it_currencyamount.
*  it_currencyamount-itemno_acc   = 9.
  it_currencyamount-itemno_acc   = 8.
  it_currencyamount-curr_type    = '00'.
  it_currencyamount-currency     = 'MXN'.
*  it_currencyamount-amt_base     = '2.70'.
  it_currencyamount-amt_doccur   = '18.00'.
  append it_currencyamount.

*  clear it_currencyamount.
**  it_currencyamount-itemno_acc   = 10.
*  it_currencyamount-itemno_acc   = 9.
*  it_currencyamount-curr_type    = '00'.
*  it_currencyamount-currency     = 'MXN'.
*  it_currencyamount-amt_doccur   = '2.70'.
*  it_currencyamount-amt_base     = '18.00'.
*  append it_currencyamount.
endform.                    "fill_currencyamount

*---------------------------------------------------------------------*
*       FORM fill_criteria                                            *
*---------------------------------------------------------------------*
form fill_criteria.

* CLEAR it_criteria.
* it_criteria-itemno_acc = 2.
* it_criteria-fieldname = 'BZIRK'.
* it_criteria-character = '000001'.
* append it_criteria.

endform.                    "fill_criteria

*---------------------------------------------------------------------*
*       FORM fill_valuefield                                          *
*---------------------------------------------------------------------*
form fill_valuefield.

* CLEAR it_valuefield.
* it_valuefield-itemno_acc = 2.
* it_valuefield-fieldname = 'VV010'.
* it_valuefield-curr_type
* it_valuefield-currency = 'EUR'.
* it_valuefield-currency_iso
* it_valuefield-amt_valcom
* it_valuefield-base_uom
* it_valuefield-base_uom_iso
* it_valuefield-qua_valcom
* append it_valuefield.

endform.                    "fill_valuefield

*---------------------------------------------------------------------*
*       FORM fill_extension                                           *
*---------------------------------------------------------------------*
form fill_extension.

* CLEAR it_ext.
* it_ext-field1
* it_ext-field2
* it_ext-field3
* it_ext-field4
* APPEND it_ext.

* DATA: ls_zzz TYPE ZZZ_ACCIT.
* CLEAR it_ext2.
* it_ext2-structure = 'ZZZ_ACCIT'.
*  ls_zzz-posnr = 2.
*  ls_zzz-awref_reb = '123654'.
*  ls_zzz-aworg_reb = '654654'.
*  ls_zzz-grant_nbr = '0022002'.
* MOVE ls_zzz TO it_ext2-valuepart1.
* APPEND it_ext2.

endform.                    "fill_extension

*---------------------------------------------------------------------*
*       FORM fill_paymentcard                                         *
*---------------------------------------------------------------------*
form fill_paymentcard.

*  CLEAR it_paymentcard.
*  it_paymentcard-itemno_acc = 1.
*  it_paymentcard-cc_glaccount
*  it_paymentcard-cc_type
*  it_paymentcard-cc_number
*  it_paymentcard-cc_seq_no
*  it_paymentcard-cc_valid_f
*  it_paymentcard-cc_valid_t
*  it_paymentcard-cc_name
*  it_paymentcard-dataorigin
*  it_paymentcard-authamount = '100'.
*  it_paymentcard-currency = 'EUR'.
*  it_paymentcard-currency_iso
*  it_paymentcard-cc_autth_no
*  it_paymentcard-auth_refno
*  it_paymentcard-auth_date
*  it_paymentcard-auth_time
*  it_paymentcard-merchidcl
*  it_paymentcard-point_of_receipt
*  it_paymentcard-terminal
*  it_paymentcard-cctyp = '1'.
*  APPEND it_paymentcard.

endform.                    "fill_paymentcard

*---------------------------------------------------------------------*
*       FORM fill_contractitem                                        *
*---------------------------------------------------------------------*
form fill_contractitem.

* CLEAR it_fica_it.
*  it_fica_it-itemno_acc
*  it_fica_it-cont_acct
*  it_fica_it-main_trans
*  it_fica_it-sub_trans
*  it_fica_it-func_area
*  it_fica_it-fm_area
*  it_fica_it-cmmt_item
*  it_fica_it-funds_ctr
*  it_fica_it-fund
* append it_fica_it.

endform.                    "fill_contractitem

*&---------------------------------------------------------------------*
*&      Form  fill_re
*&---------------------------------------------------------------------*
form fill_re .

*  CLEAR it_re.
*  it_re-itemno_acc      =
*  it_re-business_entity =
*  it_re-building        =
*  it_re-property        =
*  it_re-rental_object   =
*  it_re-serv_charge_key =
*  it_re-settlement_unit =
*  it_re-contract_no     =
*  APPEND it_re.
*

endform.                    "fill_re


Regards

Sudheer

alejandro_bindi
Active Contributor
0 Kudos
150

First RETURN internal table line returns the general process status. If there's no error message, you can get the saved document number. Check this code:


  CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
       EXPORTING
            documentheader = lp_documentheader
       IMPORTING
            obj_key        = l_obj_key
       TABLES
            accountgl      = lpi_accountgl
            accounttax     = lpi_accounttax
            currencyamount = lpi_currencyamount
            return         = li_return.

  READ TABLE li_return INDEX 1 INTO lwa_return.
  IF lwa_return-type = 'A' OR
     lwa_return-type = 'E' OR
     lwa_return-type = 'X'.
    SORT li_return.
    DELETE ADJACENT DUPLICATES FROM li_return COMPARING ALL FIELDS.
    LOOP AT li_return INTO lwa_return WHERE type <> space.
      MESSAGE ID lwa_return-id
              TYPE 'I'
              NUMBER lwa_return-number
              WITH lwa_return-message_v1
                   lwa_return-message_v2
                   lwa_return-message_v3
                   lwa_return-message_v4.
    ENDLOOP.

  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
         EXPORTING
              wait = k_true.
    lp_belnr = l_obj_key(10).
    lp_gjahr = l_obj_key+14(4).

  ENDIF.

Regards

Please reward points if helpful

Former Member
0 Kudos
150

in the currency are you passing +ve or -ve value based on the posting key. Is this conversion there in the program? As the document has to be zero balanced.