BAPI para re-abrir orden de matto en CierreTécnico

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 :slight_smile:

1 me gusta

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

1 me gusta

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.

3 Me gusta

Este tema se cerró automáticamente 91 días después del último post. No se permiten nuevas respuestas.