Transaction Notification para validar datos repetidos
Buenos días,
Tengo un problema, necesito crear un transaction N, para lo siguiente:
Resulta que en pagos recibidos -- medios de pago -- cheque, quisiera validar que cuando el numero de cheque sea repetido entonces me arroje un error de que debe cambiar el numero de cheque, claro está que hay distintos bancos y los números de chuque podrían ser iguales, por lo que habría que validar que si el numero de cheque es igual siempre y cuando sea del mismo banco entonces se genere el error.
Además ahí mismo en medios de pago, pero ahora en transferencias bancaria, quisiera validar en el campo de referencia (TrsfrRef), que cuando sea un mismo número de referencia entonces se genere un error.
Agradecería mucho la ayuda para poder hacer esto.
Muchas gracias por su atención.
saludos.
Buenos días,
Floyola el código para la referencia en medios de pago sirve perfectamente pero ahora estoy intentando usar el mismo código para hacer los mismo pero ahora en el campo de referencia bancaria en el deposito.
if @transaction_type in ('A','U') and @object_type = 25
begin
declare @Refe as Nvarchar(50)
set @Refe = (select Ref2 from ODPS where DocEntry = @list_of_cols_val_tab_del)
IF Exists (SELECT COUNT(Ref2) FROM ODPS WHERE Ref2 = @Refe HAVING COUNT(Ref2) > '1')
begin
set @error =100-1
set @error_message ='Existe Número de Referencia Bancaria duplicado'
end
end
Ese es el código que utilizo, el mismo que me pasaste pero cambiandole algunas cosas, pero me genera el siguiente error:
Msg 207, Level 16, State 1, Procedure SBO_SP_TransactionNotification, Line 48
Invalid column name 'DocEntry'.
Similar Messages
-
TRANSACTION NOTIFICATION PARA ORDENES DE PRODUCCION
BUENAS TARDES. ALGUIIEN QUE ME PUEDA DECIR PARA QUE SIRVEN LAS SIG. LINEAS DEL TRANSACTION NOTIFICATION
@num_of_cols_in_key int,
@list_of_key_cols_tab_del nvarchar(255) SE QUE ESTE TOMA EL VALOR DEL CAMPO CLAVE DE LA TABLA SOBRE LA CUAL HACEMOS EL CODIGO.
@list_of_cols_val_tab_del nvarchar(255)
Y SI ALGUIEN A CONSEGUIDO BLOQUEAR UNA ORDEN DE PRODUCCION PARA QUE NO PUEDA SER CERRADA SI NO HAN INGRESADO LOS PRODUCTOS QUE SE FABRICARON.Hola...
Hace tiempo que no pasaba por acá, revisa el siguiente post..
Espero te sea de ayuda
Saludos, -
Transaction Notification en Tablas de Usuario
Buenos dias,
Tengo la siguiente pregunta, se puede usar el SP Transaction Notification para validar el llenado de tablas de usuario y como lo hago???
como determino el objectype????
Gracias.
Pasen buen dia.Buen dia Douglas,
Las tablas de usuario no poseen ObjecType debido que el objec type es propio de las tablas de SAP Business one.
Para poder colocarle Transaction Notification debes crear un UDO vinculado a tu tabla de usuario, en ese momento se crea el ObjectType a tu tabla de usuario.
Saludos,
Wuilmer Venegas -
TRANSACTION NOTIFICATION, COMO BLOQUEAR CAMPO CARDNAME EN DATOS MAESTROS-SN
COMO PUEDO PONER UN BLOQUEO EN EL TRANSACTION NOTIFICATION PARA QUE NO SE PERMITA MODIFICAR EL CAMPO DE RAZON SOCIAL (CARDNAME) NI CONDICIONES DE PAGO (GROUPNUM) DE DATOS MAESTROS DE SOCIOS DE NEGOCIOS (OCRD)??
GRACIAS DE ANTEMANO A TODOS.MUCHAS GRACIAS, ME SIRVIO TU RESPUESTA PARA VER COMO IBA A SACAR EL ULTIMO CAMBIO DE X SOCIO DE NEGOCIOS.
LO QUE PUDE CONSTRUIR FUE ESTO:
-- BLOQUEO DE RAZON SOCIAL EN DATOS MAESTROS SN
-- Aqui le decimos que actue solo cuando el tipo de objeto sea 2 (Ventana de Socios de Negocios, y cuando este en modo Crear y Actualizar)
IF @object_type = 2 and @transaction_type in ('U')
BEGIN
-- Declaramos una variable que guarde el valor de la razon social de SN
declare @newname varchar(100)
--en la sig. consulta el nombre de razon social que estamos llenando lo guardamos en @newname
Select @newname=cardname from ocrd where cardcode=@list_of_key_cols_tab_del
--En la consulta anterior no estoy seguro si este correcto utilizar @list_of_key_cols_tab_del para que se tome el valor
--del cardcode del campo que estamos llenando de razon social.
if @newname <> (select CardName from acrd where CardName=@list_of_key_cols_tab_del and LogInstanc=(select max(loginstanc)
from acrd where CardCode=@list_of_key_cols_tab_del and cardcode=@list_of_key_cols_tab_del))
--en consulta anterior se compara si el valor nuevo a guardar o actualizar es diferente al que ya existe en la tabla de historial de SN
begin
set @error = 1
set @error_message = 'Acceso denegado para cambio de Razon Social'
end
END
--END
MUCHAS GRACIAS POR SU AYUDA.. -
Unique Value Transaction Notification
Hi Experts
I have a problem in Transaction Notification
I have a one UDF and i dont want to repeat the value . so i want to restrict if the value has repetead then system block me to add the sales invoice .
my code is
If @transaction_type = 'A' And @object_type = '17'
Begin
if exists (
select u_dd_amt from ordr a where exists
(select 1 from ordr where u_dd_amt =
a.u_dd_amt)
and u_dd_amt =
@list_of_cols_val_tab_del
Begin
select @error = 1, @error_message = 'Duplicate value not allowed in DD Amount field'
end
end
the always error msg occured whenever i type any valye in UDF field please help meBuen dia Douglas,
No es posible realizarlo ya que como tu indicas no tiene un Objtype, para poder realizar un transaction debe existir un Objtype.
Saludos,
Wuilmer venegas -
Transaction Notification - Consulta
Hola Comunidad SAP en español,
Quiero consultar de que manera puedo hacer lo siguiente en el transaction notification:
Necesito que cuando una orden de venta sea ingresada, la misma pueda ser modificada en sus valores, siempre y cuando se mantenga el precio establecido y que uno de los campos de usuario sea el mismo.
Como puedo realizar esto?
Muchas Gracias.
Saludos,
Guillermo.-Revisa estas soluciones que propuse, te pueden dar una idea
[Re: TRANSACTION NOTIFICATION, COMO BLOQUEAR CAMPO CARDNAME EN DATOS MAESTROS-SN] -
Transaction Notification en Proceso de Autorizacion
Sera posible ejecutar un Transaction Notification, en el momento que se aprueba un documento?
Ejemplo:
Recibe la alerta de solicitud de aprobación, elije Aprobar y luego da click en el boton OK o Aceptar.
Mi pregunta es: en ese momento que le da Click, es posible ejecutar un Transaction Notification, debido a que revise la tabla
OWDD y WDD1 y no tiene un objtype propio, o no es reconocido como un Documento.
En espera de sus Repsuestas.
Gracias anticipadas.Buen dia Douglas,
No es posible realizarlo ya que como tu indicas no tiene un Objtype, para poder realizar un transaction debe existir un Objtype.
Saludos,
Wuilmer venegas -
Ejecutar Transaction Notification
Hola, buenas tardes, quisiera saber si me pueden ayudar con el siguiente escenario:
Al crear una orden de venta se solicita una autorización y necesito ver si esposible ejecutar un Transaction Notification antes de solicitarla
De antemano muchas graciasHola..
Imagino que habla de un procedimiento de autorización. Este tipo de procedimiento tiene condiciones. Si el caso es que la condición por defecto es siempre, puede modificar este criterio al cumplimiento de una condición. Luego podría crear un campo de usuario (el llenado de este campo sería la condición) que permita evitar el proceso de autorizacion. Luego su transaction notification incluye todas las validaciones que ud. necesita y obliga al usuario a llenar además este campo de usuario, para que una vez regularizado el documento....al momento de crearlo, el procedimiento de autorización se base en la condicion de campo de usuario con información.
Realice las pruebas y nos comenta los resultados,
Espero sea de ayuda
Saludos Cordiales, -
SBO_Post Transaction Notification
SBO_Post Transaction Notification
Hi Experts!,
I´d like to get information about this Stored Procedure, can somebody give me any link, papers, etc?
Regards,
RonaldHi Ronald ,
Files are located in SBO_Knowledge_village group and below i paste is the link ,
Jimmy Michael (See top contributors Gordon,Suda,..Jimmy) is the moderator of the form .Ask him to join you in this group . You can acess more documentation .
http://tech.groups.yahoo.com/group/SBO_Knowledge_Village/files/Files/
Thank you
Bishal -
Outgoing Payment Transaction notification...
Hi all,
I designed the following Transaction notification for outgoing payment.It is working well If doctype is 'C' or 'S'. I want to do this for Doctype 'A'. But not successful....
Waiting for your replies..
IF @transaction_type = 'A' AND @object_type = '46'
BEGIN
--If exists (SELECT T0.docentry FROM OVPM T0 where t0.docentry = @list_of_cols_val_tab_del and T0.cashsum>=20000000)
-- begin
-- SET @error = 10
-- SET @error_message = N'You cannot Pay Cash More than Rs. 2000/-'
-- end
If not exists (SELECT T0.docentry FROM OVPM T0 where t0.docentry = @list_of_cols_val_tab_del and
(((t0.cardcode like '%%VDLI%%' or t0.cardcode like '%%CDLI%%' ) and t0.Series = '61' and (t0.doctype = 'S' or t0.doctype = 'C' ))
or ((t0.cardcode like '%%VAHD%%' or t0.cardcode like '%%CAHD%%' ) and t0.Series = '64' and (t0.doctype = 'S' or t0.doctype = 'C' ))
or ((t0.cardcode like '%%VMUM%%' or t0.cardcode like '%%CMUM%%' ) and t0.Series = '63' and (t0.doctype = 'S' or t0.doctype = 'C' ))
or ((t0.cardcode like '%%VLDH%%' or t0.cardcode like '%%CLDH%%' ) and t0.Series = '66' and (t0.doctype = 'S' or t0.doctype = 'C' ))
or ((t0.cardcode like '%%VKOL%%' or t0.cardcode like '%%CKOL%%' ) and t0.Series = '62' and (t0.doctype = 'S' or t0.doctype = 'C' ))
begin
SET @error = 11
SET @error_message = N'BP Code,Location ,Series ,Tax code combination does not match'
end
END
Regards
Deepak tyagiHi Deepak,
Try this way:#
if @object_type='46'
BEGIN
IF @transaction_type='A' OR @transaction_type='U'
BEGIN
DECLARE @OPCHDocEntry int
DECLARE @OPCHDocType nvarchar(1)
SET @OPCHDocEntry = CAST(@list_of_cols_val_tab_del as int)
SET @OPCHDocType = (SELECT DocType FROM OPCH WHERE DocEntry=@OPCHDocEntry)
IF @OPCHDocType in ('S','C')
BEGIN
If not exists (SELECT T0.docentry FROM OVPM T0 where t0.docentry = @list_of_cols_val_tab_del and
(((t0.cardcode like '%%VDLI%%' or t0.cardcode like '%%CDLI%%' ) and t0.Series = '61' and (t0.doctype = 'S' or t0.doctype = 'C' ))
or ((t0.cardcode like '%%VAHD%%' or t0.cardcode like '%%CAHD%%' ) and t0.Series = '64' and (t0.doctype = 'S' or t0.doctype = 'C' ))
or ((t0.cardcode like '%%VMUM%%' or t0.cardcode like '%%CMUM%%' ) and t0.Series = '63' and (t0.doctype = 'S' or t0.doctype = 'C' ))
or ((t0.cardcode like '%%VLDH%%' or t0.cardcode like '%%CLDH%%' ) and t0.Series = '66' and (t0.doctype = 'S' or t0.doctype = 'C' ))
or ((t0.cardcode like '%%VKOL%%' or t0.cardcode like '%%CKOL%%' ) and t0.Series = '62' and (t0.doctype = 'S' or t0.doctype = 'C' ))
begin
SET @error = -1000
SET @error_message = N'BP Code,Location ,Series ,Tax code combination does not match'
end
END
IF @OPCHDocType ='A'
BEGIN
If not exists (SELECT T0.docentry FROM OVPM T0 INNER JOIN VPM4 T1 ON T0.DocEntry = T1.DocNum and t0.docentry = @list_of_cols_val_tab_del and
(t1.acctcode like '%%ADLI%%' and t0.Series = '61' and t0.doctype = 'A' and T1.LocCode = '1' )
or (t1.acctcode like '%%AAHD%%' and t0.Series = '64' and t0.doctype = 'A' and t1.LocCode = '2' )
or ( t1.acctcode like '%%AMUM%%' and t0.Series = '63' and t0.doctype = 'A' and t1.LocCode = '3' )
or ( t1.acctcode like '%%ALDH%%' and t0.Series = '66' and t0.doctype = 'A' and t1.LocCode = '5')
or ( t1.acctcode like '%%AKOL%%' and t0.Series = '62' and t0.doctype = 'A' and t1.LocCode = '4')
BEGIN
SET @error=-1001
SET @error_message = N'BP Code,Location ,Series ,Tax code combination does not match'
END
END
END
END
Thanks,
Neetu -
Dear All Experts,
My client having some custom requirement in Production Order.
1) When Production Order will created and its status will released then it will allowed user to update any quantity of any items or add any new items but it will not allowed to delete any items from row level.
2) When any item will be deleted then our transaction notification will be raised.
I created one Transaction Notification Code but it will restricted to update anything or delete.
IF (@transaction_type = 'A' or @transaction_type = 'U') AND @object_type = '202'
BEGIN
Declare @VisOrder1 nvarchar(255)
Set @VisOrder1=(SELECT Top 1 T1.VisOrder+1 FROM OWOR T0 INNER JOIN WOR1 T1 ON T0.DocEntry = T1.DocEntry
WHERE (T0.Status = 'R' and T1.VisOrder=(select TOP 1 VisOrder from wor1 where DocEntry=@list_of_cols_val_tab_del order by VisOrder Desc)))
If @VisOrder1 >0
begin
SET @error = 231
SET @error_message = 'You have not rights to delete any Item - Please Contact System Administrator ' + @VisOrder1
end
END
Please help me for solve this problem.
I wait for your warm replay.
Thanks & Regards,
Nishit MakadiaHi,
Please check these threads. Let me know your feedback.
http://scn.sap.com/thread/3518208
http://scn.sap.com/thread/3545101
Thanks & Regards,
Nagarajan -
Transaction Notification with DI Server
Hello
I am developing a Web Site with the DI Server, when I have validations in the Transaction Procedure the error message is incorrect.
Message: Could not commit transaction.
Transaction Notification
set @error='10'
set @error_message = 'SP: 123'
-- Select the return values
select @error, @error_message
end
I made the test with the DI - API and the message is correct.
Exists a workaround for this problem???
Thanks
Regrats
Edited by: Andres Naranjo on Sep 1, 2010 1:25 AMHello
This problem was solved in SAP Business One 8.8 PL20.
Regards -
Approval procedure vs Transaction Notification
Hello dear experts,
I have an issue with the approval procedures and the validations I have to do using the Transaction Notificacion Stored procedure.
this is the scenario and conditions to consider:
1.A purchase order (Doctotal) that are between 0 and 25,000 USD needs an approval.
2. A purchase order needs to have all the project column filled in before the approval procedure. this column is in the detail of a document, so all the rows have to be filled in with the right project code otherwise when your request have been submmited and your receive the approval you are not allowed to do any changes in the Detail Document.
I realized that the approval procedure is launched before the Transaction Notification SP.
So I decided to add a query for the approval procedure considering the validations in the project column:
SELECT distinct 'true'
FROM OPOR
WHERE $[OPOR.DocTotalSy.number] Between 0 and 24999.99 ---This part works perfeclty!!!
AND LEN(isnull($[POR1.Project.0],''))>0 and $[POR1.U_SubJob.0]>0 ) --This part does not work
As you see in the query, I am trying to validate that all the rows have the project code (Project) and a UDF (U_SubJob) filled in.
Have anybody been done this before? How can I access to the detail values of the document? It is easy to acces values on the header.
I appreciate any help on this. Thank you very much
Regards,
MaryHi,
You must use both in approval procedure or use both in SBO store procedure transaction notification.
To request approval for a project, you this following approval query:
if (SELECT $[$38.31.0]) > ' '
select 'true'
the other query is for doctotal approval as follows:
if ($[opor.doctotalsys.number]) between 0 and 24999.99
SELECT 'true'
or
select distinct 'true' FROM OPOR
WHERE $[OPOR.DocTotalSy.number] Between 0 and 24999.99
Both are able to use and work simultanously.
JimM -
Transaction Notification for Blocking Batch
Dear Experts,
I am facing a critical situation. My Client wants to Block the material movement if it is not inspected through Quality Personal. I have already Locked batches through General Settings > Inventory > Batch Status . But it only blocks the batches for Goods Issue and Receipts Transactions. It is not working in case of Inventory transfers.
I have created UDF on GRPO called U_InspStatus where by default value is Pending once the Quality personal changes the UDF value to Completed then only the batch should be able to move through Inventory Transfer.
Can anyone help me in creating Transaction Notification on Inventory Transfer Document which can block batches if there status is pending ?
Waiting for your replies.
Regards,
RKHi Naga,
Please find below mentioned answer to your queries -
1. Inventory transfer done by means of posting inventory transfer document? - Yes
2. Inventory transfer as applicable to customer not vendor. How do you select vendor in inventory transfer document? - Not selecting the customer in Inventory Transfer document not required I am moving material from one warehouse to another.
3. How did you update inspection status in inventory transfer document - Inspection status is updated in Quality Add on and not in Inventory Transfer. But if I am transferring material from one warehouse to another without Inspection then it should block the batch whose Inspection status is pending. -
Transaction Notification Considering Old transaction as well
Dear Experts,
If (@transaction_type = 'A' AND @Object_type = '140000009')
begin
if exists (SELECT T0.DocEntry FROM OOEI T0 WHERE (T0.U_ModVatCatg = 'N' AND T0. Series = 34) or (T0.U_ModVatCatg = 'M' AND T0. Series = 40) and T0.DOCENTRY = @list_of_cols_val_tab_del)
select @Error = 1, @error_message = 'Wrong Series Selected for the given MODVAT Category'
end
The above transaction notification is written to check the series with a UDF. It was working fine till a few days back.
However, a historical transaction was needed to be updated in a way that the condition in the transaction notification was not met.
After having updated the transaction, this notification blocks all further documents even though the condition is satisfied.
It seems the transaction notification is also considering the historical transaction and hence blocking the new transactions. However, this is not the way transaction notifications are meant to work.
Kindly advise on how to over come this issue.
Regards,
JimitHi Jimmit,
Seems you have 3 condition here
1. (T0.U_ModVatCatg = 'N' AND T0. Series = 34)
2. (T0.U_ModVatCatg = 'M' AND T0. Series = 40)
3. T0.DOCENTRY = @list_of_cols_val_tab_del
You place OR between 1 and 2, and place AND between 2 and 3, but no bracket to group condition 1 and 2.
Seems fishy, try this
if exists
SELECT T0.DocEntry FROM OOEI T0
WHERE ((T0.U_ModVatCatg = 'N' AND T0. Series = 34) or (T0.U_ModVatCatg = 'M' AND T0. Series = 40))
and T0.DOCENTRY = @list_of_cols_val_tab_del
Hope this help.
Best Regards,
Hendry Wijaya
Maybe you are looking for
-
I have been using mail for quite a while and no issue. Before xmas for some strange reason my computer asked me for my keychain password. I couldnt remember and hence lost control of my mail boxes. I deleted the keychain and then started putting in t
-
I had a repair done on my MacBook Pro and had to have a new hard drive installed. The Apple Auth Repair Shop then updated the OS from 10.6.8 to 10.7.5. Now my iPhoto v 9.2.3 will not open and it sounds like it will not work with this OS. Can you plea
-
Archive url access throws error "SSF error: Decoding not possible"
Hi We are using function module HRWPC_RFC_EP_READ_PHOTO_URI to pull the photo of an employee in ESS. When we paste the url in browser we get following error SSF error: Decoding not possible Can anyone help to resolve this. regards barin
-
Old domain name I didn't renew and now cannot login to business catalyst. I bought it years ago for 1000 dollars or so. It has been a while since I have visited and now I cannot get in at all.
-
WAAS 7341 uanble to optimize application runnnig with browser IE7
Hi, I'm having Cisco WAAS 7341 with version 4.1.5.F Aplication running on browser IE7 are unable to optimize the connection on WAAS where as the application running on browser IE6 are able to optimize the connection on WAAS.I do not find any bugs rel