Application Development and Automation 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: 
Read only

BAPI_ACC_GL_POSTING_POST Problems

Former Member
0 Likes
379

The BAPI_ACC_GL_POSTING_POST is allowing FI documents to be created with invalid vendor, customer, and material numbers. According to a response from an SAP message I filed, SAP says this BAPI checks all "important" data like account number and company code; but for vendor, customer, and material, it's the calling application's responsiblity to validate the data. While SAP may not consider this important, when this data goes to BW, it's validated there and fails to load in BW if incorrect.

Does anyone else have a similar experience or solution?

2 REPLIES 2
Read only

Former Member
0 Likes
295

HI,

See the example program, this may help you....

report z_test_bapi_gl_ac_doc LINE-SIZE 200.

data:
      obj_type like bapiache02-obj_type,
      obj_key like bapiache02-obj_key,
      obj_sys like bapiache02-obj_sys,
      documentheader like bapiache08,

      accountgl like bapiacgl08
                  occurs 0 with header line,
      currencyamount like bapiaccr08
                  occurs 0 with header line,
      return like bapiret2
                  occurs 0 with header line,
      extension1 like bapiextc
                  occurs 0 with header line,

      t_edidd  like edidd occurs 0 with header line,
      bapi_retn_info  like bapiret2 occurs 0 with header line.
data: error_flag.


*documentheader-obj_type     = 'BKPFF'.
*documentheader-obj_key      = '18000000002002004'.
*documentheader-obj_type     = 'BKPFF'.
*documentheader-obj_key      = '180000000010002004'.

*documentheader-obj_sys      = 'RD1CLNT200'.


documentheader-username     = sy-uname.
documentheader-header_txt   = 'Test using BAPI'.
documentheader-comp_code    = '1000'.

*documentheader-ac_doc_no
*documentheader-fisc_year    = '2005'.

documentheader-doc_date     = sy-datum.
documentheader-pstng_date   = sy-datum.

*documentheader-trans_date
*documentheader-fis_period

documentheader-doc_type    = 'SA'.


*documentheader-ref_doc_no
*documentheader-compo_acc
*documentheader-reason_rev



accountgl-itemno_acc = '1'.
accountgl-gl_account = '0000160100'.
accountgl-comp_code = '1000'.
accountgl-pstng_date = sy-datum.
accountgl-doc_type   = 'SA'.
accountgl-profit_ctr = '0000010000'.
append accountgl.

accountgl-itemno_acc = '2'.
accountgl-gl_account = '0000160100'.
accountgl-comp_code = '1000'.
accountgl-pstng_date = sy-datum.
accountgl-doc_type   = 'SA'.
accountgl-profit_ctr = '0000010000'.
append accountgl.


*AC_DOC_NO
*FISC_YEAR
*FIS_PERIOD
*accountgl-STAT_CON = 'X'.
*REF_KEY_1
*REF_KEY_2
*REF_KEY_3
*CUSTOMER
*VENDOR_NO
*ALLOC_NMBR
*ITEM_TEXT
*BUS_AREA
*COSTCENTER
*ACTTYPE
*ORDERID
*ORIG_GROUP
*COST_OBJ
*PROFIT_CTR
*PART_PRCTR
*WBS_ELEMENT
*NETWORK
*ROUTING_NO
*ORDER_ITNO


currencyamount-itemno_acc = '1'.
currencyamount-currency = 'GBP'.
currencyamount-amt_doccur = '100.00'.
append currencyamount.

currencyamount-itemno_acc = '2'.
currencyamount-currency = 'GBP'.
currencyamount-amt_doccur = '-100.00'.
append currencyamount.


*   call BAPI-function in this system    
call function 'BAPI_ACC_GL_POSTING_POST'
     exporting
          documentheader = documentheader
*     importing
*          obj_type       = obj_type
*          obj_key        = obj_key
*          obj_sys        = obj_sys
     tables
          accountgl      = accountgl
          currencyamount = currencyamount
          return         = return
          extension1     = extension1
     exceptions
          others         = 1.
if sy-subrc <> 0.
  message e999(re) with  'Problem occured'.
else.
      loop at return.
          if not return is initial.
          clear bapi_retn_info.
          move-corresponding return to bapi_retn_info.
          if return-type = 'A' or return-type = 'E'.
            error_flag = 'X'.
          endif.
          append bapi_retn_info.
        endif.
      endloop.
  if error_flag = 'X'.
     message e999(re) with  'Problem occured'.
     rollback work.
  else.
  commit work.
  endif.
endif.

Regards

Sudheer

Read only

0 Likes
295

Sudheer,

If you change your code to pass "YADAYADA" in accountgl-CUSTOMER (assuming YADAYADA is not a valid customer), you will see that the FI document will post with that customer on that line item. However if you were to try to enter the same data via FB01, it will not allow YADAYADA as a customer number.

Thanks,

Wardell