Archivos Mensuales: febrero 2010

BAPIs de PS

Introducción

Los sufridos programadores de ABAP solemos preferir el uso de BAPIs al de Batch-Input por velocidad y fiabilidad (incluso a pesar de fantásticas utilidades -shameless self-promotion- como BI compactor), pero en algunos casos pueden ser desesperantes.

Es el caso de las BAPIs de PS (Project System) que son un tanto especiales si no se las llama correctamente. A base de probar, puesto que no encontré documentación clara sobre el tema, finalmente di con una lógica que funciona y además, no da dumps.

En este ejemplillo pongo un fragmento de código para la creación de elementos PEP. Obsérvese las llamadas previas y posteriores a las de la BAPI en sí.

El código

"[...]

  CALL FUNCTION 'BAPI_PS_INITIALIZATION'.

  CALL FUNCTION 'BAPI_BUS2054_CREATE_MULTI'
    EXPORTING
      i_project_definition = i_project_definition
    TABLES
      it_wbs_element       = it_wbs_element
      et_return            = it_return.

  LOOP AT it_return WHERE type = 'E'.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    "tenemos que añadir aquí control de error
    EXIT.
  ENDLOOP.
  
  "aquí deberíamos controlar el error
  "en caso de que lo hubiera, nos salimos

  REFRESH it_return.

  CALL FUNCTION 'BAPI_PS_PRECOMMIT'
    TABLES
      et_return = it_return.

  LOOP AT it_return WHERE type = 'E'.
    "tenemos que añadir aquí control de error
    EXIT.
  ENDLOOP.
  
  "aquí deberíamos controlar el error
  "en caso de que lo hubiera, nos salimos

  REFRESH it_return.

  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait   = 'X'
    IMPORTING
      return = it_return.

  LOOP AT it_return WHERE type = 'E'.
    "tenemos que añadir aquí control de error
    EXIT.
  ENDLOOP.
  
  "aquí deberíamos controlar el error
  "en caso de que lo hubiera, nos salimos
Publicado en: SAP Sin comentarios ▼
[c] Alberto Viñuela Miranda / Cranfcom 2013-2014

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.