DBA Data[Home] [Help]

APPS.OKC_ARTICLES_ALL_PVT dependencies on OKC_DEBUG

Line 63: Okc_Debug.Log('100: Entered get_seq_id', 2);

59: CURSOR l_seq_csr IS
60: SELECT OKC_ARTICLES_ALL_S1.NEXTVAL FROM DUAL;
61: BEGIN
62: IF (l_debug = 'Y') THEN
63: Okc_Debug.Log('100: Entered get_seq_id', 2);
64: END IF;
65:
66: IF( p_article_id IS NULL ) THEN
67: OPEN l_seq_csr;

Line 76: Okc_Debug.Log('200: Leaving get_seq_id', 2);

72: CLOSE l_seq_csr;
73: END IF;
74:
75: IF (l_debug = 'Y') THEN
76: Okc_Debug.Log('200: Leaving get_seq_id', 2);
77: END IF;
78: RETURN G_RET_STS_SUCCESS;
79: EXCEPTION
80: WHEN OTHERS THEN

Line 83: Okc_Debug.Log('300: Leaving get_seq_id because of EXCEPTION: '||sqlerrm, 2);

79: EXCEPTION
80: WHEN OTHERS THEN
81:
82: IF (l_debug = 'Y') THEN
83: Okc_Debug.Log('300: Leaving get_seq_id because of EXCEPTION: '||sqlerrm, 2);
84: END IF;
85:
86: Okc_Api.Set_Message(p_app_name => G_APP_NAME,
87: p_msg_name => G_UNEXPECTED_ERROR,

Line 190: Okc_Debug.Log('400: Entered get_rec', 2);

186: WHERE t.ARTICLE_ID = cp_article_id;
187: BEGIN
188:
189: IF (l_debug = 'Y') THEN
190: Okc_Debug.Log('400: Entered get_rec', 2);
191: END IF;
192:
193: -- Get current database values
194: OPEN OKC_ARTICLES_ALL_pk_csr (p_article_id);

Line 239: Okc_Debug.Log('500: Leaving get_rec ', 2);

235: END IF;
236: CLOSE OKC_ARTICLES_ALL_pk_csr;
237:
238: IF (l_debug = 'Y') THEN
239: Okc_Debug.Log('500: Leaving get_rec ', 2);
240: END IF;
241:
242: RETURN G_RET_STS_SUCCESS ;
243:

Line 248: Okc_Debug.Log('600: Leaving get_rec because of EXCEPTION: '||sqlerrm, 2);

244: EXCEPTION
245: WHEN OTHERS THEN
246:
247: IF (l_debug = 'Y') THEN
248: Okc_Debug.Log('600: Leaving get_rec because of EXCEPTION: '||sqlerrm, 2);
249: END IF;
250:
251: Okc_Api.Set_Message(p_app_name => G_APP_NAME,
252: p_msg_name => G_UNEXPECTED_ERROR,

Line 345: Okc_Debug.Log('700: Entered Set_Attributes ', 2);

341: l_last_update_login OKC_ARTICLES_ALL.LAST_UPDATE_LOGIN%TYPE;
342: l_last_update_date OKC_ARTICLES_ALL.LAST_UPDATE_DATE%TYPE;
343: BEGIN
344: IF (l_debug = 'Y') THEN
345: Okc_Debug.Log('700: Entered Set_Attributes ', 2);
346: END IF;
347:
348: IF( p_article_id IS NOT NULL ) THEN
349: -- Get current database values

Line 631: Okc_Debug.Log('800: Leaving Set_Attributes ', 2);

627:
628: END IF;
629:
630: IF (l_debug = 'Y') THEN
631: Okc_Debug.Log('800: Leaving Set_Attributes ', 2);
632: END IF;
633:
634: RETURN G_RET_STS_SUCCESS ;
635: EXCEPTION

Line 638: Okc_Debug.Log('900: Leaving Set_Attributes:FND_API.G_EXC_ERROR Exception', 2);

634: RETURN G_RET_STS_SUCCESS ;
635: EXCEPTION
636: WHEN FND_API.G_EXC_ERROR THEN
637: IF (l_debug = 'Y') THEN
638: Okc_Debug.Log('900: Leaving Set_Attributes:FND_API.G_EXC_ERROR Exception', 2);
639: END IF;
640: RETURN G_RET_STS_ERROR;
641:
642: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN

Line 644: Okc_Debug.Log('1000: Leaving Set_Attributes:FND_API.G_EXC_UNEXPECTED_ERROR Exception', 2);

640: RETURN G_RET_STS_ERROR;
641:
642: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
643: IF (l_debug = 'Y') THEN
644: Okc_Debug.Log('1000: Leaving Set_Attributes:FND_API.G_EXC_UNEXPECTED_ERROR Exception', 2);
645: END IF;
646: RETURN G_RET_STS_UNEXP_ERROR;
647:
648: WHEN OTHERS THEN

Line 650: Okc_Debug.Log('1100: Leaving Set_Attributes because of EXCEPTION: '||sqlerrm, 2);

646: RETURN G_RET_STS_UNEXP_ERROR;
647:
648: WHEN OTHERS THEN
649: IF (l_debug = 'Y') THEN
650: Okc_Debug.Log('1100: Leaving Set_Attributes because of EXCEPTION: '||sqlerrm, 2);
651: END IF;
652: Okc_Api.Set_Message(p_app_name => G_APP_NAME,
653: p_msg_name => G_UNEXPECTED_ERROR,
654: p_token1 => G_SQLCODE_TOKEN,

Line 729: Okc_Debug.Log('1200: Entered Validate_Attributes', 2);

725:
726: BEGIN
727:
728: IF (l_debug = 'Y') THEN
729: Okc_Debug.Log('1200: Entered Validate_Attributes', 2);
730: END IF;
731:
732: IF p_validation_level > G_REQUIRED_VALUE_VALID_LEVEL THEN
733: IF (l_debug = 'Y') THEN

Line 734: Okc_Debug.Log('1300: required values validation', 2);

730: END IF;
731:
732: IF p_validation_level > G_REQUIRED_VALUE_VALID_LEVEL THEN
733: IF (l_debug = 'Y') THEN
734: Okc_Debug.Log('1300: required values validation', 2);
735: END IF;
736:
737: IF (l_debug = 'Y') THEN
738: Okc_Debug.Log('1400: - attribute ARTICLE_ID ', 2);

Line 738: Okc_Debug.Log('1400: - attribute ARTICLE_ID ', 2);

734: Okc_Debug.Log('1300: required values validation', 2);
735: END IF;
736:
737: IF (l_debug = 'Y') THEN
738: Okc_Debug.Log('1400: - attribute ARTICLE_ID ', 2);
739: END IF;
740: IF nvl(p_import_action,'X') <> 'N' THEN -- do not validate if this is called from import while validating NEW articles
741: IF ( p_article_id IS NULL) THEN
742: IF (l_debug = 'Y') THEN

Line 743: Okc_Debug.Log('1500: - attribute ARTICLE_ID is invalid', 2);

739: END IF;
740: IF nvl(p_import_action,'X') <> 'N' THEN -- do not validate if this is called from import while validating NEW articles
741: IF ( p_article_id IS NULL) THEN
742: IF (l_debug = 'Y') THEN
743: Okc_Debug.Log('1500: - attribute ARTICLE_ID is invalid', 2);
744: END IF;
745: Okc_Api.Set_Message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'ARTICLE_ID');
746: l_return_status := G_RET_STS_ERROR;
747: END IF;

Line 768: Okc_Debug.Log('1400: - attribute ARTICLE_TITLE ', 2);

764: END IF;
765: END IF;
766:
767: IF (l_debug = 'Y') THEN
768: Okc_Debug.Log('1400: - attribute ARTICLE_TITLE ', 2);
769: END IF;
770: IF ( p_article_title IS NULL) THEN
771: IF (l_debug = 'Y') THEN
772: Okc_Debug.Log('1500: - attribute ARTICLE_TITLE is invalid', 2);

Line 772: Okc_Debug.Log('1500: - attribute ARTICLE_TITLE is invalid', 2);

768: Okc_Debug.Log('1400: - attribute ARTICLE_TITLE ', 2);
769: END IF;
770: IF ( p_article_title IS NULL) THEN
771: IF (l_debug = 'Y') THEN
772: Okc_Debug.Log('1500: - attribute ARTICLE_TITLE is invalid', 2);
773: END IF;
774: Okc_Api.Set_Message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'ARTICLE_TITLE');
775: l_return_status := G_RET_STS_ERROR;
776: END IF;

Line 779: Okc_Debug.Log('1400: - attribute ORG_ID ', 2);

775: l_return_status := G_RET_STS_ERROR;
776: END IF;
777:
778: IF (l_debug = 'Y') THEN
779: Okc_Debug.Log('1400: - attribute ORG_ID ', 2);
780: END IF;
781: IF ( p_org_id IS NULL) THEN
782: IF (l_debug = 'Y') THEN
783: Okc_Debug.Log('1500: - attribute ORG_ID is invalid', 2);

Line 783: Okc_Debug.Log('1500: - attribute ORG_ID is invalid', 2);

779: Okc_Debug.Log('1400: - attribute ORG_ID ', 2);
780: END IF;
781: IF ( p_org_id IS NULL) THEN
782: IF (l_debug = 'Y') THEN
783: Okc_Debug.Log('1500: - attribute ORG_ID is invalid', 2);
784: END IF;
785: Okc_Api.Set_Message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'ORG_ID');
786: l_return_status := G_RET_STS_ERROR;
787: END IF;

Line 790: Okc_Debug.Log('1400: - attribute ARTICLE_NUMBER ', 2);

786: l_return_status := G_RET_STS_ERROR;
787: END IF;
788:
789: IF (l_debug = 'Y') THEN
790: Okc_Debug.Log('1400: - attribute ARTICLE_NUMBER ', 2);
791: END IF;
792: IF nvl(p_import_action,'X') <> 'N' AND p_standard_yn = 'Y' THEN
793: IF ( p_article_number IS NULL) THEN
794: IF (l_debug = 'Y') THEN

Line 795: Okc_Debug.Log('1500: - attribute ARTICLE_NUMBER is invalid', 2);

791: END IF;
792: IF nvl(p_import_action,'X') <> 'N' AND p_standard_yn = 'Y' THEN
793: IF ( p_article_number IS NULL) THEN
794: IF (l_debug = 'Y') THEN
795: Okc_Debug.Log('1500: - attribute ARTICLE_NUMBER is invalid', 2);
796: END IF;
797: Okc_Api.Set_Message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'ARTICLE_NUMBER');
798: l_return_status := G_RET_STS_ERROR;
799: END IF;

Line 803: Okc_Debug.Log('1400: - attribute STANDARD_YN ', 2);

799: END IF;
800: END IF;
801:
802: IF (l_debug = 'Y') THEN
803: Okc_Debug.Log('1400: - attribute STANDARD_YN ', 2);
804: END IF;
805: IF ( p_standard_yn IS NULL) THEN
806: IF (l_debug = 'Y') THEN
807: Okc_Debug.Log('1500: - attribute STANDARD_YN is invalid', 2);

Line 807: Okc_Debug.Log('1500: - attribute STANDARD_YN is invalid', 2);

803: Okc_Debug.Log('1400: - attribute STANDARD_YN ', 2);
804: END IF;
805: IF ( p_standard_yn IS NULL) THEN
806: IF (l_debug = 'Y') THEN
807: Okc_Debug.Log('1500: - attribute STANDARD_YN is invalid', 2);
808: END IF;
809: Okc_Api.Set_Message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'STANDARD_YN');
810: l_return_status := G_RET_STS_ERROR;
811: END IF;

Line 814: Okc_Debug.Log('1400: - attribute ARTICLE_INTENT ', 2);

810: l_return_status := G_RET_STS_ERROR;
811: END IF;
812:
813: IF (l_debug = 'Y') THEN
814: Okc_Debug.Log('1400: - attribute ARTICLE_INTENT ', 2);
815: END IF;
816: IF ( p_article_intent IS NULL) THEN
817: IF (l_debug = 'Y') THEN
818: Okc_Debug.Log('1500: - attribute ARTICLE_INTENT is invalid', 2);

Line 818: Okc_Debug.Log('1500: - attribute ARTICLE_INTENT is invalid', 2);

814: Okc_Debug.Log('1400: - attribute ARTICLE_INTENT ', 2);
815: END IF;
816: IF ( p_article_intent IS NULL) THEN
817: IF (l_debug = 'Y') THEN
818: Okc_Debug.Log('1500: - attribute ARTICLE_INTENT is invalid', 2);
819: END IF;
820: Okc_Api.Set_Message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'ARTICLE_INTENT');
821: l_return_status := G_RET_STS_ERROR;
822: END IF;

Line 825: Okc_Debug.Log('1400: - attribute ARTICLE_LANGUAGE ', 2);

821: l_return_status := G_RET_STS_ERROR;
822: END IF;
823:
824: IF (l_debug = 'Y') THEN
825: Okc_Debug.Log('1400: - attribute ARTICLE_LANGUAGE ', 2);
826: END IF;
827: IF ( p_article_language IS NULL) THEN
828: IF (l_debug = 'Y') THEN
829: Okc_Debug.Log('1500: - attribute ARTICLE_LANGUAGE is invalid', 2);

Line 829: Okc_Debug.Log('1500: - attribute ARTICLE_LANGUAGE is invalid', 2);

825: Okc_Debug.Log('1400: - attribute ARTICLE_LANGUAGE ', 2);
826: END IF;
827: IF ( p_article_language IS NULL) THEN
828: IF (l_debug = 'Y') THEN
829: Okc_Debug.Log('1500: - attribute ARTICLE_LANGUAGE is invalid', 2);
830: END IF;
831: Okc_Api.Set_Message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'ARTICLE_LANGUAGE');
832: l_return_status := G_RET_STS_ERROR;
833: END IF;

Line 839: Okc_Debug.Log('1600: static values and range validation', 2);

835: END IF;
836:
837: IF p_validation_level > G_VALID_VALUE_VALID_LEVEL THEN
838: IF (l_debug = 'Y') THEN
839: Okc_Debug.Log('1600: static values and range validation', 2);
840: END IF;
841: -- Modified
842: IF (l_debug = 'Y') THEN
843: Okc_Debug.Log('1700: - attribute STANDARD_YN ', 2);

Line 843: Okc_Debug.Log('1700: - attribute STANDARD_YN ', 2);

839: Okc_Debug.Log('1600: static values and range validation', 2);
840: END IF;
841: -- Modified
842: IF (l_debug = 'Y') THEN
843: Okc_Debug.Log('1700: - attribute STANDARD_YN ', 2);
844: END IF;
845: IF p_standard_yn NOT IN ('Y','N') THEN
846: IF (l_debug = 'Y') THEN
847: Okc_Debug.Log('1800: - attribute STANDARD_YN is invalid', 2);

Line 847: Okc_Debug.Log('1800: - attribute STANDARD_YN is invalid', 2);

843: Okc_Debug.Log('1700: - attribute STANDARD_YN ', 2);
844: END IF;
845: IF p_standard_yn NOT IN ('Y','N') THEN
846: IF (l_debug = 'Y') THEN
847: Okc_Debug.Log('1800: - attribute STANDARD_YN is invalid', 2);
848: END IF;
849: Okc_Api.Set_Message(G_APP_NAME, G_INVALID_VALUE, G_COL_NAME_TOKEN, 'STANDARD_YN');
850: l_return_status := G_RET_STS_ERROR;
851: END IF;

Line 854: Okc_Debug.Log('1700: - attribute ARTICLE_INTENT ', 2);

850: l_return_status := G_RET_STS_ERROR;
851: END IF;
852:
853: IF (l_debug = 'Y') THEN
854: Okc_Debug.Log('1700: - attribute ARTICLE_INTENT ', 2);
855: END IF;
856: IF p_article_intent NOT IN ('B','S') THEN
857: IF (l_debug = 'Y') THEN
858: Okc_Debug.Log('1800: - attribute ARTICLE_INTENT is invalid', 2);

Line 858: Okc_Debug.Log('1800: - attribute ARTICLE_INTENT is invalid', 2);

854: Okc_Debug.Log('1700: - attribute ARTICLE_INTENT ', 2);
855: END IF;
856: IF p_article_intent NOT IN ('B','S') THEN
857: IF (l_debug = 'Y') THEN
858: Okc_Debug.Log('1800: - attribute ARTICLE_INTENT is invalid', 2);
859: END IF;
860: Okc_Api.Set_Message(G_APP_NAME, G_INVALID_VALUE, G_COL_NAME_TOKEN, 'ARTICLE_INTENT');
861: l_return_status := G_RET_STS_ERROR;
862: END IF;

Line 869: Okc_Debug.Log('1900: lookup codes validation', 2);

865: END IF;
866:
867: IF p_validation_level > G_LOOKUP_CODE_VALID_LEVEL THEN
868: IF (l_debug = 'Y') THEN
869: Okc_Debug.Log('1900: lookup codes validation', 2);
870: END IF;
871:
872: -- Modified
873: IF (l_debug = 'Y') THEN

Line 874: Okc_Debug.Log('2000: - attribute ARTICLE_TYPE ', 2);

870: END IF;
871:
872: -- Modified
873: IF (l_debug = 'Y') THEN
874: Okc_Debug.Log('2000: - attribute ARTICLE_TYPE ', 2);
875: END IF;
876:
877: -- Standard clauses will be checked for valid lookup code the way it is now
878: -- Non Standard clauses - just check for existence of the lookup code and do not

Line 890: Okc_Debug.Log('2300: - attribute ARTICLE_TYPE is invalid for non-std clause', 2);

886: FETCH l_article_type_csr INTO l_dummy_var;
887: CLOSE l_article_type_csr;
888: IF (l_dummy_var = '?') THEN
889: IF (l_debug = 'Y') THEN
890: Okc_Debug.Log('2300: - attribute ARTICLE_TYPE is invalid for non-std clause', 2);
891: END IF;
892: Okc_Api.Set_Message(G_APP_NAME, 'OKC_ART_INVALID_TYPE');
893: l_return_status := G_RET_STS_ERROR;
894: END IF;

Line 899: Okc_Debug.Log('2300: - attribute ARTICLE_TYPE is invalid for std clause', 2);

895: ELSIF p_standard_yn = 'Y' THEN
896: l_tmp_return_status := Okc_Util.Check_Lookup_Code('OKC_SUBJECT',p_article_type);
897: IF (l_tmp_return_status <> G_RET_STS_SUCCESS) THEN
898: IF (l_debug = 'Y') THEN
899: Okc_Debug.Log('2300: - attribute ARTICLE_TYPE is invalid for std clause', 2);
900: END IF;
901: Okc_Api.Set_Message(G_APP_NAME, 'OKC_ART_INVALID_TYPE');
902: l_return_status := G_RET_STS_ERROR;
903: END IF;

Line 913: Okc_Debug.Log('2100: foreign keys validation ', 2);

909: END IF;
910:
911: IF p_validation_level > G_FOREIGN_KEY_VALID_LEVEL THEN
912: IF (l_debug = 'Y') THEN
913: Okc_Debug.Log('2100: foreign keys validation ', 2);
914: END IF;
915:
916: -- org id will always be set. You cannot create articles for a different org. Therefore no need to validate
917: /*

Line 919: Okc_Debug.Log('2200: - attribute ORG_ID ', 2);

915:
916: -- org id will always be set. You cannot create articles for a different org. Therefore no need to validate
917: /*
918: IF (l_debug = 'Y') THEN
919: Okc_Debug.Log('2200: - attribute ORG_ID ', 2);
920: END IF;
921: IF p_org_id IS NOT NULL AND p_org_id <> -99 THEN
922: l_dummy_var := '?';
923: OPEN l_org_id_csr;

Line 928: Okc_Debug.Log('2300: - attribute ORG_ID is invalid', 2);

924: FETCH l_org_id_csr INTO l_dummy_var;
925: CLOSE l_org_id_csr;
926: IF (l_dummy_var = '?') THEN
927: IF (l_debug = 'Y') THEN
928: Okc_Debug.Log('2300: - attribute ORG_ID is invalid', 2);
929: END IF;
930: Okc_Api.Set_Message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'ORG_ID');
931: l_return_status := G_RET_STS_ERROR;
932: END IF;

Line 935: Okc_Debug.Log('2200: - attribute ARTICLE_LANGAUGE ', 2);

931: l_return_status := G_RET_STS_ERROR;
932: END IF;
933: END IF;
934: IF (l_debug = 'Y') THEN
935: Okc_Debug.Log('2200: - attribute ARTICLE_LANGAUGE ', 2);
936: END IF;
937: */
938: IF p_article_language IS NOT NULL THEN
939: l_dummy_var := '?';

Line 945: Okc_Debug.Log('2300: - attribute ARTICLE_LANGAUGE is invalid', 2);

941: FETCH l_article_language_csr INTO l_dummy_var;
942: CLOSE l_article_language_csr;
943: IF (l_dummy_var = '?') THEN
944: IF (l_debug = 'Y') THEN
945: Okc_Debug.Log('2300: - attribute ARTICLE_LANGAUGE is invalid', 2);
946: END IF;
947: Okc_Api.Set_Message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'ARTICLE_LANGAUGE');
948: l_return_status := G_RET_STS_ERROR;
949: END IF;

Line 957: Okc_Debug.Log('2400: Leaving Validate_Attributes ', 2);

953: END IF;
954:
955:
956: IF (l_debug = 'Y') THEN
957: Okc_Debug.Log('2400: Leaving Validate_Attributes ', 2);
958: END IF;
959:
960: RETURN l_return_status;
961:

Line 964: Okc_Debug.Log('2500: Leaving Validate_Attributes because of EXCEPTION: '||sqlerrm, 2);

960: RETURN l_return_status;
961:
962: EXCEPTION
963: WHEN OTHERS THEN
964: Okc_Debug.Log('2500: Leaving Validate_Attributes because of EXCEPTION: '||sqlerrm, 2);
965: Okc_Api.Set_Message(p_app_name => G_APP_NAME,
966: p_msg_name => G_UNEXPECTED_ERROR,
967: p_token1 => G_SQLCODE_TOKEN,
968: p_token1_value => sqlcode,

Line 1061: Okc_Debug.Log('2600: Entered Validate_Record', 2);

1057: -- Modified
1058: BEGIN
1059:
1060: IF (l_debug = 'Y') THEN
1061: Okc_Debug.Log('2600: Entered Validate_Record', 2);
1062: END IF;
1063:
1064: --- Validate all non-missing attributes (Item Level Validation)
1065: l_return_status := Validate_Attributes(

Line 1103: Okc_Debug.Log('2700: Leaving Validate_Record because of UNEXP_ERROR in Validate_Attributes: '||sqlerrm, 2);

1099: p_attribute15 => p_attribute15
1100: );
1101: IF (l_return_status = G_RET_STS_UNEXP_ERROR) THEN
1102: IF (l_debug = 'Y') THEN
1103: Okc_Debug.Log('2700: Leaving Validate_Record because of UNEXP_ERROR in Validate_Attributes: '||sqlerrm, 2);
1104: END IF;
1105: RETURN G_RET_STS_UNEXP_ERROR;
1106: END IF;
1107:

Line 1111: Okc_Debug.Log('2800: Entered Record Level Validations', 2);

1107:
1108: --- Record Level Validation
1109: IF p_validation_level > G_RECORD_VALID_LEVEL THEN
1110: IF (l_debug = 'Y') THEN
1111: Okc_Debug.Log('2800: Entered Record Level Validations', 2);
1112: END IF;
1113: /*+++++++++++++start of hand code +++++++++++++++++++*/
1114: -- manual coding for Record Level Validations if required
1115: --dbms_output.put_line('checking for p_article_type2: '||p_article_type||'*'||length(p_article_type));

Line 1118: Okc_Debug.Log('1300: - attribute ARTICLE_TYPE is null for standard article', 2);

1114: -- manual coding for Record Level Validations if required
1115: --dbms_output.put_line('checking for p_article_type2: '||p_article_type||'*'||length(p_article_type));
1116: IF ( p_standard_yn = 'Y' AND p_article_type IS NULL) THEN
1117: IF (l_debug = 'Y') THEN
1118: Okc_Debug.Log('1300: - attribute ARTICLE_TYPE is null for standard article', 2);
1119: END IF;
1120: --dbms_output.put_line('attribute ARTICLE_TYPE is null for standard article');
1121: Okc_Api.Set_Message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'ARTICLE_TYPE');
1122: l_return_status := G_RET_STS_ERROR;

Line 1136: Okc_Debug.Log('1300: - attribute ARTICLE_TITLE is not unique for org ', 2);

1132: l_row_found := l_unq_csr%FOUND;
1133: CLOSE l_unq_csr;
1134: IF (l_row_found) THEN -- Duplicates exist
1135: IF (l_debug = 'Y') THEN
1136: Okc_Debug.Log('1300: - attribute ARTICLE_TITLE is not unique for org ', 2);
1137: END IF;
1138: Okc_Api.Set_Message(G_APP_NAME, 'OKC_ART_DUP_TITLE_ORG');
1139: l_return_status := G_RET_STS_ERROR;
1140: END IF;

Line 1148: Okc_Debug.Log('2900: Leaving Validate_Record : '||sqlerrm, 2);

1144: /*+++++++++++++End of hand code +++++++++++++++++++*/
1145: END IF;
1146:
1147: IF (l_debug = 'Y') THEN
1148: Okc_Debug.Log('2900: Leaving Validate_Record : '||sqlerrm, 2);
1149: END IF;
1150: RETURN l_return_status ;
1151:
1152: EXCEPTION

Line 1156: Okc_Debug.Log('3000: Leaving Validate_Record because of EXCEPTION: '||sqlerrm, 2);

1152: EXCEPTION
1153: WHEN OTHERS THEN
1154:
1155: IF (l_debug = 'Y') THEN
1156: Okc_Debug.Log('3000: Leaving Validate_Record because of EXCEPTION: '||sqlerrm, 2);
1157: END IF;
1158:
1159: Okc_Api.Set_Message(p_app_name => G_APP_NAME,
1160: p_msg_name => G_UNEXPECTED_ERROR,

Line 1262: Okc_Debug.Log('3100: Entered validate_row', 2);

1258: l_last_update_date OKC_ARTICLES_ALL.LAST_UPDATE_DATE%TYPE;
1259: BEGIN
1260:
1261: IF (l_debug = 'Y') THEN
1262: Okc_Debug.Log('3100: Entered validate_row', 2);
1263: END IF;
1264:
1265: -- Setting attributes
1266: IF p_import_action IS NOT NULL THEN

Line 1411: Okc_Debug.Log('3200: Leaving validate_row', 2);

1407: p_attribute15 => l_attribute15
1408: );
1409:
1410: IF (l_debug = 'Y') THEN
1411: Okc_Debug.Log('3200: Leaving validate_row', 2);
1412: END IF;
1413:
1414: EXCEPTION
1415: WHEN FND_API.G_EXC_ERROR THEN

Line 1417: Okc_Debug.Log('3300: Leaving Validate_Row:FND_API.G_EXC_ERROR Exception', 2);

1413:
1414: EXCEPTION
1415: WHEN FND_API.G_EXC_ERROR THEN
1416: IF (l_debug = 'Y') THEN
1417: Okc_Debug.Log('3300: Leaving Validate_Row:FND_API.G_EXC_ERROR Exception', 2);
1418: END IF;
1419: x_return_status := G_RET_STS_ERROR;
1420:
1421: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN

Line 1423: Okc_Debug.Log('3400: Leaving Validate_Row:FND_API.G_EXC_UNEXPECTED_ERROR Exception', 2);

1419: x_return_status := G_RET_STS_ERROR;
1420:
1421: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1422: IF (l_debug = 'Y') THEN
1423: Okc_Debug.Log('3400: Leaving Validate_Row:FND_API.G_EXC_UNEXPECTED_ERROR Exception', 2);
1424: END IF;
1425: x_return_status := G_RET_STS_UNEXP_ERROR;
1426:
1427: WHEN OTHERS THEN

Line 1429: Okc_Debug.Log('3500: Leaving Validate_Row because of EXCEPTION: '||sqlerrm, 2);

1425: x_return_status := G_RET_STS_UNEXP_ERROR;
1426:
1427: WHEN OTHERS THEN
1428: IF (l_debug = 'Y') THEN
1429: Okc_Debug.Log('3500: Leaving Validate_Row because of EXCEPTION: '||sqlerrm, 2);
1430: END IF;
1431: Okc_Api.Set_Message(p_app_name => G_APP_NAME,
1432: p_msg_name => G_UNEXPECTED_ERROR,
1433: p_token1 => G_SQLCODE_TOKEN,

Line 1498: Okc_Debug.Log('3600: Entered Insert_Row function', 2);

1494:
1495: BEGIN
1496:
1497: IF (l_debug = 'Y') THEN
1498: Okc_Debug.Log('3600: Entered Insert_Row function', 2);
1499: END IF;
1500:
1501:
1502: IF FND_GLOBAL.CONC_PROGRAM_ID = -1 THEN

Line 1601: Okc_Debug.Log('3700: Leaving Insert_Row', 2);

1597: p_last_update_login,
1598: p_last_update_date);
1599:
1600: IF (l_debug = 'Y') THEN
1601: Okc_Debug.Log('3700: Leaving Insert_Row', 2);
1602: END IF;
1603:
1604: RETURN( G_RET_STS_SUCCESS );
1605:

Line 1610: Okc_Debug.Log('3800: Leaving Insert_Row:OTHERS Exception', 2);

1606: EXCEPTION
1607: WHEN OTHERS THEN
1608:
1609: IF (l_debug = 'Y') THEN
1610: Okc_Debug.Log('3800: Leaving Insert_Row:OTHERS Exception', 2);
1611: END IF;
1612:
1613: Okc_Api.Set_Message(p_app_name => G_APP_NAME,
1614: p_msg_name => G_UNEXPECTED_ERROR,

Line 1684: Okc_Debug.Log('4200: Entered Insert_Row', 2);

1680:
1681: x_return_status := G_RET_STS_SUCCESS;
1682:
1683: IF (l_debug = 'Y') THEN
1684: Okc_Debug.Log('4200: Entered Insert_Row', 2);
1685: END IF;
1686:
1687: --- Setting item attributes
1688: -- Set primary key value

Line 1759: Okc_Debug.Log('4300: Call the internal Insert_Row for Base Table', 2);

1755: --------------------------------------------
1756: -- Call the internal Insert_Row for each child record
1757: --------------------------------------------
1758: IF (l_debug = 'Y') THEN
1759: Okc_Debug.Log('4300: Call the internal Insert_Row for Base Table', 2);
1760: END IF;
1761:
1762: x_return_status := Insert_Row(
1763: p_article_id => x_article_id,

Line 1811: Okc_Debug.Log('4500: Leaving Insert_Row', 2);

1807:
1808:
1809:
1810: IF (l_debug = 'Y') THEN
1811: Okc_Debug.Log('4500: Leaving Insert_Row', 2);
1812: END IF;
1813:
1814: EXCEPTION
1815: WHEN FND_API.G_EXC_ERROR THEN

Line 1817: Okc_Debug.Log('4600: Leaving Insert_Row:FND_API.G_EXC_ERROR Exception', 2);

1813:
1814: EXCEPTION
1815: WHEN FND_API.G_EXC_ERROR THEN
1816: IF (l_debug = 'Y') THEN
1817: Okc_Debug.Log('4600: Leaving Insert_Row:FND_API.G_EXC_ERROR Exception', 2);
1818: END IF;
1819: x_return_status := G_RET_STS_ERROR;
1820:
1821: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN

Line 1823: Okc_Debug.Log('4700: Leaving Insert_Row:FND_API.G_EXC_UNEXPECTED_ERROR Exception', 2);

1819: x_return_status := G_RET_STS_ERROR;
1820:
1821: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1822: IF (l_debug = 'Y') THEN
1823: Okc_Debug.Log('4700: Leaving Insert_Row:FND_API.G_EXC_UNEXPECTED_ERROR Exception', 2);
1824: END IF;
1825: x_return_status := G_RET_STS_UNEXP_ERROR;
1826:
1827: WHEN OTHERS THEN

Line 1829: Okc_Debug.Log('4800: Leaving Insert_Row because of EXCEPTION: '||sqlerrm, 2);

1825: x_return_status := G_RET_STS_UNEXP_ERROR;
1826:
1827: WHEN OTHERS THEN
1828: IF (l_debug = 'Y') THEN
1829: Okc_Debug.Log('4800: Leaving Insert_Row because of EXCEPTION: '||sqlerrm, 2);
1830: END IF;
1831: Okc_Api.Set_Message(p_app_name => G_APP_NAME,
1832: p_msg_name => G_UNEXPECTED_ERROR,
1833: p_token1 => G_SQLCODE_TOKEN,

Line 1874: Okc_Debug.Log('4900: Entered Lock_Row', 2);

1870: l_row_notfound BOOLEAN := FALSE;
1871: BEGIN
1872:
1873: IF (l_debug = 'Y') THEN
1874: Okc_Debug.Log('4900: Entered Lock_Row', 2);
1875: END IF;
1876:
1877:
1878: BEGIN

Line 1889: Okc_Debug.Log('5000: Leaving Lock_Row:E_Resource_Busy Exception', 2);

1885: EXCEPTION
1886: WHEN E_Resource_Busy THEN
1887:
1888: IF (l_debug = 'Y') THEN
1889: Okc_Debug.Log('5000: Leaving Lock_Row:E_Resource_Busy Exception', 2);
1890: END IF;
1891:
1892: IF (lock_csr%ISOPEN) THEN
1893: CLOSE lock_csr;

Line 1921: Okc_Debug.Log('5100: Leaving Lock_Row', 2);

1917: l_return_status := G_RET_STS_SUCCESS;
1918: END IF;
1919:
1920: IF (l_debug = 'Y') THEN
1921: Okc_Debug.Log('5100: Leaving Lock_Row', 2);
1922: END IF;
1923:
1924: RETURN( l_return_status );
1925:

Line 1937: Okc_Debug.Log('5200: Leaving Lock_Row because of EXCEPTION: '||sqlerrm, 2);

1933: CLOSE lchk_csr;
1934: END IF;
1935:
1936: IF (l_debug = 'Y') THEN
1937: Okc_Debug.Log('5200: Leaving Lock_Row because of EXCEPTION: '||sqlerrm, 2);
1938: END IF;
1939:
1940: Okc_Api.Set_Message(p_app_name => G_APP_NAME,
1941: p_msg_name => G_UNEXPECTED_ERROR,

Line 1962: Okc_Debug.Log('5700: Entered Lock_Row', 2);

1958: ) IS
1959: BEGIN
1960:
1961: IF (l_debug = 'Y') THEN
1962: Okc_Debug.Log('5700: Entered Lock_Row', 2);
1963: Okc_Debug.Log('5800: Locking Row for Base Table', 2);
1964: END IF;
1965:
1966: --------------------------------------------

Line 1963: Okc_Debug.Log('5800: Locking Row for Base Table', 2);

1959: BEGIN
1960:
1961: IF (l_debug = 'Y') THEN
1962: Okc_Debug.Log('5700: Entered Lock_Row', 2);
1963: Okc_Debug.Log('5800: Locking Row for Base Table', 2);
1964: END IF;
1965:
1966: --------------------------------------------
1967: -- Call the LOCK_ROW for each _B child record

Line 1982: Okc_Debug.Log('6000: Leaving Lock_Row', 2);

1978:
1979:
1980:
1981: IF (l_debug = 'Y') THEN
1982: Okc_Debug.Log('6000: Leaving Lock_Row', 2);
1983: END IF;
1984:
1985: EXCEPTION
1986: WHEN FND_API.G_EXC_ERROR THEN

Line 1988: Okc_Debug.Log('6100: Leaving Lock_Row:FND_API.G_EXC_ERROR Exception', 2);

1984:
1985: EXCEPTION
1986: WHEN FND_API.G_EXC_ERROR THEN
1987: IF (l_debug = 'Y') THEN
1988: Okc_Debug.Log('6100: Leaving Lock_Row:FND_API.G_EXC_ERROR Exception', 2);
1989: END IF;
1990: x_return_status := G_RET_STS_ERROR;
1991:
1992: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN

Line 1994: Okc_Debug.Log('6200: Leaving Lock_Row:FND_API.G_EXC_UNEXPECTED_ERROR Exception', 2);

1990: x_return_status := G_RET_STS_ERROR;
1991:
1992: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1993: IF (l_debug = 'Y') THEN
1994: Okc_Debug.Log('6200: Leaving Lock_Row:FND_API.G_EXC_UNEXPECTED_ERROR Exception', 2);
1995: END IF;
1996: x_return_status := G_RET_STS_UNEXP_ERROR;
1997:
1998: WHEN OTHERS THEN

Line 2000: Okc_Debug.Log('6300: Leaving Lock_Row because of EXCEPTION: '||sqlerrm, 2);

1996: x_return_status := G_RET_STS_UNEXP_ERROR;
1997:
1998: WHEN OTHERS THEN
1999: IF (l_debug = 'Y') THEN
2000: Okc_Debug.Log('6300: Leaving Lock_Row because of EXCEPTION: '||sqlerrm, 2);
2001: END IF;
2002: Okc_Api.Set_Message(p_app_name => G_APP_NAME,
2003: p_msg_name => G_UNEXPECTED_ERROR,
2004: p_token1 => G_SQLCODE_TOKEN,

Line 2067: Okc_Debug.Log('6400: Entered Update_Row', 2);

2063:
2064: BEGIN
2065:
2066: IF (l_debug = 'Y') THEN
2067: Okc_Debug.Log('6400: Entered Update_Row', 2);
2068: END IF;
2069:
2070:
2071: IF FND_GLOBAL.CONC_PROGRAM_ID = -1 THEN

Line 2128: Okc_Debug.Log('6500: Leaving Update_Row', 2);

2124: LAST_UPDATE_DATE = p_last_update_date
2125: WHERE ARTICLE_ID = p_article_id;
2126:
2127: IF (l_debug = 'Y') THEN
2128: Okc_Debug.Log('6500: Leaving Update_Row', 2);
2129: END IF;
2130:
2131: -- if article_title updated - notify context index
2132: if pending then

Line 2144: Okc_Debug.Log('6600: Leaving Update_Row because of EXCEPTION: '||sqlerrm, 2);

2140: EXCEPTION
2141: WHEN OTHERS THEN
2142:
2143: IF (l_debug = 'Y') THEN
2144: Okc_Debug.Log('6600: Leaving Update_Row because of EXCEPTION: '||sqlerrm, 2);
2145: END IF;
2146:
2147: Okc_Api.Set_Message(p_app_name => G_APP_NAME,
2148: p_msg_name => G_UNEXPECTED_ERROR,

Line 2246: Okc_Debug.Log('7000: Entered Update_Row', 2);

2242:
2243: BEGIN
2244:
2245: IF (l_debug = 'Y') THEN
2246: Okc_Debug.Log('7000: Entered Update_Row', 2);
2247: Okc_Debug.Log('7100: Locking _B row', 2);
2248: END IF;
2249:
2250: x_return_status := Lock_row(

Line 2247: Okc_Debug.Log('7100: Locking _B row', 2);

2243: BEGIN
2244:
2245: IF (l_debug = 'Y') THEN
2246: Okc_Debug.Log('7000: Entered Update_Row', 2);
2247: Okc_Debug.Log('7100: Locking _B row', 2);
2248: END IF;
2249:
2250: x_return_status := Lock_row(
2251: p_article_id => p_article_id,

Line 2262: Okc_Debug.Log('7300: Setting attributes', 2);

2258: END IF;
2259:
2260:
2261: IF (l_debug = 'Y') THEN
2262: Okc_Debug.Log('7300: Setting attributes', 2);
2263: END IF;
2264:
2265: x_return_status := Set_Attributes(
2266: p_article_id => p_article_id,

Line 2338: Okc_Debug.Log('7400: Record Validation', 2);

2334: RAISE FND_API.G_EXC_ERROR;
2335: END IF;
2336:
2337: IF (l_debug = 'Y') THEN
2338: Okc_Debug.Log('7400: Record Validation', 2);
2339: END IF;
2340:
2341: --- Validate all non-missing attributes
2342: x_return_status := Validate_Record(

Line 2385: Okc_Debug.Log('7500: Filling WHO columns', 2);

2381: RAISE FND_API.G_EXC_ERROR;
2382: END IF;
2383:
2384: IF (l_debug = 'Y') THEN
2385: Okc_Debug.Log('7500: Filling WHO columns', 2);
2386: END IF;
2387:
2388: -- Filling who columns
2389: l_last_update_date := SYSDATE;

Line 2402: Okc_Debug.Log('7600: Updating Row', 2);

2398: --------------------------------------------
2399: -- Call the Update_Row for each child record
2400: --------------------------------------------
2401: IF (l_debug = 'Y') THEN
2402: Okc_Debug.Log('7600: Updating Row', 2);
2403: END IF;
2404:
2405: x_return_status := Update_Row(
2406: p_article_id => p_article_id,

Line 2454: Okc_Debug.Log('7800: Leaving Update_Row', 2);

2450: x_article_intent := l_article_intent;
2451:
2452:
2453: IF (l_debug = 'Y') THEN
2454: Okc_Debug.Log('7800: Leaving Update_Row', 2);
2455: END IF;
2456:
2457: EXCEPTION
2458: WHEN FND_API.G_EXC_ERROR THEN

Line 2460: Okc_Debug.Log('7900: Leaving Update_Row:FND_API.G_EXC_ERROR Exception', 2);

2456:
2457: EXCEPTION
2458: WHEN FND_API.G_EXC_ERROR THEN
2459: IF (l_debug = 'Y') THEN
2460: Okc_Debug.Log('7900: Leaving Update_Row:FND_API.G_EXC_ERROR Exception', 2);
2461: END IF;
2462: x_return_status := G_RET_STS_ERROR;
2463:
2464: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN

Line 2466: Okc_Debug.Log('8000: Leaving Update_Row:FND_API.G_EXC_UNEXPECTED_ERROR Exception', 2);

2462: x_return_status := G_RET_STS_ERROR;
2463:
2464: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2465: IF (l_debug = 'Y') THEN
2466: Okc_Debug.Log('8000: Leaving Update_Row:FND_API.G_EXC_UNEXPECTED_ERROR Exception', 2);
2467: END IF;
2468: x_return_status := G_RET_STS_UNEXP_ERROR;
2469:
2470: WHEN OTHERS THEN

Line 2472: Okc_Debug.Log('8100: Leaving Update_Row because of EXCEPTION: '||sqlerrm, 2);

2468: x_return_status := G_RET_STS_UNEXP_ERROR;
2469:
2470: WHEN OTHERS THEN
2471: IF (l_debug = 'Y') THEN
2472: Okc_Debug.Log('8100: Leaving Update_Row because of EXCEPTION: '||sqlerrm, 2);
2473: END IF;
2474: Okc_Api.Set_Message(p_app_name => G_APP_NAME,
2475: p_msg_name => G_UNEXPECTED_ERROR,
2476: p_token1 => G_SQLCODE_TOKEN,

Line 2497: Okc_Debug.Log('8200: Entered Delete_Row', 2);

2493:
2494: BEGIN
2495:
2496: IF (l_debug = 'Y') THEN
2497: Okc_Debug.Log('8200: Entered Delete_Row', 2);
2498: END IF;
2499:
2500: DELETE FROM OKC_ARTICLES_ALL WHERE ARTICLE_ID = p_ARTICLE_ID;
2501:

Line 2503: Okc_Debug.Log('8300: Leaving Delete_Row', 2);

2499:
2500: DELETE FROM OKC_ARTICLES_ALL WHERE ARTICLE_ID = p_ARTICLE_ID;
2501:
2502: IF (l_debug = 'Y') THEN
2503: Okc_Debug.Log('8300: Leaving Delete_Row', 2);
2504: END IF;
2505:
2506: RETURN( G_RET_STS_SUCCESS );
2507:

Line 2512: Okc_Debug.Log('8400: Leaving Delete_Row because of EXCEPTION: '||sqlerrm, 2);

2508: EXCEPTION
2509: WHEN OTHERS THEN
2510:
2511: IF (l_debug = 'Y') THEN
2512: Okc_Debug.Log('8400: Leaving Delete_Row because of EXCEPTION: '||sqlerrm, 2);
2513: END IF;
2514:
2515: Okc_Api.Set_Message(p_app_name => G_APP_NAME,
2516: p_msg_name => G_UNEXPECTED_ERROR,

Line 2538: Okc_Debug.Log('8800: Entered Delete_Row', 2);

2534: l_api_name CONSTANT VARCHAR2(30) := 'B_Delete_Row';
2535: BEGIN
2536:
2537: IF (l_debug = 'Y') THEN
2538: Okc_Debug.Log('8800: Entered Delete_Row', 2);
2539: Okc_Debug.Log('8900: Locking _B row', 2);
2540: END IF;
2541:
2542: x_return_status := Lock_row(

Line 2539: Okc_Debug.Log('8900: Locking _B row', 2);

2535: BEGIN
2536:
2537: IF (l_debug = 'Y') THEN
2538: Okc_Debug.Log('8800: Entered Delete_Row', 2);
2539: Okc_Debug.Log('8900: Locking _B row', 2);
2540: END IF;
2541:
2542: x_return_status := Lock_row(
2543: p_article_id => p_article_id,

Line 2554: Okc_Debug.Log('9100: Removing _B row', 2);

2550: END IF;
2551:
2552:
2553: IF (l_debug = 'Y') THEN
2554: Okc_Debug.Log('9100: Removing _B row', 2);
2555: END IF;
2556: x_return_status := Delete_Row( p_article_id => p_article_id );
2557: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
2558: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;

Line 2565: Okc_Debug.Log('9300: Leaving Delete_Row', 2);

2561: END IF;
2562:
2563:
2564: IF (l_debug = 'Y') THEN
2565: Okc_Debug.Log('9300: Leaving Delete_Row', 2);
2566: END IF;
2567:
2568: EXCEPTION
2569: WHEN FND_API.G_EXC_ERROR THEN

Line 2571: Okc_Debug.Log('9400: Leaving Delete_Row:FND_API.G_EXC_ERROR Exception', 2);

2567:
2568: EXCEPTION
2569: WHEN FND_API.G_EXC_ERROR THEN
2570: IF (l_debug = 'Y') THEN
2571: Okc_Debug.Log('9400: Leaving Delete_Row:FND_API.G_EXC_ERROR Exception', 2);
2572: END IF;
2573: x_return_status := G_RET_STS_ERROR;
2574:
2575: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN

Line 2577: Okc_Debug.Log('9500: Leaving Delete_Row:FND_API.G_EXC_UNEXPECTED_ERROR Exception', 2);

2573: x_return_status := G_RET_STS_ERROR;
2574:
2575: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2576: IF (l_debug = 'Y') THEN
2577: Okc_Debug.Log('9500: Leaving Delete_Row:FND_API.G_EXC_UNEXPECTED_ERROR Exception', 2);
2578: END IF;
2579: x_return_status := G_RET_STS_UNEXP_ERROR;
2580:
2581: WHEN OTHERS THEN

Line 2583: Okc_Debug.Log('9600: Leaving Delete_Row because of EXCEPTION: '||sqlerrm, 2);

2579: x_return_status := G_RET_STS_UNEXP_ERROR;
2580:
2581: WHEN OTHERS THEN
2582: IF (l_debug = 'Y') THEN
2583: Okc_Debug.Log('9600: Leaving Delete_Row because of EXCEPTION: '||sqlerrm, 2);
2584: END IF;
2585: Okc_Api.Set_Message(p_app_name => G_APP_NAME,
2586: p_msg_name => G_UNEXPECTED_ERROR,
2587: p_token1 => G_SQLCODE_TOKEN,