Question

Custom block PL/SQL and only popup window information.

  • 16 June 2020
  • 8 replies
  • 2700 views

Badge +2

Hello.

When i am writing in custom block PL/SQL :

Error_SYS.Record_General(‘This program was executed ’,’Some text’) ;

then application show popup window whith this two texts, but block "pl/sql" is return/exit and not execute.

 

How show in application only popup window whith this information, but don't stoping the block pl/sql ?

 


8 replies

Userlevel 3
Badge +8

Hi,

Here’s an example:

Client_SYS.Add_Info('CustomerOrderLine', 'CPRICECHNGD: Price has been changed') 

BR, Lukasz

Badge +1

Hi,

I tried this in IFS10 (on customer_order_lines) by creating a custom menu with action PL/SQL block and using this line of code (this exact line just to be sure) and I get no pop-up. I was getting the “Operation was successful” by default but since turning that off, nothing happens.

If I put in Error_sys.record_general  that pops-up.

Is there some other setting that has to be made for client_sys.add_info to show?

B R

Ivan

Userlevel 3
Badge +8

Hi,

Hmmm, recently I’ve  checked “add_info” with APP8 and APP9. I’m not sure if something changed in APP10. Please try with whole condition:

 

BEGIN

IF &OLD:BUY_QTY_DUE != &NEW:BUY_QTY_DUE

AND

&OLD:SALE_UNIT_PRICE != &NEW:SALE_UNIT_PRICE

THEN

            Client_SYS.Add_Info('CustomerOrderLine', 'CPRICECHNGD: Cena sprzedazy uległa zmianie w linii/dostawy ' ||  '&NEW:LINE_NO' || '/ '||'&NEW:REL_NO' ||'. Poprzednia cena: ' || rtrim(ltrim(to_char(&OLD:SALE_UNIT_PRICE,'999990D0099')))||' , nowa cena: '|| rtrim(ltrim(to_char(&NEW:SALE_UNIT_PRICE,'999990D0099'))));

END IF;

END;

 

It worked fine by changing of the sales qty & price on Customer Order Line.  Of course you may adjust “IF” to your own requirements.

BR, Lukasz

Badge +2

I’m using APP9 version and using method Add_info from then Client_sys package works only when we use them in trigger. The use in pl/sql block under RBM doesen’t display the information window.

 

@Łukasz - Your code suggests using a trigger, not a pl/sql block in custom menu

 

Userlevel 7
Badge +19

Client_SYS.Add_Info may only work when you add it in an event. It also must be supported by the client. Typically it is only possible when the client call is New__, Modify__ or Remove___. Almost all other methods do not have this functionality.

 

A more technical exnplanation:

From the client you call for example a Modify__ method:

PROCEDURE Modify__ (
   info_       OUT    VARCHAR2,
   objid_      IN     VARCHAR2,
   objversion_ IN OUT NOCOPY VARCHAR2,
   attr_       IN OUT NOCOPY VARCHAR2,
   action_     IN     VARCHAR2 )

The text you add in Client_SYS.Add_Info is at the end put into the info_ variable which is returned to the client.

The client then shows an information message for each message in the info_ variable. All other methods called from the client does not have this functionality by default.

A Custom Menu for example will result in a PL/SQL-Block called from the client and that can’t have this functionality.

 

 

Badge +2

@Tomas Ruderfelt now we know that Client_SYS.Add_Info not work in pl/sql custom menu.

You know any other method to display information window using custom menu pl/sql block ?

Userlevel 7
Badge +19

No, there is unfortunately no way to show an information message after a custom menu.

 

You theoretically could do it by executing your code, doing a commit and run Error_SYS.Record_General but that will look like an error message to the user, even if you have done something and committed.

But I do not think it is  a good solution.

Userlevel 4
Badge +9

Instead of showing an information popup you could create a streams message containing the information. I understand, this does not create the same attention for the user as a popup.

Reply