TransactionNotification
Hola a todos!! quisiera consultar lo siguiente.
Necesito Validar un campor de la pantalla de Pagos Recibidos, especificamente el de Referencia, puedo hacerlo por el TransactionNotification. El tema esta en que ahi cargaremos unos numeritos y necesito que no quede libre ese campo.
Puedo hacerlo atraves de ese procedimiento almacenado? Ahora, si es posible como me refiero a ese campo en el procedimiento? porq ese campo va ser insertado y como capturo si no me trae en la lista, por solamente me trae el numero de transaccion como claves.
Q me recomiendan?
Desde ya gracias por la ayuda util de siempre.
Gracias!!
La unica manera que un campo no sea modificable es cuando esta en la linea, algunos campo de cabecera siempre se pueden modificar.
Att,
Manuel Lazcano
Similar Messages
-
Configuración TransactionNotification
Hola a todos!!
Les agradecería mucho si me proporcionan alguna información o material para la configuración y uso de "TransactionNotification".
Entiendo que con esto se pueden realizar validaciones durante la captura de los documentos, y evitar que los usuarios graben mal alguna información. Es correcto??
Les agradezco.
Saludos,
Diana OrtegaBuenas tardes Mauricio,
Te agradecería me pudieras enviar la documentación.
Un saludo
José Carlos Racionero -
Validacion en el TransactionNotification
Tengo el siguiente codigo que utilizo en el TransactionNotification para que cuando un usuario cambio el campo u_ubicacion en una tabla definida por el usuario actualice ese campo en la OITM. Pero tengo el problema que si el usuario digita mal el itemcode dentro de esa tabla definida, no me lo valida. Necesito que alguien me oriente para donde poner esa validacion dentro del transaction. Que si el itemcode no exista me mande un error.
If @object_type='TM01' and @transaction_type in ('A','U') Begin
Update OITM
set u_ubicacion=t0.u_ubicacion
from @TMUBICACION T0 where t0.u_itemcode = itemcode
end
SDIF (@transaction_type = 'A' or @transaction_type = 'U') AND @object_type = 'TM01'
BEGIN
if not exists (Select Distinct (T1.ItemCode) from OITM T1 INNER JOIN [@TMUBICACION] T0
ON T1.ItemCode = T0.u_ItemCode
where (T0.u_itemcode = @list_of_cols_val_tab_del))
begin
SELECT @error = 1, @error_message = 'No puedes modificar este articulo porque no existe!'
end
END
IF (@transaction_type = 'A' or @transaction_type = 'U') AND @object_type = 'TM01'
BEGIN
if exists (Select Distinct (T1.ItemCode) from OITM T1 INNER JOIN [@TMUBICACION] T0
ON T1.ItemCode = T0.u_ItemCode
where (T0.u_itemcode = @list_of_cols_val_tab_del))
begin
Update OITM
set u_ubicacion=t0.u_ubicacion
from [@TMUBICACION] T0 where t0.u_itemcode = itemcode
end
END -
SQL // TransactionNotification
Estimados, tengo la siguiente inquietud, tengo un procedimiento almacenado de validaciòn y lo ingreso en SQL voy a Programación > Procedimientos almacenados > Sp_TransactionNotification , click derecho elijo modificar y dejo el query en 'Add you code here' luego lo compruebo en el documento la validacion y esta Ok.
Pero tambien tengo que agregar otro Procedimiento almacenado y no se como hacer andar los dos juntos, ya he probado distintas formas y nada siempre funciona. (Los probe por separado y estan OK.)
Tambien cree un nuevo SP.
Por ejemplo dbo.SBO_SP_TransactionNotificaion_2 y tampoco anda
cual es la forma de ingresarlos a la Bd, ya que quiero hacer ocupar 3 validaciones.
Saludos. y gracias!!
Oscar VOk, entonces no es un stored aparte, es una seccion de codigo (la que valida) dentro del stored TransactionNotification
en principio si esta validacion esta trabajando sobre un mismo objeto , por ejemplo al crear un cliente, o al crear facturas etc, tendrias que trabajar con condicionales para que ejecute uno u otro.
Tienes que ser mas especifico sobre cual es el objetivo de tener 2 funciones al mismo tiempo, y sobre que objeto de SAP estas trabajando -
HI everyone
I wanted to keep track of some operations I do on transactionNotification stored procedure. Does SAP provide any log facility to do this? I tried to write on a custom text file but it gives the following error:
[Microsoft][SQL Native Client][SQL Server]SQL Server blocked access to procedure 'sys.sp_OACreate' of component 'Ole Automation Procedures' because this component is turned off as part of the security configuration for this server. ?
Any ideas?Hello,
You should write a CLR code for this, if you would like to put it into a text file,
What i suggest you can keep these changes in the db, and spool them out once a day.
to keep the chnages in the db, apply this code (sample code)
if not exists (select * from sysobjects where name = 'T_TransactionNotification')
begin
create table T_TransactionNotification(
TransactionDate datetime,
ObjectType nvarchar(20),
TransactionType nchar(1),
NumOfColsInKey int,
ListOfKeyColsTabDel nvarchar(255),
ListOfColsValTabDel nvarchar(255) );
end;
insert into T_TransactionNotification
( TransactionDate,
ObjectType,
TransactionType,
NumOfColsInKey,
ListOfKeyColsTabDel,
ListOfColsValTabDel)
values( getdate(),
@object_type,
@transaction_type,
@num_of_cols_in_key,
@list_of_key_cols_tab_del,
@list_of_cols_val_tab_del);
This code fill the T_TransactionNotification with all the transactions called, and you can spool the content out with the osql utility once a day called by batch job.
regards
János -
I need Help for sp transactionnotification in sales order
I need to block in the price field because I don't want the personal not invoices made below the lowest price item.
I have code in the sbo_sp_transactionnotification is it.
IF (@transaction_type = 'A' or @transaction_type = 'U') AND @object_type = '17'
BEGIN
if exists (Select T0.DOCNUM from ORDR T0 INNER JOIN RDR1 T1 ON
T0.DocEntry = T1.DocEntry
where ((select t3.price
from ITM1 t3
where T3.ITEMCODE=T1.ITEMCODE and t3.pricelist=2)>= t1.price)
and (T0.docentry = @list_of_cols_val_tab_del))
begin
SELECT @error_message = 'esta mal esto, no seas rata!!'
end
ENDthks gordon , the error was parameter @error not asign..
IF (@transaction_type = 'A' or @transaction_type = 'U') AND @object_type = '17'
BEGIN
if exists (Select Distinct (T1.ItemCode) from RDR1 T1 INNER JOIN ORDR T0
ON T0.DocEntry = T1.DocEntry
where (select t3.price
from ITM1 t3
where T3.ITEMCODE=T1.ITEMCODE and t3.pricelist=2) > t1.price
and (T0.docentry = @list_of_cols_val_tab_del))
begin
SELECT @error = 1, @error_message = 'No puedes modificar esta orden Ocupas autorizacion!'
end
END
it now function. thks.
Edited by: mary merecias on Jul 9, 2009 4:55 PM -
Como crear mas de un SP TransactionNotification
Hola Expertos, me pueden ayudar informandome como crear mas de un SP_Transaction_Notification
quiero crear uno donde no me deje hacer un Recibo de production si la cantidad a entregar es mayor que la cantidad planificada
Gracias,Tiene que ir abajo del otro, solo eso.
IF @object_type = '00022' --CONTROL SERIE OC
BEGIN
IF @transaction_type = 'A' or @transaction_type = 'U'
BEGIN
SET @Num=(
SELECT COUNT(*)
FROM OPOR AS T0 INNER JOIN
OCRD AS T1 ON T0.CardCode = T1.CardCode
WHERE ((T1.GroupCode = 101) AND (T0.Series = 16) OR
(T1.GroupCode = 107) AND (T0.Series = 33))
and T0.DOCENTRY=@list_of_cols_val_tab_del
IF (@Num>0)
BEGIN
SELECT @error = 101
SELECT @error_message = N'Error en la Serie (Nacional - Extranjero'
END
END
END
----------BLOQUEO DE CREACION ARTICULOS SEGUN GRUPO
IF @object_type = '4' --MAESTRO ARTICULOS
BEGIN
IF @transaction_type = 'A' or @transaction_type = 'U'
BEGIN
SET @Num=(
SELECT COUNT(*)
FROM OITM T0
WHERE ((T0.ItmsGrpCod = 103 AND T0.UserSign=22)
) and T0.itemcode=@list_of_cols_val_tab_del
IF (@Num>0)
BEGIN
SELECT @error = 101
SELECT @error_message = N'Ud. No Puede Crear Articulos con Este Grupo de Articulos, Revise'
END
END
END
att,
Manuel Lazcano -
Is there a way to lock a GL account from use by certain users? Or is there a way to prevent certain GL accounts from being used in certain documents. For example, prevent posting to a cash account when raising a A/R credit memo for a service.
Thanks for your help!I'm thinking you could potentially do it with the TransactionNotification stored procedure.
Depending on the formatting of your procedure, something along the lines of...
If @object_type = AR Invoice AND (@transaction_type= Add)
Begin
If exists (select docentry from INV1 where INV1.AcctCode IN (Locked GL's) and docentry = @list_of_cols_val_tab_del)
Begin
Select @Error = 1, @error_message = 'The selected GL is locked'
End
End -
Payment Approval with notification SDK
Hi,
I need to create with SDK a payment approval procedure, when the user using a date filter get all the payments check its and click ok.
When this step is done. I need to send a notification to the user added in the approval procedures, how do I?
ThanksHi Pablo,
Not sure to understand the need, neither where the SDK is involved.
Even if it's possible to create approval procédures thru SDK, the fact that they are triggered is managed by B1...
For the first point (checking payments), I would perhaps suggest a functional way to handle it: the first person saves the payment as a draft (check to implement, i.e. in the TransactionNotification stored procedure) and after validation, the second posts it... And it goes thru the approval process.
And by doing these two, you are staying fully Inside the standard processes...
Where do your needs differ from my understanding?
Regards,
Eric -
Hi Dear Members,
I want to default cash & bank accounts for users. in our company some users use several cash accounts &
bank accounts.so can you tell me ,
1-how to restrict selected cash & bank accounts for a user and
2- how to default one cash & bank account for a user
thank you
samanHi Saman,
One question for one thread please. This is forum rule.
For your 1st question, you can use SP TransactionNotification to reach your goal. Search within forum to find similar examples.
You created two identical posting. I have removed the other.
Thanks,
Gordon -
Hello everyone,
While replicating a BP from R3 to CRM, I get the BDoc error "BP is a duplicate".
I checked in the ADRC table of CRM. There were 4 entries with the same city, telephone number, country, street, name, etc.
Considering this, its logical that the Bdoc is giving an error.
But why did the same error not occur for other BP's which had same address.
While debugging I found that the function module "BUPA_address_change" was giving this error.
Thanks in advance..
Regds,
ArpitaYou can use TransactionNotification Stored Procedure to achieve this. Something like this should do the job....
IF @object_type = '17' AND (@transaction_type='A' or @transaction_type='U')
BEGIN
IF EXISTS (SELECT T0.NumAtCard FROM ORDR As T0 WHERE T0.U_SOTYPE = 'SO' AND T0.CardCode In (SELECT T1.CardCode FROM ORDR AS T1 WHERE T1.DocEntry = @list_of_cols_val_tab_del) And T0.NumAtCard In (SELECT T2.NumAtCard FROM ORDR AS T2 WHERE T2.U_SOTYPE = 'SO'AND T2.DocEntry = @list_of_cols_val_tab_del) GROUP BY T0.NumAtCard HAVING COUNT(*) > 1)
BEGIN
SELECT @Error = 1, @error_message = 'Duplicated Customer Ref. No. Found'
END
END -
Resting Posting Inventory if the Detail field is empty
Hi Expert,
I would like to restrict the users to Post/Reconcile the Inventory Posting, how could i do this on StoredProcedure-TransactionNotification, I have tried the script below but still i cant fixed the problem.
Please help me on this.
-- RESTRICT POSTING INVENTORY POSTING LIST (Inventory Posting) --
If @transaction_type in ('A','U') AND @Object_type = '58'
BEGIN
IF EXISTS (SELECT T0.Transnum FROM OINM T0 WHERE T0.Comments IS NULL AND T0.Transnum = @list_of_cols_val_tab_del)
BEGIN
SELECT @Error = 1, @error_message = 'Please enter the detail field first! '
END
END
Thanks,
JohnHi,
you can try this:
If @transaction_type in ('A','U') AND @Object_type = '10000044'
BEGIN
IF EXISTS (SELECT T0.Comments FROM OIQR T0 WHERE T0.Comments IS NULL AND T0.Transnum = @list_of_cols_val_tab_del)
BEGIN
SELECT @Error = 1, @error_message = 'Please enter the detail field first! '
END
END
thanks
H2
Edited by: Hoe Pham Huy on Feb 25, 2011 10:44 AM -
Hi All,
I need to develop a model using RMI, in which 2 way communication is possible. For example, if there are 3 server running on 3 diff. machine(or on same), they all should be able communicate with each other.
one and two way communication is possible.......but confuesed with 3 way.
Can anybody give some tips....
Thanks...
Vaibhav GandhiThe final project includes the following 19 source files:
1. Chad Salinas Account.java - the account implementation class
2. Chad Salinas AccountInfo.java - the data class containing the pin and acctnum from the client request
3. Chad Salinas ATM.java - the interface to the ATMImpl.java
4. Chad Salinas ATMFactory.java - interface to the ATMFactoryImpl , returns remote reference to ATMImpl instance
5. Chad Salinas ATMFactoryImpl.java - implements the ATMFactory interface to the ATMImpl
6. Chad Salinas ATMImpl.java - implements interface to the ATM
7. Chad Salinas ATMServer.java - server creates an ATMFactoryImpl instance, registers it with the registry
8. Chad Salinas BankServer.java - hosts the remote bank and security service
9. Chad Salinas Client.java - drives the ATM system
10. Chad Salinas ATMListenerInf.java - interface to the Client, listens to the atm for transaction notifications
11. Chad Salinas TransactionNotification.java - create the TransactionNotification object
12. Chad Salinas Bank.java - implementation class where accounts are created and reside
13. Chad Salinas Security.java - implementation class authenticates and authorizes banking transactions
14. Chad Salinas BankInf.java - interface to the Bank
15. Chad Salinas SecurityInf.java - interface to the Security service, returns remote reference to Security instance
16. Chad Salinas AccountInf.java - interface front ends Account like ATM front ends ATMImpl
17. Chad Salinas AccountException.java - User defined exception class to throw insufficient funds exception
18.Chad Salinas ATMException.java - User defined exception class to throw insufficient cash-on-hand exception
19. Chad Salinas SecurityException.java - User defined exception class to throw authentication and authorization exceptions
The following 6 files comprise the implementation .class files
that need to rmic'd after comiling the source:
Chad Salinas ATMImpl.class
Chad Salinas ATMFactoryImpl.class
Chad Salinas Bank.class
Security.class
Account.class
Client.class
Test the program using the following steps:
Compile the source files with:
javac cscie160\project\*.java
rmic to get the client stubs and server skels with:
rmic cscie160.project.ATMImpl
rmic cscie160.project.ATMFactoryImpl
rmic cscie160.project.Bank
rmic cscie160.project.Security
rmic cscie160.project.Account
rmic cscie160.project.Client
start rmiregistry
start rmiregisty
start the BankServer with:
java cscie160.project.BankServer
start the ATM server in another cmd window with:
java cscie160.project.ATMServer
start the Client in another cmd window:
java cscie160.project.Client
Design Considerations:
Additional account attributes - I decided to make account number, PIN, and account permissions attributes of
an account. I could just have easily created a special security object to
contain these data members. However, the implemntation, with respect to data structure
and accessing an element would be equivalent to what I have already done with
accounts. I put the accounts in an ArrayList an iterate the list to get the element.
Authenticate, Authorize, and grab the account - I decided that since I grab an account in
ATMImpl, I may as well call the security service with the client-supplied AccountInfo instance
and the Bank-supplied account instance as opposed to grabbing the account and/or bank again in
the security instance.
Account constructors - I expanded the account constructors to create PIN and permissions when an
account is created.
Transfer - A transfer is not exactly a withdrawl and a deposit, because a withdrawl connotes taking cash from
ant ATM whereas a transfer transaction should not decrease an ATM's cash-on-hand.
Transaction Notification - I call tn.toString for all transactions including getBalances. The idea is to see the
transaction details even in the case of a failure.
What to expect:
Everything comiles, rmic's, and executes as it should! -
I'm trying to run the below through the Transactionnotification proces but for some reason it is not working,
it does nothing.
It does work when trying it manually with values in the SQL Manager.
Can anyone see something wrong with the below ?
It should insert a value in a table upon updating a order.
If @transaction_type in ('U') and @object_type in (17)
BEGIN
DECLARE @optellen INT
DECLARE @invoice INT
SET @optellen = (SELECT COUNT(*) FROM dbo.[@ORB_PROVISIE_LINK])+1
SET @invoice = (select Comments from dbo.ordr where docnum=@list_of_cols_val_tab_del)
IF NOT EXISTS (SELECT * FROM dbo.[@ORB_PROVISIE_LINK] WHERE U_Order=@list_of_cols_val_tab_del AND Name=@invoice)
BEGIN
INSERT INTO dbo.[@ORB_PROVISIE_LINK] (Code,Name,U_Order)
VALUES (@optellen,@invoice,@list_of_cols_val_tab_del)
END
END
Edited by: Norman Uittenbogaart on Apr 9, 2009 12:04 PM
- Query adjusted a bitEven when I just enter the following in the Transactionnotification
INSERT INTO dbo.[@ORB_PROVISIE_LINK] VALUES (1000,1000,1000);
It does not put it in the database...
I'm beginning to think he just skips the whole section.
Strange thing there is another script in there which it does execute...
Can someone please give a suggestion, I'm stuck...
Edited by: Norman Uittenbogaart on Apr 9, 2009 4:09 PM -
Restrict Adding Sales Order with ProjectCode
Hi Experts,
i try restrict Sales ORder from Adding without ProjectCode (from itemlevel - RDR1.Project). Below is my script on TransactionNotification, but still it doesnt work..please help my with my script...
IF @transaction_type IN ('A', 'U') AND @object_type = '17'
BEGIN
IF EXISTS (SELECT t0.DocNum FROM ORDR t0 inner join RDR1 t1 on t0.docentry
= t1.docentry WHERE t1.Project ='' AND t0.Docentry = @list_of_cols_val_tab_del)
BEGIN
SELECT @Error = 1, @error_message = 'Please enter the field "Project Code" first ! by: IT Dept.'
END
END
Thanks,
jonathanTry with this modification:
IF @transaction_type IN ('A', 'U') AND @object_type = '17'
BEGIN
IF EXISTS (SELECT t0.DocNum FROM ORDR t0 inner join RDR1 t1 on t0.docentry
= t1.docentry WHERE isnull( t1.Project,'') ='' AND t0.Docentry = @list_of_cols_val_tab_del)
BEGIN
SELECT @Error = 1, @error_message = 'Please enter the field "Project Code" first ! by: IT Dept.'
END
END
Maybe you are looking for
-
BLUE SCREEN OF DEATH 1800+ XP T-Bred Overclock 1.92 GHz
I get the BSOD in any game while overclocked 166 FSB to 1.92 GHZ. I've uninstalled and reinstalled ATI display drivers and NVIDIA board drivers with the same results. It wasn't this unstable for a week at a 166 FSB setting! At the normal 1800+ speed
-
Macbook (Black) Will Not Boot After Update (grey screen of non-booting)
I bought my first MacBook less than one month ago. Last night at 9pm the apple update software said there was an update and I should restart. It has not been able to boot since. Now, when the computer turns on it shows a grey screen with a dark grey
-
How to handle multiple inbound interfaces with WSDL messages
Hi All, We have a synchronous: Abap Proxy -> XI -> WebService Scenario. The webservice has multiple SoapActions e.g. SearchForProduct_WithX, SearchForProduct_WithY each with different message types. We have tried to use the receiver determination to
-
I am trying to open an SGML file it says can't find the dtd. The file is in the same folder with the sgml file?
-
Query in PL/SQL code is slower
I have a very strange issue within my development database, I'm using Oracle 10g. I created a query to read some data from a large collection of tables -OFDM tables- I have tested and tuned the performance of the query from (PL/SQL Developer 7 ), it