Necesito re-abrir una orden de manteniendo, que tiene un status en Cierre Técnico, me gustaría saber que modulo de funciones, puedo usar para cambiar el status de esa orden? para poderla poner en estado disponible
Ve el tema con un usuario y/o consultor de PM, en la transacción del dato maestro de la orden de mantenimiento, está la función que anula el cierre técnico. Desconozco a nivel abap cuál será, en todo caso, activa el debugger, y busca la función
Para modificar órdenes de pm, siempre he usado la bapi BAPI_ALM_ORDER_MAINTAIN
Prueba a ver si te sirve.
Al usar la BAPI que me comentas @j.rodriguez, cuando uso el método ‘RELEASE’ para liberar la orden me retorna, este mensaje de error
, de casualidad tienes alguna idea por que, manda el error la BAPI?Podrías hacer un pequeña grabación que entre en la orden de PM (IW32), anule cierre técnico y pulsar GRABAR.
No soy muy fan de las grabaciones pero a veces hay que optar por ellas
Ya encontré la solución para el cierre técnico, se necesitan dos BAPI´s, este es el código
DATA: lt_methods TYPE bapi_alm_order_method OCCURS 0 WITH HEADER LINE,
ls_methods TYPE bapi_alm_order_method,
gt_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE,
lt_messages TYPE bal_t_msg,
wa_return_i LIKE LINE OF gt_return,
lv_aufnr_aux TYPE aufnr,
lt_header TYPE bapi_alm_order_headers_i OCCURS 0 WITH HEADER LINE,
ls_header TYPE bapi_alm_order_headers_i.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lv_aufnr " Numero de orden
IMPORTING
output = lv_aufnr_aux. " Internal display of INPUT, any category
"Función para quitar estatus de orden de mantenimiento
CALL FUNCTION 'IBAPI_ALM_ORDER_TECO_RESET'
EXPORTING
iv_orderid = lv_aufnr_aux " Order Number
TABLES
et_messages = lt_messages " Application Log: Table with Messages
return = gt_return. " Return Parameter(s)
CLEAR: ls_methods.
"Método para guardar el estatus abierto de la orden
ls_methods-refnumber = 1.
ls_methods-objecttype = ''.
ls_methods-method = 'SAVE'. "Metodo usado para BAPI
ls_methods-objectkey = lv_aufnr_aux.
APPEND ls_methods TO lt_methods.
CLEAR: ls_methods.
"BAPI para el cambio de status de la orden de mantenimiento
CALL FUNCTION 'BAPI_ALM_ORDER_MAINTAIN'
TABLES
it_methods = lt_methods
it_header = lt_header
return = gt_return
et_numbers = et_numbers.
READ TABLE gt_return INTO wa_return_i WITH KEY type = 'E'.
IF sy-subrc <> 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = abap_true. " Using the command `COMMIT AND WAIT`.
ENDIF.
Este tema se cerró automáticamente 91 días después del último post. No se permiten nuevas respuestas.