Ver la Versión Completa : Error que no puedo identificar en ABAP
jcortegana1993
06/04/16, 22:18:41
Estoy intentando crear un archivo de texto plano a partir de un reporte ya creado, y al querer generar me sale el siguiente error, no se a que se debe en otro programa no ocaciona ningun error, que podria ser:
este es el error:
A line of "PI_SALDOS" and "GTD_DATA_SALDOS" are not mutually convertible. In a Unicode program, "PI_SALDOS" must have the same structure layout as "GTD_DATA_SALDOS". Irrespective of the length of a Unicode character. Unicode character.
Jesicka_21
07/04/16, 13:35:33
Buen día,
Podrías pasar el código así vemos exactamente que es lo que esta fallando? Tal vez sea cambiar un type por un like line of.
jcortegana1993
07/04/16, 15:35:32
*{@Jhohan
*&---------------------------------------------------------------------*
*& Form generar_archivos_control_sal
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PI_SALDOS text
*----------------------------------------------------------------------*
FORM generar_archivos_control_sal USING pi_saldos LIKE gtd_faglflext[].
DATA: ls_lines TYPE i, ls_reg(15) TYPE c, ls_hora(8) TYPE c,
ls_fecha LIKE sy-datum.
* PERFORM calcular_fecha CHANGING
ls_fecha = sy-datum.
* Archivo de control de saldos
CLEAR: ls_lines, ls_reg, ls_hora.
DESCRIBE TABLE pi_saldos LINES ls_lines.
ls_reg = ls_lines.
CONDENSE ls_reg. UNPACK ls_reg TO ls_reg.
CONCATENATE sy-uzeit+0(2) sy-uzeit+2(2) sy-uzeit+4(2)
INTO ls_hora SEPARATED BY ':'.
gtd_ctrl_sal-data+0(1) = space.
gtd_ctrl_sal-data+1(30) = space.
gtd_ctrl_sal-data+31(30) = space.
gtd_ctrl_sal-data+61(30) = space.
gtd_ctrl_sal-data+91(2) = '00'.
gtd_ctrl_sal-data+93(30) = space.
gtd_ctrl_sal-data+123(3) = '000'.
gtd_ctrl_sal-data+126(3) = '000'.
gtd_ctrl_sal-data+129(20) = ' 00000000000000.0000'.
gtd_ctrl_sal-data+149(15) = ls_reg.
gtd_ctrl_sal-data+164(8) = ls_fecha.
gtd_ctrl_sal-data+172(8) = ls_hora.
APPEND gtd_ctrl_sal.
CLEAR gtd_ctrl_sal.
ENDFORM. "generar_archivos_control_sal
*&---------------------------------------------------------------------*
*& Form descargar_archivos
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PI_SALDOS text
* -->PI_CTRL_SAL text
*----------------------------------------------------------------------*
FORM descargar_archivos USING pi_saldos LIKE gtd_faglflext[]
pi_ctrl_sal LIKE gtd_ctrl_sal[].
DATA: ls_directorio LIKE rlgrap-filename.
* Archivo de Saldos
CLEAR ls_directorio.
CONCATENATE gs_ruta gs_broad_sal '.TXT' INTO ls_directorio.
* OPEN DATASET ls_directorio FOR OUTPUT IN TEXT MODE ENCODING DEFAULT. "-@0003
OPEN DATASET ls_directorio FOR OUTPUT IN TEXT MODE ENCODING UNICODE
IGNORING CONVERSION ERRORS. "+@0003
LOOP AT pi_saldos INTO gtd_data_saldos.
TRANSFER gtd_data_saldos TO ls_directorio.
ENDLOOP.
CLOSE DATASET ls_directorio.
* Archivo de Contol de Saldos
CLEAR ls_directorio.
CONCATENATE gs_ruta gs_broad_sal '_CTRL.TXT' INTO ls_directorio.
* OPEN DATASET ls_directorio FOR OUTPUT IN TEXT MODE ENCODING DEFAULT "-@0003
OPEN DATASET ls_directorio FOR OUTPUT IN TEXT MODE ENCODING NON-UNICODE
IGNORING CONVERSION ERRORS. "+@0003
LOOP AT pi_ctrl_sal INTO gtd_data_ctrl_sal.
TRANSFER gtd_data_ctrl_sal TO ls_directorio.
ENDLOOP.
CLOSE DATASET ls_directorio.
ENDFORM. "descargar_archivos
*}@Jhohan
e intentado cambiarlo pero no se me sale el mismo error :(
Jesicka_21
07/04/16, 15:49:06
Como definiste gtd_data_saldos?
jcortegana1993
07/04/16, 16:02:18
*&--------------------------------------------------------------------&*
*& T A B L A S I N T E R N A S G L O B A L E S &*
*&--------------------------------------------------------------------&*
gtd_data_saldos TYPE ty_data_saldos WITH HEADER LINE,
*&--------------------------------------------------------------------&*
*& T I P O S T A B L A S G L O B A L E S &*
*&--------------------------------------------------------------------&*
TYPES: ty_data_saldos LIKE TABLE OF l_data_sal,
ty_ctrl_sal LIKE TABLE OF l_data_sal,
ty_data_ctrl_sal LIKE TABLE OF l_data_sal.
*&--------------------------------------------------------------------&*
*& T I P O S G L O B A L E S &*
*&--------------------------------------------------------------------&*
DATA: BEGIN OF l_data_sal,
data(990) TYPE c,
END OF l_data_sal.
Esa es la declaracion completa.
alvarops90
07/04/16, 17:07:24
Buenos días,
No he revisado el código entero pero estas haçaciendo un loop de PI_Datos en gtd _data_saldos ("LOOP AT pi_saldos INTO gtd_data_saldos").
Te has asegurado que a estructura de datos de pi_datos de tipo gtd_data_saldos? Puedes pasar donde has declarado pi_saldos?.
Un saludo.
Jesicka_21
07/04/16, 18:02:05
Para mi el problema es la declaración de esta línea (PI_SALDOS) el cual no estoy viendo en el código que mandaste.
Veo que PI_SALDOS tiene la siguiente declaración:
pi_saldos LIKE gtd_faglflext[]
No estoy viendo como esta armado gtd_faglflext. Pero puede ser que no este armado de la misma manera que gtd_data_saldos, ya que esta de la siguiente forma:
DATA: BEGIN OF l_data_sal,
data(990) TYPE c,
END OF l_data_sal.
Corrobora eso o seguimos investigando que puede ser. :)
jcortegana1993
07/04/16, 20:12:38
LLegue a ejecutar el programa pero al momento que entra al loop me gennera otro error
Err.tmpo.ejec. UC_OBJECTS_NOT_CHARLIKE
Fecha y hora 07.04.2016 15:04:49
y no manda los datos al archivo.
Jesicka_21
07/04/16, 20:42:31
Podrías probar con lo siguiente:
data: ls_string(1000).
LOOP AT pi_saldos
INTO gtd_data_saldos.
CALL METHOD cl_abap_container_utilities=>fill_container_c
EXPORTING
im_value = gtd_data_saldos
IMPORTING
ex_container = ls_string
EXCEPTIONS
illegal_parameter_type = 1
OTHERS = 2.
IF sy-subrc is initial.
TRANSFER ls_string
TO ls_directorio.
ENDIF.
ENDLOOP.
jcortegana1993
08/04/16, 15:23:51
Ejecuto y si me convierte los datos con la función que mandaste pero me sale el siguiente erro:
"/xcom_rep/GAFI/salida/30/SALDOS1.TXT" ist nicht geöffnet.
Jesicka_21
08/04/16, 17:07:54
Ejecuto y si me convierte los datos con la función que mandaste pero me sale el siguiente erro:
"/xcom_rep/GAFI/salida/30/SALDOS1.TXT" ist nicht geöffnet.
Tenes permiso para entrar a esa carpeta? Es la dir correcta?
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web