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