ABAP - Reiniciar estrategia de liberación

 
Vista:

Reiniciar estrategia de liberación

Publicado por Carlos (2 intervenciones) el 10/09/2009 18:56:09
Reiniciar estrategia de liberación

Necesito reinicialaza Estrategia de liberación al ser modificado uno de los renglones de un pedido (mm-pur).

Alguien sabe como haderlos desde una ampliación, yo probé con la ampliación ME_PROCESS_PO_CUST-POST y la badi BAPI_PO_RESET_RELEASE pero me da problemas de autorización
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Reiniciar estrategia de liberación

Publicado por Alejandro (226 intervenciones) el 13/04/2023 00:52:07
Hola Carlos.

Para reinicializar la estrategia de liberación de un pedido de compras cuando se modifica un renglón, puedes utilizar la BADI ME_PROCESS_PO_CUST. En la implementación de esta BADI, puedes llamar al método RELEASE_RESET del objeto CL_PO_REL_RESET, que se encargará de reinicializar la estrategia de liberación.

Aquí te proporciono un ejemplo de cómo implementar la BADI ME_PROCESS_PO_CUST:

1. Abre la transacción 'SE18'.
2. Introduce el nombre de la 'BADI ME_PROCESS_PO_CUST' y haz clic en el botón 'Create Implementation'.
3. Introduce un nombre y una descripción para la implementación y haz clic en el botón 'Continue'.
4. En la pantalla Implementing 'BAdI: Initial Screen', selecciona la opción 'Process Purchase Order' y haz clic en el botón 'Continue'.
5. En la pantalla 'Implementation: Initial Screen', introduce un nombre para la implementación de la BADI y haz clic en el botón 'Save'.
6. En la pantalla 'Implementing BAdI: Enhancements', haz clic en el botón 'Class Builder' para crear la clase de la implementación.
7. En la pantalla 'Class Builder: Initial Screen', introduce un nombre para la clase y haz clic en el botón 'Create'.
8. En la pantalla 'New Class: Attributes', introduce los siguientes atributos para la clase:

'Data:'
'i_ebeln type EBELN.'

9. Haz clic en el botón 'Save' para guardar la clase.
10. En la pantalla 'Class Builder: Class' Interface, haz clic en el botón 'Interfaces' para agregar la interfaz 'ME_PROCESS_PO_CUST'.
11. En la pantalla 'Class Builder: Interfaces', haz clic en el botón 'Add Interface'.
12. Introduce 'ME_PROCESS_PO_CUST' en el campo 'Interface Name' y haz clic en el botón 'Create'.
13. En la pantalla 'New Interface: Attributes', haz clic en el botón 'Save' para guardar la interfaz.
14. En la pantalla 'Class Builder: Class Interface', selecciona la interfaz 'ME_PROCESS_PO_CUST' y haz clic en el botón 'Enhance'.
15. En la pantalla 'Interface Enhancements', selecciona el método 'PROCESS_ITEM' y haz clic en el botón 'Copy'.
16. En la pantalla 'New Method: Attributes', introduce un nombre para el método y haz clic en el botón 'Copy'.
17. En la pantalla 'Class Builder: Class Interface', selecciona el método que acabas de copiar y haz clic en el botón 'Redefined Methods'.
18. Introduce 'RELEASE_RESET' en el campo 'Method Name' y haz clic en el botón 'Create'.
19. En la pantalla 'New Method Implementation: Initial Screen', introduce un nombre para la implementación del método y haz clic en el botón 'Save'.
20. En la pantalla 'New Method Implementation: Attributes', introduce el siguiente código para la implementación del método:

1
2
3
4
5
METHOD release_reset.
  DATA: lo_rel_reset TYPE REF TO cl_po_rel_reset.
  lo_rel_reset = cl_po_rel_reset=>create( ).
  lo_rel_reset->release_reset( i_ebeln ).
ENDMETHOD.

Este código llama al método 'RELEASE_RESET' del objeto 'CL_PO_REL_RESET', pasándole el número del pedido de compras ('EBELN') como parámetro.

21. Haz clic en el botón 'Save' para guardar la implementación del método.

Una vez que hayas implementado la BADI 'ME_PROCESS_PO_CUST', el siguiente paso es asignar la implementación a la transacción de pedido de compras (por ejemplo, ME21N).

Para hacer esto, sigue estos pasos:

1. Abre la transacción 'SE18'.
2. Introduce el nombre de la BADI 'ME_PROCESS_PO_CUST' y haz clic en el botón 'Display'.
3. En la pantalla 'BAdI: Selection', haz clic en el botón 'Implementation Overview'.
4. En la pantalla 'BADI: Implementation Overview', selecciona la implementación que acabas de crear y haz clic en el botón 'Activate'.
5. Cierra la pantalla 'BADI: Implementation Overview'.
6. En la pantalla 'BAdI: Selection', haz clic en el botón 'Filter Values'.
7. En la pantalla 'BAdI: Filter Values', introduce el nombre de la transacción de pedido de compras (por ejemplo, ME21N) en el campo 'Parameter Name' y haz clic en el botón 'Execute'.
8. Selecciona la implementación que acabas de crear y haz clic en el botón 'Filter Values' para asignar la implementación a la transacción.

Una vez que hayas asignado la implementación de la BADI 'ME_PROCESS_PO_CUST' a la transacción de pedido de compras, la estrategia de liberación se reiniciará automáticamente cada vez que se modifique un renglón del pedido.

Espero que esto te ayude.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar