05-29-2006 10:18 PM
I need a BAPI for CJ02 transaction, does anybody know one?
Tks,
Daniela Machado
05-29-2006 10:31 PM
05-29-2006 11:11 PM
Rob,
I need to create a project and update the investment programs.
This BAPI you've sent can be used?
Tks
daniela
05-30-2006 3:49 AM
It has documentation. You should check it to see if it's what you're looking for.
Rob
05-30-2006 4:09 AM
05-30-2006 12:56 PM
Sharath
We are using BAPI_PROJECT_MAINTAIN, but it didn't work to update investment programs.
Do you I it's possible doing this with this BAPI?
Tks,
Daniela
07-10-2006 4:12 PM
Hello All,
I am trying to use BAPI_BUS2054_CHANGE_MULTI.
What I need is to change the value for a Z field of a single WBS element.
I think that I am filling the right structures (I paste the code), but it doesn't work... Could anybody please help me? Sorry for the spanish comments... however, they wouldn't be very helpfull for you, I think...
Best Regards
PARAMETERS:
p_pep TYPE char24 DEFAULT 'P-290049/G'.
DATA:
l_project_definition TYPE BAPI_BUS2001_NEW-PROJECT_DEFINITION.
DATA:
lt_wbs_imp_gi TYPE TABLE OF BAPI_WBS_ELEMENTS,
lt_wbs_exp_gi TYPE TABLE OF BAPI_WBS_ELEMENT_EXP,
lt_wbs_imp_cm TYPE TABLE OF BAPI_BUS2054_CHG,
lt_wbs_impf_cm TYPE TABLE OF BAPI_BUS2054_UPD,
lt_return TYPE TABLE OF bapiret2,
lt_extensionin TYPE TABLE OF bapiparex WITH HEADER LINE,
lt_extensionout TYPE TABLE OF bapiparex,
lt_messages TYPE TABLE OF BAPI_METH_MESSAGE.
DATA:
lW_return1 TYPE BAPIRETURN1,
lw_return TYPE bapiret2,
lw_wbs_ext TYPE BAPI_TE_WBS_ELEMENT,
lw_wbs_imp_gi LIKE LINE OF lt_wbs_imp_gi,
lw_wbs_exp_gi LIKE LINE OF lt_wbs_exp_gi,
lw_wbs_imp_cm LIKE LINE OF lt_wbs_imp_cm,
lw_wbs_impf_cm LIKE LINE OF lt_wbs_impf_cm,
lw_extensionin LIKE LINE OF lt_extensionin.
**Chequear que el elemento PEP existe.
CALL FUNCTION 'Z_RFC_CHEQUEA_ELEMENTO_PEP'
EXPORTING
I_POSID = p_pep
EXCEPTIONS
ELEMENTO_NO_EXISTE = 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.
**2. Coger proyecto al que se refiere el elemento PEP
CLEAR lw_wbs_imp_gi.
REFRESH lt_wbs_imp_gi.
lw_wbs_imp_gi-wbs_element = p_pep.
APPEND lw_wbs_imp_gi TO lt_wbs_imp_gi.
REFRESH lt_wbs_exp_gi.
CALL FUNCTION 'BAPI_PROJECT_GETINFO'
EXPORTING
PROJECT_DEFINITION =
WITH_ACTIVITIES =
WITH_MILESTONES =
WITH_SUBTREE =
IMPORTING
E_PROJECT_DEFINITION =
RETURN = lw_return1
TABLES
I_WBS_ELEMENT_TABLE = lt_wbs_imp_gi
E_WBS_ELEMENT_TABLE = lt_wbs_exp_gi
E_WBS_MILESTONE_TABLE =
E_WBS_HIERARCHIE_TABLE =
E_ACTIVITY_TABLE =
E_MESSAGE_TABLE = lt_messages
.
CLEAR lw_wbs_exp_gi.
READ TABLE lt_wbs_exp_gi INTO lw_wbs_exp_gi INDEX 1.
l_project_definition = lw_wbs_exp_gi-project_definition.
**3. Modificar status de Bloqueo a 'P' ( Prerreserva )
CLEAR lw_wbs_imp_cm.
REFRESH lt_wbs_imp_cm.
lw_wbs_imp_cm-wbs_element = p_pep.
APPEND lw_wbs_imp_cm TO lt_wbs_imp_cm.
CLEAR lw_wbs_impf_cm.
REFRESH lt_wbs_impf_cm.
lw_wbs_impf_cm-wbs_element = p_pep.
APPEND lw_wbs_impf_cm TO lt_wbs_impf_cm.
CLEAR lw_extensionin.
REFRESH lt_extensionin.
lw_wbs_ext-wbs_element = p_pep.
lw_wbs_ext-bloqueo = 'P'.
CLEAR lw_extensionin.
lw_extensionin-structure = 'BAPI_TE_WBS_ELEMENT'.
lw_extensionin-valuepart1 = lw_wbs_ext.
lt_extensionin = lw_extensionin.
APPEND lw_extensionin TO lt_extensionin.
**Inicializamos el proceso de modificación (Ver doc. del mensaje
**078(CNIF_PI)
CALL FUNCTION 'BAPI_PS_INITIALIZATION'
.
REFRESH lt_extensionout.
CALL FUNCTION 'BAPI_BUS2054_CHANGE_MULTI'
EXPORTING
I_PROJECT_DEFINITION = l_project_definition
TABLES
IT_WBS_ELEMENT = lt_wbs_imp_cm
IT_UPDATE_WBS_ELEMENT = lt_wbs_impf_cm
ET_RETURN = lt_return
EXTENSIONIN = lt_extensionin
EXTENSIONOUT = lt_extensionout
.
**Hacer precommit (Ver doc. del mensaje 078(CNIF_PI)
CALL FUNCTION 'BAPI_PS_PRECOMMIT'
TABLES
ET_RETURN = lt_return
.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN = lw_return
.
07-10-2006 4:40 PM
If you need only change status, you can use this Z FM:
FUNCTION zxx_status_change.
*"----------------------------------------------------------------------
*"*"Interfase local
*" IMPORTING
*" VALUE(OBJNR) LIKE JSTO-OBJNR
*" VALUE(STATUS) TYPE J_STATUS
*" EXPORTING
*" REFERENCE(STATUS_ACTUALIZADO) TYPE CHAR1
*" EXCEPTIONS
*" OBJETO_BLOQUEADO
*" OBJETO_NO_ENCONTRADO
*" NO_ES_STATUS_DE_CLASIFICACION
*"----------------------------------------------------------------------
DATA: enqueue_tab LIKE ordtyp_pre OCCURS 0 WITH HEADER LINE,
not_locked LIKE ord_pre OCCURS 0 WITH HEADER LINE,
status_r LIKE jstat OCCURS 0 WITH HEADER LINE,
status_u LIKE jstat OCCURS 0 WITH HEADER LINE.
REFRESH: enqueue_tab, not_locked, status_r, status_u.
CLEAR: enqueue_tab, not_locked, status_r, status_u.
IF status(1) NE 'E'.
RAISE no_es_status_de_clasificacion.
EXIT.
ENDIF.
enqueue_tab-aufnr = objnr+2.
APPEND enqueue_tab.
CALL FUNCTION 'CO_ZF_ORDER_LOCK_MULTI'
EXPORTING
lock_mode = 'S'
i_change_dialog = 'X'
TABLES
enqueue_tab = enqueue_tab
not_locked = not_locked.
IF NOT not_locked[] IS INITIAL.
RAISE objeto_bloqueado.
EXIT.
ENDIF.
CALL FUNCTION 'STATUS_READ'
EXPORTING
objnr = objnr
only_active = 'X'
TABLES
status = status_r
EXCEPTIONS
object_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
RAISE objeto_no_encontrado.
EXIT.
ENDIF.
status_u-stat = status.
status_u-inact = space.
APPEND status_u.
READ TABLE status_r INDEX 1.
status_u-stat = status_r-stat.
status_u-inact = 'X'.
APPEND status_u.
CALL FUNCTION 'STATUS_CHANGE_INTERN_VB'
EXPORTING
objnr = objnr
TABLES
status = status_u.
IF sy-subrc EQ 0.
status_actualizado = 'X'.
ENDIF.
ENDFUNCTION.
07-10-2006 5:02 PM
sorry, but what I need to change is a customer field... We have added this field to table PRPS, using append structure CI_PRPS. I need to change one field included in that structure...
Thanks anyway
03-07-2014 3:06 PM
Hello Daniela,
I know this is an old post, but now I am in the same situation. I need something (FM, BAPI, program) to add/update investment programs when creating/modifying a project. Did you find how to do it? Would you share the solution, please?
Thanks a lot in advance,
Abel