Contenido de una tabla Z

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • jbermejo
    Junior Member
    • dic
    • 18

    #1

    Contenido de una tabla Z

    Hola a todos,

    tengo que hacer una pantalla de selección con dos campos, Obra y Site.
    El valor del campo Obra se enviará a otro sistema para que nos devuelva los posibles valores del campo Site. Estos valores, se guardarán en una tabla Z del sistema. Es decir, que dependiendo del valor que tenga el campo Obra, la tabla se machará y se rellenará con Sites correspondientes a esa Obra.
    He aqui el problema. Imaginando que pueden entrar varios usuarios a esta pantalla de selección, y elegir distintas Obras, ¿cómo puedo hacer la tabla para que contenga valores distintos?. ¿Es posible que se pueda hacer mediante un chequeo por usuario?.

    La verdad, es que no se por donde cogerlo. ¿Se le ocurre a alguien una solución?.


    Un saludo y muchas gracias.
  • francesc
    Member
    • mar
    • 58

    #2
    Puedes establecer un bloqueo sobre esa tabla mientras un usuario esté modificando una obra de modo que si otro intenta acceder a esa tabla con la misma clave (obra) el sistema le dirá que la tabla se encuentra bloqueada por el usuario xxxxx.

    Comentario

    • tunante
      Member
      • sep
      • 82

      #3
      Aqui tienes la funcion para bloquear una tabla por usuario igual te ayuda

      CONCATENATE gv_pernr gv_fecha_parte INTO varkey.

      CALL FUNCTION 'ENQUEUE_E_TABLE'
      EXPORTING
      mode_rstable = 'E'
      tabname = 'ZCOCPPACK'
      varkey = varkey
      x_tabname = 'X'
      x_varkey = 'X'
      _scope = '3'
      * _WAIT = ' '
      * _COLLECT = ' '
      EXCEPTIONS
      foreign_lock = 1
      system_failure = 2
      OTHERS = 3.

      CASE sy-subrc.
      WHEN 1.
      IF sy-msgty = 'E' AND sy-msgno = 601.
      MESSAGE e055(zpco) WITH sy-msgv1.
      ELSE.
      MESSAGE e055(zpco) WITH 'de otro usuario'.
      ENDIF.
      WHEN 2.
      MESSAGE e055(zpco) WITH 'por fallo en el sistema'.
      WHEN 0.

      WHEN OTHERS.
      MESSAGE e055(zpco) WITH 'sin determinar'.
      ENDCASE.

      y esta para desbloquear

      CALL FUNCTION 'DEQUEUE_E_TABLE'
      EXPORTING
      mode_rstable = 'E'
      tabname = 'ZCOCPPACK'
      varkey = varkey
      x_tabname = 'X'
      x_varkey = 'X'
      _scope = '3'
      * _SYNCHRON = ' '
      * _COLLECT = ' '
      .

      Comentario

      • jbermejo
        Junior Member
        • dic
        • 18

        #4
        Muchas gracias!,

        probaré lo que me propones.

        Comentario

        Trabajando...