183:
184:
185: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
186: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
187: 'Calling WF_ENGINE.createprocess l_wf_name '||l_wf_name);
188: END IF;
189:
190: IF l_wf_name IN ( G_APPROVAL_ITEM_TYPE , G_APP_ITEM_TYPE_2579) THEN
191:
188: END IF;
189:
190: IF l_wf_name IN ( G_APPROVAL_ITEM_TYPE , G_APP_ITEM_TYPE_2579) THEN
191:
192: WF_ENGINE.createprocess (
193: itemtype => l_wf_name,
194: itemkey => l_wf_sequence,
195: process => G_APPROVAL_PROCESS);
196:
196:
197:
198: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
199: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
200: 'Calling WF_ENGINE.SetItemUserKey');
201: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
202: 'User key Value is: ' || l_user_key);
203: END IF;
204: WF_ENGINE.SetItemUserKey (
200: 'Calling WF_ENGINE.SetItemUserKey');
201: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
202: 'User key Value is: ' || l_user_key);
203: END IF;
204: WF_ENGINE.SetItemUserKey (
205: itemtype => l_wf_name,
206: itemkey => l_wf_sequence,
207: userkey => l_user_key);
208:
207: userkey => l_user_key);
208:
209: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
210: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
211: 'Calling WF_ENGINE.SetItemOwner');
212: END IF;
213: WF_ENGINE.SetItemOwner (
214: itemtype => l_wf_name,
215: itemkey => l_wf_sequence,
209: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
210: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
211: 'Calling WF_ENGINE.SetItemOwner');
212: END IF;
213: WF_ENGINE.SetItemOwner (
214: itemtype => l_wf_name,
215: itemkey => l_wf_sequence,
216: owner => fnd_global.user_name);
217:
217:
218:
219: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
220: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
221: 'Calling WF_ENGINE.setitemattrnumber for CONTRACT_ID');
222: END IF;
223: WF_ENGINE.SetItemAttrText (
224: itemtype => l_wf_name,
225: itemkey => l_wf_sequence,
219: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
220: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
221: 'Calling WF_ENGINE.setitemattrnumber for CONTRACT_ID');
222: END IF;
223: WF_ENGINE.SetItemAttrText (
224: itemtype => l_wf_name,
225: itemkey => l_wf_sequence,
226: aname => 'CONTRACT_ID',
227: avalue => p_contract_id);
227: avalue => p_contract_id);
228:
229: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
230: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
231: 'Calling WF_ENGINE.startprocess for REQUESTOR');
232: END IF;
233: WF_ENGINE.SetItemAttrText (
234: itemtype => l_wf_name,
235: itemkey => l_wf_sequence,
229: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
230: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
231: 'Calling WF_ENGINE.startprocess for REQUESTOR');
232: END IF;
233: WF_ENGINE.SetItemAttrText (
234: itemtype => l_wf_name,
235: itemkey => l_wf_sequence,
236: aname => 'REQUESTER',
237: avalue => fnd_global.user_name);
237: avalue => fnd_global.user_name);
238:
239: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
240: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
241: 'Calling WF_ENGINE.setitemattrnumber for CTX_USER_ID ' || fnd_global.user_id);
242: END IF;
243:
244: WF_ENGINE.SetItemAttrNumber (
245: itemtype => l_wf_name,
240: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
241: 'Calling WF_ENGINE.setitemattrnumber for CTX_USER_ID ' || fnd_global.user_id);
242: END IF;
243:
244: WF_ENGINE.SetItemAttrNumber (
245: itemtype => l_wf_name,
246: itemkey => l_wf_sequence,
247: aname => 'CTX_USER_ID',
248: avalue => fnd_global.user_id);
248: avalue => fnd_global.user_id);
249:
250: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
251: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
252: 'Calling WF_ENGINE.setitemattrnumber for CTX_APPL_ID ' || fnd_global.RESP_APPL_ID);
253: END IF;
254: WF_ENGINE.SetItemAttrNumber (
255: itemtype => l_wf_name,
256: itemkey => l_wf_sequence,
250: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
251: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
252: 'Calling WF_ENGINE.setitemattrnumber for CTX_APPL_ID ' || fnd_global.RESP_APPL_ID);
253: END IF;
254: WF_ENGINE.SetItemAttrNumber (
255: itemtype => l_wf_name,
256: itemkey => l_wf_sequence,
257: aname => 'CTX_APPL_ID',
258: avalue => fnd_global.RESP_APPL_ID);
258: avalue => fnd_global.RESP_APPL_ID);
259:
260: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
261: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
262: 'Calling WF_ENGINE.setitemattrnumber for CTX_RESP_ID ' || fnd_global.resp_id);
263: END IF;
264: WF_ENGINE.SetItemAttrNumber (
265: itemtype => l_wf_name,
266: itemkey => l_wf_sequence,
260: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
261: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
262: 'Calling WF_ENGINE.setitemattrnumber for CTX_RESP_ID ' || fnd_global.resp_id);
263: END IF;
264: WF_ENGINE.SetItemAttrNumber (
265: itemtype => l_wf_name,
266: itemkey => l_wf_sequence,
267: aname => 'CTX_RESP_ID',
268: avalue => fnd_global.resp_id);
269:
270:
271: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
272: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
273: 'Calling WF_ENGINE.startprocess');
274: END IF;
275: WF_ENGINE.startprocess (
276: itemtype => l_wf_name,
277: itemkey => l_wf_sequence);
271: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
272: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
273: 'Calling WF_ENGINE.startprocess');
274: END IF;
275: WF_ENGINE.startprocess (
276: itemtype => l_wf_name,
277: itemkey => l_wf_sequence);
278:
279:
5111: IF l_wf_name IN ( G_SIGNATURE_ITEM_TYPE , G_SIG_ITEM_TYPE_2579) THEN
5112:
5113: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
5114: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
5115: 'Calling WF_ENGINE.createprocess');
5116: END IF;
5117:
5118: WF_ENGINE.createprocess (
5119: itemtype => l_wf_name,
5114: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
5115: 'Calling WF_ENGINE.createprocess');
5116: END IF;
5117:
5118: WF_ENGINE.createprocess (
5119: itemtype => l_wf_name,
5120: itemkey => l_wf_sequence,
5121: process => G_SIGNATURE_PROCESS);
5122:
5122:
5123:
5124: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
5125: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
5126: 'Calling WF_ENGINE.SetItemUserKey');
5127: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
5128: 'User key Value is: ' || l_user_key);
5129: END IF;
5130: WF_ENGINE.SetItemUserKey (
5126: 'Calling WF_ENGINE.SetItemUserKey');
5127: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
5128: 'User key Value is: ' || l_user_key);
5129: END IF;
5130: WF_ENGINE.SetItemUserKey (
5131: itemtype => l_wf_name,
5132: itemkey => l_wf_sequence,
5133: userkey => l_user_key);
5134:
5133: userkey => l_user_key);
5134:
5135: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
5136: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
5137: 'Calling WF_ENGINE.SetItemOwner');
5138: END IF;
5139: WF_ENGINE.SetItemOwner (
5140: itemtype => l_wf_name,
5141: itemkey => l_wf_sequence,
5135: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
5136: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
5137: 'Calling WF_ENGINE.SetItemOwner');
5138: END IF;
5139: WF_ENGINE.SetItemOwner (
5140: itemtype => l_wf_name,
5141: itemkey => l_wf_sequence,
5142: owner => fnd_global.user_name);
5143:
5143:
5144:
5145: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
5146: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
5147: 'Calling WF_ENGINE.setitemattrnumber for CONTRACT_ID');
5148: END IF;
5149: WF_ENGINE.SetItemAttrText (
5150: itemtype => l_wf_name,
5151: itemkey => l_wf_sequence,
5145: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
5146: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
5147: 'Calling WF_ENGINE.setitemattrnumber for CONTRACT_ID');
5148: END IF;
5149: WF_ENGINE.SetItemAttrText (
5150: itemtype => l_wf_name,
5151: itemkey => l_wf_sequence,
5152: aname => 'CONTRACT_ID',
5153: avalue => p_contract_id);
5153: avalue => p_contract_id);
5154:
5155: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
5156: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
5157: 'Calling WF_ENGINE.startprocess for REQUESTOR');
5158: END IF;
5159: WF_ENGINE.SetItemAttrText (
5160: itemtype => l_wf_name,
5161: itemkey => l_wf_sequence,
5155: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
5156: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
5157: 'Calling WF_ENGINE.startprocess for REQUESTOR');
5158: END IF;
5159: WF_ENGINE.SetItemAttrText (
5160: itemtype => l_wf_name,
5161: itemkey => l_wf_sequence,
5162: aname => 'REQUESTER',
5163: avalue => fnd_global.user_name);
5163: avalue => fnd_global.user_name);
5164:
5165: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
5166: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
5167: 'Calling WF_ENGINE.setitemattrnumber for CTX_USER_ID ' || fnd_global.user_id);
5168: END IF;
5169:
5170: WF_ENGINE.SetItemAttrNumber (
5171: itemtype => l_wf_name,
5166: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
5167: 'Calling WF_ENGINE.setitemattrnumber for CTX_USER_ID ' || fnd_global.user_id);
5168: END IF;
5169:
5170: WF_ENGINE.SetItemAttrNumber (
5171: itemtype => l_wf_name,
5172: itemkey => l_wf_sequence,
5173: aname => 'CTX_USER_ID',
5174: avalue => fnd_global.user_id);
5174: avalue => fnd_global.user_id);
5175:
5176: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
5177: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
5178: 'Calling WF_ENGINE.setitemattrnumber for CTX_APPL_ID ' || fnd_global.RESP_APPL_ID);
5179: END IF;
5180: WF_ENGINE.SetItemAttrNumber (
5181: itemtype => l_wf_name,
5182: itemkey => l_wf_sequence,
5176: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
5177: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
5178: 'Calling WF_ENGINE.setitemattrnumber for CTX_APPL_ID ' || fnd_global.RESP_APPL_ID);
5179: END IF;
5180: WF_ENGINE.SetItemAttrNumber (
5181: itemtype => l_wf_name,
5182: itemkey => l_wf_sequence,
5183: aname => 'CTX_APPL_ID',
5184: avalue => fnd_global.RESP_APPL_ID);
5184: avalue => fnd_global.RESP_APPL_ID);
5185:
5186: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
5187: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
5188: 'Calling WF_ENGINE.setitemattrnumber for CTX_RESP_ID ' || fnd_global.resp_id);
5189: END IF;
5190: WF_ENGINE.SetItemAttrNumber (
5191: itemtype => l_wf_name,
5192: itemkey => l_wf_sequence,
5186: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
5187: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
5188: 'Calling WF_ENGINE.setitemattrnumber for CTX_RESP_ID ' || fnd_global.resp_id);
5189: END IF;
5190: WF_ENGINE.SetItemAttrNumber (
5191: itemtype => l_wf_name,
5192: itemkey => l_wf_sequence,
5193: aname => 'CTX_RESP_ID',
5194: avalue => fnd_global.resp_id);
5194: avalue => fnd_global.resp_id);
5195:
5196: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
5197: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
5198: 'Calling WF_ENGINE.startprocess');
5199: END IF;
5200: WF_ENGINE.startprocess (
5201: itemtype => l_wf_name,
5202: itemkey => l_wf_sequence);
5196: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
5197: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
5198: 'Calling WF_ENGINE.startprocess');
5199: END IF;
5200: WF_ENGINE.startprocess (
5201: itemtype => l_wf_name,
5202: itemkey => l_wf_sequence);
5203:
5204:
5865: END IF;
5866:
5867: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
5868: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
5869: 'Calling wf_engine.CreateProcess()');
5870: END IF;
5871:
5872: --Create the process
5873: wf_engine.CreateProcess(
5869: 'Calling wf_engine.CreateProcess()');
5870: END IF;
5871:
5872: --Create the process
5873: wf_engine.CreateProcess(
5874: itemtype => l_item_type,
5875: itemkey => l_item_key,
5876: process => l_process_name);
5877:
5875: itemkey => l_item_key,
5876: process => l_process_name);
5877:
5878: --set standard parameter
5879: wf_engine.SetItemUserKey (
5880: itemtype => l_item_type,
5881: itemkey => l_item_key,
5882: userkey => l_item_key);
5883:
5881: itemkey => l_item_key,
5882: userkey => l_item_key);
5883:
5884: --set process owner
5885: wf_engine.SetItemOwner (
5886: itemtype => l_item_type,
5887: itemkey => l_item_key,
5888: owner => fnd_global.user_name);
5889:
5887: itemkey => l_item_key,
5888: owner => fnd_global.user_name);
5889:
5890: --set contracts role parameter
5891: wf_engine.SetItemAttrText (
5892: itemtype => l_item_type,
5893: itemkey => l_item_key,
5894: aname => l_item_contract_contacts,
5895: avalue => l_contract_contacts_role_name);
5894: aname => l_item_contract_contacts,
5895: avalue => l_contract_contacts_role_name);
5896:
5897: --set contract id parameter
5898: wf_engine.SetItemAttrText (
5899: itemtype => l_item_type,
5900: itemkey => l_item_key,
5901: aname => l_item_contract_id,
5902: avalue => p_contract_id);
5901: aname => l_item_contract_id,
5902: avalue => p_contract_id);
5903:
5904: --set contract number parameter
5905: wf_engine.SetItemAttrText (
5906: itemtype => l_item_type,
5907: itemkey => l_item_key,
5908: aname => l_item_contract_number,
5909: avalue => p_contract_number);
5908: aname => l_item_contract_number,
5909: avalue => p_contract_number);
5910:
5911: --set contract version parameter
5912: wf_engine.SetItemAttrText (
5913: itemtype => l_item_type,
5914: itemkey => l_item_key,
5915: aname => l_item_contract_version,
5916: avalue => p_contract_version);
5952: --get fnd message
5953: l_subject_text := fnd_message.get;
5954:
5955: --set message subject
5956: wf_engine.SetItemAttrText (
5957: itemtype => l_item_type,
5958: itemkey => l_item_key,
5959: aname => l_item_message_subject,
5960: avalue => l_subject_text);
5960: avalue => l_subject_text);
5961:
5962: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
5963: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
5964: 'Calling wf_engine.StartProcess()');
5965: END IF;
5966:
5967: --Start the process
5968: wf_engine.StartProcess(
5964: 'Calling wf_engine.StartProcess()');
5965: END IF;
5966:
5967: --Start the process
5968: wf_engine.StartProcess(
5969: itemtype => l_item_type,
5970: itemkey => l_item_key);
5971:
5972: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
6181: CLOSE contract_csr;
6182:
6183: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
6184: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
6185: 'Calling WF_ENGINE.AbortProcess');
6186: END IF;
6187:
6188: -- Check the status of the contract is Pending Approval before aborting the approval process
6189: IF (l_contract_status = G_STATUS_PENDING_APPROVAL) THEN
6188: -- Check the status of the contract is Pending Approval before aborting the approval process
6189: IF (l_contract_status = G_STATUS_PENDING_APPROVAL) THEN
6190:
6191: -- Call WF API to abort the approval process
6192: WF_ENGINE.AbortProcess(
6193: itemtype => l_wf_type,
6194: itemkey => l_wf_key,
6195: result => 'COMPLETE:',
6196: verify_lock => false,
6197: cascade => true);
6198:
6199: FOR rec_child_notification IN csr_child_notification(l_wf_key)
6200: LOOP
6201: WF_ENGINE.AbortProcess(
6202: itemtype => l_wf_type,
6203: itemkey => rec_child_notification.ITEM_KEY,
6204: result => 'COMPLETE:',
6205: verify_lock => false,