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:
|