SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

BAPI_ACC_PRIMARY_COSTS_POST



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> Interfaces | Интерфейсы -> BAPI
View previous topic :: View next topic  
Author Message
admin
Администратор
Администратор



Joined: 01 Sep 2007
Posts: 1639

PostPosted: Sat Apr 12, 2008 4:32 pm    Post subject: BAPI_ACC_PRIMARY_COSTS_POST Reply with quote

BAPI_ACC_PRIMARY_COSTS_POST - Accounting: Post Primary Costs

Code:

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.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> Interfaces | Интерфейсы -> BAPI All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.