Application Express :: DML Not Updating Fields With Post Calculations?
Jan 9, 2013
I am running APEX 4.0.2.I am having an issue where I have a page item that has a post calculation
My source used is "Always..."
My source type is "Database Column"
I have tried putting the code in the page item under "Post Calculation Computation", as a dynamic action, and as a Computation Process. It displays properly on the form no matter where I put the code, but when I select Apply Changes it is not updating the database. What am I doing wrong? I have provided a sample of the code, and yes the column name is in the database.
CASE
WHEN :P12_NUM_OF_BOOKED_DEALS>0 AND :P12_DATE_1ST_COMPLETE IS NULL THEN '(2) In Process'
ELSE '(D1) Open Draft'
END
I have an application where I'm trying to match skillset supply to skillset demand. We have resources and we have work for resources to do. Resources possess a set of skills. Work requires a set of skills. Skillsets are described by three fields: Domain, Target, Skill. So, we are able to capture the supply of skills in a table:
RSRC_ID (FK to Resource table) DOMAIN TARGET SKILL PROFICIENCY (this is the skill level 1 to 5)
The relationship of resources to skill supply is 1 to many. Conversely, work demands skills, and so we capture skill demand in a table:
WORK_ID (FK to Work table) DOMAIN TARGET SKILL.
The relationship of work to skill demand is 1 to many also.
Users assign skills to resources using a master-detail form. It works fine Users assign skills needed to work also using a master-detail form, and it works fine as well
A view then joins the skillset supply to skillset demand so that assignments can be made only where supply and demand match. This view is used in the LOV below.
I am using a mapping table to capture assignments of work to resources or resources to work. It is a many to many mapping of work and resources with matching skillsets, and it looks like this:
RSRC_ID WORK_ID DOMAIN ( TARGET ( These are the skillsets where demand equals supply and are derived from the view and presented in the LOV ) SKILL (I've created master-detail forms for the two types of assignments. An LOV in the detail form will present qualified resources or eligible work and then return the appropriate RSRC_ID or WORK_ID, but I must also populate the other three fields (DOMAIN, TARGET and SKILL) before I can insert or update the record. Here's the LOV from the form where resources are assigned to work:
SELECT sed.domain||'.'|| sed.target||'.'|| sed.skill||'/'|| sed.skill_prof||' '|| r.first_name||' '|| r.last_name "d", r.rsrc_id "r" FROM ri_resource r, ri_skill_supply_eq_demand sed WHERE r.rsrc_id = sed.rsrc_id AND sed.work_id = :P18_WORK_ID
order by 1It is not enough to just match the work to the resource, we must record for what skillset they are matched. I can't seem to see an easy way to populate the three other fields in the tabular form using data that I can retrieve with the LOV.
Version of the database you are using: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production Version of Application Express: 4.1.1.00.23
I have a requirement that is driving me stark raving bonkers.
I have a form that a user fills out, it sets the Status to 'Open' and I capture the Date Created On in a hidden field. When someone goes back in to the Form and sets the Status to 'Closed' I capture the Date Closed On in a hidden field. I need to calculate how many hours that it took to close the issue and display it on the form.
I'm trying to connect a javascript UI control within my page to an APEX Application Process. The control calls the application process via AJAX and appends a variable number of GET / POST parameters to its URL.What is the best way to obtain these parameters from within the PLSQL procedure of the process? Or is there a better way to connect my javascript AJAX control to the Database behind my APEX app?
I have a multi record block based on a view. All records in the view are displayed in the block by use of Post-Query trigger when entering the form.
The block has 5 items as follows:
1) RECORD_STATUS = a non-base table column which is a checkbox. 2) ITEM_TYPE = a text-item which has an LOV attached. 3) ITEM_TEXT = a text-item which is free format text. 4) LAST_UPDATE_DATE a date column 5) STATUS = a text item either 'Open' or 'Closed'
The LOV is based on a table of Item Types with values say, 'Type1', upto 'Type9'.
I have a Wnen-New-Record-Instance trigger which 'Posts' changes to the database. This has been included as i want to limit the values of the ITEM_TYPE column to values which have not been previously used.
Consider this scenario...
The block has 3 records.
record 1 has 'Closed' status so no updates are allowed. record 2 has 'Open' status so updating of Item_Text is allowed. record 3 has 'Open' status so updating of Item_Text is allowed.
I check the RECORD_STATUS checkbox on record2.
(This sets the RECORD_STATUS checkbox to a checked value and changes the STATUS column to 'Closed' by When-Checkbox-Changed trigger.) At this point the record has not been saved so if you uncheck the checkbox , then the STATUS column will go back to 'Open'. However at this point i will leave it as Checked (Closed).
I then insert a new record, only values Item4 to Item 9 are correctly shown in the LOV. I select Item4.
I then go back to the previous record and uncheck the Checkbox to say that i wish to leave it 'Open' after all (in effect no changes have occurred), then the STATUS column correctly reverts back to 'Open' by my WCC trigger. If i then SAVE the changes, the new record has been inserted on the database correctly, however the LAST_UPDATED_DATE from the record which was checked and then unchecked has also been updated incorrectly even though no net changes have actually occurred.
(because i am using WNRI trigger to limit the List of Values on the LOV column, this has incorrectly set the previous records LAST_UPDATED_DATE column to be Sysdate.)
how to dynamically populate text fields.For eg, i have a lov with employee no, as soon as a no is selected next text field with employee name will be populated.
How to have a dynamic action populate text fields. When the create button is hit, it will insert the record in the DB like normal.
I had a search box doing a dynamic action when a record_number is entered and the selection changes It populates the remaining text boxes with the results of the record_number.
I used a "SET_VALUE" true action on each individual ITEM
For each individual item i have different SQL Statement populating that item.
Ex. To populate Last_Name/ P2_LAST_NAME item i do the following
Select LAST_NAME from patient_Demographics where record_id = :P2_RECORD_ID
Affected Elements: P2_LAST_NAME
So i have about 8 of these true statements, so i'm hitting the DB 8 times to get the individual items. Is there a way to hit the DB once and set the items using one PL/SQL statement? I tried using a PL/sql function body,
Let me explain, I have two items in my page, the first is not required, if it is null the second field is a value list based on selection A (select from A. .. A. .. where . A..) but if the field is not null then the list of values of the second field is based on the selection B (Select B from B where B. ..).
I create a dynamic action on the event "change" of my first field, on the "true action" I tried this:
I've created a system for managing football within APEX and it is at a stage now whereby the user can view any number of the tables through Reports and insert data into these tables through Tabular Forms. Its using triggers and sequences to allow for new primary keys to be generated each time within these Tabular Forms so I'm at a stage now where I'm really quite pleased with it..
The last thing I'm needing to do now is have it update certain fields when certain records are entered.
club1 (clubId foreign key from clubs table) club2 (clubId foreign key from clubs table) club1goals (the amount of goals, type Number) club2goals (the amount of goals, type Number) club1points (points earned, Type Number) club2points (points earned, Type Number)
When filling out a result, the user will enter the following (as an example):
club1 - 1 (club with ID, 1) club2 - 12 (club with ID, 12) club1goals - 2 (the first club scored 2 goals) club2goals - 0 (the second club scored 0 goals) club1points - 3 (the first club picked up 3 points) club2points - 0 (the second club picked up 0 points)
The result is then entered into the results table and what I am hoping to achieve at this stage is the following:
1) in the clubs table, the gamesplayed is incremented by 1 for both clubs as a result of playing this fixture
2) club1 has however many goals club1 scored added to its current clubtotalgoals field (in this case, it is of course 2)
3) club1 has however many points club1 earned to its current clubPoints field. (In this case it would be 3)
pgit_policy is transaction table having producer code field.
pgith_policy is history table, on that table if any endorsement passed new records created with same polh_sys_id and increment on POLH_END_NO_IDX.
I am trying to update all records of the history table but its updating only higest POLH_END_NO_IDX only. i need to update all producer code.
update pgith_policy a set a.polh_producer_code= (select b.pol_producer_code from pgit_policy b where b.pol_no=a.polh_no --and b.POL_END_NO_IDX= a.POLH_END_NO_IDX and b.POL_END_SR_NO = a.POLH_END_SR_NO and b.pol_producer_code is NOT NULL and b.pol_class_code='10') where a.polh_class_code='10' and a.polh_producer_code is null and a.polh_appr_dt between to_date('01-06-2011', 'dd-mm-yyyy') and to_date('30-06-2011', 'dd-mm-yyyy')
I understand everything -- <gripe> need better Automated Row Fetch (ARF) documentation </gripe>, but I now have CREATE, QUERY, and DELETE working and I can choose to clear the form (or NOT). And I don't claim this is the best or simplest or most-efficient or most straight-forward approach. It's one virtue is that it does seem to work.
I need to be careful state that this involves both Automated Row Processing (ARP) -- which enables INSERT, UPDATE and DELETE. And Automated Row Fetch (ARF) -- which enables SELECT. ARF is found under Page Rendering and ARP is found under page processing. As we have seen, the two are -- or can be -- interdependent. For example, I believe the error I talk about next is caused by ARF trying to fetch the record just deleted by ARP.
Starting from the situation of
1) having the values retained on the screen when CREATE is clicked and the record is added and 2) getting a database error after a DELETE of a row, A solution is the "reset" processes. Under Page Rendering add a "reset page" process to: "Clear Cache for all Items on Pages (PageID,PageID,PageID)" and indicate the page with the database operations and under Conditions: When Button Pressed: choose CANCEL, CREATE, DELETE, QUERY or SAVE. I made two of these - one for CREATE and one for DELETE. To cover both buttons, you need two processes as you can only indicate one button per process.
Now the form (screen) is cleared after the CREATE (by process 1). And since it's also cleared after the DELETE (by process 2), there is no Database error on DELETE.
(The source of that error was ARF trying to retrieve the deleted record because the PK field had the "just deleted" key value. This nulls it and I have ARF set not to attempt a fetch when the key field is null.
So, how about that? Burleson has an example here which adds more detail than I recall seeing before.URL>....
I think the DML Fetch Mode settings he shows are new to the ARP screen in 4.2. I don't see them in 4.1.
The scenario is that I have tabular form that was manually created from a collection; the collection name is "COMPANY"
Within this tabular form, I have number of selection lists (apex_item.select_list) and for each, I fire off a JavaScript based on the "onchange" event (e.g.,'onchange="updateCollection(' || seq_id || ', 10, this.value)"'); updateCollection is a custom function I created. Right now, all it does is alert me with the specifics of the of the selection list. As a further example, if I select "Google" from the selection list, sequence id would be "1", attribute number would be "10" and attribute value would be "Google"
Within this JavaScript, I would like to update the value of this associated element in the "COMPANY" collection. Ideally, I would like to directly call this:
APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE(p_collection_name => "COMPANY", p_seq => 1, p_attr_number => 10, p_attr_value => 'Google') but I could not figure out how to do this.
I have a page which downloads statspack reports from different servers and stores them in APEX. As well as this it also display a summary of data (top 5 wait events & load profile info) when hovering an icon: [URL]... The chart will refresh itself and display the data based on the value of P10_SNAPVAL (storing the PK value). The report does not do as I expect it to do (it isn't refreshing the table). I have the following:
PL/SQL Dynamic Content region making the report Dynamic Action- Event: Change- Item: P10_SNAPVAL- Action: Refresh- Affected Element: Region - Load Profile (the PL/SQL Dynamic Content)- Event scope:
I've tried both bind & live The value of P10_SNAPVAL is changed whenever the user hovers a penguin icon (this works because the chart works).
$('img[name=summary]').mouseover(function() { var get = new htmldb_Get(null,html_GetElement('pFlowId').value, nu
I have created an application as database authentication.In the application, I have developed a screen based on a tabular form,when I try to update a record ,the record is updated with apex_public_user insted of the database login.
create table test ( f1 varchar2(10), f2 varchar2(10), f3 varchar3(10) ) insert into test values ('d1','d2','d3'); insert into test values ('d10','d20','d30');
I want to update the fields of the table as per need i.e update only one field leaving all the data of the fields as it is. Suppose I want to update only f1 (from d1 to x1) field leaving f2, and f3 as it is. I've written stored procedure to update all the fields but do not know how to do it?
Quote:CREATE OR REPLACE PROCEDURE UPDATE_TEST ( U_F1 TEST.F1%TYPE, U_F2 TEST.F2%TYPE,
I am fairly new to Oracle SQL developer and I am having an issue that may very simple but I just cannot work it out logically for some reason.I am trying to calculate the percentage of sales each employee has made form the total of trades. I have been trying to use the COUNT function but it obviously splits the counts for each employee. I then tried a inline view but couldn't get it to work and also a sub-query and had an issue with "not a single group function" and then "not a GROUP BY expression".
how I can do this? I will also need to add the syntax to another inline view
The biggest problem at the moment I have is that I don't know how to go trough all record set having to read it in only once. And other is my calculations doesn't work and im not really sure why.
I have a table which is updated with new records in each 15minutes from network. In order to get the accurate information I must do some arithmetic calculations on some variables.
For example, if the value for column A is 10 @9.45AM and 15 for @10AM the real result should be 15-10=5 for 10AM; because the values are cumulative so I need to subtract. Similar to this I have same operations for 9 more attributes in my table as well.
In order to handle this I used view and did necessary operations by using joining table like this (table name is Operations lets say and id is Primary Key)
create view .... ... from Operations current, Operations prev where current.datetime(+) = prev.datetime - 1 / 96 and current.id = prev.id
When I use this view, the simple select query takes about 15min since I have 25GB record for this table. What can I use instead of this join and solve cumulative values issue?
In Process of upgrading Oracle EBS 12.0.4 to 12.1.1 I updated the $IAS_ORACLE_HOME/appsutil/jdk to jdk 6u24. After replacing the original jdk with jdk 6u24 when I attempted to start the apps adoacorectl.sh failed with below error.
Quote:ld.so.1: /d4/app/oracle/apps/12.0.0/vdd700/web/10.1.3/appsutil/jdk/bin/java: fatal: libjli.so: open failed: No such file or d irectory
I followed below steps to update the jdk 1. extracted the jdk-6u24-solaris-sparcv9.tar.Z to $IAS_ORACLE_HOME/appsutil/jdk 2. Copied lib from old jdk to $IAS_ORACLE_HOME/appsutil/jdk 3. Copied lib from oldjdk/jre to $IAS_ORACLE_HOME/appsutil/jdk/jre 4. The java was not infact in jdk/bin rather it was /bin/sparcv9 so I copied them to /jdk/bin. The same way copied the executables from /jdk/jre/bin/sparcv9 to /jdk/jre/bin .
I have an issue with the oracle forms trigger. This is the scenario. The form is a query only form . A user can only query on this form . No update or insert is allowed.
The base table say TABLE1 consists of these fields. 1) pro id, pro item, empno , fname, lname, deptno .
The user can query on all items except the fname and lname.
The issue is few records in the TABLE1 have null values for the empno.
When the user queries on proid, pro item , empno or deptno - when the empno on TABLE1 is not NULL , the fname and lname should be fetched from a different table say TABLE2. otherwise, if the empno on TABLE1 is null , the fname and lname from the same table i.e, TABLE1 are retrieved. I have tried with the post change trigger on empno . Also tried the When validate item trigger . But it doesnt work the way it is expected to. what is the appropriate trigger that must be used.
I have installed Oracle 10g on Windows 7 64 bit today by own from the following link with data.
[URL]
1. At the start of my installation
Global Database Name : oracl Password : my own password
2. At last i got the message "The installation of Oracle Database 10g was successful."
I have tried logon with
User Name as scott with tiger with Host String as oracl User Name as scott with tiger User Name as system with manager with Host String as oracl User Name as system with manager
But i am unable to login to SQL.
Note: In between installation, i have not set any password.
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; [code]....
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.
I have been testing out a form using 10.1.2.0.2 on a v10.2.0.1 db and in my local env. the form works correctly i.e. if I make a change and 'post' it and then exit and press NO (when asked to save changes) then it correctly leaves the value in the database as it originally was.
The process works by the user pressing a button in form A (read only form) and this opens form B (using open_mode,session,activate) and the user makes their change(s) in form B (a 'post' command is issued in a When New Rec Inst trigger on a db block when the user navigates to a new record within the same block if it is determined that the block status <> 'QUERY') before returning to form A and pressing 'NO' when prompted to save changes.
However, if I run the same process in the TEST env. using the same executable against the same database then it actually updates the database value.
I have tested this by adding a debug message at the end of form B to retrieve the db value back AFTER having issued a clear_form(no_commit) just for the sake of the test and it still returns me the 'new' i.e. amended value - which is obviously incorrect. From what I can see it would appear that the commit occurs straight after the 'post' has been issued and well before the user even exits the form.
Is this a known bug with the 'post' built-in or could it be that a parameter is set to act in this way (i.e. is there an 'autocommit' setting that is 'ON') within the application server?
IF :item1 IS NULL AND :item3 IS NOT NULL THEN alert_id := FIND_ALERT('blank_alert'); SET_ALERT_PROPERTY(alert_id,ALERT_MESSAGE_TEXT,'Item3 must have a value.'); v_alert := SHOW_ALERT(alert_id); RAISE Form_trigger_Failure; END IF;
My problem was as it fires, the cursor will be on the item1. I've already use
SET_ITEM_INSTANCE_PROPERTY NEXT_ITEM GO_ITEM
but it was all illegal. The cursor must be in the item3.
Don't question me why I do not set the item3 to required and why post triggers. It is just that. It is the requirement.
i upgraded oracle db from 11.2.0.2.0 11.2.0.3.0 on linux using dbua. after completion of the up gradation what are the post upgradation steps. does i need to run any scripts.