Bloqueo de almacenes para usuarios de ventas

Buen día,

Estoy necesitando un “bloqueo” para que los usuarios de ventas solo puedan hacer órdenes de venta y facturas utilizando los materiales que hay en un solo almacén, almacén de aprobados.
Estuve leyendo sobre una opción en usuarios, valores predeterminados, y ahí puedes seleccionar un almacén para el usuario seleccionado pero probé a realizar una factura y me dejó.

Sabeis para que sirven realmente estos valores predeterminados en los usuarios y como podría hacer cierto bloqueo? se me ocurre por TN pero el día que añadan un nuevo almacén ese bloqueo no va a funcionar…

Gracias por vuestra ayuda !!

1 me gusta

Hol@ @PP24:

Buen día, efectivamente lo indicado por usted es una forma correcta de proceder, pero debieras complementar con dejar el campo Almacén como solo lectura, y que no puedan modificar las parametrizaciones de formulario.

La otra sería que crees un modelo IU y establecerlo para los vendedores.

Salud@s :raised_hand_with_fingers_splayed:t5:

Buenas,

El problema con modificar el IU y dejar el campo solo lectura, es que va a tomar el almacén por default del artículo, y por un tema del rubro de la empresa en ningún caso puede ser el de aprobados.
La única forma que se me ocurre es seleccionando el almacén como valor predeterminado al usuario para que en todos los documentos lo tome por default, quitar el almacén por default en los artículos( aquí esta mi principal inconveniente ) y poner el campo almacén en los documentos de venta como solo lectura…
O con TN… no se me ocurre otra opción

Gracias por tu aporte!!

1 me gusta

Esa sería mi sugerencia…

Tal vez por DTW se podría quitar el almacén predeterminado, nunca lo he hecho pero podría ser, debería ser a través del campo: DefaultWarehouse/DfltWH

image

Actualizando un valor nulo…

Saludos.

Actualización
Checa esto:

Hi,

little late to the party on this one but I had a similar issue today and found the answer.

Use a “/” (forward-slash) in your DTW file and it will set the field to NULL for you.

I don’t know if this works for numeric fields (probably not) but it worked for me on several string fields I needed to clear in various Master Data objects.

HTH!

Regards,

Steve

Fuente:

h_tps://archive.sap.com/discussions/thread/1645717

2 Me gusta

Gracias companero!!!

Mi problema es que si quito el almacén predeterminado no entrarán por default en ese almacén y no se que impacto puede tener quitar ese almacén predeterminado…esa es la parte que no me convence de hacerlo de esta forma y estoy pensando en armar un TN, Aún así creo que es una forma a tener en cuenta para mi inconveniente con las ventas

1 me gusta

Estimado:

Yo tuve el problema que los vendedores sacaban productos de cualquier bodega y generaban problemas a otras areas, la limitante es que se puede facturar solo de una bodega, lo solucione de la siguiente forma:

Cree tantas opciones de usuarios como bodega de facturación existieran y en valores propuestos la bodega desde la cual deben facturar y a cada usuario le asigne estos valores.
En TN cree una regla que validara que la bodega desde donde se saca el producto sea la misma del usuario

Con eso solucione mi problema

2 Me gusta

Buenas tardes

Yo lo tengo de esta manera. A los usuarios se le tienen asignado unos almacenes y en la parte de las ventas, el campo almacén esta de tipo lectura. La opción que comenta Sergio_Perez también es buena

Saludos

1 me gusta

Buen dia @PP24, creo que lo que necesitas en el TN pero míralo de la vereda apuesta, en la restricción del TN asigna la bodega con un in, así cada bodega que agregues no afectara. Restringe por ID de usuario y por Numero de almacén.

por ejemplo (este ejemplo lo hice para entregas y facturas, no considerando las facturas de reserva), para que los usuarios incluidos en el NT pudieran mover artículos de 3 bodegas solamente.

Saludos Cordiales. Que tengan todos buen día y felices fiestas.

IF (@transaction_type=‘A’) or (@transaction_type=‘U’)
IF (@object_type = ‘13’)

begin

if exists (select WhsCode from INV1 T inner join OINV T1 on T1.docentry = T.Docentry
where T.docentry = @list_of_cols_val_tab_del
and T.WhsCode in (‘01’,‘04’,‘06’)
and T1.IsIns = 'N’
and T1.usersign in (‘29’,‘30’,‘31’,‘33’,‘50’,
‘111’,‘117’,‘150’,‘155’,‘158’,‘161’,
‘169’,‘173’,‘174’,‘198’,‘199’,‘205’,‘207’,‘145’,‘146’))
begin

set @error = 1608
set @error_message = 'Almacen Incorrecto'

end

end

1 me gusta

Buen día

Gracias por el aporte de todos!!
Mi problema es que para que el almacén predeterminado para el usuario funcione tengo que eliminar el almacén predeterminado del artículo y eso no es viable.
Lo que pensé es hacerlo mediante el TN pero en lugar de a nivel de usuarios a nivel de documento para los de orden de venta , factura y facturas reserva, algo asi podría ser.
Cree un campo en almacenes para agruparlos en autorizados/no autorizados por si en un futuro agregan nuevos almacenes no deje de funcionar el TN
Estoy pensando aun como armar el TN pero creo que podría funcionar de esa forma… Si la factura o la orden de venta usan un almacén del grupo no autorizado, no dejar que se cree el documento…

Alguien podría ayudarme con el TN? Sería algo así?

IF (@transaction_type=‘A’) or (@transaction_type=‘U’)
IF (@object_type = ‘17’)

begin

IF exists (select WhsCode from RDR1 T0 inner join ORDR T1 ON T0.[DocEntry] = T1.[DocEntry] INNER JOIN OWHS T2 ON T0.DocEntry
where T0.docentry = @list_of_cols_val_tab_del
and T1.whscode = T.2 whscode WHERE U_Autorizado =‘No’

begin

set @error = 10,set @error_message = ‘Almacén no autorizado’

end
END

Gracias

1 me gusta

Ya lo conseguí , hice el bloqueo en la factura y quedó así:
IF (@transaction_type=‘A’) or (@transaction_type=‘U’)
(@object_type = ‘13’)

begin

if exists (select U_Autorizado from OWHS T inner join INV1 T1 on T1.Whscode = T.whscode
where T1.docentry = @list_of_cols_val_tab_del
and T.U_Autorizado in (‘NO’))

begin

set @error = 10
set @error_message = ‘Almacen Incorrecto’

END

END

Un saludo y mil gracias a todos

3 Me gusta

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.