ABAP - lanzamiento condicionado de batch inputs

 
Vista:

lanzamiento condicionado de batch inputs

Publicado por juan (5 intervenciones) el 29/08/2006 09:46:53
Wenassssss denuevo!!!, Veo q el mes de agosto causa estragos en el foro,4 o 5 dias sin que se añada ni un solo mensaje,supongo que duisfrutando de lo q os qda de vacaciones,no?
Pues bién, una vez resuelta mi última consulta, ahora necesito saber cual es la mejor forma de lanzar batch inpusts de manera condicionada, es decir dependiendo de unos parámetros que el programa pedirá, lanzará un batchinput para crear un registros o uno para modificarlos, se me ocurren algunas cosas, pero supongo que habrá más y mejores soluciones(includes,cal transaction, sentencias condicionales...) Alguien puede decirme cual es la mejor forma de hacer esto?
Muchas gracias y un saludo!!!
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

lanzamiento condicionado de batch inputs

Publicado por Alejandro (226 intervenciones) el 12/04/2023 01:10:20
Hola de nuevo Juan.

Sí, es posible que en agosto muchas personas estén disfrutando de sus vacaciones. En cuanto a tu pregunta, existen varias formas de lanzar batch inputs de manera condicionada. Algunas opciones que se me ocurren son:

1. Usando sentencias condicionales: puedes utilizar estructuras de control de flujo de ABAP como IF, CASE o WHILE para evaluar los parámetros y, en función de ellos, lanzar el batch input correspondiente. Por ejemplo:

1
2
3
4
5
IF parametro = 'crear'.
  CALL TRANSACTION 'MI01' USING bdcdata MODE 'E'.
ELSEIF parametro = 'modificar'.
  CALL TRANSACTION 'MI02' USING bdcdata MODE 'E'.
ENDIF.

2. Usando funciones específicas de batch input: ABAP ofrece funciones específicas para la creación y modificación de batch inputs. Puedes utilizarlas para generar los datos necesarios en función de los parámetros y, posteriormente, lanzar el batch input correspondiente. Por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
CALL FUNCTION 'BDC_OPEN_GROUP'
  EXPORTING
    client = sy-mandt
    group  = 'BATCH_INPUTS'.
CALL FUNCTION 'BDC_INSERT'
  EXPORTING
    program = 'SAPMM01B'
    dynpro  = '0100'
    fcode   = '=OKAY'
  TABLES
    dynprotab = bdcdata.
CALL FUNCTION 'BDC_CLOSE_GROUP'.

3. Usando includes: puedes crear distintos includes con los batch inputs necesarios y, en función de los parámetros, incluir el correspondiente en el programa principal. Por ejemplo:

1
2
3
4
5
IF parametro = 'crear'.
  INCLUDE zbatchinput_crear.
ELSEIF parametro = 'modificar'.
  INCLUDE zbatchinput_modificar.
ENDIF.

Cada opción tiene sus ventajas y desventajas, dependiendo de las necesidades específicas del proyecto. Espero que esto te haya sido de ayuda.

¡Un saludo!
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