27:
28: l_template_id NUMBER;
29: BEGIN
30:
31: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
32: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
33: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
34: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
35: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: template_id : ' || template_id);
28: l_template_id NUMBER;
29: BEGIN
30:
31: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
32: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
33: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
34: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
35: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: template_id : ' || template_id);
36: END IF;
29: BEGIN
30:
31: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
32: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
33: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
34: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
35: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: template_id : ' || template_id);
36: END IF;
37:
30:
31: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
32: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
33: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
34: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
35: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: template_id : ' || template_id);
36: END IF;
37:
38: p_doc_id := doc_id;
31: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
32: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
33: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
34: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
35: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: template_id : ' || template_id);
36: END IF;
37:
38: p_doc_id := doc_id;
39: p_doc_type := doc_type;
56: WHEN NO_DATA_FOUND THEN
57: NULL;
58: END;
59:
60: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
61: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: x_has_questions : ' || x_has_questions);
62: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: Leaving method');
63: END IF;
64:
57: NULL;
58: END;
59:
60: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
61: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: x_has_questions : ' || x_has_questions);
62: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: Leaving method');
63: END IF;
64:
65: EXCEPTION
58: END;
59:
60: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
61: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: x_has_questions : ' || x_has_questions);
62: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: Leaving method');
63: END IF;
64:
65: EXCEPTION
66: WHEN OTHERS THEN
63: END IF;
64:
65: EXCEPTION
66: WHEN OTHERS THEN
67: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
68: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '120: Exception occured: ' || sqlerrm);
69: END IF;
70: raise;
71: END init_contract_expert;
64:
65: EXCEPTION
66: WHEN OTHERS THEN
67: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
68: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '120: Exception occured: ' || sqlerrm);
69: END IF;
70: raise;
71: END init_contract_expert;
72:
118: l_module VARCHAR2(250) := G_MODULE_NAME||l_api_name;
119:
120: BEGIN
121:
122: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
123: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
124: END IF;
125:
126: DELETE okc_xprt_rule_eval_result_t WHERE doc_id = p_doc_id and doc_type = p_doc_type;
119:
120: BEGIN
121:
122: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
123: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
124: END IF;
125:
126: DELETE okc_xprt_rule_eval_result_t WHERE doc_id = p_doc_id and doc_type = p_doc_type;
127:
124: END IF;
125:
126: DELETE okc_xprt_rule_eval_result_t WHERE doc_id = p_doc_id and doc_type = p_doc_type;
127:
128: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
129: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: Deleted entries in okc_xprt_rule_eval_result_t for this document before populating');
130: END IF;
131:
132: OPEN c_rules;
125:
126: DELETE okc_xprt_rule_eval_result_t WHERE doc_id = p_doc_id and doc_type = p_doc_type;
127:
128: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
129: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: Deleted entries in okc_xprt_rule_eval_result_t for this document before populating');
130: END IF;
131:
132: OPEN c_rules;
133: FETCH c_rules BULK COLLECT INTO rule_ids, cond_expr_codes;
142: INSERT INTO okc_xprt_rule_eval_result_t(rule_condition_result_id, doc_id, doc_type, rule_id, condition_id, condition_type, object_code, rule_expr_type, object_value_type, object_value_code, cond_operator, result)
143: VALUES(OKC_XPRT_RULE_EVAL_RESULT_S.nextval, p_doc_id, p_doc_type, rule_ids(i), cond_ids(i), cond_types(i), cond_object_codes(i), cond_expr_codes(i), cond_value_type(i), cond_object_value_codes(i), cond_operator(i), null);
144: CLOSE c_rule_conditions;
145:
146: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
147: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Populated entries in okc_xprt_rule_eval_result_t for this document');
148: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: No. of rules populated: ' || cond_expr_codes.count);
149: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: No. of rule conditions populated: ' || cond_ids.count);
150: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Leaving method');
143: VALUES(OKC_XPRT_RULE_EVAL_RESULT_S.nextval, p_doc_id, p_doc_type, rule_ids(i), cond_ids(i), cond_types(i), cond_object_codes(i), cond_expr_codes(i), cond_value_type(i), cond_object_value_codes(i), cond_operator(i), null);
144: CLOSE c_rule_conditions;
145:
146: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
147: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Populated entries in okc_xprt_rule_eval_result_t for this document');
148: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: No. of rules populated: ' || cond_expr_codes.count);
149: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: No. of rule conditions populated: ' || cond_ids.count);
150: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Leaving method');
151: END IF;
144: CLOSE c_rule_conditions;
145:
146: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
147: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Populated entries in okc_xprt_rule_eval_result_t for this document');
148: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: No. of rules populated: ' || cond_expr_codes.count);
149: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: No. of rule conditions populated: ' || cond_ids.count);
150: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Leaving method');
151: END IF;
152:
145:
146: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
147: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Populated entries in okc_xprt_rule_eval_result_t for this document');
148: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: No. of rules populated: ' || cond_expr_codes.count);
149: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: No. of rule conditions populated: ' || cond_ids.count);
150: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Leaving method');
151: END IF;
152:
153: EXCEPTION
146: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
147: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Populated entries in okc_xprt_rule_eval_result_t for this document');
148: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: No. of rules populated: ' || cond_expr_codes.count);
149: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: No. of rule conditions populated: ' || cond_ids.count);
150: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Leaving method');
151: END IF;
152:
153: EXCEPTION
154: WHEN OTHERS THEN
151: END IF;
152:
153: EXCEPTION
154: WHEN OTHERS THEN
155: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
156: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '130: Exception occured: ' || sqlerrm);
157: END IF;
158: raise;
159: END populate_rule_cond_eval_table;
152:
153: EXCEPTION
154: WHEN OTHERS THEN
155: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
156: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '130: Exception occured: ' || sqlerrm);
157: END IF;
158: raise;
159: END populate_rule_cond_eval_table;
160:
183: l_module VARCHAR2(250) := G_MODULE_NAME||l_api_name;
184:
185: BEGIN
186:
187: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
188: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
189: END IF;
190:
191: DELETE okc_xprt_rule_eval_condval_t WHERE doc_id = p_doc_id and doc_type = p_doc_type;
184:
185: BEGIN
186:
187: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
188: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
189: END IF;
190:
191: DELETE okc_xprt_rule_eval_condval_t WHERE doc_id = p_doc_id and doc_type = p_doc_type;
192:
189: END IF;
190:
191: DELETE okc_xprt_rule_eval_condval_t WHERE doc_id = p_doc_id and doc_type = p_doc_type;
192:
193: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
194: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: Deleted entries in okc_xprt_rule_eval_condval_t for this document before populating the variable values');
195: END IF;
196:
197: okc_xprt_xrule_values_pvt.get_document_values(p_api_version => 1,
190:
191: DELETE okc_xprt_rule_eval_condval_t WHERE doc_id = p_doc_id and doc_type = p_doc_type;
192:
193: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
194: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: Deleted entries in okc_xprt_rule_eval_condval_t for this document before populating the variable values');
195: END IF;
196:
197: okc_xprt_xrule_values_pvt.get_document_values(p_api_version => 1,
198: p_init_msg_list => FND_API.G_FALSE,
208: x_intent => x_intent,
209: x_org_id => x_org_id
210: );
211:
212: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
213: IF x_hdr_var_value_tbl.Count > 0 THEN
214: FOR j IN x_hdr_var_value_tbl.first..x_hdr_var_value_tbl.LAST LOOP
215: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Variable code: ' || x_hdr_var_value_tbl(j).variable_code);
216: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Variable value id: ' || x_hdr_var_value_tbl(j).variable_value_id);
211:
212: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
213: IF x_hdr_var_value_tbl.Count > 0 THEN
214: FOR j IN x_hdr_var_value_tbl.first..x_hdr_var_value_tbl.LAST LOOP
215: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Variable code: ' || x_hdr_var_value_tbl(j).variable_code);
216: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Variable value id: ' || x_hdr_var_value_tbl(j).variable_value_id);
217: END LOOP;
218: END IF;
219:
212: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
213: IF x_hdr_var_value_tbl.Count > 0 THEN
214: FOR j IN x_hdr_var_value_tbl.first..x_hdr_var_value_tbl.LAST LOOP
215: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Variable code: ' || x_hdr_var_value_tbl(j).variable_code);
216: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Variable value id: ' || x_hdr_var_value_tbl(j).variable_value_id);
217: END LOOP;
218: END IF;
219:
220: IF x_line_sysvar_value_tbl.Count > 0 THEN
218: END IF;
219:
220: IF x_line_sysvar_value_tbl.Count > 0 THEN
221: FOR j IN x_line_sysvar_value_tbl.first..x_line_sysvar_value_tbl.LAST LOOP
222: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: Variable code: ' || x_line_sysvar_value_tbl(j).variable_code);
223: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: Variable value: ' || x_line_sysvar_value_tbl(j).variable_value);
224: END LOOP;
225: END IF;
226: END IF;
219:
220: IF x_line_sysvar_value_tbl.Count > 0 THEN
221: FOR j IN x_line_sysvar_value_tbl.first..x_line_sysvar_value_tbl.LAST LOOP
222: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: Variable code: ' || x_line_sysvar_value_tbl(j).variable_code);
223: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: Variable value: ' || x_line_sysvar_value_tbl(j).variable_value);
224: END LOOP;
225: END IF;
226: END IF;
227:
247: INSERT INTO okc_xprt_rule_eval_condval_t(doc_value_id, doc_id, doc_type, object_type, object_code, value_or_response)
248: VALUES (OKC_XPRT_RULE_EVAL_CONDVAL_S.nextval, p_doc_id, p_doc_type, 'VARIABLE',x_line_sysvar_value_tbl(j).variable_code,x_line_sysvar_value_tbl(j).variable_value);
249: END IF;
250:
251: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
252: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: Populated entries i.e variable values in okc_xprt_rule_eval_condval_t for this document');
253: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: No. of global variables populated: ' || x_hdr_var_value_tbl.count);
254: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: No. of line variables populated: ' || x_line_sysvar_value_tbl.count);
255: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: Leaving method');
248: VALUES (OKC_XPRT_RULE_EVAL_CONDVAL_S.nextval, p_doc_id, p_doc_type, 'VARIABLE',x_line_sysvar_value_tbl(j).variable_code,x_line_sysvar_value_tbl(j).variable_value);
249: END IF;
250:
251: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
252: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: Populated entries i.e variable values in okc_xprt_rule_eval_condval_t for this document');
253: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: No. of global variables populated: ' || x_hdr_var_value_tbl.count);
254: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: No. of line variables populated: ' || x_line_sysvar_value_tbl.count);
255: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: Leaving method');
256: END IF;
249: END IF;
250:
251: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
252: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: Populated entries i.e variable values in okc_xprt_rule_eval_condval_t for this document');
253: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: No. of global variables populated: ' || x_hdr_var_value_tbl.count);
254: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: No. of line variables populated: ' || x_line_sysvar_value_tbl.count);
255: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: Leaving method');
256: END IF;
257:
250:
251: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
252: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: Populated entries i.e variable values in okc_xprt_rule_eval_condval_t for this document');
253: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: No. of global variables populated: ' || x_hdr_var_value_tbl.count);
254: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: No. of line variables populated: ' || x_line_sysvar_value_tbl.count);
255: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: Leaving method');
256: END IF;
257:
258: EXCEPTION
251: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
252: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: Populated entries i.e variable values in okc_xprt_rule_eval_condval_t for this document');
253: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: No. of global variables populated: ' || x_hdr_var_value_tbl.count);
254: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: No. of line variables populated: ' || x_line_sysvar_value_tbl.count);
255: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: Leaving method');
256: END IF;
257:
258: EXCEPTION
259: WHEN OTHERS THEN
256: END IF;
257:
258: EXCEPTION
259: WHEN OTHERS THEN
260: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
261: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '150: Exception occured: ' || sqlerrm);
262: END IF;
263: raise;
264: END populate_doc_var_values;
257:
258: EXCEPTION
259: WHEN OTHERS THEN
260: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
261: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '150: Exception occured: ' || sqlerrm);
262: END IF;
263: raise;
264: END populate_doc_var_values;
265:
356: l_module VARCHAR2(250) := G_MODULE_NAME||l_api_name;
357:
358: BEGIN
359:
360: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
361: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
362: END IF;
363:
364: BEGIN
357:
358: BEGIN
359:
360: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
361: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
362: END IF;
363:
364: BEGIN
365: SELECT 'Y' INTO is_contract_expert_run FROM dual
368: WHEN NO_DATA_FOUND THEN
369: NULL;
370: END;
371:
372: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
373: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: is_contract_expert_run : ' || is_contract_expert_run);
374: END IF;
375:
376: IF is_contract_expert_run = 'Y' THEN
369: NULL;
370: END;
371:
372: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
373: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: is_contract_expert_run : ' || is_contract_expert_run);
374: END IF;
375:
376: IF is_contract_expert_run = 'Y' THEN
377: OPEN c_question_and_response;
388: VALUES(OKC_XPRT_RULE_EVAL_CONDVAL_S.nextval, p_doc_id, p_doc_type, 'QUESTION', question_ids(i), null, display_flags(i));
389: CLOSE c_question;
390: END IF;
391:
392: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
393: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Populated entries i.e questions and responses(if exists) in okc_xprt_rule_eval_condval_t for this document');
394: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: No. of questions populated: ' || question_ids.count);
395: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Leaving method');
396: END IF;
389: CLOSE c_question;
390: END IF;
391:
392: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
393: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Populated entries i.e questions and responses(if exists) in okc_xprt_rule_eval_condval_t for this document');
394: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: No. of questions populated: ' || question_ids.count);
395: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Leaving method');
396: END IF;
397:
390: END IF;
391:
392: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
393: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Populated entries i.e questions and responses(if exists) in okc_xprt_rule_eval_condval_t for this document');
394: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: No. of questions populated: ' || question_ids.count);
395: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Leaving method');
396: END IF;
397:
398: EXCEPTION
391:
392: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
393: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Populated entries i.e questions and responses(if exists) in okc_xprt_rule_eval_condval_t for this document');
394: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: No. of questions populated: ' || question_ids.count);
395: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Leaving method');
396: END IF;
397:
398: EXCEPTION
399: WHEN OTHERS THEN
396: END IF;
397:
398: EXCEPTION
399: WHEN OTHERS THEN
400: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
401: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '130: Exception occured: ' || sqlerrm);
402: END IF;
403: raise;
404: END populate_doc_questions;
397:
398: EXCEPTION
399: WHEN OTHERS THEN
400: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
401: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '130: Exception occured: ' || sqlerrm);
402: END IF;
403: raise;
404: END populate_doc_questions;
405:
409: l_module VARCHAR2(250) := G_MODULE_NAME||l_api_name;
410:
411: BEGIN
412:
413: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
414: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
415: END IF;
416:
417: INSERT INTO okc_xprt_rule_eval_condval_t(doc_value_id, doc_id, doc_type, object_type, object_code, value_or_response, display_flag, dep_clause_cond_id)
410:
411: BEGIN
412:
413: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
414: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
415: END IF;
416:
417: INSERT INTO okc_xprt_rule_eval_condval_t(doc_value_id, doc_id, doc_type, object_type, object_code, value_or_response, display_flag, dep_clause_cond_id)
418: SELECT OKC_XPRT_RULE_EVAL_CONDVAL_S.nextval, p_doc_id, p_doc_type, 'RULE', rule_id, null, null, dep_clause_cond_id FROM okc_xprt_rule_dependencies_v;
416:
417: INSERT INTO okc_xprt_rule_eval_condval_t(doc_value_id, doc_id, doc_type, object_type, object_code, value_or_response, display_flag, dep_clause_cond_id)
418: SELECT OKC_XPRT_RULE_EVAL_CONDVAL_S.nextval, p_doc_id, p_doc_type, 'RULE', rule_id, null, null, dep_clause_cond_id FROM okc_xprt_rule_dependencies_v;
419:
420: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
421: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Rule_clause dependency rows populated into okc_xprt_rule_eval_condval_t table from okc_xprt_rule_dependencies_v view');
422: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Leaving method');
423: END IF;
424:
417: INSERT INTO okc_xprt_rule_eval_condval_t(doc_value_id, doc_id, doc_type, object_type, object_code, value_or_response, display_flag, dep_clause_cond_id)
418: SELECT OKC_XPRT_RULE_EVAL_CONDVAL_S.nextval, p_doc_id, p_doc_type, 'RULE', rule_id, null, null, dep_clause_cond_id FROM okc_xprt_rule_dependencies_v;
419:
420: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
421: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Rule_clause dependency rows populated into okc_xprt_rule_eval_condval_t table from okc_xprt_rule_dependencies_v view');
422: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Leaving method');
423: END IF;
424:
425: EXCEPTION
418: SELECT OKC_XPRT_RULE_EVAL_CONDVAL_S.nextval, p_doc_id, p_doc_type, 'RULE', rule_id, null, null, dep_clause_cond_id FROM okc_xprt_rule_dependencies_v;
419:
420: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
421: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Rule_clause dependency rows populated into okc_xprt_rule_eval_condval_t table from okc_xprt_rule_dependencies_v view');
422: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Leaving method');
423: END IF;
424:
425: EXCEPTION
426: WHEN OTHERS THEN
423: END IF;
424:
425: EXCEPTION
426: WHEN OTHERS THEN
427: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
428: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '130: Exception occured: ' || sqlerrm);
429: END IF;
430: raise;
431: END populate_rule_cond_dep;
424:
425: EXCEPTION
426: WHEN OTHERS THEN
427: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
428: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '130: Exception occured: ' || sqlerrm);
429: END IF;
430: raise;
431: END populate_rule_cond_dep;
432:
478: l_module VARCHAR2(250) := G_MODULE_NAME||l_api_name;
479:
480: BEGIN
481:
482: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
483: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
484: END IF;
485:
486: success_rule_ids := OKC_TBL_NUMBER();
479:
480: BEGIN
481:
482: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
483: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
484: END IF;
485:
486: success_rule_ids := OKC_TBL_NUMBER();
487: failure_rule_ids := OKC_TBL_NUMBER();
498:
499: IF (rule_cond.condition_type = 'CLAUSE' AND (rule_cond.cond_operator = 'IS_NOT' OR rule_cond.cond_operator = 'NOT_IN')) THEN
500: l_cond_result := TRUE;
501:
502: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
503: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110:1 rule_id : ' || rule.rule_id || ' condition_id : ' || rule_cond.condition_id);
504: END IF;
505: ELSIF ( (rule_cond.condition_type = 'QUESTION' AND rule_cond.lhs_response IS NULL)
506: OR (rule_cond.object_value_type = 'QUESTION' AND rule_cond.rhs_response IS NULL)) THEN
499: IF (rule_cond.condition_type = 'CLAUSE' AND (rule_cond.cond_operator = 'IS_NOT' OR rule_cond.cond_operator = 'NOT_IN')) THEN
500: l_cond_result := TRUE;
501:
502: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
503: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110:1 rule_id : ' || rule.rule_id || ' condition_id : ' || rule_cond.condition_id);
504: END IF;
505: ELSIF ( (rule_cond.condition_type = 'QUESTION' AND rule_cond.lhs_response IS NULL)
506: OR (rule_cond.object_value_type = 'QUESTION' AND rule_cond.rhs_response IS NULL)) THEN
507: l_cond_result := NULL;
505: ELSIF ( (rule_cond.condition_type = 'QUESTION' AND rule_cond.lhs_response IS NULL)
506: OR (rule_cond.object_value_type = 'QUESTION' AND rule_cond.rhs_response IS NULL)) THEN
507: l_cond_result := NULL;
508:
509: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
510: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110:2 rule_id : ' || rule.rule_id || ' condition_id : ' || rule_cond.condition_id);
511: END IF;
512: ELSIF (rule_cond.condition_type = 'QUESTION' AND rule_cond.lhs_response IS NOT NULL) THEN
513: l_cond_result := evaluate_condition(rule_cond.condition_id, rule_cond.condition_type, rule_cond.object_code, rule_cond.object_value_type, rule_cond.object_value_code, rule_cond.cond_operator);
506: OR (rule_cond.object_value_type = 'QUESTION' AND rule_cond.rhs_response IS NULL)) THEN
507: l_cond_result := NULL;
508:
509: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
510: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110:2 rule_id : ' || rule.rule_id || ' condition_id : ' || rule_cond.condition_id);
511: END IF;
512: ELSIF (rule_cond.condition_type = 'QUESTION' AND rule_cond.lhs_response IS NOT NULL) THEN
513: l_cond_result := evaluate_condition(rule_cond.condition_id, rule_cond.condition_type, rule_cond.object_code, rule_cond.object_value_type, rule_cond.object_value_code, rule_cond.cond_operator);
514:
511: END IF;
512: ELSIF (rule_cond.condition_type = 'QUESTION' AND rule_cond.lhs_response IS NOT NULL) THEN
513: l_cond_result := evaluate_condition(rule_cond.condition_id, rule_cond.condition_type, rule_cond.object_code, rule_cond.object_value_type, rule_cond.object_value_code, rule_cond.cond_operator);
514:
515: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
516: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110:3 rule_id : ' || rule.rule_id || ' condition_id : ' || rule_cond.condition_id);
517: END IF;
518: ELSIF (rule_cond.condition_type = 'VARIABLE') THEN
519: l_cond_result := evaluate_condition(rule_cond.condition_id, rule_cond.condition_type, rule_cond.object_code, rule_cond.object_value_type, rule_cond.object_value_code, rule_cond.cond_operator);
512: ELSIF (rule_cond.condition_type = 'QUESTION' AND rule_cond.lhs_response IS NOT NULL) THEN
513: l_cond_result := evaluate_condition(rule_cond.condition_id, rule_cond.condition_type, rule_cond.object_code, rule_cond.object_value_type, rule_cond.object_value_code, rule_cond.cond_operator);
514:
515: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
516: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110:3 rule_id : ' || rule.rule_id || ' condition_id : ' || rule_cond.condition_id);
517: END IF;
518: ELSIF (rule_cond.condition_type = 'VARIABLE') THEN
519: l_cond_result := evaluate_condition(rule_cond.condition_id, rule_cond.condition_type, rule_cond.object_code, rule_cond.object_value_type, rule_cond.object_value_code, rule_cond.cond_operator);
520:
517: END IF;
518: ELSIF (rule_cond.condition_type = 'VARIABLE') THEN
519: l_cond_result := evaluate_condition(rule_cond.condition_id, rule_cond.condition_type, rule_cond.object_code, rule_cond.object_value_type, rule_cond.object_value_code, rule_cond.cond_operator);
520:
521: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
522: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110:4 rule_id : ' || rule.rule_id || ' condition_id : ' || rule_cond.condition_id);
523: END IF;
524: ELSE
525: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
518: ELSIF (rule_cond.condition_type = 'VARIABLE') THEN
519: l_cond_result := evaluate_condition(rule_cond.condition_id, rule_cond.condition_type, rule_cond.object_code, rule_cond.object_value_type, rule_cond.object_value_code, rule_cond.cond_operator);
520:
521: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
522: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110:4 rule_id : ' || rule.rule_id || ' condition_id : ' || rule_cond.condition_id);
523: END IF;
524: ELSE
525: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
526: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110:5 rule_id : ' || rule.rule_id || ' condition_id : ' || rule_cond.condition_id);
521: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
522: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110:4 rule_id : ' || rule.rule_id || ' condition_id : ' || rule_cond.condition_id);
523: END IF;
524: ELSE
525: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
526: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110:5 rule_id : ' || rule.rule_id || ' condition_id : ' || rule_cond.condition_id);
527: END IF;
528: END IF;
529:
522: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110:4 rule_id : ' || rule.rule_id || ' condition_id : ' || rule_cond.condition_id);
523: END IF;
524: ELSE
525: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
526: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110:5 rule_id : ' || rule.rule_id || ' condition_id : ' || rule_cond.condition_id);
527: END IF;
528: END IF;
529:
530: IF l_cond_result THEN
527: END IF;
528: END IF;
529:
530: IF l_cond_result THEN
531: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
532: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_cond_result : TRUE');
533: END IF;
534:
535: i := i + 1;
528: END IF;
529:
530: IF l_cond_result THEN
531: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
532: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_cond_result : TRUE');
533: END IF;
534:
535: i := i + 1;
536: result_tbl(i).rule_id := rule.rule_id;
548: success_rule_ids(s) := rule.rule_id;
549: EXIT;
550: END IF;
551: ELSIF l_cond_result IS NULL THEN
552: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
553: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_cond_result : NULL');
554: END IF;
555:
556: is_rule_evaluated := 'L'; -- atleast one of the rule condition cannot be evaluated now.
549: EXIT;
550: END IF;
551: ELSIF l_cond_result IS NULL THEN
552: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
553: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_cond_result : NULL');
554: END IF;
555:
556: is_rule_evaluated := 'L'; -- atleast one of the rule condition cannot be evaluated now.
557: ELSE
555:
556: is_rule_evaluated := 'L'; -- atleast one of the rule condition cannot be evaluated now.
557: ELSE
558: -- if the condition result is false
559: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
560: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_cond_result : FALSE');
561: END IF;
562:
563: i := i + 1;
556: is_rule_evaluated := 'L'; -- atleast one of the rule condition cannot be evaluated now.
557: ELSE
558: -- if the condition result is false
559: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
560: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_cond_result : FALSE');
561: END IF;
562:
563: i := i + 1;
564: result_tbl(i).rule_id := rule.rule_id;
600: success_rule_ids(s) := rule.rule_id;
601: END IF;
602: END LOOP;
603:
604: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
605: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: result_tbl.count: ' || result_tbl.count);
606: FOR a IN 1 .. result_tbl.count LOOP
607: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: result_tbl rule_id: ' || result_tbl(a).rule_id || ' condition_id: ' || result_tbl(a).condition_id || ' result: ' || result_tbl(a).result); END LOOP;
608:
601: END IF;
602: END LOOP;
603:
604: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
605: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: result_tbl.count: ' || result_tbl.count);
606: FOR a IN 1 .. result_tbl.count LOOP
607: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: result_tbl rule_id: ' || result_tbl(a).rule_id || ' condition_id: ' || result_tbl(a).condition_id || ' result: ' || result_tbl(a).result); END LOOP;
608:
609: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: success_rule_ids.count: ' || success_rule_ids.count);
603:
604: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
605: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: result_tbl.count: ' || result_tbl.count);
606: FOR a IN 1 .. result_tbl.count LOOP
607: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: result_tbl rule_id: ' || result_tbl(a).rule_id || ' condition_id: ' || result_tbl(a).condition_id || ' result: ' || result_tbl(a).result); END LOOP;
608:
609: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: success_rule_ids.count: ' || success_rule_ids.count);
610: FOR a IN 1 .. success_rule_ids.count LOOP
611: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: success_rule_id: ' || success_rule_ids(a)); END LOOP;
605: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: result_tbl.count: ' || result_tbl.count);
606: FOR a IN 1 .. result_tbl.count LOOP
607: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: result_tbl rule_id: ' || result_tbl(a).rule_id || ' condition_id: ' || result_tbl(a).condition_id || ' result: ' || result_tbl(a).result); END LOOP;
608:
609: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: success_rule_ids.count: ' || success_rule_ids.count);
610: FOR a IN 1 .. success_rule_ids.count LOOP
611: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: success_rule_id: ' || success_rule_ids(a)); END LOOP;
612:
613: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: failure_rule_ids.count: ' || failure_rule_ids.count);
607: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: result_tbl rule_id: ' || result_tbl(a).rule_id || ' condition_id: ' || result_tbl(a).condition_id || ' result: ' || result_tbl(a).result); END LOOP;
608:
609: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: success_rule_ids.count: ' || success_rule_ids.count);
610: FOR a IN 1 .. success_rule_ids.count LOOP
611: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: success_rule_id: ' || success_rule_ids(a)); END LOOP;
612:
613: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: failure_rule_ids.count: ' || failure_rule_ids.count);
614: FOR a IN 1 .. failure_rule_ids.count LOOP
615: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: failure_rule_id: ' || failure_rule_ids(a)); END LOOP;
609: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: success_rule_ids.count: ' || success_rule_ids.count);
610: FOR a IN 1 .. success_rule_ids.count LOOP
611: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: success_rule_id: ' || success_rule_ids(a)); END LOOP;
612:
613: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: failure_rule_ids.count: ' || failure_rule_ids.count);
614: FOR a IN 1 .. failure_rule_ids.count LOOP
615: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: failure_rule_id: ' || failure_rule_ids(a)); END LOOP;
616: END IF;
617:
611: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: success_rule_id: ' || success_rule_ids(a)); END LOOP;
612:
613: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: failure_rule_ids.count: ' || failure_rule_ids.count);
614: FOR a IN 1 .. failure_rule_ids.count LOOP
615: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: failure_rule_id: ' || failure_rule_ids(a)); END LOOP;
616: END IF;
617:
618: FORALL k IN 1 .. result_tbl.count
619: UPDATE okc_xprt_rule_eval_result_t result_tmp
630: WHEN NO_DATA_FOUND THEN
631: NULL;
632: END;
633:
634: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
635: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '150: has_clauses: ' || has_clauses);
636: END IF;
637:
638: --Step I: Additional Questions handling:
631: NULL;
632: END;
633:
634: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
635: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '150: has_clauses: ' || has_clauses);
636: END IF;
637:
638: --Step I: Additional Questions handling:
639: --Updating the display_flag to 'Y' if the rule_id has any additional questions
646: AND object_type = 'QUESTION'
647: AND display_flag <> 'Y'
648: AND object_code IN (SELECT object_value_id FROM okc_xprt_rule_outcomes_act_v WHERE rule_id IN (SELECT * FROM table(success_rule_ids)) and object_type = 'QUESTION');
649: rows := sql%rowcount;
650: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
651: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '160: No. of questions updated with display_flag = Y: ' || rows);
652: END IF;
653: END IF;
654:
647: AND display_flag <> 'Y'
648: AND object_code IN (SELECT object_value_id FROM okc_xprt_rule_outcomes_act_v WHERE rule_id IN (SELECT * FROM table(success_rule_ids)) and object_type = 'QUESTION');
649: rows := sql%rowcount;
650: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
651: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '160: No. of questions updated with display_flag = Y: ' || rows);
652: END IF;
653: END IF;
654:
655: --Step II: Dependent Clause based conditions handling:
664: AND condition_id IN (SELECT distinct dep_clause_cond_id FROM okc_xprt_rule_eval_condval_t WHERE doc_id = cond.doc_id and doc_type = cond.doc_type
665: and object_type = 'RULE' and object_code IN (SELECT * FROM table(success_rule_ids)))
666: RETURNING rule_id BULK COLLECT INTO clause_rules1;
667:
668: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
669: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '170: No. of clause based conditions updated with result: ' || clause_rules1.count);
670:
671: FOR a IN 1 .. clause_rules1.count LOOP
672: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '170: clause_rules1 rule_id: ' || clause_rules1(a)); END LOOP;
665: and object_type = 'RULE' and object_code IN (SELECT * FROM table(success_rule_ids)))
666: RETURNING rule_id BULK COLLECT INTO clause_rules1;
667:
668: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
669: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '170: No. of clause based conditions updated with result: ' || clause_rules1.count);
670:
671: FOR a IN 1 .. clause_rules1.count LOOP
672: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '170: clause_rules1 rule_id: ' || clause_rules1(a)); END LOOP;
673: END IF;
668: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
669: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '170: No. of clause based conditions updated with result: ' || clause_rules1.count);
670:
671: FOR a IN 1 .. clause_rules1.count LOOP
672: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '170: clause_rules1 rule_id: ' || clause_rules1(a)); END LOOP;
673: END IF;
674: END IF;
675:
676: IF failure_rule_ids.count > 0 THEN
688: AND t.doc_id = d.doc_id AND t.doc_type = d.doc_type AND t.condition_id IS NULL
689: AND t.result IS NULL AND d.object_code = t.rule_id)
690: RETURNING cond.rule_id BULK COLLECT INTO clause_rules2;
691:
692: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
693: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '180: No. of clause based conditions updated with result: ' || clause_rules2.count);
694:
695: FOR a IN 1 .. clause_rules2.count LOOP
696: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '180: clause_rules2 rule_id: ' || clause_rules2(a)); END LOOP;
689: AND t.result IS NULL AND d.object_code = t.rule_id)
690: RETURNING cond.rule_id BULK COLLECT INTO clause_rules2;
691:
692: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
693: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '180: No. of clause based conditions updated with result: ' || clause_rules2.count);
694:
695: FOR a IN 1 .. clause_rules2.count LOOP
696: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '180: clause_rules2 rule_id: ' || clause_rules2(a)); END LOOP;
697: END IF;
692: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
693: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '180: No. of clause based conditions updated with result: ' || clause_rules2.count);
694:
695: FOR a IN 1 .. clause_rules2.count LOOP
696: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '180: clause_rules2 rule_id: ' || clause_rules2(a)); END LOOP;
697: END IF;
698: END IF;
699:
700: --Step III: Finding dependent rules for all the above changes and reevaluating them
702: OPEN c_dep_rules(clause_rules1, clause_rules2);
703: FETCH c_dep_rules BULK COLLECT INTO reeval_rule_ids;
704: CLOSE c_dep_rules;
705:
706: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
707: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '190: reeval_rule_ids.count: ' || reeval_rule_ids.count);
708:
709: FOR a IN 1 .. reeval_rule_ids.count LOOP
710: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '190: reeval_rule_ids rule_id: ' || reeval_rule_ids(a)); END LOOP;
703: FETCH c_dep_rules BULK COLLECT INTO reeval_rule_ids;
704: CLOSE c_dep_rules;
705:
706: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
707: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '190: reeval_rule_ids.count: ' || reeval_rule_ids.count);
708:
709: FOR a IN 1 .. reeval_rule_ids.count LOOP
710: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '190: reeval_rule_ids rule_id: ' || reeval_rule_ids(a)); END LOOP;
711: END IF;
706: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
707: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '190: reeval_rule_ids.count: ' || reeval_rule_ids.count);
708:
709: FOR a IN 1 .. reeval_rule_ids.count LOOP
710: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '190: reeval_rule_ids rule_id: ' || reeval_rule_ids(a)); END LOOP;
711: END IF;
712: END IF;
713: END IF;
714:
715: IF reeval_rule_ids.count > 0 THEN
716: reevaluate_rules(reeval_rule_ids);
717: END IF;
718:
719: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
720: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '200: Leaving method');
721: END IF;
722:
723: EXCEPTION
716: reevaluate_rules(reeval_rule_ids);
717: END IF;
718:
719: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
720: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '200: Leaving method');
721: END IF;
722:
723: EXCEPTION
724: WHEN OTHERS THEN
721: END IF;
722:
723: EXCEPTION
724: WHEN OTHERS THEN
725: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
726: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '210: Exception occured: ' || sqlerrm);
727: END IF;
728: raise;
729: END evaluate_rules_and_conditions;
722:
723: EXCEPTION
724: WHEN OTHERS THEN
725: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
726: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '210: Exception occured: ' || sqlerrm);
727: END IF;
728: raise;
729: END evaluate_rules_and_conditions;
730:
864: l_module VARCHAR2(250) := G_MODULE_NAME||l_api_name;
865:
866: BEGIN
867:
868: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
869: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
870: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_cond_id : ' || p_cond_id);
871: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_cond_type : ' || p_cond_type);
872: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_object_code : ' || p_object_code);
865:
866: BEGIN
867:
868: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
869: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
870: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_cond_id : ' || p_cond_id);
871: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_cond_type : ' || p_cond_type);
872: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_object_code : ' || p_object_code);
873: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_object_value_type : ' || p_object_value_type);
866: BEGIN
867:
868: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
869: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
870: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_cond_id : ' || p_cond_id);
871: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_cond_type : ' || p_cond_type);
872: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_object_code : ' || p_object_code);
873: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_object_value_type : ' || p_object_value_type);
874: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_object_value_code : ' || p_object_value_code);
867:
868: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
869: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
870: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_cond_id : ' || p_cond_id);
871: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_cond_type : ' || p_cond_type);
872: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_object_code : ' || p_object_code);
873: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_object_value_type : ' || p_object_value_type);
874: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_object_value_code : ' || p_object_value_code);
875: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_operator : ' || p_operator);
868: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
869: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
870: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_cond_id : ' || p_cond_id);
871: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_cond_type : ' || p_cond_type);
872: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_object_code : ' || p_object_code);
873: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_object_value_type : ' || p_object_value_type);
874: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_object_value_code : ' || p_object_value_code);
875: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_operator : ' || p_operator);
876: END IF;
869: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
870: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_cond_id : ' || p_cond_id);
871: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_cond_type : ' || p_cond_type);
872: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_object_code : ' || p_object_code);
873: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_object_value_type : ' || p_object_value_type);
874: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_object_value_code : ' || p_object_value_code);
875: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_operator : ' || p_operator);
876: END IF;
877:
870: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_cond_id : ' || p_cond_id);
871: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_cond_type : ' || p_cond_type);
872: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_object_code : ' || p_object_code);
873: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_object_value_type : ' || p_object_value_type);
874: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_object_value_code : ' || p_object_value_code);
875: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_operator : ' || p_operator);
876: END IF;
877:
878: OPEN c_lhsvalues;
871: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_cond_type : ' || p_cond_type);
872: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_object_code : ' || p_object_code);
873: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_object_value_type : ' || p_object_value_type);
874: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_object_value_code : ' || p_object_value_code);
875: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_operator : ' || p_operator);
876: END IF;
877:
878: OPEN c_lhsvalues;
879: FETCH c_lhsvalues BULK COLLECT INTO lhs_values_tbl;
878: OPEN c_lhsvalues;
879: FETCH c_lhsvalues BULK COLLECT INTO lhs_values_tbl;
880: CLOSE c_lhsvalues;
881:
882: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
883: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: No. of lhs values: ' || lhs_values_tbl.count);
884:
885: FOR a IN 1 .. lhs_values_tbl.count LOOP
886: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: lhs value: ' || lhs_values_tbl(a)); END LOOP;
879: FETCH c_lhsvalues BULK COLLECT INTO lhs_values_tbl;
880: CLOSE c_lhsvalues;
881:
882: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
883: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: No. of lhs values: ' || lhs_values_tbl.count);
884:
885: FOR a IN 1 .. lhs_values_tbl.count LOOP
886: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: lhs value: ' || lhs_values_tbl(a)); END LOOP;
887: END IF;
882: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
883: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: No. of lhs values: ' || lhs_values_tbl.count);
884:
885: FOR a IN 1 .. lhs_values_tbl.count LOOP
886: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: lhs value: ' || lhs_values_tbl(a)); END LOOP;
887: END IF;
888:
889: IF p_object_value_type = 'VALUE' THEN
890: OPEN c_rhsvalues_stored;
895: FETCH c_rhsvalues BULK COLLECT INTO rhs_values_tbl;
896: CLOSE c_rhsvalues;
897: END IF;
898:
899: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
900: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: No. of rhs values: ' || rhs_values_tbl.count);
901:
902: FOR a IN 1 .. rhs_values_tbl.count LOOP
903: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: rhs value: ' || rhs_values_tbl(a)); END LOOP;
896: CLOSE c_rhsvalues;
897: END IF;
898:
899: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
900: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: No. of rhs values: ' || rhs_values_tbl.count);
901:
902: FOR a IN 1 .. rhs_values_tbl.count LOOP
903: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: rhs value: ' || rhs_values_tbl(a)); END LOOP;
904: END IF;
899: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
900: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: No. of rhs values: ' || rhs_values_tbl.count);
901:
902: FOR a IN 1 .. rhs_values_tbl.count LOOP
903: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: rhs value: ' || rhs_values_tbl(a)); END LOOP;
904: END IF;
905:
906: IF p_operator = 'IS' THEN l_op_result := op_is();
907: ELSIF p_operator = 'IS_NOT' THEN l_op_result := op_is_not();
911: ELSIF p_operator IN ('<>') THEN l_op_result := op_is_not();
912: ELSIF p_operator IN ('<=','>=','<','>') THEN l_op_result := op_numeric(p_operator);
913: END IF;
914:
915: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
916: IF l_op_result THEN
917: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: l_op_result: TRUE');
918: ELSE
919: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: l_op_result: FALSE');
913: END IF;
914:
915: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
916: IF l_op_result THEN
917: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: l_op_result: TRUE');
918: ELSE
919: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: l_op_result: FALSE');
920: END IF;
921: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: Leaving method');
915: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
916: IF l_op_result THEN
917: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: l_op_result: TRUE');
918: ELSE
919: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: l_op_result: FALSE');
920: END IF;
921: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: Leaving method');
922: END IF;
923:
917: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: l_op_result: TRUE');
918: ELSE
919: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: l_op_result: FALSE');
920: END IF;
921: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: Leaving method');
922: END IF;
923:
924: RETURN l_op_result;
925:
924: RETURN l_op_result;
925:
926: EXCEPTION
927: WHEN OTHERS THEN
928: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
929: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '140: Exception occured: ' || sqlerrm);
930: END IF;
931: raise;
932: END evaluate_condition;
925:
926: EXCEPTION
927: WHEN OTHERS THEN
928: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
929: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '140: Exception occured: ' || sqlerrm);
930: END IF;
931: raise;
932: END evaluate_condition;
933:
966: l_module VARCHAR2(250) := G_MODULE_NAME||l_api_name;
967:
968: BEGIN
969:
970: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
971: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
972: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: No. of reeval_rules rule_ids: ' || reeval_rules.count);
973:
974: FOR a IN 1 .. reeval_rules.count LOOP
967:
968: BEGIN
969:
970: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
971: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
972: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: No. of reeval_rules rule_ids: ' || reeval_rules.count);
973:
974: FOR a IN 1 .. reeval_rules.count LOOP
975: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: reeval_rules rule_id: ' || reeval_rules(a)); END LOOP;
968: BEGIN
969:
970: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
971: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
972: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: No. of reeval_rules rule_ids: ' || reeval_rules.count);
973:
974: FOR a IN 1 .. reeval_rules.count LOOP
975: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: reeval_rules rule_id: ' || reeval_rules(a)); END LOOP;
976: END IF;
971: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
972: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: No. of reeval_rules rule_ids: ' || reeval_rules.count);
973:
974: FOR a IN 1 .. reeval_rules.count LOOP
975: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: reeval_rules rule_id: ' || reeval_rules(a)); END LOOP;
976: END IF;
977:
978: rule_ids1 := OKC_TBL_NUMBER();
979: rule_ids2 := OKC_TBL_NUMBER();
1003: AND rule_id = reeval_rules(j) AND condition_id IS NOT NULL
1004: AND doc_id = p_doc_id AND doc_type = p_doc_type AND rownum = 1)))
1005: RETURNING n + 1, result_tmp.rule_id INTO n, rule_ids1(n);
1006: IF SQL%FOUND THEN
1007: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1008: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: No. of rules updated with result = Y based on condition evaluation: ' || (n-1));
1009:
1010: FOR a IN 1 .. rule_ids1.count LOOP
1011: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: rule_ids1 rule_id: ' || rule_ids1(a)); END LOOP;
1004: AND doc_id = p_doc_id AND doc_type = p_doc_type AND rownum = 1)))
1005: RETURNING n + 1, result_tmp.rule_id INTO n, rule_ids1(n);
1006: IF SQL%FOUND THEN
1007: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1008: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: No. of rules updated with result = Y based on condition evaluation: ' || (n-1));
1009:
1010: FOR a IN 1 .. rule_ids1.count LOOP
1011: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: rule_ids1 rule_id: ' || rule_ids1(a)); END LOOP;
1012: END IF;
1007: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1008: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: No. of rules updated with result = Y based on condition evaluation: ' || (n-1));
1009:
1010: FOR a IN 1 .. rule_ids1.count LOOP
1011: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: rule_ids1 rule_id: ' || rule_ids1(a)); END LOOP;
1012: END IF;
1013: continue;
1014: END IF;
1015:
1035: AND rule_id = reeval_rules(j) AND condition_id IS NOT NULL
1036: AND doc_id = p_doc_id AND doc_type = p_doc_type AND rownum = 1)))
1037: RETURNING k + 1, result_tmp.rule_id INTO k, rule_ids2(k);
1038: IF SQL%FOUND THEN
1039: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1040: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: No. of rules updated with result based on condition evaluation: ' || (k-1));
1041:
1042: FOR a IN 1 .. rule_ids2.count LOOP
1043: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: rule_ids2 rule_id: ' || rule_ids2(a)); END LOOP;
1036: AND doc_id = p_doc_id AND doc_type = p_doc_type AND rownum = 1)))
1037: RETURNING k + 1, result_tmp.rule_id INTO k, rule_ids2(k);
1038: IF SQL%FOUND THEN
1039: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1040: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: No. of rules updated with result based on condition evaluation: ' || (k-1));
1041:
1042: FOR a IN 1 .. rule_ids2.count LOOP
1043: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: rule_ids2 rule_id: ' || rule_ids2(a)); END LOOP;
1044: END IF;
1039: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1040: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: No. of rules updated with result based on condition evaluation: ' || (k-1));
1041:
1042: FOR a IN 1 .. rule_ids2.count LOOP
1043: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: rule_ids2 rule_id: ' || rule_ids2(a)); END LOOP;
1044: END IF;
1045: continue;
1046: END IF;
1047:
1073: AND rule_id = reeval_rules(j) AND condition_id IS NOT NULL
1074: AND doc_id = p_doc_id AND doc_type = p_doc_type AND rownum = 1)))
1075: RETURNING l + 1, result_tmp.rule_id INTO l, rule_ids3(l);
1076: IF SQL%FOUND THEN
1077: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1078: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: No. of rules updated with result based on condition evaluation: ' || (l-1));
1079:
1080: FOR a IN 1 .. rule_ids3.count LOOP
1081: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: rule_ids3 rule_id: ' || rule_ids3(a)); END LOOP;
1074: AND doc_id = p_doc_id AND doc_type = p_doc_type AND rownum = 1)))
1075: RETURNING l + 1, result_tmp.rule_id INTO l, rule_ids3(l);
1076: IF SQL%FOUND THEN
1077: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1078: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: No. of rules updated with result based on condition evaluation: ' || (l-1));
1079:
1080: FOR a IN 1 .. rule_ids3.count LOOP
1081: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: rule_ids3 rule_id: ' || rule_ids3(a)); END LOOP;
1082: END IF;
1077: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1078: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: No. of rules updated with result based on condition evaluation: ' || (l-1));
1079:
1080: FOR a IN 1 .. rule_ids3.count LOOP
1081: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: rule_ids3 rule_id: ' || rule_ids3(a)); END LOOP;
1082: END IF;
1083: continue;
1084: END IF;
1085: END LOOP;
1095: WHEN NO_DATA_FOUND THEN
1096: NULL;
1097: END;
1098:
1099: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1100: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '150: has_clauses: ' || has_clauses);
1101: END IF;
1102:
1103: ---------------------------------------------------------------------------------------------------------------------------------------------------
1096: NULL;
1097: END;
1098:
1099: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1100: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '150: has_clauses: ' || has_clauses);
1101: END IF;
1102:
1103: ---------------------------------------------------------------------------------------------------------------------------------------------------
1104: --Step I: Additional Questions handling:
1116: AND display_flag <> 'Y' --it won't update if it is already Y, so that the rows1 count will not be included if there is no updation
1117: AND object_code IN (SELECT object_value_id FROM okc_xprt_rule_outcomes_act_v WHERE rule_id IN (SELECT * FROM table(rule_ids1)) and object_type = 'QUESTION');
1118: rows1 := sql%rowcount;
1119:
1120: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1121: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '160: No. of additional questions which are getting displayed based on the new rules that are evaluated: ' || rows1);
1122: END IF;
1123: END IF;
1124:
1117: AND object_code IN (SELECT object_value_id FROM okc_xprt_rule_outcomes_act_v WHERE rule_id IN (SELECT * FROM table(rule_ids1)) and object_type = 'QUESTION');
1118: rows1 := sql%rowcount;
1119:
1120: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1121: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '160: No. of additional questions which are getting displayed based on the new rules that are evaluated: ' || rows1);
1122: END IF;
1123: END IF;
1124:
1125:
1140: WHERE d.rule_id = t.rule_id AND t.doc_id = ques.doc_id AND t.doc_type = ques.doc_type AND nvl(t.result, '*') = 'Y' AND t.condition_id IS NULL
1141: AND to_char(d.object_value_id) = ques.object_code AND d.object_type = 'QUESTION');
1142: IF SQL%FOUND AND rule_ids2.count > 0 THEN
1143: rows2 := sql%rowcount;
1144: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1145: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '170: No. of additional questions which will getting displayed from the UI based on the new rules that are evaluated: ' || rows2);
1146: END IF;
1147: END IF;
1148:
1141: AND to_char(d.object_value_id) = ques.object_code AND d.object_type = 'QUESTION');
1142: IF SQL%FOUND AND rule_ids2.count > 0 THEN
1143: rows2 := sql%rowcount;
1144: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1145: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '170: No. of additional questions which will getting displayed from the UI based on the new rules that are evaluated: ' || rows2);
1146: END IF;
1147: END IF;
1148:
1149:
1162: WHERE d.rule_id = t.rule_id AND t.doc_id = ques.doc_id AND t.doc_type = ques.doc_type AND nvl(t.result, '*') = 'Y' AND t.condition_id IS NULL
1163: AND to_char(d.object_value_id) = ques.object_code AND d.object_type = 'QUESTION')
1164: RETURNING ques.object_code BULK COLLECT INTO question_ids;
1165:
1166: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1167: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '180: No. of additional questions which are updated the result to Y based on the new rules that are evaluated: ' || question_ids.count);
1168:
1169: FOR a IN 1 .. question_ids.count LOOP
1170: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '180: question_ids question_id: ' || question_ids(a)); END LOOP;
1163: AND to_char(d.object_value_id) = ques.object_code AND d.object_type = 'QUESTION')
1164: RETURNING ques.object_code BULK COLLECT INTO question_ids;
1165:
1166: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1167: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '180: No. of additional questions which are updated the result to Y based on the new rules that are evaluated: ' || question_ids.count);
1168:
1169: FOR a IN 1 .. question_ids.count LOOP
1170: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '180: question_ids question_id: ' || question_ids(a)); END LOOP;
1171: END IF;
1166: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1167: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '180: No. of additional questions which are updated the result to Y based on the new rules that are evaluated: ' || question_ids.count);
1168:
1169: FOR a IN 1 .. question_ids.count LOOP
1170: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '180: question_ids question_id: ' || question_ids(a)); END LOOP;
1171: END IF;
1172:
1173: --updating the result of all the conditions to null which contains this additional question
1174: --question_ids will have unique question ids
1181: AND doc_type = p_doc_type
1182: AND condition_type = 'QUESTION'
1183: RETURNING rule_id BULK COLLECT INTO ques_rules;
1184:
1185: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1186: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '190: No. of question based conditions rule_ids which are updated the result to null as the resposne is made to null: ' || ques_rules.count);
1187:
1188: FOR a IN 1 .. ques_rules.count LOOP
1189: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '190: ques_rules rule_id: ' || ques_rules(a)); END LOOP;
1182: AND condition_type = 'QUESTION'
1183: RETURNING rule_id BULK COLLECT INTO ques_rules;
1184:
1185: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1186: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '190: No. of question based conditions rule_ids which are updated the result to null as the resposne is made to null: ' || ques_rules.count);
1187:
1188: FOR a IN 1 .. ques_rules.count LOOP
1189: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '190: ques_rules rule_id: ' || ques_rules(a)); END LOOP;
1190: END IF;
1185: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1186: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '190: No. of question based conditions rule_ids which are updated the result to null as the resposne is made to null: ' || ques_rules.count);
1187:
1188: FOR a IN 1 .. ques_rules.count LOOP
1189: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '190: ques_rules rule_id: ' || ques_rules(a)); END LOOP;
1190: END IF;
1191: END IF;
1192: END IF;
1193:
1197: IF rows1 > 0 OR rows2 > 0 THEN
1198: questions_display_changed := 'Y';
1199: END IF;
1200:
1201: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1202: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '200: questions_display_changed: ' || questions_display_changed);
1203: END IF;
1204:
1205: ---------------------------------------------------------------------------------------------------------------------------------------------------
1198: questions_display_changed := 'Y';
1199: END IF;
1200:
1201: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1202: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '200: questions_display_changed: ' || questions_display_changed);
1203: END IF;
1204:
1205: ---------------------------------------------------------------------------------------------------------------------------------------------------
1206: --Step II: Dependent Clause based conditions evaluation:
1224: AND condition_id IN (SELECT distinct dep_clause_cond_id FROM okc_xprt_rule_eval_condval_t d WHERE d.doc_id = cond.doc_id and d.doc_type = cond.doc_type
1225: and d.object_type = 'RULE' and d.object_code IN (SELECT * FROM table(rule_ids1)))
1226: RETURNING rule_id BULK COLLECT INTO clause_rules1;
1227:
1228: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1229: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '210: No. of clause based questions which are updated the result based on the new rules that are evaluated: ' || clause_rules1.count);
1230:
1231: FOR a IN 1 .. clause_rules1.count LOOP
1232: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '210: clause_rules1 rule_id: ' || clause_rules1(a)); END LOOP;
1225: and d.object_type = 'RULE' and d.object_code IN (SELECT * FROM table(rule_ids1)))
1226: RETURNING rule_id BULK COLLECT INTO clause_rules1;
1227:
1228: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1229: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '210: No. of clause based questions which are updated the result based on the new rules that are evaluated: ' || clause_rules1.count);
1230:
1231: FOR a IN 1 .. clause_rules1.count LOOP
1232: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '210: clause_rules1 rule_id: ' || clause_rules1(a)); END LOOP;
1233: END IF;
1228: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1229: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '210: No. of clause based questions which are updated the result based on the new rules that are evaluated: ' || clause_rules1.count);
1230:
1231: FOR a IN 1 .. clause_rules1.count LOOP
1232: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '210: clause_rules1 rule_id: ' || clause_rules1(a)); END LOOP;
1233: END IF;
1234: END IF;
1235:
1236: --B) rule_ids2--- which have changed their result from Y to N or Y to null
1253: AND t.doc_id = d.doc_id AND t.doc_type = d.doc_type AND t.condition_id IS NULL AND nvl(t.result, '*') = 'Y')
1254: --it their exists a sucess condition, then the result of the rule reamins same i.e T in case of IN,IS operator and F in case of IS_NOT, NOT_IN operator
1255: RETURNING cond.rule_id BULK COLLECT INTO clause_rules2;
1256:
1257: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1258: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '220: No. of clause based questions which are updated the result based on the new rules that are evaluated: ' || clause_rules2.count);
1259:
1260: FOR a IN 1 .. clause_rules2.count LOOP
1261: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '220: clause_rules2 rule_id: ' || clause_rules2(a)); END LOOP;
1254: --it their exists a sucess condition, then the result of the rule reamins same i.e T in case of IN,IS operator and F in case of IS_NOT, NOT_IN operator
1255: RETURNING cond.rule_id BULK COLLECT INTO clause_rules2;
1256:
1257: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1258: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '220: No. of clause based questions which are updated the result based on the new rules that are evaluated: ' || clause_rules2.count);
1259:
1260: FOR a IN 1 .. clause_rules2.count LOOP
1261: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '220: clause_rules2 rule_id: ' || clause_rules2(a)); END LOOP;
1262: END IF;
1257: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1258: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '220: No. of clause based questions which are updated the result based on the new rules that are evaluated: ' || clause_rules2.count);
1259:
1260: FOR a IN 1 .. clause_rules2.count LOOP
1261: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '220: clause_rules2 rule_id: ' || clause_rules2(a)); END LOOP;
1262: END IF;
1263: END IF;
1264:
1265: --C) rule_ids3--- which have changed their result from null to N or N to null
1285: AND d.object_type = 'RULE' AND d.dep_clause_cond_id = cond.condition_id AND t.doc_id = d.doc_id
1286: AND t.doc_type = d.doc_type AND d.object_code = t.rule_id AND t.condition_id IS NULL AND t.result IS NULL AND cond.result IS NULL)
1287: RETURNING cond.rule_id BULK COLLECT INTO clause_rules3;
1288:
1289: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1290: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '230: No. of clause based questions which are updated the result based on the new rules that are evaluated: ' || clause_rules3.count);
1291:
1292: FOR a IN 1 .. clause_rules3.count LOOP
1293: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '230: clause_rules3 rule_id: ' || clause_rules3(a)); END LOOP;
1286: AND t.doc_type = d.doc_type AND d.object_code = t.rule_id AND t.condition_id IS NULL AND t.result IS NULL AND cond.result IS NULL)
1287: RETURNING cond.rule_id BULK COLLECT INTO clause_rules3;
1288:
1289: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1290: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '230: No. of clause based questions which are updated the result based on the new rules that are evaluated: ' || clause_rules3.count);
1291:
1292: FOR a IN 1 .. clause_rules3.count LOOP
1293: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '230: clause_rules3 rule_id: ' || clause_rules3(a)); END LOOP;
1294: END IF;
1289: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1290: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '230: No. of clause based questions which are updated the result based on the new rules that are evaluated: ' || clause_rules3.count);
1291:
1292: FOR a IN 1 .. clause_rules3.count LOOP
1293: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '230: clause_rules3 rule_id: ' || clause_rules3(a)); END LOOP;
1294: END IF;
1295: END IF;
1296:
1297: END IF;
1304: FETCH c_dep_rules BULK COLLECT INTO new_reevalrule_ids;
1305: CLOSE c_dep_rules;
1306: END IF;
1307:
1308: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1309: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '240: No. of rules that have to be re-evaluated based on changes done: ' || new_reevalrule_ids.count);
1310:
1311: FOR a IN 1 .. new_reevalrule_ids.count LOOP
1312: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '240: new_reevalrule_ids rule_id: ' || new_reevalrule_ids(a)); END LOOP;
1305: CLOSE c_dep_rules;
1306: END IF;
1307:
1308: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1309: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '240: No. of rules that have to be re-evaluated based on changes done: ' || new_reevalrule_ids.count);
1310:
1311: FOR a IN 1 .. new_reevalrule_ids.count LOOP
1312: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '240: new_reevalrule_ids rule_id: ' || new_reevalrule_ids(a)); END LOOP;
1313: END IF;
1308: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1309: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '240: No. of rules that have to be re-evaluated based on changes done: ' || new_reevalrule_ids.count);
1310:
1311: FOR a IN 1 .. new_reevalrule_ids.count LOOP
1312: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '240: new_reevalrule_ids rule_id: ' || new_reevalrule_ids(a)); END LOOP;
1313: END IF;
1314:
1315: IF new_reevalrule_ids.count > 0 THEN
1316: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1312: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '240: new_reevalrule_ids rule_id: ' || new_reevalrule_ids(a)); END LOOP;
1313: END IF;
1314:
1315: IF new_reevalrule_ids.count > 0 THEN
1316: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1317: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '250: calling reevaluate_rules method.');
1318: END IF;
1319:
1320: reevaluate_rules(new_reevalrule_ids);
1313: END IF;
1314:
1315: IF new_reevalrule_ids.count > 0 THEN
1316: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1317: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '250: calling reevaluate_rules method.');
1318: END IF;
1319:
1320: reevaluate_rules(new_reevalrule_ids);
1321: END IF;
1319:
1320: reevaluate_rules(new_reevalrule_ids);
1321: END IF;
1322:
1323: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1324: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '260: Leaving method');
1325: END IF;
1326:
1327: EXCEPTION
1320: reevaluate_rules(new_reevalrule_ids);
1321: END IF;
1322:
1323: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1324: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '260: Leaving method');
1325: END IF;
1326:
1327: EXCEPTION
1328: WHEN OTHERS THEN
1325: END IF;
1326:
1327: EXCEPTION
1328: WHEN OTHERS THEN
1329: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1330: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '270: Exception occured: ' || sqlerrm);
1331: END IF;
1332: raise;
1333: END reevaluate_rules;
1326:
1327: EXCEPTION
1328: WHEN OTHERS THEN
1329: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1330: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '270: Exception occured: ' || sqlerrm);
1331: END IF;
1332: raise;
1333: END reevaluate_rules;
1334:
1371: l_api_name CONSTANT VARCHAR2(30) := 'evaluate_user_response';
1372: l_module VARCHAR2(250) := G_MODULE_NAME||l_api_name;
1373:
1374: BEGIN
1375: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1376: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
1377: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1378: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1379: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: template_id : ' || template_id);
1372: l_module VARCHAR2(250) := G_MODULE_NAME||l_api_name;
1373:
1374: BEGIN
1375: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1376: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
1377: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1378: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1379: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: template_id : ' || template_id);
1380: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_question_id : ' || p_question_id);
1373:
1374: BEGIN
1375: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1376: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
1377: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1378: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1379: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: template_id : ' || template_id);
1380: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_question_id : ' || p_question_id);
1381: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_response : ' || p_response);
1374: BEGIN
1375: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1376: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
1377: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1378: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1379: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: template_id : ' || template_id);
1380: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_question_id : ' || p_question_id);
1381: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_response : ' || p_response);
1382: END IF;
1375: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1376: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
1377: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1378: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1379: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: template_id : ' || template_id);
1380: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_question_id : ' || p_question_id);
1381: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_response : ' || p_response);
1382: END IF;
1383:
1376: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
1377: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1378: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1379: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: template_id : ' || template_id);
1380: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_question_id : ' || p_question_id);
1381: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_response : ' || p_response);
1382: END IF;
1383:
1384: p_doc_id := doc_id;
1377: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1378: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1379: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: template_id : ' || template_id);
1380: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_question_id : ' || p_question_id);
1381: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_response : ' || p_response);
1382: END IF;
1383:
1384: p_doc_id := doc_id;
1385: p_doc_type := doc_type;
1423: ELSE
1424: l_cond_result := evaluate_condition(rule_cond.condition_id, rule_cond.condition_type, rule_cond.object_code, rule_cond.object_value_type, rule_cond.object_value_code, rule_cond.cond_operator);
1425: END IF;
1426:
1427: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1428: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: condition_id : ' || rule_cond.condition_id);
1429: IF l_cond_result IS NULL THEN
1430: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_cond_result : NULL');
1431: ELSIF l_cond_result THEN
1424: l_cond_result := evaluate_condition(rule_cond.condition_id, rule_cond.condition_type, rule_cond.object_code, rule_cond.object_value_type, rule_cond.object_value_code, rule_cond.cond_operator);
1425: END IF;
1426:
1427: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1428: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: condition_id : ' || rule_cond.condition_id);
1429: IF l_cond_result IS NULL THEN
1430: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_cond_result : NULL');
1431: ELSIF l_cond_result THEN
1432: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_cond_result : TRUE');
1426:
1427: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1428: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: condition_id : ' || rule_cond.condition_id);
1429: IF l_cond_result IS NULL THEN
1430: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_cond_result : NULL');
1431: ELSIF l_cond_result THEN
1432: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_cond_result : TRUE');
1433: ELSE
1434: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_cond_result : FALSE');
1428: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: condition_id : ' || rule_cond.condition_id);
1429: IF l_cond_result IS NULL THEN
1430: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_cond_result : NULL');
1431: ELSIF l_cond_result THEN
1432: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_cond_result : TRUE');
1433: ELSE
1434: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_cond_result : FALSE');
1435: END IF;
1436: END IF;
1430: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_cond_result : NULL');
1431: ELSIF l_cond_result THEN
1432: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_cond_result : TRUE');
1433: ELSE
1434: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_cond_result : FALSE');
1435: END IF;
1436: END IF;
1437:
1438: IF l_cond_result IS NULL AND rule_cond.result IS NOT NULL THEN
1459: END IF;
1460: END LOOP;
1461: END IF;
1462:
1463: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1464: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: : result_tbl count' || result_tbl.count);
1465:
1466: FOR a IN 1 .. result_tbl.count LOOP
1467: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: result_tbl rule_id: ' || result_tbl(a).rule_id || ' condition_id: ' || result_tbl(a).condition_id || ' result: ' || result_tbl(a).result); END LOOP;
1460: END LOOP;
1461: END IF;
1462:
1463: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1464: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: : result_tbl count' || result_tbl.count);
1465:
1466: FOR a IN 1 .. result_tbl.count LOOP
1467: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: result_tbl rule_id: ' || result_tbl(a).rule_id || ' condition_id: ' || result_tbl(a).condition_id || ' result: ' || result_tbl(a).result); END LOOP;
1468: END IF;
1463: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1464: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: : result_tbl count' || result_tbl.count);
1465:
1466: FOR a IN 1 .. result_tbl.count LOOP
1467: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: result_tbl rule_id: ' || result_tbl(a).rule_id || ' condition_id: ' || result_tbl(a).condition_id || ' result: ' || result_tbl(a).result); END LOOP;
1468: END IF;
1469:
1470: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1471: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: rule_ids count: ' || rule_ids.count);
1466: FOR a IN 1 .. result_tbl.count LOOP
1467: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: result_tbl rule_id: ' || result_tbl(a).rule_id || ' condition_id: ' || result_tbl(a).condition_id || ' result: ' || result_tbl(a).result); END LOOP;
1468: END IF;
1469:
1470: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1471: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: rule_ids count: ' || rule_ids.count);
1472:
1473: FOR a IN 1 .. rule_ids.count LOOP
1474: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: rule_ids rule_id: ' || rule_ids(a)); END LOOP;
1467: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: result_tbl rule_id: ' || result_tbl(a).rule_id || ' condition_id: ' || result_tbl(a).condition_id || ' result: ' || result_tbl(a).result); END LOOP;
1468: END IF;
1469:
1470: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1471: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: rule_ids count: ' || rule_ids.count);
1472:
1473: FOR a IN 1 .. rule_ids.count LOOP
1474: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: rule_ids rule_id: ' || rule_ids(a)); END LOOP;
1475: END IF;
1470: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1471: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: rule_ids count: ' || rule_ids.count);
1472:
1473: FOR a IN 1 .. rule_ids.count LOOP
1474: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '130: rule_ids rule_id: ' || rule_ids(a)); END LOOP;
1475: END IF;
1476:
1477: FORALL j IN 1 .. result_tbl.count
1478: UPDATE okc_xprt_rule_eval_result_t result_tmp
1482: AND result_tmp.doc_id = p_doc_id
1483: AND result_tmp.doc_type = p_doc_type;
1484:
1485: IF result_tbl.count > 0 THEN
1486: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1487: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: calling reevaluate_rules method.');
1488: END IF;
1489: reevaluate_rules(rule_ids);
1490: END IF;
1483: AND result_tmp.doc_type = p_doc_type;
1484:
1485: IF result_tbl.count > 0 THEN
1486: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1487: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '140: calling reevaluate_rules method.');
1488: END IF;
1489: reevaluate_rules(rule_ids);
1490: END IF;
1491:
1488: END IF;
1489: reevaluate_rules(rule_ids);
1490: END IF;
1491:
1492: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1493: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '150: questions_display_changed: ' || questions_display_changed);
1494: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '150: Leaving method');
1495: END IF;
1496:
1489: reevaluate_rules(rule_ids);
1490: END IF;
1491:
1492: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1493: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '150: questions_display_changed: ' || questions_display_changed);
1494: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '150: Leaving method');
1495: END IF;
1496:
1497: RETURN questions_display_changed;
1490: END IF;
1491:
1492: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1493: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '150: questions_display_changed: ' || questions_display_changed);
1494: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '150: Leaving method');
1495: END IF;
1496:
1497: RETURN questions_display_changed;
1498:
1497: RETURN questions_display_changed;
1498:
1499: EXCEPTION
1500: WHEN OTHERS THEN
1501: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1502: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '160: Exception occured: ' || sqlerrm);
1503: END IF;
1504: raise;
1505: END evaluate_user_response;
1498:
1499: EXCEPTION
1500: WHEN OTHERS THEN
1501: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1502: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '160: Exception occured: ' || sqlerrm);
1503: END IF;
1504: raise;
1505: END evaluate_user_response;
1506:
1520: l_api_name CONSTANT VARCHAR2(30) := 'save_responses';
1521: l_module VARCHAR2(250) := G_MODULE_NAME||l_api_name;
1522:
1523: BEGIN
1524: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1525: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
1526: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1527: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1528: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_lock_xprt_yn : ' || p_lock_xprt_yn);
1521: l_module VARCHAR2(250) := G_MODULE_NAME||l_api_name;
1522:
1523: BEGIN
1524: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1525: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
1526: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1527: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1528: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_lock_xprt_yn : ' || p_lock_xprt_yn);
1529: END IF;
1522:
1523: BEGIN
1524: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1525: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
1526: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1527: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1528: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_lock_xprt_yn : ' || p_lock_xprt_yn);
1529: END IF;
1530:
1523: BEGIN
1524: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1525: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
1526: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1527: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1528: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_lock_xprt_yn : ' || p_lock_xprt_yn);
1529: END IF;
1530:
1531: p_doc_id := doc_id;
1524: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1525: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
1526: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1527: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1528: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_lock_xprt_yn : ' || p_lock_xprt_yn);
1529: END IF;
1530:
1531: p_doc_id := doc_id;
1532: p_doc_type := doc_type;
1539: OPEN c_base_table_dtls;
1540: FETCH c_base_table_dtls INTO l_src_document_type,l_src_document_id;
1541: CLOSE c_base_table_dtls;
1542:
1543: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1544: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_src_document_type: ' || l_src_document_type);
1545: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_src_document_id: ' || l_src_document_id);
1546: END IF;
1547:
1540: FETCH c_base_table_dtls INTO l_src_document_type,l_src_document_id;
1541: CLOSE c_base_table_dtls;
1542:
1543: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1544: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_src_document_type: ' || l_src_document_type);
1545: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_src_document_id: ' || l_src_document_id);
1546: END IF;
1547:
1548: IF p_lock_xprt_yn = 'Y' THEN
1541: CLOSE c_base_table_dtls;
1542:
1543: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1544: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_src_document_type: ' || l_src_document_type);
1545: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: l_src_document_id: ' || l_src_document_id);
1546: END IF;
1547:
1548: IF p_lock_xprt_yn = 'Y' THEN
1549: IF l_src_document_type IS NOT NULL AND l_src_document_id IS NOT NULL THEN
1590: AND document_type = p_doc_type;
1591:
1592: commit;
1593:
1594: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1595: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Commit done');
1596: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Leaving method');
1597: END IF;
1598:
1591:
1592: commit;
1593:
1594: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1595: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Commit done');
1596: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Leaving method');
1597: END IF;
1598:
1599: EXCEPTION
1592: commit;
1593:
1594: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1595: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Commit done');
1596: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '120: Leaving method');
1597: END IF;
1598:
1599: EXCEPTION
1600: WHEN OTHERS THEN
1597: END IF;
1598:
1599: EXCEPTION
1600: WHEN OTHERS THEN
1601: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1602: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '130: Exception occured: ' || sqlerrm);
1603: END IF;
1604: raise;
1605: END save_responses;
1598:
1599: EXCEPTION
1600: WHEN OTHERS THEN
1601: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1602: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '130: Exception occured: ' || sqlerrm);
1603: END IF;
1604: raise;
1605: END save_responses;
1606:
1611: l_api_name CONSTANT VARCHAR2(30) := 'has_all_questions_answered';
1612: l_module VARCHAR2(250) := G_MODULE_NAME||l_api_name;
1613:
1614: BEGIN
1615: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1616: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
1617: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1618: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1619: END IF;
1612: l_module VARCHAR2(250) := G_MODULE_NAME||l_api_name;
1613:
1614: BEGIN
1615: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1616: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
1617: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1618: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1619: END IF;
1620:
1613:
1614: BEGIN
1615: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1616: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
1617: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1618: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1619: END IF;
1620:
1621: p_doc_id := doc_id;
1614: BEGIN
1615: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1616: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering method');
1617: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1618: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1619: END IF;
1620:
1621: p_doc_id := doc_id;
1622: p_doc_type := doc_type;
1629: WHEN NO_DATA_FOUND THEN
1630: NULL;
1631: END;
1632:
1633: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1634: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: has_all_ques_answered: ' || has_all_ques_answered);
1635: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: Leaving method');
1636: END IF;
1637:
1630: NULL;
1631: END;
1632:
1633: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1634: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: has_all_ques_answered: ' || has_all_ques_answered);
1635: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: Leaving method');
1636: END IF;
1637:
1638: RETURN has_all_ques_answered;
1631: END;
1632:
1633: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1634: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: has_all_ques_answered: ' || has_all_ques_answered);
1635: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: Leaving method');
1636: END IF;
1637:
1638: RETURN has_all_ques_answered;
1639:
1638: RETURN has_all_ques_answered;
1639:
1640: EXCEPTION
1641: WHEN OTHERS THEN
1642: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1643: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '120: Exception occured: ' || sqlerrm);
1644: END IF;
1645: raise;
1646: END has_all_questions_answered;
1639:
1640: EXCEPTION
1641: WHEN OTHERS THEN
1642: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1643: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '120: Exception occured: ' || sqlerrm);
1644: END IF;
1645: raise;
1646: END has_all_questions_answered;
1647:
1652: l_module VARCHAR2(250) := G_MODULE_NAME||l_api_name;
1653:
1654: BEGIN
1655:
1656: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1657: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering create_xprt_responses_version method');
1658: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1659: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1660: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_major_version : ' || p_major_version);
1653:
1654: BEGIN
1655:
1656: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1657: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering create_xprt_responses_version method');
1658: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1659: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1660: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_major_version : ' || p_major_version);
1661: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Saving responses into history table');
1654: BEGIN
1655:
1656: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1657: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering create_xprt_responses_version method');
1658: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1659: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1660: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_major_version : ' || p_major_version);
1661: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Saving responses into history table');
1662: END IF;
1655:
1656: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1657: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering create_xprt_responses_version method');
1658: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1659: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1660: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_major_version : ' || p_major_version);
1661: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Saving responses into history table');
1662: END IF;
1663:
1656: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1657: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering create_xprt_responses_version method');
1658: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1659: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1660: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_major_version : ' || p_major_version);
1661: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Saving responses into history table');
1662: END IF;
1663:
1664: p_doc_id := doc_id;
1657: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering create_xprt_responses_version method');
1658: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1659: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1660: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_major_version : ' || p_major_version);
1661: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Saving responses into history table');
1662: END IF;
1663:
1664: p_doc_id := doc_id;
1665: p_doc_type := doc_type;
1668: INSERT INTO okc_xprt_doc_ques_response_h (doc_question_response_id, doc_id, doc_type, major_version, question_id, response)
1669: (SELECT doc_question_response_id, p_doc_id, p_doc_type, p_major_version, question_id, response FROM okc_xprt_doc_ques_response
1670: WHERE doc_id = p_doc_id AND doc_type = p_doc_type);
1671:
1672: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1673: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: no. of rows copied : ' || sql%rowcount);
1674: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: Leaving method');
1675: END IF;
1676:
1669: (SELECT doc_question_response_id, p_doc_id, p_doc_type, p_major_version, question_id, response FROM okc_xprt_doc_ques_response
1670: WHERE doc_id = p_doc_id AND doc_type = p_doc_type);
1671:
1672: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1673: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: no. of rows copied : ' || sql%rowcount);
1674: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: Leaving method');
1675: END IF;
1676:
1677: EXCEPTION
1670: WHERE doc_id = p_doc_id AND doc_type = p_doc_type);
1671:
1672: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1673: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: no. of rows copied : ' || sql%rowcount);
1674: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: Leaving method');
1675: END IF;
1676:
1677: EXCEPTION
1678: WHEN OTHERS THEN
1675: END IF;
1676:
1677: EXCEPTION
1678: WHEN OTHERS THEN
1679: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1680: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '120: Exception occured: ' || sqlerrm);
1681: END IF;
1682: raise;
1683: END create_xprt_responses_version;
1676:
1677: EXCEPTION
1678: WHEN OTHERS THEN
1679: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1680: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '120: Exception occured: ' || sqlerrm);
1681: END IF;
1682: raise;
1683: END create_xprt_responses_version;
1684:
1689: l_module VARCHAR2(250) := G_MODULE_NAME||l_api_name;
1690:
1691: BEGIN
1692:
1693: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1694: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering restore_xprt_responses_version method');
1695: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1696: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1697: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_major_version : ' || p_major_version);
1690:
1691: BEGIN
1692:
1693: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1694: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering restore_xprt_responses_version method');
1695: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1696: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1697: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_major_version : ' || p_major_version);
1698: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Restoring responses from history table to the main table');
1691: BEGIN
1692:
1693: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1694: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering restore_xprt_responses_version method');
1695: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1696: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1697: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_major_version : ' || p_major_version);
1698: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Restoring responses from history table to the main table');
1699: END IF;
1692:
1693: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1694: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering restore_xprt_responses_version method');
1695: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1696: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1697: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_major_version : ' || p_major_version);
1698: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Restoring responses from history table to the main table');
1699: END IF;
1700:
1693: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1694: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering restore_xprt_responses_version method');
1695: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1696: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1697: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_major_version : ' || p_major_version);
1698: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Restoring responses from history table to the main table');
1699: END IF;
1700:
1701: p_doc_id := doc_id;
1694: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering restore_xprt_responses_version method');
1695: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1696: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1697: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_major_version : ' || p_major_version);
1698: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Restoring responses from history table to the main table');
1699: END IF;
1700:
1701: p_doc_id := doc_id;
1702: p_doc_type := doc_type;
1705: INSERT INTO okc_xprt_doc_ques_response(doc_question_response_id, doc_id, doc_type, question_id, response)
1706: (SELECT doc_question_response_id, p_doc_id, p_doc_type, question_id, response FROM okc_xprt_doc_ques_response_h
1707: WHERE doc_id = p_doc_id AND doc_type = p_doc_type AND major_version = p_major_version);
1708:
1709: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1710: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: no. of rows copied : ' || sql%rowcount);
1711: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: Leaving restore_xprt_responses_version method');
1712: END IF;
1713:
1706: (SELECT doc_question_response_id, p_doc_id, p_doc_type, question_id, response FROM okc_xprt_doc_ques_response_h
1707: WHERE doc_id = p_doc_id AND doc_type = p_doc_type AND major_version = p_major_version);
1708:
1709: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1710: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: no. of rows copied : ' || sql%rowcount);
1711: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: Leaving restore_xprt_responses_version method');
1712: END IF;
1713:
1714: EXCEPTION
1707: WHERE doc_id = p_doc_id AND doc_type = p_doc_type AND major_version = p_major_version);
1708:
1709: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1710: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: no. of rows copied : ' || sql%rowcount);
1711: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: Leaving restore_xprt_responses_version method');
1712: END IF;
1713:
1714: EXCEPTION
1715: WHEN OTHERS THEN
1712: END IF;
1713:
1714: EXCEPTION
1715: WHEN OTHERS THEN
1716: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1717: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '120: Exception occured: ' || sqlerrm);
1718: END IF;
1719: raise;
1720: END restore_xprt_responses_version;
1713:
1714: EXCEPTION
1715: WHEN OTHERS THEN
1716: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1717: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '120: Exception occured: ' || sqlerrm);
1718: END IF;
1719: raise;
1720: END restore_xprt_responses_version;
1721:
1726: l_module VARCHAR2(250) := G_MODULE_NAME||l_api_name;
1727:
1728: BEGIN
1729:
1730: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1731: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering delete_xprt_responses_version method');
1732: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1733: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1734: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_major_version : ' || p_major_version);
1727:
1728: BEGIN
1729:
1730: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1731: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering delete_xprt_responses_version method');
1732: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1733: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1734: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_major_version : ' || p_major_version);
1735: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Deleting responses from history table');
1728: BEGIN
1729:
1730: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1731: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering delete_xprt_responses_version method');
1732: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1733: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1734: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_major_version : ' || p_major_version);
1735: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Deleting responses from history table');
1736: END IF;
1729:
1730: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1731: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering delete_xprt_responses_version method');
1732: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1733: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1734: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_major_version : ' || p_major_version);
1735: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Deleting responses from history table');
1736: END IF;
1737:
1730: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1731: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering delete_xprt_responses_version method');
1732: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1733: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1734: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_major_version : ' || p_major_version);
1735: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Deleting responses from history table');
1736: END IF;
1737:
1738: p_doc_id := doc_id;
1731: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Entering delete_xprt_responses_version method');
1732: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_id : ' || doc_id);
1733: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: doc_type : ' || doc_type);
1734: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: p_major_version : ' || p_major_version);
1735: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '100: Deleting responses from history table');
1736: END IF;
1737:
1738: p_doc_id := doc_id;
1739: p_doc_type := doc_type;
1741: --deleting the responses from okc_xprt_doc_ques_response_h history table as the revision is deleted.
1742: DELETE FROM okc_xprt_doc_ques_response_h
1743: WHERE doc_id = p_doc_id AND doc_type = p_doc_type AND major_version = p_major_version;
1744:
1745: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1746: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: no. of rows deleted : ' || sql%rowcount);
1747: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: Leaving delete_xprt_responses_version method');
1748: END IF;
1749:
1742: DELETE FROM okc_xprt_doc_ques_response_h
1743: WHERE doc_id = p_doc_id AND doc_type = p_doc_type AND major_version = p_major_version;
1744:
1745: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1746: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: no. of rows deleted : ' || sql%rowcount);
1747: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: Leaving delete_xprt_responses_version method');
1748: END IF;
1749:
1750: EXCEPTION
1743: WHERE doc_id = p_doc_id AND doc_type = p_doc_type AND major_version = p_major_version;
1744:
1745: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1746: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: no. of rows deleted : ' || sql%rowcount);
1747: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT, l_module, '110: Leaving delete_xprt_responses_version method');
1748: END IF;
1749:
1750: EXCEPTION
1751: WHEN OTHERS THEN
1748: END IF;
1749:
1750: EXCEPTION
1751: WHEN OTHERS THEN
1752: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1753: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '120: Exception occured: ' || sqlerrm);
1754: END IF;
1755: raise;
1756: END delete_xprt_responses_version;
1749:
1750: EXCEPTION
1751: WHEN OTHERS THEN
1752: IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1753: FND_LOG.STRING( FND_LOG.LEVEL_EXCEPTION, l_module, '120: Exception occured: ' || sqlerrm);
1754: END IF;
1755: raise;
1756: END delete_xprt_responses_version;
1757: