224: p_worker_id,
225: 'ONLINE'
226: );
227:
228: -- don't delete contents from PJI_FP_AGGR_XBS_T
229:
230: -- Sadiq will call cleanup_xbs_denorm(p_worker_id, 'ONLINE')
231:
232:
1795: -- PA_OBJECT_RELATIONSHIPS
1796: --
1797: -- Then, this API populates output values in the following existing
1798: -- table:
1799: -- PJI_FP_AGGR_XBS
1800: --
1801: -- When P_EXTRACTION_TYPE equals 'FULL', this API calls the following
1802: -- procedure:
1803: -- wbs_denorm
2045: -- then we know that the node is a leaf
2046: if PRG_NODE.prg_group is not null then
2047: select count(*)
2048: into l_prg_node_count
2049: from PJI_FP_AGGR_XBS pdt_count
2050: where 1=1
2051: and pdt_count.sup_id = PRG_NODE.element_version_id
2052: and pdt_count.worker_id = P_WORKER_ID
2053: and rownum = 1;
2088:
2089:
2090: -- Insert PRG node self --
2091: insert
2092: into PJI_FP_AGGR_XBS
2093: (
2094: struct_type,
2095: prg_group,
2096: struct_version_id,
2250: end if;
2251:
2252: -- Insert PRG node's parent --
2253: insert
2254: into PJI_FP_AGGR_XBS
2255: (
2256: struct_type,
2257: prg_group,
2258: struct_version_id,
2302: distinct
2303: pdt_child.sup_id,
2304: pdt_child.sub_id,
2305: pdt_child.sub_leaf_flag_id
2306: from PJI_FP_AGGR_XBS pdt_child
2307: where 1=1
2308: and pdt_child.sup_id = PRG_NODE.element_version_id
2309: and pdt_child.sup_id <> pdt_child.sub_id
2310: and pdt_child.worker_id = P_WORKER_ID
2312:
2313: -- l_prg_temp_level --
2314: select pdt_child1.sub_level
2315: into l_prg_temp_level
2316: from PJI_FP_AGGR_XBS pdt_child1
2317: where 1=1
2318: and pdt_child1.sup_id = PRG_CHILDREN_NODE.sub_id
2319: and pdt_child1.sup_id = pdt_child1.sub_id
2320: and pdt_child1.worker_id = P_WORKER_ID;
2370: end if;
2371:
2372: -- Insert PRG node's child --
2373: insert
2374: into PJI_FP_AGGR_XBS
2375: (
2376: struct_type,
2377: prg_group,
2378: struct_version_id,
2521: -- PA_OBJECT_RELATIONSHIPS
2522: --
2523: -- Then, this API populates output values in the following existing
2524: -- table:
2525: -- PJI_FP_AGGR_XBS
2526: --
2527: -- -----------------------------------------------------------------------
2528:
2529: -- -----------------------------------------------------
2572: select
2573: distinct
2574: sup_emt_id
2575: into l_struct_emt_id
2576: from pji_fp_aggr_xbs
2577: where 1=1
2578: and struct_type = 'PRG'
2579: and sup_id = P_WBS_VERSION_ID
2580: and worker_id = P_WORKER_ID;
2652: -- then we know that the node is a leaf
2653:
2654: select count(*)
2655: into l_wbs_node_count
2656: from PJI_FP_AGGR_XBS wdt_count
2657: where wdt_count.sup_id = WBS_NODE.element_version_id
2658: and wdt_count.worker_id = P_WORKER_ID
2659: and rownum = 1;
2660:
2690: end if;
2691:
2692: -- Insert WBS node self --
2693: insert
2694: into PJI_FP_AGGR_XBS
2695: (
2696: struct_type,
2697: prg_group,
2698: struct_emt_id,
2802:
2803:
2804: -- Insert WBS node's parent --
2805: insert
2806: into PJI_FP_AGGR_XBS
2807: (
2808: struct_type,
2809: prg_group,
2810: struct_emt_id,
2860: select wdt_child.sup_id,
2861: wdt_child.sub_id,
2862: wdt_child.sub_leaf_flag_id,
2863: wdt_child.relationship_type
2864: from PJI_FP_AGGR_XBS wdt_child
2865: where 1=1
2866: and wdt_child.sup_id = WBS_NODE.element_version_id
2867: and wdt_child.sup_id <> wdt_child.sub_id
2868: and wdt_child.worker_id = P_WORKER_ID
2870:
2871: -- l_wbs_temp_level --
2872: select wdt_child1.sub_level
2873: into l_wbs_temp_level
2874: from PJI_FP_AGGR_XBS wdt_child1
2875: where 1=1
2876: and wdt_child1.sup_id = WBS_CHILDREN_NODE.sub_id
2877: and wdt_child1.sup_id = wdt_child1.sub_id
2878: and wdt_child1.worker_id = P_WORKER_ID;
2915: end if;
2916:
2917: -- Insert WBS node's child --
2918: insert
2919: into PJI_FP_AGGR_XBS
2920: (
2921: struct_type,
2922: prg_group,
2923: struct_emt_id,
2992: end if;
2993:
2994: -- Insert XBS node --
2995: insert
2996: into PJI_FP_AGGR_XBS
2997: (
2998: struct_type,
2999: prg_group,
3000: struct_version_id,
3090: -- PA_OBJECT_RELATIONSHIPS
3091: --
3092: -- Then, this API populates output values in the following existing
3093: -- table:
3094: -- PJI_FP_AGGR_XBS
3095: --
3096: -- When P_EXTRACTION_TYPE equals 'FULL', this API calls the following
3097: -- procedure:
3098: -- wbs_denorm
3235: -- then we know that the node is a leaf
3236:
3237: select count(*)
3238: into l_prg_node_count
3239: from PJI_FP_AGGR_XBS_T pdt_count
3240: where 1=1
3241: and pdt_count.sup_id = PRG_NODE.element_version_id
3242: and pdt_count.worker_id = P_WORKER_ID
3243: and rownum = 1;
3275:
3276:
3277: -- Insert PRG node self --
3278: insert
3279: into PJI_FP_AGGR_XBS_T
3280: (
3281: struct_type,
3282: prg_group,
3283: struct_version_id,
3431:
3432:
3433: -- Insert PRG node's parent --
3434: insert
3435: into PJI_FP_AGGR_XBS_T
3436: (
3437: struct_type,
3438: prg_group,
3439: struct_version_id,
3483: distinct
3484: pdt_child.sup_id,
3485: pdt_child.sub_id,
3486: pdt_child.sub_leaf_flag_id
3487: from PJI_FP_AGGR_XBS_T pdt_child
3488: where 1=1
3489: and pdt_child.sup_id = PRG_NODE.element_version_id
3490: and pdt_child.sup_id <> pdt_child.sub_id
3491: and pdt_child.worker_id = P_WORKER_ID
3493:
3494: -- l_prg_temp_level --
3495: select pdt_child1.sub_level
3496: into l_prg_temp_level
3497: from PJI_FP_AGGR_XBS_T pdt_child1
3498: where 1=1
3499: --and pdt_child1.struct_type = 'PRG'
3500: and pdt_child1.sup_id = PRG_CHILDREN_NODE.sub_id
3501: and pdt_child1.sub_id = PRG_CHILDREN_NODE.sub_id
3554: end if;
3555:
3556: -- Insert PRG node's child --
3557: insert
3558: into PJI_FP_AGGR_XBS_T
3559: (
3560: struct_type,
3561: prg_group,
3562: struct_version_id,
3659: -- PA_OBJECT_RELATIONSHIPS
3660: --
3661: -- Then, this API populates output values in the following existing
3662: -- table:
3663: -- PJI_FP_AGGR_XBS_T
3664: --
3665: -- -----------------------------------------------------------------------
3666:
3667: -- -----------------------------------------------------
3786: select
3787: distinct
3788: sup_emt_id
3789: into l_struct_emt_id
3790: from pji_fp_aggr_xbs_t
3791: where 1=1
3792: and struct_type = 'PRG'
3793: and sup_id = P_WBS_VERSION_ID
3794: and worker_id = P_WORKER_ID;
3866: -- then we know that the node is a leaf
3867:
3868: select count(*)
3869: into l_wbs_node_count
3870: from PJI_FP_AGGR_XBS_T wdt_count
3871: where wdt_count.sup_id = WBS_NODE.element_version_id
3872: and wdt_count.worker_id = P_WORKER_ID
3873: and rownum = 1;
3874:
3905:
3906:
3907: -- Insert WBS node self --
3908: insert
3909: into PJI_FP_AGGR_XBS_T
3910: (
3911: struct_type,
3912: prg_group,
3913: struct_emt_id,
4040: end if;
4041:
4042: -- Insert WBS node's parent --
4043: insert
4044: into PJI_FP_AGGR_XBS_T
4045: (
4046: struct_type,
4047: prg_group,
4048: struct_emt_id,
4099: select wdt_child.sup_id,
4100: wdt_child.sub_id,
4101: wdt_child.sub_leaf_flag_id,
4102: wdt_child.relationship_type
4103: from PJI_FP_AGGR_XBS_T wdt_child
4104: where 1=1
4105: and wdt_child.sup_id = WBS_NODE.element_version_id
4106: and wdt_child.sup_id <> wdt_child.sub_id
4107: and wdt_child.worker_id = P_WORKER_ID
4109:
4110: -- l_wbs_temp_level --
4111: select wdt_child1.sub_level
4112: into l_wbs_temp_level
4113: from PJI_FP_AGGR_XBS_T wdt_child1
4114: where 1=1
4115: and wdt_child1.sup_id = WBS_CHILDREN_NODE.sub_id
4116: and wdt_child1.sup_id = wdt_child1.sub_id
4117: and wdt_child1.worker_id = P_WORKER_ID;
4155:
4156:
4157: -- Insert WBS node's child --
4158: insert
4159: into PJI_FP_AGGR_XBS_T
4160: (
4161: struct_type,
4162: prg_group,
4163: struct_emt_id,
4266: end if;
4267:
4268: -- Insert XBS node --
4269: insert
4270: into PJI_FP_AGGR_XBS_T
4271: (
4272: struct_type,
4273: prg_group,
4274: struct_version_id,
5309: -- 19-MAR-2004 aartola Created
5310: --
5311: --
5312: -- *** This procedure merges data from the denorm interim table
5313: -- (PJI_FP_AGGR_XBS) to the actual denorm table (PA_XBS_DENORM)
5314: --
5315: -- After calling this procedure, the contents of the interim table
5316: -- need to be deleted.
5317: --
5403: l_last_updated_by,
5404: l_creation_date,
5405: l_created_by,
5406: l_last_update_login
5407: from PJI_FP_AGGR_XBS interim,
5408: PA_XBS_DENORM denorm
5409: where 1=1
5410: and interim.worker_id = p_worker_id
5411: and nvl(interim.struct_type, -1) = nvl(denorm.struct_type (+), -1)
5480: l_last_updated_by,
5481: l_creation_date,
5482: l_created_by,
5483: l_last_update_login
5484: from PJI_FP_AGGR_XBS_T interim
5485: where interim.worker_id = p_worker_id
5486: order by
5487: interim.struct_version_id,
5488: interim.sup_id,
5537: l_last_updated_by,
5538: l_creation_date,
5539: l_created_by,
5540: l_last_update_login
5541: from PJI_FP_AGGR_XBS interim
5542: where interim.worker_id = p_worker_id
5543: order by
5544: interim.struct_version_id,
5545: interim.sup_id,
5801: if p_extraction_type = 'ONLINE'
5802:
5803: then
5804: delete
5805: from PJI_FP_AGGR_XBS_T
5806: where worker_id = p_worker_id;
5807:
5808: else -- FULL, INCREMENTAL, PARTIAL, UPGRADE
5809:
5807:
5808: else -- FULL, INCREMENTAL, PARTIAL, UPGRADE
5809:
5810: delete
5811: from PJI_FP_AGGR_XBS
5812: where worker_id = p_worker_id;
5813:
5814: end if;
5815: