Foro de programación ABAP

SAP / ABAP => Programación ABAP => Mensaje iniciado por: TIN_JD en 21 de Enero de 2008, 04:16:24 pm

Título: DUDA: COMO PARAS INFORMACION DE UN EXEL A SAP
Publicado por: TIN_JD en 21 de Enero de 2008, 04:16:24 pm
HOLA ..
QUERIA SAVES SI ALGUIN SAVE COMO CARGAR UN EXEL, A UNA TRNSACCION DEFINIDA DE SAP (TRANSACCION FB50) Y DETERMINAR DONDE IRIAN LOS CAMPOS EXACTAMENTE.  ???
DE ANTEMANO GRASIAS.
UN SALUDO A TODOS
Título: Re: DUDA: COMO PARAS INFORMACION DE UN EXEL A SAP
Publicado por: Carlos en 21 de Enero de 2008, 04:22:37 pm
Hola.

Lo primero que tienes que hacer es cargar el excel a una tabla interna del programa.

Puedes usar por ejemplo GUI_UPLOAD, el tipo de archivo (Filetype) igual a 'WK1'.

Luego para pasarle los campos a la transacción FB50 dile al consultor que te ha mandado la tarea si tu no sabes, que te haga una grabación de esa transacción para ver donde vas colocando los campos.

Un saludo.
Título: Re: DUDA: COMO PARAS INFORMACION DE UN EXEL A SAP
Publicado por: hikaru_kirishima en 07 de Agosto de 2008, 03:53:12 pm
Holas, quisiera saber mas sobre levantar un excel a una tabla interna para poder llenarla, porque encontre una forma pero lo carga campo por campo y le tenes que pasar la columna y la fila, que otras formas hay para cargar un excel con datos de SAP?.
Ademas si este excel tiene cierto formato... me dijeron cargarlo ( pienso que como decis , cargaro a una tabla interna y luego ir cargando los datos y luego grabarlo...)
No encontre ningun ejemplo de esto, si alguien puede colocar mas informacion para poder orientarme o alguna pagina ...
Título: Re: DUDA: COMO PARAS INFORMACION DE UN EXEL A SAP
Publicado por: Nuria en 07 de Agosto de 2008, 04:29:06 pm
Hola,

Te voy a poner un ejemplo sencillo de como cargar un excel como comentas que has visto.

Primero defines la tabla donde vas a cargar el excel.
Código: [Seleccionar]
  data: itab_xls like alsmex_tabline occurs 00 with header line.



Luego cargas el excel desde la ruta donde tengas tu fichero.
Código: [Seleccionar]
*---------------------------------------------------------------------*
*       FORM UPLOAD                                                   *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM UPLOAD.

  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
       EXPORTING
            FILENAME    = p_file     " Ruta del fichero a cargar
            I_BEGIN_COL = '1'
            I_BEGIN_ROW = '2'
            I_END_COL   = '10'       " Nº de columnas que quieres leer
            I_END_ROW   = '9999'
       TABLES
            INTERN      = itab_xls.

ENDFORM.

Y para terminar mapeas la tabla cargada con la tabla donde mueves los datos.
Código: [Seleccionar]
*&---------------------------------------------------------------------*
*&      Form  MAPEAR
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM MAPEAR.

  LOOP AT ITAB_XLS.
    CASE ITAB_XLS-COL.

      WHEN '0001'.
        MOVE ITAB_XLS-VALUE TO ITAB-PROVEEDOR.
      WHEN '0002'.
        MOVE ITAB_XLS-VALUE TO ITAB-FECHA_CONTRATO.
      WHEN '0003'.
        MOVE ITAB_XLS-VALUE TO ITAB-GRUPO_COMPRAS.
      WHEN '0004'.
        MOVE ITAB_XLS-VALUE TO ITAB-IMPUTACION.
      WHEN '0005'.
        MOVE ITAB_XLS-VALUE TO ITAB-CENTRO.
        PERFORM RELLENA_CEROS.
      WHEN '0006'.
        MOVE ITAB_XLS-VALUE TO ITAB-INI_VALIDEZ.
      WHEN '0007'.
        MOVE ITAB_XLS-VALUE TO ITAB-FIN_VALIDEZ.
      WHEN '0008'.
        MOVE ITAB_XLS-VALUE TO ITAB-ORG_COMPRAS.
      WHEN '0009'.
        MOVE ITAB_XLS-VALUE TO ITAB-MATERIAL.
      WHEN '0010'.
        MOVE ITAB_XLS-VALUE TO ITAB-PRECIO_NETO.

    ENDCASE.

    AT END OF ROW.
      APPEND ITAB.
      CLEAR  ITAB.
    ENDAT.
  ENDLOOP.
ENDFORM.                    " MAPEAR

Un saludo.