The affect of failed validation on the page rendering phase

This is divided in two parts. In the first one I describe the behavior and in the second I show work around and make a suggestion.
The need that started this was that the value an item needed to be recalculated each time de page was shown. This page could be called from buttons and from branches on other pages. So the logical place to put this calculation is in Computation of the Page Rendering phase. But, when a validation failed the value wasn't shown on the browser and I later discovered it was not calculated at all. I tried moving the calculation in a Process of the Page Rendering phase, but to that didn't worked either. So I needed to have a beter understanding of happens when a validation fails, ence this test.
The test was done on version 3.1.2 of APEX.
For this test, here is what I programmed (if no values is specified, than the property has the default value):
1. I created a blank page
-- In the Page Rendering part --
2. I created a region with the following properties
Identification
- Title: Alpha
- Type: PL/SQL (Anonymous block)
Source
- Region Source: wwv_flow.debug('> RENDER REGION Alpha SOURCE');
Conditional Display
- Condition Type: PL/SQL Function Body Returning a Boolean
- Expression 1: wwv_flow.debug('> RENDER REGION Alpha CONDITION'); RETURN TRUE;
Caching
- Caching: Cahed
- Cache Condition Type: PL/SQL Function Body Returning a Boolean
- Expression 1: wwv_flow.debug('> RENDER REGION Alpha CACHE CONDITION'); RETURN TRUE;
3. I created an item with the following properties
Name
- Name: P1_X
- Display As: Textfield
Displayed
- Region: Alpha
Source
- Source Used: Always, replacing any existing value in session state
- Source Type: PL/SQL Function body
- Source value or expression: wwv_flow.debug('> RENDER ITEM P1_X SOURCE'); RETURN NULL;
- Post Calculation Computation: :P1_X || ' POST-CALCUL'
Default
- Default value: wwv_flow.debug('> RENDER ITEM P1_X DEFAULT'); RETURN 'RENDER ITEM P1_X DEFAULT';
- Default Value Type: PL/SQL Function body
Conditions
- Condition Type: PL/SQL Function Body Returning a Boolean
- Expression 1: wwv_flow.debug('> RENDER ITEM P1_X CONDITION'); wwv_flow.debug('> P1_X="'||:P1_X||'"'); RETURN TRUE;
Read Only
- Read Only Condition Type: PL/SQL Function Body Returning a Boolean
- Expression 1: wwv_flow.debug('> RENDER ITEM P1_X READ_ONLY CONDITION'); RETURN FALSE;
4. I created a second item with the following properties
- Name: P1_Y
- Display As: Textfield
Displayed
- Region: Alpha
Source
- Source Used: Only when current value in session state is null
- Source Type: PL/SQL Function body
- Source value or expression: wwv_flow.debug('> RENDER ITEM P1_Y SOURCE'); RETURN NULL;
- Post Calculation Computation: :P1_Y || ' POST-CALCUL'
Default
- Default value: wwv_flow.debug('> RENDER ITEM P1_Y DEFAULT'); RETURN 'RENDER ITEM P1_Y DEFAULT';
- Default Value Type: PL/SQL Function body
Conditions
- Condition Type: PL/SQL Function Body Returning a Boolean
- Expression 1: wwv_flow.debug('> RENDER ITEM P1_Y CONDITION'); wwv_flow.debug('> P1_Y="'||:P1_Y||'"'); RETURN TRUE;
Read Only
- Read Only Condition Type: PL/SQL Function Body Returning a Boolean
- Expression 1: wwv_flow.debug('> RENDER ITEM P1_Y READ-ONLY CONDITION'); RETURN FALSE;
5. I created a button with the following properties
Name
- Button Name: GO
- Text Label/Alt: Go
Displayed
- Display in Region: Alpha
- Button Position: Top of Region
Conditions
- Condition Type: PL/SQL Function Body Returning a Boolean
- Expression 1: wwv_flow.debug('> RENDER BUTTON Go CONDITION'); RETURN TRUE;
6. I created a second button with the following properties
Name
- Button Name: GOERRNULL
- Text Label/Alt: Go invalid
Displayed
- Display in Region: Alpha
- Button Position: Top of Region
Conditions
- Condition Type: PL/SQL Function Body Returning a Boolean
- Expression 1: wwv_flow.debug('> RENDER BUTTON Go invalid CONDITION'); RETURN TRUE;
7. I created a thrid button with the following properties
Name
- Button Name: RESET
- Text Label/Alt: Reset cache
Displayed
- Display in Region: Alpha
- Button Position: Top of Region
Conditions
- Condition Type: PL/SQL Function Body Returning a Boolean
- Expression 1: wwv_flow.debug('> RENDER BUTTON Reset CONDITION'); RETURN TRUE;
Optional URL Redirect
- Target is a: Page in this Appplication
- Page: 1
- resetpagination for this page: checked
- Request: RESET
- Clear Cache: 1
8. I created a computation with the following properties
Item Name
- Item Name: P1_Y
- Type: PL/SQL Function body
Computation Point
- Computation Point:Before Header
Source
- Computation: wwv_flow.debug('> RENDER CALCUL P1_Y SOURCE'); RETURN 'RENDER CALCUL P1_Y SOURCE';
Conditional Computations
- Condition Type: PL/SQL Function Body Returning a Boolean
- Expression 1: wwv_flow.debug('> RENDER CALCUL P1_Y CONDITION'); RETURN TRUE;
9. I created a process
Name
- Name: Beta
- Type: PL/SQL anonymous block
Process Point
- Process Point: On Load - Before Header
- Run Process: Once Per Page Visit (Default)
Source
- Process: wwv_flow.debug('> RENDER PROC Beta SOURCE');
Conditional Processing
- Condition Type: PL/SQL Function Body Returning a Boolean
- Expression 1: wwv_flow.debug('> RENDER PROC Beta CONDITION'); RETURN TRUE;
-- In the Page Processing part --
10. I created a computation
Item Name
- Item Name: P1_Y
- Type: PL/SQL Function body
Computation Point
- Computation Point:After Submit
Source
- Computation: wwv_flow.debug('> PROC CALCUL P1_Y SOURCE'); RETURN 'PROC CALCUL P1_Y SOURCE';
Conditional Computations
- Condition Type: PL/SQL Function Body Returning a Boolean
- Expression 1: wwv_flow.debug('> PROC CALCUL P1_Y CONDITION'); RETURN TRUE;
11. I created a second computation
Item Name
- Item Name: P1_X
- Type: PL/SQL Function body
Computation Point
- Computation Point:After Submit
Source
- Computation: wwv_flow.debug('> PROC CALCUL P1_X SOURCE'); RETURN NULL;
Conditional Computations
- Condition Type: PL/SQL Function Body Returning a Boolean
- Expression 1: wwv_flow.debug('> PROC CALCUL P1_X CONDITION'); RETURN TRUE;
12. I created a validation
Validation
- Name: Delta
- Type: Function Returning Boolean
- Validation Expression 1: wwv_flow.debug('> PROC VALIDATION Delta SOURCE'); RETURN FALSE;
Error Message
- Error Message: err msg
- Associated Item: P1_X
Conditionals
- When Button Pressed: GOERRNULL (Go invalid)
- Condition Type: PL/SQL Function Body Returning a Boolean
- Expression 1: wwv_flow.debug('> PROC VALIDATION Delta CONDITION'); RETURN TRUE;
13. I created a process
Name
- Name: Gamma
- Type: PL/SQL anonymous block
Process Point
- Process Point: On Submit - Before Computation and Validations
- Run Process: Once Per Page Visit (Default)
Source
- Process: wwv_flow.debug('> PROC PROC Gamma SOURCE');
Conditional Processing
- Condition Type: PL/SQL Function Body Returning a Boolean
- Expression 1: wwv_flow.debug('> PROC PROC Gamma CONDITION'); RETURN TRUE;
14. I created a second process
Name
- Name: Epsylon
- Type: PL/SQL anonymous block
Process Point
- Process Point: On Submit - After Computation and Validations
- Run Process: Once Per Page Visit (Default)
Source
- Process: wwv_flow.debug('> PROC PROC Epsylon SOURCE');
Conditional Processing
- Condition Type: PL/SQL Function Body Returning a Boolean
- Expression 1: wwv_flow.debug('> PROC PROC Epsylon CONDITION'); RETURN TRUE;
15. I created a branch
Point
- Branch Point: On Submit: After Processing (After Computation, Validation and Processiong)
Action
- Target Type: Page in this Application
- Page: 1
- include process success message: checked
Conditions
- Condition Type: PL/SQL Function Body Returning a Boolean
- Expression 1: wwv_flow.debug('> PROC BRANCH P1 CONDITION'); RETURN TRUE;
As can be seen, I've programmed all condition to be true and therefore making all objects do thier calculations.
Here is the debug output when we click on "Go". (a line number was added for easy refence)
{color:#999999}001 0.05: A C C E P T: Request="GO"
002 0.09: Metadata: Fetch application definition and shortcuts
003 0.09: NLS: wwv_flow.g_flow_language_derived_from=FLOW_PRIMARY_LANGUAGE: wwv_flow.g_browser_language=en-us
004 0.09: alter session set nls_language="AMERICAN"
005 0.09: alter session set nls_territory="AMERICA"
006 0.09: NLS: CSV charset=WE8MSWIN1252
007 0.09: ...NLS: Set Decimal separator="."
008 0.09: ...NLS: Set NLS Group separator=","
009 0.09: ...NLS: Set date format="DD-MON-RR"
010 0.09: ...Setting session time_zone to -05:00
011 0.09: ...Determine if user "FORD10" workspace "80447903191151509" can develop application "202" in workspace "80447903191151509"
012 0.09: Session: OK to reuse builder session for user:APEX_PUBLIC_USER
013 0.09: Fetch session state from database
014 0.10: ...Check session 2800365259756461 owner
015 0.10: ...Metadata: Fetch Page, Computation, Process, and Branch
016 0.10: Session: Fetch session header information
017 0.10: ...Metadata: Fetch page attributes for application 202, page 1
018 0.10: ...Validate item page affinity.
019 0.10: ...Validate hidden_protected items.
020 0.10: ...Check authorization security schemes
021 0.10: Session State: Save form items and p_arg_values
022 0.10: ...Session State: Save Item "P1_X" newValue="RENDER ITEM P1_X DEFAULT POST-CALCUL" "escape_on_input="N"
023 0.10: ...Session State: Saved Item "P1_Y" New Value="RENDER CALCUL P1_Y SOURCE POST_CALCUL"
024 0.10: Processing point: ON_SUBMIT_BEFORE_COMPUTATION
025 0.11: {color}{color:#ff9900}> PROC PROC Gamma CONDITION{color}{color:#999999}
026 0.11: ...Process "Gamma": PLSQL (ON_SUBMIT_BEFORE_COMPUTATION) wwv_flow.debug('> PROC PROC Gamma SOURCE');
027 0.11: {color}{color:#ff9900}> PROC PROC Gamma SOURCE{color}{color:#999999}
028 0.11: Branch point: BEFORE_COMPUTATION
029 0.11: Computation point: AFTER_SUBMIT
030 0.11: ...Evaluate condition "FUNCTION_BODY" for computation of item: P1_Y
031 0.11: {color}{color:#ff9900}> PROC CALCUL P1_Y CONDITION{color}{color:#999999}
032 0.11: ...Perform computation of item: P1_Y, type=FUNCTION_BODY
033 0.11: ...Performing function body computation
034 0.12: {color}{color:#ff9900}> PROC CALCUL P1_Y SOURCE{color}{color:#999999}
035 0.12: ...Session State: Saved Item "P1_Y" New Value="PROC CALCUL P1_Y SOURCE"
036 0.12: ...Evaluate condition "FUNCTION_BODY" for computation of item: P1_X
037 0.12: {color}{color:#ff9900}> PROC CALCUL P1_X CONDITION{color}{color:#999999}
038 0.12: ...Perform computation of item: P1_X, type=FUNCTION_BODY
039 0.12: ...Performing function body computation
040 0.12: {color}{color:#ff9900}> PROC CALCUL P1_X SOURCE{color}{color:#999999}
041 0.12: ...Session State: Saved Item "P1_X" New Value=""
042 0.12: Tabs: Perform Branching for Tab Requests
043 0.12: Branch point: BEFORE_VALIDATION
044 0.12: Perform validations:
045 0.12: {color}{color:#ff9900}> PROC VALIDATION Delta CONDITION{color}{color:#999999}
046 0.12: ...PL/SQL "function body returning boolean" Validation: wwv_flow.debug('> PROC VALIDATION Delta SOURCE'); RETURN :REQUEST 'GOERRNULL';
047 0.12: {color}{color:#ff9900}> PROC VALIDATION Delta SOURCE{color}{color:#999999}
048 0.13: Branch point: BEFORE_PROCESSING
049 0.13: Processing point: AFTER_SUBMIT
050 0.13: {color}{color:#ff9900}> PROC PROC Epsylon CONDITION{color}{color:#999999}
051 0.13: ...Process "Epsylon": PLSQL (AFTER_SUBMIT) wwv_flow.debug('> PROC PROC Epsylon SOURCE');
052 0.13: {color}{color:#ff9900}> PROC PROC Epsylon SOURCE{color}{color:#999999}
053 0.13: Branch point: AFTER_PROCESSING
054 0.13: ...Evaluating Branch: AFTER_PROCESSING type: "REDIRECT_URL" button: (No Button Pressed) branch: wwv_flow.debug('> PROC BRANCH P1 C5NDITION'); RETURN TRUE;
055 0.14: {color}{color:#ff9900}> PROC BRANCH P1 CONDITION{color}{color:#999999}
0.00:
0.00: S H O W: application="202" page="1" workspace="" request="" session="2800365259756461"
0.00: Language derived from: FLOW_PRIMARY_LANGUAGE, current browser language: en-us
056 0.00: alter session set nls_language="AMERICAN"
057 0.00: alter session set nls_territory="AMERICA"
058 0.00: NLS: CSV charset=WE8MSWIN1252
059 0.00: ...NLS: Set Decimal separator="."
060 0.00: ...NLS: Set NLS Group separator=","
061 0.00: ...NLS: Set date format="DD-MON-RR"
062 0.01: ...Setting session time_zone to -05:00
063 0.01: NLS: Language=en-us
064 0.01: Application 202, Authentication: CUSTOM2, Page Template: 2204612885682472
065 0.01: ...Determine if user "FORD10" workspace "80447903191151509" can develop application "202" in workspace "80447903191151509"
066 0.01: ...ok to reuse builder session for user:APEX_PUBLIC_USER
067 0.01: ...Application session: 2800365259756461, user=APEX_PUBLIC_USER
068 0.01: ...Determine if user "FORD10" workspace "80447903191151509" can develop application "202" in workspace "80447903191151509"
069 0.01: Session: Fetch session header information
070 0.01: ...Metadata: Fetch page attributes for application 202, page 1
071 0.01: Fetch session state from database
072 0.01: Branch point: BEFORE_HEADER
073 0.01: Fetch application meta data
074 0.02: Computation point: BEFORE_HEADER
075 0.02: ...Evaluate condition "FUNCTION_BODY" for computation of item: P1_Y
076 0.02: {color}{color:#ff9900}> RENDER CALCUL P1_Y CONDITION{color}{color:#999999}
077 0.02: ...Perform computation of item: P1_Y, type=FUNCTION_BODY
078 0.02: ...Performing function body computation
079 0.02: {color}{color:#ff9900}> RENDER CALCUL P1_Y SOURCE{color}{color:#999999}
080 0.02: ...Session State: Saved Item "P1_Y" New Value="RENDER CALCUL P1_Y SOURCE"
081 0.02: Processing point: BEFORE_HEADER
082 0.02: {color}{color:#ff9900}> RENDER PROC Beta CONDITION{color}{color:#999999}
083 0.02: ...Process "Beta": PLSQL (BEFORE_HEADER) wwv_flow.debug('> RENDER PROC Beta SOURCE');
084 0.02: {color}{color:#ff9900}> RENDER PROC Beta SOURCE{color}{color:#999999}
085 0.02: Show page template header
086 0.03: Computation point: AFTER_HEADER
087 0.03: Processing point: AFTER_HEADER
088 0.03: Computation point: BEFORE_BOX_BODY
089 0.03: Processing point: BEFORE_BOX_BODY
090 0.03: Region: Alpha
091 0.03: {color}{color:#ff9900}> RENDER REGION Alpha CONDITION{color}{color:#999999}
Alpha
092 0.03: {color}{color:#ff9900}> RENDER BUTTON Go CONDITION{color}{color:#999999}
093 0.03: {color}{color:#ff9900}> RENDER BUTTON Go invalid CONDITION{color}{color:#999999}
094 0.03: {color}{color:#ff9900}> RENDER BUTTON Reset CONDITION{color}{color:#999999}
Go Go invalid Reset cache
095 0.03: {color}{color:#ff9900}> RENDER ITEM P1_X CONDITION{color}{color:#999999}
096 0.03: > P1_X=""
097 0.03: {color}{color:#ff9900}> RENDER ITEM P1_X READ_ONLY CONDITION{color}{color:#999999}
098 0.03: Item: P1_X TEXT
099 0.03: {color}{color:#ff9900}> RENDER ITEM P1_X SOURCE{color}{color:#999999}
100 0.03: {color}{color:#ff9900}> RENDER ITEM P1_X DEFAULT{color}{color:#999999}
X RENDER ITEM P1_X DEFAULT POST-CALCUL
101 0.03: {color}{color:#ff9900}> RENDER ITEM P1_Y CONDITION{color}{color:#999999}
102 0.03: > P1_Y="RENDER CALCUL P1_Y SOURCE"
103 0.04: {color}{color:#ff9900}> RENDER ITEM P1_Y READ-ONLY CONDITION{color}{color:#999999}
104 0.04: Item: P1_Y TEXT
Y RENDER CALCUL P1_Y SOURCE POST_CALCUL
105 0.04: {color}{color:#ff9900}> RENDER REGION Alpha SOURCE{color}{color:#999999}
106 0.04: Computation point: AFTER_BOX_BODY
107 0.04: Processing point: AFTER_BOX_BODY
108 0.04: Computation point: BEFORE_FOOTER
109 0.04: Processing point: BEFORE_FOOTER
110 0.04: Show page tempate footer
111 0.04: Computation point: AFTER_FOOTER
112 0.04: Processing point: AFTER_FOOTER
113 0.04: Log Activity:
114 0.04: Execute Count=0
115 0.04: End Show:{color}
Here is the debug output when we click on "Go invlid". (a line number was added for easy refence)
{color:#999999}201 0.14: A C C E P T: Request="GOERRNULL"
202 0.19: Metadata: Fetch application definition and shortcuts
203 0.19: NLS: wwv_flow.g_flow_language_derived_from=FLOW_PRIMARY_LANGUAGE: wwv_flow.g_browser_language=en-us
204 0.19: alter session set nls_language="AMERICAN"
205 0.19: alter session set nls_territory="AMERICA"
206 0.19: NLS: CSV charset=WE8MSWIN1252
207 0.19: ...NLS: Set Decimal separator="."
208 0.20: ...NLS: Set NLS Group separator=","
209 0.20: ...NLS: Set date format="DD-MON-RR"
210 0.20: ...Setting session time_zone to -05:00
211 0.24: ...Determine if user "FORD10" workspace "80447903191151509" can develop application "202" in workspace "80447903191151509"
212 0.24: Session: OK to reuse builder session for user:APEX_PUBLIC_USER
213 0.24: Fetch session state from database
214 0.29: ...Check session 2800365259756461 owner
215 0.29: ...Metadata: Fetch Page, Computation, Process, and Branch
216 0.29: Session: Fetch session header information
217 0.29: ...Metadata: Fetch page attributes for application 202, page 1
218 0.30: ...Validate item page affinity.
219 0.30: ...Validate hidden_protected items.
220 0.30: ...Check authorization security schemes
221 0.30: Session State: Save form items and p_arg_values
222 0.31: ...Session State: Saved Item "P1_X" New Value="RENDER ITEM P1_X DEFAULT POST-CALCUL"
223 0.31: ...Session State: Saved Item "P1_Y" New Value="RENDER CALCUL P1_Y SOURCE POST_CALCUL"
224 0.31: Processing point: ON_SUBMIT_BEFORE_COMPUTATION
225 0.32: {color}{color:#ff9900}> PROC PROC Gamma CONDITION{color}{color:#999999}
226 0.32: ...Process "Gamma": PLSQL (ON_SUBMIT_BEFORE_COMPUTATION) wwv_flow.debug('> PROC PROC Gamma SOURCE');
227 0.32: {color}{color:#ff9900}> PROC PROC Gamma SOURCE{color}{color:#999999}
228 0.33: Branch point: BEFORE_COMPUTATION
229 0.33: Computation point: AFTER_SUBMIT
230 0.33: ...Evaluate condition "FUNCTION_BODY" for computation of item: P1_Y
231 0.34: {color}{color:#ff9900}> PROC CALCUL P1_Y CONDITION{color}{color:#999999}
232 0.34: ...Perform computation of item: P1_Y, type=FUNCTION_BODY
233 0.34: ...Performing function body computation
234 0.34: {color}{color:#ff9900}> PROC CALCUL P1_Y SOURCE{color}{color:#999999}
235 0.34: ...Session State: Saved Item "P1_Y" New Value="PROC CALCUL P1_Y SOURCE"
236 0.34: ...Evaluate condition "FUNCTION_BODY" for computation of item: P1_X
237 0.34: {color}{color:#ff9900}> PROC CALCUL P1_X CONDITION{color}{color:#999999}
238 0.34: ...Perform computation of item: P1_X, type=FUNCTION_BODY
239 0.34: ...Performing function body computation
240 0.35: {color}{color:#ff9900}> PROC CALCUL P1_X SOURCE{color}{color:#999999}
241 0.35: ...Session State: Saved Item "P1_X" New Value=""
242 0.35: Tabs: Perform Branching for Tab Requests
243 0.35: Branch point: BEFORE_VALIDATION
244 0.35: Perform validations:
245 0.75: {color:#ff9900}> PROC VALIDATION Delta CONDITION{color}{color:#999999}
246 0.76: ...PL/SQL "function body returning boolean" Validation: wwv_flow.debug('> PROC VALIDATION Delta SOURCE'); RETURN FALSE;
247 0.78: {color}{color:#ff9900}> PROC VALIDATION Delta SOURCE{color}{color:#999999}
248 0.78: ...{color}{color:#ff0000}Validation did NOT pass{color}{color:#999999}
249 0.78: ...{color}{color:#ff0000}Inline validation error count = 1{color}{color:#999999}
250 0.86: Show current page with inline validations
251 0.87:
252 0.87: S H O W: application="202" page="1" workspace="" request="" session="2800365259756461"
253 0.87: NLS: Language=en-us
254 0.87: Application 202, Authentication: CUSTOM2, Page Template: 2204612885682472
255 0.88: ...Determine if user "FORD10" workspace "80447903191151509" can develop application "202" in workspace "80447903191151509"
256 0.88: ...ok to reuse builder session for user:APEX_PUBLIC_USER
257 0.88: ...Application session: 2800365259756461, user=APEX_PUBLIC_USER
258 0.88: ...Determine if user "FORD10" workspace "80447903191151509" can develop application "202" in workspace "80447903191151509"
259 0.88: ...Metadata: Fetch page attributes for application 202, page 1
260 0.88: Branch point: BEFORE_HEADER
261 0.88: Fetch application meta data
262 0.88: Computation point: BEFORE_HEADER
263 0.88: ...Evaluate condition "FUNCTION_BODY" for computation of item: P1_Y
264 0.92: {color}{color:#99cc00}> RENDER CALCUL P1_Y CONDITION{color}{color:#999999}
265 0.92: Processing point: BEFORE_HEADER
266 0.92: ......Do not perform process because inline validation condition found.
267 0.92: ...Do not run process "Beta", process point=BEFORE_HEADER, condition type=FUNCTION_BODY, when button pressed=
268 0.92: ...Recompute field lables for fields in error.
269 0.97: Show page template header
270 1.20: Computation point: AFTER_HEADER
271 1.20: Processing point: AFTER_HEADER
1 error has occurred
* Error msg
272 1.20: Computation point: BEFORE_BOX_BODY
273 1.20: Processing point: BEFORE_BOX_BODY
274 1.21: Region: Alpha
275 1.23: {color}{color:#ff9900}> RENDER REGION Alpha CONDITION{color}{color:#999999}
Alpha      
276 1.25: {color}{color:#ff9900}> RENDER BUTTON Go CONDITION{color}{color:#999999}
277 1.25: {color}{color:#ff9900}> RENDER BUTTON Go invalid CONDITION{color}{color:#999999}
278 1.28: {color}{color:#ff9900}> RENDER BUTTON Reset CONDITION{color}{color:#999999}
Go Go invalid Reset cache
279 1.30: {color}{color:#ff9900}> RENDER ITEM P1_X CONDITION{color}{color:#999999}
280 1.30: > P1_X=""
281 1.30: {color}{color:#ff9900}> RENDER ITEM P1_X READ_ONLY CONDITION{color}{color:#999999}
282 1.30: Item: P1_X TEXT
X POST-CALCUL
Error msg
283 1.30: {color}{color:#ff9900}> RENDER ITEM P1_Y CONDITION{color}{color:#999999}
284 1.30: > P1_Y="PROC CALCUL P1_Y SOURCE"
285 1.31: {color}{color:#ff9900}> RENDER ITEM P1_Y READ-ONLY CONDITION{color}{color:#999999}
286 1.31: Item: P1_Y TEXT
Y PROC CALCUL P1_Y SOURCE POST_CALCUL
287 1.32: {color}{color:#ff9900}> RENDER REGION Alpha SOURCE{color}{color:#999999}
288 1.32: Computation point: AFTER_BOX_BODY
289 1.32: Processing point: AFTER_BOX_BODY
290 1.32: Computation point: BEFORE_FOOTER
291 1.32: Processing point: BEFORE_FOOTER
292 1.32: Show page tempate footer
293 1.32: Computation point: AFTER_FOOTER
294 1.32: Processing point: AFTER_FOOTER
295 1.32: Log Activity:
296 1.32: Execute Count=0
297 1.32: End Show:{color}
Looking at those debug output, I was able to find a workaround. Look at the line 264 and compare that to the lines 076 to 080. What I did is put the computation in the condition. This way, I'm garanteed that the calculation is always done. Here is an exemple:
A Computation (in the Page Rendering part)
Item Name
- Item Name: P1_Y
- Type: PL/SQL Function body
Computation Point
- Computation Point:After Submit
Source
- Computation: RETURN :P1_Y; -- Never executed. Look in the condition for computation
Conditional Computations
- Condition Type: PL/SQL Function Body Returning a Boolean
- Expression 1: :P1_Y := COMPUTE(); RETURN FALSE;
This works but totally break the semantics created in APEX.
Suggestion:
In the Page rendering phase, when a validation fails, the source compution found in a Item (in that case the value is taken from the session state), in a Computation or in Process is never executed.
This should revised.
Their should be a way for the programmer to choose what behavior the rendering phase will have when a validation fails other than using a workaround that might break in futur versions of APEX.
Edited by: user4591233 on Nov 19, 2008 6:32 AM
Edited by: user4591233 on Nov 19, 2008 6:34 AM

Dominique,
Thank you for the detailed problem description. Although you posted it some ten hours ago I have just now finished reading it.
Form pages must be built so they can operate correctly when inline validation errors are displayed. The assumption (by the engine) is that session state (and package state) as it exists at the point the validations are performed is sufficient (and correct) to support the redisplay of the page without the need to fire on-load processes or computations. Session state or package state changes made by after-submit computations or after-submit/before computations/validations processes that prevent correct page behavior on the "validation redisplay" must be avoided.
The condition types Inline Validation Errors Displayed/No Inline Validation Errors Displayed can be used for on-load events/controls (processes, computations, regions, items, ...) for which you need finer control over this behavior.
Also, you can forgo the use of after-submit computations when the resulting alteration of session state would be inimical to proper "validation redisplay" behavior and use On Submit - After Computations and Validations processes instead.
I hope I have understood your situation and that this answer adequately answers your questions.
Scott

Similar Messages

  • AIP-13978:  Error - the input xsd fails validation

    Hi,
    For an ebXML setup over Generic exchange. I have to perform validation against XSDs which are nested in structure.
    So while setting up the Document definition in the Business action, I uploaded the files as zip files and provided the name of the root XSD file.
    However on clicking finish the for business action I am getting the IP-13978: Error - the input xsd fails validation: java.lang.NullPointerException
    In the log file error message is as given:
    2007.03.12 at 14:40:16:093: AJPRequestHandler-ApplicationServerThread-5: BusinessLogicLayer - (ERROR) java.lang.NullPointerException
         at oracle.tip.buslogic.datatypeimport.b2b.XMLSchemaImport.getXSDElement(XMLSchemaImport.java:259)
         at oracle.tip.buslogic.datatypeimport.b2b.XMLSchemaImport.importXSD(XMLSchemaImport.java:609)
         at oracle.tip.buslogic.datatypeimport.b2b.XMLSchemaImport.importZipFile(XMLSchemaImport.java:426)
         at oracle.tip.buslogic.bll.b2b.GenericWizard.createNativeDatatype(GenericWizard.java:452)
         at oracle.tip.buslogic.bll.b2b.DocumentProtocolWizard.createDocumentDefinition(DocumentProtocolWizard.java:1228)
         at oracle.tip.buslogic.bll.b2b.DocumentProtocolWizard.createDocumentDefinition(DocumentProtocolWizard.java:1061)
         at oracle.tip.tools.integration.buslogic.b2b.collaboration.CreateBusinessActionFinishEventHandler.performExtendedActions(CreateBusinessActionFinishEventHandler.java:245)
         at oracle.tip.tools.integration.event.IPBaseUnboundEventHandler.performActions(IPBaseUnboundEventHandler.java:88)
         at oracle.tip.tools.integration.event.IPEventHandler.handleEventIP(IPEventHandler.java:138)
         at oracle.tip.tools.integration.event.IPEventHandler.handleEvent(IPEventHandler.java:104)
         at oracle.cabo.servlet.event.TableEventHandler.handleEvent(Unknown Source)
         at oracle.cabo.servlet.event.TableEventHandler.handleEvent(Unknown Source)
         at oracle.cabo.servlet.event.BasePageFlowEngine.handleRequest(Unknown Source)
         at oracle.cabo.servlet.AbstractPageBroker.handleRequest(Unknown Source)
         at oracle.cabo.servlet.ui.BaseUIPageBroker.handleRequest(Unknown Source)
         at oracle.cabo.servlet.PageBrokerHandler.handleRequest(Unknown Source)
         at oracle.cabo.servlet.UIXServlet.doGet(Unknown Source)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:824)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:330)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:830)
         at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:224)
         at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:133)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
         at java.lang.Thread.run(Thread.java:534)
    2007.03.12 at 14:40:16:093: AJPRequestHandler-ApplicationServerThread-5: UI - (ERROR) oracle.tip.tools.integration.buslogic.b2b.collaboration.CreateBusinessActionFinishEventHandler.handleEvent(): Error -: AIP-13978: Error - the input xsd fails validation: java.lang.NullPointerException
    Please let me know to resolve this issue.
    Thanks,
    Gautham

    Please check the root xsd and it its dependent XSD are present

  • HT204053 i want to change my icloud id on my iPhone, but it won't let me now that i have upgraded.  I no longer have the password and the problem is It is using an old id which the email isn't valid and the security question does not think my birthday is

    I want to change my icloud id on my iPhone, but it won't let me now that i have upgraded.  I no longer have the password and the problem is It is using an old id which the email isn't valid and the security question does not think my birthday is valid.  I cannnot delete the account because "find my iphone" wants the password linked to this old account.  But when i go into the find my iphone app it is using my corect Apple ID.  How do i fix this?

    If you still have access to your old email address, go to https//appleid.apple.com, click Manage my Apple ID and sign in with your iCloud ID.  Tap edit next to the primary email account, tap Edit, change it back to your old email account and verify it.  Then edit the name of the account to change it back to your old email address.  You can now use your current password to turn off Find My iPhone on your device. Then go to Settings>iCloud, tap Delete Account and choose Delete from My iDevice when prompted (your iCloud data will still be in iCloud).  Next, go back to https//appleid.apple.com and change your primary email address and iCloud ID name back to the way it was.  You can now go to Settings>iCloud and sign in with your correct iCloud ID and password.
    If you don't have access to your old email address, you will have to contact Apple to have them reset the password so you can disable Find My iPhone and sign into your iCloud account.  You can either go to https://expresslane.apple.com, select "More Products and Services", then "Apple ID", then  on the next page select "Other Apple ID Topics", then "Lost or forgotten Apple ID password" and click "Continue"; or you can contact Apple Support (http://www.apple.com/support/icloud/contact/).

  • HT1277 I can send & receive email from my ipad but for some reason I can no longer do this from my i mac.It keeps telling me that the password is not valid with the imap server.I keep entering the password but it won't accept it.

    I can send & receive email from my ipad but for some reason I can no longer do this from my i mac.It keeps telling me that the password is not valid with the imap server.I keep entering the password but it won't accept it.

    Do you have one, two or more entries in the left colum of Mail.app for your mail server(s)?  That is, do you have your Mail.app set up with either a btinternet entry, with a btyahoo entry, or both?  Or more?
    I'm guessing that you might have one account (btyahoo?) listed for incoming (IMAP server) mail, and with the outbound (SMTP server) mail is configured and named btinternet.
    Based on what little I see posted, it looks like BT uses both btinternet and btyahoo, but I'm not exactly clear on how they have their stuff set up, and their web set gets helpful and tries to help configure my mail — I don't immediately see a single web page with the mail server set-up details.  The BT email client set-up starts here.

  • Firefox does not open, but instead gives the error message, "Failed to read the configuration file." It has worked in the past, but not now.

    Firefox does not open, but instead gives the error message, "Failed to read the configuration file." It has worked in the past, but not now.
    I REINSTALL 10 TIMES SO DON'T TELL ME THAT!!!
    I'm piss because i need firefox working again so i can finish reseaching my speech in 5 days.

    Which files do you have in the defaults\pref folder in the Firefox program folder?
    *(32 bit Windows) "C:\Program Files\Mozilla Firefox\"
    *(64 bit Windows) "C:\Program Files (x86)\Mozilla Firefox\"
    See also "Other solutions":
    *http://kb.mozillazine.org/Preferences_not_saved
    Do a clean reinstall and delete the Firefox program folder before (re)installing a fresh copy of the current Firefox release.
    Download a fresh Firefox copy and save the file to the desktop.
    *Firefox 22.0: http://www.mozilla.org/en-US/firefox/all.html
    Uninstall your current Firefox version, if possible, to cleanup the Windows registry and settings in security software.
    *Do NOT remove personal data when you uninstall your current Firefox version, because all profile folders will be removed and you lose personal data like bookmarks and passwords from profiles of other Firefox versions.
    Remove the Firefox program folder before installing that newly downloaded copy of the Firefox installer.
    *(32 bit Windows) "C:\Program Files\Mozilla Firefox\"
    *(64 bit Windows) "C:\Program Files (x86)\Mozilla Firefox\"
    *It is important to delete the Firefox program folder to remove all the files and make sure that there are no problems with files that were leftover after uninstalling.
    *http://kb.mozillazine.org/Uninstalling_Firefox
    Your bookmarks and other personal data are stored in the Firefox profile folder and won't be affected by an uninstall and (re)install, but make sure that "remove personal data" is NOT selected when you uninstall Firefox.
    *http://kb.mozillazine.org/Profile_folder_-_Firefox
    *http://kb.mozillazine.org/Profile_backup
    *http://kb.mozillazine.org/Standard_diagnostic_-_Firefox#Clean_reinstall

  • Error - The version number in the package is not valid. The version number cannot be greater than current version number

    whats does this error mean
    i download 2008 r2 and try to open package but still getting error
    Error 1
    Error loading  The version number in the package is not valid. The version number cannot be greater than current version number.  
    Error 2
    Error loading Package migration from version 8 to version 3 failed with error 0xC001700A "The version number in the package is not valid. The version number cannot be greater than current version number.".  

    can you tell me which version it is >
    i try to fix in dtexec
    getting following error :
    Started:  2:02:13 PM
    Error: 2015-01-30 14:02:14.68
       Code: 0xC000F427
       Source: Member Eligibility
       Description: To run a SSIS package outside of SQL Server Data Tools you must
    install Member Eligibility of Integration Services or higher.
    End Error
    Warning: 2015-01-30 14:02:14.69
       Code: 0x80019002
     Description: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED.  The Execution
     method succeeded, but the number of errors raised (2) reached the maximum allow
    ed (1); resulting in failure. This occurs when the number of errors reaches the
    number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the e
    rrors.
    End Warning
    DTExec: The package execution returned DTSER_FAILURE (1).
    Started:  2:02:13 PM
    Finished: 2:02:14 PM
    i cannot upgrade original package

  • I keep getting the message that the calendar cannot be synced because the sync server failed to sync the ipad. How can I fix this?

    I keep getting the message that the calendar cannot be synced because the sync server failed to sync the ipad. How can I fix this?

    Have you previously synced photos to your iPad ? If so try deleting the photo cache from your computer and then re-try the photo sync and see if they then copy over - the location of the cache, and how to delete it, is on this page http://support.apple.com/kb/TS1314
    In terms of iOS5, what version of iTunes have you got on your computer ? You need iTunes 10.5 to be able to download iOS 5

  • How to sort this error - he Installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance

    Just purchased a MacBook Pro but had to reinstall OS X but now when I try to install anything I get the following message - The Installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance

    Launch the Console application in any of the following ways:
    ☞ Enter the first few letters of its name into a Spotlight search. Select it in the results (it should be at the top.)
    ☞ In the Finder, select Go ▹ Utilities from the menu bar, or press the key combination shift-command-U. The application is in the folder that opens.
    ☞ If you’re running Mac OS X 10.7 or later, open LaunchPad. Click Utilities, then Console in the page that opens.
    Select "/var/log/install.log" from the file list. Post the messages from the last installation attempt, starting from the time when you launched the Installer or Software Update. Post the log text, please, not a screenshot.
    If there are runs of runs of repeated messages, please post only one example of each. Don’t post many repetitions of the same message.

  • RDS 2012 The WinRM service failed to create the following SPNs: Additional Data The error received was 1355

    Hi,
    I have RDS 2012 session deployment in Azure with connection broker high availability.
    The "Remote Desktop Management" service does not start automatically when the connection broker virtual machines are stopped and started.
    I see the below error in event logs of both the connection broker VMs
    Note: WHen i manually start the "Remote Desktop Management" service after this error, it all works without issues.
    I get 
    Error ID 46 - Crash dump initialization failed!
    Warning 10154 - in Microsoft-Windows-Windows Remote Management
    The WinRM service failed to create the following SPNs: 
     Additional Data 
     The error received was 1355

    Hi,
    Thank you for posting in Windows Server Forum.
    In respect to error 46, this issue may occur if the computer boots without a configured dump file. The default dump file is the pagefile. During a clean Windows OS installation, the very first boot will hit this condition as the pagefile has not been set up
    yet. 
    To resolve this issue, you may want complete the paging file configuration.
    More information:
    Event ID 46 logged when you start a computer
    http://support.microsoft.com/kb/2756313/EN-US
    In regards to error 10154, you need to create the SPN specified in the event using the
    setspn.exe utility and also need to grant the “Validated Write to Service Principal Name” permission to the NETWORK SERVICE.
    For more information refer beneath articles.
    Event ID 10154 — Configuration
    http://technet.microsoft.com/en-us/library/dd348559(v=ws.10).aspx
    Domain Controllers Warning Event ID: 10154
    http://srvcore.wordpress.com/2010/01/02/domain-controllers-warning-event-id-10154/
    Hope it helps!
    Thanks,
    Dharmesh

  • CR2008 - Failed to open the connection. Failed to open the connection. ...

    Getting the following error when running CR2008 reports from web server:
    "Failed to open the connection. Failed to open the connection. <report_name>{2585477E-FB02-4594-9DB5-FFBFF2ABE124}.rpt"
    The web server is a Windows Server 2008 x64.  The IIS7 application pool is configured for 32bit, which solved our initial problem.  We are getting the above error if we use either CR2008 or CR2008 SP1.  Same issue with CRRuntime_12_1_mlb.exe.
    If we load CR2008 onto the web server, we can open and run the reports.  Thus, there appears to be no problem with the reports or the data source (an Access database).  Web application runs on development machine (windows xp).
    Why is there a GUID in the report file name?  How can we resolve this issue or what else should we check?
    TIA, Gary.

    Figured it out.  Turns out the ODBC data source name had been setup incorrectly.  Became obvious when stepping through the code.

  • CR2008:Failed to open the connection. Failed to open the connection. Report

    Hi,
    I've just upgraded from Crystal XI R2 to Crystal 2008. All my reports open happily in Crystal 2008. I have also deployed the Crystal 2008 runtime to a Windows 2003 SP2 R2 server running ASP.NET 1 and ASP.NET 2. Before the Crystal 2008 runtime was installed on top of the already present Crystal XI R2 Runtime I could view RPT files via the .NET report viewer (version XI). Now that Crystal 2008 runtime is installed I receive an error message when I try to view the reports, again, via the .NET report viewer (version 12), although no code has changed apart from all references changed from XI to 2008.
    Code is:
    CrystalDecisions.CrystalReports.Engine.ReportDocument oReportDocument = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
                oReportDocument.Load(sReportFilename);
    Tables oTables = oReportDocument.Database.Tables;
                   foreach (CrystalDecisions.CrystalReports.Engine.Table oTable in oTables)
                        TableLogOnInfo crTableLogOnInfo = oTable.LogOnInfo;
                        crTableLogOnInfo.ConnectionInfo.IntegratedSecurity = true;
                        crTableLogOnInfo.ConnectionInfo.DatabaseName = "DB" ;
                        crTableLogOnInfo.ConnectionInfo.ServerName = "server" ;
                        oTable.ApplyLogOnInfo(crTableLogOnInfo);
    CrystalReportViewer1.ReportSource = oReportDocument;
                this.DataBind();
    Error message is: 'Failed to open the connection. Failed to open the connection'.
    Any help would be great.
    Regards
    Tony

    You are correct in that there are no database connectivity changes in CR 2008.
    If you do not have SP0 for CR 2008, download it from here:
    https://smpdl.sap-ag.de/~sapidp/012002523100007528552008E/cr2008_sp0.zip
    If that does not help, I'd like to check if the correct dlls are loading when using CR 2008. To do that, download the modules utility from here:
    https://smpdl.sap-ag.de/~sapidp/012002523100006252802008E/modules.zip
    Then do the following:
    1) unzip the download
    2) Run the app with the CR 2008 references
    3) get the error. leave the error on the screen
    4) Start modules
    5) Go to the File menu, select New List -> Memory Modules
    6) Expand "By process"
    7) Find the app exe (or the .NET dev env)
    8) Click on that
    9) Go to the View menu and select Details
    10) Look to see if there are any dlls loading form the CR XI r2 directory (c:\Program files\Business Objects\Common\3.5\bin)
    Ludek

  • When I sync my iPhone with iTunes I get an error message that says "iTunes could not sync calendars to the iPhone because the sync server failed to sync the iPhone"

    When I sync my iPhone with iTunes I get an error message that says "iTunes could not sync calendars to the iPhone because the sync server failed to sync the iPhone"  How do I fix this?

    I had the same problem.  I found this site http://itprokb.blogspot.com/2010/10/itunes-could-not-sync-calendars-to.html
    It worked for me.  Good luck!

  • I can no longer sync my touch with my computer.  I'm being told that "the sync server failed to sync the iPod."

    I can no longer sync my touch with my computer.  I'm being told that "the sync server failed to sync the iPod."

    Are you sure that these times are still selected to sync in iTunes?
    When you connect your iPad to your PC and with iTunes running, select your iPad under the devices button in the upper right corner of the iTunes window. Then click on the Movies tab and make sure that the movies are selected (checked) to sync. Check the playlists in the Music tab as well.

  • ITunes sync stopped working with my iPhone 5 and Outlook on Windows 7.  Error states in part "because the sync server failed to sync the iphone"

    I have an iPhone 5 running iOS 7.1.2.  I am using iTunes version 11.2.2.3 on Windows 7.  After updating to the new version of iTunes I am currently using, the snyc between my Outlook calendar and phone stopped working.  I get the error "iTunes could not sync the calendars to the phone xxxxx because the sync server failed to sync the iphone"  I followed the instructions here - Troubleshooting Sync Services on Windows with Microsoft Outlook 2003, Outlook 2007, or Outlook 2010 - to no avail, with the exception of not re-installing Outlook.  Not an option on my corporate computer.  When I run the Sync test, it says it passes -
    Microsoft Windows 7 Enterprise Edition Service Pack 1 (Build 7601)
    LENOVO 4384AJ9
    iTunes 11.2.2.3
    QuickTime 7.7.5
    FairPlay 2.6.12
    Apple Application Support 3.0.3
    iPod Updater Library 11.1f5
    CD Driver 2.2.3.0
    CD Driver DLL 2.1.3.1
    Apple Mobile Device 7.1.1.3
    Apple Mobile Device Driver 1.64.0.0
    Bonjour 3.0.0.10 (333.10)
    Gracenote SDK 1.9.6.502
    Gracenote MusicID 1.9.6.115
    Gracenote Submit 1.9.6.143
    Gracenote DSP 1.9.6.45
    iTunes Serial Number xxxxxxxxxxx
    Current user is not an administrator.
    The current local date and time is 2014-07-09 21:39:02.
    iTunes is not running in safe mode.
    WebKit accelerated compositing is enabled.
    HDCP is supported.
    Core Media is supported.
    Video Display Information
    Intel Corporation, Intel(R) HD Graphics
    **** External Plug-ins Information ****
    No external plug-ins installed.
    iPodService 11.2.2.3 is currently running.
    iTunesHelper 11.2.2.3 is currently running.
    Apple Mobile Device service 3.3.0.0 is currently running.
    **** Device Sync Tests ****
    Sync tests completed successfully.
    Any ideas?

    Try this
    To resolve this issue, follow the steps in iPhone, iPad, iPod touch: Unknown error containing '0xE' when connecting. If you have a Windows computer with an Intel® 5 series/3400 series chipset, you may need updates for your chipset drivers. See iTunes for Windows: Issues syncing iOS devices with P55 and related Intel Chipsets for more information.

  • Itunes could not sync calendars to the iPhone "TheButler's Phone" because the sync server failed to sync the iPhone, anyone?

    Hi
    This is the error message that I recieve when I try to sync:
    Itunes could not sync calendars to the iPhone "TheButler's Phone" because the sync server failed to sync the iPhone, anyone?
    Everything has worked perfectly for over 1 year, this is an all of a sudden event.
    Thank you,
    Ron

    If using Outlook, follow the directions here:
    http://support.apple.com/kb/TS2776

Maybe you are looking for

  • Php-fpm fail - no redis.so (SOLVED)

    I am by no means an expert, but have set up many php systems on both windows and other linux distros over the years with little trouble.  But I have spent at least a week trying to sort this situation.  I can't get php or php-fpm up and running.  I'v

  • DMZ Anchor Controller

    I'm having trouble setting up an Anchor Controller on my DMZ. I have setup everything up and tested it out on my inside network and the Anchor Controller comes up with no problem. When I put the Anchor Controller on the DMZ the data path is up but th

  • My Home Page - "Today" will not load?

    My Home Page - "Today" will not load? == This happened == Every time Firefox opened == over a week ago

  • Who can tell me the website which has some oracle client_si

    I have read from here there is a website which has some client_side program of oracle on linux, but i forgot the address, who can tell me? (something like sqlplus under x, etc) null

  • Is there a way to only have the program download new photos ?

    The SD card has hundreds and the program is always attempting to download all images each connection.