Problemas con loop y field symbol

sap-abap
Etiquetas: #<Tag:0x00007fb8ddab0958>

#1

Tengo el siguiente problema:

Poseo 2 tablas internas, para el momento de la consulta, una tabla (it_cal_prec) tiene 2 registros, ambos registros con 2 registros, y la otra (it_cc) posee 5 registros. En la busqueda de una consulta hago un doble loop uno para it_cal_prec donde traere datos para la consulta en el 2do loop con it_cc.

la tabla it_cal_prec posee los siguientes registros:

la tabla it_cc posee 5 registros que se ejecuran en el 2do loop

*&      Form  BUSCAR_CANAL
*&---------------------------------------------------------------------*
*       Proceso para la busqueda de valores en canales comerciales
*----------------------------------------------------------------------*
*      -->P_0418   ZPVJ
*      -->P_0419   PVJ       

*----------------------------------------------------------------------*
FORM buscar_canal_comercial  USING    value(p_0418)
                            value(p_0419).
  LOOP AT it_cal_prec ASSIGNING <fs_cal_prec>.

    LOOP AT it_cc.
      v_pos = sy-tabix.
      SELECT

        ko~kbetr

        INTO v_kbert
        FROM
            a913 AS a
        INNER JOIN
            konp AS ko
        ON
          a~knumh = ko~knumh
          UP TO 1 ROWS
        WHERE
          a~datab <= p_fech AND
          a~datbi >= p_fech AND
          a~kschl = p_0418 AND
          a~matnr = it_cal_prec-matnr AND
          a~vkorg = p_orgvta AND
          a~kvgr1 = it_cc-kvgr1
          ORDER BY a~datbi DESCENDING.
        ENDSELECT.
      v_campo = '<fs_cal_prec>-' && p_0419 && '_' && v_pos.
      ASSIGN (v_campo) TO <campo>.

      <campo> = v_kbert.

    ENDLOOP.


  ENDLOOP.
ENDFORM.

al momento de terminar los 2 loops veo que me carga it_cal_prec-matnr con el mismo valor 2 veces, cuando en mi it_cal_prec en el campo matnr posee 2 valores, es decir, no cambia el valor de matnr, por ende me carga los valores 2 veces. Alguna solucion?


#2

Resuelto por error propio:

NO DEBE SER
a~matnr = it_cal_prec-matnr

DEBE SER
a~matnr = < fs_cal_prec >-matnr


#3