‎2007 Jun 26 11:58 AM
Hello All.
i create FI document with BAPI_ACC_DOCUMENT_POST.
fill
accountgl for general items
and
accounttax for taxes.
But in this case i can't fill additional data for tax generated items. i.e. 'Profit Center' and etc. cause accounttax table is not contain fields lilke this.
If I fill tax data in accountgl table. it's ok. But in created FI document this itmes are not looked as tax itmes. So no information about tax in document.
Please help if you know.
Thanks.
‎2007 Jun 26 12:03 PM
Hi,
u can use BAPI_ACC_GL_POSTING_POST.
<b>Reward points</b>
Regards
‎2007 Jun 26 12:26 PM
> Hi,
> u can use BAPI_ACC_GL_POSTING_POST.
> oints</b>
>
> Regards
with this BAPI i'cant fill field MATNR. (Material Number). and tax_code (mwskz).
‎2007 Jun 26 12:05 PM
Hello,
Check this sample code.
<b>Please read Release-Note 737917</b>
REPORT ZV_DOC_POST .
PARAMETERS: P_EBELN LIKE EKKO-EBELN,
P_EBELP LIKE EKPO-EBELP .
*DATA: BEGIN OF DOC_HEADER,
* CO_AREA(4),
* DOCDATE LIKE SY-DATUM,
* POSTGDATE LIKE SY-DATUM,
* VERSION(3),
* DOC_NO(10),
* VARIANT(5),
* DOC_HDR_TX(50),
* USERNAME(12),
* OBJ_KEY(20),
* OBJ_TYPE(5),
* OBJ_SYS(10),
* END OF DOC_HEADER.
DATA: DOC_HEADER LIKE BAPIDOCHDRU12P.
DATA: DOC_ITEMS11 LIKE BAPIRCITM OCCURS 0 WITH HEADER LINE.
DATA: RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,
SEND_CRITERIA TYPE TABLE OF BAPIACKECR,
WA_SEND LIKE BAPIACKECR,
REC_CRITERIA TYPE TABLE OF BAPIACKECR,
WA_REC LIKE BAPIACKECR,
CUSTOMER_FIELDS TYPE TABLE OF BAPIEXTC.
*DATA: BEGIN OF DOC_ITEMS11 OCCURS 0,
* SEND_CCTR(10),
* SEN_ORDER(12),
* SEN_WBS_EL(24),
* SEN_NETWRK(12),
* SENOPERATN(4),
* SENSALEORD(10),
* SENITEM(6) TYPE N,
* SENCOSTOBJ(12),
* COST_ELEM(10),
* VALUE_TCUR(12) TYPE P DECIMALS 4,
* QUANTITY(8) TYPE P DECIMALS 3,
* POSTQUUN(3),
* POSTQUUN_ISO(3),
* PERSON_NO(8) TYPE N,
* SEG_TEXT(50),
* REC_CCTR(10),
* REC_ORDER(12),
* REC_WBS_EL(24),
* REC_NETWRK(12),
* RECOPERATN(4),
* RECSALEORD(10),
* RECITEM(6) TYPE N,
* RECCOSTOBJ(12),
* END OF DOC_ITEMS11.
*DATA: BEGIN OF RETURN OCCURS 0,
* TYPE,
* ID(20),
* NUMBER(3) TYPE N,
* MESSAGE(220),
* LOG_NO(20),
* LOG_MSG_NO(6) TYPE N,
* MESSAGE_V1(50),
* MESSAGE_V2(50),
* MESSAGE_V3(50),
* MESSAGE_V4(50),
* PARAMETER(32),
* ROW(4) TYPE N,
* FIELD(30),
* END OF RETURN.
DATA: MESS(150),
DOC_NO LIKE J_5NAACC54-BELEGNR.
DATA: LT_EKKO LIKE EKKO OCCURS 0 WITH HEADER LINE,
LT_EKPO LIKE EKPO OCCURS 0 WITH HEADER LINE,
LT_EKKN LIKE EKKN OCCURS 0 WITH HEADER LINE.
DATA: LT_LIFNR LIKE Z48M_IN_PO_LIFNR OCCURS 0 WITH HEADER LINE.
DATA: LV_POSID_OLD LIKE PRPS-POSID.
DATA: LV_POSID_DUM LIKE PRPS-POSID.
* Read Internal Vendors (IV 06_022).
REFRESH: LT_EKPO, LT_EKKN, LT_LIFNR.
SELECT *
FROM EKKO
INTO TABLE LT_EKKO
* FOR ALL ENTRIES IN XMSEG
WHERE EBELN = P_EBELN.
SELECT *
FROM Z48M_IN_PO_LIFNR
INTO CORRESPONDING FIELDS OF TABLE LT_LIFNR
FOR ALL ENTRIES IN LT_EKKO
WHERE LIFNR = LT_EKKO-LIFNR AND
PRJKT = 'X'.
SELECT *
FROM EKPO
INTO CORRESPONDING FIELDS OF TABLE LT_EKPO
* FOR ALL ENTRIES IN XMSEG
WHERE EBELN = P_EBELN." AND
* EBELP = P_EBELP.
*SELECT *
* FROM EKKN
* INTO CORRESPONDING FIELDS OF TABLE LT_EKKN
* FOR ALL ENTRIES IN LT_EKPO
* WHERE EBELN = LT_EKPO-EBELN AND
* EBELP = LT_EKPO-EBELP.
SORT: LT_EKKO BY EBELN.
SORT: LT_LIFNR BY LIFNR.
SORT: LT_EKPO, LT_EKKN BY EBELN EBELP.
LOOP AT LT_EKPO.
READ TABLE LT_EKKO WITH KEY EBELN = LT_EKPO-EBELN
BINARY SEARCH.
IF NOT SY-SUBRC IS INITIAL.
CONTINUE.
ENDIF.
READ TABLE LT_LIFNR WITH KEY LIFNR = LT_EKKO-LIFNR
BINARY SEARCH.
IF NOT SY-SUBRC IS INITIAL.
CONTINUE.
ENDIF.
REFRESH DOC_ITEMS11.
CLEAR DOC_ITEMS11.
CLEAR DOC_HEADER.
* READ TABLE LT_EKKN WITH KEY EBELN = LT_EKPO-EBELN
* EBELP = LT_EKPO-EBELP
* BINARY SEARCH.
IF SY-SUBRC IS INITIAL.
DOC_HEADER-CO_AREA = '0010'.
DOC_HEADER-DOCDATE = SY-DATUM.
DOC_HEADER-POSTGDATE = SY-DATUM.
DOC_HEADER-USERNAME = SY-UNAME.
* DOC_HEADER-VERSION = '000'.
DOC_HEADER-TRANS_CURR = LT_EKKO-WAERS.
CLEAR: LV_POSID_DUM.
SELECT SINGLE PSPNR
INTO LV_POSID_DUM
FROM PRPS
WHERE PSPHI EQ LT_LIFNR-PSPNR_DUM AND
STUFE EQ 1.
IF SY-SUBRC IS INITIAL.
DOC_ITEMS11-REC_WBS_EL = LV_POSID_DUM.
ENDIF.
CLEAR: LV_POSID_OLD.
SELECT SINGLE PSPNR
INTO LV_POSID_OLD
FROM PRPS
WHERE PSPHI EQ LT_LIFNR-PSPNR AND
STUFE EQ 1.
IF SY-SUBRC IS INITIAL.
DOC_ITEMS11-SEN_WBS_EL = LV_POSID_OLD.
ENDIF.
DOC_ITEMS11-SEN_WBS_EL = 'A0001'.
DOC_ITEMS11-REC_WBS_EL = 'P2855'.
DOC_ITEMS11-SEG_TEXT = 'test KB11N'.
DOC_ITEMS11-COST_ELEM = LT_LIFNR-KSTAR.
* DOC_ITEMS11-VALUE_TCUR = LT_EKKO-WAERS.
* DOC_ITEMS11-QUANTITY = ( B_DATEN-KOSTEN / B_DATEN-FAKTOR ) *
* B_DATEN-ACCWERT.
DOC_ITEMS11-VALUE_TCUR = LT_EKPO-NETPR.
* DOC_ITEMS11-POSTQUUN = B_DATEN-LEINHEIT.
* DOC_ITEMS11-REC_CCTR = B_DATEN-EKOST.
* DOC_ITEMS11-SEND_CCTR = B_DATEN-SKOST.
* DOC_ITEMS11-REC_ORDER = B_DATEN-EAUFN.
* DOC_ITEMS11-SEN_ORDER = B_DATEN-SAUF.
* DOC_ITEMS11-REC_WBS_EL = B_DATEN-EPROJ.
* DOC_ITEMS11-SEN_WBS_EL = B_DATEN-SPROJ.
* DOC_ITEMS11-REC_NETWRK = B_DATEN-ENPLN.
* DOC_ITEMS11-SEN_NETWRK = B_DATEN-SNPLN.
* DOC_ITEMS11-RECOPERATN = B_DATEN-EVORG.
* DOC_ITEMS11-SENOPERATN = B_DATEN-SVORG.
* DOC_ITEMS11-RECSALEORD = B_DATEN-EKDAU.
* DOC_ITEMS11-SENSALEORD = B_DATEN-SKDAU.
* DOC_ITEMS11-RECITEM = B_DATEN-EKDPO.
* DOC_ITEMS11-SENITEM = B_DATEN-SKDPO.
* DOC_ITEMS11-RECCOSTOBJ = B_DATEN-EKSTR.
* DOC_ITEMS11-SENCOSTOBJ = B_DATEN-SKSTR.
APPEND DOC_ITEMS11.
WA_REC-ITEMNO_ACC = '001'.
WA_REC-FIELDNAME = 'PRCTR'." (profit center)
WA_REC-CHARACTER = 'DUMMYPC001'.
APPEND WA_REC TO REC_CRITERIA.
WA_SEND-ITEMNO_ACC = '001'.
WA_SEND-FIELDNAME = 'PRCTR'." (profit center)
WA_SEND-CHARACTER = 'DUMMYPC001'.
APPEND WA_SEND TO SEND_CRITERIA.
CALL FUNCTION 'BAPI_ACC_PRIMARY_COSTS_CHECK'
*DESTINATION J_5NASETUP-DESTI
EXPORTING
DOC_HEADER = DOC_HEADER
TABLES
DOC_ITEMS = DOC_ITEMS11
RETURN = RETURN
SEND_CRITERIA = SEND_CRITERIA
REC_CRITERIA = REC_CRITERIA.
* CUSTOMER_FIELDS = CUSTOMER_FIELDS.
*EXCEPTIONS
* SYSTEM_FAILURE = 1 MESSAGE MESS
* COMMUNICATION_FAILURE = 2 MESSAGE MESS.
CALL FUNCTION 'BAPI_ACC_PRIMARY_COSTS_POST'
* DESTINATION J_5NASETUP-DESTI
EXPORTING
DOC_HEADER = DOC_HEADER
IGNORE_WARNINGS = 'X'
IMPORTING
DOC_NO = DOC_NO
TABLES
DOC_ITEMS = DOC_ITEMS11
RETURN = RETURN
SEND_CRITERIA = SEND_CRITERIA
REC_CRITERIA = REC_CRITERIA.
* CUSTOMER_FIELDS = CUSTOMER_FIELDS.
* EXCEPTIONS
* SYSTEM_FAILURE = 1 MESSAGE MESS
* COMMUNICATION_FAILURE = 2 MESSAGE MESS.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
WRITE: DOC_NO.
ENDIF.
ENDLOOP.
Vasanth
‎2007 Jun 26 12:31 PM
Vasanth M ,
i tried use Criteria table IN BAPI_ACC_DOCUMENT_POST for filling Profit Center. But for tax itmes it wasn't work.
may be it will work with 'BAPI_ACC_PRIMARY_COSTS_POST'. i'll trying.
Thank You.
‎2007 Jun 26 12:37 PM
i'm afraid last alternative is using Extension1 Table and BTE.