Issue with WHEN-VALIDATE-ITEM trigger in Forms 6i
I am working with a form(A) which displays a modal window(B) with some database fields on it when a button on the form was pressed.
First as soon as I pressed the button on the form A the modal window B appears with the values as (for example)
Scenario - 0
field 1 - OTHER
field 2 - 123-456
field 3 - 14-JUN-2006
field 4 - Old Contract
Scenario - 1
If field 1 is changed/updated to a value NONE then the remaining fields should grey out and should not allow the user to edit/update those fields. Also it should clear all the data in the fields and should display only blank fields. Now the only updatable field in this case is field 1 which has value NONE at this moment.
field 1 - NONE
field 2 - NULL
field 3 - NULL
field 4 - NULL
Only if the user exits the modal window B and clicks on SAVE button which is on the form A then only the data changes are committed to the database tables.
At this moment I don't want to exit the modal window B which means the data changes are not yet committed to the database.
Scenario - 2
Now if field 1 is again changed/updated to a value ANOTHER then the remaining fields has to be populated accordingly using the values from the form A and B and it should allow the user to edit/update the remaining fields in window B.
field 1 - ANOTHER
field 2 - 123-456
field 3 - 14-JUN-2006
field 4 - Old Contract
Now if you observe Scenario - 0 and Scenario - 2 only field 1 is differing. Rest of the three fields are same. As I didn't exit from the modal window the changes were not committed to the database.
If the order of the scenarios is like below:
Case1 : Scenario - 1 & Scenario - 2
Case2 : Scenario - 1 & Scenario - 0
I am able to successfully handle the above two cases as initially the three other fields are set to NULL and the user will be able to update the data and can commit the data.
If the order of the scenarios is like below:
Case3 : Scenario - 0 & Scenario - 1
Case4 : Scenario - 0 & Scenario - 2
I am also able to successfully handle the above two cases as finally the three other fileds are set to NULL and the user will be not be able to modify them and obviously NULL values will be stored in the database when committed.
Now the problem is with the following order.
Case5 : Scenario - 0 & Scenario - 1 & Scenario - 2
Case6 : Scenario - 2 & Scenario - 1 & Scenario - 0
In the above cases we can successfully handle until Scenario - 1 but when comes to Scenario - 2 how can we be able to display the data as shown.
I have tried to perform this using WHEN-VALIDATE-ITEM on field 1. When the field 1 is changed from OTHER to NONE I have assigned NULL to the remaining fields. So it's working fine as I mentioned earlier. Now if I change field 1 from NONE to ANOTHER its allowing to update the remaining fields but its not populating the data.
Can anyone help with this?
Thanks for the patience in reading the problem....
Yes, if you use the debugger as Gerd said you can get and see the data as the code executes line-by-line. You can also use message statements in your code to display the data.
Similar Messages
-
Question on WHEN-VALIDATE-ITEM Trigger in Forms 6i
Hi,
I am working with a form which has two different database blocks. When I enter some valid data in block 1 and hit tab, a key-nxtblk trigger navigates the cursor to the next block. Now this second block has some fields which were disabled at the design time and I have a procedure which sets the properties of these items to enabled when required during runtime. From the first run, when I run this procedure and go to one of these items which has no data filled in yet and press tab, when-validate-item trigger is fired (I am confused with this kind of behavior).
Does anyone know why is it firing when-validate-item trigger and if yes how can we fix it?
My goal is to disable Block2.Item2 only if Block2.Item1 has some value in it.
Can anyone please look into it?
Thanks for your time.Thanks Steve, Vikas and Craig for your valuable suggestions.
Craig, to answer your question, I have no "Copy Value from Item" or "Synchronize with Item" property set on these disabled fields.
To elaborate my problem, I have three non database items in a database block. I have to set the properties during the runtime. Suppose the fields are named as field1, field2, field3. Now I have to have when-validate-item triggers on each item with the following content.
WVI trigger on field1
IF field1 IS NULL
THEN
activate field2 and field3.
ELSE
Disable field2 and field3.
END IF;
WVI trigger on field2
IF field2 IS NULL
THEN
activate field1 and field3
ELSE
Disable field1 and field3.
END IF;
WVI trigger on field3
IF field3 IS NULL
THEN
activate field1 and field2
ELSE
Disable field1 and field2.
END IF;I have a procedure which is called in WHEN-NEW-BLOCK-INSTANCE trigger to assign NULL to some fields and set the properties in the block and during this process when I first run the form, the record_status is set to NEW and after setting some fields to NULL the record_status is changed to INSERT. But both the times when-validate-item trigger on each of the fields 1,2, & 3 are fired. No matter we enter any value or not.
can you help in understanding the mistake I am doing or fixing this?
Thanks for your time.
Edited by: new_user on Oct 31, 2008 1:00 PM -
When-validate-item trigger restriction on open form or call form
W have when-validate-item trigger. I need to place a code here that will bring up a form when the "valid entry" on the item has been made. I am getting a frm-40737:Illegal restricted procedure COMMIT...
Code snippet on the procedure that I am calling from the when-validate-item:
IF :System.Form_Status = 'CHANGED' THEN
Commit_Form;
end if;
Call_Form ('MY_FORM', HIDE, NO_REPLACE, NO_QUERY_ONLY,'PARAM');
Is there a work-around. We also cannot use timers here.
Any help is appreciated?
TIAThanks Sudha, I tested and it worked with the key-next-item trigger.
The only thing though, I was told that the users will not use the enter key when they navigate out of the field, it is either clicking on an exit button or function key F4...so I am still stuck with the same problem.
This site is really helpful and I hope to receive more ideas.
Thanks! -
ORA-01403: no data found ---- FRM-40735: WHEN-VALIDATE-ITEM trigger raised
Scenario: I have one Master Detail form. after entering values in master Form, Navigate to Detail form, there I have to enter more that 5000 lines, it's very tough for user to enter huge amount of data.
Workaround: Give one button on Master form and written a cursor to populate all the 5000(relavent) number of record on detail block.
Issue: while populating detail data block after around 3000 record detail form start showing Error as
ORA-01403: no data found
FRM-40735: WHEN-VALIDATE-ITEM trigger raised unhandled exception ORA-06502.
Need suggestion
Code Written on find button as below
BEGIN
--XX customized
if (:ADJ_IP_CTRL.DUE_DT_FROM is null OR :ADJ_IP_CTRL.DUE_DT_TO is null) then
fnd_message.set_string('Due Date from and Due Date To Must be entered.');
fnd_message.Show;
raise form_trigger_failure;
end if;
BEGIN
go_block('ADJ_INV_PAY');
clear_block(no_validate);
for inv_rec in (
SELECT v.invoice_num,
v.invoice_id,
v.invoice_type,
v.pay_alone,
v.exclusive_payment_flag,
v.payment_num,
v.amount_remaining,
--TO_CHAR (v.amount_remaining,fnd_currency.get_format_mask(v.currency_code, 42)) char_amount_remaining,
TO_CHAR (v.amount_remaining,'FM999G999G999G999G999G999G999G999G990D00') char_amount_remaining,
ap_payment_schedules_pkg.get_discount_available (
v.invoice_id,
v.payment_num,
:pay_sum_folder.check_date,
:pay_sum_folder.currency_code)
discount_available,
/*TO_CHAR (ap_payment_schedules_pkg.get_discount_available (
v.invoice_id,
v.payment_num,
:pay_sum_folder.check_date,
:pay_sum_folder.currency_code),
fnd_currency.get_format_mask (v.currency_code, 42))*/
TO_CHAR (ap_payment_schedules_pkg.get_discount_available (
v.invoice_id,
v.payment_num,
:pay_sum_folder.check_date,
:pay_sum_folder.currency_code),'FM999G999G999G999G999G999G999G999G990D00')
char_discount_available,
ap_payment_schedules_pkg.get_discount_date (
v.invoice_id,
v.payment_num,
:pay_sum_folder.check_date)
disc_date,
v.always_take_disc_flag,
v.discount_amount_available,
v.discount_date,
v.second_discount_date,
v.second_disc_amt_available,
v.third_discount_date,
v.third_disc_amt_available,
v.gross_amount,
v.description,
v.accts_pay_code_combi_id,
v.due_date,
v.REMIT_TO_SUPPLIER_NAME,
v.REMIT_TO_SUPPLIER_ID,
v.REMIT_TO_SUPPLIER_SITE,
v.REMIT_TO_SUPPLIER_SITE_ID,
v.RELATIONSHIP_ID,
v.external_bank_account_id,
ieba.bank_account_num external_bank_account_num,
ieba.bank_account_name external_bank_account_name
FROM ap_invoices_ready_to_pay_v v, iby_ext_bank_accounts ieba
WHERE v.party_id = :pay_sum_folder.party_id /* and v.invoice_num like :adj_inv_pay.invoice_num||'%' */
AND ( (:pay_sum_folder.payment_type_flag =
'M')
OR (:pay_sum_folder.payment_type_flag =
'R'
AND v.invoice_type IN
('CREDIT',
'STANDARD',
'DEBIT',
'EXPENSE REPORT',
'MIXED',
'AWT'))
OR /*Bug5948003, Bug6069211*/
(:pay_sum_folder.payment_type_flag =
'Q'
/*AND (v.vendor_site_id =
:pay_sum_folder.vendor_site_id
OR v.invoice_type =
'PAYMENT REQUEST')*/
AND ( (:SYSTEM.LAST_RECORD =
'TRUE'
AND :SYSTEM.cursor_record =
'1')
OR (NVL (
v.exclusive_payment_flag,
'N') =
'N'
AND NVL (
:parameter.pay_alone,
'N') =
'N'))))
AND v.currency_code = :pay_sum_folder.currency_code
AND v.payment_method_code = :pay_sum_folder.payment_method_code
AND NVL (v.payment_function, 'PAYABLES_DISB') =
NVL (:pay_sum_folder.payment_function, 'PAYABLES_DISB')
AND v.set_of_books_id = :pay_sum_folder.set_of_books_id
AND NVL (v.future_dated_payment_ccid, -1) =
DECODE (:parameter.manual_fdp_site_acct_src_flag,
'Y', NVL (:parameter.site_fdp_account_ccid, -1),
NVL (v.future_dated_payment_ccid, -1))
AND v.external_bank_account_id = ieba.ext_bank_account_id(+)
AND v.due_date BETWEEN :ADJ_IP_CTRL.DUE_DT_FROM and :ADJ_IP_CTRL.DUE_DT_TO
ORDER BY v.due_date, UPPER (invoice_num)
--added 08apr2012 (end)
removed 08apr2012 ORDER BY UPPER (invoice_num)
) loop
:ADJ_INV_PAY.INVOICE_NUM := inv_rec.INVOICE_NUM;
:ADJ_INV_PAY.INVOICE_ID := inv_rec.INVOICE_ID;
:ADJ_INV_PAY.INVOICE_TYPE := inv_rec.INVOICE_TYPE;
:ADJ_INV_PAY.EXCLUSIVE_PAYMENT_FLAG := inv_rec.EXCLUSIVE_PAYMENT_FLAG;
:ADJ_INV_PAY.PAYMENT_NUM := inv_rec.PAYMENT_NUM;
:ADJ_INV_PAY.AMOUNT_REMAINING := inv_rec.AMOUNT_REMAINING;
:ADJ_INV_PAY.DISCOUNT_AVAILABLE:= inv_rec.DISCOUNT_AVAILABLE;
:ADJ_INV_PAY.DISC_DATE := inv_rec.DISC_DATE;
:ADJ_INV_PAY.ALWAYS_TAKE_DISC_FLAG := inv_rec.ALWAYS_TAKE_DISC_FLAG;
:ADJ_INV_PAY.DISCOUNT_AMOUNT_AVAILABLE := inv_rec.DISCOUNT_AMOUNT_AVAILABLE;
:ADJ_INV_PAY.SECOND_DISCOUNT_DATE := inv_rec.SECOND_DISCOUNT_DATE;
:ADJ_INV_PAY.SECOND_DISC_AMT_AVAILABLE:= inv_rec.SECOND_DISC_AMT_AVAILABLE;
:ADJ_INV_PAY.THIRD_DISCOUNT_DATE:= inv_rec.THIRD_DISCOUNT_DATE;
:ADJ_INV_PAY.THIRD_DISC_AMT_AVAILABLE := inv_rec.THIRD_DISC_AMT_AVAILABLE;
:ADJ_INV_PAY.GROSS_AMOUNT := inv_rec.GROSS_AMOUNT;
:ADJ_INV_PAY.ACCTS_PAY_CODE_COMBINATION_ID := inv_rec.ACCTS_PAY_CODE_COMBI_ID;
:ADJ_INV_PAY.DUE_DATE := inv_rec.DUE_DATE;
:ADJ_INV_PAY.REMIT_TO_SUPPLIER_NAME := inv_rec.REMIT_TO_SUPPLIER_NAME;
:ADJ_INV_PAY.REMIT_TO_SUPPLIER_ID := inv_rec.REMIT_TO_SUPPLIER_ID;
:ADJ_INV_PAY.REMIT_TO_SUPPLIER_SITE := inv_rec.REMIT_TO_SUPPLIER_SITE;
:ADJ_INV_PAY.REMIT_TO_SUPP_SITE_ID := inv_rec.REMIT_TO_SUPPLIER_SITE_ID;
:ADJ_INV_PAY.APS_EXTERNAL_BANK_ACCOUNT_ID := inv_rec.EXTERNAL_BANK_ACCOUNT_ID;
-- go_item ('ADJ_INV_PAY.INVOICE_NUM');
-- EXECUTE_TRIGGER('WHEN-VALIDATE-ITEM');
validate(record_scope);
if form_success then
next_record;
end if;
end loop;
first_record;
exception
when others then
raise form_trigger_failure;
END;
synchronize;
END;
Thanks
-KrishnHello Krishn,
Welcome to the Oracle Forums. Please take a few minutes to review the following:
<ul>
<li>Oracle Forums FAQ
<li>Before posting on this forum please read
<li>10 Commandments for the OTN Forums Member
<li>How to ask questions the smart way
</ul>
Following these simple guidelines will ensure you have a positive experience in any forum; not just this one!
user12266683 wrote:
Scenario: I have one Master Detail form. after entering values in master Form, Navigate to Detail form, there I have to enter more that 5000 lines, it's very tough for user to enter huge amount of data.
Workaround: Give one button on Master form and written a cursor to populate all the 5000(relavent) number of record on detail block.
Issue: while populating detail data block after around 3000 record detail form start showing Error as
ORA-01403: no data found
FRM-40735: WHEN-VALIDATE-ITEM trigger raised unhandled exception ORA-06502.
Need suggestion
ORA-01403: no data found clearly indicate that you have SQL Select statement in WHEN-VALIDATE-ITEM trigger and does not handled EXCEPTION
add exception in your select statement.
Hope it's clear..
Hamid
If someone's response is helpful or correct, please mark it accordingly.* -
FRM-40735: WHEN-VALIDATE-ITEM trigger raised unhandled exception ORA-06508
Hi all,
In Production instance we have an issue on AP invoice workbench, gives an error (FRM-40735 Post-Query Trigger On Quering Invoice ) when we retrieve the existing invoice data entered.
For this we compiled the invalid objects and applied the patch according to the metalink id [ID 1209736.1]
After that we came up with new error FRM-40735: WHEN-VALIDATE-ITEM trigger raised unhandled exception ORA-06508.
Can any one help us
Thanks
SAIHi Thanks for the reply we have implemented the following things
1) Please download and review the readme for Patch 8671468:R12.AP.B
2) Please apply Patch 8671468:R12.AP.B in a test environment.
3) Check the file versions , they have to be the same as given below.
Patch/115/sql/aphanwfb.pls 120.64.12010000.11
4) Please retest the issue.
5) If the issue is resolved, please migrate the solution as appropriate to other environments.
APXINWKB : When Entering Invoice Details, Get Error: FRM-40735: WHEN-VALIDATE-ITEM trigger raised unhandled exception ORA-06508 [ID 1284114.1]
This is done no luck.
Thanks
Sai -
Workarounds for clear_form in when-validate-item trigger
Hi,
I'm using forms6i
I want to call clear_form in when-validate-item trigger.
Since they are restricted procedures, i cant do that.
So what are the workarounds available?
There are items which are in control block and also records of a datablock available in the form,
I want to clear everything(control block items and datablock items)
ThanksDivya wrote:
Hi,
I'm using forms6i
I want to call clear_form in when-validate-item trigger.
Since they are restricted procedures, i cant do that.
So what are the workarounds available?
There are items which are in control block and also records of a datablock available in the form,
I want to clear everything(control block items and datablock items)
ThanksYou want the clear the form when you fire when-validate-item trigger
inside the when-validate-item trigger after you commit
COMMIT_FORM;
if form_success then
GO_ITEM(-------);
clear_form(no_validate,full_rollback); EXECUTE_TRIGGER('WHEN-NEW-FORM-INSTANCE'); -
How to use when-validate-item in the form personalization?
Dear all,
I want to use when-validate-item trigger in the form personalization on a specific item. while in the same time the when-validate-item is not included in the trigger event list.
Please advice & Thanks in advance
Ashraf AshourUse condition. If you are validating a record, just out the desired check in the condition field for that specific item.
Thanks
Nagamohan -
FRM-40735: When-Validate-Item trigger raised unhandled exception ORA-01861
Dear all, I runned a form designed by Developer 2000 version 4.5 and encountered a puzzling problem. The same program could be runned on one computer but not in another one. The error message is as below: FRM-40735: When-Validate-Item trigger raised unhandled exception ORA-01861. The OS of both computers are windows 2000 professional. The only difference between two computers is the patch files didn't installed on one of them. I don't know if it is the key point. Could you tell me why?
Thank you!!!I sure wish people would post the entire text of the error message. "ORA-01861: literal does not match format string."
What kind of field are you trying to validate? This message is usually due to a date format error. If you are trying to convert text into a date without using TO_DATE('some text','date-format'), then that is the problem. It sounds like you are, and the database default date format is different between the two systems. -
FRM-40735: WHEN-VALIDATE-ITEM trigger raised unhandled exception ORA-04063.
Hi All,
After Cloning the 11i instace to 12.1.3 and when trying to create an absence
am gettin the follwing Error
ORA-01403: no data found
FRM-40735: WHEN-VALIDATE-ITEM trigger raised unhandled exception ORA-04063.
Please note I didnt get any of these kind of errors when cloned for CRP1 or CRP2.
ThanksHi,
Its because of the invalid objects. We have compiled the invalid objects again and the issue got fixed.
Thanks -
FRM-40735: WHEN-VALIDATE-ITEM trigger raised unhandled exception ORA-01403
I am trying to make a manual payment in the APXPAWKB form (Form Version : 12.0.223.12010000.68). When I tab out, after selecting the Payment Document, I am getting the "+FRM-40735: WHEN-VALIDATE-ITEM+" error. Please help.
I am working on R12.1.1. I used the Payment type - Check
Regards
ReemHi;
Its generic error,I suggest review:
Resolving FRM-40735 Errors [ID 61579.1]
Regard
Helios -
Issue with When Validate Trigger firing multiple times
Hi guys,
I have Designed a Form Personalization on a Form which Fires a concurrent Program (built in:execute Procedure) when a Record is Saved.
Below are the issues I am facing:
1.Concurrent Program is Firing Multiple Times after Saving the Record.
2.2 input Values to Concurrent Program are passed as NULL though I have Data but they are in Different Block of Form.
Note :I have When Validate trigger on 1 Block but i am trying to pass 2 Values on Another Block as input parameters for Concurrent program.But those values are getting as null when program fires.
Thanks.If EBS then post in {forum:id=475}
-
Problem while handling When-Validate-Record Trigger in Forms 6i
I am using below mention code in when validate trigger and use go block loop in when button pressed. if Check_Date_Range gives RAISE Form_Trigger_Failure error user will enter in a loop. kindly provide me solution for below mention problem.
BEGIN
Check_Date_Range(:Experiment.Start_Date,:Experiment.End_Date);
END;
** The procedure looks like this
PROCEDURE Check_Date_Range( d1 DATE, d2 DATE ) IS
BEGIN
IF d1 > d2 THEN
Message('Your date range ends before it starts!');
RAISE Form_Trigger_Failure;
END IF;
END;You have more chance to find a response if you post into Forms<br>
<br>
Nicolas. -
WHEN-VALIDATE-ITEM results at a block/form
Hello friends at www.oracle.com ,
as we know, WHEN-VALIDATE-ITEM is a trigger used for item validation. But if I use WHEN-VALIDATE-ITEM at a block, or even at a form (since Oracle Forms editor allows me to add a WHEN-VALIDATE-ITEM trigger at a block/form), what's the effect of it? How will WHEN-VALIDATE-ITEM behave in such situation?
Thanks, and best regards,
Franklin Gongalves Jr.From forms documentation (ever considered to read it?):
A trigger must be attached to a specific object in the form, either an item, a block, or the form itself. The object to which a trigger is attached defines the scope of the trigger, and so helps Form Builder decide which trigger to fire when the corresponding event occurs. Not all triggers are relevant to all objects. For example a When-Button-Pressed trigger would not be attached to a display item.
That means, a when-validate-item-trigger at block level fires for ALL items of the block,
except those ones who have an own when-validate-item-trigger at item level that has the
property "Execution hierarchy" set to "override". -
In Oracle Forms, to run all the When-Validate-Item of all the items at once
In Oracle Forms, is there any built-in / procedure / function which is used to run all the When-Validate-Item triggers of all the Items at once ?
I will put it in detail :
When a form is run and while entering the data..
when we enter some data and try to move out of that item then the When-Validate-Item trigger of that item is fired and the code in that trigger is executed..
Similarly there may be many items and many When-Validate-Item triggers correspondigly in a form..
My requirement is to run all the When-Validate-Item triggers of a form at once when we click a button which is created for that purpose only..
So is there any built-in / procedure / function (to run all the When-Validate-Item triggers of all the items), which can be called in the When-Button-Pressed trigger of that particular button..
If any one having any solution/suggestion, please let me know..
Thanks..
Edited by: user2938447 on Nov 8, 2010 9:03 PM
Edited by: user2938447 on Nov 8, 2010 9:12 PM
Edited by: user2938447 on Nov 8, 2010 10:19 PMHi Sandy,
Thanks for your suggestion..
The validations should be done at Item level (When-Validate-Item as usually) and seperately again when a button is pressed.
So to put all the code in another block-level When-Validate-Item trigger or in any When-Button-Pressed trigger will be duplication of the code.
Actually I have around 30 Fmbs to be modified and each Fmb is having around 20 Items and almost all Items are having When-Validate-Item trigger.
So,I wanted to know whether there is any Built-in / Procedure in Oracle Forms which runs all the When-Validate-Item triggers once it is called.
Thanks.. -
When validate item not firing when exit with mouse
Hi
I have a when validate item tirgger on an item.
it fires fine when I use tab from keyboard after validating
but when i navigate to another field with the mouse, the trigger does not fire.
it only fires when i try to close the window..
how can i overcome this?
thanksNormally, a WVI trigger ALWAYS runs when you leave a field no matter how you leave it (after you have entered something, of course). If it is not running, then you should check whether you have messed around with Set_Form_Property and Validation_Unit.
Or maybe you have some code in your key-next-item trigger that runs that makes you think it is the when-validate-item trigger.
Maybe you are looking for
-
T510 2nd External Monitor No Longer Working
Hey Guys, Hopefully someone can help me out Came into work with my T510 and inserted on to my Lenovo docking station type 4338. For over 2 years now I had it working with 2 external monitors and also the built in monitor display from the laptop. Now
-
Everytime I try to access ITunes store I get a message telling me ITunes has stopped working and crashes out of ITunes on me. Any thoughts ?
-
Music player requires title attribute for song nam...
Hi, I just transferred a set of music to my yellow Lumia 920. Some of the song names do not show up in Lumia music player, and i found the reason : for some of the files, the music file uses the attribute "title". For those files, the song name works
-
H264 movie stutters in QuickTime
I have a 1GHz G4, and h264 videos, e.g. movies, play fine in VLC player--perfectly smooth, but most stutter terribly in QT. I just updated from QT 7.0 to 7.6.4, with no improvement. Clearly the system is fast enough to play such movies, at least up t
-
Role of ABAP Consultant in an Upgrade Project
Hi Friends, I'm an ABAP consultant, I've worked on Implementation Projects till now. Last one was on ECC 6.0. I have been assigned to an upgrade project (from 4.6 to ECC 6.0). So can anybody let me know what is the role and what are the responsibilit