Transaction notification SAP B1


#1

Hola
Estoy escribiendo el siguiente select dentro de un transaction notification con el object_type = 24:

select count (*)
from orct
where “DocEntry” = list_of_cols_val_tab_del;

Dentro de list_of_cols_val_tab_del tengo el número de recibo, que aún no está impactado en la base de datos (físicamente). Sin embargo el select me trae registros como si en la base de datos estuviera impactado. Cómo podría hacer para saber si un registro se encuentra o no impactado en la base de datos real.

Podrían ayudarme con esto?

Saludos,


#2

El transaction funciona con el documento que se esta creando si no quieres que se lleve a cabo debes de marcarlo con el mensaje de error para que haga un rollback


#3

Gracias por la info, ahora entiendo… Pensé que directamente no lo impactaba.

El problema es que estoy haciendo el transaction cuando seleccionan una factura y un anticipo en el pago recibido y lo que quiero bloquear es que si el cheque que entró con el anticipo no está depositado no me deje crear ese “Pago Recibido”

Alguna idea?


#4

Puedes buscar con el query ese deposito si no esta mandas el mensaje de error y se hará el rolback en automático


#5

Hola, buena tarde,

Por curiosidad y con el afán de tener un conocimiento mas, ya son muy pocas las empresas que pagan en cheque, me gustaría saber como controlas los depósitos de cheque, es decir, donde indicas que el cheque ya fue depositado a X cuenta ?

El el proceso tradicional, vas a Gestión de bancos - Pagos efectuados, seleccionas el deudor y posterior el documento -Medios de pago, seleccionas el medio (Cheque) pones los datos de este, cantidad, etc y aplicas el pago, pero, donde indicas que el cheque ya fue depositado a la cuenta ?

Gracias, saludos.


#6

En gestión de bancos -> Depósitos-> depósitos la primera pestaña que te aparece es la de cheques y ahi le asignas a la cuenta que se depositara seleccionando los cheques con lo que se pago


#7

Hola, si , efectivamente, en medios de pago , cuando seleccionas cheque , puedes escoger la cuenta , y esta ya debe estar previamente configurada en la parametrizaciones , para que se descargue de la cuenta xxxx, que asignaste en tu catalogo de cuentas.

Espero haber podido ayudarte, y cualquier cosa estoy a la orden.


#8

Hola Patricia, lo que hace el TN es un punto de control dentro de una transacción de base de datos (este es un concepto técnico de BD), inicia la transaccion y realiza los registros en la DB impactando realmente en la DB, pero llega a un punto final donde puede hacer COMMIT es decir dejar todo impactado, o ROLLBACK deshacer todo y eliminar todos los registros que se hizo en esa transaccion,
EL TN justo se ejecuta dentro de esa transacción, al final por supuesto.

respecto a tu query es un tanto complicado:

Primero tienes que ligar tu pago recibido encabezado(ORCT) con tu detalle (RCT2), con la finalidad de poder hacer referencia al #pago recibido y obtener los documentos de marketing.

INNER JOIN ORCT ON ORCT.DocEntry = RCT2.DocNum

Posteriormente ligar tus lineas de documentos pagados (RCT2) con sus respectivos documentos de marketing (OINV)

INNER JOIN RCT2 ON OINV.DocEntry = RCT2.DocEntry

Como buscas facturas que tengan anticipos lo relacionas con INV9 y ODPI

INNER JOIN INV9 INV9.DocEntry = OINV.DocEntry
INNER JOIN ODPI ON INV9.BaseAbs = ODPI.DocEntry

Vuelve a relacionar con el detalle de pagos recibidos de ese anticipo, ORCT, RCT2

INNER JOIN RCT2 ON RCT2.DocEntry = ODPI.DocEntry
INNER JOIN ORCT ON RCT2.DocEntry = ORCT.DocNum

Y por ultimo con los cheques y depositos, ODPS

INNER JOIN OCHH ON OCHH.RcptNum = ORCT.DocEntry
INNER JOIN ODPS ON ODPS.DeposId = OCHH.DpstAbs

Creo que con esto tendrias la relacion de tus facturas, anticipos, depositos.

saludos,