Bloquear

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • DCErick
    Moderator
    • mar
    • 1090

    #1

    Bloquear

    Hola, tenemos un desarrollo Z donde generamos unos consecutivos mediante un programa.

    El problema es que tenemos varias plazas en varios estados del pais.

    Y si estos entran al programa al mismo tiempo. El programa muestra para tados el mismo rango de consecutivos que les va a generar.

    Y cuando lo generan les sale que les asigno el mismo rango de consecutivos, aunque impresos salen otros :S.

    Para obtener los consecutivos que se generan se ha creado un objeto de rango (SNRO), creo que por esta razón me los da diferentes imagino por el orden en que se van metiendo los procesos al procesador o no se jeje.

    Hay alguna forma de evitar que se use la tabla cuando alguien ya entro al programa???

    O solo hay que modificar la forma de mostrar el mensaje.

    Lo que trato de evitar es que para un cliente me asigne el vale 1-5 se imprima, luego que en otro lugar al mismo tiempo se me salga que dio del 1-10 y se imprima del 1-10 cuando debio ser del 6-15.

    Lo que pasa es que el mensaje si lo puedo modificar, pero no se si el ciclo que tengo vaya a fallar y que antes de la insección en tabla Z me genere el mismo consecutivo en otro lugar.

    El codigo que use para tal ciclo es el siguiente.

    Código:
      DO vales TIMES.
        CALL FUNCTION 'NUMBER_GET_NEXT'
          EXPORTING
            nr_range_nr = '01'
            object      = 'ZDP_VALE  '
          IMPORTING
            returncode  = da_rc
            number      = zdp_vale-numva.
        CASE da_rc.
          WHEN '1'.
            MESSAGE i033 WITH '01' 'ZDP_VALE'.
          WHEN '2'.
            MESSAGE i034 WITH '01' 'ZDP_VALE'.
        ENDCASE.
        MOVE: zdp_aval-kunnr        TO zdp_vale-kunnr,  "Distribuidor
              sy-datum              TO zdp_vale-feccr,  "Fecha de Registro
              sy-uzeit              TO zdp_vale-horcr,  "Hora de Registro
              sy-uname              TO zdp_vale-usucr,  "Usuario
              space                 TO zdp_vale-fecen,  "Fecha de Entrega
              space                 TO zdp_vale-horen,  "Hora de Entrega
              space                 TO zdp_vale-usuen,  "Usuario de Entrega
              space                 TO zdp_vale-numfa,  "Número de Factura
              space                 TO zdp_vale-fecap,  "Fecha aplicación
              space                 TO zdp_vale-horap,  "Hora aplicación
              space                 TO zdp_vale-usuap,  "Usuario Aplicación
              space                 TO zdp_vale-codct,  "Cliente Anterior
              space                 TO zdp_vale-numde,  "Descuentos
              space                 TO zdp_vale-numdea, "Descuentos Aplicados
              'A'                   TO zdp_vale-statu,  "Status
              space                 TO zdp_vale-ofivt,  "Oficina de Ventas
              space                 TO zdp_vale-monip,  "Monto inicial S/Impto.
              space                 TO zdp_vale-moniv,  "Impuesto
              space                 TO zdp_vale-monin,  "Monto inicial C/Impto.
              space                 TO zdp_vale-monus,  "Cargos
              space                 TO zdp_vale-abono,  "Abonos
              space                 TO zdp_vale-saldo,  "Saldo
              space                 TO zdp_vale-docsp,  "Documento FI
              space                 TO zdp_vale-docdp,  "Documento DP-PRO
              space                 TO zdp_vale-pares,  "Pares Pieza
              space                 TO zdp_vale-monto,  "Monto Inicial DP-Vale
              space                 TO zdp_vale-reval,  "Identificador Revale
              space                 TO zdp_vale-orige.  "DP-Vale Origen
        INSERT zdp_vale.
        WRITE: /3 'Consecutivo Asignado    : ',          zdp_vale-numva,
                  ' Distribuidor : ',                    zdp_aval-kunnr.
    
    *Guardamos en Tabla Interna los Vales Generados.(Erick)
        ti_dpvales-numva = zdp_vale-numva.
        ti_dpvales-print = 'X'.
        APPEND ti_dpvales.
        CLEAR ti_dpvales.
    *Guardamos en Tabla Interna los Vales Generados.(Erick)
    
      ENDDO.
    -------------------
    ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?
  • sap2006
    Senior Member
    • mar
    • 134

    #2
    Puedes crearte un objeto de bloqueo desde la transaccion SE11.

    Saludos.

    Comentario

    Trabajando...