on 05-11-2011 4:40 PM
Hola, buen dia
PUede alguien indicarme cual es la tabla para Log de Modificaciones de ORDR (Ordenes de Venta). Alguien me comentaba que podria ser la ARDR, sin emabrgo en las tablas no hay ninguna bajo ese nombre o uno parecido.
gracias de antemano
Buscala desde SQL , en que version de SAP estas?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
La tabla es la ADOC
debes seleccionar los que tengan el objtype = 17
Slds
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Gracias!
Le comento lo que busco: encontrar todas las ordenes que han sido cerradas manualmente, y me parece que la unica forma es determinandolo por el log de modificaciones e identificando el estatus del pedido en C.
Asi recuperaria todas las que han sido canceladas a mano en este año
SELECT * FROM ADOC WHERE OBJTYPE = 17
and year(docdate) = 2011
and docstatus = 'C'
Las que se cierran por sistema (cuando hay facturacion de por medio) no generan ningun registro en el log, por lo que he podido verificar, ¿estoy en lo correcto?
gracias de nuevo,
Gracias por la ayuda.
Tengo otro tema mas relacionado,
Si quisieramos que al momento de que un usuario cierra una orden en un campo de usuario escriba la razon porque hace esto, entonces solo bastaria agregar lo siguiente en el SBO_SP_TransactionNotification
*Lo que quiero asegurarme es que unicamente se disparara cuando es el usuario quien cierre o cancele y no cuando el sistema lo hace por las facturaciones.*
If @object_type = '17'
if @transaction_type = 'A'
Begin
-- VALIDACION SOBRE LA RAZON DE CANCELACION DE LA ORDEN DE VENTA
--Set @DocEntry = @list_of_cols_val_tab_del
declare @u_mot_anulacion nvarchar(30)
Select @u_mot_anulacion = T0.U_MOT_ANULACION
From ORDR T0
Where t0.DocEntry = @list_of_cols_val_tab_del
If @u_mot_anulacion = '' or @u_mot_anulacion is null Begin
set @error = 1
set @error_message = 'Tiene que ingresar el motivo de la anulacion'
End
END
select @error, @error_message
end
Gracias de antemano,
Debes cambiar la condicion
If @object_type = '17' AND @transaction_type IN ('C','L')
BEGIN
IF (SELECT T0.U_MOT_ANULACION FROM ORDR T0 WHERE T0.DocEntry = @list_of_cols_val_tab_del) IS NULL
BEGIN
set @error = 1000
set @error_message = 'Tiene que ingresar el motivo de la anulacion'
End
End
Slds
Edited by: Floyola on May 11, 2011 12:35 PM
Necesitas indicarle al sistema , tambien en el TransactionNotification, que el docentry ademas, NO exista en otra tabla, como por ejemplo en la entrega o factura.
Ya que el Transaction Te tomara entonces siempre que se cierre la Orden de Venta, sea el usuario o una factura.
Entonces, si el docentry de tu orden de venta que quieres cerrar , NO EXISTE en otra tabla, entonces que si haga la validacion del motivo de cierre
Gracias,
Tengo claro que debo evaluar aquellas ordenes (docentry) que no esten en la INV1 como baseref, ahi estaria asegurando que no se cierre una orden sin definir el campo de anulacion.
Sin embargo aun no veo com ocontrolar que si el usuario cierra una orden que si tiene movimiento enfacturacion, entonces tambien haga restringido el campo de usuario, ¿podria evaluarse el usuario que esta haciendo la transaccion?, ¿de que otra forma puede ser?
Si si puede evaluarse tambien el usuario, si por ejemplo, el usuario que factura es distinto al que trabaja la orden de venta, entonces podrias meter una validacion para la factura donde solamente la pueda crear el usuario que debe ser
Para esto necesitas el campo usersign de la oinv, asi que en tu transactionNotification le dirias por ejemplo que
if (select usersign from oinv where docentry =@list:_of_cols...... ) in (2,4,5) ---estos numeros corresponden al internal_K de la ---tabla de usuarios OUSR que quieres aprobar o no
begin
---alguna validacion para tu factura
end
Esos usuarios son los que quieres evaluar
User | Count |
---|---|
99 | |
11 | |
11 | |
6 | |
6 | |
4 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.