DBA Data[Home] [Help]

APPS.CN_PLAN_ELEMENT_PUB dependencies on CN_API

Line 422: IF ((cn_api.chk_miss_char_para (p_char_para => p_pe_rec.NAME,

418: x_return_status := fnd_api.g_ret_sts_success;
419: x_loading_status := p_loading_status;
420:
421: -- Check if plan element name is missing or null
422: IF ((cn_api.chk_miss_char_para (p_char_para => p_pe_rec.NAME,
423: p_para_name => cn_chk_plan_element_pkg.g_pe_name,
424: p_loading_status => x_loading_status,
425: x_loading_status => l_loading_status
426: )

Line 431: ELSIF ((cn_api.chk_null_char_para (p_char_para => p_pe_rec.NAME,

427: ) = fnd_api.g_true
428: )
429: THEN
430: RAISE fnd_api.g_exc_error;
431: ELSIF ((cn_api.chk_null_char_para (p_char_para => p_pe_rec.NAME,
432: p_obj_name => cn_chk_plan_element_pkg.g_pe_name,
433: p_loading_status => x_loading_status,
434: x_loading_status => l_loading_status
435: )

Line 443: IF ((cn_api.chk_miss_char_para (p_char_para => p_pe_rec.quota_type_code,

439: RAISE fnd_api.g_exc_error;
440: END IF;
441:
442: -- Check quota_type_code can not be missing or NULL
443: IF ((cn_api.chk_miss_char_para (p_char_para => p_pe_rec.quota_type_code,
444: p_para_name => cn_chk_plan_element_pkg.g_element_type,
445: p_loading_status => x_loading_status,
446: x_loading_status => l_loading_status
447: )

Line 452: ELSIF ((cn_api.chk_null_char_para (p_char_para => p_pe_rec.quota_type_code,

448: ) = fnd_api.g_true
449: )
450: THEN
451: RAISE fnd_api.g_exc_error;
452: ELSIF ((cn_api.chk_null_char_para (p_char_para => p_pe_rec.quota_type_code,
453: p_obj_name => cn_chk_plan_element_pkg.g_element_type,
454: p_loading_status => x_loading_status,
455: x_loading_status => l_loading_status
456: )

Line 464: IF ((cn_api.chk_miss_char_para (p_char_para => p_pe_rec.credit_type,

460: RAISE fnd_api.g_exc_error;
461: END IF;
462:
463: -- Check credit_type can not be missing or NULL
464: IF ((cn_api.chk_miss_char_para (p_char_para => p_pe_rec.credit_type,
465: p_para_name => cn_chk_plan_element_pkg.g_credit_type_name,
466: p_loading_status => x_loading_status,
467: x_loading_status => l_loading_status
468: )

Line 473: ELSIF ((cn_api.chk_null_char_para (p_char_para => p_pe_rec.credit_type,

469: ) = fnd_api.g_true
470: )
471: THEN
472: RAISE fnd_api.g_exc_error;
473: ELSIF ((cn_api.chk_null_char_para (p_char_para => p_pe_rec.credit_type,
474: p_obj_name => cn_chk_plan_element_pkg.g_credit_type_name,
475: p_loading_status => x_loading_status,
476: x_loading_status => l_loading_status
477: )

Line 513: IF ((cn_api.chk_miss_char_para (p_char_para => p_pe_rec.incentive_type_code,

509: RAISE fnd_api.g_exc_error;
510: END IF;
511:
512: -- Check incentive_type_code can not be missing or NULL
513: IF ((cn_api.chk_miss_char_para (p_char_para => p_pe_rec.incentive_type_code,
514: p_para_name => cn_chk_plan_element_pkg.g_incentive_type_code,
515: p_loading_status => x_loading_status,
516: x_loading_status => l_loading_status
517: )

Line 522: ELSIF ((cn_api.chk_null_char_para (p_char_para => p_pe_rec.incentive_type_code,

518: ) = fnd_api.g_true
519: )
520: THEN
521: RAISE fnd_api.g_exc_error;
522: ELSIF ((cn_api.chk_null_char_para (p_char_para => p_pe_rec.incentive_type_code,
523: p_obj_name => cn_chk_plan_element_pkg.g_incentive_type_code,
524: p_loading_status => x_loading_status,
525: x_loading_status => l_loading_status
526: )

Line 555: IF ((cn_api.chk_miss_char_para (p_char_para => p_pe_rec.interval_name,

551: RAISE fnd_api.g_exc_error;
552: END IF;
553:
554: -- Check interval name can not be missing or NULL
555: IF ((cn_api.chk_miss_char_para (p_char_para => p_pe_rec.interval_name,
556: p_para_name => cn_chk_plan_element_pkg.g_interval_name,
557: p_loading_status => x_loading_status,
558: x_loading_status => l_loading_status
559: )

Line 564: ELSIF ((cn_api.chk_null_char_para (p_char_para => p_pe_rec.interval_name,

560: ) = fnd_api.g_true
561: )
562: THEN
563: RAISE fnd_api.g_exc_error;
564: ELSIF ((cn_api.chk_null_char_para (p_char_para => p_pe_rec.interval_name,
565: p_obj_name => cn_chk_plan_element_pkg.g_interval_name,
566: p_loading_status => x_loading_status,
567: x_loading_status => l_loading_status
568: )

Line 1172: --IF Nvl(cn_api.get_itd_flag(p_pe_rec.calc_formula_id),'N') = 'Y'

1168: cn_period_quotas_pkg.DELETE_RECORD (p_pe_rec_old.quota_id);
1169: -- Check the ITD flag
1170: -- 2462767, we do not check for formula ID anymore,IF p_pe_rec.calc_formula_id IS NOT NULL THEN
1171: -- clku, enhancement 2380234
1172: --IF Nvl(cn_api.get_itd_flag(p_pe_rec.calc_formula_id),'N') = 'Y'
1173: -- THEN
1174: cn_period_quotas_pkg.distribute_target (p_pe_rec.quota_id);
1175:
1176: -- if count is zero create the default period quotas.

Line 1278: --IF Nvl(cn_api.get_itd_flag(p_pe_rec.calc_formula_id),'N') = 'Y' THEN

1274: -- to Create the Custom Period Quotas
1275: -- 2462767, we do not check for formula ID anymore,IF p_pe_rec.calc_formula_id IS NOT NULL THEN
1276: -- Check the ITD flag
1277: -- clku, enhancement 2380234, we do not check for the itd flag anymore
1278: --IF Nvl(cn_api.get_itd_flag(p_pe_rec.calc_formula_id),'N') = 'Y' THEN
1279: -- if count is zero create the default period quotas.
1280: IF p_period_quotas_rec_tbl.COUNT = 0
1281: THEN
1282: cn_period_quotas_pkg.distribute_target (p_pe_rec.quota_id);

Line 1309: /*ELSIF Nvl(cn_api.get_itd_flag(p_pe_rec.calc_formula_id),'N') = 'N'

1305: END IF;
1306: END IF; -- period table count = 0
1307: -- ITD falg is N but they are passing the period quotas info its
1308: -- an error
1309: /*ELSIF Nvl(cn_api.get_itd_flag(p_pe_rec.calc_formula_id),'N') = 'N'
1310: AND p_period_quotas_rec_tbl.COUNT > 0 THEN
1311:
1312: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1313: THEN

Line 1402: l_rev_class_id := cn_api.get_rev_class_id (RTRIM (LTRIM (l_trx_factor_rec_tbl (OUTER).rev_class_name)),l_trx_factor_rec_tbl (OUTER).org_id);

1398: -- here we avoid the duplicate fetch of revenue class for multiple trx
1399: FOR OUTER IN l_trx_factor_rec_tbl.FIRST .. l_trx_factor_rec_tbl.LAST
1400: LOOP
1401: -- Get revenue class ID from the Database
1402: l_rev_class_id := cn_api.get_rev_class_id (RTRIM (LTRIM (l_trx_factor_rec_tbl (OUTER).rev_class_name)),l_trx_factor_rec_tbl (OUTER).org_id);
1403:
1404: -- Check the revenue class name is assigned.
1405: IF l_trx_factor_rec_tbl (OUTER).rev_class_name IS NULL
1406: THEN

Line 1453: l_meaning := cn_api.get_lkup_meaning (p_trx_factor_rec_tbl (INNER).trx_type, 'TRX TYPES');

1449: LOOP
1450: IF (p_trx_factor_rec_tbl (INNER).rev_class_name = l_trx_factor_rec_tbl (OUTER).rev_class_name)
1451: THEN
1452: -- More validation to be done. Update the Event Column
1453: l_meaning := cn_api.get_lkup_meaning (p_trx_factor_rec_tbl (INNER).trx_type, 'TRX TYPES');
1454:
1455: IF l_meaning IS NULL
1456: THEN
1457: IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_error)

Line 1546: IF ((cn_api.chk_miss_char_para (p_char_para => p_quota_name_old,

1542:
1543: -- Get the Old record quota id and Formula id to update and
1544: -- delete the rate Quota assigns, in the table handler
1545: -- Check if old plan element name is missing or null
1546: IF ((cn_api.chk_miss_char_para (p_char_para => p_quota_name_old,
1547: p_para_name => cn_chk_plan_element_pkg.g_pe_name,
1548: p_loading_status => x_loading_status,
1549: x_loading_status => l_loading_status
1550: )

Line 1555: ELSIF ((cn_api.chk_null_char_para (p_char_para => p_quota_name_old,

1551: ) = fnd_api.g_true
1552: )
1553: THEN
1554: RAISE fnd_api.g_exc_error;
1555: ELSIF ((cn_api.chk_null_char_para (p_char_para => p_quota_name_old,
1556: p_obj_name => cn_chk_plan_element_pkg.g_pe_name,
1557: p_loading_status => x_loading_status,
1558: x_loading_status => l_loading_status
1559: )

Line 2008: p_init_msg_list IN VARCHAR2 := cn_api.g_false,

2004: --|and create their respective child records
2005: -- --------------------------------------------------------------------------+
2006: PROCEDURE create_plan_element (
2007: p_api_version IN NUMBER := 0,
2008: p_init_msg_list IN VARCHAR2 := cn_api.g_false,
2009: p_commit IN VARCHAR2 := cn_api.g_false,
2010: p_validation_level IN NUMBER := cn_api.g_valid_level_full,
2011: x_return_status OUT NOCOPY VARCHAR2,
2012: x_msg_count OUT NOCOPY NUMBER,

Line 2009: p_commit IN VARCHAR2 := cn_api.g_false,

2005: -- --------------------------------------------------------------------------+
2006: PROCEDURE create_plan_element (
2007: p_api_version IN NUMBER := 0,
2008: p_init_msg_list IN VARCHAR2 := cn_api.g_false,
2009: p_commit IN VARCHAR2 := cn_api.g_false,
2010: p_validation_level IN NUMBER := cn_api.g_valid_level_full,
2011: x_return_status OUT NOCOPY VARCHAR2,
2012: x_msg_count OUT NOCOPY NUMBER,
2013: x_msg_data OUT NOCOPY VARCHAR2,

Line 2010: p_validation_level IN NUMBER := cn_api.g_valid_level_full,

2006: PROCEDURE create_plan_element (
2007: p_api_version IN NUMBER := 0,
2008: p_init_msg_list IN VARCHAR2 := cn_api.g_false,
2009: p_commit IN VARCHAR2 := cn_api.g_false,
2010: p_validation_level IN NUMBER := cn_api.g_valid_level_full,
2011: x_return_status OUT NOCOPY VARCHAR2,
2012: x_msg_count OUT NOCOPY NUMBER,
2013: x_msg_data OUT NOCOPY VARCHAR2,
2014: p_plan_element_rec IN plan_element_rec_type := g_miss_plan_element_rec,

Line 2752: p_init_msg_list IN VARCHAR2 := cn_api.g_false,

2748: -- | Update Plan Element with handled in different than the way you expect.
2749: -- -------------------------------------------------------------------------+
2750: PROCEDURE update_plan_element (
2751: p_api_version IN NUMBER := 0,
2752: p_init_msg_list IN VARCHAR2 := cn_api.g_false,
2753: p_commit IN VARCHAR2 := cn_api.g_false,
2754: p_validation_level IN NUMBER := cn_api.g_valid_level_full,
2755: x_return_status OUT NOCOPY VARCHAR2,
2756: x_msg_count OUT NOCOPY NUMBER,

Line 2753: p_commit IN VARCHAR2 := cn_api.g_false,

2749: -- -------------------------------------------------------------------------+
2750: PROCEDURE update_plan_element (
2751: p_api_version IN NUMBER := 0,
2752: p_init_msg_list IN VARCHAR2 := cn_api.g_false,
2753: p_commit IN VARCHAR2 := cn_api.g_false,
2754: p_validation_level IN NUMBER := cn_api.g_valid_level_full,
2755: x_return_status OUT NOCOPY VARCHAR2,
2756: x_msg_count OUT NOCOPY NUMBER,
2757: x_msg_data OUT NOCOPY VARCHAR2,

Line 2754: p_validation_level IN NUMBER := cn_api.g_valid_level_full,

2750: PROCEDURE update_plan_element (
2751: p_api_version IN NUMBER := 0,
2752: p_init_msg_list IN VARCHAR2 := cn_api.g_false,
2753: p_commit IN VARCHAR2 := cn_api.g_false,
2754: p_validation_level IN NUMBER := cn_api.g_valid_level_full,
2755: x_return_status OUT NOCOPY VARCHAR2,
2756: x_msg_count OUT NOCOPY NUMBER,
2757: x_msg_data OUT NOCOPY VARCHAR2,
2758: p_new_plan_element_rec IN plan_element_rec_type := g_miss_plan_element_rec,

Line 3255: l_rev_class_id := cn_api.get_rev_class_id (RTRIM (LTRIM (l_trx_factor_rec_tbl (i).rev_class_name)),l_trx_factor_rec_tbl (i).org_id);

3251: -- Process the Actual Trx factors Record
3252: FOR i IN l_trx_factor_rec_tbl.FIRST .. l_trx_factor_rec_tbl.LAST
3253: LOOP
3254: -- Get revenue Class ID
3255: l_rev_class_id := cn_api.get_rev_class_id (RTRIM (LTRIM (l_trx_factor_rec_tbl (i).rev_class_name)),l_trx_factor_rec_tbl (i).org_id);
3256: -- Get Quota Rule ID, you need it to update the Trx Factors
3257: l_quota_rule_id :=
3258: cn_chk_plan_element_pkg.get_quota_rule_id (p_quota_id => NVL (l_pe_rec.quota_id, l_pe_rec_old.quota_id),
3259: p_rev_class_id => l_rev_class_id

Line 3606: p_init_msg_list IN VARCHAR2 := cn_api.g_false,

3602: -- | Element just pass the Plan Element, don't pass any child records.
3603: -- -------------------------------------------------------------------------+
3604: PROCEDURE process_input_records (
3605: p_api_version IN NUMBER := 0,
3606: p_init_msg_list IN VARCHAR2 := cn_api.g_false,
3607: p_commit IN VARCHAR2 := cn_api.g_false,
3608: p_validation_level IN NUMBER := cn_api.g_valid_level_full,
3609: p_quota_rec IN OUT NOCOPY plan_element_rec_type ,
3610: p_revenue_class_rec_tbl IN OUT NOCOPY revenue_class_rec_tbl_type ,

Line 3607: p_commit IN VARCHAR2 := cn_api.g_false,

3603: -- -------------------------------------------------------------------------+
3604: PROCEDURE process_input_records (
3605: p_api_version IN NUMBER := 0,
3606: p_init_msg_list IN VARCHAR2 := cn_api.g_false,
3607: p_commit IN VARCHAR2 := cn_api.g_false,
3608: p_validation_level IN NUMBER := cn_api.g_valid_level_full,
3609: p_quota_rec IN OUT NOCOPY plan_element_rec_type ,
3610: p_revenue_class_rec_tbl IN OUT NOCOPY revenue_class_rec_tbl_type ,
3611: p_rev_uplift_rec_tbl IN OUT NOCOPY rev_uplift_rec_tbl_type ,

Line 3608: p_validation_level IN NUMBER := cn_api.g_valid_level_full,

3604: PROCEDURE process_input_records (
3605: p_api_version IN NUMBER := 0,
3606: p_init_msg_list IN VARCHAR2 := cn_api.g_false,
3607: p_commit IN VARCHAR2 := cn_api.g_false,
3608: p_validation_level IN NUMBER := cn_api.g_valid_level_full,
3609: p_quota_rec IN OUT NOCOPY plan_element_rec_type ,
3610: p_revenue_class_rec_tbl IN OUT NOCOPY revenue_class_rec_tbl_type ,
3611: p_rev_uplift_rec_tbl IN OUT NOCOPY rev_uplift_rec_tbl_type ,
3612: p_rt_quota_asgns_rec_tbl IN OUT NOCOPY rt_quota_asgns_rec_tbl_type ,

Line 3635: IF ((cn_api.chk_miss_char_para (p_char_para => l_p_quota_name,

3631: x_loading_status := 'CN_DELETED';
3632:
3633: /* Resolve the quota_id and quota_name from */
3634: /* 1. If checks if quota_name passed is g_miss_char */
3635: IF ((cn_api.chk_miss_char_para (p_char_para => l_p_quota_name,
3636: p_para_name => cn_chk_plan_element_pkg.g_pe_name,
3637: p_loading_status => x_loading_status,
3638: x_loading_status => l_loading_status
3639: )

Line 3647: IF ((cn_api.chk_null_char_para (p_char_para => l_p_quota_name,

3643: RAISE fnd_api.g_exc_error;
3644: END IF;
3645:
3646: /* 2. if it is null character */
3647: IF ((cn_api.chk_null_char_para (p_char_para => l_p_quota_name,
3648: p_obj_name => cn_chk_plan_element_pkg.g_pe_name,
3649: p_loading_status => x_loading_status,
3650: x_loading_status => l_loading_status
3651: )

Line 3743: p_init_msg_list IN VARCHAR2 := cn_api.g_false,

3739: END process_input_records;
3740:
3741: PROCEDURE delete_plan_element (
3742: p_api_version IN NUMBER := 0,
3743: p_init_msg_list IN VARCHAR2 := cn_api.g_false,
3744: p_commit IN VARCHAR2 := cn_api.g_false,
3745: p_validation_level IN NUMBER := cn_api.g_valid_level_full,
3746: x_return_status OUT NOCOPY VARCHAR2,
3747: x_msg_count OUT NOCOPY NUMBER,

Line 3744: p_commit IN VARCHAR2 := cn_api.g_false,

3740:
3741: PROCEDURE delete_plan_element (
3742: p_api_version IN NUMBER := 0,
3743: p_init_msg_list IN VARCHAR2 := cn_api.g_false,
3744: p_commit IN VARCHAR2 := cn_api.g_false,
3745: p_validation_level IN NUMBER := cn_api.g_valid_level_full,
3746: x_return_status OUT NOCOPY VARCHAR2,
3747: x_msg_count OUT NOCOPY NUMBER,
3748: x_msg_data OUT NOCOPY VARCHAR2,

Line 3745: p_validation_level IN NUMBER := cn_api.g_valid_level_full,

3741: PROCEDURE delete_plan_element (
3742: p_api_version IN NUMBER := 0,
3743: p_init_msg_list IN VARCHAR2 := cn_api.g_false,
3744: p_commit IN VARCHAR2 := cn_api.g_false,
3745: p_validation_level IN NUMBER := cn_api.g_valid_level_full,
3746: x_return_status OUT NOCOPY VARCHAR2,
3747: x_msg_count OUT NOCOPY NUMBER,
3748: x_msg_data OUT NOCOPY VARCHAR2,
3749: p_quota_rec IN plan_element_rec_type := g_miss_plan_element_rec,

Line 4143: cn_api.get_lkup_meaning (q.quota_type_code, 'QUOTA_TYPE') element_type,

4139: SELECT q.quota_id quota_id,
4140: q.NAME,
4141: q.description,
4142: NULL period_type,
4143: cn_api.get_lkup_meaning (q.quota_type_code, 'QUOTA_TYPE') element_type,
4144: q.target,
4145: cn_api.get_lkup_meaning (q.incentive_type_code, 'INCENTIVE_TYPE') incentive_type,
4146: ct.NAME credit_type,
4147: cf.NAME calc_formula_name,

Line 4145: cn_api.get_lkup_meaning (q.incentive_type_code, 'INCENTIVE_TYPE') incentive_type,

4141: q.description,
4142: NULL period_type,
4143: cn_api.get_lkup_meaning (q.quota_type_code, 'QUOTA_TYPE') element_type,
4144: q.target,
4145: cn_api.get_lkup_meaning (q.incentive_type_code, 'INCENTIVE_TYPE') incentive_type,
4146: ct.NAME credit_type,
4147: cf.NAME calc_formula_name,
4148: q.rt_sched_custom_flag,
4149: q.package_name,

Line 4286: SELECT cn_api.get_acc_period_name (period_id,org_id) period_name,

4282: CURSOR c_period_quotas_rec_csr (
4283: pe_id cn_quotas.quota_id%TYPE
4284: )
4285: IS
4286: SELECT cn_api.get_acc_period_name (period_id,org_id) period_name,
4287: period_target,
4288: period_payment,
4289: performance_goal,
4290: attribute1,

Line 4315: SELECT cn_api.get_rate_table_name (rate_schedule_id) rate_schedule_name,

4311: CURSOR c_rt_quota_asgns_rec_csr (
4312: pe_id cn_quotas.quota_id%TYPE
4313: )
4314: IS
4315: SELECT cn_api.get_rate_table_name (rate_schedule_id) rate_schedule_name,
4316: cn_chk_plan_element_pkg.get_calc_formula_name (calc_formula_id) calc_formula_name,
4317: start_date,
4318: end_date,
4319: attribute_category,

Line 4659: p_init_msg_list IN VARCHAR2 := cn_api.g_false,

4655: -- | It creates all the Respective Child records for that Plan Element
4656: ----------------------------------------------------------------------------+
4657: PROCEDURE duplicate_plan_element (
4658: p_api_version IN NUMBER := 0,
4659: p_init_msg_list IN VARCHAR2 := cn_api.g_false,
4660: p_commit IN VARCHAR2 := cn_api.g_false,
4661: p_validation_level IN NUMBER := cn_api.g_valid_level_full,
4662: x_return_status OUT NOCOPY VARCHAR2,
4663: x_msg_count OUT NOCOPY NUMBER,

Line 4660: p_commit IN VARCHAR2 := cn_api.g_false,

4656: ----------------------------------------------------------------------------+
4657: PROCEDURE duplicate_plan_element (
4658: p_api_version IN NUMBER := 0,
4659: p_init_msg_list IN VARCHAR2 := cn_api.g_false,
4660: p_commit IN VARCHAR2 := cn_api.g_false,
4661: p_validation_level IN NUMBER := cn_api.g_valid_level_full,
4662: x_return_status OUT NOCOPY VARCHAR2,
4663: x_msg_count OUT NOCOPY NUMBER,
4664: x_msg_data OUT NOCOPY VARCHAR2,

Line 4661: p_validation_level IN NUMBER := cn_api.g_valid_level_full,

4657: PROCEDURE duplicate_plan_element (
4658: p_api_version IN NUMBER := 0,
4659: p_init_msg_list IN VARCHAR2 := cn_api.g_false,
4660: p_commit IN VARCHAR2 := cn_api.g_false,
4661: p_validation_level IN NUMBER := cn_api.g_valid_level_full,
4662: x_return_status OUT NOCOPY VARCHAR2,
4663: x_msg_count OUT NOCOPY NUMBER,
4664: x_msg_data OUT NOCOPY VARCHAR2,
4665: p_plan_element_name IN cn_quotas.NAME%TYPE := cn_api.g_miss_char,

Line 4665: p_plan_element_name IN cn_quotas.NAME%TYPE := cn_api.g_miss_char,

4661: p_validation_level IN NUMBER := cn_api.g_valid_level_full,
4662: x_return_status OUT NOCOPY VARCHAR2,
4663: x_msg_count OUT NOCOPY NUMBER,
4664: x_msg_data OUT NOCOPY VARCHAR2,
4665: p_plan_element_name IN cn_quotas.NAME%TYPE := cn_api.g_miss_char,
4666: p_org_id IN NUMBER,
4667: x_plan_element_name OUT NOCOPY cn_quotas.NAME%TYPE,
4668: x_loading_status OUT NOCOPY VARCHAR2
4669: )

Line 4892: x_return_status := cn_api.g_ret_sts_warning;

4888: x_loading_status := 'CN_INSERTED';
4889:
4890: IF l_warning_flag = 'Y'
4891: THEN
4892: x_return_status := cn_api.g_ret_sts_warning;
4893: END IF;
4894: END IF;
4895:
4896: IF jtf_usr_hks.ok_to_execute ('CN_PLAN_ELEMENT_PUB', 'DUPLICATE_PLAN_ELEMENT', 'A', 'V')