Showing posts with label Cost plan. Show all posts
Showing posts with label Cost plan. Show all posts

BAPI for posting cost into CJR2 “Resource cost post”

BAPI for posting cost into CJR2 “Resource cost post”

























At top (data declaration)


L_R_HEADER     TYPE BAPIPLNHDR,
  L_R_COOBJECT   TYPE  BAPIACIOBJ,
  L_T_COOBJECT   TYPE STANDARD TABLE OF BAPIACIOBJ,

*Post the effort into CJR2 Tcode
  CALL FUNCTION 'BAPI_COSTACTPLN_POSTACTINPUT'
    EXPORTING
      HEADERINFO     = L_R_HEADER header table that contain
*      delta          = g_c_x  "Add in the exiting value
    TABLES
      INDEXSTRUCTURE = L_T_INDEXSTR
      COOBJECT       = L_T_COOBJECT
      PERVALUE       = L_T_PERVALUE
      RETURN         = P_G_T_RETURN.

Header details

  L_R_HEADER-CO_AREA        = '0010'.   "Controlling area
  L_R_HEADER-FISC_YEAR      = P_L_F_YEAR. "Fiscal year
  L_R_HEADER-PERIOD_FROM    = '1'.
  L_R_HEADER-PERIOD_TO      = '12'.
  L_R_HEADER-VERSION        = '0'.     " Version
  L_R_HEADER-PLAN_CURRTYPE  = 'O'.     "'O'-Object currency

  L_R_COOBJECT-OBJECT_INDEX = '1'.  "Object index
  L_R_COOBJECT-WBS_ELEMENT  = Project ID or WBSID.
  APPEND L_R_COOBJECT TO L_T_COOBJECT.
  CLEAR L_R_COOBJECT.

Now populate the quantity field

  "For H1 Acty type
  READ TABLE P_L_T_INPUT INTO G_R_INPUT INDEX 1.
  IF SY-SUBRC = 0.
    L_R_INDEXSTR-OBJECT_INDEX  = '1'.
    L_R_INDEXSTR-VALUE_INDEX   = '1'.
    APPEND  L_R_INDEXSTR TO L_T_INDEXSTR.
    CLEAR   L_R_INDEXSTR.
    L_F_VAL_INDEX = '1'."value index
    L_F_ACT       = 'H1'."Activity type
    PERFORM FILL_QTY  USING G_R_INPUT     " Work area of internal table
                            P_L_F_COST    " Cost center
                            L_F_ACT       " Activity type
                            L_F_VAL_INDEX " value index
                            P_G_F_UNIT    " Unit
                 CHANGING   L_T_PERVALUE. " Qty values
  ENDIF.

  "For H2 Acty type
  READ TABLE P_L_T_INPUT INTO G_R_INPUT INDEX 2.
  IF SY-SUBRC = 0.
    L_R_INDEXSTR-OBJECT_INDEX  = '1'.
    L_R_INDEXSTR-VALUE_INDEX   = '2'.
    APPEND  L_R_INDEXSTR TO L_T_INDEXSTR.
    CLEAR   L_R_INDEXSTR.
    L_F_VAL_INDEX = '2'.      "value index
    L_F_ACT       = 'H2'."Activity type
    PERFORM FILL_QTY USING G_R_INPUT     Work area of internal table
                            P_L_F_COST    " Cost center
                            L_F_ACT       Activity type
                            L_F_VAL_INDEX  value index
                            P_G_F_UNIT    " Unit
                 CHANGING   L_T_PERVALUE. " Qty values
  ENDIF.

Same for other activity types……………….

  IF P_G_T_RETURN [] IS INITIAL.
    COMMIT WORK AND WAIT.
  Endif.

FM to Read the cost plan for CJR2

L_T_PERVALUE   TYPE G_TY_BAPIACIVAL  ,

 CALL FUNCTION 'BAPI_COSTACTPLN_READACTINPUT'
        EXPORTING
          HEADERINFO     = L_R_HEADER
        TABLES
          INDEXSTRUCTURE = L_T_INDEXSTR
          COOBJECT       = L_T_COOBJECT
          PERVALUE       = L_T_PERVALUE
          RETURN         = P_G_T_RETURN.


Read the values based on the activity types

 READ TABLE L_T_PERVALUE INTO L_R_PERVALUE
                        WITH  KEY SEND_ACTIVITY = 'H1'.
      IF  SY-SUBRC = 0.
        PERFORM FILL_INPUT_TABLE USING L_R_PERVALUE
                                       P_COEP_MEINB
                                        G_R_INPUT.

        APPEND  G_R_INPUT TO  P_L_T_INPUT.
        CLEAR G_R_INPUT.
      ENDIF.
      CLEAR L_R_PERVALUE.




Cost planning CJ9ECP using BDC


As there is no save button found with cj20n tcode

SET PARAMETER ID 'PRO' FIELD  Project Def   (PRO - WBS)
    SET PARAMETER ID 'KRT' FIELD 'PS06'.
    SET PARAMETER ID 'PSP' FIELD ''.
DATA OPT TYPE CTU_PARAMS.
  OPT-DISMODE = G_C_E. "Display errors
  OPT-DEFSIZE = G_C_X. "Default screen size

  CLEAR L_S_BDCDATA.
  L_S_BDCDATA-PROGRAM  = 'RECP_PS'.
  L_S_BDCDATA-DYNPRO   = '0100'.
  L_S_BDCDATA-DYNBEGIN = G_C_X.
  APPEND L_S_BDCDATA TO L_T_BDCDATA.

  CLEAR L_S_BDCDATA.
  L_S_BDCDATA-FNAM = 'BDC_OKCODE'.
  L_S_BDCDATA-FVAL = '/EUCCOST'.
  APPEND L_S_BDCDATA TO L_T_BDCDATA.
  CLEAR L_S_BDCDATA.

  CLEAR L_S_BDCDATA.
  L_S_BDCDATA-PROGRAM  = 'SAPLCK_ECP_GUI'.
  L_S_BDCDATA-DYNPRO   = '0300'.
  L_S_BDCDATA-DYNBEGIN = G_C_X.
  APPEND L_S_BDCDATA TO L_T_BDCDATA.

  CLEAR L_S_BDCDATA.
  L_S_BDCDATA-FNAM = 'BDC_OKCODE'.
  L_S_BDCDATA-FVAL = '=SELECT'.
  APPEND L_S_BDCDATA TO L_T_BDCDATA.
  CLEAR L_S_BDCDATA.

*Easy cost Plan Tcode CJ9ECP
  CALL TRANSACTION 'CJ9ECP' USING L_T_BDCDATA OPTIONS FROM OPT MESSAGES INTO L_T_MESSAGE.
  READ TABLE L_T_MESSAGE WITH KEY MSGTYP = G_C_I TRANSPORTING NO FIELDS.
  IF SY-SUBRC  = 0.
    MESSAGE I082(KPN) .
Endif

For more information

Easy cost plan CJ9ECP












go to change easy cost plan