Grabación SM35 a TX

Buen día,

En mi día a día utilizo grabaciones en SM35 para automatizar muchos procesos. Sé que existe una manera de convertir estas grabaciones en programas, pero no sé exactamente cómo hacerlo. ¿Alguien me puede ayudar?

Saludos.

@OMCI buen día!

Tienes que llenar una tabla interna del tipo bdcdata tal como la siguiente
it_bdc_data TYPE STANDARD TABLE OF bdcdata y le tienes que cargar todos los campos, tal cual te quedo la grabación en la SM35.

luego se la pasas en un CALL TRANSACTION a la transacción a la que le hiciste la grabación de esta forma:
CALL TRANSACTION ‘TRX’ USING it_bdc_data…

Espero te sirva…

2 Me gusta

Excelente, muchas gracias.

Lo intentaré y te comento.

Saludos.

DATA: lt_msg      TYPE TABLE OF bdcmsgcoll,
      gt_bdcdata  LIKE TABLE OF bdcdata,
      gs_bdcdata  LIKE LINE OF gt_bdcdata.

* Rutina fill_bdc_data que recibe 5 parámetros
 PERFORM: fill_bdc_data USING 'SAPMF05A' '0103' 'X' '' '',
          fill_bdc_data USING '' '' '' 'BDC_CURSOR' 'RF05A-XPOS1(03)',
          fill_bdc_data USING '' '' '' 'BDC_OKCODE' '/00',

* gt_bdcdata es la tabla interna donde guarda los pasos de la grabación la rutina fill_bdc_data
ls_options-dismode = 'N'. "No mostrar ventanas de la grabación
ls_options-updmode = 'S'. "Modo sincrono

CALL TRANSACTION 'F-28' USING gt_bdcdata OPTIONS FROM ls_options MESSAGES INTO lt_msg.


* Esta es la rutina para llenar la tabla
FORM fill_bdc_data USING value(p_program)
                         value(p_dynpro)
                         value(p_dynbegin)
                         value(p_fnam)
                         value(p_fval).
  CLEAR gs_bdcdata .
  IF p_dynbegin = 'X' .
    gs_bdcdata-program  = p_program .
    gs_bdcdata-dynpro   = p_dynpro .
    gs_bdcdata-dynbegin = p_dynbegin .
    APPEND gs_bdcdata TO gt_bdcdata.
  ELSE.
    gs_bdcdata-fnam = p_fnam.
    gs_bdcdata-fval = p_fval.
    CONDENSE gs_bdcdata-fval.
    APPEND gs_bdcdata TO gt_bdcdata.
  ENDIF.
ENDFORM .                              " Fill_entry

Saludos

Cuando uno hace la grabación, puede obtener el código fuente completo generado por Sap. En la transacción shdb, parte superior, hay un botón llamado Programa (con el ícono de una hoja nueva). Allí da las opciones para asignarle un nombre y grabar el código, luego puedes usar este código para copiar y pegar en tu programa.

1 me gusta

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