:::: MENU ::::

este blog tiene como objetivo de compartir los conocimientos prácticos de cada lenguaje de programación más conocidos.

  • Lo mejor está por suceder

  • Easy to Customize

  • Customizable fonts.

martes, 20 de agosto de 2013

Estructura de Código para realizar un BATCH INPUT.

Estas variables siempre deben de ir. Tengan en cuenta siempre el orden del código y el standard.

*********************************************
*               DECLARACIÓN DE VARIABLES               *
*********************************************

DATA:
        gt_bdcdata        TYPE TABLE OF bdcdata,      " tabla guarda recording
        gt_messtab        TYPE TABLE OF bdcmsgcoll, " tabla que obtiene los mensajes
        gs_bdcdata        TYPE bdcdata,           " linea de cabecera de la tabla que guarda el recording
        gs_messtab        TYPE bdcmsgcoll.      "linea de cabecera de tabla que guarda el mensaje
       

DATA: BEGIN OF it_opt OCCURS 0.
            INCLUDE STRUCTURE CTU_PARAMS.
DATA: END OF it_opt.

DATA:
           v_mensaje      TYPE string,         " Se le asignarán los mensajes q se obtengan luego del batch
                                                             " para agregar a la tabla de mensajes.
           v_msgid          TYPE symsgid,    " variable ID de mensaje 
           v_msgno         TYPE symsgno.   " variable Número de mensaje

**************************************************
NOTA:
En caso de que se quiera Realizar carga masiva, habría que agregar este código dentro de un loop
que se le hace a la tabla que contiene los registros.

Simplemente nos servirán estas dos líneas para tener todo claro.
Luego de realizar el recording a la tx solicitada, copiamos lo generado en nuestro código lo editamos
de la siguiente forma.

OJO: los datos de dynpro tiene que enviarse en el perform BDC_DYNPRO  y los datos de cada movimiento que se hizo en dicha dynpro deben de enviarse en el perform BDC_FIELD.

*********************************************
*                       START OF SELECTION                       *
*********************************************

PERFORM bdc_dynpro USING 'SAPMP50A'        '1100'.
PERFORM bdc_field     USING 'BDC_CURSOR'   'RP50G-PERNR'.

REFRESH it_opt.   " contiene las opciones de recording
                 
                 it_opt-dismode   = 'N'.
                 it_opt-updmode = 'S'.
                 it_opt-racmmit   = 'X'.
                 it_opt-nobiend   = 'X'.
                 it_opt-nobiend   = SPACE.

CALL TRANSACTION 'TX' USING                    gt_bdcdata
                                               OPTIONS FROM   it_opt
                                               MESSAGES INTO gt_messtab.

LOOP AT gt_messtab INTO gw_messtab. " Asigna los mensajes recibidos en la tabla gt_messtab
                                                                   " a la tabla de mensajes que se retornará (T_MENSAJE)

                 v_msgid  = gw_messtab-msgid.
                 v_msgno = gw_messtab-msgnr.

       CALL FUNCTION 'K_MESSAGE_TRANSFORM'  " función que obtiene el mensaje                                                                                                                   " enviándole como datos el mensaje ID
                                                                                        " (clase de mensaje) y el número de Mensaje
                  EXPORTING
                  par_msgid                 = v_msgid
                  par_msgno                = v_msgno
                  IMPORTING
                  par_msgtx                 = v_mensaje.

      t_mensaje-msgerr = v_mensaje.    " se agrega el mensaje a la tabla de mensajes a mostrar.

*********************************************
*                DECLARACIÓN DE SUB_RUTINA           *
*********************************************

*&---------------------------------------------------------------------*
*&      Form  BDC_DYNPRO
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_0329   text
*      -->P_0330   text
*----------------------------------------------------------------------*
form BDC_DYNPRO  using program dynpro.

  clear gs_bdcdata.
  gs_bdcdata-program  = program.
  gs_bdcdata-dynpro   = dynpro.
  gs_bdcdata-dynbegin = 'X'.
  append gs_bdcdata to gt_bdcdata .

endform.                    " BDC_DYNPRO
*&---------------------------------------------------------------------*
*&      Form  BDC_FIELD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
form BDC_FIELD using fnam fval.

  clear gs_bdcdata.
  gs_bdcdata-fnam = fnam.
  gs_bdcdata-fval = fval.
  append gs_bdcdata to gt_bdcdata.


endform.                    " BDC_FIELD

0 comentarios:

Publicar un comentario

A call-to-action text Contact us