on 11-01-2014 12:15 AM
hola como están ? requiero de hacer un bloqueo, se trata de no permitir la creación de facturas si estas no tienen su documento de entrega, me estoy iniciando en transaction notification de SAP y por esa razón no he encontrado la solución, o me bloquea todas las facturas o me las deja abiertas, si alguien me pudiera orientar, saludos
se supone que tu tienes esto:a ver si le entiendes por que esto del código se me traslapo y no lo pude editar bien, pero es cuestión de que solo busques en la tabla el dato del documento base en cada línea, esto viene en tabla INV1 tabla basetype, haz pruebas con la tabla y ve los números de documentos y así podrás bloquear. ok!.
ALTER proc [dbo].[SBO_SP_TransactionNotification]
@object_type nvarchar(20), -- SBO Object Type
@transaction_type nchar(1), -- [A]dd, [U]pdate, [D]elete, [C]ancel, C[L]ose
@num_of_cols_in_key int,
@list_of_key_cols_tab_del nvarchar(255),
yo tengo esto de ejemplo:
@object_type = '13' and @transaction_type IN ('A')
@valsjd nvarchar(20)
SET @valsjd = (SELECT T0.docentry
FROM Oinv T0
inner join inv1 t1 on t0.docentry=t1.docentry
inner join oitm t2 on t1.itemcode=t2.itemcode
inner join OITB T3 ON T2.ItmsGrpCod = T3.ItmsGrpCod
WHERE T0.DocEntry = @list_of_cols_val_tab_del and
.itemcode not in('1611400002','1611400001') and
(t1.U_ps='SJD' and t1.acctcode<>'_SYS00000002070') and
.itmsgrpcod=161
)
(@valsjd is not null)
BEGIN
SELECT @error = 1
SELECT @error_message = 'cuenta de mayor erronea SJD '
END
AS
begin
-- Return values
declare @error int -- Result (0 for no error)
- @object_type nvarchar(20): El número de objeto del documento.
- @transaction_type nchar(1): cinco transacciones validas en la bd:
- °°A -alta
- °°U -actualizacion
- °°D -biorrado
- °°C -cancelarl
- °°L -cerrar
- @num_of_cols_in_key int:
- @list_of_key_cols_tab_del nvarchar(255):
- @list_of_cols_val_tab_del nvarchar(255), valor en la columna llave, esta es la mas usada para ligar con la transacción actual en el sp.
Message was edited by: María de los Angeles Merecías Pérez
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
El campo U_ps es un campo definido que yo genere en el detalle de las facturas. es semejante, solo un ejemplo. en lugar de U_Ps, tu usas el basetype, donde basetype tiene que ser el número del objeto del documento base. si este es nulo es por que genero de la factura misma, puedes filtrar. y en tu caso no ocupas ni Oitb ni tampoco Oitm Que yo los utilizo para filtrar los artículos.
chécate tus campos con el generador de consultas del query manager.
@valsjd es una variable que te marca si esa condición de la consulta se cumple, entonces marca el error.
Hola claro, como califico ?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola, Intenta así:
IF @transaction_type = 'A' AND @object_type = '13'
BEGIN
IF EXISTS
(SELECT T0.ItemCode FROM [dbo].[INV1] T0
inner join OINV t1 on t1.DocEntry=t0.docentry
WHERE T0.BaseType != 15
and T0.DocEntry = @list_of_cols_val_tab_del)
SELECT @Error = 1, @error_message = 'Factura sin Entrega'
END
Saludos.
Alessandro.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola Alessandro como estas? muchas gracias fue de gran ayuda bastante bueno tu código, me sirve muchisimo y funciona a la perfección, intento hacer lo mismo, bloqueando la creación de entrega si esta no tiene su pedido previo, parecería lógico cambiar el @object_type y el Base_Type por 15 y 17 respectivamente pero no me funcióna o tendría que cambiar alguna tabla, saludos y espero te encuentres bien
Hola, tendrías que cambiar la tabla del query a ODLN y DLN1, intenta así:
IF @transaction_type = 'A' AND @object_type = '15'
BEGIN
IF EXISTS
(SELECT T0.ItemCode FROM [dbo].[DLN1] T0
inner join ODLN t1 on t1.DocEntry=t0.docentry
WHERE T0.BaseType != 17
and T0.DocEntry = @list_of_cols_val_tab_del)
SELECT @Error = 1, @error_message = 'Entrega sin Orden de Venta'
END
Saludos.
Alessandro.
User | Count |
---|---|
97 | |
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.