jueves, 2 de noviembre de 2017

GUIA SHDB - CASO RECORDING TAMAÑO VENTANA STANDARD.

Primero, al momento de hacer la grabación marcar el check de tamaño estandard para que puedas ver dentro de la grabacion el scroll



Ahora en mi caso en el reporte tenia el numero de hoja de ruta y sub numero y el mensaje que iba a mostrar,  te dejo la captura por si necesitas saber el tamaño del texto (campo message).



Asi mismo en el mismo top se declaro las siguientes tablas y estructuras que servirian para el batch tanto los parametros a enviar como recepcionar.


en un batch anterior ya vimos lo que son macros en sap con la sentencia DEFINE esto hace que puedas reusar el como si fueran sub rutinas, y lineas abajo del bloque enmarcado ves
los valores que le asigno como parametros a la estructura gs_parameters que luego enviare al batch (en este caso enviamos un X a la variable de parametro defsize que hace que nuestro programa al llamar al batch se marque la opcion de tamaño estandar) de esta manera respetara lo que hayamos hecho en nuestra grabacion en cuanto a tamaño de ventana.


usando las macros es como usar sub rutinas, en la imagen de la grabacion del batch ves que el macro bdc_dynpro la uso cada que en el batch hace referencia a un numero de screen y bdc_field cuando hace referencia al resto, ya lo hemos visto antes.


una vez hecho todo y luego del call transaction se hace un read table a la tabla gs_messtab creada antes y se lee para aquello cuyo tipo de mensaje sea 'E' y de encontrarlo enviar los demas valores de ese registro de error y capturar el mensaje en la gs_reporte-message que luego agregare a mi tabla gt_reporte.


 recuerda que con cada call transaction debes refrescar la tabla gt_bdcdata y gt_messtab ya que estas cambian con cada grabación ese decir si por material vas a usar el batch , luego de cada loop refrescar estas tablas y hacer los mismos pasos ya que los valores del batch cambian asi como los resutlados.
 como ves en el codigo hay un else y se repite el llamado a la funcion para obtener el mensaje, se entendería que el caso contrario es cuando el tipo de mensaje es 'S' lo cual sería un proceso concluido.


Espero te ayude, tu puedes, saludos.

No olvides refrescar tus valores (Excepto los parametros que siempre se repiten) de la tabla bdc_data y messtab.


al igual que tu alv log puedes guardar numero de material y mensaje.


EJEMPLO:


LOOP AT TI_MATERIAL INTO ST_MATERIAL.

REFRESH  GT_ BDCDATA, GT_MESSTAB.

GS_REPORTE-MATERIAL = ST_MATERIAL-MATNR.


(LOGICA DEL BATCH)


GS_REPORTE-MESSAGE = (LO CAPTURADO DE LA FUNCION CON CADA BATCH)

APPEND GS_REPORTE TO GT_REPORTE.

ENDLOOP.

No hay comentarios.:

Publicar un comentario