Reinicio de estrategias de liberacion por posicion

Que tal estimados consultores.

Reciban un saludo desde mexico, esperando que esten teniendo un excelente año, nuevamente solicitando su apoyo para el siguiente caso:

Tengo una estrategia de liberacion para solicitudes de pedido por posicion

Donde sus estados se configuraron asi

teniendo las siguiente configuracion para el estado T (En proceso) y P (Bloqueado)

bajo la siguientes caracteristicas:

Sin embargo la peticion es que ademas de que se pueda reiniciar la estrategia con algun cambio de la solped para estas carateristicas se pueda reiniciar con cambio en algunos datos en la solped como serian el grupo de compras, el solicitante, etc para lo cual se utilizo una ampliacion de la ME52N para que utilizando la BAPI: BAPI_REQUISITION_RESET_RELEASE se pudiera realizar el reinicio de la estrategia no solamente por las caracteristicas de esta si no tambien por otros datos adicionales en la solped (estos datos son aprox. 15 y no se pueden meter dentro de las caracteristicas por que ademas tienen muchos valores).

El codigo ABAP de llamado viene mas o menos asi:

*---------------------------------------------------------------------*

* 1. Resetear liberación con la BAPI

*---------------------------------------------------------------------*

CALL FUNCTION ‘BAPI_REQUISITION_RESET_RELEASE’

EXPORTING

number    = lv_banfn

item      = lv_bnfpo

TABLES

return    = lt_return.

Sin embargo no realiza el reinicio de la estrategia no obstante se ejecute la BAPI que les indico, algun comentario de favor que pudiera darme luz sobre el tema, de antemano muchas gracias.

Hola Alex, tanto tiempo.

Entiendo que acá dices que no se corre el reinicio pero SI entra a la BAPI ?
Vas a tener que depurar más a fondo, porqué con la BAPI no se te está reseteando.

Que tal SidV.

Si un buen tiempo de no hacer contacto, pues fijate que ya el ABAP realizo junto conmigo ese debug profundo y nada cuando la ejecuto la BAPI desde la SE37 funciona muy bien pero cuando se ejecuta desde la ampliacion ABAP para la ME52N no envia ningun mensaje pero no hace nada, alguien mas que pudiera comentar, gracias SidV, sigo esperando ayuda de alguien.

:heavy_heart_exclamation: Importante :exclamation: La siguiente respuesta es generada por nuestro Robot de Consultoria-SAP.com denominado “CSAPBOT” usando tecnología de IA -inteligencia artificial. Por lo tanto, puede haber datos incorrectos. No podemos garantizar que la información sea 100% correcta, solo consultores SAP profesionales podrían verificar la información. Muchos consultores leen nuestros foros de Ayuda SAP y lamentablemente pocos ayudan respondiendo y confirmando la información.

Si quieres aprender más y mejorar nuestros sistemas, te esperamos en este artículo.


Buen día,

Gracias por compartir el detalle de tu implementación. Estás intentando reiniciar la estrategia de liberación de una solicitud de pedido (solped) en SAP ECC, fuera de los cambios clásicos de las características definidas en la clase de liberación, utilizando la BAPI BAPI_REQUISITION_RESET_RELEASE como parte de una ampliación en ME52N. Esta situación aplica directamente al módulo MM (Gestión de materiales), específicamente a la gestión de liberaciones de solped.

Tu enfoque es válido desde el punto de vista técnico, pero hay limitaciones funcionales y técnicas en el uso de la BAPI mencionada, y algunos puntos críticos que podrían estar causando que no funcione como esperas. Vamos a repasarlos.


:small_blue_diamond: Aspectos clave a tener en cuenta

1. La BAPI BAPI_REQUISITION_RESET_RELEASE solo resetea liberaciones existentes

  • Esta BAPI revierte la estrategia de liberación de una solped que ya tiene liberaciones efectuadas, pero no fuerza el recálculo de la estrategia automáticamente.

  • Es decir, puede cancelar una liberación aprobada, pero no necesariamente vuelve a evaluar si la estrategia cambió.

  • Si no hay liberaciones aprobadas en la posición, la BAPI no hace nada, aunque se ejecute sin errores.

2. No hay recalculo automático de estrategia al modificar campos fuera de las características

  • SAP solo recalcula la estrategia de liberación si se modifican características relevantes para la estrategia, es decir, aquellas incluidas en la clase de liberación (CL24N).

  • Si modificas datos como:

    • Solicitante (AFNAM)

    • Grupo de compras (EKGRP)

    • Texto, fecha, etc.

    y estos no forman parte de las características de la estrategia, SAP no recalcula automáticamente la liberación (ni con la BAPI ni manualmente).

3. Cambiar datos que no forman parte de las características no invalida la liberación

  • Esto es comportamiento estándar de SAP, y es intencional.

  • Si necesitas que se reinicie la estrategia al modificar campos no considerados en la estrategia, tienes que forzar manualmente el reinicio de liberaciones y luego reactivar la estrategia.


:small_blue_diamond: Posibles soluciones o alternativas

:white_check_mark: Opción 1: Uso correcto de la BAPI (con verificación de estado)

Asegúrate de que:

  • La posición de la solped (BANFN/BNFPO) ya tiene liberaciones activas o aprobadas (EBAN-FRGZU y EBAN-FRGST).

  • Luego ejecutas la BAPI:

CALL FUNCTION 'BAPI_REQUISITION_RESET_RELEASE'
  EXPORTING
    number = lv_banfn
    item   = lv_bnfpo
  TABLES
    return = lt_return.

  • Después de la ejecución, debes llamar también a:
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  EXPORTING
    wait = 'X'.

  • Finalmente, puedes consultar lt_return para ver si realmente se ejecutó alguna acción o fue un llamado vacío.

:white_check_mark: Opción 2: Fuerza manual de la estrategia con cambio técnico

Una técnica usada por algunos consultores cuando no pueden recalcular la estrategia de forma estándar:

  • Cambiar temporalmente un campo clave que sí esté en las características de la estrategia de liberación, por ejemplo, el valor del importe (PREIS, NETWR) o el grupo de compras (si se pudiera incluir).

  • Esto forzará a SAP a reanular la liberación existente y activar la nueva estrategia, si aplica.

  • Luego puedes devolver el campo a su valor original.

:warning: Esta técnica debe ser aplicada con precaución, y validada con los usuarios del proceso, ya que podría generar inconsistencias si no se controla correctamente.


:white_check_mark: Opción 3: BAdI o User-Exit para reinicio controlado

Podrías utilizar un BAdI o User Exit para implementar lógica que:

  1. Detecte el cambio en alguno de esos 15 campos que mencionas.

  2. Verifique si hay liberaciones activas.

  3. Llame a la BAPI para resetear la liberación.

  4. Luego active manualmente (si se requiere) la estrategia de nuevo (esto ya es más complejo).

Posibles puntos de ampliación:

  • MM06E005 – User Exit para modificaciones en solped

  • ME_PROCESS_REQ_CUST – BAdI para modificación de solped (en Enjoy)


:white_check_mark: Opción 4: Rediseñar la estrategia incluyendo campos relevantes

Si la lógica del negocio exige que al modificar campos como el solicitante o el grupo de compras se reinicie la estrategia, considera:

  • Crear una característica Z para la estrategia de liberación que agrupe esos campos relevantes.

  • Si el volumen de valores es muy alto, puedes usar valores por rangos, estatus, o bien manejar lógica en la característica con una exit (CL EXIT) para simplificar la cantidad de valores a mantener.


:small_blue_diamond: Verificación técnica rápida

  • Verifica en la tabla EBAN que la posición tiene estado de liberación (FRGZU) diferente a vacío antes de ejecutar la BAPI.

  • Ejecuta la BAPI y observa lt_return.

  • Asegúrate de hacer el COMMIT.


Resumen Consultoria-SAP

En SAP ECC, la BAPI BAPI_REQUISITION_RESET_RELEASE no recalcula la estrategia de liberación si no hay cambios en las características que la componen. Por lo tanto, al modificar campos como el solicitante o el grupo de compras, si estos no están incluidos en la clase de estrategia, la estrategia no se reiniciará automáticamente. Para forzar este comportamiento, se recomienda evaluar un rediseño de la estrategia de liberación incluyendo campos relevantes, usar ampliaciones como ME_PROCESS_REQ_CUST o ejecutar la BAPI solo si la posición está en estado liberado. Este proceso corresponde al módulo MM (Gestión de materiales).

Puedes encontrar casos similares e ideas adicionales en los Foros SAP de Consultoria-SAP.com, donde otros consultores han documentado sus estrategias para forzar la liberación según lógica de negocio particular.

¡Estamos aquí para ayudarte en los Foros SAP de Consultoria-SAP!

Este tema se cerró automáticamente 2 días después de la última publicación. No se permiten nuevas respuestas.