Ayuda /DSD/BAPI_VL_CHANGEFROMDATA

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • -toRRezz-
    Junior Member
    • ago
    • 5

    #1

    Ayuda /DSD/BAPI_VL_CHANGEFROMDATA

    Buen día comunidad,

    Espero que me puedan ayudar, alguien de ustedes ha usado la bapi /DSD/BAPI_VL_CHANGEFROMDATA?
    Tengo un requerimiento donde me piden utilizarla para actualizar el texto de las Lista de visitas pero no he podido hacerla funcionar.

    El método manual para actualizar el texto de una lista de visita es ir a la transacción /DSD/VC_VL, indicar el ID listas de visitas, y una vez en la siguiente pantalla, seleccionar un cliente asignado a la lista y dar clic al botón Textos. Capturar el texto, clic en aceptar y Grabar.

    Y para visualizar el texto hay que ir a la transacción /DSD/VC_VL_VIEW, indicar el ID listas de visitas, seleccionar el cliente asignado a la lista y dar clic en el botón Textos.


    Hice una pequeña prueba con la BAPI, con el siguiente código,


    Código:
    DATA: v_vlid    TYPE /dsd/bapi_vc_vl-visitlist_id,
          w_vlh_out TYPE /dsd/bapi_vc_vlhout,
          i_return  TYPE STANDARD TABLE OF bapiret2,
          i_vltext  TYPE STANDARD TABLE OF /dsd/bapi_vc_vl_text.
    
    DATA w_vltext TYPE /dsd/bapi_vc_vl_text.
    
    v_vlid = '0000000036'.
    
    w_vltext-visitlist_id = v_vlid.
    w_vltext-visitlist_pos = '1'.
    w_vltext-langu = sy-langu.
    w_vltext-text_line = 'Texto de Prueba'.
    APPEND w_vltext TO i_vltext.
    
    
    CALL FUNCTION '/DSD/BAPI_VL_CHANGEFROMDATA'
      EXPORTING
        visitlist_id = v_vlid
      IMPORTING
        vlh_out      = w_vlh_out
      TABLES
        vltext_in    = i_vltext
        return       = i_return.
    Al ejecutar el código, la tabla interna i_return me regresa un registro con el siguiente mensaje:

    Instancia 0000000036 del tipo objeto VL modificada

    Pero al entrar a la transacción /DSD/VC_VL_VIEW para revisar si actualizó el texto, la actualización no se ve reflejada.

    De antemano muchas gracias.

    Saludos!
  • VLozano
    Senior Member
    • nov
    • 124

    #2
    Necesitas un COMMIT. Después de cualquier llamada a una BAPI de actualización de datos, y una vez comprobado el éxito de la llamada, necesitas llamar a la BAPI_TRANSACTION_COMMIT (aconsejo WAIT = 'X').
    Editado por última vez por VLozano; 01/12/2009, 07:02:42.
    "Porque algunos sabemos que somos parte del problema"
    - Pequeña guía para escribir mensajes en foros técnicos -

    Comentario

    • -toRRezz-
      Junior Member
      • ago
      • 5

      #3
      Originalmente publicado por VLozano
      Necesitas un COMMIT. Después de cualquier llamada a una BAPI de actualización de datos, y una vez comprobado el éxito de la llamada, necesitas llamar a la BAPI_TRANSACTION_COMMIT (aconsejo WAIT = 'X').
      Muchísimas gracias VLozano!!!

      Efectivamente, estaba omitiendo el COMMIT después de llamar a la BAPI.

      De nuevo gracias.

      Saludos!
      Editado por última vez por -toRRezz-; 01/12/2009, 17:18:12.

      Comentario

      Trabajando...