Insertar linea con BDCDATA

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • xirir
    Junior Member
    • feb
    • 25

    #1

    Insertar linea con BDCDATA

    Hola,

    He leido todos los foros que conozco y aun no logro entender porque mi codigo no funciona como debería.

    El problema se encuentra en la parte de código que inserta una nueva linea (LINS). Cuando debugeo el programa, la tabla bdcdata se completa bien, pero cuando corre es como que no ejecute ese bdc_okcode.

    Por favor! Necesito ayuda. Estoy trabajando en SAP R/3 version 4.6C.

    Adjunto mi código. Solo hay que copiarlo y luego correrlo. Si alguien me puede decir cual es el problema estaría muuuuy agradecida.

    ********************************************

    REPORT ZPRU_1 .

    DATA: not TYPE CAUFV-AUFNR,
    wa_trx TYPE bdcdata,
    it_trx TYPE TABLE OF bdcdata.

    wa_trx-PROGRAM = 'RIAFRU20'.
    wa_trx-DYNPRO = '1000'.
    wa_trx-DYNBEGIN = 'X'.
    APPEND wa_trx TO it_trx.
    CLEAR wa_trx.

    wa_trx-FNAM = 'BDC_OKCODE'.
    wa_trx-FVAL = '%011'.
    APPEND wa_trx TO it_trx.

    CLEAR wa_trx.
    wa_trx-PROGRAM = 'SAPLALDB'.
    wa_trx-DYNPRO = '3000'.
    wa_trx-DYNBEGIN = 'X'.
    APPEND wa_trx TO it_trx.
    CLEAR wa_trx.

    SELECT AUFNR FROM CAUFV INTO not UP TO 20 ROWS WHERE AUTYP = '30'.

    wa_trx-FNAM = 'RSCSEL-SLOW_I(01)'.
    wa_trx-FVAL = not.
    APPEND wa_trx TO it_trx.

    wa_trx-FNAM = 'BDC_OKCODE'.
    wa_trx-FVAL = 'LINS'.
    APPEND wa_trx TO it_trx.

    ENDSELECT.

    wa_trx-FNAM = 'BDC_OKCODE'.
    wa_trx-FVAL = 'ACPT'.
    APPEND wa_trx TO it_trx.

    wa_trx-PROGRAM = 'RIAFRU20'.
    wa_trx-DYNPRO = '1000'.
    wa_trx-DYNBEGIN = 'X'.
    APPEND wa_trx TO it_trx.
    CLEAR wa_trx.

    wa_trx-FNAM = 'BDC_OKCODE'.
    wa_trx-FVAL = 'ONLI'.
    APPEND wa_trx TO it_trx.

    CALL TRANSACTION 'IW47' USING it_trx.

    ************************************************** **
  • DavidXD_XD
    Moderator
    • ago
    • 1255

    #2
    Hola ... casi nunca uso los batch (todavia no me toca un buen requerimiento con ello), pero creo q es porque la sentencia deberia ir completa, de esta forma

    Código:
    CALL TRANSACTION tcode
    USING it_trx
    MODE 'N'
    UPDATE 'S'
    MESSAGES INTO tab.
    Prueba actualizando la base de datos de modo sincronico 'S' y creando una tabla de mensajes para saber q errores te puede botar, o tbm el modo lo puedes cambiar de 'N' a 'A' para que visualices el proceso ... espero sirva
    David Carballido Córdova

    Comentario

    • xirir
      Junior Member
      • feb
      • 25

      #3
      Hola, ya probe eso y el problema no se encuentra ahi. Muchas gracias igual!

      Comentario

      • DavidXD_XD
        Moderator
        • ago
        • 1255

        #4
        Hola de nuevo ... recien corri el programa y tiene algunos errores y complicaciones.

        1. Estas subiendo las ordenes a un SELECT-OPTION, no he probado pero creo que solo te dejara ingresar las 8 primeras por tener solo visualizable en un comienzo esas lineas.

        2. En tu programas y dentro del SELECT ENDLSECT colocas esto
        wa_trx-FNAM = 'RSCSEL-SLOW_I(01)', eso quiere decir que si tu consulta me bota 50 registros, cada registros lo iras chancando o solapando siempre en la primera linea de tu SELECT-OPTION (Rango)

        3. Puede ser como recomendacion que primero exportes a un txt las ordenes una de bajo del otro para despues subirlas con la opcion que dice "Importar de fichero de texto"

        4. Otra recomendacion es que puede ser posible no realizar un batch-input si es que quieres consultar la transaccion, me refiero a que como es un report estandar esta creado con PARAMETERS y SELECT-OPTIONS, puedes usar la sentencia SUBMIT y dentro de ella declarar los parametros que vas a utilizar.

        Creo q hay un poquito mas de info ahora, ojala sirva ... un saludo
        David Carballido Córdova

        Comentario

        Trabajando...