PDA

Ver la Versión Completa : Bloquear


DCErick
28/12/06, 16:14:13
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.


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.

sap2006
28/12/06, 20:46:47
Puedes crearte un objeto de bloqueo desde la transaccion SE11.

Saludos.