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 23/11/07, 11:59:21
Avatar de Daniela Gutierrez
Daniela Gutierrez Daniela Gutierrez is offline
Junior Member
 
Fecha de Ingreso: ene 2007
Localización: Venezuela
Mensajes: 11
Question Problemas con MODIFY

Hola Chicos,
aqui les tengo una consulta de objeto, fijence en un programa estoy creando una tabla interna dinamica, eso esta fino, pero dicha tabla como es dinamica el field-symbol lo declare type any table, y yo estoy manipulando los registros de esta tabla y necesito modificar algunos campos en ella. Qué pasa? cuando le aplico el modify a <l_table> no me lo permite por ser ANY TABLE y el modify no se permite para estos tipo de datos ni para las hashed. Se los pongo abajo:

FIELD-SYMBOLS: <l_table> TYPE ANY TABLE,

<l_line> TYPE ANY,



MOVE-CORRESPONDING <l_line> TO <l_table>.

MODIFY <l_table>.

Error sintaxis: You cannot use explicit or implicit index operations on tables with types "HASHED TABLE" or "ANY TABLE". "<L_TABLE>" has the type "ANY TABLE".
It is possible that before "<L_TABLE>".

Mi pregunta es: qué podre hacer para lograr esto?
__________________
Daniela Gutierrez
Consultor ABAP

Venezuela
Responder Con Cita
  #2  
Viejo 23/11/07, 12:51:24
Ignatius Ignatius is offline
Junior Member
 
Fecha de Ingreso: nov 2007
Mensajes: 15
Daniela,

Hiciste un ASSIGN?

Fijate en el esta página que hay un ejemplo:

Responder Con Cita
  #3  
Viejo 23/11/07, 12:58:51
Avatar de Daniela Gutierrez
Daniela Gutierrez Daniela Gutierrez is offline
Junior Member
 
Fecha de Ingreso: ene 2007
Localización: Venezuela
Mensajes: 11
Question Problemas con Modify

Si, toda mi tabla dinamica y work area corre perfectamente, lo que pasa es que no te copie todo el codigo, te lo pongo abajo, el problema esta es cuando quiero modificar mi tabla transparente de mi work area, fijate:

REPORT z5_convert_tabla.

TYPE-POOLS: slis.

TABLES: dd03p.

DATA: it_fcat TYPE slis_t_fieldcat_alv,
is_fcat LIKE LINE OF it_fcat,
nametab TYPE slis_tabname.

DATA: it_fieldcat TYPE lvc_t_fcat,
is_fieldcat LIKE LINE OF it_fieldcat.

DATA: new_table TYPE REF TO data.
DATA: new_line TYPE REF TO data.

FIELD-SYMBOLS: <l_table> TYPE ANY TABLE,
<l_line> TYPE ANY,
<monto> TYPE ANY,
<campo> TYPE ANY,
<l_field> TYPE ANY.

*//Pantallas.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_tabla TYPE tabname16.
SELECT-OPTIONS: s_campos FOR dd03p-fieldname NO INTERVALS.
SELECTION-SCREEN END OF BLOCK b1.

*// Catalogo
nametab = p_tabla.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = nametab
CHANGING
ct_fieldcat = it_fcat[].

LOOP AT it_fcat INTO is_fcat WHERE NOT reptext_ddic IS INITIAL.
MOVE-CORRESPONDING is_fcat TO is_fieldcat.
is_fieldcat-fieldname = is_fcat-fieldname.
is_fieldcat-ref_field = is_fcat-fieldname.
is_fieldcat-ref_table = is_fcat-ref_tabname.
APPEND is_fieldcat TO it_fieldcat.
ENDLOOP.

break dgutierrez.

*// Crear tabla interna dinámica.
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fieldcat
IMPORTING
ep_table = new_table.


*// Crear area de trabajo de la estrcutura de la misma tabla.
ASSIGN new_table->* TO <l_table>.
CREATE DATA new_line LIKE LINE OF <l_table>.
ASSIGN new_line->* TO <l_line>.



*//Busqueda de datos a convertir.
SELECT * FROM (p_tabla)
INTO CORRESPONDING FIELDS OF TABLE <l_table>.
break dgutierrez.
break atravascio.

DATA: var(100),
cal(15) TYPE c.


*//Conversión de datos.
LOOP AT <l_table> INTO <l_line>.
LOOP AT s_campos.
ASSIGN COMPONENT s_campos-low OF STRUCTURE <l_line> TO <l_field>.
<l_field> = <l_field> / 1000.
MODIFY (nametab) from <l_field>.
ENDLOOP.
ENDLOOP.

Esto me da un error en tiempo de ejecución (dump) : SAPSQL_WA_TOO_SMALL
__________________
Daniela Gutierrez
Consultor ABAP

Venezuela
Responder Con Cita
  #4  
Viejo 23/11/07, 13:32:56
Ignatius Ignatius is offline
Junior Member
 
Fecha de Ingreso: nov 2007
Mensajes: 15
Daniela,

Probé tu programa y me tira otro dump. Probablemente sea por la tabla y el campo con el que lo estoy ejecutando: como falla el ASSIGN, en la instrucción siguiente me tira un DUMP. Con qué tipo de campo lo estás probando vos?

Igualmente, lo que noto es que vos a <l_field> le estás asignando s_campos-low y después intentás hacer el MODIFY con ese mismo field-symbol... y como ese field-symbol tiene asignado un campo que no es del mismo tipo que la estructura de la tabla está tirando el dump. Fijate que el dump dice que el Work Area de la estructura es muy chico.

Cuando hacés el modify, usá una estructura del tipo de la tabla, y a esa estructura copiale el valor que querés cargar.

Espero que te sirva...
Responder Con Cita
  #5  
Viejo 23/11/07, 13:43:34
Avatar de Daniela Gutierrez
Daniela Gutierrez Daniela Gutierrez is offline
Junior Member
 
Fecha de Ingreso: ene 2007
Localización: Venezuela
Mensajes: 11
Problemas MODIFY

Tienes razon, fue que te lo copie mal. aqui esta cambiado.
*//Conversión de datos.
LOOP AT <l_table> INTO <l_line>.
LOOP AT s_campos.
ASSIGN COMPONENT s_campos-low OF STRUCTURE <l_line> TO <l_field>.
<l_field> = <l_field> / 1000.
MODIFY (nametab) from <l_line>.
ENDLOOP.
ENDLOOP.
Pero de igual manera me sigue dando el mismo dump: SAPSQL_WA_TOO_SMALL
Lo estoy probando con :
Nombre tabla: BSEG.
Campo : DMBTR.
Si, terrible mi prueba utilizando la BSEG jejej, pero este solo lo voy a utilizar con tablas Z.
__________________
Daniela Gutierrez
Consultor ABAP

Venezuela
Responder Con Cita
  #6  
Viejo 23/11/07, 14:15:30
Ignatius Ignatius is offline
Junior Member
 
Fecha de Ingreso: nov 2007
Mensajes: 15
Acabo de ver lo que está pasando...

Dentro del código hacés el siguiente loop:
LOOP AT it_fcat INTO is_fcat WHERE NOT reptext_ddic IS INITIAL.
MOVE-CORRESPONDING is_fcat TO is_fieldcat.
is_fieldcat-fieldname = is_fcat-fieldname.
is_fieldcat-ref_field = is_fcat-fieldname.
is_fieldcat-ref_table = is_fcat-ref_tabname.
APPEND is_fieldcat TO it_fieldcat.
ENDLOOP.

Y en base a eso creás it_fieldcat. El problema es que en ese loop no estás tomando todos los campos porque los que tienen el campo reptext_ddic vacío no entran. Entonces, la estructura te queda incompleta y por eso da ese dump cuando intentás hacer el modify. Si le sacás esa condición al loop no te va a tirar más el dump.

Decime si te sirvió!
Responder Con Cita
  #7  
Viejo 23/11/07, 16:28:25
Avatar de Daniela Gutierrez
Daniela Gutierrez Daniela Gutierrez is offline
Junior Member
 
Fecha de Ingreso: ene 2007
Localización: Venezuela
Mensajes: 11
Talking Solución Problema

Pues te cuento, tque tienes mucha razón, no lo habia visto y tenia 2 días en esto. jejejej, muchas gracias!!!
__________________
Daniela Gutierrez
Consultor ABAP

Venezuela
Responder Con Cita
  #8  
Viejo 23/11/07, 17:03:20
Ignatius Ignatius is offline
Junior Member
 
Fecha de Ingreso: nov 2007
Mensajes: 15
Me alegro que se haya solucionado el problema!

Saludos
Responder Con Cita
  #9  
Viejo 13/04/11, 13:38:13
Magdalena7 Magdalena7 is offline
Junior Member
 
Fecha de Ingreso: ene 2011
Mensajes: 1
Va01

Buen día abapers, quisiera hacerles una consulta a ver si alguien me puede ayudar. Me pasaron un requerimiento en el cual lo que me piden es que al ejecutar la transacción va01 se ingrese un importe, pero en caso de que el usuario le de click al boton back y lo modifique a dicho importe, se pueda tener acceso a ambos. Tanto el importe viejo, como el nuevo.
Dichos valores quieren poder verlos en el momento de hacer click en el botón save.
Estuve analizando un poco, y si bien tengo acceso a las exits que se ejecutan en el momento de modificar dicho valor y de guardar, no me sirve porque la misma llama a una subscreen con lo cual se pierde los valores globales.

No se si entiende, si a alguien se le ocurre como mantener esos valores globalmente se los agradezco mucho.

Aguardo sugerencias,

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 10:39:31.


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