Ver Mensaje Individual
  #6  
Viejo 23/09/16, 11:06:17
AlvaroLV AlvaroLV is offline
Junior Member
 
Fecha de Ingreso: feb 2016
Mensajes: 6
Cambios

Yo creo que te estás complicando la vida, aparte, hay un error en el código.

El tipo registro no hace falta que lo tipifiques, con que al declararlo pongas lo siguiente, sobra.


De esta forma te va a coger el mismo tipo del que sea la tabla sin necesidad de ponerle tipo. Si acaso, el problema de tu código es que has puesto INTO en lugar de ASSIGNING y que, además, deberías añadir el campo al tipo del que sea la tabla grande.

No sé si es necesario o te has empeñado, por el hecho de usar FIELD-SYMBOLS, que los tipos sean dinámicos, pero ese código se simplificaría mucho haciéndolo de la siguiente forma:

Declaraciones

Lógica:

Por otra parte, este código tiene un error funcional grave, y es que la relación BKPF-->BSEG no es 1:1 sino 1:n y, a lo mejor, el registro que estás consultando en la BSEG no es el que tiene el documento de compensación que estás buscando, con lo cual no recomiendo que hagas lo que estás poniendo, pero si es eso lo que quieres, la mejor forma de hacerlo es la siguiente, sin meter SELECTs dentro de LOOPs (esto no se hace si no es estrictamente necesario) y usando el FOR ALL ENTRIES (también puedes hacer alguna JOIN, el tema rendimiento los puedes comprobar antes) que para eso está:

Definiciones:

Lógica:
Responder Con Cita