453: AND cond.doc_type = p_doc_type
454: AND cond.condition_id IS NOT NULL
455: AND cond.rule_id = c_rule_id;
456:
457: CURSOR c_dep_rules(c_crules1 OKC_TBL_NUMBER, c_crules2 OKC_TBL_NUMBER) IS
458: SELECT distinct * FROM table(c_crules1)
459: UNION
460: SELECT distinct * FROM table(c_crules2);
461:
458: SELECT distinct * FROM table(c_crules1)
459: UNION
460: SELECT distinct * FROM table(c_crules2);
461:
462: success_rule_ids OKC_TBL_NUMBER;
463: failure_rule_ids OKC_TBL_NUMBER;
464: reeval_rule_ids OKC_TBL_NUMBER;
465: clause_rules1 OKC_TBL_NUMBER;
466: clause_rules2 OKC_TBL_NUMBER;
459: UNION
460: SELECT distinct * FROM table(c_crules2);
461:
462: success_rule_ids OKC_TBL_NUMBER;
463: failure_rule_ids OKC_TBL_NUMBER;
464: reeval_rule_ids OKC_TBL_NUMBER;
465: clause_rules1 OKC_TBL_NUMBER;
466: clause_rules2 OKC_TBL_NUMBER;
467:
460: SELECT distinct * FROM table(c_crules2);
461:
462: success_rule_ids OKC_TBL_NUMBER;
463: failure_rule_ids OKC_TBL_NUMBER;
464: reeval_rule_ids OKC_TBL_NUMBER;
465: clause_rules1 OKC_TBL_NUMBER;
466: clause_rules2 OKC_TBL_NUMBER;
467:
468: result_tbl result_tbl_type;
461:
462: success_rule_ids OKC_TBL_NUMBER;
463: failure_rule_ids OKC_TBL_NUMBER;
464: reeval_rule_ids OKC_TBL_NUMBER;
465: clause_rules1 OKC_TBL_NUMBER;
466: clause_rules2 OKC_TBL_NUMBER;
467:
468: result_tbl result_tbl_type;
469: is_rule_evaluated VARCHAR2(1);
462: success_rule_ids OKC_TBL_NUMBER;
463: failure_rule_ids OKC_TBL_NUMBER;
464: reeval_rule_ids OKC_TBL_NUMBER;
465: clause_rules1 OKC_TBL_NUMBER;
466: clause_rules2 OKC_TBL_NUMBER;
467:
468: result_tbl result_tbl_type;
469: is_rule_evaluated VARCHAR2(1);
470: has_clauses VARCHAR2(1) := 'N';
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();
488: reeval_rule_ids := OKC_TBL_NUMBER();
489: clause_rules1 := OKC_TBL_NUMBER();
490: clause_rules2 := OKC_TBL_NUMBER();
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();
488: reeval_rule_ids := OKC_TBL_NUMBER();
489: clause_rules1 := OKC_TBL_NUMBER();
490: clause_rules2 := OKC_TBL_NUMBER();
491:
484: END IF;
485:
486: success_rule_ids := OKC_TBL_NUMBER();
487: failure_rule_ids := OKC_TBL_NUMBER();
488: reeval_rule_ids := OKC_TBL_NUMBER();
489: clause_rules1 := OKC_TBL_NUMBER();
490: clause_rules2 := OKC_TBL_NUMBER();
491:
492: FOR rule IN c_rules LOOP
485:
486: success_rule_ids := OKC_TBL_NUMBER();
487: failure_rule_ids := OKC_TBL_NUMBER();
488: reeval_rule_ids := OKC_TBL_NUMBER();
489: clause_rules1 := OKC_TBL_NUMBER();
490: clause_rules2 := OKC_TBL_NUMBER();
491:
492: FOR rule IN c_rules LOOP
493: is_rule_evaluated := 'N';
486: success_rule_ids := OKC_TBL_NUMBER();
487: failure_rule_ids := OKC_TBL_NUMBER();
488: reeval_rule_ids := OKC_TBL_NUMBER();
489: clause_rules1 := OKC_TBL_NUMBER();
490: clause_rules2 := OKC_TBL_NUMBER();
491:
492: FOR rule IN c_rules LOOP
493: is_rule_evaluated := 'N';
494:
931: raise;
932: END evaluate_condition;
933:
934:
935: PROCEDURE reevaluate_rules(reeval_rules OKC_TBL_NUMBER) IS
936:
937: CURSOR c_dep_rules(c_crules1 OKC_TBL_NUMBER, c_crules2 OKC_TBL_NUMBER, c_crules3 OKC_TBL_NUMBER, c_qrules OKC_TBL_NUMBER) IS
938: SELECT distinct * FROM table(c_qrules)
939: UNION
933:
934:
935: PROCEDURE reevaluate_rules(reeval_rules OKC_TBL_NUMBER) IS
936:
937: CURSOR c_dep_rules(c_crules1 OKC_TBL_NUMBER, c_crules2 OKC_TBL_NUMBER, c_crules3 OKC_TBL_NUMBER, c_qrules OKC_TBL_NUMBER) IS
938: SELECT distinct * FROM table(c_qrules)
939: UNION
940: SELECT distinct * FROM table(c_crules1)
941: UNION
942: SELECT distinct * FROM table(c_crules2)
943: UNION
944: SELECT distinct * FROM table(c_crules3);
945:
946: new_reevalrule_ids OKC_TBL_NUMBER;
947: rule_ids1 OKC_TBL_NUMBER;
948: rule_ids2 OKC_TBL_NUMBER;
949: rule_ids3 OKC_TBL_NUMBER;
950: clause_rules1 OKC_TBL_NUMBER;
943: UNION
944: SELECT distinct * FROM table(c_crules3);
945:
946: new_reevalrule_ids OKC_TBL_NUMBER;
947: rule_ids1 OKC_TBL_NUMBER;
948: rule_ids2 OKC_TBL_NUMBER;
949: rule_ids3 OKC_TBL_NUMBER;
950: clause_rules1 OKC_TBL_NUMBER;
951: clause_rules2 OKC_TBL_NUMBER;
944: SELECT distinct * FROM table(c_crules3);
945:
946: new_reevalrule_ids OKC_TBL_NUMBER;
947: rule_ids1 OKC_TBL_NUMBER;
948: rule_ids2 OKC_TBL_NUMBER;
949: rule_ids3 OKC_TBL_NUMBER;
950: clause_rules1 OKC_TBL_NUMBER;
951: clause_rules2 OKC_TBL_NUMBER;
952: clause_rules3 OKC_TBL_NUMBER;
945:
946: new_reevalrule_ids OKC_TBL_NUMBER;
947: rule_ids1 OKC_TBL_NUMBER;
948: rule_ids2 OKC_TBL_NUMBER;
949: rule_ids3 OKC_TBL_NUMBER;
950: clause_rules1 OKC_TBL_NUMBER;
951: clause_rules2 OKC_TBL_NUMBER;
952: clause_rules3 OKC_TBL_NUMBER;
953: ques_rules OKC_TBL_NUMBER;
946: new_reevalrule_ids OKC_TBL_NUMBER;
947: rule_ids1 OKC_TBL_NUMBER;
948: rule_ids2 OKC_TBL_NUMBER;
949: rule_ids3 OKC_TBL_NUMBER;
950: clause_rules1 OKC_TBL_NUMBER;
951: clause_rules2 OKC_TBL_NUMBER;
952: clause_rules3 OKC_TBL_NUMBER;
953: ques_rules OKC_TBL_NUMBER;
954: question_ids OKC_TBL_NUMBER;
947: rule_ids1 OKC_TBL_NUMBER;
948: rule_ids2 OKC_TBL_NUMBER;
949: rule_ids3 OKC_TBL_NUMBER;
950: clause_rules1 OKC_TBL_NUMBER;
951: clause_rules2 OKC_TBL_NUMBER;
952: clause_rules3 OKC_TBL_NUMBER;
953: ques_rules OKC_TBL_NUMBER;
954: question_ids OKC_TBL_NUMBER;
955: has_clauses VARCHAR2(1) := 'N';
948: rule_ids2 OKC_TBL_NUMBER;
949: rule_ids3 OKC_TBL_NUMBER;
950: clause_rules1 OKC_TBL_NUMBER;
951: clause_rules2 OKC_TBL_NUMBER;
952: clause_rules3 OKC_TBL_NUMBER;
953: ques_rules OKC_TBL_NUMBER;
954: question_ids OKC_TBL_NUMBER;
955: has_clauses VARCHAR2(1) := 'N';
956: rows1 NUMBER := 0;
949: rule_ids3 OKC_TBL_NUMBER;
950: clause_rules1 OKC_TBL_NUMBER;
951: clause_rules2 OKC_TBL_NUMBER;
952: clause_rules3 OKC_TBL_NUMBER;
953: ques_rules OKC_TBL_NUMBER;
954: question_ids OKC_TBL_NUMBER;
955: has_clauses VARCHAR2(1) := 'N';
956: rows1 NUMBER := 0;
957: rows2 NUMBER := 0;
950: clause_rules1 OKC_TBL_NUMBER;
951: clause_rules2 OKC_TBL_NUMBER;
952: clause_rules3 OKC_TBL_NUMBER;
953: ques_rules OKC_TBL_NUMBER;
954: question_ids OKC_TBL_NUMBER;
955: has_clauses VARCHAR2(1) := 'N';
956: rows1 NUMBER := 0;
957: rows2 NUMBER := 0;
958: no_of_questions NUMBER := 0;
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();
980: rule_ids3 := OKC_TBL_NUMBER();
981: clause_rules1 := OKC_TBL_NUMBER();
982: clause_rules2 := OKC_TBL_NUMBER();
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();
980: rule_ids3 := OKC_TBL_NUMBER();
981: clause_rules1 := OKC_TBL_NUMBER();
982: clause_rules2 := OKC_TBL_NUMBER();
983: clause_rules3 := OKC_TBL_NUMBER();
976: END IF;
977:
978: rule_ids1 := OKC_TBL_NUMBER();
979: rule_ids2 := OKC_TBL_NUMBER();
980: rule_ids3 := OKC_TBL_NUMBER();
981: clause_rules1 := OKC_TBL_NUMBER();
982: clause_rules2 := OKC_TBL_NUMBER();
983: clause_rules3 := OKC_TBL_NUMBER();
984: ques_rules := OKC_TBL_NUMBER();
977:
978: rule_ids1 := OKC_TBL_NUMBER();
979: rule_ids2 := OKC_TBL_NUMBER();
980: rule_ids3 := OKC_TBL_NUMBER();
981: clause_rules1 := OKC_TBL_NUMBER();
982: clause_rules2 := OKC_TBL_NUMBER();
983: clause_rules3 := OKC_TBL_NUMBER();
984: ques_rules := OKC_TBL_NUMBER();
985: question_ids := OKC_TBL_NUMBER();
978: rule_ids1 := OKC_TBL_NUMBER();
979: rule_ids2 := OKC_TBL_NUMBER();
980: rule_ids3 := OKC_TBL_NUMBER();
981: clause_rules1 := OKC_TBL_NUMBER();
982: clause_rules2 := OKC_TBL_NUMBER();
983: clause_rules3 := OKC_TBL_NUMBER();
984: ques_rules := OKC_TBL_NUMBER();
985: question_ids := OKC_TBL_NUMBER();
986: new_reevalrule_ids := OKC_TBL_NUMBER();
979: rule_ids2 := OKC_TBL_NUMBER();
980: rule_ids3 := OKC_TBL_NUMBER();
981: clause_rules1 := OKC_TBL_NUMBER();
982: clause_rules2 := OKC_TBL_NUMBER();
983: clause_rules3 := OKC_TBL_NUMBER();
984: ques_rules := OKC_TBL_NUMBER();
985: question_ids := OKC_TBL_NUMBER();
986: new_reevalrule_ids := OKC_TBL_NUMBER();
987: rule_ids1.extend(reeval_rules.count);
980: rule_ids3 := OKC_TBL_NUMBER();
981: clause_rules1 := OKC_TBL_NUMBER();
982: clause_rules2 := OKC_TBL_NUMBER();
983: clause_rules3 := OKC_TBL_NUMBER();
984: ques_rules := OKC_TBL_NUMBER();
985: question_ids := OKC_TBL_NUMBER();
986: new_reevalrule_ids := OKC_TBL_NUMBER();
987: rule_ids1.extend(reeval_rules.count);
988: rule_ids2.extend(reeval_rules.count);
981: clause_rules1 := OKC_TBL_NUMBER();
982: clause_rules2 := OKC_TBL_NUMBER();
983: clause_rules3 := OKC_TBL_NUMBER();
984: ques_rules := OKC_TBL_NUMBER();
985: question_ids := OKC_TBL_NUMBER();
986: new_reevalrule_ids := OKC_TBL_NUMBER();
987: rule_ids1.extend(reeval_rules.count);
988: rule_ids2.extend(reeval_rules.count);
989: rule_ids3.extend(reeval_rules.count);
982: clause_rules2 := OKC_TBL_NUMBER();
983: clause_rules3 := OKC_TBL_NUMBER();
984: ques_rules := OKC_TBL_NUMBER();
985: question_ids := OKC_TBL_NUMBER();
986: new_reevalrule_ids := OKC_TBL_NUMBER();
987: rule_ids1.extend(reeval_rules.count);
988: rule_ids2.extend(reeval_rules.count);
989: rule_ids3.extend(reeval_rules.count);
990:
1362: AND object_value_code = p_question_id
1363: AND object_value_type = 'QUESTION';
1364:
1365: result_tbl result_tbl_type;
1366: rule_ids OKC_TBL_NUMBER;
1367:
1368: l_cond_result BOOLEAN;
1369: i NUMBER := 0;
1370:
1392: AND doc_id = p_doc_id
1393: AND doc_type = p_doc_type;
1394:
1395: questions_display_changed := 'N';
1396: rule_ids := OKC_TBL_NUMBER();
1397:
1398: IF p_response IS NULL THEN
1399: FOR rule_cond IN c_rule_conditions LOOP
1400: --if both lhs and rhs are questions then atleast one of the response should not be null, then only we will ahve a change in the result of the condition