‎2007 Dec 13 3:29 PM
Hi,
my requirement is i want to check the GL before post. so i am using tis BAPI_ACC_GL_POSTING_CHECK and i am getting the below error.
RFBU
Account 610600 requires an assignment to a CO object
610600
Account 610200 requires an assignment to a CO object
&----
*& Report ZFI_CONV_GLPOSTING_RV01
*&
----
Program : ZFI_CONV_GLPOSTING_RV01 *
Title : *
Author : *
Description : *
----
Modification Details *
----
Date Correction Programmer Description of Change *
======== ========== ================== =========================*
*1 Initial Creation *
----
REPORT ZFI_CONV_GLPOSTING_RV01.
TYPES : BEGIN OF t_flat,
text(250) TYPE c,
END OF t_flat.
DATA : it_flat TYPE TABLE OF t_flat,
x_flat TYPE t_flat.
TABLES: BAPIACHE08, BAPIACHE02.
TYPES : BEGIN OF X_INPUT,
BLDAT LIKE BKPF-BLDAT,
BUDAT LIKE BKPF-BUDAT,
BUKRS LIKE BKPF-BUKRS,
WAERS LIKE BKPF-WAERS,
XBLNR LIKE BKPF-XBLNR,
BSCHL LIKE BSEG-BSCHL,
NEWKO LIKE RF05A-NEWKO,
WRBTR(16) TYPE C,
KOSTL LIKE COBL-KOSTL,
PRCTR LIKE COBL-PRCTR,
ZUONR LIKE BSEG-ZUONR,
SGTXT LIKE BSEG-SGTXT,
XREF1 LIKE BSEG-XREF1,
XREF2 LIKE BSEG-XREF2,
XREF3 LIKE BSEG-XREF3,
EBELN LIKE BSEG-EBELN,
END OF X_INPUT.
DATA: HEADER LIKE STANDARD TABLE OF BAPIACHE08 WITH HEADER LINE,
ACCOUNTGL LIKE STANDARD TABLE OF BAPIACGL08 WITH HEADER LINE,
CURRENCYAMOUNT LIKE STANDARD TABLE OF BAPIACCR08 WITH HEADER LINE,
RETURN LIKE STANDARD TABLE OF BAPIRET2 WITH HEADER LINE,
IT_INPUT TYPE TABLE OF X_INPUT,
WA_INPUT TYPE X_INPUT,
v_file TYPE string,
v_objsys type TBDLS-LOGSYS.
PARAMETERS p_file TYPE rlgrap-filename.
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.
CLEAR v_file.
v_file = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_file
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = it_FLAT
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 = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
IF NOT it_flat IS INITIAL.
LOOP AT it_flat INTO x_flat.
SPLIT x_flat AT ',' INTO : WA_INPUT-BLDAT
WA_INPUT-BUDAT
WA_INPUT-BUKRS
WA_INPUT-WAERS
WA_INPUT-XBLNR
WA_INPUT-BSCHL
WA_INPUT-NEWKO
WA_INPUT-WRBTR
WA_INPUT-KOSTL
WA_INPUT-PRCTR
WA_INPUT-ZUONR
WA_INPUT-SGTXT
WA_INPUT-XREF1
WA_INPUT-XREF2
WA_INPUT-XREF3
WA_INPUT-EBELN .
APPEND wa_input TO it_INPUT.
ENDLOOP.
ENDIF.
CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET'
IMPORTING
OWN_LOGICAL_SYSTEM = v_objsys
EXCEPTIONS
OWN_LOGICAL_SYSTEM_NOT_DEFINED = 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.
loop at it_input into wa_input.
if wa_input-bukrs is not initial.
HEADER-OBJ_TYPE = 'RFBU'.
HEADER-HEADER_TXT = 'BAPI'.
HEADER-OBJ_SYS = v_objsys.
HEADER-OBJ_KEY = 'Venkat'.
HEADER-COMP_CODE = wa_input-bukrs.
HEADER-DOC_DATE = WA_INPUT-BLDAT.
HEADER-PSTNG_DATE = WA_INPUT-BUDAT.
HEADER-USERNAME = SY-UNAME.
HEADER-DOC_TYPE = 'SA'.
*append header.
*clear header.
endif.
IF WA_INPUT-BSCHL IS NOT INITIAL.
ACCOUNTGL-ITEMNO_ACC = '0000000001'.
unpack WA_INPUT-NEWKO to ACCOUNTGL-GL_ACCOUNT .
ACCOUNTGL-BUS_AREA = '0001'.
*ACCOUNTGL-COST_OBJ = WA_INPUT-KOSTL.
ACCOUNTGL-PROFIT_CTR = WA_INPUT-PRCTR.
ACCOUNTGL-ALLOC_NMBR = WA_INPUT-ZUONR.
ACCOUNTGL-ITEM_TEXT = WA_INPUT-SGTXT.
ACCOUNTGL-REF_KEY_1 = WA_INPUT-XREF1.
ACCOUNTGL-REF_KEY_2 = WA_INPUT-XREF1.
ACCOUNTGL-REF_KEY_3 = WA_INPUT-XREF1.
ACCOUNTGL-ROUTING_NO = WA_INPUT-EBELN.
HEADER-COMP_CODE = '1100'.
HEADER-PSTNG_DATE = sy-datum..
APPEND ACCOUNTGL.
CURRENCYAMOUNT-ITEMNO_ACC = '0000000001'.
CURRENCYAMOUNT-CURR_TYPE = '00'.
CURRENCYAMOUNT-CURRENCY = 'USD'.
CURRENCYAMOUNT-AMT_DOCCUR = WA_INPUT-WRBTR.
APPEND CURRENCYAMOUNT.
ENDIF.
endloop.
CALL FUNCTION 'BAPI_ACC_GL_POSTING_CHECK'
EXPORTING
DOCUMENTHEADER = HEADER
TABLES
accountgl = ACCOUNTGL
CURRENCYAMOUNT =
return = RETURN
EXTENSION1 =
.
loop at return.
write 😕 return-MESSAGE,return-MESSAGE_V1.
endloop.
write 😕 'Over'.
‎2007 Dec 13 3:58 PM
u have to pass assignment number, in bapi ACCOUNTGL- ALLOC_NMBR,
suppose u r not getting any assignmnet number means goto BSEG table,
and take one assignment number for a given G/L account
‎2007 Dec 13 4:11 PM
You have commented out this line:
*ACCOUNTGL-COST_OBJ = WA_INPUT-KOSTL.It's saying that you need to pass a cost center to these accounts.
Rob