Cambiar separador decimal a un importe (puntos o comas)

3 08 2010

Generalmente entre distintas computadoras el separador decimal de un importe puede variar. Puede ser un punto o una coma, por ejemplo 100.60 o bien 100,60 .
Como no sabemos qué configuración tiene el sistema donde se va a ejecutar nuestro programa, con lo siguiente vamos a poder poner el separador decimal correcto automáticamente.


DATA: FORMATO_DEC LIKE USR01-DCPFM.

*Obtenemos el formato decimal del sistema en la variable FORMATO_DEC
SELECT SINGLE DCPFM
INTO FORMATO_DEC
FROM USR01
WHERE BNAME = SY-UNAME.

*Cambiamos el separador decimal a la variable de importe (LV_DMBTR)
CASE FORMATO_DEC.
WHEN ‘ ‘. “Coma Decimal
REPLACE ‘.’ IN LV_DMBTR WITH ‘,’.
WHEN ‘X’. “Punto Decimal
REPLACE ‘,’ IN LV_DMBTR WITH ‘.’.
ENDCASE.





Programa que lista USER-EXITS de una transacción

3 08 2010

El siguiente reporte muestra un listado de las USER EXITS de una transacción determinada. Sólo basta ingresar el nombre de la transacción en la pantalla principal, y como resultado mostrará tanto el nombre como la descripción de la USER EXIT.

*&———————————————————————*
*& Report ZUSER_EXIT
*&
*&———————————————————————*
*&
*&
*&———————————————————————*
REPORT ZUSER_EXIT.
tables : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir.
tables : tstct.
data : jtab like tadir occurs 0 with header line.
data : field1(30).
data : v_devclass like tadir-devclass.
parameters : p_tcode like tstc-tcode obligatory.

select single * from tstc where tcode eq p_tcode.
if sy-subrc eq 0.
select single * from tadir where pgmid = ‘R3TR’
and object = ‘PROG’
and obj_name = tstc-pgmna.
move : tadir-devclass to v_devclass.
if sy-subrc ne 0.
select single * from trdir where name = tstc-pgmna.
if trdir-subc eq ‘F’.
select single * from tfdir where pname = tstc-pgmna.
select single * from enlfdir where funcname =
tfdir-funcname.
select single * from tadir where pgmid = ‘R3TR’
and object = ‘FUGR’
and obj_name eq enlfdir-area.

move : tadir-devclass to v_devclass.
endif.
endif.
select * from tadir into table jtab
where pgmid = ‘R3TR’
and object = ‘SMOD’
and devclass = v_devclass.
select single * from tstct where sprsl eq sy-langu and
tcode eq p_tcode.
format color col_positive intensified off.
write:/(19) ‘Transaction Code – ‘,
20(20) p_tcode,
45(50) tstct-ttext.
skip.
if not jtab[] is initial.
write:/(95) sy-uline.
format color col_heading intensified on.
write:/1 sy-vline,
2 ‘Exit Name’,
21 sy-vline ,
22 ‘Description’,
95 sy-vline.
write:/(95) sy-uline.
loop at jtab.
select single * from modsapt
where sprsl = sy-langu and
name = jtab-obj_name.
format color col_normal intensified off.
write:/1 sy-vline,
2 jtab-obj_name hotspot on,
21 sy-vline ,
22 modsapt-modtext,
95 sy-vline.
endloop.
write:/(95) sy-uline.
describe table jtab.
skip.
format color col_total intensified on.
write:/ ‘No of Exits:’ , sy-tfill.
else.
format color col_negative intensified on.
write:/(95) ‘No User Exit exists’.
endif.
else.
format color col_negative intensified on.
write:/(95) ‘Transaction Code Does Not Exist’.
endif.

at line-selection.
get cursor field field1.
check field1(4) eq ‘JTAB’.
set parameter id ‘MON’ field sy-lisel+1(10).
call transaction ‘SMOD’ and skip first screen.





Guardar archivo en formato PDF

3 08 2010

Con el siguiente código podremos generar archivos PDF.

Ya que con la función GUI_DOWNLOAD únicamente no se puede hacer. Previamente hay que realizar una conversión para luego sí guardar el fichero.PDF.


*&—————————————————————–*
*& Report  Y_TEST
*&
*&—————————————————————–*
*&
*&
*&—————————————————————–*

REPORT y_test NO STANDARD PAGE HEADING.

**********************************************************************
*  Definición de variables                                                                   *
**********************************************************************

DATA: filesize  TYPE i,
header  LIKE thead,
options  LIKE itcpo,
result    LIKE itcpp,
otf        LIKE itcoo OCCURS 0 WITH HEADER LINE,
lines     LIKE tline OCCURS 0 WITH HEADER LINE,
lv_file   TYPE string.

**********************************************************************
*  Definición de la pantalla de selección                                              *
**********************************************************************

SELECTION-SCREEN BEGIN OF BLOCK blq1 WITH FRAME TITLE text-t01.
PARAMETERS:
p_impre TYPE pri_params-pdest OBLIGATORY,
p_file  TYPE rlgrap-filename OBLIGATORY DEFAULT ‘C:\PRUEBA.PDF’.
SELECTION-SCREEN END OF BLOCK blq1.

**********************************************************************
*  Proceso principal                                                                           *
**********************************************************************

*Se completa tabla lines con el contenido que queramos que tenga el archivo PDF
lines-tdline = ‘Este es el texto que aparecerá en el archivo PDF’.
lines-tdformat = ‘K’.
APPEND lines.

*Se obtienen y definen las opciones de formato del archivo
options-tddest = p_impre. “Nombre de impresora local
options-tdnewid = ‘X’.
options-tdgetotf = ‘X’.

CALL FUNCTION ‘PRINT_TEXT’
EXPORTING
device           = ‘PRINTER’
dialog           = ‘ ‘
application    = ‘TX’
header          = header
options         = options
IMPORTING
result         = result
TABLES
lines          = lines
otfdata      = otf
EXCEPTIONS
canceled     = 01
device        = 02
form          = 03
options      = 04
unclosed    = 05
unknown    = 06
format       = 07
textformat  = 08
communication = 09.

* Se convierte a PDF
CALL FUNCTION ‘CONVERT_OTF’
EXPORTING
format                = ‘PDF’
max_linewidth     = 132
IMPORTING
bin_filesize          = filesize
TABLES
otf                    = otf
lines                 = lines
EXCEPTIONS
err_conv_not_possible = 1.

* Bajamos el archivo
lv_file = p_file.

CALL FUNCTION ‘GUI_DOWNLOAD’
EXPORTING
bin_filesize = filesize
filename = lv_file
filetype = ‘BIN’
* APPEND = ‘ ‘
* CODEPAGE = ‘ ‘
* NO_BYTEORDER_MARK = ‘ ‘
* IMPORTING
* FILELENGTH = c
TABLES
data_tab = lines
* FORMAT_TAB =
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6.





Tabuladores en formularios – Abap

2 08 2010
SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
PARAMETERS: p1 TYPE c LENGTH 10,
p2 TYPE c LENGTH 10,
p3 TYPE c LENGTH 10.
SELECTION-SCREEN END OF SCREEN 100.
SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
PARAMETERS: q1 TYPE c LENGTH 10,
q2 TYPE c LENGTH 10,
q3 TYPE c LENGTH 10.
SELECTION-SCREEN END OF SCREEN 200.
SELECTION-SCREEN: BEGIN OF TABBED BLOCK mytab FOR 10 LINES,
TAB (20) button1 USER-COMMAND push1 DEFAULT SCREEN 100,
TAB (20) button2 USER-COMMAND push2 DEFAULT SCREEN 200,
END OF BLOCK mytab.
INITIALIZATION.
button1 = ‘Formulario 1′.
button2 = ‘Formulario 2′.

SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.PARAMETERS: p1 TYPE c LENGTH 10,p2 TYPE c LENGTH 10,p3 TYPE c LENGTH 10.SELECTION-SCREEN END OF SCREEN 100.
SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.PARAMETERS: q1 TYPE c LENGTH 10,q2 TYPE c LENGTH 10,q3 TYPE c LENGTH 10.SELECTION-SCREEN END OF SCREEN 200.
SELECTION-SCREEN: BEGIN OF TABBED BLOCK mytab FOR 10 LINES,TAB (20) button1 USER-COMMAND push1 DEFAULT SCREEN 100,TAB (20) button2 USER-COMMAND push2 DEFAULT SCREEN 200,END OF BLOCK mytab.INITIALIZATION.button1 = ‘Formulario 1′.button2 = ‘Formulario 2′.





Enviar e-mail a correo externo – Abap

2 08 2010
DATA: BEGIN OF i_text OCCURS 0.
INCLUDE STRUCTURE soli.
DATA: END OF i_text.
DATA: wspoolnumber   LIKE  sy-spono ,
wmailname      LIKE  sood1-objnam,
wsubject       LIKE  sood1-objdes ,
wrecepient(40) TYPE  c ,
wdli           LIKE  soos1-dlinam.
DATA: object_hd_change LIKE sood1 OCCURS 0 WITH HEADER LINE,
objpara          LIKE selc  OCCURS 0 WITH HEADER LINE,
receivers        LIKE soos1 OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF i_receivers OCCURS 0.
INCLUDE STRUCTURE receivers.
DATA: END OF i_receivers.
wsubject     = ‘Entrega numero….1234567890.’.
wrecepient   = ‘tu_correo@algo.com’.
object_hd_change-objla  = sy-langu.
object_hd_change-objnam = wmailname.
object_hd_change-objdes = wsubject.
object_hd_change-objsns = ‘F’.
object_hd_change-vmtyp  = ‘T’.
object_hd_change-skips  = ‘X’.
object_hd_change-acnam  = ‘SP01′.
object_hd_change-objcp  = ‘X’.
REFRESH i_text.
CLEAR i_text.
i_text-line = ‘Texto del mensaje’.
APPEND i_text.
REFRESH i_receivers.
CLEAR i_receivers.
i_receivers-rcdat  = sy-datum.
i_receivers-rctim  = sy-uzeit.
i_receivers-recextnam = wrecepient.
i_receivers-recesc = ‘U’.
i_receivers-sndex  = ‘X’.     ” Express-Mail
APPEND i_receivers.
objpara-name = ‘SPI’.
objpara-low  = wspoolnumber.
APPEND objpara.
CALL FUNCTION ‘SO_OBJECT_SEND’
EXPORTING
object_hd_change           = object_hd_change
object_type                = ‘RAW’
owner                      = sy-uname
TABLES
objcont                    = i_text
receivers                  = i_receivers
EXCEPTIONS
active_user_not_exist            = 1
communication_failure            = 2
component_not_available          = 3
folder_not_exist                 = 4
folder_no_authorization          = 5
forwarder_not_exist              = 6
note_not_exist                   = 7
object_not_exist                 = 8
object_not_sent                  = 9
object_no_authorization          = 10
object_type_not_exist            = 11
operation_no_authorization       = 12
owner_not_exist                  = 13
parameter_error                  = 14
substitute_not_active            = 15
substitute_not_defined           = 16
system_failure                   = 17
too_much_receivers               = 18
user_not_exist                   = 19
originator_not_exist             = 20
x_error                          = 21
OTHERS                           = 22.
IF sy-subrc <> 0.
WRITE: /’Error al enviar el mail’.
MESSAGE ID sy-msgid TYPE ‘S’ NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
COMMIT WORK.

DATA: BEGIN OF i_text OCCURS 0.          INCLUDE STRUCTURE soli.  DATA: END OF i_text.
DATA: wspoolnumber   LIKE  sy-spono ,        wmailname      LIKE  sood1-objnam,        wsubject       LIKE  sood1-objdes ,        wrecepient(40) TYPE  c ,        wdli           LIKE  soos1-dlinam.
DATA: object_hd_change LIKE sood1 OCCURS 0 WITH HEADER LINE,        objpara          LIKE selc  OCCURS 0 WITH HEADER LINE,        receivers        LIKE soos1 OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF i_receivers OCCURS 0.          INCLUDE STRUCTURE receivers.  DATA: END OF i_receivers.

wsubject     = ‘Entrega numero….1234567890.’.  wrecepient   = ‘tu_correo@algo.com’.

object_hd_change-objla  = sy-langu.  object_hd_change-objnam = wmailname.  object_hd_change-objdes = wsubject.  object_hd_change-objsns = ‘F’.  object_hd_change-vmtyp  = ‘T’.  object_hd_change-skips  = ‘X’.  object_hd_change-acnam  = ‘SP01′.  object_hd_change-objcp  = ‘X’.

REFRESH i_text.  CLEAR i_text.  i_text-line = ‘Texto del mensaje’.  APPEND i_text.

REFRESH i_receivers.  CLEAR i_receivers.  i_receivers-rcdat  = sy-datum.  i_receivers-rctim  = sy-uzeit.  i_receivers-recextnam = wrecepient.  i_receivers-recesc = ‘U’.  i_receivers-sndex  = ‘X’.     ” Express-Mail  APPEND i_receivers.

objpara-name = ‘SPI’.  objpara-low  = wspoolnumber.  APPEND objpara.

CALL FUNCTION ‘SO_OBJECT_SEND’       EXPORTING            object_hd_change           = object_hd_change            object_type                = ‘RAW’            owner                      = sy-uname       TABLES            objcont                    = i_text            receivers                  = i_receivers       EXCEPTIONS       active_user_not_exist            = 1       communication_failure            = 2       component_not_available          = 3       folder_not_exist                 = 4       folder_no_authorization          = 5       forwarder_not_exist              = 6       note_not_exist                   = 7       object_not_exist                 = 8       object_not_sent                  = 9       object_no_authorization          = 10       object_type_not_exist            = 11       operation_no_authorization       = 12       owner_not_exist                  = 13       parameter_error                  = 14       substitute_not_active            = 15       substitute_not_defined           = 16       system_failure                   = 17       too_much_receivers               = 18       user_not_exist                   = 19       originator_not_exist             = 20       x_error                          = 21       OTHERS                           = 22.
IF sy-subrc <> 0.    WRITE: /’Error al enviar el mail’.    MESSAGE ID sy-msgid TYPE ‘S’ NUMBER sy-msgno            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.  ENDIF.  COMMIT WORK.





Calculadora – Abap

2 08 2010
REPORT  zcalculadora.
DATA: x_value(15) TYPE c.
CALL FUNCTION ‘FITRV_CALCULATOR’
* EXPORTING
*   INPUT_VALUE                =
*   CURRENCY                   =
*   START_COLUMN               = ’10′
*   START_ROW                  = ’10′
IMPORTING
output_value               = x_value
EXCEPTIONS
invalid_input              = 1
calculation_canceled       = 2
OTHERS                     = 3.
IF sy-subrc = 0.  ”En este ejemplo imprimimos por pantalla el resultado
WRITE:/ ‘Output Value ‘, x_value.
ENDIF.

REPORT  zcalculadora.
DATA: x_value(15) TYPE c.
CALL FUNCTION ‘FITRV_CALCULATOR’* EXPORTING*   INPUT_VALUE                =*   CURRENCY                   =*   START_COLUMN               = ’10′*   START_ROW                  = ’10′  IMPORTING    output_value               = x_value  EXCEPTIONS    invalid_input              = 1    calculation_canceled       = 2    OTHERS                     = 3.
IF sy-subrc = 0.  ”En este ejemplo imprimimos por pantalla el resultado  WRITE:/ ‘Output Value ‘, x_value.ENDIF.





Campo de Password – Abap

2 08 2010
REPORT ZCBPRUEBA3 .
PARAMETERS: P_PASSWD(8) MODIF ID VER.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = ‘VER’.
SCREEN-INVISIBLE = ’1′.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
END-OF-SELECTION.

REPORT ZCBPRUEBA3 .
PARAMETERS: P_PASSWD(8) MODIF ID VER.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.  IF SCREEN-GROUP1 = ‘VER’.
SCREEN-INVISIBLE = ’1′.      MODIFY SCREEN.    ENDIF.  ENDLOOP.
END-OF-SELECTION.





TRATAMIENTOS DE FICHEROS EN ABAP: NOMBRE DE LA RUTA SUBIR, SUBIR, ABRIR BAJAR, UPLOAD OPEN CLOSE DOWNLOAD FILES FOLDER LOG

2 08 2010

*IMPORTANTE - OPTIMIZACION DE CODIGO ISO:
*- LA SENTECIA TABLES ESTA OBSOLETA, NO USAR.
*- VERIFICAR QUE LA FUNCIÓN ESTÉ LIBERADA PARA USARLA.
*La información anterior y más en –> Optimización Código Abap ( Estándar ISO – Best Practices )
*PARA CONSEGUIR LOS TIPOS DE DATOS:
*SE37 poner el nombre de la función, o en el editor picar dos veces sobre la *función y luego: en PARAMETROS, EXPORTING, IMPORTING, TABLES: Mirar el TYPE o* *TYPE REF.
*

***** Pantalla de Selección *****

SELECTION-SCREEN: BEGIN OF BLOCK datos1 WITH FRAME TITLE text-002.

PARAMETER carchivo(128) TYPE c OBLIGATORY.  ” Archivo

*  PARAMETER carchivo  like HRP1000-STEXT OBLIGATORY.  ” Archivo

SELECTION-SCREEN: END OF BLOCK datos1.

INITIALIZATION.

clear carchivo2.
break rfrusciante.
IF sy-host = ’rmcadev’.
carchivo = ’/tmp/’.
endif.
IF sy-host EQ ’rmcaqa’.
carchivo = ’/ABAP/INTERFAZ/AVERIAS/TAS/ENTRANTE/’.

concatenate ’AVERIAS’ SY-DATUM SY-UZEIT INTO CARCHIVO2
SEPARATED BY ’_’.

CONCATENATE CARCHIVO CARCHIVO2 ’.txt’ INTO CARCHIVO.
endif.

************************************************************************
*      Form  LEER_ARCHIVO                                              *
************************************************************************
*    Abre la conexión para poder leer el archivo plano.                *
************************************************************************

FORM leer_archivo  USING    p_carchivo.

DATA:   filetable    TYPE filetable,
wa_filetable LIKE file_table,
filefilter   TYPE string,
l_rc         TYPE i,
user_action  TYPE i,
ls_path      TYPE string.

CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
default_extension = ’txt’
file_filter       = filefilter
initial_directory = ls_path
CHANGING
file_table        = filetable
rc                = l_rc
user_action       = user_action
EXCEPTIONS
OTHERS            = 1.
IF user_action EQ 0.
READ TABLE filetable INTO wa_filetable INDEX 1.
MOVE: wa_filetable-filename TO p_carchivo.
REFRESH filetable.
ENDIF.

ENDFORM.                    ” leer_archivo

***********************************************************************
*                  FORM  SUBIRDATOS                                   *
***********************************************************************
* Se extraen los datos contenidos en al archivo plano TAS¨            *
* —->                                                               *
* carchivo: nombre del archivo plano                                  *
* <—-                                                               *
* record: Tabla interna con los datos del archivo plano.              *
***********************************************************************
FORM subirdatos .

*——Autorizacion para lectura tabla ZCOD_CANCELACION.

*AUTHORITY-CHECK OBJECT ’S_TABU_DIS’
*           ID ’DICBERCLS’ FIELD ’ZR02′
*           ID ’ACTVT’ FIELD ’03′.
*
*  if sy-subrc EQ 4.
*    message i920.
*    LEAVE TO TRANSACTION SY-TCODE AND SKIP FIRST SCREEN.
*  elseif sy-subrc NE 0..
*    message i921.
*     LEAVE TO TRANSACTION SY-TCODE AND SKIP FIRST SCREEN.
*  endif.

translate carchivo to lower case.
IF carchivo IS NOT INITIAL.

open dataset carchivo
for input in text mode encoding default.
if sy-subrc EQ 0.
do.
read dataset carchivo into wa_record.
if sy-subrc NE 0.
exit.
endif.
move-corresponding wa_record to record.
append record.
enddo.
endif.
close dataset carchivo.

*Utilizamos la funcion WS_UPLOAD para traernos los datos del archivo
*plano
*    CALL FUNCTION ’WS_UPLOAD’
*      EXPORTING
*        filename = carchivo
*        filetype = ’DAT’
*      TABLES
*        data_tab = record.
*    IF sy-subrc <> 0.
*      MESSAGE i368(00) WITH ’No se pudo cargar el archivo 1, verifique’
*.
*      error = ’X’.
*    ENDIF.
ENDIF.

ENDFORM.                    ” subirdatos

*  CALL FUNCTION ’WS_DOWNLOAD’
*      EXPORTING
**         BIN_FILESIZE        = ’ ’
**         CODEPAGE            = ’ ’
*           filename            = carchivo
*           filetype            = ’DAT’
**         filetype            = ’WK1′
**         MODE                = ’ ’
**         WK1_N_FORMAT        = ’ ’
**         WK1_N_SIZE          = ’ ’
**         WK1_T_FORMAT        = ’ ’
**         WK1_T_SIZE          = ’ ’
**         COL_SELECT          = ’ ’
**         COL_SELECTMASK      = ’ ’
**     importing
**          filelength          =
*      TABLES
*           data_tab            = t_itab3
**         FIELDNAMES          =
*      EXCEPTIONS
*           file_open_error     = 1
*           file_write_error    = 2
*           invalid_filesize    = 3
*           invalid_table_width = 4
*           invalid_type        = 5
*           no_batch            = 6
*           unknown_error       = 7
*           OTHERS              = 8.

************************************************************************
******     ESTRUCTURA RLGRAP NECESARIA PARA LOS ARCHIVOS           *****
************************************************************************
DATA: FILETYPE     TYPE RLGRAP-FILETYPE.
DATA: P_FICHERO   TYPE RLGRAP-FILENAME VALUE ’C:\EDITORIALES.TXT’.
SELECTION-SCREEN BEGIN OF BLOCK B1.
************************************************************************
******     ESTRUCTURA RLGRAP NECESARIA PARA LOS ARCHIVOS           *****
************************************************************************
PARAMETER: FICHERO TYPE RLGRAP-FILENAME DEFAULT ’C:\SOCIOS.TXT’.
************************************************************************
SELECTION-SCREEN END OF BLOCK B1.

*Conseguimos LA RUTA DE ACCESO AL FICHERO
*&———————————————————————*
*&      Form  EXAMINADOR_ARCHIVOS
*&———————————————————————*
*       text
*———————————————————————-*
*      –>P_FICHERO  text
*———————————————————————-*
FORM EXAMINADOR_ARCHIVOS  USING    P_FICHERO.
CALL FUNCTION ’WS_FILENAME_GET’
EXPORTING
DEF_PATH               = ’C:\’

MASK                   = ’.txt,*.*.’
MODE                   = ’o’
TITLE                  = ’Búsqueda del ficheros….’
IMPORTING
FILENAME               = P_FICHERO
EXCEPTIONS
INV_WINSYS             = 1
NO_BATCH               = 2
SELECTION_CANCEL       = 3
SELECTION_ERROR        = 4
OTHERS                 = 5.
IF SY-SUBRC <> 0.
*       MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
endform.

*Conseguimos EL FICHERO, LO CARGAMOS SOBRE UNA TABLA INTERNA.
************************************************************************
******                       ’ASC’ -> ASCII                        *****
************************************************************************
FILETYPE = ’ASC’.
CALL FUNCTION ’WS_UPLOAD’
EXPORTING
FILENAME                      = P_FICHERO
FILETYPE                      = FILETYPE
TABLES
DATA_TAB                      = IT_UPLOAD.
LOOP AT IT_UPLOAD.
WRITE:/ IT_UPLOAD-COD_LIBRO,
IT_UPLOAD-NUM_EJEMPLAR,
IT_UPLOAD-COD_SOCIO,
IT_UPLOAD-FECHA_PRESTAMO,
IT_UPLOAD-FECHA_DEVOLUCION.
ENDLOOP.
ENDFORM.

*Guardamos EL FICHERO CON LA TABLA INTERNA ACTUALIZADA.
************************************************************************
******                       ’ASC’ -> ASCII                        *****
************************************************************************
IT_DOWNLOAD[] = IT_UPLOAD[].
FILETYPE = ’ASC’.
CALL FUNCTION ’WS_DOWNLOAD’
EXPORTING
FILENAME                      = FICHERO
FILETYPE                      = FILETYPE
TABLES
DATA_TAB                      = IT_DOWNLOAD.
LOOP AT IT_SOCIOS.
WRITE:/ IT_SOCIOS-CODSOC, IT_SOCIOS-NOMBRE.
ENDLOOP.
*  CALL FUNCTION ’WS_DOWNLOAD’
*      EXPORTING
**         BIN_FILESIZE        = ’ ’
**         CODEPAGE            = ’ ’
*           filename            = carchivo
*           filetype            = ’DAT’
**         filetype            = ’WK1′
**         MODE                = ’ ’
**         WK1_N_FORMAT        = ’ ’
**         WK1_N_SIZE          = ’ ’
**         WK1_T_FORMAT        = ’ ’
**         WK1_T_SIZE          = ’ ’
**         COL_SELECT          = ’ ’
**         COL_SELECTMASK      = ’ ’
**     importing
**          filelength          =
*      TABLES
*           data_tab            = t_itab3
**         FIELDNAMES          =
*      EXCEPTIONS
*           file_open_error     = 1
*           file_write_error    = 2
*           invalid_filesize    = 3
*           invalid_table_width = 4
*           invalid_type        = 5
*           no_batch            = 6
*           unknown_error       = 7
*           OTHERS              = 8.

*ESTO ES EN CASO QUE SE QUIERA TRATAR LA TABLA QUE HAS SUBIDO, ES SOLO UN EJEMPLO, *SE PUEDE TRATAR LA TABLA RECOGIDA DESDE EL FICHERO COMO UNO DESEE.

*&———————————————————————*
*&      Form  trata_error
*&———————————————————————*
*       text
*———————————————————————-*
*      –>P_TEXT_E01  text
*      –>P_SW_ERR  text
*———————————————————————-*
FORM trata_error  USING    texto sw_e mensaje1 linea  mensaje2 Campo valor.
DATA: l TYPE i.

READ TABLE t_file_aux WITH KEY lifnr = t_file-lifnr.

l = STRLEN( t_error-descripcion ) + 1.
t_error-lifnr = t_file_aux-lifnr.
t_error-linea = sy-tabix.
t_error-mensaje1 = ’ linea ’.
t_error-campo = campo.
t_error-mensaje2 = ’ campo ’.
t_error-valor = valor.
MOVE p_texto TO t_error-descripcion+l.
*insert t_error.
APPEND t_error.
CLEAR: t_error, p_texto.
*  CONCATENATE p_texto skip WA_T_FILE into t_error-descripcion.

sw_e = ’X’.
“ trata_error








Seguir

Get every new post delivered to your Inbox.