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 09/05/12, 18:15:16
feredgar feredgar is offline
Junior Member
 
Fecha de Ingreso: ene 2012
Mensajes: 5
Errores en tiempo de ejecución ABAP

Hola:

estoy generando un reporte en una transacción Zeta el cual al filtrarlo con un rango amplio de proveedores por ejemplo, me marca un error en tiempo de ejecución... este mismo reporte si lo genero por uno o pocos proveedores me lo genera bien... a alguien le ha pasado? como puedo corregirlo? el error es:

Err.tmpo.ejec. BCD_FIELD_OVERFLOW
Excep. CX_SY_CONVERSION_OVERFLOW
Fecha y hora 09.05.2012 12:34:32



Texto breve
A calculation field is defined too small.



¿Qué ha sucedido?
Error in the ABAP Application Program

The current ABAP program "SAPLZMZA" had to be terminated because it has
come across a statement that unfortunately cannot be executed.



¿Qué puede hacer?
Note down which actions and inputs caused the error.


To process the problem further, contact you SAP system
administrator.

Using Transaction ST22 for ABAP Dump Analysis, you can look
at and manage termination messages, and you can also
keep them for a long time.



Anál.errores
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_SY_CONVERSION_OVERFLOW', was not
caught in
procedure "ZMM_CALC_DIAS_INVENTARIO" "(FUNCTION)", nor was it propagated by a
RAISING clause.
Since the caller of the procedure could not have anticipated that the
exception would occur, the current program is terminated.
The reason for the exception is:
A value generated during processing is too large for the
field "E_DINV" of the program "SAPLZMZA".



as para corregir errores
It may be possible to divide the current process into
smaller units, so that only smaller values occur.
Otherwise, as a long-term solution, define the field "E_DINV"
larger.


If the error occures in a non-modified SAP program, you may be able to
find an interim solution in an SAP Note.
If you have access to SAP Notes, carry out a search with the following
keywords:

"BCD_FIELD_OVERFLOW" "CX_SY_CONVERSION_OVERFLOW"
"SAPLZMZA" or "LZMZAU02"
"ZMM_CALC_DIAS_INVENTARIO"

If you cannot solve the problem yourself and want to send an error
notification to SAP, include the following information:

1. The description of the current problem (short dump)

To save the description, choose "System->List->Save->Local File
(Unconverted)".
2. Corresponding system log

Display the system log by calling transaction SM21.
Restrict the time interval to 10 minutes before and five minutes
after the short dump. Then choose "System->List->Save->Local File
(Unconverted)".

3. If the problem occurs in a problem of your own or a modified SAP
program: The source code of the program
In the editor, choose "Utilities->More
Utilities->Upload/Download->Download".

4. Details about the conditions under which the error occurred or which
actions and input led to the error.

The exception must either be prevented, caught within proedure
"ZMM_CALC_DIAS_INVENTARIO" "(FUNCTION)", or its possible occurrence must be
declared in the
RAISING clause of the procedure.
To prevent the exception, note the following:

Gracias....
Responder Con Cita
  #2  
Viejo 09/05/12, 19:32:37
Avatar de DCErick
DCErick DCErick is offline
Moderator
 
Fecha de Ingreso: mar 2006
Localización: Monterrey
Mensajes: 1,090

Dile a tu ABAP que te lo arregle .
__________________
-------------------
¿Dudas para descargar manuales? Ver este tema ->
Responder Con Cita
  #3  
Viejo 10/05/12, 16:09:24
Duarco Duarco is offline
Member
 
Fecha de Ingreso: jun 2009
Mensajes: 54
Thumbs up

Al parecer tu error esta en que hay alguna consulta donde se usan demasiados datos para filtrar la informacion, en este caso parece ser el campo E_DINV, Intena buscar una forma donde la consulta se filtre por rangos de seleccion, es decir, en lugar de filtrar por:

Campo = 1
Campo = 2
Campo = 3
Campo = 4
Campo = 5

filtra:

Campo este entre 1 y 5


espero haber sido de ayuda....
Responder Con Cita
  #4  
Viejo 15/05/12, 23:45:17
feredgar feredgar is offline
Junior Member
 
Fecha de Ingreso: ene 2012
Mensajes: 5
Gracias, ese campo lo tengo dentro de una función y ahi esta tronando... aunque filtre por rangos, ya hice la prueba... voy a tener que verlo con un abap....
Saludos.
Responder Con Cita
  #5  
Viejo 15/05/12, 23:50:45
feredgar feredgar is offline
Junior Member
 
Fecha de Ingreso: ene 2012
Mensajes: 5
En sí me están sucediendo dos casos en dos transaccioens diferentes. En el primero es una tx ZETA y el detalle del error dice:

----------------------------------------------------------------------------------------------------
|Info posición de cancelación |
| Termination occurred in the ABAP program "SAPLZMZA" - in |
| "ZMM_CALC_DIAS_INVENTARIO". |
| The main program was "ZMM_DATOS_COMPRAS_1_BK ". |
| |
| In the source code you have the termination point in line 345 |
| of the (Include) program "LZMZAU02". |
| The termination is caused because exception "CX_SY_CONVERSION_OVERFLOW" |
| occurred in |
| procedure "ZMM_CALC_DIAS_INVENTARIO" "(FUNCTION)", but it was neither handled |
| locally nor declared |
| in the RAISING clause of its signature. |
| |
| The procedure is in program "SAPLZMZA "; its source code begins in line |
| 1 of the (Include program "LZMZAU02 ". |
----------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------
|Detalle código fuente |
----------------------------------------------------------------------------------------------------
|Lín. |Txt.fte. |
----------------------------------------------------------------------------------------------------
| 315| CLEAR: w_sales, w_max_sales. |
| 316| |
| 317| |
| 318|*Venta diaria = ( Acumulado de venta de las últimas 4 semanas ) / 28 días (valor fijo). |
| 319| w_vta_diaria = t_sales / ( i_wnumb * 7 ). |
| 320|*Existencia actual en días = ( Existencia en piezas + Stock tránsito ) / Venta diaria |
| 321| CATCH SYSTEM-EXCEPTIONS bcd_zerodivide = 1 |
| 322| compute_bcd_overflow = 2. |
| 323| w_exis_dias = ( existencia + stock ) / w_vta_diaria. |
| 324| ENDCATCH. |
| 325|*Inventario en días = Existencia actual en días – Tiempo de entrega del proveedor. |
| 326|******************** BEGIN OF DELETE JARC 09032012 ********************* |
| 327|** w_invent_dias = w_exis_dias - tiempo_entrega. |
| 328|********************* END OF DELETE JARC 09032012 ********************** |
| 329|******************** BEGIN OF INSERT JARC 09032012 ********************* |
| 330| w_invent_dias = w_exis_dias. |
| 331|********************* END OF INSERT JARC 09032012 ********************** |
| 332|*Pedido en días = ( Cantidad pedida) / Venta diaria ) + Cantidad en pedidos pendientes de re|
| 333| READ TABLE it_matp WITH KEY matnr = i_matnr. |
| 334| CATCH SYSTEM-EXCEPTIONS bcd_zerodivide = 1 |
| 335| compute_bcd_overflow = 2. |
| 336| w_pedido_dias = ( it_matp-menge ) / w_vta_diaria. |
| 337| ENDCATCH. |
| 338|* Días de Inventario = Inventario en días + Pedido en días |
| 339| w_dias_invent = w_invent_dias + w_pedido_dias. |
| 340| |
| 341| IF w_dias_invent < 0. |
| 342| CLEAR w_dias_invent. |
| 343| ENDIF. |
| 344| |
|>>>>>| MOVE: w_dias_invent TO e_dinv, |
| 346| w_vta_diaria TO e_vtad, |
| 347| existencia TO e_stock, |
| 348| stock TO e_stktr, |
| 349| it_matp-menge TO e_ppend. |
| 350| |
| 351| CLEAR: t_sales. |
| 352| |
| 353|ENDFUNCTION. |
----------------------------------------------------------------------------------------------------

en la segunda tx es la mb51 y el detalle con error es:
----------------------------------------------------------------------------------------------------
|Info posición de cancelación |
| Termination occurred in the ABAP program "RM07DOCS" - in "DATA_SELECTION". |
| The main program was "RM07DOCS ". |
| |
| In the source code you have the termination point in line 334 |
| of the (Include) program "RM07DOCS_GENERATED". |
| The termination is caused because exception "CX_SY_OPEN_SQL_DB" occurred in |
| procedure "DATA_SELECTION" "(FORM)", but it was neither handled locally nor |
| declared |
| in the RAISING clause of its signature. |
| |
| The procedure is in program "RM07DOCS "; its source code begins in line |
| 302 of the (Include program "RM07DOCS_GENERATED ". |
----------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------
|Detalle código fuente |
----------------------------------------------------------------------------------------------------
|Lín. |Txt.fte. |
----------------------------------------------------------------------------------------------------
| 304|* Data selection routine for standard access |
| 305| |
| 306|* process SELECT command depending on the |
| 307|* required material selection |
| 308| if g_cnt_matnr_total > 0 and |
| 309| g_cnt_matnr_total = g_cnt_matnr_i_eq. |
| 310|* work with .. for all entries ... |
| 311| select (g_t_fields) |
| 312| into corresponding fields of table itab |
| 313| from mkpf inner join mseg |
| 314| on mkpf~mandt = mseg~mandt |
| 315| and mkpf~mblnr = mseg~mblnr |
| 316| and mkpf~mjahr = mseg~mjahr |
| 317| for all entries in matnr |
| 318| where matnr = matnr-low |
| 319| and MKPF~BKTXT in BKTXT |
| 320| and MKPF~BUDAT in BUDAT |
| 321| and MSEG~BWART in BWART |
| 322| and MSEG~CHARG in CHARG |
| 323| and MSEG~EBELN in EBELN |
| 324| and MSEG~KUNNR in KUNNR |
| 325| and MSEG~LGORT in LGORT |
| 326| and MSEG~LIFNR in LIFNR |
| 327| and MSEG~SOBKZ in SOBKZ |
| 328| and MSEG~UMWRK in UMWRK |
| 329| and MKPF~USNAM in USNAM |
| 330| and MKPF~VGART in VGART |
| 331| and MSEG~WERKS in WERKS |
| 332| and MKPF~XBLNR in XBLNR |
| 333|. |
|>>>>>| else. |
| 335|* work with the select command as usual |
| 336| select (g_t_fields) |
| 337| into corresponding fields of table itab |
| 338| from mkpf inner join mseg |
| 339| on mkpf~mandt = mseg~mandt |
| 340| and mkpf~mblnr = mseg~mblnr |
| 341| and mkpf~mjahr = mseg~mjahr |
| 342| WHERE MKPF~BKTXT in BKTXT |
| 343| and MKPF~BUDAT in BUDAT |
| 344| and MSEG~BWART in BWART |
| 345| and MSEG~CHARG in CHARG |
| 346| and MSEG~EBELN in EBELN |
| 347| and MSEG~KUNNR in KUNNR |
| 348| and MSEG~LGORT in LGORT |
| 349| and MSEG~LIFNR in LIFNR |
| 350| and MSEG~MATNR in MATNR |
| 351| and MSEG~SOBKZ in SOBKZ |
| 352| and MSEG~UMWRK in UMWRK |
| 353| and MKPF~USNAM in USNAM |
----------------------------------------------------------------------------------------------------
Responder Con Cita
  #6  
Viejo 16/05/12, 14:39:17
Mari.Sole Mari.Sole is offline
Senior Member
 
Fecha de Ingreso: nov 2010
Localización: Argentina
Mensajes: 121
Hola Feredgar,
Con respecto a tu error en la transaccion Z deberías ver en la línea:

>>>>> MOVE: w_dias_invent TO e_dinv.

Seguramente el valor que está intentando mover de w_dias_invent a e_dinv es muy grande para el tipo de dato definido para variable receptora, por eso se produce el desbordamiento.
Cambiando el tipo de dato definido para E_DINV debería sortear dicho dump.
Para más seguridad puedes poner un breakpoint en esa línea de código y ver por debbug que valor intenta mover de una variable a otra y verificar esto que te comento.

Espero te sea útil la información.

Saludos.
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 23:48:03.


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