MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 19/12/07, 11:16:15
tate tate is offline
Senior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 106
batchinpt de carga de materiales

Hola, os cuento:
me pasas un excel con datos, y lo recojo en una tabla interna, y lo que kiero hacer ahora es generar automaticamente un batchinput de carga de materiales, por debajo, que el programa solo pida la ruta del fichero (que eso esta echo) y que genere un juego de datos.
Espero haberme explicado.

mi codigo es:

REPORT ZFICHERO_EXCEL_1 .

TABLES: MARA, T179, EKPO, MBEW .

********************* Tabla interna
DATA: BEGIN OF itab OCCURS 0,
matnr LIKE mara-matnr,
mtart LIKE mara-mtart,
meins LIKE mara-meins,
bismt LIKE mara-bismt,
matkl LIKE mara-matkl,
text_es TYPE char70,
text_pt TYPE char70,
extwg LIKE mara-extwg,
prodh LIKE t179-prodh,
bwtar LIKE ekpo-bwtar,
kzkfg LIKE mara-kzkfg,
bklas LIKE mbew-bklas,
bwtar1 LIKE ekpo-bwtar,
bklas1 LIKE mbew-bklas.
DATA: END OF itab.

*********** Tabla interna que tendrá los campos 'formateados'
DATA: BEGIN OF t_vista OCCURS 0,
campo1(18),
campo2(4),
campo3(3),
campo4(18),
campo5(9),
campo6(70),
campo7(70),
campo8(18),
campo9(18),
campo10(10),
campo11(1),
campo12(4),
campo13(10),
campo14(4),
END OF t_vista.

********* Campos para la funcion ALSM_EXCEL_TO_INTERNAL_TABLE

DATA: it_intern TYPE alsmex_tabline OCCURS 0 WITH HEADER LINE,
l_start_col TYPE i VALUE 1,
l_start_row TYPE i VALUE 1,
l_end_col TYPE i VALUE 256,
l_end_row TYPE i VALUE 65536.
DATA l_filename LIKE rlgrap-filename.

*-----------------------------------------------------------------------
* selection-screen
*-----------------------------------------------------------------------
SELECTION-SCREEN BEGIN OF BLOCK b1.
PARAMETER p_nombre LIKE rlgrap-filename default 'c:\da.xls'. "fichero
SELECTION-SCREEN END OF BLOCK b1.

*-----------------------------------------------------------------------
* at selection-screen
*-----------------------------------------------------------------------
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_nombre.

******************** match code para el fichero ************************
CALL FUNCTION 'F4_FILENAME' "Captura el fichero
IMPORTING
FILE_NAME = p_nombre.
" F4_FILENAME

*-----------------------------------------------------------------------
* start-of-selection.
*-----------------------------------------------------------------------
START-OF-SELECTION.

PERFORM ALSM_EXCEL. "coger el fichero excel
PERFORM BORRAR_CABECERA. "no cuenta la 1º linea, cabecera
PERFORM RELLENAR_ITAB. "rellana la tabla interna

*BREAK-POINT 'z13k'.

*&---------------------------------------------------------------------*
*& Form ALSM_EXCEL
*&---------------------------------------------------------------------*
FORM ALSM_EXCEL.

l_filename = p_nombre.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = l_filename
i_begin_col = l_start_col
i_begin_row = l_start_row
i_end_col = l_end_col
i_end_row = l_end_row
TABLES
intern = it_intern
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.

IF sy-subrc = 1 OR sy-subrc = 2 OR sy-subrc = 3.
MESSAGE i000(zmm) WITH 'No se pudo cargar el fichero '
p_nombre.
ENDIF.

ENDFORM. " ALSM_EXCEL

*&---------------------------------------------------------------------*
*& Form BORRAR_CABECERA
*&---------------------------------------------------------------------*
FORM BORRAR_CABECERA.

*-----------------------------------------------------------------------
* Si la primera linea no es un registro, y es una titulo de cabecera,
* esa linea no la tendra en cuenta e ira a la segunda linea
*-----------------------------------------------------------------------
DELETE it_intern WHERE ROW = '0001'. "Borrar Titulos (cabeceras)
LOOP AT it_intern.
CASE it_intern-COL.
WHEN 1. T_VISTA-CAMPO1 = it_intern-VALUE.
WHEN 2. T_VISTA-CAMPO2 = it_intern-VALUE.
WHEN 3. T_VISTA-CAMPO3 = it_intern-VALUE.
WHEN 4. T_VISTA-CAMPO4 = it_intern-VALUE.
WHEN 5. T_VISTA-CAMPO5 = it_intern-VALUE.
WHEN 6. T_VISTA-CAMPO6 = it_intern-VALUE.
WHEN 7. T_VISTA-CAMPO7 = it_intern-VALUE.
WHEN 8. T_VISTA-CAMPO8 = it_intern-VALUE.
WHEN 9. T_VISTA-CAMPO9 = it_intern-VALUE.
WHEN 10. T_VISTA-CAMPO10 = it_intern-VALUE.
WHEN 11. T_VISTA-CAMPO11 = it_intern-VALUE.
WHEN 12. T_VISTA-CAMPO12 = it_intern-VALUE.
WHEN 13. T_VISTA-CAMPO13 = it_intern-VALUE.
WHEN 14. T_VISTA-CAMPO14 = it_intern-VALUE.
ENDCASE.
AT END OF ROW.
APPEND T_VISTA.
CLEAR T_VISTA.
ENDAT.
ENDLOOP.

ENDFORM. " BORRAR_CABECERA

*&---------------------------------------------------------------------*
*& Form RELLENAR_ITAB
*&---------------------------------------------------------------------*
FORM RELLENAR_ITAB.

LOOP AT it_intern.
CASE it_intern-col.
WHEN 1.
itab-matnr = it_intern-value.
WHEN 2.
itab-mtart = it_intern-value.
WHEN 3.
if it_intern-value = '#'. "si unidad de medida es igual a '€'
itab-meins = 'EUR'.
else.
itab-meins = it_intern-value.
endif.
WHEN 4.
itab-bismt = it_intern-value.
WHEN 5.
itab-matkl = it_intern-value.
WHEN 6.
itab-text_es = it_intern-value.
WHEN 7.
itab-text_pt = it_intern-value.
WHEN 8.
itab-extwg = it_intern-value.
WHEN 9.
itab-prodh = it_intern-value.
WHEN 10.
itab-bwtar = it_intern-value.
WHEN 11.
itab-kzkfg = it_intern-value.
WHEN 12.
itab-bklas = it_intern-value.
WHEN 13.
itab-bwtar1 = it_intern-value.
WHEN 14.
itab-bklas1 = it_intern-value.
APPEND itab.
CLEAR itab.
ENDCASE.
ENDLOOP.

ENDFORM. " RELLENAR_ITAB
Responder Con Cita
  #2  
Viejo 19/12/07, 11:37:40
Avatar de nenuke
nenuke nenuke is offline
Member
 
Fecha de Ingreso: sep 2006
Localización: Madrid
Mensajes: 87





Un saludo.
Responder Con Cita
  #3  
Viejo 19/12/07, 12:12:22
tate tate is offline
Senior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 106
no entiendo muy bien, con la bapi esa me genera la carga de datos ??
Responder Con Cita
  #4  
Viejo 08/12/09, 22:10:48
ksper ksper is offline
Junior Member
 
Fecha de Ingreso: nov 2007
Mensajes: 13
Help!!

Holaaa....

Yo tengo un problema similar y quiero ver si me pueden
ayudar por favor....

yo le voy a crear una extension (copia) a un material, cargo un
archivo de excel donde vienen los materiales a copiar, con la misma
informacion con la que ya esta guardado el material, solo que se guardan
en otro centro y almacen.... no se si me explique....

Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 15:34:30.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web