Post record trigger
Hi ,
I need to use post record trigger, but it is not working in oracle forms 6 , do you have any suggestion ?
I want to use this trigger to prevent the cursor to go to the next record before commit the previuos one.
Thanks
The Post-Record trigger is a valid trigger in Forms 6i. Can you show us your code in this trigger?
Craig...
Similar Messages
-
Post-query trigger ? save changes?
I have a similar problem to that posted by 'nova' on Dec. 27, 2000. I have a form generated by Designer. The problem is that upon subsequent querying (F8 pressed twice), it asks me if I want to save my changes, when I have not made any changes.
I looked in the generated code for the post-query trigger and found SET_RECORD_PROPERTY(:SYSTEM.TRIGGER_RECORD, 'NEW_CUST', STATUS, QUERY_STATUS) which is apparently not the problem, according to this prior post. I am at a loss and have tried everything I could think of.
What else could be causing this? I checked to see if there were any items being set in the property sheet to default values, and removed the defaults - that did not work.
??? I would greatly appreciate any assistance. Thanks.Hi Pina,
my similar problem I have solved like this:
Post-Record trigger:
BEGIN
*** this is important to test the record status - without this I had the same problem
IF :SYSTEM.Record_Status='INSERT' THEN
IF :TRANZIT_ZADAJ.ID_SADZBY_TV_PRENOSOV IS NULL THEN
:TRANZIT_ZADAJ.ID_SADZBY_TV_PRENOSOV:=:SADZBY_ZADAJ.ID;
END IF;
END IF;
END;
You can check Pre-... and Post-... triggers
if there are any items being set to any values.
I hope this will help you.
Helena -
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... -
Is there an Oracle Forms Post-Query trigger equivalent
Hi.
Jdeveloper 11.1.1.2
Is there a way in ADF to populate extra read-only text-columns in an af:table (based on a ViewObject) as was possible in Oracle Forms with a Post-Query-Trigger:
Post-Query
Perform an action after fetching a record, such as looking up values in other tables based on a value in the current record.
Fires once for each record fetched into the block.
Best regards
ErikErik wrote:
Hi.
Jdeveloper 11.1.1.2
Is there a way in ADF to populate extra read-only text-columns in an af:table (based on a ViewObject) as was possible in Oracle Forms with a Post-Query-Trigger:
Post-Query
Perform an action after fetching a record, such as looking up values in other tables based on a value in the current record.
Fires once for each record fetched into the block.
Best regards
ErikHi,
http://docs.oracle.com/cd/E15523_01/web.1111/b31974/appendix_formstriggers.htm#sm0350 -
Post Query Trigger with cursor
Good afternoon to all of you!
I need your help. I create a master detail form. I created also a post quey trigger, inside I wrote the code below.
A cursor looks to another table and returns to the form some values i need!
declare cursor C1 is select apofaa,startdate,enddate,transport
from trapofdet
where trapofdet.apofcode = :trapof.apofcode;
begin
open C1;
loop
fetch C1 into :TRAPODOSI_NEW_NEW.APOFAA, :TRAPODOSI_NEW_NEW.STARTDATE, :TRAPODOSI_NEW_NEW.ENDDATE, :TRAPODOSI_NEW_NEW.TRANSPORT;
exit when C1%notfound;
next_record;
end loop;
close C1;
first_record;
null;
end;
How to solve the a. frm-40737, illegal restricted procedure go block in post-query trigger
b. It seems tha returns all the records but it appears only the last one.
Please can anybody help with these?
Thanks in advance!
ChristosChristos,
The Post-Query trigger will fire once for each record returned to your form therefore you need to write your query to return a single row rather than a multiple rows. Using the Post-Query trigger to fetch additional data into your form can cause your form to be very slow - depending on the number of records returned and how many columns are fetched by your Post-Query cursor as well as how quickly the query executes.
Is your Post-Query trigger on your Master or Detail block. Are you using the Post-Query trigger to populate your Detail block? Are you using a Block Relationship to coordinate your Master and Detail blocks?
Also, it is helpful to know which version of Oracle Forms you're using.
Craig B-)
If someone's response is helpful or correct, please mark it accordingly. -
Problem with post query trigger
Hi,
I have a multi record block and there is a post-query trigger on it. Based on values of this block I populate other values over the other control block.
I wrote code in post-query trigger and when I execute the query and go to last but one record. The values in the control block are from last record instead of last but one record. Pls help me to fix
Thanks,if you want to see the data in the control block synchronized with the database block then use the WHEN-NEW-RECORD-INSTANCE and not the POST-QUERY.
with the POQ you add additional data (in non-basetable-items) to the records in the database block -
let say i define a post insert trigger for a datablock , then when this will be execute ?, after the insert is performed , in another words will the trigger wait till a comfirmation message is send from the database or let say that the insertion is not completed becuse of network failure then will the trigger execute?
Hi,
In Metalink document 61675.1 you can find the trigger execution sequence for Forms 4.5. I can't find the trigger execution sequence for Forms 6i, but I think this should be the same for most events.
For the event "create record", see the following triggers:
Create Record 1. Post-Change Block
2. When-Validate-Item Block
3. Post-Text-Item Block
4. When-Validate-Record Block
5. Post-Record Block
6. Post-Block Block
7. On-Savepoint Form
8. Pre-Commit Form
9. Pre-Insert Block
10. On-Insert Form
11. Post-Insert Block
12. Post-Forms-Commit Form
13. On-Commit Form
14. Post-Database-Commit Form
15. Pre-Block Block
16. Pre-Record Block
17. Pre-Text-Item Block
18. When-New-Item-Instance Form
So it seems the the Post-Insert trigger fires AFTER the insert is performed. The insert will be performed in the On-Insert trigger.
HTH
Kind regards,
Lennart de Vos -
Post-change trigger raising when query!!
this trigger is form related: i just attach a post-change trigger with an item.
contains the following code
declare
name varchar2(50);
name1 varchar2(50);
begin
name1 :='%'||:BLK_EMP_MST.FATHER_NM||'%';
select first_nm INTO name from hrt_emp_mst
where father_nm like name1;
if(name is not null) then
MESSAGE(name||' has same father name');
MESSAGE('WARNING');
end if;
exception
when no_data_found then
null;
end;
it working fine when we insert a new record. but when i query for record, it fires, which should not beI agree with Manu, rather than use a Post-Change trigger to validate user input, use the When-Validate-Item (WVI) trigger instead. This will allow you to validate the input from a user, but the WVI trigger won't fire when a record is queried into your block.
@Manu
POST-QUERY is kept only for backward compatibility in 10gI think you meant to say "Post-Change" instead of "Post-Query." The Post-Change trigger has been depricated, but the Post-Query trigger is still valid in all Forms versions.
Craig B-)
If someone's response is helpful or correct, please mark it accordingly. -
Hi,
I am using Forms Version 9.0.4.0.19.
I created a form which consists of two blocks. Both blocks have a database field called city_code. I am trying to create a post-change trigger that would display the description and not the code of the city. Unfortunately, I keep getting no records found when I run the form although I now for certain there are records, there are records when I remove both triggers.
Here is my code for the trigger for block1:
=======================================================
BEGIN
SELECT DESCRIPTION
INTO :INST.txtCITY
FROM DICT
WHERE CODE = :INST.CITY_CODE
END;
=======================================================
Here is my code for the trigger for block2:
=======================================================
BEGIN
SELECT DESCRIPTION
INTO :CONTACT.txtCITY
FROM DICT
WHERE CODE = :CONTACT.CITY_CODE
END;
=======================================================
Thanks in advance.
VCHi Again,
I thought it worked, it didn't give me an error when I compiled it, but when I ran the form the data didn't appear. Below is my code, can somebody please help?
DECLARE
CURSOR LOOKUP_INST_TYPE IS SELECT DICT.DESCRIPTION
FROM DICT
WHERE DICT.CODE = :INSTITUTION.INST_TYPE
AND DICT.TOPIC = 'INST_TYPE';
BEGIN
OPEN LOOKUP_INST_TYPE;
FETCH LOOKUP_INST_TYPE INTO :INSTITUTION.TXTINST_TYPE;
CLOSE LOOKUP_INST_TYPE;
END; -
Populate Form Field from Post-Query Trigger
I have a form with some fields like "start_date", "company_id", "previous_start_date", "previous_company_id". Out of these, the "previous" fields are unbound and the others are bound to "my_companies" table. All are in the same block on the form. I have a post-query trigger which runs a cursor to select "previous" values based on the "start_date" and "company_id". More than one "previous" values is retrieved each time. My problem is that my cursor writes back only one value into my form field. I ran the cursor as a pl/sql block in TOAD to test and it fetches all the records that I need. I'm not sure what I'm doing wrong in writing the values into form items. The form items are of type "custom" and display type is "text" (I'm creating the form in Oracle Designer). My cursor code is something like this:
declare
cursor previous_data_cur is
select company_id,start_date
from my_companies
where company_id = :myblock.company_id
and start_date < :myblock.start_date;
BEGIN
open previous_data_cur;
LOOP
fetch previous_data_cur into :myblock.prev_company_id, :myblock.prev_start_date;
EXIT WHEN previous_data_cur%NOTFOUND;
END LOOP;
close previous_data_cur;
END; Can anyone provide any pointers on what I could be doing wrong or what I should do to make this work?
Any help is greatly appreciated.Do you have several previous date fields per record?
How are they named? Previous_date_1, previous_date_2,...?
Try this:
declare
cursor previous_data_cur is
select start_date
from my_companies
where company_id = :myblock.company_id
and start_date < :myblock.start_date;
l_previous_data previous_data_cur%ROWTYPE;
l_count NUMBER;
BEGIN
l_count := 1
FOR l_previous_data IN previous_data_cur
LOOP
copy(l_previous_data.start_date, 'my_block.previous_start_date_'|| l_count);
END LOOP;
END; Caution:
- number of retrieved records may not exceed number of previous_date fields.
- not tested -
FRM-40735 POST- UPDATE trigger raised unhandled exception ORA- 01403
FRM-40735 POST- UPDATE trigger raised unhandled exception ORA- 01403
I am getting the above error when i am trying to change the Assignment Category field of
an employee from Junior Staff to Senior Staff.
Navigation People> Enter & Maintain> (B)Assignment.
Kindly assist me to resolve this error.
Plz note there is a promotion that is suppose to be given to some employees in our company as of
01-APR-2010 so i had to open the closed payroll periods and do the changes. I managed to change for all
the 9 employees but 1 employee's assignment is giving me an error as follows :
FRM-40735 POST- UPDATE trigger raised unhandled exception ORA- 01403
The error displays after i try to save the changes made to the Assignment Category from Junior Staff to Senior Staff.
NB: i have also tried to switch off the custom code...but its giving me same error.
Also the element links have been defined for employment category on the links window.
please help!!
Edited by: 594647 on Jul 20, 2010 10:26 PMRelease 12.1.1.
OS is Red Hat Ent Ed 4
i am trying to change the employee assignment category from Junior to Senior. so when i am updating the assignment details on the assignment screen (Navigation is People >Enter & Maintain> Assignment) and trying to save, the system gives error on the status bar of the application as follows:
FRM-40735 POST- UPDATE trigger raised unhandled exception ORA- 01403
NB: Error is appearing on the Assignment screen.
Please help!!
Edited by: 594647 on Jul 21, 2010 2:48 PM -
Post-form trigger raised unhandled exception
I have enabled TRANSLATION and ATTACHMENTS menu on my oracle form(form customization).
but if i click on attachment menu the window opens for attachments but when i am going to close a window it throws an exception as
**FRM-40735: POST_FORM trigger raised unhandled exception ORA-06502**
and it is not allowing to close an window i have to terminate application every time.
what shall i do in this situation ????????Hello,
There is a related known issue for the Qualifications form of Oracle Human Resources -
PERWSQUA Cannot add Attachments to the Qualification Form - FRM-40735: POST-FORM trigger raised unhandled exception ORA-06502 (Doc ID 1470386.1)
Reference the solution steps and search on your form name as opposed to the PERWSQUA.
If still not resolved, please open an SR with the owning application of the form or for Forms Developer.
Thank you,
Deborah Bourgeois
Oracle Customer Support -
Master-Detail Form - implementing some thing like Post-Query trigger
Hi all,
I am struggling to implement an eqivalent of a post-query trigger in Oracle Forms. Please bear with me as I am trying to explain in detail what the problem is.
Here is my situation.
I have three tables EMP, DEPT and LOCATION. I created a Master/Table pages on EMP and DEPT.
Basic relationships.
Each LOCATION has one or more DEPTs; Each DEPT is at one and only one LOCATION.
Each DEPT has one ore more EMPs; Each EMP is assigned to only and only DEPT.
Not getting too complicated, here are the table layouts:
LOCATION:
ID number(10,0) not null,
NAME varchar2(20) not null
DEPT
ID number(10,0) not null,
NAME varchar2(20) not null,
LOC_ID number (10,0) not null foreign key from LOCATION
EMP
ID number(10,0) not null,
NAME varchar2(20) not null,
DEPT_ID number (10,0) not null foreign key from DEPT
Assume I have all the constraints, BIU triggers, sequences defined properly.
I am using the APEX page wizard to create a Master/Detail Form on DEPT and EMP. The first page is the Master Report on DEPT. I want to display the Location Name on this page also. Because the Master Report allows
you to change the query, I was able to add the Location Name as part of the
query. This was very simple.
Select a.name "Department_Name",
b.name "Location"
from dept a, location b
where a.loc_id = b.id
Moving on, In the Master Detail Form, I would like to get the Location Name as part of the first Region (Dept Region).
In this region, I would like to include the Location Name also. So my first region on the Master Detail form includes:
Dept Id: ________
Dept Name: _______
Location Name: __________
As Region are automatically populated using using a Fetch Row from EMP table (Automated Row Fetch) on an After Header process point, I don't have a way of including the Location as part of query. So I created a Region level Item called Location Name, made it Display only.
In the old SQL*Forms, or Oracle Forms days, I used to use a Post-Query trigger, or Post-Change trigger to fire on the Loc_Id column to populate the Location Name. Simple fetch like:
Select name
into :P80_location_name
from location
where loc_id = :P80_loc_id
However, I am struggling to implement some thing simple like this in APEX. Tried creating a processes, computatations etc, but nothing is working.
I have seen some previous responses to fetching values from a foreign table
using a button or AJAX script, but this should be very basic. What am I
missing here?
Appreciate any insights.
Thanks.
JohnHi John,
I'm not too familiar with the post-query triggers in Oracle Forms, but the use of a List of Values (LOV) on your LOCATION table might do the trick for you. If you create a dynamic LOV based on your LOCATIONS table, it can then be referenced by the LOC_ID item on the Master-Detail page, to display the Location Name. You could try doing the following:
1. Create a new dynamic LOV, LOCATIONS, using a query similar to the following:
select Name d, ID r
from LOCATION
order by 1
2. Edit the "Create" button on the Master report page, and in the "Optional URL Redirect" section set "Request" to CREATE. Click Apply Changes, to save the setting.
3. Edit the LOC_ID item on your Master-Detail page, and set the following:
* in the "Name" region change the "Display As" setting to Select List
* in the "Label" region change the Label to Location Name.
* in the "List of Values" region set the "Named LOV" to LOCATIONS
* in the "Read Only" section, set the condition to Request != Expression 1, and set Expression 1 to CREATE.
Click Apply Changes to save the settings.
When you run the pages now, the Location Name field will appear as Read-Only when editing a selected Master row. The item will appear as a Select List when the user clicks "Create" on the Master page, to create a new Master row.
I hope this helps.
Regards,
Hilary -
Execution of ddl statement in post-insert trigger
hi,
I'm working on headstart 6.5. I wants to execute a DDL statement in post-insert-trigger.The problem is this trigger is executed in between pre-commit and post-forms-commit.In pre-commit the transaction is opened with a insert statement that is inserting "open" in field status which is having a deffered check constraint QMS_NEED_TO_CLOSE_TRANSACTION.In post-forms-commit it will check whether the transaction is open if yes will check the business rule will delete the data that was inserted into qms_transaction in pre-commit trigger and will close the transaction .
In between if i execute a DDl statement a commit will be performed on the insert statement written in pre-commit trigger.This will violate the check-constraint and we will get the error qms_need_to_close_transaction violated.
My business logic wants this statement to be executed at the post-insert trigger on the block.Is this possible??
Does anyone have face the same problem?Whts the workaround for the same?Hello,
You could use the execute_query after the commit_form called, by exeample in a KEY-COMMIT trigger.
KEY-COMMIT trigger
Commit_Form ;
Go_block( 'master_block' ) ;
Execute_Query ;Francois -
Errors with post-insert trigger
I had a POST-INSERT TRIGGER here.but i encountered some problems.can someone help me with the errors?
begin
insert into user_acct
userid_n, user_m, coy_c, contact_n, emp_n,
work_loc_c, curr_passwd_t, prt_f, indv_pc_f, pc_deploy_c,
ext_email_addr_t, other_na_sys_t, status_c, status_rmk_t, upd_d)
values
(:user_acct.userid_n, :user_acct.user_m, :user_acct.coy_c, :user_acct.contact_n, :user_acct.emp_n,
:user_acct.work_loc_c, :user_acct.curr_passwd_t, :user_acct.prt_f, :user_acct.indv_pc_f, :user_acct.pc_deploy_c,
:user_acct.ext_email_addr_t, :user_acct.other_na_sys_t, :user_acct.status_c, :user_acct.status_rmk_t,
:user_acct.upd_d);
exception
when others then
clear_message;
Message('Insertion of Applicant Particulars failed');
SYNCHRONIZE;
RAISE Form_Trigger_failure;
end;
begin
insert into user_acct_na_detl
na_sys_c)
values
(:na_sys_cd.na_sys_c);
exception
when others then
clear_message;
Message('Insertion of Non-Application failed');
SYNCHRONIZE;
RAISE Form_Trigger_failure;
end;
when others then
null;
end;
the error:
Error 103 at line 31, column 3
Encountered the symbol 'WHEN' when expecting one if the following:
begin declare end exception exit for goto if loop mod null
pragma raise return select update while <an identifier>
<a double-quoted delimited-identifier><a bind variable><<
close current delete fetch lock insert open rollback
savepoint set sql commit<a single-quoted SQL string>
The symbol "exception"was substituted for "WHEN" to continue
Error 103 at line 2, column 1
Encountered the symbol "END"i delete the "END" already but when i compile again, i encountered some error again.
Error 370 at line 27, column
OTHERS handler must be last among the exception handlers of a block
Error 0 at line 1, column 1
Statement ignored
Maybe you are looking for
-
Cache problem question. What am I doing wrong?
index.html page has ENTER button that leads to content.html. Content.html holds > content.swf. I will be updating the content.swf file regularly so want content.html to always display latest content.swf file. Btw content.html is just a blank page wh
-
Error when using the Attach to Email... Feature
I currently using Adobe Reader 8.0 as well as Adobe Acrobat Professional 8.0. Whenever I try to use the Attach to Email... feature I get a debugging error. It always brings up the Visual Studioi Just-In-Time Debugger. It will create the email, but it
-
HT4489 how do I print a copy of a month in iCloud calendar?
Is it possible to print a monthly calendar from iCloud like I could from iCal ?
-
What to do when activation fails and no meaningful information provided
Hello, I just tried activating an Activity in a track. It failed and the Activation Results tab just says "Activation failed. No DC specific results available" If I try to create another activity, it's going to consider this failed activity a predece
-
This post is intended to be more of an FYI than anything, For Build JDEVADF_11.1.1.1.0_GENERIC_090615.0017.5407, both Studio and Java Edition I could not get any of the updates to download. 1) I am running Windows 7 RTM (and really liking it) AND a X