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.
Similar Messages
-
Frm-40735: when validate record trigger raised unhandled exception ORA-0406
while on production when i open any form and inserting some valeus after that when i want ot save the information it is showing me following error
frm-40735: when validate record trigger raised unhandled exception ORA-04062ORA-04062: %s of string has been changed Cause: Attempt to execute a stored procedure to serve an RPC stub which specifies a timestamp or signature that is different from the current timestamp/signature of the procedure.
Action: Recompile the caller in order to pick up the new timestamp >
Check the When-Validate-Record trigger in your form and look for any calls to a database stored procedure. Then check the status of the database procedure to ensure it is "Valid." If the procedure is not valid - find out why and fix it.
Hope this helps,
Craig B-)
If someone's response is helpful or correct, please mark it accordingly. -
When-validate-record trigger only if a non database item is changed
Hi,
I am trying a code in the when-vaidate-record trigger in the BLOCK level.
The trigger should fire only if a checkbox item value is ticked(Value ='Y) for the present record(i.e, if already existing other records have a value ticked (='Y), it doesnt matter and trigger shouldnt fire)
Please help me achieve this :
The code I have tried in when-vaidate-trigger, which does not work as what I want :
DECLARE
X NUMBER;
BEGIN
if
nvl ( :DEFLOC.to_be_defaulted, 'N' ) = 'Y' and :DEFLOC.COMMENTS is NULL
and :SYSTEM.RECORD_STATUS ='CHANGED'
then
set_alert_property(
'err_alert',
alert_message_text,
'You must enter a comment when defaulting localities.');
x := show_alert('err_alert');
RAISE FORM_TRIGGER_FAILURE;
end if;
END;The above code does not fire at all..
If I remove the part,
and :SYSTEM.RECORD_STATUS ='CHANGED'
it fires for "all records"(not just the currently changed records) where nvl ( :DEFLOC.to_be_defaulted, 'N' ) = 'Y' and :DEFLOC.COMMENTS is NULL
Please help !!
Note: :DEFLOC.to_be_defaulted is a non database item ; :DEFLOC.COMMENTS is a database itemHi kriti,
There is one more way,
In the when-checkbox-changed trigger,
if :your_chk_box = 'Y' then
set_Record_property(:system.cursor_Record, 'your_blk',status,changed_Status);
else
set_Record_property(:system.cursor_Record, 'your_blk',status,Query_Status);
end if;
Then it is easy for you to find out the changed records using get_Record_property((:system.cursor_Record, 'your_blk',status)
Hey let me ask you one Question, is that check_box item is database item ???
If so,
it is easier..the fol. code will work for that
if nvl ( :DEFLOC.to_be_defaulted, 'N' ) = 'Y' and :DEFLOC.COMMENTS is NULL
and nvl(get_item_property('DEFLOC.to_be_defaulted',database_value),'N') = 'N' then
set_alert_property(
'err_alert',
alert_message_text,
'You must enter a comment when defaulting localities.');
x := show_alert('err_alert');
RAISE FORM_TRIGGER_FAILURE;
end if;otherwise
If your are creating that temp. item, it should be in the same block as non-db item.
I will explain this... You are setting the status of to_be_defaulted check box of some queried record to Y based on some conditions, right?
These records anyways are not updateable. Now your requirement is to find out the newly checked check boxes.
So in the post query or the place where you set to_be_defaulted as 'Y, we will default the new item with value Y, so that in the when validate trigger, you
know which record needs to attacked, It is those records with nvl( new item ,'N') = 'N' and to_be_defaulted = 'Y'...
Regards
Dora... -
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 -
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.
-
Form trigger failure in WHEN-VALIDATE-RECORD still saves data
Hi, I have a WHEN-VALIDATE-RECORD trigger on one of my data blocks. When there is an problem with the data, I use RAISE FORM_TRIGGER_FAILURE. The error dialog appears, but it's still saving the data to the database!
Here is the code for the WHEN-VALIDATE-RECORD trigger:
-- WHEN-VALIDATE-RECORD Trigger for WTL_USERS Block in form MANAGE_ACCOUNTS
DECLARE
v_user_name VARCHAR2(10);
v_alert_button NUMBER;
BEGIN
-- Check if this is the ADMIN account
-- If it's a new account an error will occur - this is OK, nothing happens
SELECT user_name
INTO v_user_name
FROM wtl_users
WHERE user_id = :WTL_USERS.USER_ID;
-- If this is the ADMIN account, you cannot disable it
IF v_user_name = 'ADMIN' THEN
-- Ensure that the ADMIN account has not been disabled
IF :WTL_USERS.USER_ACTIVE = 'N' THEN
v_alert_button := SHOW_ALERT('ADMIN_ACTIVE_ALERT');
RAISE FORM_TRIGGER_FAILURE;
ELSIF :WTL_USERS.USER_NAME != 'ADMIN' THEN
v_alert_button := SHOW_ALERT('ADMIN_NAME_ALERT');
RAISE FORM_TRIGGER_FAILURE;
ELSIF :WTL_USERS.USER_ROLE != 'A' THEN
v_alert_button := SHOW_ALERT('ADMIN_ROLE_ALERT');
RAISE FORM_TRIGGER_FAILURE;
END IF;
END IF;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
What am I doing wrong?
Thanks
AdamHello,
Exception
When form_trigger_failure Then
Raise
When others Then
The when others exception trap all the exceptions including form_trigger_failure.
Francois -
DECLARE
PO_TSF_INDICATOR VARCHAR2(1);
LOC_TYPE VARCHAR2(10);
TSF_FROM_LOCATION VARCHAR2(50);
PO_SUPP NUMBER(10);
QTY NUMBER(12,4);
BEGIN
IF :SYSTEM.RECORD_STATUS = 'CHANGED' THEN
PO_TSF_INDICATOR := TRIM(:B_REQUEST.LI_PO_TSF_IND);
LOC_TYPE := TRIM(:B_REQUEST.LI_REQUEST_LOC_TYPE);
TSF_FROM_LOCATION := TRIM(:B_REQUEST.TI_TSF_FROM_LOC);
PO_SUPP := TRIM(:B_REQUEST.TI_PO_SUPPLIER);
QTY := TRIM(:B_REQUEST.TI_FULFILLED_QTY);
IF PO_TSF_INDICATOR = 'P' THEN
EMESSAGE('PO_TSF_INDICATOR IS "P" ');
UPDATE AFE_STORE_ORDERS
SET PO_TSF_IND = PO_TSF_INDICATOR,
PO_SUPPLIER = PO_SUPP,
FULFILLED_QTY = QTY,
TSF_LOC_TYPE=' ',
TSF_FROM_LOC=' '
WHERE ITEM = TRIM(:B_REQUEST.TI_ITEM);
EMESSAGE('PO-TSF-INDICATOR :' || PO_TSF_INDICATOR);
EMESSAGE('PO-SUPPLIER:' || PO_SUPP);
EMESSAGE('QTY :' || QTY);
COMMIT;
ELSIF PO_TSF_INDICATOR = 'T' THEN
EMESSAGE('PO_TSF_INDICATOR IS "T" ');
UPDATE AFE_STORE_ORDERS
SET PO_TSF_IND = PO_TSF_INDICATOR,
TSF_LOC_TYPE = LOC_TYPE,
TSF_FROM_LOC = TSF_FROM_LOCATION,
FULFILLED_QTY = QTY,
PO_SUPPLIER = ' '
WHERE ITEM = TRIM(:B_REQUEST.TI_ITEM);
EMESSAGE('PO-TSF-INDICATOR :' || PO_TSF_INDICATOR);
EMESSAGE('LOC-TYPE :' || LOC_TYPE);
EMESSAGE('TSF-FROM-LOC :' || TSF_FROM_LOCATION);
EMESSAGE('QTY :' || QTY);
END IF;
END IF;
END;
This is trigger written in when validate record. Now the problem is, update statement isnt working ....Is it like in when validate record (block level), update command dont work ? And is when validate record trigger (when written at the block level) will fire for each record (if its multi record block) ? Please clarify ..
Regards
Message was edited by:
SeshuHi,
As suggested by you, I have written the code in on-update trigger (block level)
EMESSAGE('ON UPDATE TRIGGER');
:GLOBAL.QTY := TRIM(:TI_FULFILLED_QTY);
IF :GLOBAL.IND = 'P' THEN
EMESSAGE('INSIDE "P" LOOP"');
UPDATE AFE_STORE_ORDERS
SET PO_TSF_IND = :GLOBAL.IND,
PO_SUPPLIER = :GLOBAL.PO_SUPPLIER,
FULFILLED_QTY = :GLOBAL.QTY,
TSF_FROM_LOC = ' ',
TSF_LOC_TYPE = ' '
WHERE ITEM = TRIM(:B_REQUEST.TI_ITEM);
COMMIT;
EMESSAGE('RECORD UPDATED');
ELSIF :GLOBAL.IND = 'T' THEN
EMESSAGE('INSIDE "T" LOOP"');
EMESSAGE(:GLOBAL.IND);
EMESSAGE(:GLOBAL.QTY);
EMESSAGE(:GLOBAL.FROM_LOC);
EMESSAGE(:GLOBAL.LOC_TYPE);
BEGIN
UPDATE AFE_STORE_ORDERS
SET PO_TSF_IND = :GLOBAL.IND,
PO_SUPPLIER = null,
FULFILLED_QTY = TO_NUMBER(:GLOBAL.QTY),
TSF_FROM_LOC = TO_NUMBER(:GLOBAL.FROM_LOC) ,
TSF_LOC_TYPE = :GLOBAL.LOC_TYPE
WHERE ITEM = TRIM(:B_REQUEST.TI_ITEM);
commit;
EMESSAGE('RECORD UPDATED');
EXCEPTION
WHEN OTHERS THEN
EMESSAGE(SQLERRM);
END;
END IF;
ERASE ('GLOBAL.IND');
ERASE ('GLOBAL.QTY');
ERASE ('GLOBAL.FROM_LOC');
ERASE ('GLOBAL.LOC_TYPE');
ERASE ('GLOBAL.PO_SUPPLIER');
Tell me how am i to know whether its getting fired or not ? because, i cant see message being populated
Regards -
Form_trigger_failure in when-validate-record fired message three times
Hello all,
I have a problem with one of my forms. Indeed, I have used when-validate-record trigger to validate fields block.
So, when user fills a duplicate I display an error message with two choices. Accept or proceed to change. The action button 1 is impeccable.
But when the user clicks the button 2 of the message, I raise form_trigger_failure exception. What is strange is that my error message appears three times if I get out of the record by the mouse but once I get out of line by the tab.
Is there someone who can help me on that?
Please, find below the code that produce this result :
IF :CTRL2.MATCH_REC > 1 then
L_ALERT := SHOW_ALERT('ALERTE_1');
IF L_ALERT = ALERT_BUTTON1 Then
NULL;
elsif L_ALERT = ALERT_BUTTON2 Then
raise Form_trigger_failure;
end IF;
end IF;
Thank you in advanceDear CraigB,
Thank you for your answer but I still working without success.
I found that the trigger W-V-R is fired thee times so the value of :CTRL2.MATCH_REC is recalculated every time (as shown by Kevin D Clarke about validating duplicate http://forums.oracle.com/forums/profile.jspa?userID=8905) witch is correct.
If I affect 0 or null to :CTRL2.MATCH_REC, it's not raising finally the form_trigger_failure (F_T_F), so it's working has button 1.
Note that I found after catching others exception (exception when others then...) a 100501 non-oracle exception.
I don't know if my repetition is caused by this exception?
Note again that, when I put other statement instead of raising F_T_F, it's working fine. His just only when I raise F_T_F that I have this behaviour.
Do you have any idea ?
Thanks in advance
Edited by: pkn87897 on Oct 23, 2008 7:09 AM -
Restricting User from creating new records using when-validate-record
Hi,
I have a requirement for which I have to restrict he user from creating a record in the Supplier Master form if the suppliier type is 'Affiliate Supplier'.
I have done the following setups
Seq 10
Description Restricting user from creating Affiliate records
Level Function
Enabled Yes
Condition:
Trigger Event WHEN-VALIDATE-RECORD
Trigger object VNDR
Condition "${item.VNDR.VENDOR_TYPE_DISP_MIR.value} is NOT NULL
and
${item.VNDR.VENDOR_TYPE_DISP_MIR.value} LIKE 'Affiliate%'
Processing Mode BOTH
Context
Level User
Value User Name
Action Sequence 1
Type Message
Action Description Saving Affiliate record
Language ALL
Message Type Show
Message Text You Cannot Create Affiliate records Here
Action Sequence 2
Type Builtin
Action Description Stop Proceesing
Language ALL
Action Enabled Yes
Builtin Type RAISE FORM_TRIGGER_FAILURE;
This is working good on one instance but when I moved it to another instance
when I query the form and try to navigate to the bank accounts tab of the form which is based on a differnt block i.e VNDR_USES block, the when-validate-record trigger fires there also and stops the processing.
Any suggestions on this would be higly appriciated.
Thanks in Advance.Hi Srini,
Yes, it does work...but in a Form Session if i Create more then one Item, in some cases it fires for the first records and not sleeps for the second.
Sometimes it doesn't give any response.
Appreciated if you divert to the link to check the Pacthes for 11.5.10 on Form Personalization.
Please share any ideas/example if yiou have to achieve the below requirement.
Requirement:
Once New record is created , a Custom Procedure should be invoked.
with out closing Form i am able to create n number of Items, so for every Item it should invoke Custom PLSQL Code on Save.
Let me know if i can achieve the same in Custom.pll .....as i can use either of Options.(Form Personalization/Custom.pll)
Thanks & regards,
Edited by: user632004 on Mar 16, 2010 7:50 PM
Edited by: user632004 on Mar 16, 2010 8:09 PM -
Form personlization using WHEN-VALIDATE-RECORD to call PLSQL Package
Hi
I am writing a Form Personalization on master Item Form for New Records Only.
Once Item Is defined and saved, it should Invoke the Custom Procedure to insert the same record in Custom Table.
===========
Trigger Event - WHEN-VALIDATE-RECORD
Trigger Block:MTL_SYSTEM_ITEMS
Condition: :MTL_SYSTEM_ITEMS.INVENTORY_ITEM_ID<>-1 AND 0=(SELECT COUNT(inventory_item_id ) FROM Custom table
WHERE inventory_item_id = :MTL_SYSTEM_ITEMS.inventory_item_id
AND Organization_id=:MTL_SYSTEM_ITEMS.organization_id )
ACTION
Built In type = Execute Procedure
Argument = ='DECLARE
v_field_value VARCHAR2(200);
BEGIN
UPDATE_CUSTOM('''||${item.MTL_SYSTEM_ITEMS.ORGANIZATION_ID.Value}||''','''||${item.MTL_SYSTEM_ITEMS.INVENTORY_ITEM_ID.Value}||''');
END'
============
Here its not firing as required for evey required.
Please advice.
Thanks in advance.Hi Srini,
Yes, it does work...but in a Form Session if i Create more then one Item, in some cases it fires for the first records and not sleeps for the second.
Sometimes it doesn't give any response.
Appreciated if you divert to the link to check the Pacthes for 11.5.10 on Form Personalization.
Please share any ideas/example if yiou have to achieve the below requirement.
Requirement:
Once New record is created , a Custom Procedure should be invoked.
with out closing Form i am able to create n number of Items, so for every Item it should invoke Custom PLSQL Code on Save.
Let me know if i can achieve the same in Custom.pll .....as i can use either of Options.(Form Personalization/Custom.pll)
Thanks & regards,
Edited by: user632004 on Mar 16, 2010 7:50 PM
Edited by: user632004 on Mar 16, 2010 8:09 PM -
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.* -
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! -
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'); -
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. -
Equivalent command in OAF for when when validate record in forms
Hi,
what is the equivalent command in OAF to when when validate record in forms
kumarHi Kumar,
validateRow() of your XXVORowImpl is equivalent of When-Validate-Record of forms.
This method calls validateEntity() of your XXEOImpl
This method is generally invoked on form submits (POST Requests)
Regards,
Ravi
Maybe you are looking for
-
Cannot login to network account (leopard client and server)
Up until now, I have used local accounts on my leopard server. I want to start experimenting with OD prior to implementing. I created a new user account in the /LDAPv3/127.0.0.1 domain, and have bound my leopard client to the server using directory u
-
Email no longer chiming?
When I receive emails, my phone no longer chimes and I have to refresh in my inbox for new mail to pop up. I checked in my settings and the chime it still on for new mail in my inbox. It just stopped doing it yesterday. Anyone else had this problem/k
-
Cluster does not populate in sub-vi unless front panel is opened
I have a sub-vi that saves my data to a database and the cluster containing the data will not populate unless I open the front panel when it executes. What could possibly cause this?
-
I was trying to set up my mobile phone with Android with the Firefox App and my Netbook which I use the Firefox on and sync them but it came up that I have a Master Password but I do not recall setting one up and I have record of all my passwords tha
-
How can I remove the "Notifications" icon from the Menu Bar in OS 10.9?
How can I remove the "Notifications" icon from the Menu Bar in OS 10.9?