2135: -- We now have all the values in local variables
2136: -- Create the WF process
2137:
2138: --dbms_output.put_line('Process: ' || p_wf_process);
2139: wf_engine.CreateProcess ( ItemType => p_wf_item_type,
2140: ItemKey => l_itemkey,
2141: process => p_wf_process
2142: );
2143:
2144: -- Now set the values as appropriate in the WF attributes
2145:
2146: /* Commented for Bug 6144224
2147: -- Set Role details attributes
2148: wf_engine.SetItemAttrText
2149: ( itemtype => p_wf_item_type,
2150: itemkey => l_itemkey,
2151: aname => 'ATTR_NOMINATE_ROLE',
2152: avalue => l_role_name
2151: aname => 'ATTR_NOMINATE_ROLE',
2152: avalue => l_role_name
2153: );
2154:
2155: wf_engine.SetItemAttrText
2156: ( itemtype => p_wf_item_type,
2157: itemkey => l_itemkey,
2158: aname => 'ATTR_DECLINED_ROLE',
2159: avalue => l_role_name
2158: aname => 'ATTR_DECLINED_ROLE',
2159: avalue => l_role_name
2160: );
2161:
2162: wf_engine.SetItemAttrText
2163: ( itemtype => p_wf_item_type,
2164: itemkey => l_itemkey,
2165: aname => 'ATTR_CANDIDATE_ROLE',
2166: avalue => l_role_name
2166: avalue => l_role_name
2167: );
2168: */
2169: --Added for bug 6144224 to set the Adhoc role
2170: wf_engine.SetItemAttrText
2171: ( itemtype => p_wf_item_type,
2172: itemkey => l_itemkey,
2173: aname => 'ATTR_ADHOC_ROLE',
2174: avalue => l_role_name
2174: avalue => l_role_name
2175: );
2176:
2177: --Added for bug 6144224 to set the final number of recipients
2178: wf_engine.SetItemAttrText
2179: ( itemtype => p_wf_item_type,
2180: itemkey => l_itemkey,
2181: aname => 'NUMBER_OF_RECIPIENTS',
2182: avalue => l_count_recipients
2182: avalue => l_count_recipients
2183: );
2184:
2185: --Added for bug 6144224 to set the loop counter
2186: wf_engine.SetItemAttrText
2187: ( itemtype => p_wf_item_type,
2188: itemkey => l_itemkey,
2189: aname => 'NF_LOOP_COUNTER',
2190: avalue => 0
2191: );
2192:
2193: -- Set Project details attributes
2194:
2195: wf_engine.SetItemAttrText
2196: ( itemtype => p_wf_item_type,
2197: itemkey => l_itemkey,
2198: aname => 'ATTR_PROJ_NUMBER',
2199: avalue => l_projects_rec.segment1
2198: aname => 'ATTR_PROJ_NUMBER',
2199: avalue => l_projects_rec.segment1
2200: );
2201:
2202: wf_engine.SetItemAttrText
2203: ( itemtype => p_wf_item_type,
2204: itemkey => l_itemkey,
2205: aname => 'ATTR_PROJ_NAME',
2206: avalue => l_projects_rec.name
2205: aname => 'ATTR_PROJ_NAME',
2206: avalue => l_projects_rec.name
2207: );
2208:
2209: wf_engine.SetItemAttrText
2210: ( itemtype => p_wf_item_type,
2211: itemkey => l_itemkey,
2212: aname => 'ATTR_PROJ_ORGANIZATION',
2213: avalue => l_projects_rec.organization_name
2213: avalue => l_projects_rec.organization_name
2214: );
2215:
2216: IF l_customer_name IS NOT NULL THEN
2217: wf_engine.SetItemAttrText
2218: ( itemtype => p_wf_item_type,
2219: itemkey => l_itemkey,
2220: aname => 'ATTR_PROJ_CUSTOMER',
2221: avalue => l_customer_name
2225:
2226:
2227: -- Set Assignment related attributes
2228:
2229: wf_engine.SetItemAttrText
2230: ( itemtype => p_wf_item_type,
2231: itemkey => l_itemkey,
2232: aname => 'ATTR_ASGMT_NAME',
2233: avalue => l_assignments_rec.assignment_name
2232: aname => 'ATTR_ASGMT_NAME',
2233: avalue => l_assignments_rec.assignment_name
2234: );
2235:
2236: wf_engine.SetItemAttrText
2237: ( itemtype => p_wf_item_type,
2238: itemkey => l_itemkey,
2239: aname => 'ATTR_ASGMT_NAME',
2240: avalue => l_assignments_rec.assignment_name
2239: aname => 'ATTR_ASGMT_NAME',
2240: avalue => l_assignments_rec.assignment_name
2241: );
2242:
2243: wf_engine.SetItemAttrText
2244: ( itemtype => p_wf_item_type,
2245: itemkey => l_itemkey,
2246: aname => 'ATTR_ASGMT_DESCRIPTION',
2247: avalue => l_assignments_rec.description
2246: aname => 'ATTR_ASGMT_DESCRIPTION',
2247: avalue => l_assignments_rec.description
2248: );
2249:
2250: wf_engine.SetItemAttrText
2251: ( itemtype => p_wf_item_type,
2252: itemkey => l_itemkey,
2253: aname => 'ATTR_ADDITIONAL_INFORMATION',
2254: avalue => l_assignments_rec.additional_information
2253: aname => 'ATTR_ADDITIONAL_INFORMATION',
2254: avalue => l_assignments_rec.additional_information
2255: );
2256:
2257: wf_engine.SetItemAttrNumber
2258: ( itemtype => p_wf_item_type,
2259: itemkey => l_itemkey,
2260: aname => 'ATTR_ASGMT_DURATION',
2261: avalue => (trunc(l_assignments_rec.end_date) -
2261: avalue => (trunc(l_assignments_rec.end_date) -
2262: trunc(l_assignments_rec.start_date)+1)
2263: );
2264:
2265: wf_engine.SetItemAttrNumber
2266: ( itemtype => p_wf_item_type,
2267: itemkey => l_itemkey,
2268: aname => 'ATTR_ASGMT_EFFORT',
2269: avalue => l_assignments_rec.assignment_effort
2270: );
2271:
2272: -- Set resource related attributes
2273:
2274: wf_engine.SetItemAttrText
2275: ( itemtype => p_wf_item_type,
2276: itemkey => l_itemkey,
2277: aname => 'ATTR_CAND_NUMBER',
2278: avalue => p_candidate_number
2279: );
2280:
2281: --dbms_output.put_line('p_status_name' || p_status_name);
2282:
2283: wf_engine.SetItemAttrText
2284: ( itemtype => p_wf_item_type,
2285: itemkey => l_itemkey,
2286: aname => 'ATTR_CAND_STATUS',
2287: avalue => p_status_name
2286: aname => 'ATTR_CAND_STATUS',
2287: avalue => p_status_name
2288: );
2289:
2290: wf_engine.SetItemAttrText
2291: ( itemtype => p_wf_item_type,
2292: itemkey => l_itemkey,
2293: aname => 'ATTR_RESOURCE_NAME',
2294: avalue => l_resource_rec.resource_name
2293: aname => 'ATTR_RESOURCE_NAME',
2294: avalue => l_resource_rec.resource_name
2295: );
2296:
2297: wf_engine.SetItemAttrText
2298: ( itemtype => p_wf_item_type,
2299: itemkey => l_itemkey,
2300: aname => 'ATTR_RESOURCE_ORG',
2301: avalue => l_resource_rec.resource_organization_name
2303:
2304:
2305: -- Set project manager attributes
2306:
2307: wf_engine.SetItemAttrText
2308: ( itemtype => p_wf_item_type,
2309: itemkey => l_itemkey,
2310: aname => 'ATTR_PROJ_MANAGER',
2311: avalue => l_proj_mgr_name
2316:
2317: l_resource_details_url :=
2318: 'JSP:/OA_HTML/OA.jsp?akRegionApplicationId=275&akRegionCode=PA_VIEW_RESOURCE_LAYOUT&addBreadCrumb=RP&paResourceId='||p_resource_id;
2319:
2320: wf_engine.SetItemAttrText
2321: ( itemtype => p_wf_item_type
2322: , itemkey => l_itemkey
2323: , aname => 'ATTR_ASGMT_DETAILS_URL_INFO'
2324: , avalue => l_asgmt_details_url
2323: , aname => 'ATTR_ASGMT_DETAILS_URL_INFO'
2324: , avalue => l_asgmt_details_url
2325: );
2326:
2327: wf_engine.SetItemAttrText
2328: ( itemtype => p_wf_item_type
2329: , itemkey => l_itemkey
2330: , aname => 'ATTR_RESOURCE_DETAILS_URL'
2331: , avalue => l_resource_details_url
2331: , avalue => l_resource_details_url
2332: );
2333:
2334: -- Now start the WF process
2335: wf_engine.StartProcess
2336: ( itemtype => p_wf_item_type,
2337: itemkey => l_itemkey );
2338:
2339: -- Insert to PA tables wf process information.
3015: end
3016: */
3017:
3018: -- Return if WF Not Running
3019: IF (funcmode <> wf_engine.eng_run) THEN
3020: resultout := wf_engine.eng_null;
3021: RETURN;
3022: END IF;
3023:
3016: */
3017:
3018: -- Return if WF Not Running
3019: IF (funcmode <> wf_engine.eng_run) THEN
3020: resultout := wf_engine.eng_null;
3021: RETURN;
3022: END IF;
3023:
3024: -- Get total number of recipients
3021: RETURN;
3022: END IF;
3023:
3024: -- Get total number of recipients
3025: l_number_of_nf_rects := wf_engine.GetItemAttrNumber
3026: ( itemtype => itemtype
3027: , itemkey => itemkey
3028: , aname => 'NUMBER_OF_RECIPIENTS'
3029: );
3028: , aname => 'NUMBER_OF_RECIPIENTS'
3029: );
3030:
3031: -- Get loop counter value
3032: l_nf_loop_counter := wf_engine.getItemAttrNumber
3033: ( itemtype => itemtype
3034: , itemkey => itemkey
3035: , aname => 'NF_LOOP_COUNTER'
3036: );
3035: , aname => 'NF_LOOP_COUNTER'
3036: );
3037:
3038: -- Get adhoc role created for nitifications
3039: l_role_name := wf_engine.getItemAttrText
3040: ( itemtype => itemtype
3041: , itemkey => itemkey
3042: , aname => 'ATTR_ADHOC_ROLE'
3043: );
3046: l_nf_loop_counter := l_nf_loop_counter + 1;
3047:
3048: IF l_nf_loop_counter > l_number_of_nf_rects THEN
3049:
3050: resultout := wf_engine.eng_completed||':'||'F';
3051: RETURN;
3052: END IF;
3053:
3054: -- Get all users attached to Adhoc role
3063: AND ROLE_ORIG_SYSTEM = 'PER'
3064: AND ROWNUM = 1;
3065:
3066: -- Set the notification roles for the 'nth' user
3067: wf_engine.SetItemAttrText
3068: ( itemtype => itemtype,
3069: itemkey => itemkey,
3070: aname => 'ATTR_NOMINATE_ROLE',
3071: avalue => l_role_name_temp
3070: aname => 'ATTR_NOMINATE_ROLE',
3071: avalue => l_role_name_temp
3072: );
3073:
3074: wf_engine.SetItemAttrText
3075: ( itemtype => itemtype,
3076: itemkey => itemkey,
3077: aname => 'ATTR_DECLINED_ROLE',
3078: avalue => l_role_name_temp
3077: aname => 'ATTR_DECLINED_ROLE',
3078: avalue => l_role_name_temp
3079: );
3080:
3081: wf_engine.SetItemAttrText
3082: ( itemtype => itemtype,
3083: itemkey => itemkey,
3084: aname => 'ATTR_CANDIDATE_ROLE',
3085: avalue => l_role_name_temp
3085: avalue => l_role_name_temp
3086: );
3087:
3088: -- Set the incremented loop counter value
3089: wf_engine.SetItemAttrText
3090: ( itemtype => itemtype,
3091: itemkey => itemkey,
3092: aname => 'NF_LOOP_COUNTER',
3093: avalue => l_nf_loop_counter
3091: itemkey => itemkey,
3092: aname => 'NF_LOOP_COUNTER',
3093: avalue => l_nf_loop_counter
3094: );
3095: resultout := wf_engine.eng_completed||':'||'S';
3096:
3097:
3098: EXCEPTION
3099: WHEN OTHERS THEN