DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_OKC_MIGRATION_PVT

Source


1 PACKAGE BODY okl_okc_migration_pvt AS
2 /* $Header: OKLROKCB.pls 120.5 2006/07/14 12:00:18 dkagrawa noship $ */
3 G_APP_NAME CONSTANT VARCHAR2(3)        :=  OKL_API.G_APP_NAME;
4 -- The Enities we are Handling are as listed below
5 --1.OKC_K_VERS_NUMBERS_V  -- cvmv
6 --2.OKC_K_HEADERS_V       -- chrv
7 --3.OKC_K_LINES_V         -- clev
8 --4.OKC_K_ITEMS_V         -- cimv
9 --5.OKC_K_PARTY_ROLES_V   -- cplv
10 --6.OKC_GOVERNANCES_V     -- gvev
11 --7.OKC_RULE_GROUPS_V     -- rgpv
12 --8.OKC_RG_PARTY_ROLES_V  -- rmpv
13 --9.OKC_CONTACTS_V        -- ctcv
14 -- End of Listing
15 -- Badriath Kuchibhotla
16   G_PKG_NAME                    CONSTANT  VARCHAR2(200) := 'OKL_OKC_MIGRATION_PVT';
17 
18    /*
19    -- mvasudev, 09/09/2004
20    -- Added Constants to enable Business Event
21    */
22    G_WF_EVT_KHR_PARTY_CREATED CONSTANT VARCHAR2(50) := 'oracle.apps.okl.la.lease_contract.party_created';
23 
24 
25    G_WF_ITM_CONTRACT_ID CONSTANT VARCHAR2(20)  := 'CONTRACT_ID';
26    G_WF_ITM_PARTY_ID CONSTANT VARCHAR2(15)    := 'PARTY_ID';
27    G_WF_ITM_CONTRACT_PROCESS CONSTANT VARCHAR2(20) := 'CONTRACT_PROCESS';
28    G_WF_ITM_PARTY_ROLE_ID CONSTANT VARCHAR2(15)    := 'PARTY_ROLE_ID';
29 
30    --vthiruva, 15-Sep-2004
31    -- Added Constants to enable Business Event
32    G_WF_EVT_ASSET_FEE_CREATED CONSTANT VARCHAR2(60) := 'oracle.apps.okl.la.lease_contract.asset_fee_created';
33    G_WF_EVT_ASSET_SERV_FEE_CRTD CONSTANT VARCHAR2(65) := 'oracle.apps.okl.la.lease_contract.asset_service_fee_created';
34    G_WF_ITM_FEE_LINE_ID CONSTANT VARCHAR2(20) := 'FEE_LINE_ID';
35    G_WF_ITM_ASSET_ID CONSTANT VARCHAR2(20) := 'ASSET_ID';
36    G_WF_ITM_SERV_LINE_ID CONSTANT VARCHAR2(30) := 'SERVICE_LINE_ID';
37 
38    /*
39     * sjalasut: sep 15, 04 added constants used in raising business event. BEGIN
40     */
41    G_WF_EVT_CONTRACT_TERM_UPDATED CONSTANT VARCHAR2(70):= 'oracle.apps.okl.la.lease_contract.asset_filing_terms_updated';
42    G_WF_EVT_ASSET_FILING_UPDATED  CONSTANT VARCHAR2(70):= 'oracle.apps.okl.la.lease_contract.asset_filing_updated';
43    G_WF_EVT_ASSET_PROPTAX_UPDATED CONSTANT VARCHAR2(70):= 'oracle.apps.okl.la.lease_contract.asset_property_tax_updated';
44    G_WF_EVT_SERV_PASS_UPDATED     CONSTANT VARCHAR2(70):= 'oracle.apps.okl.la.lease_contract.service_fee_passthrough_updated';
45    G_WF_EVT_FEE_PASS_UPDATED      CONSTANT VARCHAR2(70):= 'oracle.apps.okl.la.lease_contract.fee_passthrough_updated';
46    G_WF_EVT_SERV_FEXP_UPDATED     CONSTANT VARCHAR2(70):= 'oracle.apps.okl.la.lease_contract.service_fee_expense_updated';
47    G_WF_EVT_FEE_EXP_UPDATED       CONSTANT VARCHAR2(70):= 'oracle.apps.okl.la.lease_contract.fee_expense_updated';
48    G_WF_ITM_TERMS_ID CONSTANT VARCHAR2(30)           := 'TERMS_ID';
49    G_WF_ITM_SERV_CHR_ID  CONSTANT VARCHAR2(30)       := 'SERVICE_CONTRACT_ID';
50    G_WF_ITM_SERV_CLE_ID  CONSTANT VARCHAR2(30)       := 'SERVICE_CONTRACT_LINE_ID';
51 
52 
53 
54    /*
55    -- mvasudev, 09/09/2004
56    -- Added PROCEDURE to enable Business Event
57    */
58    -- Start of comments
59    --
60    -- Procedure Name  : raise_business_event
61    -- Description     : local_procedure, raises business event by making a call to
62    --                   okl_wf_pvt.raise_event
63    -- Business Rules  :
64    -- Parameters      :
65    -- Version         : 1.0
66    -- End of comments
67    PROCEDURE raise_business_event(
68         p_api_version      IN NUMBER
69        ,p_init_msg_list    IN VARCHAR2 DEFAULT OKC_API.G_FALSE
70 	      ,x_return_status    OUT NOCOPY VARCHAR2
71        ,x_msg_count        OUT NOCOPY NUMBER
72        ,x_msg_data         OUT NOCOPY VARCHAR2
73        ,p_event_name       IN WF_EVENTS.NAME%TYPE
74        ,p_event_param_list IN WF_PARAMETER_LIST_T
75     )IS
76 	    l_process VARCHAR2(20);
77      p_chr_id  okc_k_headers_b.id%TYPE;
78      l_parameter_list WF_PARAMETER_LIST_T := p_event_param_list;
79    BEGIN
80      p_chr_id := wf_event.GetValueForParameter(G_WF_ITM_CONTRACT_ID,p_event_param_list);
81      l_process := Okl_Lla_Util_Pvt.get_contract_process(p_chr_id);
82      wf_event.AddParameterToList(G_WF_ITM_CONTRACT_PROCESS,l_process,l_parameter_list);
83 
84      OKL_WF_PVT.raise_event (p_api_version    => p_api_version,
85                              p_init_msg_list  => p_init_msg_list,
86                              x_return_status  => x_return_status,
87                              x_msg_count      => x_msg_count,
88                              x_msg_data       => x_msg_data,
89                              p_event_name     => p_event_name,
90                              p_parameters     => l_parameter_list);
91    EXCEPTION
92    WHEN OTHERS THEN
93      x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
94      RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
95    END raise_business_event;
96    /*
97    -- mvasudev, 09/09/2004
98    -- END, PROCEDURE to enable Business Event
99    */
100 
101 -------------------------------------------------------------------------------------------------------
102   -- Local Procedure to migrate from Locally declared cvmv record type
103   -- to OKC cvmv declared record type
104  PROCEDURE migrate_version(p_from   IN cvmv_rec_type,
105                            p_to OUT NOCOPY OKC_VERSION_PUB.cvmv_rec_type) IS
106   BEGIN
107     p_to.chr_id := p_from.chr_id;
108     p_to.major_version := p_from.major_version;
109     p_to.minor_version := p_from.minor_version;
110     p_to.object_version_number := p_from.object_version_number;
111     p_to.created_by := p_from.created_by;
112     p_to.creation_date := p_from.creation_date;
113     p_to.last_updated_by := p_from.last_updated_by;
114     p_to.last_update_date := p_from.last_update_date;
115     p_to.last_update_login := p_from.last_update_login;
116   END migrate_version;
117 
118  PROCEDURE migrate_version(p_from   IN OKC_VERSION_PUB.cvmv_rec_type,
119                            p_to OUT NOCOPY cvmv_rec_type) IS
120   BEGIN
121     p_to.chr_id := p_from.chr_id;
122     p_to.major_version := p_from.major_version;
123     p_to.minor_version := p_from.minor_version;
124     p_to.object_version_number := p_from.object_version_number;
125     p_to.created_by := p_from.created_by;
126     p_to.creation_date := p_from.creation_date;
127     p_to.last_updated_by := p_from.last_updated_by;
128     p_to.last_update_date := p_from.last_update_date;
129     p_to.last_update_login := p_from.last_update_login;
130   END migrate_version;
131 ---------------------------------------------------------------------------------------------------
132   -- Local Procedure to migrate from Locally declared chrv record type
133   -- to OKC chrv declared record type
134   PROCEDURE migrate_chrv(p_from IN chrv_rec_type,
135                          p_to OUT NOCOPY OKC_CONTRACT_PUB.chrv_rec_type) IS
136   BEGIN
137     p_to.id := p_from.id;
138     p_to.contract_number := p_from.contract_number;
139     p_to.authoring_org_id := p_from.authoring_org_id;
140     p_to.contract_number_modifier := p_from.contract_number_modifier;
141     p_to.chr_id_response := p_from.chr_id_response;
142     p_to.chr_id_award := p_from.chr_id_award;
143     p_to.INV_ORGANIZATION_ID := p_from.INV_ORGANIZATION_ID;
144     p_to.sts_code := p_from.sts_code;
145     p_to.qcl_id := p_from.qcl_id;
146     p_to.scs_code := p_from.scs_code;
147     p_to.trn_code := p_from.trn_code;
148     p_to.currency_code := p_from.currency_code;
149     p_to.archived_yn := p_from.archived_yn;
150     p_to.deleted_yn := p_from.deleted_yn;
151     p_to.template_yn := p_from.template_yn;
152     p_to.chr_type := p_from.chr_type;
153     p_to.object_version_number := p_from.object_version_number;
154     p_to.created_by := p_from.created_by;
155     p_to.creation_date := p_from.creation_date;
156     p_to.last_updated_by := p_from.last_updated_by;
157     p_to.last_update_date := p_from.last_update_date;
158     p_to.cust_po_number_req_yn := p_from.cust_po_number_req_yn;
159     p_to.pre_pay_req_yn := p_from.pre_pay_req_yn;
160     p_to.cust_po_number := p_from.cust_po_number;
161     p_to.dpas_rating := p_from.dpas_rating;
162     p_to.template_used := p_from.template_used;
163     p_to.date_approved := p_from.date_approved;
164     p_to.datetime_cancelled := p_from.datetime_cancelled;
165     p_to.auto_renew_days := p_from.auto_renew_days;
166     p_to.date_issued := p_from.date_issued;
167     p_to.datetime_responded := p_from.datetime_responded;
168     p_to.rfp_type := p_from.rfp_type;
169     p_to.keep_on_mail_list := p_from.keep_on_mail_list;
170     p_to.set_aside_percent := p_from.set_aside_percent;
171     p_to.response_copies_req := p_from.response_copies_req;
172     p_to.date_close_projected := p_from.date_close_projected;
173     p_to.datetime_proposed := p_from.datetime_proposed;
174     p_to.date_signed := p_from.date_signed;
175     p_to.date_terminated := p_from.date_terminated;
176     p_to.date_renewed := p_from.date_renewed;
177     p_to.start_date := p_from.start_date;
178     p_to.end_date := p_from.end_date;
179     p_to.buy_or_sell := p_from.buy_or_sell;
180     p_to.issue_or_receive := p_from.issue_or_receive;
181     p_to.estimated_amount := p_from.estimated_amount;
182     p_to.estimated_amount_renewed := p_from.estimated_amount_renewed;
183     p_to.currency_code_renewed := p_from.currency_code_renewed;
184     p_to.last_update_login := p_from.last_update_login;
185     p_to.upg_orig_system_ref := p_from.upg_orig_system_ref;
186     p_to.upg_orig_system_ref_id := p_from.upg_orig_system_ref_id;
187     p_to.application_id := p_from.application_id;
188     p_to.orig_system_source_code := p_from.orig_system_source_code;
189     p_to.orig_system_id1 := p_from.orig_system_id1;
190     p_to.orig_system_reference1 := p_from.orig_system_reference1 ;
191     p_to.program_id            := p_from.program_id;
192     p_to.request_id            := p_from.request_id;
193     p_to.program_update_date   := p_from.program_update_date;
194     p_to.program_application_id  := p_from.program_application_id;
195     p_to.price_list_id         := p_from.price_list_id;
196     p_to.pricing_date          := p_from.pricing_date;
197     p_to.sign_by_date          := p_from.sign_by_date;
198     p_to.total_line_list_price   := p_from.total_line_list_price;
199     p_to.USER_ESTIMATED_AMOUNT   := p_from.USER_ESTIMATED_AMOUNT;
200     p_to.attribute_category := p_from.attribute_category;
201     p_to.attribute1 := p_from.attribute1;
202     p_to.attribute2 := p_from.attribute2;
203     p_to.attribute3 := p_from.attribute3;
204     p_to.attribute4 := p_from.attribute4;
205     p_to.attribute5 := p_from.attribute5;
206     p_to.attribute6 := p_from.attribute6;
207     p_to.attribute7 := p_from.attribute7;
208     p_to.attribute8 := p_from.attribute8;
209     p_to.attribute9 := p_from.attribute9;
210     p_to.attribute10 := p_from.attribute10;
211     p_to.attribute11 := p_from.attribute11;
212     p_to.attribute12 := p_from.attribute12;
213     p_to.attribute13 := p_from.attribute13;
214     p_to.attribute14 := p_from.attribute14;
215     p_to.attribute15 := p_from.attribute15;
216     p_to.sfwt_flag := p_from.sfwt_flag;
217     p_to.short_description := p_from.short_description;
218     p_to.comments := p_from.comments;
219     p_to.description := p_from.description;
220     p_to.cognomen := p_from.cognomen;
221     p_to.non_response_reason := p_from.non_response_reason;
222     p_to.non_response_explain := p_from.non_response_explain;
223     p_to.set_aside_reason := p_from.set_aside_reason;
224 -- rules migration changes
225 p_to.bill_to_site_use_id  := p_from.bill_to_site_use_id;
226 p_to.cust_acct_id         := p_from.cust_acct_id;
227 p_to.conversion_type      := p_from.conversion_type;
228 p_to.conversion_rate      := p_from.conversion_rate;
229 p_to.conversion_rate_date := p_from.conversion_rate_date;
230 p_to.conversion_euro_rate := p_from.conversion_euro_rate;
231 p_to.inv_rule_id          := p_from.inv_rule_id;
232 p_to.renewal_type_code    := p_from.renewal_type_code;
233 p_to.renewal_notify_to    := p_from.renewal_notify_to;
234 p_to.renewal_end_date     := p_from.renewal_end_date;
235 p_to.ship_to_site_use_id  := p_from.ship_to_site_use_id;
236 p_to.payment_term_id      := p_from.payment_term_id;
237 p_to.org_id               := p_from.authoring_org_id;  --MOAC
238 
239   END migrate_chrv;
240 ---------------------------------------------------------------------------------------------------
241   -- Local Procedure to migrate from OKC declared chrv record type
242   -- to Locally declared chrv record type
243   PROCEDURE migrate_chrv(p_from IN OKC_CONTRACT_PUB.chrv_rec_type,
244                                    p_to OUT NOCOPY chrv_rec_type ) IS
245   BEGIN
246     p_to.id := p_from.id;
247     p_to.contract_number := p_from.contract_number;
248     p_to.authoring_org_id := p_from.authoring_org_id;
249     p_to.contract_number_modifier := p_from.contract_number_modifier;
250     p_to.chr_id_response := p_from.chr_id_response;
251     p_to.chr_id_award := p_from.chr_id_award;
252     p_to.INV_ORGANIZATION_ID := p_from.INV_ORGANIZATION_ID;
253     p_to.sts_code := p_from.sts_code;
254     p_to.qcl_id := p_from.qcl_id;
255     p_to.scs_code := p_from.scs_code;
256     p_to.trn_code := p_from.trn_code;
257     p_to.currency_code := p_from.currency_code;
258     p_to.archived_yn := p_from.archived_yn;
259     p_to.deleted_yn := p_from.deleted_yn;
260     p_to.template_yn := p_from.template_yn;
261     p_to.chr_type := p_from.chr_type;
262     p_to.object_version_number := p_from.object_version_number;
263     p_to.created_by := p_from.created_by;
264     p_to.creation_date := p_from.creation_date;
265     p_to.last_updated_by := p_from.last_updated_by;
266     p_to.last_update_date := p_from.last_update_date;
267     p_to.cust_po_number_req_yn := p_from.cust_po_number_req_yn;
268     p_to.pre_pay_req_yn := p_from.pre_pay_req_yn;
269     p_to.cust_po_number := p_from.cust_po_number;
270     p_to.dpas_rating := p_from.dpas_rating;
271     p_to.template_used := p_from.template_used;
272     p_to.date_approved := p_from.date_approved;
273     p_to.datetime_cancelled := p_from.datetime_cancelled;
274     p_to.auto_renew_days := p_from.auto_renew_days;
275     p_to.date_issued := p_from.date_issued;
276     p_to.datetime_responded := p_from.datetime_responded;
277     p_to.rfp_type := p_from.rfp_type;
278     p_to.keep_on_mail_list := p_from.keep_on_mail_list;
279     p_to.set_aside_percent := p_from.set_aside_percent;
280     p_to.response_copies_req := p_from.response_copies_req;
281     p_to.date_close_projected := p_from.date_close_projected;
282     p_to.datetime_proposed := p_from.datetime_proposed;
283     p_to.date_signed := p_from.date_signed;
284     p_to.date_terminated := p_from.date_terminated;
285     p_to.date_renewed := p_from.date_renewed;
286     p_to.start_date := p_from.start_date;
287     p_to.end_date := p_from.end_date;
288     p_to.buy_or_sell := p_from.buy_or_sell;
289     p_to.issue_or_receive := p_from.issue_or_receive;
290     p_to.estimated_amount := p_from.estimated_amount;
291     p_to.estimated_amount_renewed := p_from.estimated_amount_renewed;
292     p_to.currency_code_renewed := p_from.currency_code_renewed;
293     p_to.last_update_login := p_from.last_update_login;
294     p_to.upg_orig_system_ref := p_from.upg_orig_system_ref;
295     p_to.upg_orig_system_ref_id := p_from.upg_orig_system_ref_id;
296     p_to.application_id := p_from.application_id;
297     p_to.orig_system_source_code := p_from.orig_system_source_code;
298     p_to.orig_system_id1 := p_from.orig_system_id1;
299     p_to.orig_system_reference1 := p_from.orig_system_reference1 ;
300     p_to.program_id            := p_from.program_id;
301     p_to.request_id            := p_from.request_id;
302     p_to.program_update_date   := p_from.program_update_date;
303     p_to.program_application_id  := p_from.program_application_id;
304     p_to.price_list_id         := p_from.price_list_id;
305     p_to.pricing_date          := p_from.pricing_date;
306     p_to.sign_by_date          := p_from.sign_by_date;
307     p_to.total_line_list_price   := p_from.total_line_list_price;
308     p_to.USER_ESTIMATED_AMOUNT   := p_from.USER_ESTIMATED_AMOUNT;
309     p_to.attribute_category := p_from.attribute_category;
310     p_to.attribute1 := p_from.attribute1;
311     p_to.attribute2 := p_from.attribute2;
312     p_to.attribute3 := p_from.attribute3;
313     p_to.attribute4 := p_from.attribute4;
314     p_to.attribute5 := p_from.attribute5;
315     p_to.attribute6 := p_from.attribute6;
316     p_to.attribute7 := p_from.attribute7;
317     p_to.attribute8 := p_from.attribute8;
318     p_to.attribute9 := p_from.attribute9;
319     p_to.attribute10 := p_from.attribute10;
320     p_to.attribute11 := p_from.attribute11;
321     p_to.attribute12 := p_from.attribute12;
322     p_to.attribute13 := p_from.attribute13;
323     p_to.attribute14 := p_from.attribute14;
324     p_to.attribute15 := p_from.attribute15;
325     p_to.sfwt_flag := p_from.sfwt_flag;
326     p_to.short_description := p_from.short_description;
327     p_to.comments := p_from.comments;
328     p_to.description := p_from.description;
329     p_to.cognomen := p_from.cognomen;
330     p_to.non_response_reason := p_from.non_response_reason;
331     p_to.non_response_explain := p_from.non_response_explain;
332     p_to.set_aside_reason := p_from.set_aside_reason;
333 -- rules migration changes
334 p_to.bill_to_site_use_id  := p_from.bill_to_site_use_id;
335 p_to.cust_acct_id         := p_from.cust_acct_id;
336 p_to.conversion_type      := p_from.conversion_type;
337 p_to.conversion_rate      := p_from.conversion_rate;
338 p_to.conversion_rate_date := p_from.conversion_rate_date;
339 p_to.conversion_euro_rate := p_from.conversion_euro_rate;
340 p_to.inv_rule_id          := p_from.inv_rule_id;
341 p_to.renewal_type_code    := p_from.renewal_type_code;
342 p_to.renewal_notify_to    := p_from.renewal_notify_to;
343 p_to.renewal_end_date     := p_from.renewal_end_date;
344 p_to.ship_to_site_use_id  := p_from.ship_to_site_use_id;
345 p_to.payment_term_id      := p_from.payment_term_id;
346 
347 END migrate_chrv;
348 -----------------------------------------------------------------------------------------------------------
349   -- Local Procedure to migrate from Locally declared clev record type
350   -- to OKC clev declared record type
351   PROCEDURE migrate_clev(p_from IN clev_rec_type,
352                                   p_to OUT NOCOPY OKC_CONTRACT_PUB.clev_rec_type) IS
353   BEGIN
354     p_to.id := p_from.id;
355     p_to.line_number := p_from.line_number;
356     p_to.chr_id := p_from.chr_id;
357     p_to.cle_id := p_from.cle_id;
358     p_to.dnz_chr_id := p_from.dnz_chr_id;
359     p_to.display_sequence := p_from.display_sequence;
360     p_to.sts_code := p_from.sts_code;
361     p_to.trn_code := p_from.trn_code;
362     p_to.lse_id := p_from.lse_id;
363     p_to.exception_yn := p_from.exception_yn;
364     p_to.object_version_number := p_from.object_version_number;
365     p_to.created_by := p_from.created_by;
366     p_to.creation_date := p_from.creation_date;
367     p_to.last_updated_by := p_from.last_updated_by;
368     p_to.last_update_date := p_from.last_update_date;
369     p_to.hidden_ind := p_from.hidden_ind;
370     p_to.price_unit := p_from.price_unit;
371     p_to.price_unit_percent := p_from.price_unit_percent;
372     p_to.price_negotiated := p_from.price_negotiated;
373     p_to.price_negotiated_renewed := p_from.price_negotiated_renewed;
374     p_to.price_level_ind := p_from.price_level_ind;
375     p_to.invoice_line_level_ind := p_from.invoice_line_level_ind;
376     p_to.dpas_rating := p_from.dpas_rating;
377     p_to.template_used := p_from.template_used;
378     p_to.price_type := p_from.price_type;
379     p_to.currency_code := p_from.currency_code;
380     p_to.currency_code_renewed := p_from.currency_code_renewed;
381     p_to.last_update_login := p_from.last_update_login;
382     p_to.date_terminated := p_from.date_terminated;
383     p_to.start_date := p_from.start_date;
384     p_to.end_date := p_from.end_date;
385     p_to.date_renewed := p_from.date_renewed;
386     p_to.upg_orig_system_ref := p_from.upg_orig_system_ref;
387     p_to.upg_orig_system_ref_id := p_from.upg_orig_system_ref_id;
388     p_to.orig_system_source_code := p_from.orig_system_source_code;
389     p_to.orig_system_id1 :=p_from.orig_system_id1 ;
390     p_to.orig_system_reference1 := p_from.orig_system_reference1 ;
391     p_to.request_id                := p_from.request_id;
392     p_to.program_application_id    := p_from.program_application_id;
393     p_to.program_id                := p_from.program_id;
394     p_to.program_update_date       := p_from.program_update_date;
395     p_to.price_list_id             := p_from.price_list_id;
396     p_to.pricing_date              := p_from.pricing_date;
397     p_to.price_list_line_id        := p_from.price_list_line_id;
398     p_to.line_list_price           := p_from.line_list_price;
399     p_to.item_to_price_yn          := p_from.item_to_price_yn;
400     p_to.price_basis_yn            := p_from.price_basis_yn;
401     p_to.config_header_id          := p_from.config_header_id;
402     p_to.config_revision_number    := p_from.config_revision_number;
403     p_to.config_complete_yn        := p_from.config_complete_yn;
404     p_to.config_valid_yn           := p_from.config_valid_yn;
405     p_to.config_top_model_line_id  := p_from.config_top_model_line_id;
406     p_to.config_item_type          := p_from.config_item_type;
407 ---Bug.No.-1942374
408     p_to.CONFIG_ITEM_ID          := p_from.CONFIG_ITEM_ID;
409 ---Bug.No.-1942374
410     p_to.attribute_category := p_from.attribute_category;
411     p_to.attribute1 := p_from.attribute1;
412     p_to.attribute2 := p_from.attribute2;
413     p_to.attribute3 := p_from.attribute3;
414     p_to.attribute4 := p_from.attribute4;
415     p_to.attribute5 := p_from.attribute5;
416     p_to.attribute6 := p_from.attribute6;
417     p_to.attribute7 := p_from.attribute7;
418     p_to.attribute8 := p_from.attribute8;
419     p_to.attribute9 := p_from.attribute9;
420     p_to.attribute10 := p_from.attribute10;
421     p_to.attribute11 := p_from.attribute11;
422     p_to.attribute12 := p_from.attribute12;
423     p_to.attribute13 := p_from.attribute13;
424     p_to.attribute14 := p_from.attribute14;
425     p_to.attribute15 := p_from.attribute15;
426     p_to.sfwt_flag := p_from.sfwt_flag;
427     p_to.name := p_from.name;
428     p_to.comments := p_from.comments;
429     p_to.item_description := p_from.item_description;
430     p_to.oke_boe_description := p_from.oke_boe_description;
431     p_to.cognomen := p_from.cognomen;
432     p_to.block23text := p_from.block23text;
433 -- rules migration changes
434 p_to.cust_acct_id         := p_from.cust_acct_id;
435 p_to.bill_to_site_use_id  := p_from.bill_to_site_use_id;
436 p_to.inv_rule_id          := p_from.inv_rule_id;
437 p_to.line_renewal_type_code    := p_from.line_renewal_type_code;
438 p_to.ship_to_site_use_id  := p_from.ship_to_site_use_id;
439 p_to.payment_term_id      := p_from.payment_term_id;
440 
441 
442 END migrate_clev;
443 -----------------------------------------------------------------------------------------------------------
444   -- Local Procedure to migrate from OKC declared clev record type
445   -- to Locally declared clev record type
446   PROCEDURE migrate_clev(p_from IN OKC_CONTRACT_PUB.clev_rec_type,
447                                   p_to OUT NOCOPY clev_rec_type) IS
448   BEGIN
449     p_to.id := p_from.id;
450     p_to.line_number := p_from.line_number;
451     p_to.chr_id := p_from.chr_id;
452     p_to.cle_id := p_from.cle_id;
453     p_to.dnz_chr_id := p_from.dnz_chr_id;
454     p_to.display_sequence := p_from.display_sequence;
455     p_to.sts_code := p_from.sts_code;
456     p_to.trn_code := p_from.trn_code;
457     p_to.lse_id := p_from.lse_id;
458     p_to.exception_yn := p_from.exception_yn;
459     p_to.object_version_number := p_from.object_version_number;
460     p_to.created_by := p_from.created_by;
461     p_to.creation_date := p_from.creation_date;
462     p_to.last_updated_by := p_from.last_updated_by;
463     p_to.last_update_date := p_from.last_update_date;
464     p_to.hidden_ind := p_from.hidden_ind;
465     p_to.price_unit := p_from.price_unit;
466     p_to.price_unit_percent := p_from.price_unit_percent;
467     p_to.price_negotiated := p_from.price_negotiated;
468     p_to.price_negotiated_renewed := p_from.price_negotiated_renewed;
469     p_to.price_level_ind := p_from.price_level_ind;
470     p_to.invoice_line_level_ind := p_from.invoice_line_level_ind;
471     p_to.dpas_rating := p_from.dpas_rating;
472     p_to.template_used := p_from.template_used;
473     p_to.price_type := p_from.price_type;
474     p_to.currency_code := p_from.currency_code;
475     p_to.currency_code_renewed := p_from.currency_code_renewed;
476     p_to.last_update_login := p_from.last_update_login;
477     p_to.date_terminated := p_from.date_terminated;
478     p_to.start_date := p_from.start_date;
479     p_to.end_date := p_from.end_date;
480     p_to.date_renewed := p_from.date_renewed;
481     p_to.upg_orig_system_ref := p_from.upg_orig_system_ref;
482     p_to.upg_orig_system_ref_id := p_from.upg_orig_system_ref_id;
483     p_to.orig_system_source_code := p_from.orig_system_source_code;
484     p_to.orig_system_id1 :=p_from.orig_system_id1 ;
485     p_to.orig_system_reference1 := p_from.orig_system_reference1 ;
486     p_to.request_id                := p_from.request_id;
487     p_to.program_application_id    := p_from.program_application_id;
488     p_to.program_id                := p_from.program_id;
489     p_to.program_update_date       := p_from.program_update_date;
490     p_to.price_list_id             := p_from.price_list_id;
491     p_to.pricing_date              := p_from.pricing_date;
492     p_to.price_list_line_id        := p_from.price_list_line_id;
493     p_to.line_list_price           := p_from.line_list_price;
494     p_to.item_to_price_yn          := p_from.item_to_price_yn;
495     p_to.price_basis_yn            := p_from.price_basis_yn;
496     p_to.config_header_id          := p_from.config_header_id;
497     p_to.config_revision_number    := p_from.config_revision_number;
498     p_to.config_complete_yn        := p_from.config_complete_yn;
499     p_to.config_valid_yn           := p_from.config_valid_yn;
500     p_to.config_top_model_line_id  := p_from.config_top_model_line_id;
501     p_to.config_item_type          := p_from.config_item_type;
502 ---Bug.No.-1942374
503     p_to.CONFIG_ITEM_ID          := p_from.CONFIG_ITEM_ID;
504 ---Bug.No.-1942374
505     p_to.attribute_category := p_from.attribute_category;
506     p_to.attribute1 := p_from.attribute1;
507     p_to.attribute2 := p_from.attribute2;
508     p_to.attribute3 := p_from.attribute3;
509     p_to.attribute4 := p_from.attribute4;
510     p_to.attribute5 := p_from.attribute5;
511     p_to.attribute6 := p_from.attribute6;
512     p_to.attribute7 := p_from.attribute7;
513     p_to.attribute8 := p_from.attribute8;
514     p_to.attribute9 := p_from.attribute9;
515     p_to.attribute10 := p_from.attribute10;
516     p_to.attribute11 := p_from.attribute11;
517     p_to.attribute12 := p_from.attribute12;
518     p_to.attribute13 := p_from.attribute13;
519     p_to.attribute14 := p_from.attribute14;
520     p_to.attribute15 := p_from.attribute15;
521     p_to.sfwt_flag := p_from.sfwt_flag;
522     p_to.name := p_from.name;
523     p_to.comments := p_from.comments;
524     p_to.item_description := p_from.item_description;
525     p_to.oke_boe_description := p_from.oke_boe_description;
526     p_to.cognomen := p_from.cognomen;
527     p_to.block23text := p_from.block23text;
528 -- rules migration changes
529 p_to.cust_acct_id         := p_from.cust_acct_id;
530 p_to.bill_to_site_use_id  := p_from.bill_to_site_use_id;
531 p_to.inv_rule_id          := p_from.inv_rule_id;
532 p_to.line_renewal_type_code    := p_from.line_renewal_type_code;
533 p_to.ship_to_site_use_id  := p_from.ship_to_site_use_id;
534 p_to.payment_term_id      := p_from.payment_term_id;
535 END migrate_clev;
536 -------------------------------------------------------------------------------------------------------
537   -- Local Procedure to migrate from Locally declared cimv record type
538   -- to OKC cimv declared record type
539 PROCEDURE migrate_okl_okc_item(p_cimv_rec_type IN cimv_rec_type,
540                                  x_cimv_rec_type OUT NOCOPY OKC_CONTRACT_ITEM_PUB.cimv_rec_type) IS
541 
542 BEGIN
543     x_cimv_rec_type.id := p_cimv_rec_type.id;
544     x_cimv_rec_type.cle_id := p_cimv_rec_type.cle_id;
545     x_cimv_rec_type.chr_id := p_cimv_rec_type.chr_id;
546     x_cimv_rec_type.cle_id_for := p_cimv_rec_type.cle_id_for;
547     x_cimv_rec_type.dnz_chr_id := p_cimv_rec_type.dnz_chr_id;
548     x_cimv_rec_type.object1_id1 := p_cimv_rec_type.object1_id1;
549     x_cimv_rec_type.object1_id2 := p_cimv_rec_type.object1_id2;
550     x_cimv_rec_type.jtot_object1_code := p_cimv_rec_type.jtot_object1_code;
551     x_cimv_rec_type.uom_code := p_cimv_rec_type.uom_code;
552     x_cimv_rec_type.exception_yn := p_cimv_rec_type.exception_yn;
553     x_cimv_rec_type.number_of_items := p_cimv_rec_type.number_of_items;
554     x_cimv_rec_type.upg_orig_system_ref := p_cimv_rec_type.upg_orig_system_ref;
555     x_cimv_rec_type.upg_orig_system_ref_id := p_cimv_rec_type.upg_orig_system_ref_id;
556     x_cimv_rec_type.priced_item_yn := p_cimv_rec_type.priced_item_yn;
557     x_cimv_rec_type.object_version_number := p_cimv_rec_type.object_version_number;
558     x_cimv_rec_type.created_by := p_cimv_rec_type.created_by;
559     x_cimv_rec_type.creation_date := p_cimv_rec_type.creation_date;
560     x_cimv_rec_type.last_updated_by := p_cimv_rec_type.last_updated_by;
561     x_cimv_rec_type.last_update_date := p_cimv_rec_type.last_update_date;
562     x_cimv_rec_type.last_update_login := p_cimv_rec_type.last_update_login;
563   END migrate_okl_okc_item;
564 -------------------------------------------------------------------------------------------------------
565   -- Local Procedure to migrate from OKC declared cimv record type
566   -- to Locally declared cimv record type
567   PROCEDURE migrate_okc_okl_item(p_cimv_rec_type IN OKC_CONTRACT_ITEM_PUB.cimv_rec_type,
568                                  x_cimv_rec_type OUT NOCOPY cimv_rec_type) IS
569   BEGIN
570     x_cimv_rec_type.id := p_cimv_rec_type.id;
571     x_cimv_rec_type.cle_id := p_cimv_rec_type.cle_id;
572     x_cimv_rec_type.chr_id := p_cimv_rec_type.chr_id;
573     x_cimv_rec_type.cle_id_for := p_cimv_rec_type.cle_id_for;
574     x_cimv_rec_type.dnz_chr_id := p_cimv_rec_type.dnz_chr_id;
575     x_cimv_rec_type.object1_id1 := p_cimv_rec_type.object1_id1;
576     x_cimv_rec_type.object1_id2 := p_cimv_rec_type.object1_id2;
577     x_cimv_rec_type.jtot_object1_code := p_cimv_rec_type.jtot_object1_code;
578     x_cimv_rec_type.uom_code := p_cimv_rec_type.uom_code;
579     x_cimv_rec_type.exception_yn := p_cimv_rec_type.exception_yn;
580     x_cimv_rec_type.number_of_items := p_cimv_rec_type.number_of_items;
581     x_cimv_rec_type.upg_orig_system_ref := p_cimv_rec_type.upg_orig_system_ref;
582     x_cimv_rec_type.upg_orig_system_ref_id := p_cimv_rec_type.upg_orig_system_ref_id;
583     x_cimv_rec_type.priced_item_yn := p_cimv_rec_type.priced_item_yn;
584     x_cimv_rec_type.object_version_number := p_cimv_rec_type.object_version_number;
585     x_cimv_rec_type.created_by := p_cimv_rec_type.created_by;
586     x_cimv_rec_type.creation_date := p_cimv_rec_type.creation_date;
587     x_cimv_rec_type.last_updated_by := p_cimv_rec_type.last_updated_by;
588     x_cimv_rec_type.last_update_date := p_cimv_rec_type.last_update_date;
589     x_cimv_rec_type.last_update_login := p_cimv_rec_type.last_update_login;
590   END migrate_okc_okl_item;
591 ---------------------------------------------------------------------------------------------------
592   -- Local Procedure to migrate from Locally declared cplv record type
593   -- to OKC cplv declared record type
594   PROCEDURE migrate_okl_okc_party(p_cplv_rec_type IN cplv_rec_type,
595                                   x_cplv_rec_type OUT NOCOPY OKC_CONTRACT_PARTY_PUB.cplv_rec_type) IS
596   BEGIN
597     x_cplv_rec_type.id := p_cplv_rec_type.id;
598     x_cplv_rec_type.cpl_id := p_cplv_rec_type.cpl_id;
599     x_cplv_rec_type.chr_id := p_cplv_rec_type.chr_id;
600     x_cplv_rec_type.cle_id := p_cplv_rec_type.cle_id;
601     x_cplv_rec_type.dnz_chr_id := p_cplv_rec_type.dnz_chr_id;
602     x_cplv_rec_type.rle_code := p_cplv_rec_type.rle_code;
603     x_cplv_rec_type.object1_id1 := p_cplv_rec_type.object1_id1;
604     x_cplv_rec_type.object1_id2 := p_cplv_rec_type.object1_id2;
605     x_cplv_rec_type.JTOT_OBJECT1_CODE := p_cplv_rec_type.JTOT_OBJECT1_CODE;
606     x_cplv_rec_type.object_version_number := p_cplv_rec_type.object_version_number;
607     x_cplv_rec_type.created_by := p_cplv_rec_type.created_by;
608     x_cplv_rec_type.creation_date := p_cplv_rec_type.creation_date;
609     x_cplv_rec_type.last_updated_by := p_cplv_rec_type.last_updated_by;
610     x_cplv_rec_type.last_update_date := p_cplv_rec_type.last_update_date;
611     x_cplv_rec_type.code := p_cplv_rec_type.code;
612     x_cplv_rec_type.facility := p_cplv_rec_type.facility;
613     x_cplv_rec_type.minority_group_lookup_code := p_cplv_rec_type.minority_group_lookup_code;
614     x_cplv_rec_type.small_business_flag := p_cplv_rec_type.small_business_flag;
615     x_cplv_rec_type.women_owned_flag := p_cplv_rec_type.women_owned_flag;
616     x_cplv_rec_type.last_update_login := p_cplv_rec_type.last_update_login;
617     x_cplv_rec_type.attribute_category := p_cplv_rec_type.attribute_category;
618     x_cplv_rec_type.attribute1 := p_cplv_rec_type.attribute1;
619     x_cplv_rec_type.attribute2 := p_cplv_rec_type.attribute2;
620     x_cplv_rec_type.attribute3 := p_cplv_rec_type.attribute3;
621     x_cplv_rec_type.attribute4 := p_cplv_rec_type.attribute4;
622     x_cplv_rec_type.attribute5 := p_cplv_rec_type.attribute5;
623     x_cplv_rec_type.attribute6 := p_cplv_rec_type.attribute6;
624     x_cplv_rec_type.attribute7 := p_cplv_rec_type.attribute7;
625     x_cplv_rec_type.attribute8 := p_cplv_rec_type.attribute8;
626     x_cplv_rec_type.attribute9 := p_cplv_rec_type.attribute9;
627     x_cplv_rec_type.attribute10 := p_cplv_rec_type.attribute10;
628     x_cplv_rec_type.attribute11 := p_cplv_rec_type.attribute11;
629     x_cplv_rec_type.attribute12 := p_cplv_rec_type.attribute12;
630     x_cplv_rec_type.attribute13 := p_cplv_rec_type.attribute13;
631     x_cplv_rec_type.attribute14 := p_cplv_rec_type.attribute14;
632     x_cplv_rec_type.attribute15 := p_cplv_rec_type.attribute15;
633     x_cplv_rec_type.sfwt_flag := p_cplv_rec_type.sfwt_flag;
634     x_cplv_rec_type.cognomen := p_cplv_rec_type.cognomen;
635     x_cplv_rec_type.alias := p_cplv_rec_type.alias;
636 -- rules migration changes
637 x_cplv_rec_type.bill_to_site_use_id  := p_cplv_rec_type.bill_to_site_use_id;
638 x_cplv_rec_type.cust_acct_id         := p_cplv_rec_type.cust_acct_id;
639 
640 END migrate_okl_okc_party;
641 -------------------------------------------------------------------------------------------------------
642   -- Local Procedure to migrate from OKC declared cplv record type
643   -- to Locally declared cplv record type
644   PROCEDURE migrate_okc_okl_party(p_cplv_rec_type IN OKC_CONTRACT_PARTY_PUB.cplv_rec_type,
645                                   x_cplv_rec_type OUT NOCOPY cplv_rec_type) IS
646   BEGIN
647     x_cplv_rec_type.id := p_cplv_rec_type.id;
648     x_cplv_rec_type.cpl_id := p_cplv_rec_type.cpl_id;
649     x_cplv_rec_type.chr_id := p_cplv_rec_type.chr_id;
650     x_cplv_rec_type.cle_id := p_cplv_rec_type.cle_id;
651     x_cplv_rec_type.dnz_chr_id := p_cplv_rec_type.dnz_chr_id;
652     x_cplv_rec_type.rle_code := p_cplv_rec_type.rle_code;
653     x_cplv_rec_type.object1_id1 := p_cplv_rec_type.object1_id1;
654     x_cplv_rec_type.object1_id2 := p_cplv_rec_type.object1_id2;
655     x_cplv_rec_type.JTOT_OBJECT1_CODE := p_cplv_rec_type.JTOT_OBJECT1_CODE;
656     x_cplv_rec_type.object_version_number := p_cplv_rec_type.object_version_number;
657     x_cplv_rec_type.created_by := p_cplv_rec_type.created_by;
658     x_cplv_rec_type.creation_date := p_cplv_rec_type.creation_date;
659     x_cplv_rec_type.last_updated_by := p_cplv_rec_type.last_updated_by;
660     x_cplv_rec_type.last_update_date := p_cplv_rec_type.last_update_date;
661     x_cplv_rec_type.code := p_cplv_rec_type.code;
662     x_cplv_rec_type.facility := p_cplv_rec_type.facility;
663     x_cplv_rec_type.minority_group_lookup_code := p_cplv_rec_type.minority_group_lookup_code;
664     x_cplv_rec_type.small_business_flag := p_cplv_rec_type.small_business_flag;
665     x_cplv_rec_type.women_owned_flag := p_cplv_rec_type.women_owned_flag;
666     x_cplv_rec_type.last_update_login := p_cplv_rec_type.last_update_login;
667     x_cplv_rec_type.attribute_category := p_cplv_rec_type.attribute_category;
668     x_cplv_rec_type.attribute1 := p_cplv_rec_type.attribute1;
669     x_cplv_rec_type.attribute2 := p_cplv_rec_type.attribute2;
670     x_cplv_rec_type.attribute3 := p_cplv_rec_type.attribute3;
671     x_cplv_rec_type.attribute4 := p_cplv_rec_type.attribute4;
672     x_cplv_rec_type.attribute5 := p_cplv_rec_type.attribute5;
673     x_cplv_rec_type.attribute6 := p_cplv_rec_type.attribute6;
674     x_cplv_rec_type.attribute7 := p_cplv_rec_type.attribute7;
675     x_cplv_rec_type.attribute8 := p_cplv_rec_type.attribute8;
676     x_cplv_rec_type.attribute9 := p_cplv_rec_type.attribute9;
677     x_cplv_rec_type.attribute10 := p_cplv_rec_type.attribute10;
678     x_cplv_rec_type.attribute11 := p_cplv_rec_type.attribute11;
679     x_cplv_rec_type.attribute12 := p_cplv_rec_type.attribute12;
680     x_cplv_rec_type.attribute13 := p_cplv_rec_type.attribute13;
681     x_cplv_rec_type.attribute14 := p_cplv_rec_type.attribute14;
682     x_cplv_rec_type.attribute15 := p_cplv_rec_type.attribute15;
683     x_cplv_rec_type.sfwt_flag := p_cplv_rec_type.sfwt_flag;
684     x_cplv_rec_type.cognomen := p_cplv_rec_type.cognomen;
685     x_cplv_rec_type.alias := p_cplv_rec_type.alias;
686 -- rules migration changes
687 x_cplv_rec_type.bill_to_site_use_id  := p_cplv_rec_type.bill_to_site_use_id;
688 x_cplv_rec_type.cust_acct_id         := p_cplv_rec_type.cust_acct_id;
689 END migrate_okc_okl_party;
690 -- Badriath Kuchibhotla
691 -------------------------------------------------------------------------------------------------------
692   -- Local Procedure to migrate from Locally declared gvev record type
693   -- to OKC gvev declared record type
694   PROCEDURE migrate_gvev(p_from IN gvev_rec_type,
695                                         p_to OUT NOCOPY OKC_CONTRACT_PUB.gvev_rec_type) IS
696   BEGIN
697     p_to.id := p_from.id;
698     p_to.dnz_chr_id := p_from.dnz_chr_id;
699     p_to.chr_id := p_from.chr_id;
700     p_to.cle_id := p_from.cle_id;
701     p_to.chr_id_referred := p_from.chr_id_referred;
702     p_to.cle_id_referred := p_from.cle_id_referred;
703     p_to.isa_agreement_id := p_from.isa_agreement_id;
704     p_to.copied_only_yn := p_from.copied_only_yn;
705     p_to.object_version_number := p_from.object_version_number;
706     p_to.created_by := p_from.created_by;
707     p_to.creation_date := p_from.creation_date;
708     p_to.last_updated_by := p_from.last_updated_by;
709     p_to.last_update_date := p_from.last_update_date;
710     p_to.last_update_login := p_from.last_update_login;
711   END migrate_gvev;
712 -------------------------------------------------------------------------------------------------------
713   -- Local Procedure to migrate from OKC declared gvev record type
714   -- to Locally declared gvev record type
715   PROCEDURE migrate_gvev(p_from IN OKC_CONTRACT_PUB.gvev_rec_type,
716                          p_to OUT NOCOPY gvev_rec_type) IS
717   BEGIN
718     p_to.id := p_from.id;
719     p_to.dnz_chr_id := p_from.dnz_chr_id;
720     p_to.chr_id := p_from.chr_id;
721     p_to.cle_id := p_from.cle_id;
722     p_to.chr_id_referred := p_from.chr_id_referred;
723     p_to.cle_id_referred := p_from.cle_id_referred;
724     p_to.isa_agreement_id := p_from.isa_agreement_id;
725     p_to.copied_only_yn := p_from.copied_only_yn;
726     p_to.object_version_number := p_from.object_version_number;
727     p_to.created_by := p_from.created_by;
728     p_to.creation_date := p_from.creation_date;
729     p_to.last_updated_by := p_from.last_updated_by;
730     p_to.last_update_date := p_from.last_update_date;
731     p_to.last_update_login := p_from.last_update_login;
732   END migrate_gvev;
733 ---------------------------------------------------------------------------------------------------
734   -- Local Procedure to migrate from Locally declared ctcv record type
735   -- to OKC ctcv declared record type
736   PROCEDURE migrate_okl_okc_contact(p_ctcv_rec_type IN ctcv_rec_type,
737                                      x_ctcv_rec_type OUT NOCOPY OKC_CONTRACT_PARTY_PUB.ctcv_rec_type) IS
738   BEGIN
739     x_ctcv_rec_type.id := p_ctcv_rec_type.id;
740     x_ctcv_rec_type.cpl_id := p_ctcv_rec_type.cpl_id;
741     x_ctcv_rec_type.cro_code := p_ctcv_rec_type.cro_code;
742     x_ctcv_rec_type.dnz_chr_id := p_ctcv_rec_type.dnz_chr_id;
743     x_ctcv_rec_type.object1_id1 := p_ctcv_rec_type.object1_id1;
744     x_ctcv_rec_type.object1_id2 := p_ctcv_rec_type.object1_id2;
745     x_ctcv_rec_type.JTOT_OBJECT1_CODE := p_ctcv_rec_type.JTOT_OBJECT1_CODE;
746     x_ctcv_rec_type.object_version_number := p_ctcv_rec_type.object_version_number;
747     x_ctcv_rec_type.created_by := p_ctcv_rec_type.created_by;
748     x_ctcv_rec_type.creation_date := p_ctcv_rec_type.creation_date;
749     x_ctcv_rec_type.last_updated_by := p_ctcv_rec_type.last_updated_by;
750     x_ctcv_rec_type.last_update_date := p_ctcv_rec_type.last_update_date;
751     x_ctcv_rec_type.contact_sequence := p_ctcv_rec_type.contact_sequence;
752     x_ctcv_rec_type.last_update_login := p_ctcv_rec_type.last_update_login;
753     x_ctcv_rec_type.attribute_category := p_ctcv_rec_type.attribute_category;
754     x_ctcv_rec_type.attribute1 := p_ctcv_rec_type.attribute1;
755     x_ctcv_rec_type.attribute2 := p_ctcv_rec_type.attribute2;
756     x_ctcv_rec_type.attribute3 := p_ctcv_rec_type.attribute3;
757     x_ctcv_rec_type.attribute4 := p_ctcv_rec_type.attribute4;
758     x_ctcv_rec_type.attribute5 := p_ctcv_rec_type.attribute5;
759     x_ctcv_rec_type.attribute6 := p_ctcv_rec_type.attribute6;
760     x_ctcv_rec_type.attribute7 := p_ctcv_rec_type.attribute7;
761     x_ctcv_rec_type.attribute8 := p_ctcv_rec_type.attribute8;
762     x_ctcv_rec_type.attribute9 := p_ctcv_rec_type.attribute9;
763     x_ctcv_rec_type.attribute10 := p_ctcv_rec_type.attribute10;
764     x_ctcv_rec_type.attribute11 := p_ctcv_rec_type.attribute11;
765     x_ctcv_rec_type.attribute12 := p_ctcv_rec_type.attribute12;
766     x_ctcv_rec_type.attribute13 := p_ctcv_rec_type.attribute13;
767     x_ctcv_rec_type.attribute14 := p_ctcv_rec_type.attribute14;
768     x_ctcv_rec_type.attribute15 := p_ctcv_rec_type.attribute15;
769     x_ctcv_rec_type.start_date := p_ctcv_rec_type.start_date;
770     x_ctcv_rec_type.end_date := p_ctcv_rec_type.end_date;
771   END migrate_okl_okc_contact;
772 ---------------------------------------------------------------------------------------------------
773   -- Local Procedure to migrate from Locally declared ctcv record type
774   -- to OKC ctcv declared record type
775   PROCEDURE migrate_okc_okl_contact(p_ctcv_rec_type IN OKC_CONTRACT_PARTY_PUB.ctcv_rec_type,
776                                      x_ctcv_rec_type OUT NOCOPY ctcv_rec_type) IS
777   BEGIN
778     x_ctcv_rec_type.id := p_ctcv_rec_type.id;
779     x_ctcv_rec_type.cpl_id := p_ctcv_rec_type.cpl_id;
780     x_ctcv_rec_type.cro_code := p_ctcv_rec_type.cro_code;
781     x_ctcv_rec_type.dnz_chr_id := p_ctcv_rec_type.dnz_chr_id;
782     x_ctcv_rec_type.object1_id1 := p_ctcv_rec_type.object1_id1;
783     x_ctcv_rec_type.object1_id2 := p_ctcv_rec_type.object1_id2;
784     x_ctcv_rec_type.JTOT_OBJECT1_CODE := p_ctcv_rec_type.JTOT_OBJECT1_CODE;
785     x_ctcv_rec_type.object_version_number := p_ctcv_rec_type.object_version_number;
786     x_ctcv_rec_type.created_by := p_ctcv_rec_type.created_by;
787     x_ctcv_rec_type.creation_date := p_ctcv_rec_type.creation_date;
788     x_ctcv_rec_type.last_updated_by := p_ctcv_rec_type.last_updated_by;
789     x_ctcv_rec_type.last_update_date := p_ctcv_rec_type.last_update_date;
790     x_ctcv_rec_type.contact_sequence := p_ctcv_rec_type.contact_sequence;
791     x_ctcv_rec_type.last_update_login := p_ctcv_rec_type.last_update_login;
792     x_ctcv_rec_type.attribute_category := p_ctcv_rec_type.attribute_category;
793     x_ctcv_rec_type.attribute1 := p_ctcv_rec_type.attribute1;
794     x_ctcv_rec_type.attribute2 := p_ctcv_rec_type.attribute2;
795     x_ctcv_rec_type.attribute3 := p_ctcv_rec_type.attribute3;
796     x_ctcv_rec_type.attribute4 := p_ctcv_rec_type.attribute4;
797     x_ctcv_rec_type.attribute5 := p_ctcv_rec_type.attribute5;
798     x_ctcv_rec_type.attribute6 := p_ctcv_rec_type.attribute6;
799     x_ctcv_rec_type.attribute7 := p_ctcv_rec_type.attribute7;
800     x_ctcv_rec_type.attribute8 := p_ctcv_rec_type.attribute8;
801     x_ctcv_rec_type.attribute9 := p_ctcv_rec_type.attribute9;
802     x_ctcv_rec_type.attribute10 := p_ctcv_rec_type.attribute10;
803     x_ctcv_rec_type.attribute11 := p_ctcv_rec_type.attribute11;
804     x_ctcv_rec_type.attribute12 := p_ctcv_rec_type.attribute12;
805     x_ctcv_rec_type.attribute13 := p_ctcv_rec_type.attribute13;
806     x_ctcv_rec_type.attribute14 := p_ctcv_rec_type.attribute14;
807     x_ctcv_rec_type.attribute15 := p_ctcv_rec_type.attribute15;
808     x_ctcv_rec_type.start_date := p_ctcv_rec_type.start_date;
809     x_ctcv_rec_type.end_date := p_ctcv_rec_type.end_date;
810   END migrate_okc_okl_contact;
811 -------------------------------------------------------------------------------------------------------
812   -- Local Procedure to migrate from Locally declared cimv record type
813   -- to OKC rgpv declared record type
814 --okl to okc
815 PROCEDURE migrate_rgpv (
816     p_from  IN rgpv_rec_type,
817     p_to    IN OUT NOCOPY okc_rule_pub.rgpv_rec_type
818   ) IS
819   BEGIN
820     p_to.id := p_from.id;
821     p_to.rgd_code := p_from.rgd_code;
822     p_to.sat_code := p_from.sat_code;
823     p_to.rgp_type := p_from.rgp_type;
824     p_to.chr_id := p_from.chr_id;
825     p_to.cle_id := p_from.cle_id;
826     p_to.dnz_chr_id := p_from.dnz_chr_id;
827     p_to.parent_rgp_id := p_from.parent_rgp_id;
828     p_to.object_version_number := p_from.object_version_number;
829     p_to.created_by := p_from.created_by;
830     p_to.creation_date := p_from.creation_date;
831     p_to.last_updated_by := p_from.last_updated_by;
832     p_to.last_update_date := p_from.last_update_date;
833     p_to.last_update_login := p_from.last_update_login;
834     p_to.attribute_category := p_from.attribute_category;
835     p_to.attribute1 := p_from.attribute1;
836     p_to.attribute2 := p_from.attribute2;
837     p_to.attribute3 := p_from.attribute3;
838     p_to.attribute4 := p_from.attribute4;
839     p_to.attribute5 := p_from.attribute5;
840     p_to.attribute6 := p_from.attribute6;
841     p_to.attribute7 := p_from.attribute7;
842     p_to.attribute8 := p_from.attribute8;
843     p_to.attribute9 := p_from.attribute9;
844     p_to.attribute10 := p_from.attribute10;
845     p_to.attribute11 := p_from.attribute11;
846     p_to.attribute12 := p_from.attribute12;
847     p_to.attribute13 := p_from.attribute13;
848     p_to.attribute14 := p_from.attribute14;
849     p_to.attribute15 := p_from.attribute15;
850 --tl columns
851     p_to.sfwt_flag := p_from.sfwt_flag;
852     p_to.comments := p_from.comments;
853 END migrate_rgpv;
854 --okc to okl
855 PROCEDURE migrate_rgpv (
856     p_from  IN okc_rule_pub.rgpv_rec_type,
857     p_to    IN OUT NOCOPY rgpv_rec_type
858   ) IS
859   BEGIN
860     p_to.id := p_from.id;
861     p_to.rgd_code := p_from.rgd_code;
862     p_to.sat_code := p_from.sat_code;
863     p_to.rgp_type := p_from.rgp_type;
864     p_to.chr_id := p_from.chr_id;
865     p_to.cle_id := p_from.cle_id;
866     p_to.dnz_chr_id := p_from.dnz_chr_id;
867     p_to.parent_rgp_id := p_from.parent_rgp_id;
868     p_to.object_version_number := p_from.object_version_number;
869     p_to.created_by := p_from.created_by;
870     p_to.creation_date := p_from.creation_date;
871     p_to.last_updated_by := p_from.last_updated_by;
872     p_to.last_update_date := p_from.last_update_date;
873     p_to.last_update_login := p_from.last_update_login;
874     p_to.attribute_category := p_from.attribute_category;
875     p_to.attribute1 := p_from.attribute1;
876     p_to.attribute2 := p_from.attribute2;
877     p_to.attribute3 := p_from.attribute3;
878     p_to.attribute4 := p_from.attribute4;
879     p_to.attribute5 := p_from.attribute5;
880     p_to.attribute6 := p_from.attribute6;
881     p_to.attribute7 := p_from.attribute7;
882     p_to.attribute8 := p_from.attribute8;
883     p_to.attribute9 := p_from.attribute9;
884     p_to.attribute10 := p_from.attribute10;
885     p_to.attribute11 := p_from.attribute11;
886     p_to.attribute12 := p_from.attribute12;
887     p_to.attribute13 := p_from.attribute13;
888     p_to.attribute14 := p_from.attribute14;
889     p_to.attribute15 := p_from.attribute15;
890 --tl columns
891     p_to.sfwt_flag := p_from.sfwt_flag;
892     p_to.comments := p_from.comments;
893 END migrate_rgpv;
894 -------------------------------------------------------------------------------------------------------
895   -- Local Procedure to migrate from Locally declared cimv record type
896   -- to OKC rmpv declared record type
897 --okl to okc
898 PROCEDURE migrate_rmpv(
899     p_from  IN rmpv_rec_type,
900     p_to    IN OUT NOCOPY okc_rule_pub.rmpv_rec_type
901   ) IS
902   BEGIN
903     p_to.id := p_from.id;
904     p_to.rgp_id := p_from.rgp_id;
905     p_to.rrd_id := p_from.rrd_id;
906     p_to.cpl_id := p_from.cpl_id;
907     p_to.dnz_chr_id := p_from.dnz_chr_id;
908     p_to.object_version_number := p_from.object_version_number;
909     p_to.created_by := p_from.created_by;
910     p_to.creation_date := p_from.creation_date;
911     p_to.last_updated_by := p_from.last_updated_by;
912     p_to.last_update_date := p_from.last_update_date;
913     p_to.last_update_login := p_from.last_update_login;
914 END migrate_rmpv;
915 --okc to okl
916 PROCEDURE migrate_rmpv(
917     p_from  IN okc_rule_pub.rmpv_rec_type,
918     p_to    IN OUT NOCOPY rmpv_rec_type
919   ) IS
920   BEGIN
921     p_to.id := p_from.id;
922     p_to.rgp_id := p_from.rgp_id;
923     p_to.rrd_id := p_from.rrd_id;
924     p_to.cpl_id := p_from.cpl_id;
925     p_to.dnz_chr_id := p_from.dnz_chr_id;
926     p_to.object_version_number := p_from.object_version_number;
927     p_to.created_by := p_from.created_by;
928     p_to.creation_date := p_from.creation_date;
929     p_to.last_updated_by := p_from.last_updated_by;
930     p_to.last_update_date := p_from.last_update_date;
931     p_to.last_update_login := p_from.last_update_login;
932 END migrate_rmpv;
933 --------------------------------------------------------------------------------
934 PROCEDURE version_contract(
935     p_api_version       IN NUMBER,
936     p_init_msg_list     IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
937     x_return_status OUT NOCOPY VARCHAR2,
938     x_msg_count     OUT NOCOPY NUMBER,
939     x_msg_data      OUT NOCOPY VARCHAR2,
940         p_cvmv_rec          IN cvmv_rec_type,
941     p_commit            IN VARCHAR2 DEFAULT OKC_API.G_TRUE,
942         x_cvmv_rec          OUT NOCOPY cvmv_rec_type) AS
943 
944     lr_cvmv_rec_type_in            OKC_VERSION_PUB.cvmv_rec_type;
945     lr_cvmv_rec_type_out           OKC_VERSION_PUB.cvmv_rec_type;
946     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_VERSION_PUB';
947   BEGIN
948     x_return_status          := OKC_API.G_RET_STS_SUCCESS;
949     -- Call start_activity to create savepoint, check compatibility
950     -- and initialize message list
951     x_return_status := OKC_API.START_ACTIVITY (l_api_name
952                                                ,p_init_msg_list
953                                                ,'_PVT'
954                                                ,x_return_status);
955     -- Check if activity started successfully
956     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
957        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
958     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
959        RAISE OKC_API.G_EXCEPTION_ERROR;
960     END IF;
961     -- Since we are creatieng a wrapper over the okc
962     -- we need to migrate from locally declared cvmv record
963     -- to OKC declared cvmv record type as process of input
964     migrate_version(p_cvmv_rec,
965                     lr_cvmv_rec_type_in);
966     -- Calling the actual OKC api
967     OKC_VERSION_PUB.version_contract(p_api_version   => p_api_version,
968                                      p_init_msg_list => p_init_msg_list,
969                                      x_return_status => x_return_status,
970                                      x_msg_count     => x_msg_count,
971                                      x_msg_data      => x_msg_data,
972                                      p_cvmv_rec      => lr_cvmv_rec_type_in,
973                                  p_commit        => p_commit,
974                                      x_cvmv_rec      => lr_cvmv_rec_type_out);
975     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
976        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
977     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
978        RAISE OKC_API.G_EXCEPTION_ERROR;
979     END IF;
980     -- Since we are creatieng a wrapper over the okc
981     -- we need to migrate from OKC declared cimv record type
982     -- to locally declared cimv record as process of input
983     migrate_version(lr_cvmv_rec_type_out,
984                     x_cvmv_rec);
985     OKC_API.END_ACTIVITY (x_msg_count,
986                           x_msg_data );
987   EXCEPTION
988     WHEN OKC_API.G_EXCEPTION_ERROR THEN
989     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
990                                l_api_name,
991                                G_PKG_NAME,
992                                'OKC_API.G_RET_STS_ERROR',
993                                x_msg_count,
994                                x_msg_data,
995                                '_PVT');
996     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
997     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
998                                l_api_name,
999                                G_PKG_NAME,
1000                                'OKC_API.G_RET_STS_UNEXP_ERROR',
1001                                x_msg_count,
1002                                x_msg_data,
1003                                '_PVT');
1004     WHEN OTHERS THEN
1005     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
1006                               l_api_name,
1007                               G_PKG_NAME,
1008                               'OTHERS',
1009                               x_msg_count,
1010                               x_msg_data,
1011                               '_PVT');
1012    END version_contract;
1013 -------------------------------------------------------------------------------------------
1014 PROCEDURE version_contract(
1015     p_api_version       IN NUMBER,
1016     p_init_msg_list     IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1017     x_return_status OUT NOCOPY VARCHAR2,
1018     x_msg_count     OUT NOCOPY NUMBER,
1019     x_msg_data      OUT NOCOPY VARCHAR2,
1020         p_cvmv_tbl          IN cvmv_tbl_type,
1021     p_commit            IN VARCHAR2 DEFAULT OKC_API.G_TRUE,
1022         x_cvmv_tbl          OUT NOCOPY cvmv_tbl_type) AS
1023 
1024     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_VERISON_PVT';
1025     i                              NUMBER := 0;
1026   BEGIN
1027      OKC_API.init_msg_list(p_init_msg_list);
1028      x_return_status:= OKC_API.G_RET_STS_SUCCESS;
1029      IF (p_cvmv_tbl.COUNT>0) THEN
1030        i := p_cvmv_tbl.FIRST;
1031        LOOP
1032          version_contract(p_api_version   =>p_api_version,
1033                           p_init_msg_list =>OKC_API.G_FALSE,
1034                           x_return_status =>x_return_status,
1035                           x_msg_count     =>x_msg_count,
1036                           x_msg_data      =>x_msg_data,
1037                           p_cvmv_rec      =>p_cvmv_tbl(i),
1038                           x_cvmv_rec      =>x_cvmv_tbl(i));
1039          IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1040             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR);
1041          ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1042             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_ERROR);
1043          END IF;
1044          EXIT WHEN (i=p_cvmv_tbl.LAST);
1045          i := p_cvmv_tbl.NEXT(i);
1046        END LOOP;
1047        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1048          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1049        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1050          RAISE OKC_API.G_EXCEPTION_ERROR;
1051        END IF;
1052      END IF;
1053   EXCEPTION
1054     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1055     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1056                                l_api_name,
1057                                G_PKG_NAME,
1058                                'OKC_API.G_RET_STS_ERROR',
1059                                x_msg_count,
1060                                x_msg_data,
1061                                '_PVT');
1062     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1063     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
1064                                l_api_name,
1065                                G_PKG_NAME,
1066                                'OKC_API.G_RET_STS_UNEXP_ERROR',
1067                                x_msg_count,
1068                                x_msg_data,
1069                                '_PVT');
1070     WHEN OTHERS THEN
1071     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
1072                               l_api_name,
1073                               G_PKG_NAME,
1074                               'OTHERS',
1075                               x_msg_count,
1076                               x_msg_data,
1077                               '_PVT');
1078    END version_contract;
1079 ---------------------------------------------------------------------------------------
1080 
1081   PROCEDURE create_contract_item(
1082     p_api_version                  IN NUMBER,
1083     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1084     x_return_status                OUT NOCOPY VARCHAR2,
1085     x_msg_count                    OUT NOCOPY NUMBER,
1086     x_msg_data                     OUT NOCOPY VARCHAR2,
1087     p_cimv_rec                     IN cimv_rec_type,
1088     x_cimv_rec                     OUT NOCOPY cimv_rec_type) AS
1089 
1090     lr_cimv_rec_type_in            OKC_CONTRACT_ITEM_PUB.cimv_rec_type;
1091     lr_cimv_rec_type_out           OKC_CONTRACT_ITEM_PUB.cimv_rec_type;
1092     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_CREATE_K_ITEM';
1093 
1094     --vthiruva start, 15-Sep-2004
1095     --code changes to enable business events
1096     --cursor to fetch line style of sub line and parent line id.
1097      CURSOR lty_code_csr(p_line_id okc_k_lines_b.id%TYPE) IS
1098      SELECT lse.lty_code lty_code,
1099            lines.id fee_line_id
1100      FROM okc_line_styles_b lse,
1101          okc_k_lines_b subline,
1102          okc_k_lines_b lines
1103      WHERE subline.id = p_line_id
1104      AND lines.id = subline.cle_id
1105      AND lse.id = subline.lse_id;
1106 
1107      l_lty_code              okc_line_styles_b.lty_code%TYPE;
1108      l_parent_line_id        okc_k_lines_b.id%TYPE;
1109      l_parameter_list        wf_parameter_list_t;
1110      l_raise_business_event  VARCHAR2(1) := OKL_API.G_FALSE;
1111      l_business_event_name   WF_EVENTS.NAME%TYPE := NULL;
1112     --vthiruva end, 15-Sep-2004
1113 
1114   BEGIN
1115     x_return_status          := OKC_API.G_RET_STS_SUCCESS;
1116     -- Call start_activity to create savepoint, check compatibility
1117     -- and initialize message list
1118     x_return_status := OKC_API.START_ACTIVITY (l_api_name
1119                                                ,p_init_msg_list
1120                                                ,'_PVT'
1121                                                ,x_return_status);
1122     -- Check if activity started successfully
1123     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1124        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1125     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1126        RAISE OKC_API.G_EXCEPTION_ERROR;
1127     END IF;
1128     -- Since we are creatieng a wrapper over the okc
1129     -- we need to migrate from locally declared cimv record
1130     -- to OKC declared cimv record type as process of input
1131     migrate_okl_okc_item(p_cimv_rec,
1132                          lr_cimv_rec_type_in);
1133     -- Calling the actual OKC api
1134 
1135  -- smereddy,09/08/2005,Bug#4378699
1136     okl_context.set_okc_org_context(p_chr_id => lr_cimv_rec_type_in.dnz_chr_id);
1137 
1138 ----- Changes by Kanti
1139 ----- Validate the JTOT Object code, ID1 and ID2
1140 
1141              okl_la_validation_util_pvt.VALIDATE_STYLE_JTOT (p_api_version    => p_api_version,
1142                                                           p_init_msg_list  => OKC_API.G_FALSE,
1143                                                           x_return_status  => x_return_status,
1144                                                           x_msg_count      => x_msg_count,
1145                                                           x_msg_data       => x_msg_data,
1146                                                           p_object_name    => lr_cimv_rec_type_in.jtot_object1_code,
1147                                                           p_id1            => lr_cimv_rec_type_in.object1_id1,
1148                                                           p_id2            => lr_cimv_rec_type_in.object1_id2);
1149         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1150               RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1151             ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1152               RAISE OKC_API.G_EXCEPTION_ERROR;
1153             END IF;
1154 
1155 ----  Changes End
1156 
1157 
1158     OKC_CONTRACT_ITEM_PUB.create_contract_item(p_api_version   => p_api_version,
1159                                                p_init_msg_list => p_init_msg_list,
1160                                                x_return_status => x_return_status,
1161                                                x_msg_count     => x_msg_count,
1162                                                x_msg_data      => x_msg_data,
1163                                                p_cimv_rec      => lr_cimv_rec_type_in,
1164                                                x_cimv_rec      => lr_cimv_rec_type_out);
1165     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1166        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1167     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1168        RAISE OKC_API.G_EXCEPTION_ERROR;
1169     END IF;
1170     -- Since we are creatieng a wrapper over the okc
1171     -- we need to migrate from OKC declared cimv record type
1172     -- to locally declared cimv record as process of input
1173     migrate_okc_okl_item(lr_cimv_rec_type_out,
1174                          x_cimv_rec);
1175 
1176     /*
1177     --vthiruva start, 15-Sep-2004
1178     --code changes to enable business events..
1179     --Added code to raise events for create fee by asset and
1180     --create serviced asset
1181     */
1182     --fetch the line style code and parent line id for the record
1183     OPEN lty_code_csr(p_cimv_rec.cle_id);
1184     FETCH lty_code_csr into l_lty_code, l_parent_line_id;
1185     CLOSE lty_code_csr;
1186 
1187     IF(l_lty_code = 'LINK_FEE_ASSET' AND
1188        okl_lla_util_pvt.is_lease_contract(p_cimv_rec.dnz_chr_id) = OKL_API.G_TRUE)THEN
1189 
1190        l_raise_business_event := OKL_API.G_TRUE;
1191        l_business_event_name  := G_WF_EVT_ASSET_FEE_CREATED;
1192  	   wf_event.AddParameterToList(G_WF_ITM_FEE_LINE_ID,l_parent_line_id,l_parameter_list);
1193 
1194     ELSIF(l_lty_code = 'LINK_SERV_ASSET' AND
1195        okl_lla_util_pvt.is_lease_contract(p_cimv_rec.dnz_chr_id) = OKL_API.G_TRUE)THEN
1196 
1197        l_raise_business_event := OKL_API.G_TRUE;
1198        l_business_event_name  := G_WF_EVT_ASSET_SERV_FEE_CRTD;
1199  	   wf_event.AddParameterToList(G_WF_ITM_SERV_LINE_ID,l_parent_line_id,l_parameter_list);
1200 
1201     END IF;
1202 
1203     IF(l_raise_business_event = OKL_API.G_TRUE AND l_business_event_name IS NOT NULL)THEN
1204   	   wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID,p_cimv_rec.dnz_chr_id,l_parameter_list);
1205   	   wf_event.AddParameterToList(G_WF_ITM_ASSET_ID,p_cimv_rec.object1_id1,l_parameter_list);
1206 
1207 	   raise_business_event(p_api_version      => p_api_version
1208                            ,p_init_msg_list    => p_init_msg_list
1209 	                       ,x_return_status    => x_return_status
1210                            ,x_msg_count        => x_msg_count
1211                            ,x_msg_data         => x_msg_data
1212                            ,p_event_name       => l_business_event_name
1213                            ,p_event_param_list => l_parameter_list);
1214     END IF;
1215     --vthiruva end, 15-Sep-2004
1216 
1217     OKC_API.END_ACTIVITY (x_msg_count,
1218                           x_msg_data );
1219   EXCEPTION
1220     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1221     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1222                                l_api_name,
1223                                G_PKG_NAME,
1224                                'OKC_API.G_RET_STS_ERROR',
1225                                x_msg_count,
1226                                x_msg_data,
1227                                '_PVT');
1228     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1229     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
1230                                l_api_name,
1231                                G_PKG_NAME,
1232                                'OKC_API.G_RET_STS_UNEXP_ERROR',
1233                                x_msg_count,
1234                                x_msg_data,
1235                                '_PVT');
1236     WHEN OTHERS THEN
1237     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
1238                               l_api_name,
1239                               G_PKG_NAME,
1240                               'OTHERS',
1241                               x_msg_count,
1242                               x_msg_data,
1243                               '_PVT');
1244    END create_contract_item;
1245 --------------------------------------------------------------------------------------------------------------
1246   PROCEDURE create_contract_item(
1247     p_api_version   IN NUMBER,
1248     p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1249     x_return_status OUT NOCOPY VARCHAR2,
1250     x_msg_count     OUT NOCOPY NUMBER,
1251     x_msg_data      OUT NOCOPY VARCHAR2,
1252     p_cimv_tbl      IN  cimv_tbl_type,
1253     x_cimv_tbl      OUT NOCOPY  cimv_tbl_type) AS
1254 
1255     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_CREATE_ITEM';
1256     i                              NUMBER := 0;
1257   BEGIN
1258      OKC_API.init_msg_list(p_init_msg_list);
1259      x_return_status:= OKC_API.G_RET_STS_SUCCESS;
1260      IF (p_cimv_tbl.COUNT>0) THEN
1261        i := p_cimv_tbl.FIRST;
1262        LOOP
1263          create_contract_item(p_api_version   =>p_api_version,
1264                              p_init_msg_list =>OKC_API.G_FALSE,
1265                              x_return_status =>x_return_status,
1266                              x_msg_count     =>x_msg_count,
1267                              x_msg_data      =>x_msg_data,
1268                              p_cimv_rec      =>p_cimv_tbl(i),
1269                              x_cimv_rec      =>x_cimv_tbl(i));
1270          IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1271             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR);
1272          ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1273             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_ERROR);
1274          END IF;
1275          EXIT WHEN (i=p_cimv_tbl.LAST);
1276          i := p_cimv_tbl.NEXT(i);
1277        END LOOP;
1278        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1279          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1280        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1281          RAISE OKC_API.G_EXCEPTION_ERROR;
1282        END IF;
1283      END IF;
1284   EXCEPTION
1285     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1286     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1287                                l_api_name,
1288                                G_PKG_NAME,
1289                                'OKC_API.G_RET_STS_ERROR',
1290                                x_msg_count,
1291                                x_msg_data,
1292                                '_PVT');
1293     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1294     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
1295                                l_api_name,
1296                                G_PKG_NAME,
1297                                'OKC_API.G_RET_STS_UNEXP_ERROR',
1298                                x_msg_count,
1299                                x_msg_data,
1300                                '_PVT');
1301     WHEN OTHERS THEN
1302     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
1303                               l_api_name,
1304                               G_PKG_NAME,
1305                               'OTHERS',
1306                               x_msg_count,
1307                               x_msg_data,
1308                               '_PVT');
1309    END create_contract_item;
1310 --------------------------------------------------------------------------------------------------
1311 
1312   PROCEDURE update_contract_item(
1313     p_api_version                  IN NUMBER,
1314     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1315     x_return_status                OUT NOCOPY VARCHAR2,
1316     x_msg_count                    OUT NOCOPY NUMBER,
1317     x_msg_data                     OUT NOCOPY VARCHAR2,
1318     p_cimv_rec                     IN cimv_rec_type,
1319     x_cimv_rec                     OUT NOCOPY cimv_rec_type) AS
1320 
1321     lr_cimv_rec_type_in            OKC_CONTRACT_ITEM_PUB.cimv_rec_type;
1322     lr_cimv_rec_type_out           OKC_CONTRACT_ITEM_PUB.cimv_rec_type;
1323     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_UPDATE_K_ITEM';
1324 
1325    -- smereddy,09/08/2005,Bug#4378699
1326     CURSOR l_dnz_chr_id_csr(p_id IN NUMBER)
1327     IS
1328     SELECT dnz_chr_id
1329     FROM   OKC_K_ITEMS_V
1330     WHERE  id = p_id;
1331 
1332     l_dnz_chr_id NUMBER;
1333     -- end,mvasudev,09/08/2005,Bug#4378699
1334 
1335   BEGIN
1336     x_return_status          := OKC_API.G_RET_STS_SUCCESS;
1337     -- Call start_activity to create savepoint, check compatibility
1338     -- and initialize message list
1339     x_return_status := OKC_API.START_ACTIVITY (l_api_name
1340                                                ,p_init_msg_list
1341                                                ,'_PVT'
1342                                                ,x_return_status);
1343     -- Check if activity started successfully
1344     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1345        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1346     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1347        RAISE OKC_API.G_EXCEPTION_ERROR;
1348     END IF;
1349     -- Since we are creatieng a wrapper over the okc
1350     -- we need to migrate from locally declared cimv record
1351     -- to OKC declared cimv record type as process of input
1352     migrate_okl_okc_item(p_cimv_rec,
1353                          lr_cimv_rec_type_in);
1354 
1355    -- smereddy,09/08/2005,Bug#4378699
1356     IF (lr_cimv_rec_type_in.dnz_chr_id IS NOT NULL OR
1357        lr_cimv_rec_type_in.dnz_chr_id <> OKL_API.G_MISS_NUM) THEN
1358       l_dnz_chr_id := lr_cimv_rec_type_in.dnz_chr_id;
1359     ELSE
1360       FOR l_dnz_chr_id_rec IN l_dnz_chr_id_csr(p_cimv_rec.id)
1361       LOOP
1362        l_dnz_chr_id := l_dnz_chr_id_rec.dnz_chr_id;
1363       END LOOP;
1364     END IF;
1365 
1366     IF l_dnz_chr_id IS NOT NULL THEN
1367       okl_context.set_okc_org_context(p_chr_id => l_dnz_chr_id);
1368     ELSE
1369       RAISE OKC_API.G_EXCEPTION_ERROR;
1370     END IF;
1371    -- smereddy,09/08/2005,Bug#4378699
1372 
1373 ----- Changes by Kanti
1374 ----- Validate the JTOT Object code, ID1 and ID2
1375 
1376           okl_la_validation_util_pvt.VALIDATE_STYLE_JTOT (p_api_version    => p_api_version,
1377                                                           p_init_msg_list  => OKC_API.G_FALSE,
1378                                                           x_return_status  => x_return_status,
1379                                                           x_msg_count      => x_msg_count,
1380                                                           x_msg_data       => x_msg_data,
1381                                                           p_object_name    => lr_cimv_rec_type_in.jtot_object1_code,
1382                                                           p_id1            => lr_cimv_rec_type_in.object1_id1,
1383                                                           p_id2            => lr_cimv_rec_type_in.object1_id2);
1384         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1385               RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1386             ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1387               RAISE OKC_API.G_EXCEPTION_ERROR;
1388             END IF;
1389 ----  Changes End
1390 
1391 
1392     -- Calling the actual OKC api
1393 
1394 
1395     OKC_CONTRACT_ITEM_PUB.update_contract_item(p_api_version   => p_api_version,
1396                                                p_init_msg_list => p_init_msg_list,
1397                                                x_return_status => x_return_status,
1398                                                x_msg_count     => x_msg_count,
1399                                                x_msg_data      => x_msg_data,
1400                                                p_cimv_rec      => lr_cimv_rec_type_in,
1401                                                x_cimv_rec      => lr_cimv_rec_type_out);
1402 
1403     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1404        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1405     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1406        RAISE OKC_API.G_EXCEPTION_ERROR;
1407     END IF;
1408     -- Since we are creatieng a wrapper over the okc
1409     -- we need to migrate from OKC declared cimv record type
1410     -- to locally declared cimv record as process of input
1411     migrate_okc_okl_item(lr_cimv_rec_type_out,
1412                          x_cimv_rec);
1413     OKC_API.END_ACTIVITY (x_msg_count,
1414                           x_msg_data );
1415   EXCEPTION
1416     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1417     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1418                                l_api_name,
1419                                G_PKG_NAME,
1420                                'OKC_API.G_RET_STS_ERROR',
1421                                x_msg_count,
1422                                x_msg_data,
1423                                '_PVT');
1424     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1425     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
1426                                l_api_name,
1427                                G_PKG_NAME,
1428                                'OKC_API.G_RET_STS_UNEXP_ERROR',
1429                                x_msg_count,
1430                                x_msg_data,
1431                                '_PVT');
1432     WHEN OTHERS THEN
1433     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
1434                               l_api_name,
1435                               G_PKG_NAME,
1436                               'OTHERS',
1437                               x_msg_count,
1438                               x_msg_data,
1439                               '_PVT');
1440    END update_contract_item;
1441 --------------------------------------------------------------------------------------------------------------
1442   PROCEDURE update_contract_item(
1443     p_api_version   IN NUMBER,
1444     p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1445     x_return_status OUT NOCOPY VARCHAR2,
1446     x_msg_count     OUT NOCOPY NUMBER,
1447     x_msg_data      OUT NOCOPY VARCHAR2,
1448     p_cimv_tbl      IN  cimv_tbl_type,
1449     x_cimv_tbl      OUT NOCOPY  cimv_tbl_type) AS
1450 
1451     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_UPDATE_ITEM';
1452     i                              NUMBER := 0;
1453   BEGIN
1454      OKC_API.init_msg_list(p_init_msg_list);
1455      x_return_status:= OKC_API.G_RET_STS_SUCCESS;
1456      IF (p_cimv_tbl.COUNT>0) THEN
1457        i := p_cimv_tbl.FIRST;
1458        LOOP
1459          update_contract_item(p_api_version   =>p_api_version,
1460                              p_init_msg_list =>OKC_API.G_FALSE,
1461                              x_return_status =>x_return_status,
1462                              x_msg_count     =>x_msg_count,
1463                              x_msg_data      =>x_msg_data,
1464                              p_cimv_rec      =>p_cimv_tbl(i),
1465                              x_cimv_rec      =>x_cimv_tbl(i));
1466          IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1467             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR);
1468          ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1469             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_ERROR);
1470          END IF;
1471          EXIT WHEN (i=p_cimv_tbl.LAST);
1472          i := p_cimv_tbl.NEXT(i);
1473        END LOOP;
1474        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1475          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1476        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1477          RAISE OKC_API.G_EXCEPTION_ERROR;
1478        END IF;
1479      END IF;
1480   EXCEPTION
1481     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1482     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1483                                l_api_name,
1484                                G_PKG_NAME,
1485                                'OKC_API.G_RET_STS_ERROR',
1486                                x_msg_count,
1487                                x_msg_data,
1488                                '_PVT');
1489     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1490     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
1491                                l_api_name,
1492                                G_PKG_NAME,
1493                                'OKC_API.G_RET_STS_UNEXP_ERROR',
1494                                x_msg_count,
1495                                x_msg_data,
1496                                '_PVT');
1497     WHEN OTHERS THEN
1498     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
1499                               l_api_name,
1500                               G_PKG_NAME,
1501                               'OTHERS',
1502                               x_msg_count,
1503                               x_msg_data,
1504                               '_PVT');
1505    END update_contract_item;
1506 --------------------------------------------------------------------------------------------------
1507   PROCEDURE delete_contract_item(
1508     p_api_version   IN  NUMBER,
1509     p_init_msg_list IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
1510     x_return_status OUT NOCOPY  VARCHAR2,
1511     x_msg_count     OUT NOCOPY  NUMBER,
1512     x_msg_data      OUT NOCOPY  VARCHAR2,
1513     p_cimv_rec      IN  cimv_rec_type) AS
1514 
1515     lr_cimv_rec_type_in            OKC_CONTRACT_ITEM_PUB.cimv_rec_type;
1516     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_DELETE_K_ITEM';
1517   BEGIN
1518     x_return_status          := OKC_API.G_RET_STS_SUCCESS;
1519     -- Call start_activity to create savepoint, check compatibility
1520     -- and initialize message list
1521     x_return_status := OKC_API.START_ACTIVITY (l_api_name
1522                                                ,p_init_msg_list
1523                                                ,'_PVT'
1524                                                ,x_return_status);
1525     -- Check if activity started successfully
1526     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1527        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1528     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1529        RAISE OKC_API.G_EXCEPTION_ERROR;
1530     END IF;
1531     -- Since we are creatieng a wrapper over the okc
1532     -- we need to migrate from locally declared cimv record
1533     -- to OKC declared cimv record type as process of input
1534     migrate_okl_okc_item(p_cimv_rec,
1535                          lr_cimv_rec_type_in);
1536     -- Calling the actual OKC api
1537     OKC_CONTRACT_ITEM_PUB.delete_contract_item(p_api_version   => p_api_version,
1538                                                p_init_msg_list => p_init_msg_list,
1539                                                x_return_status => x_return_status,
1540                                                x_msg_count     => x_msg_count,
1541                                                x_msg_data      => x_msg_data,
1542                                                p_cimv_rec      => lr_cimv_rec_type_in);
1543     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1544        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1545     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1546        RAISE OKC_API.G_EXCEPTION_ERROR;
1547     END IF;
1548     OKC_API.END_ACTIVITY (x_msg_count,
1549                           x_msg_data );
1550   EXCEPTION
1551     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1552     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1553                                l_api_name,
1554                                G_PKG_NAME,
1555                                'OKC_API.G_RET_STS_ERROR',
1556                                x_msg_count,
1557                                x_msg_data,
1558                                '_PVT');
1559     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1560     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
1561                                l_api_name,
1562                                G_PKG_NAME,
1563                                'OKC_API.G_RET_STS_UNEXP_ERROR',
1564                                x_msg_count,
1565                                x_msg_data,
1566                                '_PVT');
1567     WHEN OTHERS THEN
1568     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
1569                               l_api_name,
1570                               G_PKG_NAME,
1571                               'OTHERS',
1572                               x_msg_count,
1573                               x_msg_data,
1574                               '_PVT');
1575    END delete_contract_item;
1576 --------------------------------------------------------------------------------------------------------------
1577   PROCEDURE delete_contract_item(
1578     p_api_version   IN NUMBER,
1579     p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1580     x_return_status OUT NOCOPY VARCHAR2,
1581     x_msg_count     OUT NOCOPY NUMBER,
1582     x_msg_data      OUT NOCOPY VARCHAR2,
1583     p_cimv_tbl      IN  cimv_tbl_type) AS
1584 
1585     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_DELETE_ITEM';
1586     i                              NUMBER := 0;
1587   BEGIN
1588      OKC_API.init_msg_list(p_init_msg_list);
1589      x_return_status:= OKC_API.G_RET_STS_SUCCESS;
1590      IF (p_cimv_tbl.COUNT>0) THEN
1591        i := p_cimv_tbl.FIRST;
1592        LOOP
1593          delete_contract_item(p_api_version   =>p_api_version,
1594                              p_init_msg_list =>OKC_API.G_FALSE,
1595                              x_return_status =>x_return_status,
1596                              x_msg_count     =>x_msg_count,
1597                              x_msg_data      =>x_msg_data,
1598                              p_cimv_rec      =>p_cimv_tbl(i));
1599          IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1600             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR);
1601          ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1602             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_ERROR);
1603          END IF;
1604          EXIT WHEN (i=p_cimv_tbl.LAST);
1605          i := p_cimv_tbl.NEXT(i);
1606        END LOOP;
1607        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1608          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1609        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1610          RAISE OKC_API.G_EXCEPTION_ERROR;
1611        END IF;
1612      END IF;
1613   EXCEPTION
1614     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1615     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1616                                l_api_name,
1617                                G_PKG_NAME,
1618                                'OKC_API.G_RET_STS_ERROR',
1619                                x_msg_count,
1620                                x_msg_data,
1621                                '_PVT');
1622     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1623     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
1624                                l_api_name,
1625                                G_PKG_NAME,
1626                                'OKC_API.G_RET_STS_UNEXP_ERROR',
1627                                x_msg_count,
1628                                x_msg_data,
1629                                '_PVT');
1630     WHEN OTHERS THEN
1631     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
1632                               l_api_name,
1633                               G_PKG_NAME,
1634                               'OTHERS',
1635                               x_msg_count,
1636                               x_msg_data,
1637                               '_PVT');
1638    END delete_contract_item;
1639 --------------------------------------------------------------------------------------------------------------
1640   PROCEDURE create_k_party_role(
1641     p_api_version                  IN NUMBER,
1642     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1643     x_return_status                OUT NOCOPY VARCHAR2,
1644     x_msg_count                    OUT NOCOPY NUMBER,
1645     x_msg_data                     OUT NOCOPY VARCHAR2,
1646     p_cplv_rec                     IN cplv_rec_type,
1647     x_cplv_rec                     OUT NOCOPY cplv_rec_type) AS
1648 
1649     lr_cplv_rec_type_in            OKC_CONTRACT_PARTY_PUB.cplv_rec_type;
1650     lr_cplv_rec_type_out           OKC_CONTRACT_PARTY_PUB.cplv_rec_type;
1651     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_CREATE_K_PARTY_ROLE';
1652 
1653     CURSOR role_csr(p_rle_code VARCHAR2)  IS
1654     SELECT  access_level
1655     FROM    OKC_ROLE_SOURCES
1656     WHERE rle_code = p_rle_code
1657     AND     buy_or_sell = 'S';
1658 
1659     l_access_level OKC_ROLE_SOURCES.access_level%TYPE;
1660 
1661     /*
1662     -- mvasudev, 09/09/2004
1663     -- Code change to enable Business Event
1664     */
1665     l_parameter_list           wf_parameter_list_t;
1666 
1667   BEGIN
1668     x_return_status          := OKC_API.G_RET_STS_SUCCESS;
1669     -- Call start_activity to create savepoint, check compatibility
1670     -- and initialize message list
1671     x_return_status := OKC_API.START_ACTIVITY (l_api_name
1672                                                ,p_init_msg_list
1673                                                ,'_PVT'
1674                                                ,x_return_status);
1675     -- Check if activity started successfully
1676     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1677        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1678     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1679        RAISE OKC_API.G_EXCEPTION_ERROR;
1680     END IF;
1681     -- Since we are creatieng a wrapper over the okc
1682     -- we need to migrate from locally declared cplv record
1683     -- to OKC declared cplv record type as process of input
1684     migrate_okl_okc_party(p_cplv_rec,
1685                           lr_cplv_rec_type_in);
1686     -- Calling the actual OKC api
1687 
1688 ----- Changes by Kanti
1689 ----- Validate the JTOT Object code, ID1 and ID2
1690 
1691      OPEN role_csr(lr_cplv_rec_type_in.rle_code);
1692      FETCH role_csr INTO l_access_level;
1693      CLOSE role_csr;
1694 
1695      IF (l_access_level = 'S')  THEN
1696 
1697            okl_la_validation_util_pvt.VALIDATE_ROLE_JTOT (p_api_version    => p_api_version,
1698                                                           p_init_msg_list  => OKC_API.G_FALSE,
1699                                                           x_return_status  => x_return_status,
1700                                                           x_msg_count      => x_msg_count,
1701                                                           x_msg_data       => x_msg_data,
1702                                                           p_object_name    => lr_cplv_rec_type_in.jtot_object1_code,
1703                                                           p_id1            => lr_cplv_rec_type_in.object1_id1,
1704                                                           p_id2            => lr_cplv_rec_type_in.object1_id2);
1705 
1706         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1707               RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1708           ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1709               RAISE OKC_API.G_EXCEPTION_ERROR;
1710           END IF;
1711 
1712      END IF;
1713 
1714 ----  Changes End
1715 
1716 
1717 
1718     OKC_CONTRACT_PARTY_PUB.create_k_party_role(p_api_version   => p_api_version,
1719                                                p_init_msg_list => p_init_msg_list,
1720                                                x_return_status => x_return_status,
1721                                                x_msg_count     => x_msg_count,
1722                                                x_msg_data      => x_msg_data,
1723                                                p_cplv_rec      => lr_cplv_rec_type_in,
1724                                                x_cplv_rec      => lr_cplv_rec_type_out);
1725     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1726        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1727     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1728        RAISE OKC_API.G_EXCEPTION_ERROR;
1729     END IF;
1730     -- Since we are creatieng a wrapper over the okc
1731     -- we need to migrate from OKC declared cplv record type
1732     -- to locally declared cplv record as process of input
1733     migrate_okc_okl_party(lr_cplv_rec_type_out,
1734                           x_cplv_rec);
1735 
1736      --code to flip status to 'INCOMPLETE' for lease contract if this is an edit point
1737      -- edit points for lease contract are any modifications between statuses
1738      -- 'PASSED' and 'APPROVED'
1739      IF (x_cplv_rec.dnz_chr_id IS NOT NULL) AND (x_cplv_rec.dnz_chr_id <> OKL_API.G_MISS_NUM) THEN
1740 
1741           okl_contract_status_pub.cascade_lease_status_edit
1742             (p_api_version     => p_api_version,
1743              p_init_msg_list   => p_init_msg_list,
1744              x_return_status   => x_return_status,
1745              x_msg_count       => x_msg_count,
1746              x_msg_data        => x_msg_data,
1747              p_chr_id          => x_cplv_rec.dnz_chr_id);
1748 
1749         IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
1750             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1751         ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
1752             RAISE OKC_API.G_EXCEPTION_ERROR;
1753         END IF;
1754 
1755      END IF;
1756 
1757    /*
1758    -- mvasudev, 09/09/2004
1759    -- Code change to enable Business Event
1760    */
1761     IF (okl_lla_util_pvt.is_lease_contract(p_cplv_rec.dnz_chr_id) = OKL_API.G_TRUE) THEN
1762       wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID,p_cplv_rec.dnz_chr_id,l_parameter_list);
1763       --vthiruva..04-jan-2004.. Modified to pass object1_id1 as party id and
1764       --added party_role_id to list of paramters passed to raise business event.
1765       wf_event.AddParameterToList(G_WF_ITM_PARTY_ID,p_cplv_rec.object1_id1,l_parameter_list);
1766       wf_event.AddParameterToList(G_WF_ITM_PARTY_ROLE_ID,x_cplv_rec.id,l_parameter_list);
1767 
1768 	  raise_business_event(p_api_version      => p_api_version
1769                           ,p_init_msg_list    => p_init_msg_list
1770 	                      ,x_return_status    => x_return_status
1771                           ,x_msg_count        => x_msg_count
1772                           ,x_msg_data         => x_msg_data
1773                           ,p_event_name       => G_WF_EVT_KHR_PARTY_CREATED
1774                           ,p_event_param_list => l_parameter_list);
1775 
1776       IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1777          RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1778       ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1779          RAISE OKL_API.G_EXCEPTION_ERROR;
1780       END IF;
1781     END IF;
1782 
1783    /*
1784    -- mvasudev, 09/09/2004
1785    -- END, Code change to enable Business Event
1786    */
1787 
1788     OKC_API.END_ACTIVITY (x_msg_count,
1789                           x_msg_data );
1790   EXCEPTION
1791     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1792     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1793                                l_api_name,
1794                                G_PKG_NAME,
1795                                'OKC_API.G_RET_STS_ERROR',
1796                                x_msg_count,
1797                                x_msg_data,
1798                                '_PVT');
1799     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1800     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
1801                                l_api_name,
1802                                G_PKG_NAME,
1803                                'OKC_API.G_RET_STS_UNEXP_ERROR',
1804                                x_msg_count,
1805                                x_msg_data,
1806                                '_PVT');
1807     WHEN OTHERS THEN
1808     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
1809                               l_api_name,
1810                               G_PKG_NAME,
1811                               'OTHERS',
1812                               x_msg_count,
1813                               x_msg_data,
1814                               '_PVT');
1815    END create_k_party_role;
1816 --------------------------------------------------------------------------------------------------------------
1817   PROCEDURE create_k_party_role(
1818     p_api_version   IN NUMBER,
1819     p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1820     x_return_status OUT NOCOPY VARCHAR2,
1821     x_msg_count     OUT NOCOPY NUMBER,
1822     x_msg_data      OUT NOCOPY VARCHAR2,
1823     p_cplv_tbl      IN  cplv_tbl_type,
1824     x_cplv_tbl      OUT NOCOPY  cplv_tbl_type) AS
1825 
1826     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_CREATE_K_PARTY_ROLE';
1827     i                              NUMBER := 0;
1828   BEGIN
1829      OKC_API.init_msg_list(p_init_msg_list);
1830      x_return_status:= OKC_API.G_RET_STS_SUCCESS;
1831      IF (p_cplv_tbl.COUNT>0) THEN
1832        i := p_cplv_tbl.FIRST;
1833        LOOP
1834          create_k_party_role(p_api_version   =>p_api_version,
1835                              p_init_msg_list =>OKC_API.G_FALSE,
1836                              x_return_status =>x_return_status,
1837                              x_msg_count     =>x_msg_count,
1838                              x_msg_data      =>x_msg_data,
1839                              p_cplv_rec      =>p_cplv_tbl(i),
1840                              x_cplv_rec      =>x_cplv_tbl(i));
1841          IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1842             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR);
1843          ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1844             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_ERROR);
1845          END IF;
1846          EXIT WHEN (i=p_cplv_tbl.LAST);
1847          i := p_cplv_tbl.NEXT(i);
1848        END LOOP;
1849        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1850          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1851        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1852          RAISE OKC_API.G_EXCEPTION_ERROR;
1853        END IF;
1854      END IF;
1855   EXCEPTION
1856     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1857     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
1858                                l_api_name,
1859                                G_PKG_NAME,
1860                                'OKC_API.G_RET_STS_ERROR',
1861                                x_msg_count,
1862                                x_msg_data,
1863                                '_PVT');
1864     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1865     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
1866                                l_api_name,
1867                                G_PKG_NAME,
1868                                'OKC_API.G_RET_STS_UNEXP_ERROR',
1869                                x_msg_count,
1870                                x_msg_data,
1871                                '_PVT');
1872     WHEN OTHERS THEN
1873     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
1874                               l_api_name,
1875                               G_PKG_NAME,
1876                               'OTHERS',
1877                               x_msg_count,
1878                               x_msg_data,
1879                               '_PVT');
1880    END create_k_party_role;
1881 --------------------------------------------------------------------------------------------------------------
1882   PROCEDURE update_k_party_role(
1883     p_api_version                  IN NUMBER,
1884     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1885     x_return_status                OUT NOCOPY VARCHAR2,
1886     x_msg_count                    OUT NOCOPY NUMBER,
1887     x_msg_data                     OUT NOCOPY VARCHAR2,
1888     p_cplv_rec                     IN cplv_rec_type,
1889     x_cplv_rec                     OUT NOCOPY cplv_rec_type) AS
1890 
1891     lr_cplv_rec_type_in            OKC_CONTRACT_PARTY_PUB.cplv_rec_type;
1892     lr_cplv_rec_type_out           OKC_CONTRACT_PARTY_PUB.cplv_rec_type;
1893     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_UPDATE_K_PARTY_ROLE';
1894 
1895     CURSOR role_csr(p_rle_code VARCHAR2)  IS
1896     SELECT  access_level
1897     FROM    OKC_ROLE_SOURCES
1898     WHERE rle_code = p_rle_code
1899     AND     buy_or_sell = 'S';
1900 
1901     l_access_level OKC_ROLE_SOURCES.access_level%TYPE;
1902 
1903   BEGIN
1904     x_return_status          := OKC_API.G_RET_STS_SUCCESS;
1905     -- Call start_activity to create savepoint, check compatibility
1906     -- and initialize message list
1907     x_return_status := OKC_API.START_ACTIVITY (l_api_name
1908                                                ,p_init_msg_list
1909                                                ,'_PVT'
1910                                                ,x_return_status);
1911     -- Check if activity started successfully
1912     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1913        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1914     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1915        RAISE OKC_API.G_EXCEPTION_ERROR;
1916     END IF;
1917     -- Since we are creatieng a wrapper over the okc
1918     -- we need to migrate from locally declared cplv record
1919     -- to OKC declared cplv record type as process of input
1920     migrate_okl_okc_party(p_cplv_rec,
1921                           lr_cplv_rec_type_in);
1922 
1923 ----- Changes by Kanti
1924 ----- Validate the JTOT Object code, ID1 and ID2
1925 
1926      OPEN role_csr(lr_cplv_rec_type_in.rle_code);
1927      FETCH role_csr INTO l_access_level;
1928      CLOSE role_csr;
1929 
1930      IF (l_access_level = 'S')  THEN
1931 
1932 
1933            okl_la_validation_util_pvt.VALIDATE_ROLE_JTOT (p_api_version    => p_api_version,
1934                                                           p_init_msg_list  => OKC_API.G_FALSE,
1935                                                           x_return_status  => x_return_status,
1936                                                           x_msg_count      => x_msg_count,
1937                                                           x_msg_data       => x_msg_data,
1938                                                           p_object_name    => lr_cplv_rec_type_in.jtot_object1_code,
1939                                                           p_id1            => lr_cplv_rec_type_in.object1_id1,
1940                                                           p_id2            => lr_cplv_rec_type_in.object1_id2);
1941         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1942               RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1943           ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1944               RAISE OKC_API.G_EXCEPTION_ERROR;
1945           END IF;
1946 
1947      END IF;
1948 
1949 ----  Changes End
1950 
1951 
1952     -- Calling the actual OKC api
1953 
1954 
1955     OKC_CONTRACT_PARTY_PUB.update_k_party_role(p_api_version   => p_api_version,
1956                                                p_init_msg_list => p_init_msg_list,
1957                                                x_return_status => x_return_status,
1958                                                x_msg_count     => x_msg_count,
1959                                                x_msg_data      => x_msg_data,
1960                                                p_cplv_rec      => lr_cplv_rec_type_in,
1961                                                x_cplv_rec      => lr_cplv_rec_type_out);
1962     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1963        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1964     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1965        RAISE OKC_API.G_EXCEPTION_ERROR;
1966     END IF;
1967     -- Since we are creatieng a wrapper over the okc
1968     -- we need to migrate from OKC declared cplv record type
1969     -- to locally declared cplv record as process of input
1970     migrate_okc_okl_party(lr_cplv_rec_type_out,
1971                           x_cplv_rec);
1972 
1973      --code to flip status to 'INCOMPLETE' for lease contract if this is an edit point
1974      -- edit points for lease contract are any modifications between statuses
1975      -- 'PASSED' and 'APPROVED'
1976      --output will not be created with null dnz_chr_id
1977      IF (x_cplv_rec.dnz_chr_id IS NOT NULL) AND (x_cplv_rec.dnz_chr_id  <> OKL_API.G_MISS_NUM) THEN
1978 
1979           okl_contract_status_pub.cascade_lease_status_edit
1980             (p_api_version     => p_api_version,
1981              p_init_msg_list   => p_init_msg_list,
1982              x_return_status   => x_return_status,
1983              x_msg_count       => x_msg_count,
1984              x_msg_data        => x_msg_data,
1985              p_chr_id          => x_cplv_rec.dnz_chr_id);
1986 
1987         IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
1988             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1989         ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
1990             RAISE OKC_API.G_EXCEPTION_ERROR;
1991         END IF;
1992 
1993      END IF;
1994 
1995     OKC_API.END_ACTIVITY (x_msg_count,
1996                           x_msg_data );
1997   EXCEPTION
1998     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1999     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2000                                l_api_name,
2001                                G_PKG_NAME,
2002                                'OKC_API.G_RET_STS_ERROR',
2003                                x_msg_count,
2004                                x_msg_data,
2005                                '_PVT');
2006     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2007     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
2008                                l_api_name,
2009                                G_PKG_NAME,
2010                                'OKC_API.G_RET_STS_UNEXP_ERROR',
2011                                x_msg_count,
2012                                x_msg_data,
2013                                '_PVT');
2014     WHEN OTHERS THEN
2015     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
2016                               l_api_name,
2017                               G_PKG_NAME,
2018                               'OTHERS',
2019                               x_msg_count,
2020                               x_msg_data,
2021                               '_PVT');
2022    END update_k_party_role;
2023 --------------------------------------------------------------------------------------------------------------
2024   PROCEDURE update_k_party_role(
2025     p_api_version   IN NUMBER,
2026     p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2027     x_return_status OUT NOCOPY VARCHAR2,
2028     x_msg_count     OUT NOCOPY NUMBER,
2029     x_msg_data      OUT NOCOPY VARCHAR2,
2030     p_cplv_tbl      IN  cplv_tbl_type,
2031     x_cplv_tbl      OUT NOCOPY  cplv_tbl_type) AS
2032 
2033     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_UPDATE_K_PARTY_ROLE';
2034     i                              NUMBER := 0;
2035   BEGIN
2036      OKC_API.init_msg_list(p_init_msg_list);
2037      x_return_status:= OKC_API.G_RET_STS_SUCCESS;
2038      IF (p_cplv_tbl.COUNT>0) THEN
2039        i := p_cplv_tbl.FIRST;
2040        LOOP
2041          update_k_party_role(p_api_version   =>p_api_version,
2042                              p_init_msg_list =>OKC_API.G_FALSE,
2043                              x_return_status =>x_return_status,
2044                              x_msg_count     =>x_msg_count,
2045                              x_msg_data      =>x_msg_data,
2046                              p_cplv_rec      =>p_cplv_tbl(i),
2047                              x_cplv_rec      =>x_cplv_tbl(i));
2048          IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2049             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR);
2050          ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2051             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_ERROR);
2052          END IF;
2053          EXIT WHEN (i=p_cplv_tbl.LAST);
2054          i := p_cplv_tbl.NEXT(i);
2055        END LOOP;
2056        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2057          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2058        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2059          RAISE OKC_API.G_EXCEPTION_ERROR;
2060        END IF;
2061      END IF;
2062   EXCEPTION
2063     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2064     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2065                                l_api_name,
2066                                G_PKG_NAME,
2067                                'OKC_API.G_RET_STS_ERROR',
2068                                x_msg_count,
2069                                x_msg_data,
2070                                '_PVT');
2071     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2072     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
2073                                l_api_name,
2074                                G_PKG_NAME,
2075                                'OKC_API.G_RET_STS_UNEXP_ERROR',
2076                                x_msg_count,
2077                                x_msg_data,
2078                                '_PVT');
2079     WHEN OTHERS THEN
2080     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
2081                               l_api_name,
2082                               G_PKG_NAME,
2083                               'OTHERS',
2084                               x_msg_count,
2085                               x_msg_data,
2086                               '_PVT');
2087    END update_k_party_role;
2088 --------------------------------------------------------------------------------------------------------------
2089   PROCEDURE delete_k_party_role(
2090     p_api_version   IN  NUMBER,
2091     p_init_msg_list IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
2092     x_return_status OUT NOCOPY  VARCHAR2,
2093     x_msg_count     OUT NOCOPY  NUMBER,
2094     x_msg_data      OUT NOCOPY  VARCHAR2,
2095     p_cplv_rec      IN  cplv_rec_type) AS
2096 
2097     lr_cplv_rec_type_in            OKC_CONTRACT_PARTY_PUB.cplv_rec_type;
2098     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_DELETE_K_PARTY_ROLE';
2099 
2100     --cursor to find out chr id required to flip status at edit point
2101     CURSOR chr_id_crs (p_cpl_id IN NUMBER) IS
2102     SELECT DNZ_CHR_ID
2103     FROM   OKC_K_PARTY_ROLES_B
2104     WHERE  ID = P_CPL_ID;
2105 
2106     l_dnz_chr_id   OKC_K_PARTY_ROLES_B.dnz_chr_id%TYPE;
2107 
2108 
2109 
2110   BEGIN
2111     x_return_status          := OKC_API.G_RET_STS_SUCCESS;
2112     -- Call start_activity to create savepoint, check compatibility
2113     -- and initialize message list
2114     x_return_status := OKC_API.START_ACTIVITY (l_api_name
2115                                                ,p_init_msg_list
2116                                                ,'_PVT'
2117                                                ,x_return_status);
2118     -- Check if activity started successfully
2119     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2120        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2121     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2122        RAISE OKC_API.G_EXCEPTION_ERROR;
2123     END IF;
2124 
2125       --code to flip status to 'INCOMPLETE' for lease contract if this is an edit point
2126      -- edit points for lease contract are any modifications between statuses
2127      -- 'PASSED' and 'APPROVED'
2128 
2129      IF (p_cplv_rec.dnz_chr_id IS NULL) OR (p_cplv_rec.dnz_chr_id = OKL_API.G_MISS_NUM) THEN
2130          OPEN chr_id_crs(p_cpl_id => p_cplv_rec.id);
2131          FETCH chr_id_crs INTO l_dnz_chr_id;
2132          IF chr_id_crs%NOTFOUND THEN
2133             NULL; --this error should have been trapped earlier (party not attached to chr)
2134          END IF;
2135          CLOSE chr_id_crs;
2136      ELSE
2137          l_dnz_chr_id := p_cplv_rec.dnz_chr_id;
2138      END IF;
2139 
2140      IF (l_dnz_chr_id IS NOT NULL AND l_dnz_chr_id <> OKL_API.G_MISS_NUM) THEN
2141 
2142           okl_contract_status_pub.cascade_lease_status_edit
2143             (p_api_version     => p_api_version,
2144              p_init_msg_list   => p_init_msg_list,
2145              x_return_status   => x_return_status,
2146              x_msg_count       => x_msg_count,
2147              x_msg_data        => x_msg_data,
2148              p_chr_id          => l_dnz_chr_id);
2149 
2150         IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
2151             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2152         ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
2153             RAISE OKC_API.G_EXCEPTION_ERROR;
2154         END IF;
2155 
2156      END IF;
2157 
2158     -- Since we are creatieng a wrapper over the okc
2159     -- we need to migrate from locally declared cplv record
2160     -- to OKC declared cplv record type as process of input
2161     migrate_okl_okc_party(p_cplv_rec,
2162                           lr_cplv_rec_type_in);
2163     -- Calling the actual OKC api
2164     OKC_CONTRACT_PARTY_PUB.delete_k_party_role(p_api_version   => p_api_version,
2165                                                p_init_msg_list => p_init_msg_list,
2166                                                x_return_status => x_return_status,
2167                                                x_msg_count     => x_msg_count,
2168                                                x_msg_data      => x_msg_data,
2169                                                p_cplv_rec      => lr_cplv_rec_type_in);
2170     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2171        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2172     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2173        RAISE OKC_API.G_EXCEPTION_ERROR;
2174     END IF;
2175     OKC_API.END_ACTIVITY (x_msg_count,
2176                           x_msg_data );
2177   EXCEPTION
2178     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2179     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2180                                l_api_name,
2181                                G_PKG_NAME,
2182                                'OKC_API.G_RET_STS_ERROR',
2183                                x_msg_count,
2184                                x_msg_data,
2185                                '_PVT');
2186     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2187     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
2188                                l_api_name,
2189                                G_PKG_NAME,
2190                                'OKC_API.G_RET_STS_UNEXP_ERROR',
2191                                x_msg_count,
2192                                x_msg_data,
2193                                '_PVT');
2194     WHEN OTHERS THEN
2195     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
2196                               l_api_name,
2197                               G_PKG_NAME,
2198                               'OTHERS',
2199                               x_msg_count,
2200                               x_msg_data,
2201                               '_PVT');
2202    END delete_k_party_role;
2203 -------------------------------------------------------------------------------------------------------
2204   PROCEDURE delete_k_party_role(
2205     p_api_version   IN NUMBER,
2206     p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2207     x_return_status OUT NOCOPY VARCHAR2,
2208     x_msg_count     OUT NOCOPY NUMBER,
2209     x_msg_data      OUT NOCOPY VARCHAR2,
2210     p_cplv_tbl      IN  cplv_tbl_type) AS
2211 
2212     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_DELETE_K_PARTY_ROLE';
2213     i                              NUMBER := 0;
2214   BEGIN
2215      OKC_API.init_msg_list(p_init_msg_list);
2216      x_return_status:= OKC_API.G_RET_STS_SUCCESS;
2217      IF (p_cplv_tbl.COUNT>0) THEN
2218        i := p_cplv_tbl.FIRST;
2219        LOOP
2220          delete_k_party_role(p_api_version   =>p_api_version,
2221                              p_init_msg_list =>OKC_API.G_FALSE,
2222                              x_return_status =>x_return_status,
2223                              x_msg_count     =>x_msg_count,
2224                              x_msg_data      =>x_msg_data,
2225                              p_cplv_rec      =>p_cplv_tbl(i));
2226          IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2227             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR);
2228          ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2229             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_ERROR);
2230          END IF;
2231          EXIT WHEN (i=p_cplv_tbl.LAST);
2232          i := p_cplv_tbl.NEXT(i);
2233        END LOOP;
2234        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2235          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2236        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2237          RAISE OKC_API.G_EXCEPTION_ERROR;
2238        END IF;
2239      END IF;
2240   EXCEPTION
2241     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2242     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2243                                l_api_name,
2244                                G_PKG_NAME,
2245                                'OKC_API.G_RET_STS_ERROR',
2246                                x_msg_count,
2247                                x_msg_data,
2248                                '_PVT');
2249     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2250     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
2251                                l_api_name,
2252                                G_PKG_NAME,
2253                                'OKC_API.G_RET_STS_UNEXP_ERROR',
2254                                x_msg_count,
2255                                x_msg_data,
2256                                '_PVT');
2257     WHEN OTHERS THEN
2258     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
2259                               l_api_name,
2260                               G_PKG_NAME,
2261                               'OTHERS',
2262                               x_msg_count,
2263                               x_msg_data,
2264                               '_PVT');
2265    END delete_k_party_role;
2266 
2267 --------------------------------------------------------------------------------------------------------------
2268   PROCEDURE create_contact(
2269     p_api_version   IN  NUMBER,
2270     p_init_msg_list IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
2271     x_return_status OUT NOCOPY  VARCHAR2,
2272     x_msg_count     OUT NOCOPY  NUMBER,
2273     x_msg_data      OUT NOCOPY  VARCHAR2,
2274     p_ctcv_rec      IN  ctcv_rec_type,
2275     x_ctcv_rec      OUT NOCOPY  ctcv_rec_type) AS
2276 
2277     lr_ctcv_rec_type_in            OKC_CONTRACT_PARTY_PUB.ctcv_rec_type;
2278     lr_ctcv_rec_type_out           OKC_CONTRACT_PARTY_PUB.ctcv_rec_type;
2279     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_CREATE_CONTACT';
2280 
2281     CURSOR contact_csr(p_cro_code VARCHAR2, p_cpl_id NUMBER)  IS
2282     SELECT  access_level
2283     FROM    OKC_CONTACT_SOURCES a, okc_k_party_roles_b b
2284     WHERE  a.cro_code = p_cro_code
2285     AND    b.id       = p_cpl_id
2286     AND    a.rle_code = b.rle_code
2287     AND    a.buy_or_sell = 'S';
2288 
2289     l_access_level OKC_CONTACT_SOURCES.access_level%TYPE;
2290 
2291 
2292   BEGIN
2293     x_return_status          := OKC_API.G_RET_STS_SUCCESS;
2294     -- Call start_activity to create savepoint, check compatibility
2295     -- and initialize message list
2296     x_return_status := OKC_API.START_ACTIVITY (l_api_name
2297                                                ,p_init_msg_list
2298                                                ,'_PVT'
2299                                                ,x_return_status);
2300     -- Check if activity started successfully
2301     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2302        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2303     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2304        RAISE OKC_API.G_EXCEPTION_ERROR;
2305     END IF;
2306     -- Since we are creatieng a wrapper over the okc
2307     -- we need to migrate from locally declared ctcv record
2308     -- to OKC declared ctcv record type as process of input
2309     migrate_okl_okc_contact(p_ctcv_rec,
2310                           lr_ctcv_rec_type_in);
2311     -- Calling the actual OKC api
2312 
2313 ----- Changes by Kanti
2314 ----- Validate the JTOT Object code, ID1 and ID2
2315 
2316      OPEN contact_csr(lr_ctcv_rec_type_in.cro_code, lr_ctcv_rec_type_in.cpl_id);
2317      FETCH contact_csr INTO l_access_level;
2318      CLOSE contact_csr;
2319 
2320      IF (l_access_level = 'S')  THEN
2321 
2322         okl_la_validation_util_pvt.VALIDATE_CONTACT_JTOT (p_api_version    => p_api_version,
2323                                                           p_init_msg_list  => OKC_API.G_FALSE,
2324                                                           x_return_status  => x_return_status,
2325                                                           x_msg_count      => x_msg_count,
2326                                                           x_msg_data       => x_msg_data,
2327                                                           p_object_name    => lr_ctcv_rec_type_in.jtot_object1_code,
2328                                                           p_id1            => lr_ctcv_rec_type_in.object1_id1,
2329                                                           p_id2            => lr_ctcv_rec_type_in.object1_id2);
2330         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2331               RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2332         ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2333               RAISE OKC_API.G_EXCEPTION_ERROR;
2334         END IF;
2335 
2336      END IF;
2337 
2338 ----  Changes End
2339 
2340 
2341     OKC_CONTRACT_PARTY_PUB.create_contact(p_api_version   => p_api_version,
2342                                           p_init_msg_list => p_init_msg_list,
2343                                           x_return_status => x_return_status,
2344                                           x_msg_count     => x_msg_count,
2345                                           x_msg_data      => x_msg_data,
2346                                           p_ctcv_rec      => lr_ctcv_rec_type_in,
2347                                           x_ctcv_rec      => lr_ctcv_rec_type_out);
2348     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2349        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2350     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2351        RAISE OKC_API.G_EXCEPTION_ERROR;
2352     END IF;
2353     -- Since we are creatieng a wrapper over the okc
2354     -- we need to migrate from OKC declared ctcv record type
2355     -- to locally declared ctcv record as process of input
2356     migrate_okc_okl_contact(lr_ctcv_rec_type_out,
2357                           x_ctcv_rec);
2358 
2359      --code to flip status to 'INCOMPLETE' for lease contract if this is an edit point
2360      -- edit points for lease contract are any modifications between statuses
2361      -- 'PASSED' and 'APPROVED'
2362     IF (x_ctcv_rec.dnz_chr_id IS NOT NULL) AND (x_ctcv_rec.dnz_chr_id <> OKL_API.G_MISS_NUM) THEN
2363 
2364           okl_contract_status_pub.cascade_lease_status_edit
2365             (p_api_version     => p_api_version,
2366              p_init_msg_list   => p_init_msg_list,
2367              x_return_status   => x_return_status,
2368              x_msg_count       => x_msg_count,
2369              x_msg_data        => x_msg_data,
2370              p_chr_id          => x_ctcv_rec.dnz_chr_id);
2371 
2372         IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
2373             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2374         ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
2375             RAISE OKC_API.G_EXCEPTION_ERROR;
2376         END IF;
2377 
2378      END IF;
2379 
2380     OKC_API.END_ACTIVITY (x_msg_count,
2381                           x_msg_data );
2382   EXCEPTION
2383     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2384     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2385                                l_api_name,
2386                                G_PKG_NAME,
2387                                'OKC_API.G_RET_STS_ERROR',
2388                                x_msg_count,
2389                                x_msg_data,
2390                                '_PVT');
2391     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2392     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
2393                                l_api_name,
2394                                G_PKG_NAME,
2395                                'OKC_API.G_RET_STS_UNEXP_ERROR',
2396                                x_msg_count,
2397                                x_msg_data,
2398                                '_PVT');
2399     WHEN OTHERS THEN
2400     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
2401                               l_api_name,
2402                               G_PKG_NAME,
2403                               'OTHERS',
2404                               x_msg_count,
2405                               x_msg_data,
2406                               '_PVT');
2407    END create_contact;
2408 --------------------------------------------------------------------------------------------------------------
2409   PROCEDURE create_contact(
2410     p_api_version   IN NUMBER,
2411     p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2412     x_return_status OUT NOCOPY VARCHAR2,
2413     x_msg_count     OUT NOCOPY NUMBER,
2414     x_msg_data      OUT NOCOPY VARCHAR2,
2415     p_ctcv_tbl      IN  ctcv_tbl_type,
2416     x_ctcv_tbl      OUT NOCOPY  ctcv_tbl_type) AS
2417 
2418     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_CREATE_CONTACT';
2419     i                              NUMBER := 0;
2420   BEGIN
2421      OKC_API.init_msg_list(p_init_msg_list);
2422      x_return_status:= OKC_API.G_RET_STS_SUCCESS;
2423      IF (p_ctcv_tbl.COUNT>0) THEN
2424        i := p_ctcv_tbl.FIRST;
2425        LOOP
2426          create_contact(p_api_version   =>p_api_version,
2427                         p_init_msg_list =>OKC_API.G_FALSE,
2428                         x_return_status =>x_return_status,
2429                         x_msg_count     =>x_msg_count,
2430                         x_msg_data      =>x_msg_data,
2431                         p_ctcv_rec      =>p_ctcv_tbl(i),
2432                         x_ctcv_rec      =>x_ctcv_tbl(i));
2433          IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2434             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR);
2435          ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2436             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_ERROR);
2437          END IF;
2438          EXIT WHEN (i=p_ctcv_tbl.LAST);
2439          i := p_ctcv_tbl.NEXT(i);
2440        END LOOP;
2441        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2442          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2443        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2444          RAISE OKC_API.G_EXCEPTION_ERROR;
2445        END IF;
2446      END IF;
2447   EXCEPTION
2448     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2449     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2450                                l_api_name,
2451                                G_PKG_NAME,
2452                                'OKC_API.G_RET_STS_ERROR',
2453                                x_msg_count,
2454                                x_msg_data,
2455                                '_PVT');
2456     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2457     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
2458                                l_api_name,
2459                                G_PKG_NAME,
2460                                'OKC_API.G_RET_STS_UNEXP_ERROR',
2461                                x_msg_count,
2462                                x_msg_data,
2463                                '_PVT');
2464     WHEN OTHERS THEN
2465     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
2466                               l_api_name,
2467                               G_PKG_NAME,
2468                               'OTHERS',
2469                               x_msg_count,
2470                               x_msg_data,
2471                               '_PVT');
2472    END create_contact;
2473 --------------------------------------------------------------------------------------------------------------
2474   PROCEDURE update_contact(
2475     p_api_version                  IN NUMBER,
2476     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2477     x_return_status                OUT NOCOPY VARCHAR2,
2478     x_msg_count                    OUT NOCOPY NUMBER,
2479     x_msg_data                     OUT NOCOPY VARCHAR2,
2480     p_ctcv_rec                     IN ctcv_rec_type,
2481     x_ctcv_rec                     OUT NOCOPY ctcv_rec_type) AS
2482 
2483     lr_ctcv_rec_type_in            OKC_CONTRACT_PARTY_PUB.ctcv_rec_type;
2484     lr_ctcv_rec_type_out           OKC_CONTRACT_PARTY_PUB.ctcv_rec_type;
2485     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_UPDATE_CONTACT';
2486 
2487     CURSOR contact_csr(p_cro_code VARCHAR2, p_cpl_id NUMBER)  IS
2488     SELECT  access_level
2489     FROM    OKC_CONTACT_SOURCES a, okc_k_party_roles_b b
2490     WHERE  a.cro_code = p_cro_code
2491     AND    b.id       = p_cpl_id
2492     AND    a.rle_code = b.rle_code
2493     AND    a.buy_or_sell = 'S';
2494 
2495 
2496     l_access_level OKC_CONTACT_SOURCES.access_level%TYPE;
2497 
2498 
2499   BEGIN
2500     x_return_status          := OKC_API.G_RET_STS_SUCCESS;
2501     -- Call start_activity to create savepoint, check compatibility
2502     -- and initialize message list
2503     x_return_status := OKC_API.START_ACTIVITY (l_api_name
2504                                                ,p_init_msg_list
2505                                                ,'_PVT'
2506                                                ,x_return_status);
2507     -- Check if activity started successfully
2508     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2509        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2510     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2511        RAISE OKC_API.G_EXCEPTION_ERROR;
2512     END IF;
2513     -- Since we are creatieng a wrapper over the okc
2514     -- we need to migrate from locally declared ctcv record
2515     -- to OKC declared ctcv record type as process of input
2516     migrate_okl_okc_contact(p_ctcv_rec,
2517                           lr_ctcv_rec_type_in);
2518 
2519 ----- Changes by Kanti
2520 ----- Validate the JTOT Object code, ID1 and ID2
2521 
2522      OPEN contact_csr(lr_ctcv_rec_type_in.cro_code, lr_ctcv_rec_type_in.cpl_id);
2523      FETCH contact_csr INTO l_access_level;
2524      CLOSE contact_csr;
2525 
2526      IF (l_access_level = 'S') THEN
2527 
2528         okl_la_validation_util_pvt.VALIDATE_CONTACT_JTOT (p_api_version    => p_api_version,
2529                                                           p_init_msg_list  => OKC_API.G_FALSE,
2530                                                           x_return_status  => x_return_status,
2531                                                           x_msg_count      => x_msg_count,
2532                                                           x_msg_data       => x_msg_data,
2533                                                           p_object_name    => lr_ctcv_rec_type_in.jtot_object1_code,
2534                                                           p_id1            => lr_ctcv_rec_type_in.object1_id1,
2535                                                           p_id2            => lr_ctcv_rec_type_in.object1_id2);
2536       IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2537               RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2538         ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2539               RAISE OKC_API.G_EXCEPTION_ERROR;
2540         END IF;
2541 
2542     END IF;
2543 
2544 ----  Changes End
2545 
2546 
2547     -- Calling the actual OKC api
2548     OKC_CONTRACT_PARTY_PUB.update_contact(p_api_version   => p_api_version,
2549                                           p_init_msg_list => p_init_msg_list,
2550                                           x_return_status => x_return_status,
2551                                           x_msg_count     => x_msg_count,
2552                                           x_msg_data      => x_msg_data,
2553                                           p_ctcv_rec      => lr_ctcv_rec_type_in,
2554                                           x_ctcv_rec      => lr_ctcv_rec_type_out);
2555     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2556        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2557     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2558        RAISE OKC_API.G_EXCEPTION_ERROR;
2559     END IF;
2560     -- Since we are creatieng a wrapper over the okc
2561     -- we need to migrate from OKC declared ctcv record type
2562     -- to locally declared ctcv record as process of input
2563     migrate_okc_okl_contact(lr_ctcv_rec_type_out,
2564                           x_ctcv_rec);
2565 
2566     --code to flip status to 'INCOMPLETE' for lease contract if this is an edit point
2567     -- edit points for lease contract are any modifications between statuses
2568     -- 'PASSED' and 'APPROVED'
2569         IF (x_ctcv_rec.dnz_chr_id IS NOT NULL) AND (x_ctcv_rec.dnz_chr_id <> OKL_API.G_MISS_NUM) THEN
2570 
2571           okl_contract_status_pub.cascade_lease_status_edit
2572             (p_api_version     => p_api_version,
2573              p_init_msg_list   => p_init_msg_list,
2574              x_return_status   => x_return_status,
2575              x_msg_count       => x_msg_count,
2576              x_msg_data        => x_msg_data,
2577              p_chr_id          => x_ctcv_rec.dnz_chr_id);
2578 
2579         IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
2580             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2581         ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
2582             RAISE OKC_API.G_EXCEPTION_ERROR;
2583         END IF;
2584 
2585      END IF;
2586 
2587     OKC_API.END_ACTIVITY (x_msg_count,
2588                           x_msg_data );
2589   EXCEPTION
2590     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2591     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2592                                l_api_name,
2593                                G_PKG_NAME,
2594                                'OKC_API.G_RET_STS_ERROR',
2595                                x_msg_count,
2596                                x_msg_data,
2597                                '_PVT');
2598     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2599     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
2600                                l_api_name,
2601                                G_PKG_NAME,
2602                                'OKC_API.G_RET_STS_UNEXP_ERROR',
2603                                x_msg_count,
2604                                x_msg_data,
2605                                '_PVT');
2606     WHEN OTHERS THEN
2607     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
2608                               l_api_name,
2609                               G_PKG_NAME,
2610                               'OTHERS',
2611                               x_msg_count,
2612                               x_msg_data,
2613                               '_PVT');
2614    END update_contact;
2615 --------------------------------------------------------------------------------------------------------------
2616   PROCEDURE update_contact(
2617     p_api_version   IN NUMBER,
2618     p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2619     x_return_status OUT NOCOPY VARCHAR2,
2620     x_msg_count     OUT NOCOPY NUMBER,
2621     x_msg_data      OUT NOCOPY VARCHAR2,
2622     p_ctcv_tbl      IN  ctcv_tbl_type,
2623     x_ctcv_tbl      OUT NOCOPY  ctcv_tbl_type) AS
2624 
2625     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_UPDATE_CONTACT';
2626     i                              NUMBER := 0;
2627   BEGIN
2628      OKC_API.init_msg_list(p_init_msg_list);
2629      x_return_status:= OKC_API.G_RET_STS_SUCCESS;
2630      IF (p_ctcv_tbl.COUNT>0) THEN
2631        i := p_ctcv_tbl.FIRST;
2632        LOOP
2633          update_contact(p_api_version   =>p_api_version,
2634                              p_init_msg_list =>OKC_API.G_FALSE,
2635                              x_return_status =>x_return_status,
2636                              x_msg_count     =>x_msg_count,
2637                              x_msg_data      =>x_msg_data,
2638                              p_ctcv_rec      =>p_ctcv_tbl(i),
2639                              x_ctcv_rec      =>x_ctcv_tbl(i));
2640          IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2641             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR);
2642          ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2643             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_ERROR);
2644          END IF;
2645          EXIT WHEN (i=p_ctcv_tbl.LAST);
2646          i := p_ctcv_tbl.NEXT(i);
2647        END LOOP;
2648        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2649          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2650        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2651          RAISE OKC_API.G_EXCEPTION_ERROR;
2652        END IF;
2653      END IF;
2654   EXCEPTION
2655     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2656     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2657                                l_api_name,
2658                                G_PKG_NAME,
2659                                'OKC_API.G_RET_STS_ERROR',
2660                                x_msg_count,
2661                                x_msg_data,
2662                                '_PVT');
2663     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2664     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
2665                                l_api_name,
2666                                G_PKG_NAME,
2667                                'OKC_API.G_RET_STS_UNEXP_ERROR',
2668                                x_msg_count,
2669                                x_msg_data,
2670                                '_PVT');
2671     WHEN OTHERS THEN
2672     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
2673                               l_api_name,
2674                               G_PKG_NAME,
2675                               'OTHERS',
2676                               x_msg_count,
2677                               x_msg_data,
2678                               '_PVT');
2679    END update_contact;
2680 --------------------------------------------------------------------------------------------------------------
2681   PROCEDURE delete_contact(
2682     p_api_version   IN  NUMBER,
2683     p_init_msg_list IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
2684     x_return_status OUT NOCOPY  VARCHAR2,
2685     x_msg_count     OUT NOCOPY  NUMBER,
2686     x_msg_data      OUT NOCOPY  VARCHAR2,
2687     p_ctcv_rec      IN  ctcv_rec_type) AS
2688 
2689     lr_ctcv_rec_type_in            OKC_CONTRACT_PARTY_PUB.ctcv_rec_type;
2690     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_DELETE_CONTACT';
2691 
2692     --cursor to find out chr id required to flip status at edit point
2693     CURSOR chr_id_crs (p_ctc_id IN NUMBER) IS
2694     SELECT DNZ_CHR_ID
2695     FROM   OKC_CONTACTS
2696     WHERE  ID = P_CTC_ID;
2697 
2698     l_dnz_chr_id   OKC_CONTACTS.dnz_chr_id%TYPE;
2699 
2700   BEGIN
2701     x_return_status          := OKC_API.G_RET_STS_SUCCESS;
2702     -- Call start_activity to create savepoint, check compatibility
2703     -- and initialize message list
2704     x_return_status := OKC_API.START_ACTIVITY (l_api_name
2705                                                ,p_init_msg_list
2706                                                ,'_PVT'
2707                                                ,x_return_status);
2708     -- Check if activity started successfully
2709     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2710        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2711     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2712        RAISE OKC_API.G_EXCEPTION_ERROR;
2713     END IF;
2714 
2715      --code to flip status to 'INCOMPLETE' for lease contract if this is an edit point
2716      -- edit points for lease contract are any modifications between statuses
2717      -- 'PASSED' and 'APPROVED'
2718 
2719      IF (p_ctcv_rec.dnz_chr_id IS NULL) OR (p_ctcv_rec.dnz_chr_id = OKL_API.G_MISS_NUM) THEN
2720          OPEN chr_id_crs(p_ctc_id => p_ctcv_rec.id);
2721          FETCH chr_id_crs INTO l_dnz_chr_id;
2722          IF chr_id_crs%NOTFOUND THEN
2723             NULL; --this error should have been trapped earlier (party not attached to chr)
2724          END IF;
2725          CLOSE chr_id_crs;
2726      ELSE
2727          l_dnz_chr_id := p_ctcv_rec.dnz_chr_id;
2728      END IF;
2729 
2730      IF (l_dnz_chr_id IS NOT NULL) AND (l_dnz_chr_id <> OKL_API.G_MISS_NUM) THEN
2731 
2732           okl_contract_status_pub.cascade_lease_status_edit
2733             (p_api_version     => p_api_version,
2734              p_init_msg_list   => p_init_msg_list,
2735              x_return_status   => x_return_status,
2736              x_msg_count       => x_msg_count,
2737              x_msg_data        => x_msg_data,
2738              p_chr_id          => l_dnz_chr_id);
2739 
2740         IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
2741             RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2742         ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
2743             RAISE OKC_API.G_EXCEPTION_ERROR;
2744         END IF;
2745 
2746      END IF;
2747 
2748     -- Since we are creatieng a wrapper over the okc
2749     -- we need to migrate from locally declared ctcv record
2750     -- to OKC declared ctcv record type as process of input
2751     migrate_okl_okc_contact(p_ctcv_rec,
2752                           lr_ctcv_rec_type_in);
2753     -- Calling the actual OKC api
2754     OKC_CONTRACT_PARTY_PUB.delete_contact(p_api_version   => p_api_version,
2755                                           p_init_msg_list => p_init_msg_list,
2756                                           x_return_status => x_return_status,
2757                                           x_msg_count     => x_msg_count,
2758                                           x_msg_data      => x_msg_data,
2759                                           p_ctcv_rec      => lr_ctcv_rec_type_in);
2760     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2761        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2762     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2763        RAISE OKC_API.G_EXCEPTION_ERROR;
2764     END IF;
2765     OKC_API.END_ACTIVITY (x_msg_count,
2766                           x_msg_data );
2767   EXCEPTION
2768     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2769     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2770                                l_api_name,
2771                                G_PKG_NAME,
2772                                'OKC_API.G_RET_STS_ERROR',
2773                                x_msg_count,
2774                                x_msg_data,
2775                                '_PVT');
2776     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2777     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
2778                                l_api_name,
2779                                G_PKG_NAME,
2780                                'OKC_API.G_RET_STS_UNEXP_ERROR',
2781                                x_msg_count,
2782                                x_msg_data,
2783                                '_PVT');
2784     WHEN OTHERS THEN
2785     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
2786                               l_api_name,
2787                               G_PKG_NAME,
2788                               'OTHERS',
2789                               x_msg_count,
2790                               x_msg_data,
2791                               '_PVT');
2792    END delete_contact;
2793 -------------------------------------------------------------------------------------------------------
2794   PROCEDURE delete_contact(
2795     p_api_version   IN NUMBER,
2796     p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2797     x_return_status OUT NOCOPY VARCHAR2,
2798     x_msg_count     OUT NOCOPY NUMBER,
2799     x_msg_data      OUT NOCOPY VARCHAR2,
2800     p_ctcv_tbl      IN  ctcv_tbl_type) AS
2801 
2802     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_DELETE_CONTACT';
2803     i                              NUMBER := 0;
2804   BEGIN
2805      OKC_API.init_msg_list(p_init_msg_list);
2806      x_return_status:= OKC_API.G_RET_STS_SUCCESS;
2807      IF (p_ctcv_tbl.COUNT>0) THEN
2808        i := p_ctcv_tbl.FIRST;
2809        LOOP
2810          delete_contact(p_api_version   =>p_api_version,
2811                              p_init_msg_list =>OKC_API.G_FALSE,
2812                              x_return_status =>x_return_status,
2813                              x_msg_count     =>x_msg_count,
2814                              x_msg_data      =>x_msg_data,
2815                              p_ctcv_rec      =>p_ctcv_tbl(i));
2816          IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2817             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR);
2818          ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2819             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_ERROR);
2820          END IF;
2821          EXIT WHEN (i=p_ctcv_tbl.LAST);
2822          i := p_ctcv_tbl.NEXT(i);
2823        END LOOP;
2824        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2825          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2826        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2827          RAISE OKC_API.G_EXCEPTION_ERROR;
2828        END IF;
2829      END IF;
2830   EXCEPTION
2831     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2832     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2833                                l_api_name,
2834                                G_PKG_NAME,
2835                                'OKC_API.G_RET_STS_ERROR',
2836                                x_msg_count,
2837                                x_msg_data,
2838                                '_PVT');
2839     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2840     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
2841                                l_api_name,
2842                                G_PKG_NAME,
2843                                'OKC_API.G_RET_STS_UNEXP_ERROR',
2844                                x_msg_count,
2845                                x_msg_data,
2846                                '_PVT');
2847     WHEN OTHERS THEN
2848     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
2849                               l_api_name,
2850                               G_PKG_NAME,
2851                               'OTHERS',
2852                               x_msg_count,
2853                               x_msg_data,
2854                               '_PVT');
2855    END delete_contact;
2856 
2857 ---------------------------------------------------------------------------------------------------------
2858 -- Badri
2859   PROCEDURE create_contract_header(
2860     p_api_version                  IN NUMBER,
2861     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2862     x_return_status                OUT NOCOPY VARCHAR2,
2863     x_msg_count                    OUT NOCOPY NUMBER,
2864     x_msg_data                     OUT NOCOPY VARCHAR2,
2865     p_chrv_rec                     IN  chrv_rec_type,
2866     x_chrv_rec                     OUT NOCOPY  chrv_rec_type) IS
2867 
2868     l_chrv_rec         chrv_rec_type;
2869     l_okc_chrv_rec_in  okc_contract_pub.chrv_rec_type;
2870     l_okc_chrv_rec_out okc_contract_pub.chrv_rec_type;
2871 
2872     l_api_name      CONSTANT VARCHAR2(30) := 'CREATE_CONTRACT_HEADER';
2873     l_api_version   CONSTANT NUMBER   := 1.0;
2874     l_return_status VARCHAR2(1)       := OKC_API.G_RET_STS_SUCCESS;
2875   BEGIN
2876     -- call START_ACTIVITY to create savepoint, check compatibility
2877     -- and initialize message list
2878     l_return_status := OKC_API.START_ACTIVITY(
2879                     p_api_name      => l_api_name,
2880                     p_pkg_name      => g_pkg_name,
2881                     p_init_msg_list => p_init_msg_list,
2882                     l_api_version   => l_api_version,
2883                     p_api_version   => p_api_version,
2884                     p_api_type      => g_api_type,
2885                     x_return_status => x_return_status);
2886 
2887     -- check if activity started successfully
2888     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2889        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2890     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2891        RAISE OKC_API.G_EXCEPTION_ERROR;
2892     END IF;
2893 
2894     l_chrv_rec := p_chrv_rec;
2895     -- call procedure in complex API
2896 
2897     migrate_chrv(p_from => l_chrv_rec,
2898                  p_to   => l_okc_chrv_rec_in);
2899 
2900     OKC_CONTRACT_PUB.create_contract_header(
2901      p_api_version      => p_api_version,
2902      p_init_msg_list    => p_init_msg_list,
2903       x_return_status   => x_return_status,
2904       x_msg_count       => x_msg_count,
2905       x_msg_data        => x_msg_data,
2906       p_chrv_rec        => l_okc_chrv_rec_in,
2907       x_chrv_rec        => l_okc_chrv_rec_out);
2908 
2909     -- check return status
2910     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
2911       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2912     ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
2913       RAISE OKC_API.G_EXCEPTION_ERROR;
2914     END IF;
2915 
2916     migrate_chrv(p_from => l_okc_chrv_rec_out,
2917                  p_to   => x_chrv_rec);
2918 
2919     -- end activity
2920     OKC_API.END_ACTIVITY(   x_msg_count     => x_msg_count,
2921                         x_msg_data      => x_msg_data);
2922   EXCEPTION
2923     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2924       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2925                         p_api_name  => l_api_name,
2926                         p_pkg_name  => g_pkg_name,
2927                         p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
2928                         x_msg_count => x_msg_count,
2929                         x_msg_data  => x_msg_data,
2930                         p_api_type  => g_api_type);
2931 
2932     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2933       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2934                         p_api_name  => l_api_name,
2935                         p_pkg_name  => g_pkg_name,
2936                         p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
2937                         x_msg_count => x_msg_count,
2938                         x_msg_data  => x_msg_data,
2939                         p_api_type  => g_api_type);
2940 
2941     WHEN OTHERS THEN
2942       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
2943                         p_api_name  => l_api_name,
2944                         p_pkg_name  => g_pkg_name,
2945                         p_exc_name  => 'OTHERS',
2946                         x_msg_count => x_msg_count,
2947                         x_msg_data  => x_msg_data,
2948                         p_api_type  => g_api_type);
2949 
2950 END create_contract_header;
2951 
2952 
2953 PROCEDURE update_contract_header(
2954     p_api_version                  IN NUMBER,
2955     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2956     x_return_status                OUT NOCOPY VARCHAR2,
2957     x_msg_count                    OUT NOCOPY NUMBER,
2958     x_msg_data                     OUT NOCOPY VARCHAR2,
2959     p_restricted_update            IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
2960     p_chrv_rec                     IN chrv_rec_type,
2961     x_chrv_rec                     OUT NOCOPY chrv_rec_type) IS
2962 
2963     l_chrv_rec      chrv_rec_type;
2964     l_okc_chrv_rec_in  okc_contract_pub.chrv_rec_type;
2965     l_okc_chrv_rec_out okc_contract_pub.chrv_rec_type;
2966     l_api_name      CONSTANT VARCHAR2(30) := 'UPDATE_CONTRACT_HEADER';
2967     l_api_version   CONSTANT NUMBER   := 1.0;
2968     l_return_status VARCHAR2(1)       := OKC_API.G_RET_STS_SUCCESS;
2969   BEGIN
2970     -- call START_ACTIVITY to create savepoint, check compatibility
2971     -- and initialize message list
2972     l_return_status := OKC_API.START_ACTIVITY(
2973                     p_api_name      => l_api_name,
2974                     p_pkg_name      => g_pkg_name,
2975                     p_init_msg_list => p_init_msg_list,
2976                     l_api_version   => l_api_version,
2977                     p_api_version   => p_api_version,
2978                     p_api_type      => g_api_type,
2979                     x_return_status => x_return_status);
2980 
2981     -- check if activity started successfully
2982     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2983        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2984     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2985        RAISE OKC_API.G_EXCEPTION_ERROR;
2986     END IF;
2987 
2988     l_chrv_rec := p_chrv_rec;
2989 
2990     migrate_chrv(p_from => l_chrv_rec,
2991                  p_to   => l_okc_chrv_rec_in);
2992 
2993 
2994     -- call procedure in complex API
2995     OKC_CONTRACT_PUB.update_contract_header(
2996      p_api_version          => p_api_version,
2997      p_init_msg_list        => p_init_msg_list,
2998       x_return_status       => x_return_status,
2999       x_msg_count           => x_msg_count,
3000       x_msg_data            => x_msg_data,
3001      p_restricted_update    => p_restricted_update,
3002       p_chrv_rec            => l_okc_chrv_rec_in,
3003       x_chrv_rec            => l_okc_chrv_rec_out);
3004 
3005     -- check return status
3006     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
3007       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3008     ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
3009       RAISE OKC_API.G_EXCEPTION_ERROR;
3010     END IF;
3011 
3012     migrate_chrv(p_from => l_okc_chrv_rec_out,
3013                  p_to   => x_chrv_rec);
3014 
3015         -- end activity
3016     OKC_API.END_ACTIVITY(   x_msg_count     => x_msg_count,
3017                         x_msg_data      => x_msg_data);
3018   EXCEPTION
3019     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3020       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3021                         p_api_name  => l_api_name,
3022                         p_pkg_name  => g_pkg_name,
3023                         p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
3024                         x_msg_count => x_msg_count,
3025                         x_msg_data  => x_msg_data,
3026                         p_api_type  => g_api_type);
3027 
3028     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3029       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3030                         p_api_name  => l_api_name,
3031                         p_pkg_name  => g_pkg_name,
3032                         p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
3033                         x_msg_count => x_msg_count,
3034                         x_msg_data  => x_msg_data,
3035                         p_api_type  => g_api_type);
3036 
3037     WHEN OTHERS THEN
3038       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3039                         p_api_name  => l_api_name,
3040                         p_pkg_name  => g_pkg_name,
3041                         p_exc_name  => 'OTHERS',
3042                         x_msg_count => x_msg_count,
3043                         x_msg_data  => x_msg_data,
3044                         p_api_type  => g_api_type);
3045 
3046   END update_contract_header;
3047 
3048 
3049   PROCEDURE delete_contract_header(
3050     p_api_version                  IN NUMBER,
3051     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3052     x_return_status                OUT NOCOPY VARCHAR2,
3053     x_msg_count                    OUT NOCOPY NUMBER,
3054     x_msg_data                     OUT NOCOPY VARCHAR2,
3055     p_chrv_rec                     IN chrv_rec_type) IS
3056 
3057     l_chrv_rec      chrv_rec_type;
3058      l_okc_chrv_rec_in  okc_contract_pub.chrv_rec_type;
3059     l_okc_chrv_rec_out okc_contract_pub.chrv_rec_type;
3060     l_api_name      CONSTANT VARCHAR2(30) := 'DELETE_CONTRACT_HEADER';
3061     l_api_version   CONSTANT NUMBER   := 1.0;
3062     l_return_status VARCHAR2(1)       := OKC_API.G_RET_STS_SUCCESS;
3063   BEGIN
3064     -- call START_ACTIVITY to create savepoint, check compatibility
3065     -- and initialize message list
3066     l_return_status := OKC_API.START_ACTIVITY(
3067                     p_api_name      => l_api_name,
3068                     p_pkg_name      => g_pkg_name,
3069                     p_init_msg_list => p_init_msg_list,
3070                     l_api_version   => l_api_version,
3071                     p_api_version   => p_api_version,
3072                     p_api_type      => g_api_type,
3073                     x_return_status => x_return_status);
3074 
3075     -- check if activity started successfully
3076     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3077        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3078     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3079        RAISE OKC_API.G_EXCEPTION_ERROR;
3080     END IF;
3081 
3082     l_chrv_rec := p_chrv_rec;
3083 
3084     migrate_chrv(p_from => l_chrv_rec,
3085                  p_to   => l_okc_chrv_rec_in);
3086 
3087     -- call procedure in complex API
3088     OKC_CONTRACT_PUB.delete_contract_header(
3089      p_api_version      => p_api_version,
3090      p_init_msg_list    => p_init_msg_list,
3091      x_return_status    => x_return_status,
3092       x_msg_count       => x_msg_count,
3093       x_msg_data        => x_msg_data,
3094       p_chrv_rec        => l_okc_chrv_rec_in);
3095 
3096     -- check return status
3097     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
3098       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3099     ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
3100       RAISE OKC_API.G_EXCEPTION_ERROR;
3101     END IF;
3102 
3103     -- end activity
3104     OKC_API.END_ACTIVITY(   x_msg_count     => x_msg_count,
3105                         x_msg_data      => x_msg_data);
3106   EXCEPTION
3107     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3108       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3109                         p_api_name  => l_api_name,
3110                         p_pkg_name  => g_pkg_name,
3111                         p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
3112                         x_msg_count => x_msg_count,
3113                         x_msg_data  => x_msg_data,
3114                         p_api_type  => g_api_type);
3115 
3116     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3117       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3118                         p_api_name  => l_api_name,
3119                         p_pkg_name  => g_pkg_name,
3120                         p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
3121                         x_msg_count => x_msg_count,
3122                         x_msg_data  => x_msg_data,
3123                         p_api_type  => g_api_type);
3124 
3125     WHEN OTHERS THEN
3126       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3127                         p_api_name  => l_api_name,
3128                         p_pkg_name  => g_pkg_name,
3129                         p_exc_name  => 'OTHERS',
3130                         x_msg_count => x_msg_count,
3131                         x_msg_data  => x_msg_data,
3132                         p_api_type  => g_api_type);
3133 
3134   END delete_contract_header;
3135 
3136 
3137   PROCEDURE lock_contract_header(
3138     p_api_version                  IN NUMBER,
3139     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3140     x_return_status                OUT NOCOPY VARCHAR2,
3141     x_msg_count                    OUT NOCOPY NUMBER,
3142     x_msg_data                     OUT NOCOPY VARCHAR2,
3143     p_chrv_rec                     IN chrv_rec_type) IS
3144 
3145     l_chrv_rec      chrv_rec_type;
3146     l_okc_chrv_rec_in  okc_contract_pub.chrv_rec_type;
3147     l_okc_chrv_rec_out okc_contract_pub.chrv_rec_type;
3148     l_api_name      CONSTANT VARCHAR2(30) := 'LOCK_CONTRACT_HEADER';
3149     l_api_version   CONSTANT NUMBER   := 1.0;
3150     l_return_status VARCHAR2(1)       := OKC_API.G_RET_STS_SUCCESS;
3151   BEGIN
3152     -- call START_ACTIVITY to create savepoint, check compatibility
3153     -- and initialize message list
3154     l_return_status := OKC_API.START_ACTIVITY(
3155                     p_api_name      => l_api_name,
3156                     p_pkg_name      => g_pkg_name,
3157                     p_init_msg_list => p_init_msg_list,
3158                     l_api_version   => l_api_version,
3159                     p_api_version   => p_api_version,
3160                     p_api_type      => g_api_type,
3161                     x_return_status => x_return_status);
3162 
3163     -- check if activity started successfully
3164     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3165        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3166     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3167        RAISE OKC_API.G_EXCEPTION_ERROR;
3168     END IF;
3169 
3170     l_chrv_rec := p_chrv_rec;
3171 
3172     migrate_chrv(p_from => l_chrv_rec,
3173                  p_to   => l_okc_chrv_rec_in);
3174        -- call procedure in complex API
3175     OKC_CONTRACT_PUB.lock_contract_header(
3176      p_api_version      => p_api_version,
3177      p_init_msg_list    => p_init_msg_list,
3178      x_return_status    => x_return_status,
3179       x_msg_count       => x_msg_count,
3180       x_msg_data        => x_msg_data,
3181       p_chrv_rec        => l_okc_chrv_rec_in);
3182 
3183     -- check return status
3184     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
3185       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3186     ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
3187       RAISE OKC_API.G_EXCEPTION_ERROR;
3188     END IF;
3189 
3190     -- end activity
3191     OKC_API.END_ACTIVITY(   x_msg_count     => x_msg_count,
3192                         x_msg_data      => x_msg_data);
3193   EXCEPTION
3194     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3195       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3196                         p_api_name  => l_api_name,
3197                         p_pkg_name  => g_pkg_name,
3198                         p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
3199                         x_msg_count => x_msg_count,
3200                         x_msg_data  => x_msg_data,
3201                         p_api_type  => g_api_type);
3202 
3203     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3204       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3205                         p_api_name  => l_api_name,
3206                         p_pkg_name  => g_pkg_name,
3207                         p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
3208                         x_msg_count => x_msg_count,
3209                         x_msg_data  => x_msg_data,
3210                         p_api_type  => g_api_type);
3211 
3212     WHEN OTHERS THEN
3213       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3214                         p_api_name  => l_api_name,
3215                         p_pkg_name  => g_pkg_name,
3216                         p_exc_name  => 'OTHERS',
3217                         x_msg_count => x_msg_count,
3218                         x_msg_data  => x_msg_data,
3219                         p_api_type  => g_api_type);
3220 
3221   END lock_contract_header;
3222 
3223   PROCEDURE validate_contract_header(
3224     p_api_version                  IN NUMBER,
3225     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3226     x_return_status                OUT NOCOPY VARCHAR2,
3227     x_msg_count                    OUT NOCOPY NUMBER,
3228     x_msg_data                     OUT NOCOPY VARCHAR2,
3229     p_chrv_rec                     IN chrv_rec_type) IS
3230 
3231     l_chrv_rec      chrv_rec_type;
3232     l_okc_chrv_rec_in  okc_contract_pub.chrv_rec_type;
3233     l_okc_chrv_rec_out okc_contract_pub.chrv_rec_type;
3234     l_api_name      CONSTANT VARCHAR2(30) := 'VALIDATE_CONTRACT_HEADER';
3235     l_api_version   CONSTANT NUMBER   := 1.0;
3236     l_return_status VARCHAR2(1)       := OKC_API.G_RET_STS_SUCCESS;
3237   BEGIN
3238     -- call START_ACTIVITY to create savepoint, check compatibility
3239     -- and initialize message list
3240     l_return_status := OKC_API.START_ACTIVITY(
3241                     p_api_name      => l_api_name,
3242                     p_pkg_name      => g_pkg_name,
3243                     p_init_msg_list => p_init_msg_list,
3244                     l_api_version   => l_api_version,
3245                     p_api_version   => p_api_version,
3246                     p_api_type      => g_api_type,
3247                     x_return_status => x_return_status);
3248 
3249     -- check if activity started successfully
3250     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3251        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3252     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3253        RAISE OKC_API.G_EXCEPTION_ERROR;
3254     END IF;
3255 
3256     l_chrv_rec := p_chrv_rec;
3257     migrate_chrv(p_from => l_chrv_rec,
3258                  p_to   => l_okc_chrv_rec_in);
3259 
3260     -- call procedure in complex API
3261     OKC_CONTRACT_PUB.validate_contract_header(
3262      p_api_version      => p_api_version,
3263      p_init_msg_list    => p_init_msg_list,
3264       x_return_status   => x_return_status,
3265       x_msg_count       => x_msg_count,
3266       x_msg_data        => x_msg_data,
3267       p_chrv_rec        => l_okc_chrv_rec_in);
3268 
3269     -- check return status
3270     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
3271       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3272     ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
3273       RAISE OKC_API.G_EXCEPTION_ERROR;
3274     END IF;
3275 
3276     -- end activity
3277     OKC_API.END_ACTIVITY(   x_msg_count     => x_msg_count,
3278                         x_msg_data      => x_msg_data);
3279   EXCEPTION
3280     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3281       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3282                         p_api_name  => l_api_name,
3283                         p_pkg_name  => g_pkg_name,
3284                         p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
3285                         x_msg_count => x_msg_count,
3286                         x_msg_data  => x_msg_data,
3287                         p_api_type  => g_api_type);
3288 
3289     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3290       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3291                         p_api_name  => l_api_name,
3292                         p_pkg_name  => g_pkg_name,
3293                         p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
3294                         x_msg_count => x_msg_count,
3295                         x_msg_data  => x_msg_data,
3296                         p_api_type  => g_api_type);
3297 
3298     WHEN OTHERS THEN
3299       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3300                         p_api_name  => l_api_name,
3301                         p_pkg_name  => g_pkg_name,
3302                         p_exc_name  => 'OTHERS',
3303                         x_msg_count => x_msg_count,
3304                         x_msg_data  => x_msg_data,
3305                         p_api_type  => g_api_type);
3306 
3307   END validate_contract_header;
3308 
3309 
3310   PROCEDURE create_contract_line(
3311     p_api_version                  IN NUMBER,
3312     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3313     x_return_status                OUT NOCOPY VARCHAR2,
3314     x_msg_count                    OUT NOCOPY NUMBER,
3315     x_msg_data                     OUT NOCOPY VARCHAR2,
3316     p_restricted_update            IN VARCHAR2 DEFAULT 'F',
3317     p_clev_rec                     IN  clev_rec_type,
3318     x_clev_rec                     OUT NOCOPY  clev_rec_type) IS
3319 
3320     l_clev_rec      clev_rec_type;
3321     l_okc_clev_rec_in  okc_contract_pub.clev_rec_type;
3322     l_okc_clev_rec_out okc_contract_pub.clev_rec_type;
3323     l_api_name      CONSTANT VARCHAR2(30) := 'CREATE_CONTRACT_LINE';
3324     l_api_version   CONSTANT NUMBER   := 1.0;
3325     l_return_status VARCHAR2(1)       := OKC_API.G_RET_STS_SUCCESS;
3326   BEGIN
3327     -- call START_ACTIVITY to create savepoint, check compatibility
3328     -- and initialize message list
3329     l_return_status := OKC_API.START_ACTIVITY(
3330                     p_api_name      => l_api_name,
3331                     p_pkg_name      => g_pkg_name,
3332                     p_init_msg_list => p_init_msg_list,
3333                     l_api_version   => l_api_version,
3334                     p_api_version   => p_api_version,
3335                     p_api_type      => g_api_type,
3336                     x_return_status => x_return_status);
3337 
3338     -- check if activity started successfully
3339     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3340        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3341     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3342        RAISE OKC_API.G_EXCEPTION_ERROR;
3343     END IF;
3344 
3345     l_clev_rec := p_clev_rec;
3346     migrate_clev(p_from => l_clev_rec,
3347                  p_to   => l_okc_clev_rec_in);
3348     -- call procedure in complex API
3349     OKC_CONTRACT_PUB.create_contract_line(
3350                      p_api_version        => p_api_version,
3351                      p_init_msg_list      => p_init_msg_list,
3352                      x_return_status      => x_return_status,
3353                      x_msg_count          => x_msg_count,
3354                      x_msg_data           => x_msg_data,
3355                      p_restricted_update  => p_restricted_update,
3356                      p_clev_rec       => l_okc_clev_rec_in,
3357                      x_clev_rec       => l_okc_clev_rec_out);
3358 
3359     -- check return status
3360     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
3361       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3362     ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
3363       RAISE OKC_API.G_EXCEPTION_ERROR;
3364     END IF;
3365 
3366     migrate_clev(p_from => l_okc_clev_rec_out,
3367                  p_to    => x_clev_rec);
3368 
3369     -- end activity
3370     OKC_API.END_ACTIVITY(   x_msg_count     => x_msg_count,
3371                         x_msg_data      => x_msg_data);
3372   EXCEPTION
3373     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3374       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3375                         p_api_name  => l_api_name,
3376                         p_pkg_name  => g_pkg_name,
3377                         p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
3378                         x_msg_count => x_msg_count,
3379                         x_msg_data  => x_msg_data,
3380                         p_api_type  => g_api_type);
3381 
3382     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3383       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3384                         p_api_name  => l_api_name,
3385                         p_pkg_name  => g_pkg_name,
3386                         p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
3387                         x_msg_count => x_msg_count,
3388                         x_msg_data  => x_msg_data,
3389                         p_api_type  => g_api_type);
3390 
3391     WHEN OTHERS THEN
3392       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3393                         p_api_name  => l_api_name,
3394                         p_pkg_name  => g_pkg_name,
3395                         p_exc_name  => 'OTHERS',
3396                         x_msg_count => x_msg_count,
3397                         x_msg_data  => x_msg_data,
3398                         p_api_type  => g_api_type);
3399 
3400   END create_contract_line;
3401 
3402   PROCEDURE create_contract_line(
3403     p_api_version                  IN NUMBER,
3404     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3405     x_return_status                OUT NOCOPY VARCHAR2,
3406     x_msg_count                    OUT NOCOPY NUMBER,
3407     x_msg_data                     OUT NOCOPY VARCHAR2,
3408     p_restricted_update         IN VARCHAR2 DEFAULT 'F',
3409     p_clev_tbl                     IN clev_tbl_type,
3410     x_clev_tbl                     OUT NOCOPY clev_tbl_type) AS
3411 
3412     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_CREATE_LINE';
3413     i                              NUMBER := 0;
3414   BEGIN
3415      OKC_API.init_msg_list(p_init_msg_list);
3416      x_return_status:= OKC_API.G_RET_STS_SUCCESS;
3417      IF (p_clev_tbl.COUNT>0) THEN
3418        i := p_clev_tbl.FIRST;
3419        LOOP
3420          create_contract_line(p_api_version      => p_api_version,
3421                              p_init_msg_list     => OKC_API.G_FALSE,
3422                              x_return_status     => x_return_status,
3423                              x_msg_count         => x_msg_count,
3424                              x_msg_data          => x_msg_data,
3425                              p_restricted_update => p_restricted_update,
3426                              p_clev_rec          =>p_clev_tbl(i),
3427                              x_clev_rec          =>x_clev_tbl(i));
3428          IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3429             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR);
3430          ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3431             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_ERROR);
3432          END IF;
3433          EXIT WHEN (i=p_clev_tbl.LAST);
3434          i := p_clev_tbl.NEXT(i);
3435        END LOOP;
3436        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3437          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3438        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3439          RAISE OKC_API.G_EXCEPTION_ERROR;
3440        END IF;
3441      END IF;
3442   EXCEPTION
3443     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3444     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3445                                l_api_name,
3446                                G_PKG_NAME,
3447                                'OKC_API.G_RET_STS_ERROR',
3448                                x_msg_count,
3449                                x_msg_data,
3450                                '_PVT');
3451     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3452     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
3453                                l_api_name,
3454                                G_PKG_NAME,
3455                                'OKC_API.G_RET_STS_UNEXP_ERROR',
3456                                x_msg_count,
3457                                x_msg_data,
3458                                '_PVT');
3459     WHEN OTHERS THEN
3460     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
3461                               l_api_name,
3462                               G_PKG_NAME,
3463                               'OTHERS',
3464                               x_msg_count,
3465                               x_msg_data,
3466                               '_PVT');
3467    END create_contract_line;
3468 
3469   PROCEDURE update_contract_line(
3470     p_api_version                  IN NUMBER,
3471     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3472     x_return_status                OUT NOCOPY VARCHAR2,
3473     x_msg_count                    OUT NOCOPY NUMBER,
3474     x_msg_data                     OUT NOCOPY VARCHAR2,
3475     p_restricted_update            IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
3476     p_clev_rec                     IN  clev_rec_type,
3477     x_clev_rec                     OUT NOCOPY clev_rec_type) IS
3478 
3479     l_clev_rec      clev_rec_type;
3480     l_okc_clev_rec_in  okc_contract_pub.clev_rec_type;
3481     l_okc_clev_rec_out okc_contract_pub.clev_rec_type;
3482     l_api_name      CONSTANT VARCHAR2(30) := 'UPDATE_CONTRACT_LINE';
3483     l_api_version   CONSTANT NUMBER   := 1.0;
3484     l_return_status VARCHAR2(1)       := OKC_API.G_RET_STS_SUCCESS;
3485   BEGIN
3486     -- call START_ACTIVITY to create savepoint, check compatibility
3487     -- and initialize message list
3488     l_return_status := OKC_API.START_ACTIVITY(
3489                     p_api_name      => l_api_name,
3490                     p_pkg_name      => g_pkg_name,
3491                     p_init_msg_list => p_init_msg_list,
3492                     l_api_version   => l_api_version,
3493                     p_api_version   => p_api_version,
3494                     p_api_type      => g_api_type,
3495                     x_return_status => x_return_status);
3496 
3497     -- check if activity started successfully
3498     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3499        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3500     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3501        RAISE OKC_API.G_EXCEPTION_ERROR;
3502     END IF;
3503 
3504 
3505     l_clev_rec := p_clev_rec;
3506     migrate_clev(p_from => l_clev_rec,
3507                  p_to   => l_okc_clev_rec_in);
3508 
3509 
3510     -- call procedure in complex API
3511     OKC_CONTRACT_PUB.update_contract_line(
3512      p_api_version          => p_api_version,
3513      p_init_msg_list        => p_init_msg_list,
3514       x_return_status       => x_return_status,
3515       x_msg_count           => x_msg_count,
3516       x_msg_data            => x_msg_data,
3517      p_restricted_update    => p_restricted_update,
3518       p_clev_rec            => l_okc_clev_rec_in,
3519       x_clev_rec            => l_okc_clev_rec_out);
3520 
3521     -- check return status
3522     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
3523       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3524     ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
3525       RAISE OKC_API.G_EXCEPTION_ERROR;
3526     END IF;
3527 
3528     migrate_clev(p_from => l_okc_clev_rec_out,
3529                  p_to   => x_clev_rec);
3530     -- end activity
3531     OKC_API.END_ACTIVITY(   x_msg_count     => x_msg_count,
3532                         x_msg_data      => x_msg_data);
3533   EXCEPTION
3534     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3535       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3536                         p_api_name  => l_api_name,
3537                         p_pkg_name  => g_pkg_name,
3538                         p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
3539                         x_msg_count => x_msg_count,
3540                         x_msg_data  => x_msg_data,
3541                         p_api_type  => g_api_type);
3542 
3543     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3544       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3545                         p_api_name  => l_api_name,
3546                         p_pkg_name  => g_pkg_name,
3547                         p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
3548                         x_msg_count => x_msg_count,
3549                         x_msg_data  => x_msg_data,
3550                         p_api_type  => g_api_type);
3551 
3552     WHEN OTHERS THEN
3553       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3554                         p_api_name  => l_api_name,
3555                         p_pkg_name  => g_pkg_name,
3556                         p_exc_name  => 'OTHERS',
3557                         x_msg_count => x_msg_count,
3558                         x_msg_data  => x_msg_data,
3559                         p_api_type  => g_api_type);
3560 
3561   END update_contract_line;
3562 
3563     PROCEDURE update_contract_line(
3564     p_api_version                  IN NUMBER,
3565     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3566     x_return_status                OUT NOCOPY VARCHAR2,
3567     x_msg_count                    OUT NOCOPY NUMBER,
3568     x_msg_data                     OUT NOCOPY VARCHAR2,
3569     p_restricted_update         IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3570     p_clev_tbl                     IN clev_tbl_type,
3571     x_clev_tbl                     OUT NOCOPY clev_tbl_type) AS
3572 
3573     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_UPDATE_LINE';
3574     i                              NUMBER := 0;
3575   BEGIN
3576      OKC_API.init_msg_list(p_init_msg_list);
3577      x_return_status:= OKC_API.G_RET_STS_SUCCESS;
3578      IF (p_clev_tbl.COUNT>0) THEN
3579        i := p_clev_tbl.FIRST;
3580        LOOP
3581          update_contract_line(p_api_version   =>p_api_version,
3582                              p_init_msg_list =>OKC_API.G_FALSE,
3583                              x_return_status =>x_return_status,
3584                              x_msg_count     =>x_msg_count,
3585                              x_msg_data      =>x_msg_data,
3586                              p_restricted_update =>p_restricted_update,
3587                              p_clev_rec      =>p_clev_tbl(i),
3588                              x_clev_rec      =>x_clev_tbl(i));
3589          IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3590             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR);
3591          ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3592             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_ERROR);
3593          END IF;
3594          EXIT WHEN (i=p_clev_tbl.LAST);
3595          i := p_clev_tbl.NEXT(i);
3596        END LOOP;
3597        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3598          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3599        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3600          RAISE OKC_API.G_EXCEPTION_ERROR;
3601        END IF;
3602      END IF;
3603   EXCEPTION
3604     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3605     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3606                                l_api_name,
3607                                G_PKG_NAME,
3608                                'OKC_API.G_RET_STS_ERROR',
3609                                x_msg_count,
3610                                x_msg_data,
3611                                '_PVT');
3612     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3613     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
3614                                l_api_name,
3615                                G_PKG_NAME,
3616                                'OKC_API.G_RET_STS_UNEXP_ERROR',
3617                                x_msg_count,
3618                                x_msg_data,
3619                                '_PVT');
3620     WHEN OTHERS THEN
3621     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
3622                               l_api_name,
3623                               G_PKG_NAME,
3624                               'OTHERS',
3625                               x_msg_count,
3626                               x_msg_data,
3627                               '_PVT');
3628    END update_contract_line;
3629 
3630 
3631   PROCEDURE delete_contract_line(
3632     p_api_version                  IN NUMBER,
3633     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3634     x_return_status                OUT NOCOPY VARCHAR2,
3635     x_msg_count                    OUT NOCOPY NUMBER,
3636     x_msg_data                     OUT NOCOPY VARCHAR2,
3637     p_clev_rec                     IN clev_rec_type) IS
3638 
3639     l_clev_rec      clev_rec_type;
3640     l_okc_clev_rec_in  okc_contract_pub.clev_rec_type;
3641     l_okc_clev_rec_out okc_contract_pub.clev_rec_type;
3642     l_api_name      CONSTANT VARCHAR2(30) := 'DELETE_CONTRACT_LINE';
3643     l_api_version   CONSTANT NUMBER   := 1.0;
3644     l_return_status VARCHAR2(1)       := OKC_API.G_RET_STS_SUCCESS;
3645   BEGIN
3646     -- call START_ACTIVITY to create savepoint, check compatibility
3647     -- and initialize message list
3648     l_return_status := OKC_API.START_ACTIVITY(
3649                     p_api_name      => l_api_name,
3650                     p_pkg_name      => g_pkg_name,
3651                     p_init_msg_list => p_init_msg_list,
3652                     l_api_version   => l_api_version,
3653                     p_api_version   => p_api_version,
3654                     p_api_type      => g_api_type,
3655                     x_return_status => x_return_status);
3656 
3657     -- check if activity started successfully
3658     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3659        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3660     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3661        RAISE OKC_API.G_EXCEPTION_ERROR;
3662     END IF;
3663 
3664     l_clev_rec := p_clev_rec;
3665     migrate_clev(p_from => l_clev_rec,
3666                  p_to   => l_okc_clev_rec_in);
3667 
3668 
3669     -- call procedure in complex API
3670     OKC_CONTRACT_PUB.delete_contract_line(
3671      p_api_version      => p_api_version,
3672      p_init_msg_list    => p_init_msg_list,
3673       x_return_status   => x_return_status,
3674       x_msg_count       => x_msg_count,
3675       x_msg_data        => x_msg_data,
3676       p_clev_rec        => l_okc_clev_rec_in);
3677 
3678     -- check return status
3679     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
3680       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3681     ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
3682       RAISE OKC_API.G_EXCEPTION_ERROR;
3683     END IF;
3684 
3685 
3686         -- end activity
3687     OKC_API.END_ACTIVITY(   x_msg_count     => x_msg_count,
3688                         x_msg_data      => x_msg_data);
3689   EXCEPTION
3690     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3691       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3692                         p_api_name  => l_api_name,
3693                         p_pkg_name  => g_pkg_name,
3694                         p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
3695                         x_msg_count => x_msg_count,
3696                         x_msg_data  => x_msg_data,
3697                         p_api_type  => g_api_type);
3698 
3699     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3700       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3701                         p_api_name  => l_api_name,
3702                         p_pkg_name  => g_pkg_name,
3703                         p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
3704                         x_msg_count => x_msg_count,
3705                         x_msg_data  => x_msg_data,
3706                         p_api_type  => g_api_type);
3707 
3708     WHEN OTHERS THEN
3709       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3710                         p_api_name  => l_api_name,
3711                         p_pkg_name  => g_pkg_name,
3712                         p_exc_name  => 'OTHERS',
3713                         x_msg_count => x_msg_count,
3714                         x_msg_data  => x_msg_data,
3715                         p_api_type  => g_api_type);
3716 
3717   END delete_contract_line;
3718 
3719 PROCEDURE delete_contract_line(
3720     p_api_version   IN NUMBER,
3721     p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3722     x_return_status OUT NOCOPY VARCHAR2,
3723     x_msg_count     OUT NOCOPY NUMBER,
3724     x_msg_data      OUT NOCOPY VARCHAR2,
3725     p_clev_tbl      IN  clev_tbl_type) AS
3726 
3727     l_api_name            CONSTANT VARCHAR2(30) := 'OKL_DELETE_LINE';
3728     i                              NUMBER := 0;
3729   BEGIN
3730      OKC_API.init_msg_list(p_init_msg_list);
3731      x_return_status:= OKC_API.G_RET_STS_SUCCESS;
3732      IF (p_clev_tbl.COUNT>0) THEN
3733        i := p_clev_tbl.FIRST;
3734        LOOP
3735          delete_contract_line(p_api_version   =>p_api_version,
3736                              p_init_msg_list =>OKC_API.G_FALSE,
3737                              x_return_status =>x_return_status,
3738                              x_msg_count     =>x_msg_count,
3739                              x_msg_data      =>x_msg_data,
3740                              p_clev_rec      =>p_clev_tbl(i));
3741          IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3742             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR);
3743          ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3744             EXIT WHEN (x_return_status = OKC_API.G_RET_STS_ERROR);
3745          END IF;
3746          EXIT WHEN (i=p_clev_tbl.LAST);
3747          i := p_clev_tbl.NEXT(i);
3748        END LOOP;
3749        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3750          RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3751        ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3752          RAISE OKC_API.G_EXCEPTION_ERROR;
3753        END IF;
3754      END IF;
3755   EXCEPTION
3756     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3757     x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3758                                l_api_name,
3759                                G_PKG_NAME,
3760                                'OKC_API.G_RET_STS_ERROR',
3761                                x_msg_count,
3762                                x_msg_data,
3763                                '_PVT');
3764     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3765     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
3766                                l_api_name,
3767                                G_PKG_NAME,
3768                                'OKC_API.G_RET_STS_UNEXP_ERROR',
3769                                x_msg_count,
3770                                x_msg_data,
3771                                '_PVT');
3772     WHEN OTHERS THEN
3773     x_return_status :=OKC_API.HANDLE_EXCEPTIONS(
3774                               l_api_name,
3775                               G_PKG_NAME,
3776                               'OTHERS',
3777                               x_msg_count,
3778                               x_msg_data,
3779                               '_PVT');
3780    END delete_contract_line;
3781 
3782 
3783   PROCEDURE lock_contract_line(
3784     p_api_version                  IN NUMBER,
3785     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3786     x_return_status                OUT NOCOPY VARCHAR2,
3787     x_msg_count                    OUT NOCOPY NUMBER,
3788     x_msg_data                     OUT NOCOPY VARCHAR2,
3789     p_clev_rec                     IN clev_rec_type) IS
3790 
3791     l_clev_rec      clev_rec_type;
3792     l_okc_clev_rec_in OKC_CONTRACT_PUB.clev_rec_type;
3793     l_api_name      CONSTANT VARCHAR2(30) := 'LOCK_CONTRACT_LINE';
3794     l_api_version   CONSTANT NUMBER   := 1.0;
3795     l_return_status VARCHAR2(1)       := OKC_API.G_RET_STS_SUCCESS;
3796   BEGIN
3797     -- call START_ACTIVITY to create savepoint, check compatibility
3798     -- and initialize message list
3799     l_return_status := OKC_API.START_ACTIVITY(
3800                     p_api_name      => l_api_name,
3801                     p_pkg_name      => g_pkg_name,
3802                     p_init_msg_list => p_init_msg_list,
3803                     l_api_version   => l_api_version,
3804                     p_api_version   => p_api_version,
3805                     p_api_type      => g_api_type,
3806                     x_return_status => x_return_status);
3807 
3808     -- check if activity started successfully
3809     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3810        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3811     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3812        RAISE OKC_API.G_EXCEPTION_ERROR;
3813     END IF;
3814 
3815     l_clev_rec := p_clev_rec;
3816     migrate_clev(p_from => l_clev_rec,
3817                  p_to   => l_okc_clev_rec_in);
3818     -- call procedure in complex API
3819     OKC_CONTRACT_PUB.lock_contract_line(
3820      p_api_version      => p_api_version,
3821      p_init_msg_list    => p_init_msg_list,
3822       x_return_status   => x_return_status,
3823       x_msg_count       => x_msg_count,
3824       x_msg_data        => x_msg_data,
3825       p_clev_rec        => l_okc_clev_rec_in);
3826 
3827     -- check return status
3828     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
3829       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3830     ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
3831       RAISE OKC_API.G_EXCEPTION_ERROR;
3832     END IF;
3833 
3834       -- end activity
3835     OKC_API.END_ACTIVITY(   x_msg_count     => x_msg_count,
3836                         x_msg_data      => x_msg_data);
3837   EXCEPTION
3838     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3839       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3840                         p_api_name  => l_api_name,
3841                         p_pkg_name  => g_pkg_name,
3842                         p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
3843                         x_msg_count => x_msg_count,
3844                         x_msg_data  => x_msg_data,
3845                         p_api_type  => g_api_type);
3846 
3847     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3848       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3849                         p_api_name  => l_api_name,
3850                         p_pkg_name  => g_pkg_name,
3851                         p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
3852                         x_msg_count => x_msg_count,
3853                         x_msg_data  => x_msg_data,
3854                         p_api_type  => g_api_type);
3855 
3856     WHEN OTHERS THEN
3857       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3858                         p_api_name  => l_api_name,
3859                         p_pkg_name  => g_pkg_name,
3860                         p_exc_name  => 'OTHERS',
3861                         x_msg_count => x_msg_count,
3862                         x_msg_data  => x_msg_data,
3863                         p_api_type  => g_api_type);
3864 
3865   END lock_contract_line;
3866 
3867 
3868   PROCEDURE validate_contract_line(
3869     p_api_version                  IN NUMBER,
3870     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3871     x_return_status                OUT NOCOPY VARCHAR2,
3872     x_msg_count                    OUT NOCOPY NUMBER,
3873     x_msg_data                     OUT NOCOPY VARCHAR2,
3874     p_clev_rec                     IN clev_rec_type) IS
3875 
3876     l_clev_rec      clev_rec_type;
3877     l_okc_clev_rec_in okc_contract_pub.clev_rec_type;
3878     l_api_name      CONSTANT VARCHAR2(30) := 'VALIDATE_CONTRACT_LINE';
3879     l_api_version   CONSTANT NUMBER   := 1.0;
3880     l_return_status VARCHAR2(1)       := OKC_API.G_RET_STS_SUCCESS;
3881   BEGIN
3882     -- call START_ACTIVITY to create savepoint, check compatibility
3883     -- and initialize message list
3884     l_return_status := OKC_API.START_ACTIVITY(
3885                     p_api_name      => l_api_name,
3886                     p_pkg_name      => g_pkg_name,
3887                     p_init_msg_list => p_init_msg_list,
3888                     l_api_version   => l_api_version,
3889                     p_api_version   => p_api_version,
3890                     p_api_type      => g_api_type,
3891                     x_return_status => x_return_status);
3892 
3893     -- check if activity started successfully
3894     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3895        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3896     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3897        RAISE OKC_API.G_EXCEPTION_ERROR;
3898     END IF;
3899 
3900     l_clev_rec := p_clev_rec;
3901     migrate_clev(p_from => l_clev_rec,
3902                  p_to   => l_okc_clev_rec_in);
3903 
3904     -- call procedure in complex API
3905     OKC_CONTRACT_PUB.validate_contract_line(
3906       p_api_version     => p_api_version,
3907       p_init_msg_list   => p_init_msg_list,
3908       x_return_status   => x_return_status,
3909       x_msg_count       => x_msg_count,
3910       x_msg_data        => x_msg_data,
3911       p_clev_rec        => l_okc_clev_rec_in);
3912 
3913     -- check return status
3914     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
3915       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3916     ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
3917       RAISE OKC_API.G_EXCEPTION_ERROR;
3918     END IF;
3919 
3920     -- end activity
3921     OKC_API.END_ACTIVITY(   x_msg_count     => x_msg_count,
3922                         x_msg_data      => x_msg_data);
3923   EXCEPTION
3924     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3925       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3926                         p_api_name  => l_api_name,
3927                         p_pkg_name  => g_pkg_name,
3928                         p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
3929                         x_msg_count => x_msg_count,
3930                         x_msg_data  => x_msg_data,
3931                         p_api_type  => g_api_type);
3932 
3933     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3934       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3935                         p_api_name  => l_api_name,
3936                         p_pkg_name  => g_pkg_name,
3937                         p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
3938                         x_msg_count => x_msg_count,
3939                         x_msg_data  => x_msg_data,
3940                         p_api_type  => g_api_type);
3941 
3942     WHEN OTHERS THEN
3943       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
3944                         p_api_name  => l_api_name,
3945                         p_pkg_name  => g_pkg_name,
3946                         p_exc_name  => 'OTHERS',
3947                         x_msg_count => x_msg_count,
3948                         x_msg_data  => x_msg_data,
3949                         p_api_type  => g_api_type);
3950 
3951   END validate_contract_line;
3952 
3953   PROCEDURE create_governance(
3954     p_api_version                  IN NUMBER,
3955     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3956     x_return_status                OUT NOCOPY VARCHAR2,
3957     x_msg_count                    OUT NOCOPY NUMBER,
3958     x_msg_data                     OUT NOCOPY VARCHAR2,
3959     p_gvev_rec                     IN gvev_rec_type,
3960     x_gvev_rec                     OUT NOCOPY gvev_rec_type) IS
3961 
3962     l_gvev_rec      gvev_rec_type;
3963     l_okc_gvev_rec_in  okc_contract_pub.gvev_rec_type;
3964     l_okc_gvev_rec_out okc_contract_pub.gvev_rec_type;
3965     l_api_name      CONSTANT VARCHAR2(30) := 'CREATE_GOVERNANCE';
3966     l_api_version   CONSTANT NUMBER   := 1.0;
3967     l_return_status VARCHAR2(1)       := OKC_API.G_RET_STS_SUCCESS;
3968   BEGIN
3969     -- call START_ACTIVITY to create savepoint, check compatibility
3970     -- and initialize message list
3971     l_return_status := OKC_API.START_ACTIVITY(
3972                     p_api_name      => l_api_name,
3973                     p_pkg_name      => g_pkg_name,
3974                     p_init_msg_list => p_init_msg_list,
3975                     l_api_version   => l_api_version,
3976                     p_api_version   => p_api_version,
3977                     p_api_type      => g_api_type,
3978                     x_return_status => x_return_status);
3979 
3980     -- check if activity started successfully
3981     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3982        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3983     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3984        RAISE OKC_API.G_EXCEPTION_ERROR;
3985     END IF;
3986 
3987     l_gvev_rec := p_gvev_rec;
3988     migrate_gvev(p_from => l_gvev_rec,
3989                  p_to   => l_okc_gvev_rec_in);
3990 
3991     -- call procedure in complex API
3992     OKC_CONTRACT_PUB.create_governance(
3993      p_api_version      => p_api_version,
3994      p_init_msg_list    => p_init_msg_list,
3995       x_return_status   => x_return_status,
3996       x_msg_count       => x_msg_count,
3997       x_msg_data        => x_msg_data,
3998       p_gvev_rec        => l_okc_gvev_rec_in,
3999       x_gvev_rec        => l_okc_gvev_rec_out);
4000 
4001     -- check return status
4002     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
4003       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4004     ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
4005       RAISE OKC_API.G_EXCEPTION_ERROR;
4006     END IF;
4007 
4008     migrate_gvev(p_from => l_okc_gvev_rec_out,
4009                  p_to   => x_gvev_rec);
4010 
4011     -- end activity
4012     OKC_API.END_ACTIVITY(   x_msg_count     => x_msg_count,
4013                         x_msg_data      => x_msg_data);
4014   EXCEPTION
4015     WHEN OKC_API.G_EXCEPTION_ERROR THEN
4016       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4017                         p_api_name  => l_api_name,
4018                         p_pkg_name  => g_pkg_name,
4019                         p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
4020                         x_msg_count => x_msg_count,
4021                         x_msg_data  => x_msg_data,
4022                         p_api_type  => g_api_type);
4023 
4024     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4025       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4026                         p_api_name  => l_api_name,
4027                         p_pkg_name  => g_pkg_name,
4028                         p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
4029                         x_msg_count => x_msg_count,
4030                         x_msg_data  => x_msg_data,
4031                         p_api_type  => g_api_type);
4032 
4033     WHEN OTHERS THEN
4034       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4035                         p_api_name  => l_api_name,
4036                         p_pkg_name  => g_pkg_name,
4037                         p_exc_name  => 'OTHERS',
4038                         x_msg_count => x_msg_count,
4039                         x_msg_data  => x_msg_data,
4040                         p_api_type  => g_api_type);
4041 
4042   END create_governance;
4043 
4044   PROCEDURE update_governance(
4045     p_api_version                  IN NUMBER,
4046     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
4047     x_return_status                OUT NOCOPY VARCHAR2,
4048     x_msg_count                    OUT NOCOPY NUMBER,
4049     x_msg_data                     OUT NOCOPY VARCHAR2,
4050     p_gvev_rec                     IN gvev_rec_type,
4051     x_gvev_rec                     OUT NOCOPY gvev_rec_type) IS
4052 
4053     l_gvev_rec      gvev_rec_type;
4054     l_okc_gvev_rec_in  okc_contract_pub.gvev_rec_type;
4055     l_okc_gvev_rec_out okc_contract_pub.gvev_rec_type;
4056     l_api_name      CONSTANT VARCHAR2(30) := 'UPDATE_GOVERNANCE';
4057     l_api_version   CONSTANT NUMBER   := 1.0;
4058     l_return_status VARCHAR2(1)       := OKC_API.G_RET_STS_SUCCESS;
4059   BEGIN
4060     -- call START_ACTIVITY to create savepoint, check compatibility
4061     -- and initialize message list
4062     l_return_status := OKC_API.START_ACTIVITY(
4063                     p_api_name      => l_api_name,
4064                     p_pkg_name      => g_pkg_name,
4065                     p_init_msg_list => p_init_msg_list,
4066                     l_api_version   => l_api_version,
4067                     p_api_version   => p_api_version,
4068                     p_api_type      => g_api_type,
4069                     x_return_status => x_return_status);
4070 
4071     -- check if activity started successfully
4072     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4073        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4074     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4075        RAISE OKC_API.G_EXCEPTION_ERROR;
4076     END IF;
4077 
4078     l_gvev_rec := p_gvev_rec;
4079 
4080      migrate_gvev(p_from => l_gvev_rec,
4081                  p_to   => l_okc_gvev_rec_in);
4082 
4083     -- call procedure in complex API
4084     OKC_CONTRACT_PUB.update_governance(
4085      p_api_version      => p_api_version,
4086      p_init_msg_list    => p_init_msg_list,
4087       x_return_status   => x_return_status,
4088       x_msg_count       => x_msg_count,
4089       x_msg_data        => x_msg_data,
4090       p_gvev_rec        => l_okc_gvev_rec_in,
4091       x_gvev_rec        => l_okc_gvev_rec_out);
4092 
4093     -- check return status
4094     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
4095       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4096     ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
4097       RAISE OKC_API.G_EXCEPTION_ERROR;
4098     END IF;
4099 
4100     migrate_gvev(p_from => l_okc_gvev_rec_out,
4101                  p_to   => x_gvev_rec);
4102 
4103     -- end activity
4104     OKC_API.END_ACTIVITY(   x_msg_count     => x_msg_count,
4105                         x_msg_data      => x_msg_data);
4106   EXCEPTION
4107     WHEN OKC_API.G_EXCEPTION_ERROR THEN
4108       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4109                         p_api_name  => l_api_name,
4110                         p_pkg_name  => g_pkg_name,
4111                         p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
4112                         x_msg_count => x_msg_count,
4113                         x_msg_data  => x_msg_data,
4114                         p_api_type  => g_api_type);
4115 
4116     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4117       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4118                         p_api_name  => l_api_name,
4119                         p_pkg_name  => g_pkg_name,
4120                         p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
4121                         x_msg_count => x_msg_count,
4122                         x_msg_data  => x_msg_data,
4123                         p_api_type  => g_api_type);
4124 
4125     WHEN OTHERS THEN
4126       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4127                         p_api_name  => l_api_name,
4128                         p_pkg_name  => g_pkg_name,
4129                         p_exc_name  => 'OTHERS',
4130                         x_msg_count => x_msg_count,
4131                         x_msg_data  => x_msg_data,
4132                         p_api_type  => g_api_type);
4133 
4134   END update_governance;
4135 
4136 
4137   PROCEDURE delete_governance(
4138     p_api_version                  IN NUMBER,
4139     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
4140     x_return_status                OUT NOCOPY VARCHAR2,
4141     x_msg_count                    OUT NOCOPY NUMBER,
4142     x_msg_data                     OUT NOCOPY VARCHAR2,
4143     p_gvev_rec                     IN gvev_rec_type) IS
4144 
4145     l_gvev_rec      gvev_rec_type;
4146     l_okc_gvev_rec_in  okc_contract_pub.gvev_rec_type;
4147     l_okc_gvev_rec_out okc_contract_pub.gvev_rec_type;
4148     l_api_name      CONSTANT VARCHAR2(30) := 'DELETE_GOVERNANCE';
4149     l_api_version   CONSTANT NUMBER   := 1.0;
4150     l_return_status VARCHAR2(1)       := OKC_API.G_RET_STS_SUCCESS;
4151   BEGIN
4152     -- call START_ACTIVITY to create savepoint, check compatibility
4153     -- and initialize message list
4154     l_return_status := OKC_API.START_ACTIVITY(
4155                     p_api_name      => l_api_name,
4156                     p_pkg_name      => g_pkg_name,
4157                     p_init_msg_list => p_init_msg_list,
4158                     l_api_version   => l_api_version,
4159                     p_api_version   => p_api_version,
4160                     p_api_type      => g_api_type,
4161                     x_return_status => x_return_status);
4162 
4163     -- check if activity started successfully
4164     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4165        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4166     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4167        RAISE OKC_API.G_EXCEPTION_ERROR;
4168     END IF;
4169 
4170     l_gvev_rec := p_gvev_rec;
4171     migrate_gvev(p_from => l_gvev_rec,
4172                  p_to   => l_okc_gvev_rec_in);
4173 
4174     -- call procedure in complex API
4175     OKC_CONTRACT_PUB.delete_governance(
4176      p_api_version      => p_api_version,
4177      p_init_msg_list    => p_init_msg_list,
4178       x_return_status   => x_return_status,
4179       x_msg_count       => x_msg_count,
4180       x_msg_data        => x_msg_data,
4181       p_gvev_rec        => l_okc_gvev_rec_in);
4182 
4183     -- check return status
4184     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
4185       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4186     ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
4187       RAISE OKC_API.G_EXCEPTION_ERROR;
4188     END IF;
4189 
4190 
4191         -- end activity
4192     OKC_API.END_ACTIVITY(   x_msg_count     => x_msg_count,
4193                         x_msg_data      => x_msg_data);
4194   EXCEPTION
4195     WHEN OKC_API.G_EXCEPTION_ERROR THEN
4196       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4197                         p_api_name  => l_api_name,
4198                         p_pkg_name  => g_pkg_name,
4199                         p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
4200                         x_msg_count => x_msg_count,
4201                         x_msg_data  => x_msg_data,
4202                         p_api_type  => g_api_type);
4203 
4204     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4205       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4206                         p_api_name  => l_api_name,
4207                         p_pkg_name  => g_pkg_name,
4208                         p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
4209                         x_msg_count => x_msg_count,
4210                         x_msg_data  => x_msg_data,
4211                         p_api_type  => g_api_type);
4212 
4213     WHEN OTHERS THEN
4214       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4215                         p_api_name  => l_api_name,
4216                         p_pkg_name  => g_pkg_name,
4217                         p_exc_name  => 'OTHERS',
4218                         x_msg_count => x_msg_count,
4219                         x_msg_data  => x_msg_data,
4220                         p_api_type  => g_api_type);
4221 
4222   END delete_governance;
4223 
4224 
4225   PROCEDURE lock_governance(
4226     p_api_version                  IN NUMBER,
4227     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
4228     x_return_status                OUT NOCOPY VARCHAR2,
4229     x_msg_count                    OUT NOCOPY NUMBER,
4230     x_msg_data                     OUT NOCOPY VARCHAR2,
4231     p_gvev_rec                     IN gvev_rec_type) IS
4232 
4233     l_gvev_rec      gvev_rec_type;
4234     l_okc_gvev_rec_in  okc_contract_pub.gvev_rec_type;
4235     l_okc_gvev_rec_out okc_contract_pub.gvev_rec_type;
4236     l_api_name      CONSTANT VARCHAR2(30) := 'LOCK_GOVERNANCE';
4237     l_api_version   CONSTANT NUMBER   := 1.0;
4238     l_return_status VARCHAR2(1)       := OKC_API.G_RET_STS_SUCCESS;
4239   BEGIN
4240     -- call START_ACTIVITY to create savepoint, check compatibility
4241     -- and initialize message list
4242     l_return_status := OKC_API.START_ACTIVITY(
4243                     p_api_name      => l_api_name,
4244                     p_pkg_name      => g_pkg_name,
4245                     p_init_msg_list => p_init_msg_list,
4246                     l_api_version   => l_api_version,
4247                     p_api_version   => p_api_version,
4248                     p_api_type      => g_api_type,
4249                     x_return_status => x_return_status);
4250 
4251     -- check if activity started successfully
4252     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4253        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4254     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4255        RAISE OKC_API.G_EXCEPTION_ERROR;
4256     END IF;
4257 
4258 
4259     l_gvev_rec := p_gvev_rec;
4260     migrate_gvev(p_from => l_gvev_rec,
4261                  p_to   => l_okc_gvev_rec_in);
4262     -- call procedure in complex API
4263     OKC_CONTRACT_PUB.lock_governance(
4264       p_api_version     => p_api_version,
4265       p_init_msg_list   => p_init_msg_list,
4266       x_return_status   => x_return_status,
4267       x_msg_count       => x_msg_count,
4268       x_msg_data        => x_msg_data,
4269       p_gvev_rec        => l_okc_gvev_rec_in);
4270 
4271     -- check return status
4272     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
4273       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4274     ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
4275       RAISE OKC_API.G_EXCEPTION_ERROR;
4276     END IF;
4277 
4278     -- end activity
4279     OKC_API.END_ACTIVITY(   x_msg_count     => x_msg_count,
4280                         x_msg_data      => x_msg_data);
4281   EXCEPTION
4282     WHEN OKC_API.G_EXCEPTION_ERROR THEN
4283       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4284                         p_api_name  => l_api_name,
4285                         p_pkg_name  => g_pkg_name,
4286                         p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
4287                         x_msg_count => x_msg_count,
4288                         x_msg_data  => x_msg_data,
4289                         p_api_type  => g_api_type);
4290 
4291     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4292       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4293                         p_api_name  => l_api_name,
4294                         p_pkg_name  => g_pkg_name,
4295                         p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
4296                         x_msg_count => x_msg_count,
4297                         x_msg_data  => x_msg_data,
4298                         p_api_type  => g_api_type);
4299 
4300     WHEN OTHERS THEN
4301       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4302                         p_api_name  => l_api_name,
4303                         p_pkg_name  => g_pkg_name,
4304                         p_exc_name  => 'OTHERS',
4305                         x_msg_count => x_msg_count,
4306                         x_msg_data  => x_msg_data,
4307                         p_api_type  => g_api_type);
4308 
4309   END lock_governance;
4310 
4311 
4312   PROCEDURE validate_governance(
4313     p_api_version                  IN NUMBER,
4314     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
4315     x_return_status                OUT NOCOPY VARCHAR2,
4316     x_msg_count                    OUT NOCOPY NUMBER,
4317     x_msg_data                     OUT NOCOPY VARCHAR2,
4318     p_gvev_rec                     IN gvev_rec_type) IS
4319 
4320     l_gvev_rec      gvev_rec_type;
4321     l_okc_gvev_rec_in  okc_contract_pub.gvev_rec_type;
4322     l_okc_gvev_rec_out okc_contract_pub.gvev_rec_type;
4323     l_api_name      CONSTANT VARCHAR2(30) := 'VALIDATE_GOVERNANCE';
4324     l_api_version   CONSTANT NUMBER   := 1.0;
4325     l_return_status VARCHAR2(1)       := OKC_API.G_RET_STS_SUCCESS;
4326   BEGIN
4327     -- call START_ACTIVITY to create savepoint, check compatibility
4328     -- and initialize message list
4329     l_return_status := OKC_API.START_ACTIVITY(
4330                     p_api_name      => l_api_name,
4331                     p_pkg_name      => g_pkg_name,
4332                     p_init_msg_list => p_init_msg_list,
4333                     l_api_version   => l_api_version,
4334                     p_api_version   => p_api_version,
4335                     p_api_type      => g_api_type,
4336                     x_return_status => x_return_status);
4337 
4338     -- check if activity started successfully
4339     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4340        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4341     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4342        RAISE OKC_API.G_EXCEPTION_ERROR;
4343     END IF;
4344 
4345     l_gvev_rec := p_gvev_rec;
4346     migrate_gvev(p_from => l_gvev_rec,
4347                  p_to   => l_okc_gvev_rec_in);
4348 
4349     -- call procedure in complex API
4350     OKC_CONTRACT_PUB.validate_governance(
4351      p_api_version      => p_api_version,
4352      p_init_msg_list    => p_init_msg_list,
4353       x_return_status   => x_return_status,
4354       x_msg_count       => x_msg_count,
4355       x_msg_data        => x_msg_data,
4356       p_gvev_rec        => l_okc_gvev_rec_in);
4357 
4358     -- check return status
4359     IF x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
4360       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4361     ELSIF x_return_status = OKC_API.G_RET_STS_ERROR THEN
4362       RAISE OKC_API.G_EXCEPTION_ERROR;
4363     END IF;
4364 
4365     -- end activity
4366     OKC_API.END_ACTIVITY(   x_msg_count     => x_msg_count,
4367                         x_msg_data      => x_msg_data);
4368   EXCEPTION
4369     WHEN OKC_API.G_EXCEPTION_ERROR THEN
4370       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4371                         p_api_name  => l_api_name,
4372                         p_pkg_name  => g_pkg_name,
4373                         p_exc_name  => 'OKC_API.G_RET_STS_ERROR',
4374                         x_msg_count => x_msg_count,
4375                         x_msg_data  => x_msg_data,
4376                         p_api_type  => g_api_type);
4377 
4378     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4379       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4380                         p_api_name  => l_api_name,
4381                         p_pkg_name  => g_pkg_name,
4382                         p_exc_name  => 'OKC_API.G_RET_STS_UNEXP_ERROR',
4383                         x_msg_count => x_msg_count,
4384                         x_msg_data  => x_msg_data,
4385                         p_api_type  => g_api_type);
4386 
4387     WHEN OTHERS THEN
4388       x_return_status := OKC_API.HANDLE_EXCEPTIONS(
4389                         p_api_name  => l_api_name,
4390                         p_pkg_name  => g_pkg_name,
4391                         p_exc_name  => 'OTHERS',
4392                         x_msg_count => x_msg_count,
4393                         x_msg_data  => x_msg_data,
4394                         p_api_type  => g_api_type);
4395 
4396   END validate_governance;
4397 
4398 PROCEDURE create_rule_group(
4399     p_api_version                  IN  NUMBER,
4400     p_init_msg_list                IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
4401     x_return_status                OUT NOCOPY VARCHAR2,
4402     x_msg_count                    OUT NOCOPY NUMBER,
4403     x_msg_data                     OUT NOCOPY VARCHAR2,
4404     p_rgpv_rec                     IN  rgpv_rec_type,
4405     x_rgpv_rec                     OUT NOCOPY rgpv_rec_type) IS
4406 
4407     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4408     l_api_name                     CONSTANT VARCHAR2(30) := 'create_rule_group';
4409     l_rgpv_rec                     rgpv_rec_type := p_rgpv_rec;
4410 
4411     l_okc_rgpv_rec_in                  OKC_RULE_PUB.rgpv_rec_type;
4412     l_okc_rgpv_rec_out                 OKC_RULE_PUB.rgpv_rec_type;
4413 
4414     -- sjalasut. added local variables and cursors to enable business events
4415     -- when called from contracts open interface. start
4416 
4417     CURSOR is_batch_process IS
4418     SELECT FND_GLOBAL.conc_request_id
4419       FROM dual;
4420 
4421     CURSOR get_line_style (p_line_id okc_k_lines_b.id%TYPE) IS
4422     SELECT lty_code
4423       FROM okc_k_lines_b line,
4424            okc_line_styles_b style
4425      WHERE line.lse_id = style.id
4426        AND line.id = p_line_id;
4427 
4428     l_line_style okc_line_styles_b.lty_code%TYPE;
4429 
4430     CURSOR get_serv_chr_from_serv(p_chr_id okc_k_headers_b.id%TYPE,
4431                                   p_line_id okc_k_lines_b.id%TYPE) IS
4432     SELECT rlobj.object1_id1
4433       FROM okc_k_rel_objs_v rlobj
4434      WHERE rlobj.chr_id = p_chr_id
4435        AND rlobj.cle_id = p_line_id
4436        AND rlobj.rty_code = 'OKLSRV'
4437        AND rlobj.jtot_object1_code = 'OKL_SERVICE_LINE';
4438 
4439     l_service_top_line_id okc_k_lines_b.id%TYPE;
4440 
4441     CURSOR get_serv_cle_from_serv (p_serv_top_line_id okc_k_lines_b.id%TYPE) IS
4442     SELECT dnz_chr_id
4443       FROM okc_k_lines_b
4444      WHERE id = p_serv_top_line_id;
4445 
4446     l_serv_contract_id okc_k_headers_b.id%TYPE;
4447 
4448     l_process_type VARCHAR2(20);
4449     l_request_id NUMBER := -1;
4450     l_parameter_list wf_parameter_list_t;
4451     l_raise_business_event VARCHAR2(1) := OKL_API.G_FALSE;
4452     l_business_event_name wf_events.name%TYPE;
4453 
4454 BEGIN
4455     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4456                                               p_init_msg_list,
4457                                               '_PUB',
4458                                               x_return_status);
4459     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4460       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4461     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4462       RAISE OKC_API.G_EXCEPTION_ERROR;
4463     END IF;
4464 
4465     migrate_rgpv(p_from => l_rgpv_rec,
4466               p_to   => l_okc_rgpv_rec_in);
4467 
4468     OKC_RULE_PUB.create_rule_group(
4469       p_api_version   => p_api_version,
4470       p_init_msg_list => p_init_msg_list,
4471       x_return_status => x_return_status,
4472       x_msg_count     => x_msg_count,
4473       x_msg_data      => x_msg_data,
4474       p_rgpv_rec      => l_okc_rgpv_rec_in,
4475       x_rgpv_rec      => l_okc_rgpv_rec_out);
4476 
4477      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4478        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4479      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4480        RAISE OKC_API.G_EXCEPTION_ERROR;
4481      END IF;
4482 
4483      migrate_rgpv(p_from => l_okc_rgpv_rec_out, p_to => x_rgpv_rec);
4484 
4485      -- sjalasut: 15 sep 04, added code to enable business events only
4486      -- when this code is called from the open interface. if the open interface program is run
4487      -- and the profile to enable business events is set for batch program, then the following
4488      -- code fires.
4489      OPEN is_batch_process; FETCH is_batch_process INTO l_request_id; CLOSE is_batch_process;
4490      IF(l_request_id <> -1)THEN
4491        -- if the dnz_chr_id and chr_id are not null and the cle_id is null then rule group is being created
4492        -- for a contract. if the cle_id is not null and the chr_id is null then the rule group is being
4493        -- created for a line
4494        IF(l_rgpv_rec.dnz_chr_id IS NOT NULL AND l_rgpv_rec.chr_id IS NOT NULL AND l_rgpv_rec.cle_id IS NULL)THEN
4495          l_process_type := 'HEADER';
4496        ELSIF(l_rgpv_rec.chr_id IS NULL AND l_rgpv_rec.cle_id IS NOT NULL AND l_rgpv_rec.dnz_chr_id IS NOT NULL)THEN
4497          l_process_type := 'LINE';
4498        END IF;
4499        IF(l_process_type IS NOT NULL AND l_process_type = 'HEADER')THEN
4500          IF(l_rgpv_rec.rgd_code = 'LAAFLG')THEN
4501            -- raise business event for the Liens and Title for Terms and Conditions for the Contract
4502            -- set raise business event flag to true
4503            l_raise_business_event := OKL_API.G_TRUE;
4504            -- set the event name to be raised. this event name will vary for each rule group
4505            l_business_event_name := G_WF_EVT_CONTRACT_TERM_UPDATED;
4506            wf_event.AddParameterToList(G_WF_ITM_TERMS_ID,  x_rgpv_rec.id, l_parameter_list);
4507          END IF;
4508        ELSIF(l_process_type IS NOT NULL AND l_process_type = 'LINE')THEN
4509          IF(l_rgpv_rec.rgd_code = 'LAAFLG')THEN
4510            -- raise business event for Liens Title and Registration for the Assets
4511            -- set raise business event flag to true
4512            l_raise_business_event := OKL_API.G_TRUE;
4513            -- set the event name to be raised. this event name will vary for each rule group
4514            l_business_event_name := G_WF_EVT_ASSET_FILING_UPDATED;
4515            wf_event.AddParameterToList(G_WF_ITM_ASSET_ID, l_rgpv_rec.cle_id, l_parameter_list);
4516          ELSIF(l_rgpv_rec.rgd_code = 'LAASTX')THEN
4517            -- raise business event for tax, property tax updated.
4518            l_raise_business_event := OKL_API.G_TRUE;
4519            l_business_event_name := G_WF_EVT_ASSET_PROPTAX_UPDATED;
4520            wf_event.AddParameterToList(G_WF_ITM_ASSET_ID, l_rgpv_rec.cle_id, l_parameter_list);
4521          ELSIF(l_rgpv_rec.rgd_code = 'LAPSTH')THEN
4522            OPEN get_line_style(l_rgpv_rec.cle_id);
4523            FETCH get_line_style INTO l_line_style;
4524            CLOSE get_line_style;
4525            -- raise business event for service line update passthru
4526            IF(l_line_style IS NOT NULL AND l_line_style = 'SOLD_SERVICE')THEN
4527              l_raise_business_event := OKL_API.G_TRUE;
4528              l_business_event_name := G_WF_EVT_SERV_PASS_UPDATED;
4529              wf_event.AddParameterToList(G_WF_ITM_SERV_LINE_ID, l_rgpv_rec.cle_id, l_parameter_list);
4530              -- check if the service line in context has a service contract associated with it
4531              -- if so, pass the service contract id and service contract line id as parameters
4532              -- is this valid for contract open interface ?
4533              OPEN get_serv_chr_from_serv(l_rgpv_rec.dnz_chr_id, l_rgpv_rec.cle_id);
4534              FETCH get_serv_chr_from_serv INTO l_service_top_line_id;
4535              CLOSE get_serv_chr_from_serv;
4536              IF(l_service_top_line_id IS NOT NULL)THEN
4537                OPEN get_serv_cle_from_serv(l_service_top_line_id);
4538                FETCH get_serv_cle_from_serv INTO l_serv_contract_id;
4539                CLOSE get_serv_cle_from_serv;
4540                wf_event.AddParameterToList(G_WF_ITM_SERV_CHR_ID, l_serv_contract_id, l_parameter_list);
4541                wf_event.AddParameterToList(G_WF_ITM_SERV_CLE_ID, l_service_top_line_id, l_parameter_list);
4542              END IF;
4543            -- raise the business event for update passthrough for Fee Line
4544            ELSIF(l_line_style IS NOT NULL AND l_line_style = 'FEE')THEN
4545              l_raise_business_event := OKL_API.G_TRUE;
4546              l_business_event_name := G_WF_EVT_FEE_PASS_UPDATED;
4547              wf_event.AddParameterToList(G_WF_ITM_FEE_LINE_ID, l_rgpv_rec.cle_id, l_parameter_list);
4548            END IF;
4549          ELSIF(l_rgpv_rec.rgd_code = 'LAFEXP')THEN
4550            OPEN get_line_style(l_rgpv_rec.cle_id);
4551            FETCH get_line_style INTO l_line_style;
4552            CLOSE get_line_style;
4553            -- raise business event for service line update expense
4554            IF(l_line_style IS NOT NULL AND l_line_style = 'SOLD_SERVICE')THEN
4555              l_raise_business_event := OKL_API.G_TRUE;
4556              l_business_event_name := G_WF_EVT_SERV_FEXP_UPDATED;
4557              wf_event.AddParameterToList(G_WF_ITM_SERV_LINE_ID, l_rgpv_rec.cle_id, l_parameter_list);
4558              -- check if the service line in context has a service contract associated with it
4559              -- if so, pass the service contract id and service contract line id as parameters
4560              OPEN get_serv_chr_from_serv(l_rgpv_rec.dnz_chr_id, l_rgpv_rec.cle_id);
4561              FETCH get_serv_chr_from_serv INTO l_service_top_line_id;
4562              CLOSE get_serv_chr_from_serv;
4563              IF(l_service_top_line_id IS NOT NULL)THEN
4564                OPEN get_serv_cle_from_serv(l_service_top_line_id);
4565                FETCH get_serv_cle_from_serv INTO l_serv_contract_id;
4566                CLOSE get_serv_cle_from_serv;
4567                wf_event.AddParameterToList(G_WF_ITM_SERV_CHR_ID, l_serv_contract_id, l_parameter_list);
4568                wf_event.AddParameterToList(G_WF_ITM_SERV_CLE_ID, l_service_top_line_id, l_parameter_list);
4569              END IF;
4570            ELSIF(l_line_style IS NOT NULL AND l_line_style = 'FEE')THEN
4571              l_raise_business_event := OKL_API.G_TRUE;
4572              l_business_event_name := G_WF_EVT_FEE_EXP_UPDATED;
4573              wf_event.AddParameterToList(G_WF_ITM_FEE_LINE_ID, l_rgpv_rec.cle_id, l_parameter_list);
4574            END IF; -- end if for l_line_style is not null
4575          END IF; -- end if for rgd_code
4576        END IF; -- end if for l_process_type
4577        -- check if the business event needs to be raised
4578        IF(l_raise_business_event = OKL_API.G_TRUE AND l_business_event_name IS NOT NULL AND
4579           OKL_LLA_UTIL_PVT.is_lease_contract(l_rgpv_rec.dnz_chr_id)= OKL_API.G_TRUE)THEN
4580          -- since contract id is called as 'CONTRACT_ID'  for all the above events, it is being
4581          -- added to the parameter list here, than duplicating it in all the above if conditions
4582          wf_event.AddParameterToList(G_WF_ITM_CONTRACT_ID, l_rgpv_rec.dnz_chr_id, l_parameter_list);
4583          raise_business_event(p_api_version     => p_api_version,
4584                               p_init_msg_list   => p_init_msg_list,
4585                               x_return_status   => x_return_status,
4586                               x_msg_count       => x_msg_count,
4587                               x_msg_data        => x_msg_data,
4588                               p_event_name      => l_business_event_name,
4589                               p_event_param_list => l_parameter_list
4590                              );
4591          IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4592            RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4593          ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
4594            RAISE OKL_API.G_EXCEPTION_ERROR;
4595          END IF;
4596        END IF;
4597 
4598      END IF; -- end if for request id
4599 
4600      OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4601 
4602   EXCEPTION
4603   WHEN OKC_API.G_EXCEPTION_ERROR THEN
4604     x_return_status := OKC_API.HANDLE_EXCEPTIONS
4605       (l_api_name
4606       ,G_PKG_NAME
4607       ,'OKC_API.G_RET_STS_ERROR'
4608       ,x_msg_count
4609       ,x_msg_data
4610       ,'_PUB');
4611   WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4612     x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4613       (l_api_name
4614       ,G_PKG_NAME
4615       ,'OKC_API.G_RET_STS_UNEXP_ERROR'
4616       ,x_msg_count
4617       ,x_msg_data
4618       ,'_PUB');
4619   WHEN OTHERS THEN
4620     x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4621       (l_api_name
4622       ,G_PKG_NAME
4623       ,'OTHERS'
4624       ,x_msg_count
4625       ,x_msg_data
4626       ,'_PUB');
4627   END;
4628 
4629 PROCEDURE update_rule_group(
4630     p_api_version                  IN  NUMBER,
4631     p_init_msg_list                IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
4632     x_return_status                OUT NOCOPY VARCHAR2,
4633     x_msg_count                    OUT NOCOPY NUMBER,
4634     x_msg_data                     OUT NOCOPY VARCHAR2,
4635     p_rgpv_rec                     IN  rgpv_rec_type,
4636     x_rgpv_rec                     OUT NOCOPY rgpv_rec_type) IS
4637 
4638     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4639     l_api_name                     CONSTANT VARCHAR2(30) := 'update_rule_group';
4640     l_rgpv_rec                     rgpv_rec_type := p_rgpv_rec;
4641 
4642     l_okc_rgpv_rec_in                  OKC_RULE_PUB.rgpv_rec_type;
4643     l_okc_rgpv_rec_out                 OKC_RULE_PUB.rgpv_rec_type;
4644 
4645 BEGIN
4646     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4647                                               p_init_msg_list,
4648                                               '_PUB',
4649                                               x_return_status);
4650     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4651       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4652     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4653       RAISE OKC_API.G_EXCEPTION_ERROR;
4654     END IF;
4655 
4656     migrate_rgpv(p_from => l_rgpv_rec,
4657               p_to   => l_okc_rgpv_rec_in);
4658 
4659     OKC_RULE_PUB.update_rule_group(
4660       p_api_version   => p_api_version,
4661       p_init_msg_list => p_init_msg_list,
4662       x_return_status => x_return_status,
4663       x_msg_count     => x_msg_count,
4664       x_msg_data      => x_msg_data,
4665       p_rgpv_rec      => l_okc_rgpv_rec_in,
4666       x_rgpv_rec      => l_okc_rgpv_rec_out);
4667 
4668      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4669        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4670      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4671        RAISE OKC_API.G_EXCEPTION_ERROR;
4672      END IF;
4673 
4674      migrate_rgpv(p_from => l_okc_rgpv_rec_out,
4675                  p_to   => x_rgpv_rec);
4676 
4677      OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4678 
4679   EXCEPTION
4680   WHEN OKC_API.G_EXCEPTION_ERROR THEN
4681     x_return_status := OKC_API.HANDLE_EXCEPTIONS
4682       (l_api_name
4683       ,G_PKG_NAME
4684       ,'OKC_API.G_RET_STS_ERROR'
4685       ,x_msg_count
4686       ,x_msg_data
4687       ,'_PUB');
4688   WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4689     x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4690       (l_api_name
4691       ,G_PKG_NAME
4692       ,'OKC_API.G_RET_STS_UNEXP_ERROR'
4693       ,x_msg_count
4694       ,x_msg_data
4695       ,'_PUB');
4696   WHEN OTHERS THEN
4697     x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4698       (l_api_name
4699       ,G_PKG_NAME
4700       ,'OTHERS'
4701       ,x_msg_count
4702       ,x_msg_data
4703       ,'_PUB');
4704 END;
4705 
4706 
4707   PROCEDURE delete_rule_group(
4708     p_api_version                  IN  NUMBER,
4709     p_init_msg_list                IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
4710     x_return_status                OUT NOCOPY VARCHAR2,
4711     x_msg_count                    OUT NOCOPY NUMBER,
4712     x_msg_data                     OUT NOCOPY VARCHAR2,
4713     p_rgpv_rec                     IN  rgpv_rec_type) IS
4714 
4715     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4716     l_api_name                     CONSTANT VARCHAR2(30) := 'delet_rule_group';
4717     l_rgpv_rec                     rgpv_rec_type := p_rgpv_rec;
4718 
4719     l_okc_rgpv_rec_in                  OKC_RULE_PUB.rgpv_rec_type;
4720 
4721 BEGIN
4722     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4723                                               p_init_msg_list,
4724                                               '_PUB',
4725                                               x_return_status);
4726     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4727       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4728     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4729       RAISE OKC_API.G_EXCEPTION_ERROR;
4730     END IF;
4731 
4732     migrate_rgpv(p_from => l_rgpv_rec,
4733               p_to   => l_okc_rgpv_rec_in);
4734 
4735     OKC_RULE_PUB.delete_rule_group(
4736       p_api_version   => p_api_version,
4737       p_init_msg_list => p_init_msg_list,
4738       x_return_status => x_return_status,
4739       x_msg_count     => x_msg_count,
4740       x_msg_data      => x_msg_data,
4741       p_rgpv_rec      => l_okc_rgpv_rec_in);
4742 
4743      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4744        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4745      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4746        RAISE OKC_API.G_EXCEPTION_ERROR;
4747      END IF;
4748 
4749      OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4750 
4751   EXCEPTION
4752   WHEN OKC_API.G_EXCEPTION_ERROR THEN
4753     x_return_status := OKC_API.HANDLE_EXCEPTIONS
4754       (l_api_name
4755       ,G_PKG_NAME
4756       ,'OKC_API.G_RET_STS_ERROR'
4757       ,x_msg_count
4758       ,x_msg_data
4759       ,'_PUB');
4760   WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4761     x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4762       (l_api_name
4763       ,G_PKG_NAME
4764       ,'OKC_API.G_RET_STS_UNEXP_ERROR'
4765       ,x_msg_count
4766       ,x_msg_data
4767       ,'_PUB');
4768   WHEN OTHERS THEN
4769     x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4770       (l_api_name
4771       ,G_PKG_NAME
4772       ,'OTHERS'
4773       ,x_msg_count
4774       ,x_msg_data
4775       ,'_PUB');
4776 END;
4777 
4778 
4779   PROCEDURE lock_rule_group(
4780     p_api_version                  IN  NUMBER,
4781     p_init_msg_list                IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
4782     x_return_status                OUT NOCOPY VARCHAR2,
4783     x_msg_count                    OUT NOCOPY NUMBER,
4784     x_msg_data                     OUT NOCOPY VARCHAR2,
4785     p_rgpv_rec                     IN  rgpv_rec_type) IS
4786 
4787     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4788     l_api_name                     CONSTANT VARCHAR2(30) := 'lock_rule_group';
4789     l_rgpv_rec                     rgpv_rec_type := p_rgpv_rec;
4790 
4791     l_okc_rgpv_rec_in              OKC_RULE_PUB.rgpv_rec_type;
4792 
4793 BEGIN
4794     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4795                                               p_init_msg_list,
4796                                               '_PUB',
4797                                               x_return_status);
4798     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4799       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4800     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4801       RAISE OKC_API.G_EXCEPTION_ERROR;
4802     END IF;
4803 
4804     migrate_rgpv(p_from => l_rgpv_rec,
4805               p_to   => l_okc_rgpv_rec_in);
4806 
4807     OKC_RULE_PUB.lock_rule_group(
4808       p_api_version   => p_api_version,
4809       p_init_msg_list => p_init_msg_list,
4810       x_return_status => x_return_status,
4811       x_msg_count     => x_msg_count,
4812       x_msg_data      => x_msg_data,
4813       p_rgpv_rec      => l_okc_rgpv_rec_in);
4814 
4815      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4816        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4817      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4818        RAISE OKC_API.G_EXCEPTION_ERROR;
4819      END IF;
4820 
4821      OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4822 
4823   EXCEPTION
4824   WHEN OKC_API.G_EXCEPTION_ERROR THEN
4825     x_return_status := OKC_API.HANDLE_EXCEPTIONS
4826       (l_api_name
4827       ,G_PKG_NAME
4828       ,'OKC_API.G_RET_STS_ERROR'
4829       ,x_msg_count
4830       ,x_msg_data
4831       ,'_PUB');
4832   WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4833     x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4834       (l_api_name
4835       ,G_PKG_NAME
4836       ,'OKC_API.G_RET_STS_UNEXP_ERROR'
4837       ,x_msg_count
4838       ,x_msg_data
4839       ,'_PUB');
4840   WHEN OTHERS THEN
4841     x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4842       (l_api_name
4843       ,G_PKG_NAME
4844       ,'OTHERS'
4845       ,x_msg_count
4846       ,x_msg_data
4847       ,'_PUB');
4848 END;
4849 
4850   PROCEDURE validate_rule_group(
4851     p_api_version                  IN  NUMBER,
4852     p_init_msg_list                IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
4853     x_return_status                OUT NOCOPY VARCHAR2,
4854     x_msg_count                    OUT NOCOPY NUMBER,
4855     x_msg_data                     OUT NOCOPY VARCHAR2,
4856     p_rgpv_rec                     IN  rgpv_rec_type) IS
4857 
4858     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4859     l_api_name                     CONSTANT VARCHAR2(30) := 'validate_rule_group';
4860     l_rgpv_rec                     rgpv_rec_type := p_rgpv_rec;
4861 
4862     l_okc_rgpv_rec_in              OKC_RULE_PUB.rgpv_rec_type;
4863     l_okc_rgpv_rec_out             OKC_RULE_PUB.rgpv_rec_type;
4864 
4865 BEGIN
4866     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4867                                               p_init_msg_list,
4868                                               '_PUB',
4869                                               x_return_status);
4870     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4871       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4872     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4873       RAISE OKC_API.G_EXCEPTION_ERROR;
4874     END IF;
4875 
4876     migrate_rgpv(p_from => l_rgpv_rec,
4877               p_to   => l_okc_rgpv_rec_in);
4878 
4879     OKC_RULE_PUB.validate_rule_group(
4880       p_api_version   => p_api_version,
4881       p_init_msg_list => p_init_msg_list,
4882       x_return_status => x_return_status,
4883       x_msg_count     => x_msg_count,
4884       x_msg_data      => x_msg_data,
4885       p_rgpv_rec      => l_okc_rgpv_rec_in);
4886 
4887 
4888      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4889        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4890      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4891        RAISE OKC_API.G_EXCEPTION_ERROR;
4892      END IF;
4893 
4894      OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4895 
4896   EXCEPTION
4897   WHEN OKC_API.G_EXCEPTION_ERROR THEN
4898     x_return_status := OKC_API.HANDLE_EXCEPTIONS
4899       (l_api_name
4900       ,G_PKG_NAME
4901       ,'OKC_API.G_RET_STS_ERROR'
4902       ,x_msg_count
4903       ,x_msg_data
4904       ,'_PUB');
4905   WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4906     x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4907       (l_api_name
4908       ,G_PKG_NAME
4909       ,'OKC_API.G_RET_STS_UNEXP_ERROR'
4910       ,x_msg_count
4911       ,x_msg_data
4912       ,'_PUB');
4913   WHEN OTHERS THEN
4914     x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4915       (l_api_name
4916       ,G_PKG_NAME
4917       ,'OTHERS'
4918       ,x_msg_count
4919       ,x_msg_data
4920       ,'_PUB');
4921 END;
4922 
4923 
4924 
4925   PROCEDURE create_rg_mode_pty_role(
4926     p_api_version                  IN  NUMBER,
4927     p_init_msg_list                IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
4928     x_return_status                OUT NOCOPY VARCHAR2,
4929     x_msg_count                    OUT NOCOPY NUMBER,
4930     x_msg_data                     OUT NOCOPY VARCHAR2,
4931     p_rmpv_rec                     IN  rmpv_rec_type,
4932     x_rmpv_rec                     OUT NOCOPY rmpv_rec_type) IS
4933 
4934     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4935     l_api_name                     CONSTANT VARCHAR2(30) := 'create_rg_mode_pty_role';
4936     l_rmpv_rec                     rmpv_rec_type := p_rmpv_rec;
4937     l_okc_rmpv_rec_in  okc_rule_pub.rmpv_rec_type;
4938     l_okc_rmpv_rec_out okc_rule_pub.rmpv_rec_type;
4939   BEGIN
4940     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4941                                               p_init_msg_list,
4942                                               '_PUB',
4943                                               x_return_status);
4944     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4945       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4946     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4947       RAISE OKC_API.G_EXCEPTION_ERROR;
4948     END IF;
4949 
4950     migrate_rmpv(p_from => l_rmpv_rec,
4951                 p_to   => l_okc_rmpv_rec_in);
4952 
4953     OKC_RULE_PUB.create_rg_mode_pty_role(
4954       p_api_version   => p_api_version,
4955       p_init_msg_list => p_init_msg_list,
4956       x_return_status => x_return_status,
4957       x_msg_count     => x_msg_count,
4958       x_msg_data      => x_msg_data,
4959       p_rmpv_rec      => l_okc_rmpv_rec_in,
4960       x_rmpv_rec      => l_okc_rmpv_rec_out);
4961 
4962      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4963        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4964      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4965        RAISE OKC_API.G_EXCEPTION_ERROR;
4966      END IF;
4967 
4968      migrate_rmpv(p_from => l_okc_rmpv_rec_out,
4969                  p_to   => x_rmpv_rec);
4970 
4971      OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4972   EXCEPTION
4973   WHEN OKC_API.G_EXCEPTION_ERROR THEN
4974     x_return_status := OKC_API.HANDLE_EXCEPTIONS
4975       (l_api_name
4976       ,G_PKG_NAME
4977       ,'OKC_API.G_RET_STS_ERROR'
4978       ,x_msg_count
4979       ,x_msg_data
4980       ,'_PUB');
4981   WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4982     x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4983       (l_api_name
4984       ,G_PKG_NAME
4985       ,'OKC_API.G_RET_STS_UNEXP_ERROR'
4986       ,x_msg_count
4987       ,x_msg_data
4988       ,'_PUB');
4989   WHEN OTHERS THEN
4990     x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4991       (l_api_name
4992       ,G_PKG_NAME
4993       ,'OTHERS'
4994       ,x_msg_count
4995       ,x_msg_data
4996       ,'_PUB');
4997   END create_rg_mode_pty_role;
4998 
4999 
5000   PROCEDURE update_rg_mode_pty_role(
5001     p_api_version                  IN  NUMBER,
5002     p_init_msg_list                IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
5003     x_return_status                OUT NOCOPY VARCHAR2,
5004     x_msg_count                    OUT NOCOPY NUMBER,
5005     x_msg_data                     OUT NOCOPY VARCHAR2,
5006     p_rmpv_rec                     IN  rmpv_rec_type,
5007     x_rmpv_rec                     OUT NOCOPY rmpv_rec_type) IS
5008 
5009     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5010     l_api_name                     CONSTANT VARCHAR2(30) := 'update_rg_mode_pty_role';
5011     l_rmpv_rec                     rmpv_rec_type := p_rmpv_rec;
5012     l_okc_rmpv_rec_in  okc_rule_pub.rmpv_rec_type;
5013     l_okc_rmpv_rec_out okc_rule_pub.rmpv_rec_type;
5014   BEGIN
5015     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
5016                                               p_init_msg_list,
5017                                               '_PUB',
5018                                               x_return_status);
5019     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5020       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5021     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5022       RAISE OKC_API.G_EXCEPTION_ERROR;
5023     END IF;
5024 
5025     migrate_rmpv(p_from => l_rmpv_rec,
5026                  p_to   => l_okc_rmpv_rec_in);
5027 
5028 
5029     OKC_RULE_PUB.update_rg_mode_pty_role(
5030       p_api_version   => p_api_version,
5031       p_init_msg_list => p_init_msg_list,
5032       x_return_status => x_return_status,
5033       x_msg_count     => x_msg_count,
5034       x_msg_data      => x_msg_data,
5035       p_rmpv_rec      => l_okc_rmpv_rec_in,
5036       x_rmpv_rec      => l_okc_rmpv_rec_in);
5037 
5038 
5039      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5040        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5041      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5042        RAISE OKC_API.G_EXCEPTION_ERROR;
5043      END IF;
5044 
5045      migrate_rmpv(p_from => l_okc_rmpv_rec_out,
5046                     p_to   => x_rmpv_rec);
5047 
5048      OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
5049   EXCEPTION
5050   WHEN OKC_API.G_EXCEPTION_ERROR THEN
5051     x_return_status := OKC_API.HANDLE_EXCEPTIONS
5052       (l_api_name
5053       ,G_PKG_NAME
5054       ,'OKC_API.G_RET_STS_ERROR'
5055       ,x_msg_count
5056       ,x_msg_data
5057       ,'_PUB');
5058   WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5059     x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5060       (l_api_name
5061       ,G_PKG_NAME
5062       ,'OKC_API.G_RET_STS_UNEXP_ERROR'
5063       ,x_msg_count
5064       ,x_msg_data
5065       ,'_PUB');
5066   WHEN OTHERS THEN
5067     x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5068       (l_api_name
5069       ,G_PKG_NAME
5070       ,'OTHERS'
5071       ,x_msg_count
5072       ,x_msg_data
5073       ,'_PUB');
5074   END update_rg_mode_pty_role;
5075 
5076   PROCEDURE delete_rg_mode_pty_role(
5077     p_api_version                  IN  NUMBER,
5078     p_init_msg_list                IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
5079     x_return_status                OUT NOCOPY VARCHAR2,
5080     x_msg_count                    OUT NOCOPY NUMBER,
5081     x_msg_data                     OUT NOCOPY VARCHAR2,
5082     p_rmpv_rec                     IN  rmpv_rec_type) IS
5083 
5084     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5085     l_api_name                     CONSTANT VARCHAR2(30) := 'delete_rg_mode_pty_role';
5086     l_rmpv_rec                     rmpv_rec_type := p_rmpv_rec;
5087     l_okc_rmpv_rec_in  okc_rule_pub.rmpv_rec_type;
5088 
5089   BEGIN
5090     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
5091                                               p_init_msg_list,
5092                                               '_PUB',
5093                                               x_return_status);
5094     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5095       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5096     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5097       RAISE OKC_API.G_EXCEPTION_ERROR;
5098     END IF;
5099 
5100     migrate_rmpv(p_from => l_rmpv_rec,
5101                 p_to   => l_okc_rmpv_rec_in);
5102 
5103 
5104     OKC_RULE_PUB.delete_rg_mode_pty_role(
5105       p_api_version   => p_api_version,
5106       p_init_msg_list => p_init_msg_list,
5107       x_return_status => x_return_status,
5108       x_msg_count     => x_msg_count,
5109       x_msg_data      => x_msg_data,
5110       p_rmpv_rec      => l_okc_rmpv_rec_in);
5111 
5112      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5113        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5114      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5115        RAISE OKC_API.G_EXCEPTION_ERROR;
5116      END IF;
5117 
5118      OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
5119   EXCEPTION
5120   WHEN OKC_API.G_EXCEPTION_ERROR THEN
5121     x_return_status := OKC_API.HANDLE_EXCEPTIONS
5122       (l_api_name
5123       ,G_PKG_NAME
5124       ,'OKC_API.G_RET_STS_ERROR'
5125       ,x_msg_count
5126       ,x_msg_data
5127       ,'_PUB');
5128   WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5129     x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5130       (l_api_name
5131       ,G_PKG_NAME
5132       ,'OKC_API.G_RET_STS_UNEXP_ERROR'
5133       ,x_msg_count
5134       ,x_msg_data
5135       ,'_PUB');
5136   WHEN OTHERS THEN
5137     x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5138       (l_api_name
5139       ,G_PKG_NAME
5140       ,'OTHERS'
5141       ,x_msg_count
5142       ,x_msg_data
5143       ,'_PUB');
5144   END delete_rg_mode_pty_role;
5145 
5146   PROCEDURE lock_rg_mode_pty_role(
5147     p_api_version                  IN  NUMBER,
5148     p_init_msg_list                IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
5149     x_return_status                OUT NOCOPY VARCHAR2,
5150     x_msg_count                    OUT NOCOPY NUMBER,
5151     x_msg_data                     OUT NOCOPY VARCHAR2,
5152     p_rmpv_rec                     IN  rmpv_rec_type) IS
5153 
5154     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5155     l_api_name                     CONSTANT VARCHAR2(30) := 'lock_rg_mode_pty_role';
5156     l_rmpv_rec                     rmpv_rec_type := p_rmpv_rec;
5157     l_okc_rmpv_rec_in  okc_rule_pub.rmpv_rec_type;
5158 
5159 
5160   BEGIN
5161       l_return_status := OKC_API.START_ACTIVITY(l_api_name,
5162                                               p_init_msg_list,
5163                                               '_PUB',
5164                                               x_return_status);
5165     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5166       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5167     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5168       RAISE OKC_API.G_EXCEPTION_ERROR;
5169     END IF;
5170 
5171     migrate_rmpv(p_from => l_rmpv_rec,
5172                 p_to   => l_okc_rmpv_rec_in);
5173 
5174     OKC_RULE_PUB.lock_rg_mode_pty_role(
5175       p_api_version   => p_api_version,
5176       p_init_msg_list => p_init_msg_list,
5177       x_return_status => x_return_status,
5178       x_msg_count     => x_msg_count,
5179       x_msg_data      => x_msg_data,
5180       p_rmpv_rec      => l_okc_rmpv_rec_in);
5181 
5182      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5183        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5184      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5185        RAISE OKC_API.G_EXCEPTION_ERROR;
5186      END IF;
5187 
5188   OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
5189 
5190   EXCEPTION
5191   WHEN OKC_API.G_EXCEPTION_ERROR THEN
5192     x_return_status := OKC_API.HANDLE_EXCEPTIONS
5193       (l_api_name
5194       ,G_PKG_NAME
5195       ,'OKC_API.G_RET_STS_ERROR'
5196       ,x_msg_count
5197       ,x_msg_data
5198       ,'_PUB');
5199   WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5200     x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5201       (l_api_name
5202       ,G_PKG_NAME
5203       ,'OKC_API.G_RET_STS_UNEXP_ERROR'
5204       ,x_msg_count
5205       ,x_msg_data
5206       ,'_PUB');
5207   WHEN OTHERS THEN
5208     x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5209       (l_api_name
5210       ,G_PKG_NAME
5211       ,'OTHERS'
5212       ,x_msg_count
5213       ,x_msg_data
5214       ,'_PUB');
5215   END lock_rg_mode_pty_role;
5216 
5217 
5218   PROCEDURE validate_rg_mode_pty_role(
5219     p_api_version                  IN  NUMBER,
5220     p_init_msg_list                IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
5221     x_return_status                OUT NOCOPY VARCHAR2,
5222     x_msg_count                    OUT NOCOPY NUMBER,
5223     x_msg_data                     OUT NOCOPY VARCHAR2,
5224     p_rmpv_rec                     IN  rmpv_rec_type)IS
5225 
5226     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5227     l_api_name                     CONSTANT VARCHAR2(30) := 'validate_rg_mode_pty_role';
5228     l_rmpv_rec                     rmpv_rec_type := p_rmpv_rec;
5229     l_okc_rmpv_rec_in              okc_rule_pub.rmpv_rec_type;
5230 
5231   BEGIN
5232     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
5233                                               p_init_msg_list,
5234                                               '_PUB',
5235                                               x_return_status);
5236     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5237       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5238     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5239       RAISE OKC_API.G_EXCEPTION_ERROR;
5240     END IF;
5241 
5242     migrate_rmpv(p_from => l_rmpv_rec,
5243                 p_to   => l_okc_rmpv_rec_in);
5244 
5245     OKC_RULE_PUB.validate_rg_mode_pty_role(
5246       p_api_version   => p_api_version,
5247       p_init_msg_list => p_init_msg_list,
5248       x_return_status => x_return_status,
5249       x_msg_count     => x_msg_count,
5250       x_msg_data      => x_msg_data,
5251       p_rmpv_rec      => l_okc_rmpv_rec_in);
5252 
5253      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5254        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5255      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5256        RAISE OKC_API.G_EXCEPTION_ERROR;
5257      END IF;
5258 
5259      OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
5260   EXCEPTION
5261   WHEN OKC_API.G_EXCEPTION_ERROR THEN
5262     x_return_status := OKC_API.HANDLE_EXCEPTIONS
5263       (l_api_name
5264       ,G_PKG_NAME
5265       ,'OKC_API.G_RET_STS_ERROR'
5266       ,x_msg_count
5267       ,x_msg_data
5268       ,'_PUB');
5269   WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5270     x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5271       (l_api_name
5272       ,G_PKG_NAME
5273       ,'OKC_API.G_RET_STS_UNEXP_ERROR'
5274       ,x_msg_count
5275       ,x_msg_data
5276       ,'_PUB');
5277   WHEN OTHERS THEN
5278     x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5279       (l_api_name
5280       ,G_PKG_NAME
5281       ,'OTHERS'
5282       ,x_msg_count
5283       ,x_msg_data
5284       ,'_PUB');
5285   END validate_rg_mode_pty_role;
5286 END OKL_OKC_MIGRATION_PVT;