DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_PXH_PVT

Source


1 PACKAGE BODY OKL_PXH_PVT AS
2 /* $Header: OKLSPXHB.pls 120.3 2007/12/27 14:23:59 zrehman noship $ */
3   ---------------------------------------------------------------------------
4   -- PROCEDURE load_error_tbl
5   ---------------------------------------------------------------------------
6   PROCEDURE load_error_tbl (
7     px_error_rec                   IN OUT NOCOPY OKL_API.ERROR_REC_TYPE,
8     px_error_tbl                   IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
9 
10     j                              INTEGER := NVL(px_error_tbl.LAST, 0) + 1;
11     last_msg_idx                   INTEGER := FND_MSG_PUB.COUNT_MSG;
12     l_msg_idx                      INTEGER := FND_MSG_PUB.G_NEXT;
13   BEGIN
14     -- FND_MSG_PUB has a small error in it.  If we call FND_MSG_PUB.COUNT_AND_GET before
15     -- we call FND_MSG_PUB.GET, the variable FND_MSG_PUB uses to control the index of the
16     -- message stack gets set to 1.  This makes sense until we call FND_MSG_PUB.GET which
17     -- automatically increments the index by 1, (making it 2), however, when the GET function
18     -- attempts to pull message 2, we get a NO_DATA_FOUND exception because there isn't any
19     -- message 2.  To circumvent this problem, check the amount of messages and compensate.
20     -- Again, this error only occurs when 1 message is on the stack because COUNT_AND_GET
21     -- will only update the index variable when 1 and only 1 message is on the stack.
22     IF (last_msg_idx = 1) THEN
23       l_msg_idx := FND_MSG_PUB.G_FIRST;
24     END IF;
25     LOOP
26       fnd_msg_pub.get(
27             p_msg_index     => l_msg_idx,
28             p_encoded       => fnd_api.g_false,
29             p_data          => px_error_rec.msg_data,
30             p_msg_index_out => px_error_rec.msg_count);
31       px_error_tbl(j) := px_error_rec;
32       j := j + 1;
33     EXIT WHEN (px_error_rec.msg_count = last_msg_idx);
34     END LOOP;
35   END load_error_tbl;
36   ---------------------------------------------------------------------------
37   -- FUNCTION find_highest_exception
38   ---------------------------------------------------------------------------
39   -- Finds the highest exception (G_RET_STS_UNEXP_ERROR)
40   -- in a OKL_API.ERROR_TBL_TYPE, and returns it.
41   FUNCTION find_highest_exception(
42     p_error_tbl                    IN OKL_API.ERROR_TBL_TYPE
43   ) RETURN VARCHAR2 IS
44     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
45     i                              INTEGER := 1;
46   BEGIN
47     IF (p_error_tbl.COUNT > 0) THEN
48       i := p_error_tbl.FIRST;
49       LOOP
50         IF (p_error_tbl(i).error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
51           IF (l_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR) THEN
52             l_return_status := p_error_tbl(i).error_type;
53           END IF;
54         END IF;
55         EXIT WHEN (i = p_error_tbl.LAST);
56         i := p_error_tbl.NEXT(i);
57       END LOOP;
58     END IF;
59     RETURN(l_return_status);
60   END find_highest_exception;
61   ---------------------------------------------------------------------------
62   -- FUNCTION get_seq_id
63   ---------------------------------------------------------------------------
64   FUNCTION get_seq_id RETURN NUMBER IS
65     l_pk_value NUMBER;
66     CURSOR c_pk_csr IS SELECT okl_ext_ap_header_sources_s.NEXTVAL FROM DUAL;
67   BEGIN
68   /* Fetch the pk value from the sequence */
69     OPEN c_pk_csr;
70     FETCH c_pk_csr INTO l_pk_value;
71     CLOSE c_pk_csr;
72     RETURN l_pk_value;
73   END get_seq_id;
74 
75   ---------------------------------------------------------------------------
76   -- PROCEDURE qc
77   ---------------------------------------------------------------------------
78   PROCEDURE qc IS
79   BEGIN
80     null;
81   END qc;
82 
83   ---------------------------------------------------------------------------
84   -- PROCEDURE change_version
85   ---------------------------------------------------------------------------
86   PROCEDURE change_version IS
87   BEGIN
88     null;
89   END change_version;
90 
91   ---------------------------------------------------------------------------
92   -- PROCEDURE api_copy
93   ---------------------------------------------------------------------------
94   PROCEDURE api_copy IS
95   BEGIN
96     null;
97   END api_copy;
98 
99   ---------------------------------------------------------------------------
100   -- PROCEDURE add_language
101   ---------------------------------------------------------------------------
102   PROCEDURE add_language IS
103   BEGIN
104     DELETE FROM OKL_EXT_AP_HEADER_SOURCES_TL T
105      WHERE NOT EXISTS (
106         SELECT NULL
107           FROM OKL_EXT_AP_HEADER_SOURCES_B B
108          WHERE B.HEADER_EXTENSION_ID =T.HEADER_EXTENSION_ID
109         );
110 
111     UPDATE OKL_EXT_AP_HEADER_SOURCES_TL T SET(
112         CONTRACT_STATUS,
113         INV_AGRMNT_STATUS,
114         TRANSACTION_TYPE_NAME) = (SELECT
115                                   B.CONTRACT_STATUS,
116                                   B.INV_AGRMNT_STATUS,
117                                   B.TRANSACTION_TYPE_NAME
118                                 FROM OKL_EXT_AP_HEADER_SOURCES_TL B
119                                WHERE B.HEADER_EXTENSION_ID = T.HEADER_EXTENSION_ID
120                                  AND B.LANGUAGE = T.SOURCE_LANG)
121       WHERE ( T.HEADER_EXTENSION_ID,
122               T.LANGUAGE)
123           IN (SELECT
124                   SUBT.HEADER_EXTENSION_ID,
125                   SUBT.LANGUAGE
126                 FROM OKL_EXT_AP_HEADER_SOURCES_TL SUBB, OKL_EXT_AP_HEADER_SOURCES_TL SUBT
127                WHERE SUBB.HEADER_EXTENSION_ID = SUBT.HEADER_EXTENSION_ID
128                  AND SUBB.LANGUAGE = SUBT.SOURCE_LANG
129                  AND (SUBB.CONTRACT_STATUS <> SUBT.CONTRACT_STATUS
130                       OR SUBB.INV_AGRMNT_STATUS <> SUBT.INV_AGRMNT_STATUS
131                       OR SUBB.TRANSACTION_TYPE_NAME <> SUBT.TRANSACTION_TYPE_NAME
132                       OR (SUBB.CONTRACT_STATUS IS NULL AND SUBT.CONTRACT_STATUS IS NOT NULL)
133                       OR (SUBB.INV_AGRMNT_STATUS IS NULL AND SUBT.INV_AGRMNT_STATUS IS NOT NULL)
134                       OR (SUBB.TRANSACTION_TYPE_NAME IS NULL AND SUBT.TRANSACTION_TYPE_NAME IS NOT NULL)
135               ));
136 
137     INSERT INTO OKL_EXT_AP_HEADER_SOURCES_TL (
138         HEADER_EXTENSION_ID,
139         LANGUAGE,
140         SOURCE_LANG,
141         SFWT_FLAG,
142         CONTRACT_STATUS,
143         INV_AGRMNT_STATUS,
144         TRANSACTION_TYPE_NAME,
145         CREATED_BY,
146         CREATION_DATE,
147         LAST_UPDATED_BY,
148         LAST_UPDATE_DATE,
149         LAST_UPDATE_LOGIN)
150       SELECT
151             B.HEADER_EXTENSION_ID,
152             L.LANGUAGE_CODE,
153             B.SOURCE_LANG,
154             B.SFWT_FLAG,
155             B.CONTRACT_STATUS,
156             B.INV_AGRMNT_STATUS,
157             B.TRANSACTION_TYPE_NAME,
158             B.CREATED_BY,
159             B.CREATION_DATE,
160             B.LAST_UPDATED_BY,
161             B.LAST_UPDATE_DATE,
162             B.LAST_UPDATE_LOGIN
163         FROM OKL_EXT_AP_HEADER_SOURCES_TL B, FND_LANGUAGES L
164        WHERE L.INSTALLED_FLAG IN ('I', 'B')
165          AND B.LANGUAGE = USERENV('LANG')
166          AND NOT EXISTS (
167                     SELECT NULL
168                       FROM OKL_EXT_AP_HEADER_SOURCES_TL T
169                      WHERE T.HEADER_EXTENSION_ID = B.HEADER_EXTENSION_ID
170                        AND T.LANGUAGE = L.LANGUAGE_CODE
171                     );
172   END add_language;
173 
174   ---------------------------------------------------------------------------
175   -- FUNCTION get_rec for: OKL_EXT_AP_HEADER_SOURCES_V
176   ---------------------------------------------------------------------------
177   FUNCTION get_rec (
178     p_pxhv_rec                     IN pxhv_rec_type,
179     x_no_data_found                OUT NOCOPY BOOLEAN
180   ) RETURN pxhv_rec_type IS
181     CURSOR okl_ext_ap_header_s1 (p_header_extension_id IN NUMBER) IS
182     SELECT
183             HEADER_EXTENSION_ID,
184             SOURCE_ID,
185             SOURCE_TABLE,
186             OBJECT_VERSION_NUMBER,
187             KHR_ID,
188             TRY_ID,
189             TRANS_NUMBER,
190             CONTRACT_NUMBER,
191             CUSTOMER_NAME,
192             CUST_ACCOUNT_NUMBER,
193             PRODUCT_NAME,
194             BOOK_CLASSIFICATION_CODE,
195             TAX_OWNER_CODE,
196             INT_CALC_METHOD_CODE,
197             REV_REC_METHOD_CODE,
198             SCS_CODE,
199             CONVERTED_NUMBER,
200             CONTRACT_EFFECTIVE_FROM,
201             CONTRACT_CURRENCY_CODE,
202             SALES_REP_NAME,
203             PO_ORDER_NUMBER,
204             VENDOR_PROGRAM_NUMBER,
205             ASSIGNABLE_FLAG,
206             CONVERTED_ACCOUNT_FLAG,
207             ACCRUAL_OVERRIDE_FLAG,
208             KHR_ATTRIBUTE_CATEGORY,
209             KHR_ATTRIBUTE1,
210             KHR_ATTRIBUTE2,
211             KHR_ATTRIBUTE3,
212             KHR_ATTRIBUTE4,
213             KHR_ATTRIBUTE5,
214             KHR_ATTRIBUTE6,
215             KHR_ATTRIBUTE7,
216             KHR_ATTRIBUTE8,
217             KHR_ATTRIBUTE9,
218             KHR_ATTRIBUTE10,
219             KHR_ATTRIBUTE11,
220             KHR_ATTRIBUTE12,
221             KHR_ATTRIBUTE13,
222             KHR_ATTRIBUTE14,
223             KHR_ATTRIBUTE15,
224             CUST_ATTRIBUTE_CATEGORY,
225             CUST_ATTRIBUTE1,
226             CUST_ATTRIBUTE2,
227             CUST_ATTRIBUTE3,
228             CUST_ATTRIBUTE4,
229             CUST_ATTRIBUTE5,
230             CUST_ATTRIBUTE6,
231             CUST_ATTRIBUTE7,
232             CUST_ATTRIBUTE8,
233             CUST_ATTRIBUTE9,
234             CUST_ATTRIBUTE10,
235             CUST_ATTRIBUTE11,
236             CUST_ATTRIBUTE12,
237             CUST_ATTRIBUTE13,
238             CUST_ATTRIBUTE14,
239             CUST_ATTRIBUTE15,
240             RENT_IA_CONTRACT_NUMBER,
241             RENT_IA_PRODUCT_NAME,
242             RENT_IA_ACCOUNTING_CODE,
243             RES_IA_CONTRACT_NUMBER,
244             RES_IA_PRODUCT_NAME,
245             RES_IA_ACCOUNTING_CODE,
246             INV_AGRMNT_NUMBER,
247             INV_AGRMNT_EFFECTIVE_FROM,
248             INV_AGRMNT_PRODUCT_NAME,
249             INV_AGRMNT_CURRENCY_CODE,
250             INV_AGRMNT_SYND_CODE,
251             INV_AGRMNT_POOL_NUMBER,
252             CONTRACT_STATUS_CODE,
253             INV_AGRMNT_STATUS_CODE,
254             TRX_TYPE_CLASS_CODE,
255             LANGUAGE,
256             CONTRACT_STATUS,
257             INV_AGRMNT_STATUS,
258             TRANSACTION_TYPE_NAME,
259             CREATED_BY,
260             CREATION_DATE,
261             LAST_UPDATED_BY,
262             LAST_UPDATE_DATE,
263             LAST_UPDATE_LOGIN,
264 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables start
265             PARTY_ID,
266 	    CUST_ACCOUNT_ID
267       FROM Okl_Ext_Ap_Header_Sources_V
268      WHERE okl_ext_ap_header_sources_v.header_extension_id = p_header_extension_id;
269     l_okl_ext_ap_header2           okl_ext_ap_header_s1%ROWTYPE;
270     l_pxhv_rec                     pxhv_rec_type;
271   BEGIN
272     x_no_data_found := TRUE;
273     -- Get current database values
274     OPEN okl_ext_ap_header_s1 (p_pxhv_rec.header_extension_id);
275     FETCH okl_ext_ap_header_s1 INTO
276               l_pxhv_rec.header_extension_id,
277               l_pxhv_rec.source_id,
278               l_pxhv_rec.source_table,
279               l_pxhv_rec.object_version_number,
280               l_pxhv_rec.khr_id,
281               l_pxhv_rec.try_id,
282               l_pxhv_rec.trans_number,
283               l_pxhv_rec.contract_number,
284               l_pxhv_rec.customer_name,
285               l_pxhv_rec.cust_account_number,
286               l_pxhv_rec.product_name,
287               l_pxhv_rec.book_classification_code,
288               l_pxhv_rec.tax_owner_code,
289               l_pxhv_rec.int_calc_method_code,
290               l_pxhv_rec.rev_rec_method_code,
291               l_pxhv_rec.scs_code,
292               l_pxhv_rec.converted_number,
293               l_pxhv_rec.contract_effective_from,
294               l_pxhv_rec.contract_currency_code,
295               l_pxhv_rec.sales_rep_name,
296               l_pxhv_rec.po_order_number,
297               l_pxhv_rec.vendor_program_number,
298               l_pxhv_rec.assignable_flag,
299               l_pxhv_rec.converted_account_flag,
300               l_pxhv_rec.accrual_override_flag,
301               l_pxhv_rec.khr_attribute_category,
302               l_pxhv_rec.khr_attribute1,
303               l_pxhv_rec.khr_attribute2,
304               l_pxhv_rec.khr_attribute3,
305               l_pxhv_rec.khr_attribute4,
306               l_pxhv_rec.khr_attribute5,
307               l_pxhv_rec.khr_attribute6,
308               l_pxhv_rec.khr_attribute7,
309               l_pxhv_rec.khr_attribute8,
310               l_pxhv_rec.khr_attribute9,
311               l_pxhv_rec.khr_attribute10,
312               l_pxhv_rec.khr_attribute11,
313               l_pxhv_rec.khr_attribute12,
314               l_pxhv_rec.khr_attribute13,
315               l_pxhv_rec.khr_attribute14,
316               l_pxhv_rec.khr_attribute15,
317               l_pxhv_rec.cust_attribute_category,
318               l_pxhv_rec.cust_attribute1,
319               l_pxhv_rec.cust_attribute2,
320               l_pxhv_rec.cust_attribute3,
321               l_pxhv_rec.cust_attribute4,
322               l_pxhv_rec.cust_attribute5,
323               l_pxhv_rec.cust_attribute6,
324               l_pxhv_rec.cust_attribute7,
325               l_pxhv_rec.cust_attribute8,
326               l_pxhv_rec.cust_attribute9,
327               l_pxhv_rec.cust_attribute10,
328               l_pxhv_rec.cust_attribute11,
329               l_pxhv_rec.cust_attribute12,
330               l_pxhv_rec.cust_attribute13,
331               l_pxhv_rec.cust_attribute14,
332               l_pxhv_rec.cust_attribute15,
333               l_pxhv_rec.rent_ia_contract_number,
334               l_pxhv_rec.rent_ia_product_name,
335               l_pxhv_rec.rent_ia_accounting_code,
336               l_pxhv_rec.res_ia_contract_number,
337               l_pxhv_rec.res_ia_product_name,
338               l_pxhv_rec.res_ia_accounting_code,
342               l_pxhv_rec.inv_agrmnt_currency_code,
339               l_pxhv_rec.inv_agrmnt_number,
340               l_pxhv_rec.inv_agrmnt_effective_from,
341               l_pxhv_rec.inv_agrmnt_product_name,
343               l_pxhv_rec.inv_agrmnt_synd_code,
344               l_pxhv_rec.inv_agrmnt_pool_number,
345               l_pxhv_rec.contract_status_code,
346               l_pxhv_rec.inv_agrmnt_status_code,
347               l_pxhv_rec.trx_type_class_code,
348               l_pxhv_rec.language,
349               l_pxhv_rec.contract_status,
350               l_pxhv_rec.inv_agrmnt_status,
351               l_pxhv_rec.transaction_type_name,
352               l_pxhv_rec.created_by,
353               l_pxhv_rec.creation_date,
354               l_pxhv_rec.last_updated_by,
355               l_pxhv_rec.last_update_date,
356               l_pxhv_rec.last_update_login,
357 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables start
358 	      l_pxhv_rec.party_id,
359 	      l_pxhv_rec.cust_account_id;
360 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables end
361     x_no_data_found := okl_ext_ap_header_s1%NOTFOUND;
362     CLOSE okl_ext_ap_header_s1;
363     RETURN(l_pxhv_rec);
364   END get_rec;
365 
366   ------------------------------------------------------------------
367   -- This version of get_rec sets error messages if no data found --
368   ------------------------------------------------------------------
369   FUNCTION get_rec (
370     p_pxhv_rec                     IN pxhv_rec_type,
371     x_return_status                OUT NOCOPY VARCHAR2
372   ) RETURN pxhv_rec_type IS
373     l_pxhv_rec                     pxhv_rec_type;
374     l_row_notfound                 BOOLEAN := TRUE;
375   BEGIN
376     x_return_status := OKL_API.G_RET_STS_SUCCESS;
377     l_pxhv_rec := get_rec(p_pxhv_rec, l_row_notfound);
378     IF (l_row_notfound) THEN
379       OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'HEADER_EXTENSION_ID');
380       x_return_status := OKL_API.G_RET_STS_ERROR;
381     END IF;
382     RETURN(l_pxhv_rec);
383   END get_rec;
384   -----------------------------------------------------------
385   -- So we don't have to pass an "l_row_notfound" variable --
386   -----------------------------------------------------------
387   FUNCTION get_rec (
388     p_pxhv_rec                     IN pxhv_rec_type
389   ) RETURN pxhv_rec_type IS
390     l_row_not_found                BOOLEAN := TRUE;
391   BEGIN
392     RETURN(get_rec(p_pxhv_rec, l_row_not_found));
393   END get_rec;
394   ---------------------------------------------------------------------------
395   -- FUNCTION get_rec for: OKL_EXT_AP_HEADER_SOURCES_B
396   ---------------------------------------------------------------------------
397   FUNCTION get_rec (
398     p_pxh_rec                      IN pxh_rec_type,
399     x_no_data_found                OUT NOCOPY BOOLEAN
400   ) RETURN pxh_rec_type IS
401     CURSOR okl_ext_ap_header_s3 (p_header_extension_id IN NUMBER) IS
402     SELECT
403             HEADER_EXTENSION_ID,
404             SOURCE_ID,
405             SOURCE_TABLE,
406             OBJECT_VERSION_NUMBER,
407             KHR_ID,
408             TRY_ID,
409             TRANS_NUMBER,
410             CONTRACT_NUMBER,
411             CUSTOMER_NAME,
412             CUST_ACCOUNT_NUMBER,
413             PRODUCT_NAME,
414             BOOK_CLASSIFICATION_CODE,
415             TAX_OWNER_CODE,
416             INT_CALC_METHOD_CODE,
417             REV_REC_METHOD_CODE,
418             SCS_CODE,
419             CONVERTED_NUMBER,
420             CONTRACT_EFFECTIVE_FROM,
421             CONTRACT_CURRENCY_CODE,
422             SALES_REP_NAME,
423             PO_ORDER_NUMBER,
424             VENDOR_PROGRAM_NUMBER,
425             ASSIGNABLE_FLAG,
426             CONVERTED_ACCOUNT_FLAG,
427             ACCRUAL_OVERRIDE_FLAG,
428             KHR_ATTRIBUTE_CATEGORY,
429             KHR_ATTRIBUTE1,
430             KHR_ATTRIBUTE2,
431             KHR_ATTRIBUTE3,
432             KHR_ATTRIBUTE4,
433             KHR_ATTRIBUTE5,
434             KHR_ATTRIBUTE6,
435             KHR_ATTRIBUTE7,
436             KHR_ATTRIBUTE8,
437             KHR_ATTRIBUTE9,
438             KHR_ATTRIBUTE10,
439             KHR_ATTRIBUTE11,
440             KHR_ATTRIBUTE12,
441             KHR_ATTRIBUTE13,
442             KHR_ATTRIBUTE14,
443             KHR_ATTRIBUTE15,
444             CUST_ATTRIBUTE_CATEGORY,
445             CUST_ATTRIBUTE1,
446             CUST_ATTRIBUTE2,
447             CUST_ATTRIBUTE3,
448             CUST_ATTRIBUTE4,
449             CUST_ATTRIBUTE5,
450             CUST_ATTRIBUTE6,
451             CUST_ATTRIBUTE7,
452             CUST_ATTRIBUTE8,
453             CUST_ATTRIBUTE9,
454             CUST_ATTRIBUTE10,
455             CUST_ATTRIBUTE11,
456             CUST_ATTRIBUTE12,
457             CUST_ATTRIBUTE13,
458             CUST_ATTRIBUTE14,
459             CUST_ATTRIBUTE15,
460             RENT_IA_CONTRACT_NUMBER,
461             RENT_IA_PRODUCT_NAME,
462             RENT_IA_ACCOUNTING_CODE,
463             RES_IA_CONTRACT_NUMBER,
464             RES_IA_PRODUCT_NAME,
465             RES_IA_ACCOUNTING_CODE,
466             INV_AGRMNT_NUMBER,
467             INV_AGRMNT_EFFECTIVE_FROM,
468             INV_AGRMNT_PRODUCT_NAME,
469             INV_AGRMNT_CURRENCY_CODE,
470             INV_AGRMNT_SYND_CODE,
471             INV_AGRMNT_POOL_NUMBER,
472             CONTRACT_STATUS_CODE,
473             INV_AGRMNT_STATUS_CODE,
474             TRX_TYPE_CLASS_CODE,
475             CREATED_BY,
476             CREATION_DATE,
477             LAST_UPDATED_BY,
478             LAST_UPDATE_DATE,
482 	    CUST_ACCOUNT_ID
479             LAST_UPDATE_LOGIN,
480 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables start
481             PARTY_ID,
483 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables end
484       FROM Okl_Ext_Ap_Header_Sources_B
485      WHERE okl_ext_ap_header_sources_b.header_extension_id = p_header_extension_id;
486     l_okl_ext_ap_header4           okl_ext_ap_header_s3%ROWTYPE;
487     l_pxh_rec                      pxh_rec_type;
488   BEGIN
489     x_no_data_found := TRUE;
490     -- Get current database values
491     OPEN okl_ext_ap_header_s3 (p_pxh_rec.header_extension_id);
492     FETCH okl_ext_ap_header_s3 INTO
493               l_pxh_rec.header_extension_id,
494               l_pxh_rec.source_id,
495               l_pxh_rec.source_table,
496               l_pxh_rec.object_version_number,
497               l_pxh_rec.khr_id,
498               l_pxh_rec.try_id,
499               l_pxh_rec.trans_number,
500               l_pxh_rec.contract_number,
501               l_pxh_rec.customer_name,
502               l_pxh_rec.cust_account_number,
503               l_pxh_rec.product_name,
504               l_pxh_rec.book_classification_code,
505               l_pxh_rec.tax_owner_code,
506               l_pxh_rec.int_calc_method_code,
507               l_pxh_rec.rev_rec_method_code,
508               l_pxh_rec.scs_code,
509               l_pxh_rec.converted_number,
510               l_pxh_rec.contract_effective_from,
511               l_pxh_rec.contract_currency_code,
512               l_pxh_rec.sales_rep_name,
513               l_pxh_rec.po_order_number,
514               l_pxh_rec.vendor_program_number,
515               l_pxh_rec.assignable_flag,
516               l_pxh_rec.converted_account_flag,
517               l_pxh_rec.accrual_override_flag,
518               l_pxh_rec.khr_attribute_category,
519               l_pxh_rec.khr_attribute1,
520               l_pxh_rec.khr_attribute2,
521               l_pxh_rec.khr_attribute3,
522               l_pxh_rec.khr_attribute4,
523               l_pxh_rec.khr_attribute5,
524               l_pxh_rec.khr_attribute6,
525               l_pxh_rec.khr_attribute7,
526               l_pxh_rec.khr_attribute8,
527               l_pxh_rec.khr_attribute9,
528               l_pxh_rec.khr_attribute10,
529               l_pxh_rec.khr_attribute11,
530               l_pxh_rec.khr_attribute12,
531               l_pxh_rec.khr_attribute13,
532               l_pxh_rec.khr_attribute14,
533               l_pxh_rec.khr_attribute15,
534               l_pxh_rec.cust_attribute_category,
535               l_pxh_rec.cust_attribute1,
536               l_pxh_rec.cust_attribute2,
537               l_pxh_rec.cust_attribute3,
538               l_pxh_rec.cust_attribute4,
539               l_pxh_rec.cust_attribute5,
540               l_pxh_rec.cust_attribute6,
541               l_pxh_rec.cust_attribute7,
542               l_pxh_rec.cust_attribute8,
543               l_pxh_rec.cust_attribute9,
544               l_pxh_rec.cust_attribute10,
545               l_pxh_rec.cust_attribute11,
546               l_pxh_rec.cust_attribute12,
547               l_pxh_rec.cust_attribute13,
548               l_pxh_rec.cust_attribute14,
549               l_pxh_rec.cust_attribute15,
550               l_pxh_rec.rent_ia_contract_number,
551               l_pxh_rec.rent_ia_product_name,
552               l_pxh_rec.rent_ia_accounting_code,
553               l_pxh_rec.res_ia_contract_number,
554               l_pxh_rec.res_ia_product_name,
555               l_pxh_rec.res_ia_accounting_code,
556               l_pxh_rec.inv_agrmnt_number,
557               l_pxh_rec.inv_agrmnt_effective_from,
558               l_pxh_rec.inv_agrmnt_product_name,
559               l_pxh_rec.inv_agrmnt_currency_code,
560               l_pxh_rec.inv_agrmnt_synd_code,
561               l_pxh_rec.inv_agrmnt_pool_number,
562               l_pxh_rec.contract_status_code,
563               l_pxh_rec.inv_agrmnt_status_code,
564               l_pxh_rec.trx_type_class_code,
565               l_pxh_rec.created_by,
566               l_pxh_rec.creation_date,
567               l_pxh_rec.last_updated_by,
568               l_pxh_rec.last_update_date,
569               l_pxh_rec.last_update_login,
570 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables start
571               l_pxh_rec.party_id,
572 	      l_pxh_rec.cust_account_id
573 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables end
574 ;
575     x_no_data_found := okl_ext_ap_header_s3%NOTFOUND;
576     CLOSE okl_ext_ap_header_s3;
577     RETURN(l_pxh_rec);
578   END get_rec;
579 
580   ------------------------------------------------------------------
581   -- This version of get_rec sets error messages if no data found --
582   ------------------------------------------------------------------
583   FUNCTION get_rec (
584     p_pxh_rec                      IN pxh_rec_type,
585     x_return_status                OUT NOCOPY VARCHAR2
586   ) RETURN pxh_rec_type IS
587     l_pxh_rec                      pxh_rec_type;
588     l_row_notfound                 BOOLEAN := TRUE;
589   BEGIN
590     x_return_status := OKL_API.G_RET_STS_SUCCESS;
591     l_pxh_rec := get_rec(p_pxh_rec, l_row_notfound);
592     IF (l_row_notfound) THEN
593       OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'HEADER_EXTENSION_ID');
594       x_return_status := OKL_API.G_RET_STS_ERROR;
595     END IF;
596     RETURN(l_pxh_rec);
597   END get_rec;
598   -----------------------------------------------------------
599   -- So we don't have to pass an "l_row_notfound" variable --
600   -----------------------------------------------------------
601   FUNCTION get_rec (
602     p_pxh_rec                      IN pxh_rec_type
606     RETURN(get_rec(p_pxh_rec, l_row_not_found));
603   ) RETURN pxh_rec_type IS
604     l_row_not_found                BOOLEAN := TRUE;
605   BEGIN
607   END get_rec;
608   ---------------------------------------------------------------------------
609   -- FUNCTION get_rec for: OKL_EXT_AP_HEADER_SOURCES_TL
610   ---------------------------------------------------------------------------
611   FUNCTION get_rec (
612     p_pxhl_rec                     IN pxhl_rec_type,
613     x_no_data_found                OUT NOCOPY BOOLEAN
614   ) RETURN pxhl_rec_type IS
615     CURSOR okl_ext_ap_header_s5 (p_header_extension_id IN NUMBER,
616                                  p_language            IN VARCHAR2) IS
617     SELECT
618             HEADER_EXTENSION_ID,
619             LANGUAGE,
620             SOURCE_LANG,
621             SFWT_FLAG,
622             CONTRACT_STATUS,
623             INV_AGRMNT_STATUS,
624             TRANSACTION_TYPE_NAME,
625             CREATED_BY,
626             CREATION_DATE,
627             LAST_UPDATED_BY,
628             LAST_UPDATE_DATE,
629             LAST_UPDATE_LOGIN
630       FROM Okl_Ext_Ap_Header_Sources_Tl
631      WHERE okl_ext_ap_header_sources_tl.header_extension_id = p_header_extension_id
632        AND okl_ext_ap_header_sources_tl.language = p_language;
633     l_okl_ext_ap_header6           okl_ext_ap_header_s5%ROWTYPE;
634     l_pxhl_rec                     pxhl_rec_type;
635   BEGIN
636     x_no_data_found := TRUE;
637     -- Get current database values
638     OPEN okl_ext_ap_header_s5 (p_pxhl_rec.header_extension_id,
639                                p_pxhl_rec.language);
640     FETCH okl_ext_ap_header_s5 INTO
641               l_pxhl_rec.header_extension_id,
642               l_pxhl_rec.language,
643               l_pxhl_rec.source_lang,
644               l_pxhl_rec.sfwt_flag,
645               l_pxhl_rec.contract_status,
646               l_pxhl_rec.inv_agrmnt_status,
647               l_pxhl_rec.transaction_type_name,
648               l_pxhl_rec.created_by,
649               l_pxhl_rec.creation_date,
650               l_pxhl_rec.last_updated_by,
651               l_pxhl_rec.last_update_date,
652               l_pxhl_rec.last_update_login;
653     x_no_data_found := okl_ext_ap_header_s5%NOTFOUND;
654     CLOSE okl_ext_ap_header_s5;
655     RETURN(l_pxhl_rec);
656   END get_rec;
657 
658   ------------------------------------------------------------------
659   -- This version of get_rec sets error messages if no data found --
660   ------------------------------------------------------------------
661   FUNCTION get_rec (
662     p_pxhl_rec                     IN pxhl_rec_type,
663     x_return_status                OUT NOCOPY VARCHAR2
664   ) RETURN pxhl_rec_type IS
665     l_pxhl_rec                     pxhl_rec_type;
666     l_row_notfound                 BOOLEAN := TRUE;
667   BEGIN
668     x_return_status := OKL_API.G_RET_STS_SUCCESS;
669     l_pxhl_rec := get_rec(p_pxhl_rec, l_row_notfound);
670     IF (l_row_notfound) THEN
671       OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'HEADER_EXTENSION_ID');
672       OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'LANGUAGE');
673       x_return_status := OKL_API.G_RET_STS_ERROR;
674     END IF;
675     RETURN(l_pxhl_rec);
676   END get_rec;
677   -----------------------------------------------------------
678   -- So we don't have to pass an "l_row_notfound" variable --
679   -----------------------------------------------------------
680   FUNCTION get_rec (
681     p_pxhl_rec                     IN pxhl_rec_type
682   ) RETURN pxhl_rec_type IS
683     l_row_not_found                BOOLEAN := TRUE;
684   BEGIN
685     RETURN(get_rec(p_pxhl_rec, l_row_not_found));
686   END get_rec;
687   ---------------------------------------------------------------------------
688   -- FUNCTION null_out_defaults for: OKL_EXT_AP_HEADER_SOURCES_V
689   ---------------------------------------------------------------------------
690   FUNCTION null_out_defaults (
691     p_pxhv_rec   IN pxhv_rec_type
692   ) RETURN pxhv_rec_type IS
693     l_pxhv_rec                     pxhv_rec_type := p_pxhv_rec;
694   BEGIN
695     IF (l_pxhv_rec.header_extension_id = OKL_API.G_MISS_NUM ) THEN
696       l_pxhv_rec.header_extension_id := NULL;
697     END IF;
698     IF (l_pxhv_rec.source_id = OKL_API.G_MISS_NUM ) THEN
699       l_pxhv_rec.source_id := NULL;
700     END IF;
701     IF (l_pxhv_rec.source_table = OKL_API.G_MISS_CHAR ) THEN
702       l_pxhv_rec.source_table := NULL;
703     END IF;
704     IF (l_pxhv_rec.object_version_number = OKL_API.G_MISS_NUM ) THEN
705       l_pxhv_rec.object_version_number := NULL;
706     END IF;
707     IF (l_pxhv_rec.khr_id = OKL_API.G_MISS_NUM ) THEN
708       l_pxhv_rec.khr_id := NULL;
709     END IF;
710     IF (l_pxhv_rec.try_id = OKL_API.G_MISS_NUM ) THEN
711       l_pxhv_rec.try_id := NULL;
712     END IF;
713     IF (l_pxhv_rec.trans_number = OKL_API.G_MISS_CHAR ) THEN
714       l_pxhv_rec.trans_number := NULL;
715     END IF;
716     IF (l_pxhv_rec.contract_number = OKL_API.G_MISS_CHAR ) THEN
717       l_pxhv_rec.contract_number := NULL;
718     END IF;
719     IF (l_pxhv_rec.customer_name = OKL_API.G_MISS_CHAR ) THEN
720       l_pxhv_rec.customer_name := NULL;
721     END IF;
722     IF (l_pxhv_rec.cust_account_number = OKL_API.G_MISS_CHAR ) THEN
723       l_pxhv_rec.cust_account_number := NULL;
724     END IF;
725     IF (l_pxhv_rec.product_name = OKL_API.G_MISS_CHAR ) THEN
726       l_pxhv_rec.product_name := NULL;
727     END IF;
728     IF (l_pxhv_rec.book_classification_code = OKL_API.G_MISS_CHAR ) THEN
729       l_pxhv_rec.book_classification_code := NULL;
730     END IF;
731     IF (l_pxhv_rec.tax_owner_code = OKL_API.G_MISS_CHAR ) THEN
735       l_pxhv_rec.int_calc_method_code := NULL;
732       l_pxhv_rec.tax_owner_code := NULL;
733     END IF;
734     IF (l_pxhv_rec.int_calc_method_code = OKL_API.G_MISS_CHAR ) THEN
736     END IF;
737     IF (l_pxhv_rec.rev_rec_method_code = OKL_API.G_MISS_CHAR ) THEN
738       l_pxhv_rec.rev_rec_method_code := NULL;
739     END IF;
740     IF (l_pxhv_rec.scs_code = OKL_API.G_MISS_CHAR ) THEN
741       l_pxhv_rec.scs_code := NULL;
742     END IF;
743     IF (l_pxhv_rec.converted_number = OKL_API.G_MISS_CHAR ) THEN
744       l_pxhv_rec.converted_number := NULL;
745     END IF;
746     IF (l_pxhv_rec.contract_effective_from = OKL_API.G_MISS_DATE ) THEN
747       l_pxhv_rec.contract_effective_from := NULL;
748     END IF;
749     IF (l_pxhv_rec.contract_currency_code = OKL_API.G_MISS_CHAR ) THEN
750       l_pxhv_rec.contract_currency_code := NULL;
751     END IF;
752     IF (l_pxhv_rec.sales_rep_name = OKL_API.G_MISS_CHAR ) THEN
753       l_pxhv_rec.sales_rep_name := NULL;
754     END IF;
755     IF (l_pxhv_rec.po_order_number = OKL_API.G_MISS_CHAR ) THEN
756       l_pxhv_rec.po_order_number := NULL;
757     END IF;
758     IF (l_pxhv_rec.vendor_program_number = OKL_API.G_MISS_CHAR ) THEN
759       l_pxhv_rec.vendor_program_number := NULL;
760     END IF;
761     IF (l_pxhv_rec.assignable_flag = OKL_API.G_MISS_CHAR ) THEN
762       l_pxhv_rec.assignable_flag := NULL;
763     END IF;
764     IF (l_pxhv_rec.converted_account_flag = OKL_API.G_MISS_CHAR ) THEN
765       l_pxhv_rec.converted_account_flag := NULL;
766     END IF;
767     IF (l_pxhv_rec.accrual_override_flag = OKL_API.G_MISS_CHAR ) THEN
768       l_pxhv_rec.accrual_override_flag := NULL;
769     END IF;
770     IF (l_pxhv_rec.khr_attribute_category = OKL_API.G_MISS_CHAR ) THEN
771       l_pxhv_rec.khr_attribute_category := NULL;
772     END IF;
773     IF (l_pxhv_rec.khr_attribute1 = OKL_API.G_MISS_CHAR ) THEN
774       l_pxhv_rec.khr_attribute1 := NULL;
775     END IF;
776     IF (l_pxhv_rec.khr_attribute2 = OKL_API.G_MISS_CHAR ) THEN
777       l_pxhv_rec.khr_attribute2 := NULL;
778     END IF;
779     IF (l_pxhv_rec.khr_attribute3 = OKL_API.G_MISS_CHAR ) THEN
780       l_pxhv_rec.khr_attribute3 := NULL;
781     END IF;
782     IF (l_pxhv_rec.khr_attribute4 = OKL_API.G_MISS_CHAR ) THEN
783       l_pxhv_rec.khr_attribute4 := NULL;
784     END IF;
785     IF (l_pxhv_rec.khr_attribute5 = OKL_API.G_MISS_CHAR ) THEN
786       l_pxhv_rec.khr_attribute5 := NULL;
787     END IF;
788     IF (l_pxhv_rec.khr_attribute6 = OKL_API.G_MISS_CHAR ) THEN
789       l_pxhv_rec.khr_attribute6 := NULL;
790     END IF;
791     IF (l_pxhv_rec.khr_attribute7 = OKL_API.G_MISS_CHAR ) THEN
792       l_pxhv_rec.khr_attribute7 := NULL;
793     END IF;
794     IF (l_pxhv_rec.khr_attribute8 = OKL_API.G_MISS_CHAR ) THEN
795       l_pxhv_rec.khr_attribute8 := NULL;
796     END IF;
797     IF (l_pxhv_rec.khr_attribute9 = OKL_API.G_MISS_CHAR ) THEN
798       l_pxhv_rec.khr_attribute9 := NULL;
799     END IF;
800     IF (l_pxhv_rec.khr_attribute10 = OKL_API.G_MISS_CHAR ) THEN
801       l_pxhv_rec.khr_attribute10 := NULL;
802     END IF;
803     IF (l_pxhv_rec.khr_attribute11 = OKL_API.G_MISS_CHAR ) THEN
804       l_pxhv_rec.khr_attribute11 := NULL;
805     END IF;
806     IF (l_pxhv_rec.khr_attribute12 = OKL_API.G_MISS_CHAR ) THEN
807       l_pxhv_rec.khr_attribute12 := NULL;
808     END IF;
809     IF (l_pxhv_rec.khr_attribute13 = OKL_API.G_MISS_CHAR ) THEN
810       l_pxhv_rec.khr_attribute13 := NULL;
811     END IF;
812     IF (l_pxhv_rec.khr_attribute14 = OKL_API.G_MISS_CHAR ) THEN
813       l_pxhv_rec.khr_attribute14 := NULL;
814     END IF;
815     IF (l_pxhv_rec.khr_attribute15 = OKL_API.G_MISS_CHAR ) THEN
816       l_pxhv_rec.khr_attribute15 := NULL;
817     END IF;
818     IF (l_pxhv_rec.cust_attribute_category = OKL_API.G_MISS_CHAR ) THEN
819       l_pxhv_rec.cust_attribute_category := NULL;
820     END IF;
821     IF (l_pxhv_rec.cust_attribute1 = OKL_API.G_MISS_CHAR ) THEN
822       l_pxhv_rec.cust_attribute1 := NULL;
823     END IF;
824     IF (l_pxhv_rec.cust_attribute2 = OKL_API.G_MISS_CHAR ) THEN
825       l_pxhv_rec.cust_attribute2 := NULL;
826     END IF;
827     IF (l_pxhv_rec.cust_attribute3 = OKL_API.G_MISS_CHAR ) THEN
828       l_pxhv_rec.cust_attribute3 := NULL;
829     END IF;
830     IF (l_pxhv_rec.cust_attribute4 = OKL_API.G_MISS_CHAR ) THEN
831       l_pxhv_rec.cust_attribute4 := NULL;
832     END IF;
833     IF (l_pxhv_rec.cust_attribute5 = OKL_API.G_MISS_CHAR ) THEN
834       l_pxhv_rec.cust_attribute5 := NULL;
835     END IF;
836     IF (l_pxhv_rec.cust_attribute6 = OKL_API.G_MISS_CHAR ) THEN
837       l_pxhv_rec.cust_attribute6 := NULL;
838     END IF;
839     IF (l_pxhv_rec.cust_attribute7 = OKL_API.G_MISS_CHAR ) THEN
840       l_pxhv_rec.cust_attribute7 := NULL;
841     END IF;
842     IF (l_pxhv_rec.cust_attribute8 = OKL_API.G_MISS_CHAR ) THEN
843       l_pxhv_rec.cust_attribute8 := NULL;
844     END IF;
845     IF (l_pxhv_rec.cust_attribute9 = OKL_API.G_MISS_CHAR ) THEN
846       l_pxhv_rec.cust_attribute9 := NULL;
847     END IF;
848     IF (l_pxhv_rec.cust_attribute10 = OKL_API.G_MISS_CHAR ) THEN
849       l_pxhv_rec.cust_attribute10 := NULL;
850     END IF;
851     IF (l_pxhv_rec.cust_attribute11 = OKL_API.G_MISS_CHAR ) THEN
852       l_pxhv_rec.cust_attribute11 := NULL;
853     END IF;
854     IF (l_pxhv_rec.cust_attribute12 = OKL_API.G_MISS_CHAR ) THEN
855       l_pxhv_rec.cust_attribute12 := NULL;
856     END IF;
857     IF (l_pxhv_rec.cust_attribute13 = OKL_API.G_MISS_CHAR ) THEN
858       l_pxhv_rec.cust_attribute13 := NULL;
859     END IF;
860     IF (l_pxhv_rec.cust_attribute14 = OKL_API.G_MISS_CHAR ) THEN
861       l_pxhv_rec.cust_attribute14 := NULL;
862     END IF;
866     IF (l_pxhv_rec.rent_ia_contract_number = OKL_API.G_MISS_CHAR ) THEN
863     IF (l_pxhv_rec.cust_attribute15 = OKL_API.G_MISS_CHAR ) THEN
864       l_pxhv_rec.cust_attribute15 := NULL;
865     END IF;
867       l_pxhv_rec.rent_ia_contract_number := NULL;
868     END IF;
869     IF (l_pxhv_rec.rent_ia_product_name = OKL_API.G_MISS_CHAR ) THEN
870       l_pxhv_rec.rent_ia_product_name := NULL;
871     END IF;
872     IF (l_pxhv_rec.rent_ia_accounting_code = OKL_API.G_MISS_CHAR ) THEN
873       l_pxhv_rec.rent_ia_accounting_code := NULL;
874     END IF;
875     IF (l_pxhv_rec.res_ia_contract_number = OKL_API.G_MISS_CHAR ) THEN
876       l_pxhv_rec.res_ia_contract_number := NULL;
877     END IF;
878     IF (l_pxhv_rec.res_ia_product_name = OKL_API.G_MISS_CHAR ) THEN
879       l_pxhv_rec.res_ia_product_name := NULL;
880     END IF;
881     IF (l_pxhv_rec.res_ia_accounting_code = OKL_API.G_MISS_CHAR ) THEN
882       l_pxhv_rec.res_ia_accounting_code := NULL;
883     END IF;
884     IF (l_pxhv_rec.inv_agrmnt_number = OKL_API.G_MISS_CHAR ) THEN
885       l_pxhv_rec.inv_agrmnt_number := NULL;
886     END IF;
887     IF (l_pxhv_rec.inv_agrmnt_effective_from = OKL_API.G_MISS_DATE ) THEN
888       l_pxhv_rec.inv_agrmnt_effective_from := NULL;
889     END IF;
890     IF (l_pxhv_rec.inv_agrmnt_product_name = OKL_API.G_MISS_CHAR ) THEN
891       l_pxhv_rec.inv_agrmnt_product_name := NULL;
892     END IF;
893     IF (l_pxhv_rec.inv_agrmnt_currency_code = OKL_API.G_MISS_CHAR ) THEN
894       l_pxhv_rec.inv_agrmnt_currency_code := NULL;
895     END IF;
896     IF (l_pxhv_rec.inv_agrmnt_synd_code = OKL_API.G_MISS_CHAR ) THEN
897       l_pxhv_rec.inv_agrmnt_synd_code := NULL;
898     END IF;
899     IF (l_pxhv_rec.inv_agrmnt_pool_number = OKL_API.G_MISS_CHAR ) THEN
900       l_pxhv_rec.inv_agrmnt_pool_number := NULL;
901     END IF;
902     IF (l_pxhv_rec.contract_status_code = OKL_API.G_MISS_CHAR ) THEN
903       l_pxhv_rec.contract_status_code := NULL;
904     END IF;
905     IF (l_pxhv_rec.inv_agrmnt_status_code = OKL_API.G_MISS_CHAR ) THEN
906       l_pxhv_rec.inv_agrmnt_status_code := NULL;
907     END IF;
908     IF (l_pxhv_rec.trx_type_class_code = OKL_API.G_MISS_CHAR ) THEN
909       l_pxhv_rec.trx_type_class_code := NULL;
910     END IF;
911     IF (l_pxhv_rec.language = OKL_API.G_MISS_CHAR ) THEN
912       l_pxhv_rec.language := NULL;
913     END IF;
914     IF (l_pxhv_rec.contract_status = OKL_API.G_MISS_CHAR ) THEN
915       l_pxhv_rec.contract_status := NULL;
916     END IF;
917     IF (l_pxhv_rec.inv_agrmnt_status = OKL_API.G_MISS_CHAR ) THEN
918       l_pxhv_rec.inv_agrmnt_status := NULL;
919     END IF;
920     IF (l_pxhv_rec.transaction_type_name = OKL_API.G_MISS_CHAR ) THEN
921       l_pxhv_rec.transaction_type_name := NULL;
922     END IF;
923     IF (l_pxhv_rec.created_by = OKL_API.G_MISS_NUM ) THEN
924       l_pxhv_rec.created_by := NULL;
925     END IF;
926     IF (l_pxhv_rec.creation_date = OKL_API.G_MISS_DATE ) THEN
927       l_pxhv_rec.creation_date := NULL;
928     END IF;
929     IF (l_pxhv_rec.last_updated_by = OKL_API.G_MISS_NUM ) THEN
930       l_pxhv_rec.last_updated_by := NULL;
931     END IF;
932     IF (l_pxhv_rec.last_update_date = OKL_API.G_MISS_DATE ) THEN
933       l_pxhv_rec.last_update_date := NULL;
934     END IF;
935     IF (l_pxhv_rec.last_update_login = OKL_API.G_MISS_NUM ) THEN
936       l_pxhv_rec.last_update_login := NULL;
937     END IF;
938 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables start
939     IF (l_pxhv_rec.party_id = OKL_API.G_MISS_NUM ) THEN
940       l_pxhv_rec.party_id := NULL;
941     END IF;
942     IF (l_pxhv_rec.cust_account_id = OKL_API.G_MISS_NUM ) THEN
943       l_pxhv_rec.cust_account_id := NULL;
944     END IF;
945 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables end
946     RETURN(l_pxhv_rec);
947   END null_out_defaults;
948   --------------------------------------------------
949   -- Validate_Attributes for: HEADER_EXTENSION_ID --
950   --------------------------------------------------
951   PROCEDURE validate_header_extension_id(
952     x_return_status                OUT NOCOPY VARCHAR2,
953     p_header_extension_id          IN NUMBER) IS
954   BEGIN
955     x_return_status := OKL_API.G_RET_STS_SUCCESS;
956     IF (p_header_extension_id IS NULL) THEN
957       OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'header_extension_id');
958       x_return_status := OKL_API.G_RET_STS_ERROR;
959       RAISE G_EXCEPTION_HALT_VALIDATION;
960     END IF;
961   EXCEPTION
962     WHEN G_EXCEPTION_HALT_VALIDATION THEN
963       null;
964     WHEN OTHERS THEN
965       OKL_API.SET_MESSAGE( p_app_name     => G_APP_NAME
966                           ,p_msg_name     => G_UNEXPECTED_ERROR
967                           ,p_token1       => G_SQLCODE_TOKEN
968                           ,p_token1_value => SQLCODE
969                           ,p_token2       => G_SQLERRM_TOKEN
970                           ,p_token2_value => SQLERRM);
971       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
972   END validate_header_extension_id;
973   ----------------------------------------
974   -- Validate_Attributes for: SOURCE_ID --
975   ----------------------------------------
976   PROCEDURE validate_source_id(
977     x_return_status                OUT NOCOPY VARCHAR2,
978     p_source_id                    IN NUMBER) IS
979   BEGIN
980     x_return_status := OKL_API.G_RET_STS_SUCCESS;
981     IF (p_source_id IS NULL) THEN
982       OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'source_id');
983       x_return_status := OKL_API.G_RET_STS_ERROR;
984       RAISE G_EXCEPTION_HALT_VALIDATION;
985     END IF;
986   EXCEPTION
987     WHEN G_EXCEPTION_HALT_VALIDATION THEN
988       null;
989     WHEN OTHERS THEN
993                           ,p_token1_value => SQLCODE
990       OKL_API.SET_MESSAGE( p_app_name     => G_APP_NAME
991                           ,p_msg_name     => G_UNEXPECTED_ERROR
992                           ,p_token1       => G_SQLCODE_TOKEN
994                           ,p_token2       => G_SQLERRM_TOKEN
995                           ,p_token2_value => SQLERRM);
996       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
997   END validate_source_id;
998   -------------------------------------------
999   -- Validate_Attributes for: SOURCE_TABLE --
1000   -------------------------------------------
1001   PROCEDURE validate_source_table(
1002     x_return_status                OUT NOCOPY VARCHAR2,
1003     p_source_table                 IN VARCHAR2) IS
1004   BEGIN
1005     x_return_status := OKL_API.G_RET_STS_SUCCESS;
1006     IF (p_source_table IS NULL) THEN
1007       OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'source_table');
1008       x_return_status := OKL_API.G_RET_STS_ERROR;
1009       RAISE G_EXCEPTION_HALT_VALIDATION;
1010     END IF;
1011   EXCEPTION
1012     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1013       null;
1014     WHEN OTHERS THEN
1015       OKL_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1016                           ,p_msg_name     => G_UNEXPECTED_ERROR
1017                           ,p_token1       => G_SQLCODE_TOKEN
1018                           ,p_token1_value => SQLCODE
1019                           ,p_token2       => G_SQLERRM_TOKEN
1020                           ,p_token2_value => SQLERRM);
1021       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1022   END validate_source_table;
1023   ----------------------------------------------------
1024   -- Validate_Attributes for: OBJECT_VERSION_NUMBER --
1025   ----------------------------------------------------
1026   PROCEDURE validate_object_version_number(
1027     x_return_status                OUT NOCOPY VARCHAR2,
1028     p_object_version_number        IN NUMBER) IS
1029   BEGIN
1030     x_return_status := OKL_API.G_RET_STS_SUCCESS;
1031     IF (p_object_version_number IS NULL) THEN
1032       OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'object_version_number');
1033       x_return_status := OKL_API.G_RET_STS_ERROR;
1034       RAISE G_EXCEPTION_HALT_VALIDATION;
1035     END IF;
1036   EXCEPTION
1037     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1038       null;
1039     WHEN OTHERS THEN
1040       OKL_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1041                           ,p_msg_name     => G_UNEXPECTED_ERROR
1042                           ,p_token1       => G_SQLCODE_TOKEN
1043                           ,p_token1_value => SQLCODE
1044                           ,p_token2       => G_SQLERRM_TOKEN
1045                           ,p_token2_value => SQLERRM);
1046       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1047   END validate_object_version_number;
1048   -------------------------------------
1049   -- Validate_Attributes for: KHR_ID --
1050   -------------------------------------
1051   PROCEDURE validate_khr_id(
1052     x_return_status                OUT NOCOPY VARCHAR2,
1053     p_khr_id                       IN NUMBER) IS
1054   BEGIN
1055     x_return_status := OKL_API.G_RET_STS_SUCCESS;
1056     IF (p_khr_id IS NULL) THEN
1057       OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'khr_id');
1058       x_return_status := OKL_API.G_RET_STS_ERROR;
1059       RAISE G_EXCEPTION_HALT_VALIDATION;
1060     END IF;
1061   EXCEPTION
1062     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1063       null;
1064     WHEN OTHERS THEN
1065       OKL_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1066                           ,p_msg_name     => G_UNEXPECTED_ERROR
1067                           ,p_token1       => G_SQLCODE_TOKEN
1068                           ,p_token1_value => SQLCODE
1069                           ,p_token2       => G_SQLERRM_TOKEN
1070                           ,p_token2_value => SQLERRM);
1071       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1072   END validate_khr_id;
1073   -------------------------------------
1074   -- Validate_Attributes for: TRY_ID --
1075   -------------------------------------
1076   PROCEDURE validate_try_id(
1077     x_return_status                OUT NOCOPY VARCHAR2,
1078     p_try_id                       IN NUMBER) IS
1079   BEGIN
1080     x_return_status := OKL_API.G_RET_STS_SUCCESS;
1081     IF (p_try_id IS NULL) THEN
1082       OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'try_id');
1083       x_return_status := OKL_API.G_RET_STS_ERROR;
1084       RAISE G_EXCEPTION_HALT_VALIDATION;
1085     END IF;
1086   EXCEPTION
1087     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1088       null;
1089     WHEN OTHERS THEN
1090       OKL_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1091                           ,p_msg_name     => G_UNEXPECTED_ERROR
1092                           ,p_token1       => G_SQLCODE_TOKEN
1093                           ,p_token1_value => SQLCODE
1094                           ,p_token2       => G_SQLERRM_TOKEN
1095                           ,p_token2_value => SQLERRM);
1096       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1097   END validate_try_id;
1098   ---------------------------------------
1099   -- Validate_Attributes for: LANGUAGE --
1100   ---------------------------------------
1101   PROCEDURE validate_language(
1102     x_return_status                OUT NOCOPY VARCHAR2,
1103     p_language                     IN VARCHAR2) IS
1104   BEGIN
1105     x_return_status := OKL_API.G_RET_STS_SUCCESS;
1106     IF (p_language IS NULL) THEN
1107       OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'language');
1108       x_return_status := OKL_API.G_RET_STS_ERROR;
1109       RAISE G_EXCEPTION_HALT_VALIDATION;
1110     END IF;
1111   EXCEPTION
1112     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1113       null;
1114     WHEN OTHERS THEN
1115       OKL_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1116                           ,p_msg_name     => G_UNEXPECTED_ERROR
1117                           ,p_token1       => G_SQLCODE_TOKEN
1118                           ,p_token1_value => SQLCODE
1119                           ,p_token2       => G_SQLERRM_TOKEN
1120                           ,p_token2_value => SQLERRM);
1121       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1122   END validate_language;
1123   -------------------------------------
1124   -- Validate_Attributes for: PARTY_ID --
1125   -------------------------------------
1126   PROCEDURE validate_party_id(
1127     x_return_status                OUT NOCOPY VARCHAR2,
1128     p_party_id        IN NUMBER) IS
1129 
1130     l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
1131     l_party_id              NUMBER;
1132     l_row_not_found         BOOLEAN := FALSE;
1133     CURSOR check_party_id_csr(p_party_id NUMBER) IS
1134     SELECT '1'
1135     FROM hz_parties
1136     WHERE  party_id =  p_party_id;
1137   BEGIN
1138     IF ( p_party_id IS NOT NULL) THEN
1139     -- initialize return status
1140       x_return_status := OKC_API.G_RET_STS_SUCCESS;
1141       OPEN check_party_id_csr(p_party_id );
1142       FETCH check_party_id_csr INTO l_party_id ;
1143       l_row_not_found := check_party_id_csr%NOTFOUND;
1144       CLOSE check_party_id_csr;
1145       IF l_row_not_found THEN
1146          OKC_API.set_message('OKL',G_INVALID_VALUE , G_COL_NAME_TOKEN, 'PARTY_ID');
1147          x_return_status := OKC_API.G_RET_STS_ERROR;
1148       END IF;
1149     END IF;
1150   EXCEPTION
1151     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1152     -- no processing necessary;  validation can continue
1153     -- with the next column
1154     NULL;
1155     WHEN OTHERS THEN
1156       -- store SQL error message on message stack for caller
1157       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1158                           p_msg_name     => g_unexpected_error,
1159                           p_token1       => g_sqlcode_token,
1160                           p_token1_value => SQLCODE,
1161                           p_token2       => g_sqlerrm_token,
1162                           p_token2_value => SQLERRM);
1163 
1164       -- notify caller of an UNEXPECTED error
1165       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1166   END validate_party_id;
1167     ---------------------------------------------
1168   -- Validate_Attributes for: CUST_ACCOUNT_ID --
1169   -----------------------------------------------
1170  PROCEDURE validate_cust_account_id(
1171     x_return_status                OUT NOCOPY VARCHAR2,
1172     p_cust_account_id        IN NUMBER) IS
1173     l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
1174     l_cust_account_id              NUMBER;
1175     l_row_not_found             BOOLEAN := FALSE;
1176     CURSOR check_cust_account_id_csr(p_cust_account_id NUMBER) IS
1177     SELECT '1'
1178     FROM hz_cust_accounts
1179     WHERE  cust_account_id = p_cust_account_id;
1180   BEGIN
1181     IF ( p_cust_account_id IS NOT NULL) THEN
1182     -- initialize return status
1183       x_return_status := OKC_API.G_RET_STS_SUCCESS;
1184       OPEN check_cust_account_id_csr(p_cust_account_id);
1185       FETCH check_cust_account_id_csr INTO l_cust_account_id ;
1186       l_row_not_found := check_cust_account_id_csr%NOTFOUND;
1187       CLOSE check_cust_account_id_csr;
1188       IF l_row_not_found THEN
1189          OKC_API.set_message('OKL',G_INVALID_VALUE , G_COL_NAME_TOKEN, 'CUST_ACCOUNT_ID');
1190          x_return_status := OKC_API.G_RET_STS_ERROR;
1191       END IF;
1192     END IF;
1193   EXCEPTION
1194     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1195     -- no processing necessary;  validation can continue
1196     -- with the next column
1197     NULL;
1198     WHEN OTHERS THEN
1199       -- store SQL error message on message stack for caller
1200       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1201                           p_msg_name     => g_unexpected_error,
1202                           p_token1       => g_sqlcode_token,
1203                           p_token1_value => SQLCODE,
1204                           p_token2       => g_sqlerrm_token,
1205                           p_token2_value => SQLERRM);
1206 
1207       -- notify caller of an UNEXPECTED error
1208       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1209   END validate_cust_account_id;
1210   ---------------------------------------------------------------------------
1211   -- FUNCTION Validate_Attributes
1212   ---------------------------------------------------------------------------
1213   ---------------------------------------------------------
1214   -- Validate_Attributes for:OKL_EXT_AP_HEADER_SOURCES_V --
1215   ---------------------------------------------------------
1216   FUNCTION Validate_Attributes (
1217     p_pxhv_rec                     IN pxhv_rec_type
1218   ) RETURN VARCHAR2 IS
1219     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1220     x_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1221   BEGIN
1222     -----------------------------
1223     -- Column Level Validation --
1224     -----------------------------
1225     -- ***
1226     -- header_extension_id
1227     -- ***
1228     validate_header_extension_id(x_return_status, p_pxhv_rec.header_extension_id);
1229     IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1230       l_return_status := x_return_status;
1231       RAISE G_EXCEPTION_HALT_VALIDATION;
1232     END IF;
1233 
1234     -- ***
1235     -- source_id
1236     -- ***
1237     validate_source_id(x_return_status, p_pxhv_rec.source_id);
1238     IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1239       l_return_status := x_return_status;
1240       RAISE G_EXCEPTION_HALT_VALIDATION;
1241     END IF;
1242 
1243     -- ***
1244     -- source_table
1245     -- ***
1246     validate_source_table(x_return_status, p_pxhv_rec.source_table);
1247     IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1248       l_return_status := x_return_status;
1249       RAISE G_EXCEPTION_HALT_VALIDATION;
1250     END IF;
1251 
1252     -- ***
1253     -- object_version_number
1254     -- ***
1255     validate_object_version_number(x_return_status, p_pxhv_rec.object_version_number);
1256     IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1257       l_return_status := x_return_status;
1258       RAISE G_EXCEPTION_HALT_VALIDATION;
1259     END IF;
1260 
1261     -- ***
1262     -- khr_id
1263     -- ***
1264     validate_khr_id(x_return_status, p_pxhv_rec.khr_id);
1265     IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1266       l_return_status := x_return_status;
1267       RAISE G_EXCEPTION_HALT_VALIDATION;
1268     END IF;
1269 
1270     -- ***
1271     -- try_id
1272     -- ***
1273     validate_try_id(x_return_status, p_pxhv_rec.try_id);
1274     IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1275       l_return_status := x_return_status;
1276       RAISE G_EXCEPTION_HALT_VALIDATION;
1277     END IF;
1278 
1279     -- ***
1280     -- language
1281     -- ***
1282     validate_language(x_return_status, p_pxhv_rec.language);
1283     IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1284       l_return_status := x_return_status;
1285       RAISE G_EXCEPTION_HALT_VALIDATION;
1286     END IF;
1287 
1288 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables start
1289     -- ***
1290     -- party_id
1291     -- ***
1292     validate_party_id(x_return_status, p_pxhv_rec.party_id);
1293     IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1294       l_return_status := x_return_status;
1295       RAISE G_EXCEPTION_HALT_VALIDATION;
1296     END IF;
1297 
1298     -- ***
1299     -- cust_account_id
1300     -- ***
1301     validate_cust_account_id(x_return_status, p_pxhv_rec.cust_account_id);
1302     IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1303       l_return_status := x_return_status;
1304       RAISE G_EXCEPTION_HALT_VALIDATION;
1305     END IF;
1306 
1307 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables end
1308     RETURN(l_return_status);
1309   EXCEPTION
1310     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1311       RETURN(l_return_status);
1312     WHEN OTHERS THEN
1313       OKL_API.SET_MESSAGE( p_app_name     => G_APP_NAME
1314                           ,p_msg_name     => G_UNEXPECTED_ERROR
1315                           ,p_token1       => G_SQLCODE_TOKEN
1316                           ,p_token1_value => SQLCODE
1317                           ,p_token2       => G_SQLERRM_TOKEN
1318                           ,p_token2_value => SQLERRM);
1319       l_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1320       RETURN(l_return_status);
1321   END Validate_Attributes;
1322   ---------------------------------------------------------------------------
1323   -- PROCEDURE Validate_Record
1324   ---------------------------------------------------------------------------
1325   -----------------------------------------------------
1326   -- Validate Record for:OKL_EXT_AP_HEADER_SOURCES_V --
1327   -----------------------------------------------------
1328   FUNCTION Validate_Record (
1329     p_pxhv_rec IN pxhv_rec_type,
1330     p_db_pxhv_rec IN pxhv_rec_type
1331   ) RETURN VARCHAR2 IS
1332     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1333   BEGIN
1334     RETURN (l_return_status);
1335   END Validate_Record;
1336   FUNCTION Validate_Record (
1337     p_pxhv_rec IN pxhv_rec_type
1338   ) RETURN VARCHAR2 IS
1339     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1340     l_db_pxhv_rec                  pxhv_rec_type := get_rec(p_pxhv_rec);
1341   BEGIN
1342     l_return_status := Validate_Record(p_pxhv_rec => p_pxhv_rec,
1343                                        p_db_pxhv_rec => l_db_pxhv_rec);
1344     RETURN (l_return_status);
1345   END Validate_Record;
1346 
1347   ---------------------------------------------------------------------------
1348   -- PROCEDURE Migrate
1349   ---------------------------------------------------------------------------
1350   PROCEDURE migrate (
1351     p_from IN pxhv_rec_type,
1352     p_to   IN OUT NOCOPY pxh_rec_type
1353   ) IS
1354   BEGIN
1355     p_to.header_extension_id := p_from.header_extension_id;
1356     p_to.source_id := p_from.source_id;
1357     p_to.source_table := p_from.source_table;
1358     p_to.object_version_number := p_from.object_version_number;
1359     p_to.khr_id := p_from.khr_id;
1360     p_to.try_id := p_from.try_id;
1361     p_to.trans_number := p_from.trans_number;
1362     p_to.contract_number := p_from.contract_number;
1363     p_to.customer_name := p_from.customer_name;
1364     p_to.cust_account_number := p_from.cust_account_number;
1365     p_to.product_name := p_from.product_name;
1366     p_to.book_classification_code := p_from.book_classification_code;
1367     p_to.tax_owner_code := p_from.tax_owner_code;
1368     p_to.int_calc_method_code := p_from.int_calc_method_code;
1369     p_to.rev_rec_method_code := p_from.rev_rec_method_code;
1370     p_to.scs_code := p_from.scs_code;
1371     p_to.converted_number := p_from.converted_number;
1372     p_to.contract_effective_from := p_from.contract_effective_from;
1373     p_to.contract_currency_code := p_from.contract_currency_code;
1374     p_to.sales_rep_name := p_from.sales_rep_name;
1375     p_to.po_order_number := p_from.po_order_number;
1376     p_to.vendor_program_number := p_from.vendor_program_number;
1377     p_to.assignable_flag := p_from.assignable_flag;
1378     p_to.converted_account_flag := p_from.converted_account_flag;
1379     p_to.accrual_override_flag := p_from.accrual_override_flag;
1380     p_to.khr_attribute_category := p_from.khr_attribute_category;
1381     p_to.khr_attribute1 := p_from.khr_attribute1;
1382     p_to.khr_attribute2 := p_from.khr_attribute2;
1383     p_to.khr_attribute3 := p_from.khr_attribute3;
1384     p_to.khr_attribute4 := p_from.khr_attribute4;
1385     p_to.khr_attribute5 := p_from.khr_attribute5;
1386     p_to.khr_attribute6 := p_from.khr_attribute6;
1387     p_to.khr_attribute7 := p_from.khr_attribute7;
1388     p_to.khr_attribute8 := p_from.khr_attribute8;
1389     p_to.khr_attribute9 := p_from.khr_attribute9;
1390     p_to.khr_attribute10 := p_from.khr_attribute10;
1391     p_to.khr_attribute11 := p_from.khr_attribute11;
1392     p_to.khr_attribute12 := p_from.khr_attribute12;
1393     p_to.khr_attribute13 := p_from.khr_attribute13;
1394     p_to.khr_attribute14 := p_from.khr_attribute14;
1395     p_to.khr_attribute15 := p_from.khr_attribute15;
1396     p_to.cust_attribute_category := p_from.cust_attribute_category;
1397     p_to.cust_attribute1 := p_from.cust_attribute1;
1398     p_to.cust_attribute2 := p_from.cust_attribute2;
1399     p_to.cust_attribute3 := p_from.cust_attribute3;
1400     p_to.cust_attribute4 := p_from.cust_attribute4;
1401     p_to.cust_attribute5 := p_from.cust_attribute5;
1402     p_to.cust_attribute6 := p_from.cust_attribute6;
1403     p_to.cust_attribute7 := p_from.cust_attribute7;
1404     p_to.cust_attribute8 := p_from.cust_attribute8;
1405     p_to.cust_attribute9 := p_from.cust_attribute9;
1406     p_to.cust_attribute10 := p_from.cust_attribute10;
1407     p_to.cust_attribute11 := p_from.cust_attribute11;
1408     p_to.cust_attribute12 := p_from.cust_attribute12;
1409     p_to.cust_attribute13 := p_from.cust_attribute13;
1410     p_to.cust_attribute14 := p_from.cust_attribute14;
1411     p_to.cust_attribute15 := p_from.cust_attribute15;
1412     p_to.rent_ia_contract_number := p_from.rent_ia_contract_number;
1413     p_to.rent_ia_product_name := p_from.rent_ia_product_name;
1414     p_to.rent_ia_accounting_code := p_from.rent_ia_accounting_code;
1415     p_to.res_ia_contract_number := p_from.res_ia_contract_number;
1416     p_to.res_ia_product_name := p_from.res_ia_product_name;
1417     p_to.res_ia_accounting_code := p_from.res_ia_accounting_code;
1418     p_to.inv_agrmnt_number := p_from.inv_agrmnt_number;
1419     p_to.inv_agrmnt_effective_from := p_from.inv_agrmnt_effective_from;
1420     p_to.inv_agrmnt_product_name := p_from.inv_agrmnt_product_name;
1421     p_to.inv_agrmnt_currency_code := p_from.inv_agrmnt_currency_code;
1422     p_to.inv_agrmnt_synd_code := p_from.inv_agrmnt_synd_code;
1423     p_to.inv_agrmnt_pool_number := p_from.inv_agrmnt_pool_number;
1424     p_to.contract_status_code := p_from.contract_status_code;
1425     p_to.inv_agrmnt_status_code := p_from.inv_agrmnt_status_code;
1426     p_to.trx_type_class_code := p_from.trx_type_class_code;
1427     p_to.created_by := p_from.created_by;
1428     p_to.creation_date := p_from.creation_date;
1429     p_to.last_updated_by := p_from.last_updated_by;
1430     p_to.last_update_date := p_from.last_update_date;
1431     p_to.last_update_login := p_from.last_update_login;
1432 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables start
1433    p_to.party_id := p_from.party_id;
1434    p_to.cust_account_id := p_from.cust_account_id;
1435 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables end
1436   END migrate;
1437   PROCEDURE migrate (
1438     p_from IN pxh_rec_type,
1439     p_to   IN OUT NOCOPY pxhv_rec_type
1440   ) IS
1441   BEGIN
1442     p_to.header_extension_id := p_from.header_extension_id;
1443     p_to.source_id := p_from.source_id;
1444     p_to.source_table := p_from.source_table;
1445     p_to.object_version_number := p_from.object_version_number;
1446     p_to.khr_id := p_from.khr_id;
1447     p_to.try_id := p_from.try_id;
1448     p_to.trans_number := p_from.trans_number;
1449     p_to.contract_number := p_from.contract_number;
1450     p_to.customer_name := p_from.customer_name;
1451     p_to.cust_account_number := p_from.cust_account_number;
1452     p_to.product_name := p_from.product_name;
1453     p_to.book_classification_code := p_from.book_classification_code;
1454     p_to.tax_owner_code := p_from.tax_owner_code;
1455     p_to.int_calc_method_code := p_from.int_calc_method_code;
1456     p_to.rev_rec_method_code := p_from.rev_rec_method_code;
1457     p_to.scs_code := p_from.scs_code;
1458     p_to.converted_number := p_from.converted_number;
1459     p_to.contract_effective_from := p_from.contract_effective_from;
1460     p_to.contract_currency_code := p_from.contract_currency_code;
1461     p_to.sales_rep_name := p_from.sales_rep_name;
1462     p_to.po_order_number := p_from.po_order_number;
1463     p_to.vendor_program_number := p_from.vendor_program_number;
1464     p_to.assignable_flag := p_from.assignable_flag;
1465     p_to.converted_account_flag := p_from.converted_account_flag;
1466     p_to.accrual_override_flag := p_from.accrual_override_flag;
1467     p_to.khr_attribute_category := p_from.khr_attribute_category;
1468     p_to.khr_attribute1 := p_from.khr_attribute1;
1469     p_to.khr_attribute2 := p_from.khr_attribute2;
1470     p_to.khr_attribute3 := p_from.khr_attribute3;
1471     p_to.khr_attribute4 := p_from.khr_attribute4;
1472     p_to.khr_attribute5 := p_from.khr_attribute5;
1473     p_to.khr_attribute6 := p_from.khr_attribute6;
1474     p_to.khr_attribute7 := p_from.khr_attribute7;
1475     p_to.khr_attribute8 := p_from.khr_attribute8;
1476     p_to.khr_attribute9 := p_from.khr_attribute9;
1477     p_to.khr_attribute10 := p_from.khr_attribute10;
1478     p_to.khr_attribute11 := p_from.khr_attribute11;
1479     p_to.khr_attribute12 := p_from.khr_attribute12;
1480     p_to.khr_attribute13 := p_from.khr_attribute13;
1481     p_to.khr_attribute14 := p_from.khr_attribute14;
1482     p_to.khr_attribute15 := p_from.khr_attribute15;
1483     p_to.cust_attribute_category := p_from.cust_attribute_category;
1484     p_to.cust_attribute1 := p_from.cust_attribute1;
1485     p_to.cust_attribute2 := p_from.cust_attribute2;
1486     p_to.cust_attribute3 := p_from.cust_attribute3;
1487     p_to.cust_attribute4 := p_from.cust_attribute4;
1488     p_to.cust_attribute5 := p_from.cust_attribute5;
1489     p_to.cust_attribute6 := p_from.cust_attribute6;
1490     p_to.cust_attribute7 := p_from.cust_attribute7;
1491     p_to.cust_attribute8 := p_from.cust_attribute8;
1492     p_to.cust_attribute9 := p_from.cust_attribute9;
1493     p_to.cust_attribute10 := p_from.cust_attribute10;
1494     p_to.cust_attribute11 := p_from.cust_attribute11;
1495     p_to.cust_attribute12 := p_from.cust_attribute12;
1496     p_to.cust_attribute13 := p_from.cust_attribute13;
1497     p_to.cust_attribute14 := p_from.cust_attribute14;
1498     p_to.cust_attribute15 := p_from.cust_attribute15;
1499     p_to.rent_ia_contract_number := p_from.rent_ia_contract_number;
1500     p_to.rent_ia_product_name := p_from.rent_ia_product_name;
1501     p_to.rent_ia_accounting_code := p_from.rent_ia_accounting_code;
1502     p_to.res_ia_contract_number := p_from.res_ia_contract_number;
1503     p_to.res_ia_product_name := p_from.res_ia_product_name;
1504     p_to.res_ia_accounting_code := p_from.res_ia_accounting_code;
1505     p_to.inv_agrmnt_number := p_from.inv_agrmnt_number;
1506     p_to.inv_agrmnt_effective_from := p_from.inv_agrmnt_effective_from;
1507     p_to.inv_agrmnt_product_name := p_from.inv_agrmnt_product_name;
1508     p_to.inv_agrmnt_currency_code := p_from.inv_agrmnt_currency_code;
1509     p_to.inv_agrmnt_synd_code := p_from.inv_agrmnt_synd_code;
1510     p_to.inv_agrmnt_pool_number := p_from.inv_agrmnt_pool_number;
1511     p_to.contract_status_code := p_from.contract_status_code;
1512     p_to.inv_agrmnt_status_code := p_from.inv_agrmnt_status_code;
1513     p_to.trx_type_class_code := p_from.trx_type_class_code;
1514     p_to.created_by := p_from.created_by;
1515     p_to.creation_date := p_from.creation_date;
1516     p_to.last_updated_by := p_from.last_updated_by;
1517     p_to.last_update_date := p_from.last_update_date;
1518     p_to.last_update_login := p_from.last_update_login;
1519 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables start
1520     p_to.party_id := p_from.party_id;
1521     p_to.cust_account_id := p_from.cust_account_id;
1522 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables end
1523   END migrate;
1524   PROCEDURE migrate (
1525     p_from IN pxhv_rec_type,
1526     p_to   IN OUT NOCOPY pxhl_rec_type
1527   ) IS
1528   BEGIN
1529     p_to.header_extension_id := p_from.header_extension_id;
1530     p_to.language := p_from.language;
1531     p_to.contract_status := p_from.contract_status;
1532     p_to.inv_agrmnt_status := p_from.inv_agrmnt_status;
1533     p_to.transaction_type_name := p_from.transaction_type_name;
1534     p_to.created_by := p_from.created_by;
1535     p_to.creation_date := p_from.creation_date;
1536     p_to.last_updated_by := p_from.last_updated_by;
1537     p_to.last_update_date := p_from.last_update_date;
1538     p_to.last_update_login := p_from.last_update_login;
1539   END migrate;
1540   PROCEDURE migrate (
1541     p_from IN pxhl_rec_type,
1542     p_to   IN OUT NOCOPY pxhv_rec_type
1543   ) IS
1544   BEGIN
1545     p_to.header_extension_id := p_from.header_extension_id;
1546     p_to.language := p_from.language;
1547     p_to.contract_status := p_from.contract_status;
1548     p_to.inv_agrmnt_status := p_from.inv_agrmnt_status;
1549     p_to.transaction_type_name := p_from.transaction_type_name;
1550     p_to.created_by := p_from.created_by;
1551     p_to.creation_date := p_from.creation_date;
1552     p_to.last_updated_by := p_from.last_updated_by;
1553     p_to.last_update_date := p_from.last_update_date;
1554     p_to.last_update_login := p_from.last_update_login;
1555   END migrate;
1556   ---------------------------------------------------------------------------
1557   -- PROCEDURE validate_row
1558   ---------------------------------------------------------------------------
1559   --------------------------------------------------
1560   -- validate_row for:OKL_EXT_AP_HEADER_SOURCES_V --
1561   --------------------------------------------------
1562   PROCEDURE validate_row(
1563     p_api_version                  IN NUMBER,
1564     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1565     x_return_status                OUT NOCOPY VARCHAR2,
1566     x_msg_count                    OUT NOCOPY NUMBER,
1567     x_msg_data                     OUT NOCOPY VARCHAR2,
1568     p_pxhv_rec                     IN pxhv_rec_type) IS
1569 
1570     l_api_version                  CONSTANT NUMBER := 1;
1571     l_api_name                     CONSTANT VARCHAR2(30) := 'V_validate_row';
1575     l_pxhl_rec                     pxhl_rec_type;
1572     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1573     l_pxhv_rec                     pxhv_rec_type := p_pxhv_rec;
1574     l_pxh_rec                      pxh_rec_type;
1576   BEGIN
1577     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
1578                                               G_PKG_NAME,
1579                                               p_init_msg_list,
1580                                               l_api_version,
1581                                               p_api_version,
1582                                               '_PVT',
1583                                               x_return_status);
1584     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1585       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1586     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1587       RAISE OKL_API.G_EXCEPTION_ERROR;
1588     END IF;
1589     --- Validate all non-missing attributes (Item Level Validation)
1590     l_return_status := Validate_Attributes(l_pxhv_rec);
1591     --- If any errors happen abort API
1592     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1593       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1594     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1595       RAISE OKL_API.G_EXCEPTION_ERROR;
1596     END IF;
1597     l_return_status := Validate_Record(l_pxhv_rec);
1598     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1599       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1600     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1601       RAISE OKL_API.G_EXCEPTION_ERROR;
1602     END IF;
1603     x_return_status := l_return_status;
1604   EXCEPTION
1605     WHEN OKL_API.G_EXCEPTION_ERROR THEN
1606       x_return_status := OKL_API.HANDLE_EXCEPTIONS
1607       (
1608         l_api_name,
1609         G_PKG_NAME,
1610         'OKL_API.G_RET_STS_ERROR',
1611         x_msg_count,
1612         x_msg_data,
1613         '_PVT'
1614       );
1615     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1616       x_return_status := OKL_API.HANDLE_EXCEPTIONS
1617       (
1618         l_api_name,
1619         G_PKG_NAME,
1620         'OKL_API.G_RET_STS_UNEXP_ERROR',
1621         x_msg_count,
1622         x_msg_data,
1623         '_PVT'
1624       );
1625     WHEN OTHERS THEN
1626       x_return_status := OKL_API.HANDLE_EXCEPTIONS
1627       (
1628         l_api_name,
1629         G_PKG_NAME,
1630         'OTHERS',
1631         x_msg_count,
1632         x_msg_data,
1633         '_PVT'
1634       );
1635   END validate_row;
1636   -------------------------------------------------------------
1637   -- PL/SQL TBL validate_row for:OKL_EXT_AP_HEADER_SOURCES_V --
1638   -------------------------------------------------------------
1639   PROCEDURE validate_row(
1640     p_api_version                  IN NUMBER,
1641     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1642     x_return_status                OUT NOCOPY VARCHAR2,
1643     x_msg_count                    OUT NOCOPY NUMBER,
1644     x_msg_data                     OUT NOCOPY VARCHAR2,
1645     p_pxhv_tbl                     IN pxhv_tbl_type,
1646     px_error_tbl                   IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
1647 
1648     l_api_version                  CONSTANT NUMBER := 1;
1649     l_api_name                     CONSTANT VARCHAR2(30) := 'V_error_tbl_validate_row';
1650     i                              NUMBER := 0;
1651   BEGIN
1652     OKL_API.init_msg_list(p_init_msg_list);
1653     -- Make sure PL/SQL table has records in it before passing
1654     IF (p_pxhv_tbl.COUNT > 0) THEN
1655       i := p_pxhv_tbl.FIRST;
1656       LOOP
1657         DECLARE
1658           l_error_rec         OKL_API.ERROR_REC_TYPE;
1659         BEGIN
1660           l_error_rec.api_name := l_api_name;
1661           l_error_rec.api_package := G_PKG_NAME;
1662           l_error_rec.idx := i;
1663           validate_row (
1664             p_api_version                  => p_api_version,
1665             p_init_msg_list                => OKL_API.G_FALSE,
1666             x_return_status                => l_error_rec.error_type,
1667             x_msg_count                    => l_error_rec.msg_count,
1668             x_msg_data                     => l_error_rec.msg_data,
1669             p_pxhv_rec                     => p_pxhv_tbl(i));
1670           IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
1671             l_error_rec.sqlcode := SQLCODE;
1672             load_error_tbl(l_error_rec, px_error_tbl);
1673           ELSE
1674             x_msg_count := l_error_rec.msg_count;
1675             x_msg_data := l_error_rec.msg_data;
1676           END IF;
1677         EXCEPTION
1678           WHEN OKL_API.G_EXCEPTION_ERROR THEN
1679             l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
1680             l_error_rec.sqlcode := SQLCODE;
1681             load_error_tbl(l_error_rec, px_error_tbl);
1682           WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1683             l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
1684             l_error_rec.sqlcode := SQLCODE;
1685             load_error_tbl(l_error_rec, px_error_tbl);
1686           WHEN OTHERS THEN
1687             l_error_rec.error_type := 'OTHERS';
1688             l_error_rec.sqlcode := SQLCODE;
1689             load_error_tbl(l_error_rec, px_error_tbl);
1690         END;
1691         EXIT WHEN (i = p_pxhv_tbl.LAST);
1692         i := p_pxhv_tbl.NEXT(i);
1693       END LOOP;
1694     END IF;
1695     -- Loop through the error_tbl to find the error with the highest severity
1696     -- and return it.
1697     x_return_status := find_highest_exception(px_error_tbl);
1698     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1699   EXCEPTION
1700     WHEN OKL_API.G_EXCEPTION_ERROR THEN
1701       x_return_status := OKL_API.HANDLE_EXCEPTIONS
1702       (
1706         x_msg_count,
1703         l_api_name,
1704         G_PKG_NAME,
1705         'OKL_API.G_RET_STS_ERROR',
1707         x_msg_data,
1708         '_PVT'
1709       );
1710     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1711       x_return_status := OKL_API.HANDLE_EXCEPTIONS
1712       (
1713         l_api_name,
1714         G_PKG_NAME,
1715         'OKL_API.G_RET_STS_UNEXP_ERROR',
1716         x_msg_count,
1717         x_msg_data,
1718         '_PVT'
1719       );
1720     WHEN OTHERS THEN
1721       x_return_status := OKL_API.HANDLE_EXCEPTIONS
1722       (
1723         l_api_name,
1724         G_PKG_NAME,
1725         'OTHERS',
1726         x_msg_count,
1727         x_msg_data,
1728         '_PVT'
1729       );
1730   END validate_row;
1731 
1732   -------------------------------------------------------------
1733   -- PL/SQL TBL validate_row for:OKL_EXT_AP_HEADER_SOURCES_V --
1734   -------------------------------------------------------------
1735   PROCEDURE validate_row(
1736     p_api_version                  IN NUMBER,
1737     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1738     x_return_status                OUT NOCOPY VARCHAR2,
1739     x_msg_count                    OUT NOCOPY NUMBER,
1740     x_msg_data                     OUT NOCOPY VARCHAR2,
1741     p_pxhv_tbl                     IN pxhv_tbl_type) IS
1742 
1743     l_api_version                  CONSTANT NUMBER := 1;
1744     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
1745     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1746     l_error_tbl                    OKL_API.ERROR_TBL_TYPE;
1747   BEGIN
1748     OKL_API.init_msg_list(p_init_msg_list);
1749     -- Make sure PL/SQL table has records in it before passing
1750     IF (p_pxhv_tbl.COUNT > 0) THEN
1751       validate_row (
1752         p_api_version                  => p_api_version,
1753         p_init_msg_list                => OKL_API.G_FALSE,
1754         x_return_status                => x_return_status,
1755         x_msg_count                    => x_msg_count,
1756         x_msg_data                     => x_msg_data,
1757         p_pxhv_tbl                     => p_pxhv_tbl,
1758         px_error_tbl                   => l_error_tbl);
1759     END IF;
1760     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1761   EXCEPTION
1762     WHEN OKL_API.G_EXCEPTION_ERROR THEN
1763       x_return_status := OKL_API.HANDLE_EXCEPTIONS
1764       (
1765         l_api_name,
1766         G_PKG_NAME,
1767         'OKL_API.G_RET_STS_ERROR',
1768         x_msg_count,
1769         x_msg_data,
1770         '_PVT'
1771       );
1772     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1773       x_return_status := OKL_API.HANDLE_EXCEPTIONS
1774       (
1775         l_api_name,
1776         G_PKG_NAME,
1777         'OKL_API.G_RET_STS_UNEXP_ERROR',
1778         x_msg_count,
1779         x_msg_data,
1780         '_PVT'
1781       );
1782     WHEN OTHERS THEN
1783       x_return_status := OKL_API.HANDLE_EXCEPTIONS
1784       (
1785         l_api_name,
1786         G_PKG_NAME,
1787         'OTHERS',
1788         x_msg_count,
1789         x_msg_data,
1790         '_PVT'
1791       );
1792   END validate_row;
1793 
1794   ---------------------------------------------------------------------------
1795   -- PROCEDURE insert_row
1796   ---------------------------------------------------------------------------
1797   ------------------------------------------------
1798   -- insert_row for:OKL_EXT_AP_HEADER_SOURCES_B --
1799   ------------------------------------------------
1800   PROCEDURE insert_row(
1801     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1802     x_return_status                OUT NOCOPY VARCHAR2,
1803     x_msg_count                    OUT NOCOPY NUMBER,
1804     x_msg_data                     OUT NOCOPY VARCHAR2,
1805     p_pxh_rec                      IN pxh_rec_type,
1806     x_pxh_rec                      OUT NOCOPY pxh_rec_type) IS
1807 
1808     l_api_version                  CONSTANT NUMBER := 1;
1809     l_api_name                     CONSTANT VARCHAR2(30) := 'B_insert_row';
1810     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1811     l_pxh_rec                      pxh_rec_type := p_pxh_rec;
1812     l_def_pxh_rec                  pxh_rec_type;
1813     ----------------------------------------------------
1814     -- Set_Attributes for:OKL_EXT_AP_HEADER_SOURCES_B --
1815     ----------------------------------------------------
1816     FUNCTION Set_Attributes (
1817       p_pxh_rec IN pxh_rec_type,
1818       x_pxh_rec OUT NOCOPY pxh_rec_type
1819     ) RETURN VARCHAR2 IS
1820       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1821     BEGIN
1822       x_pxh_rec := p_pxh_rec;
1823       RETURN(l_return_status);
1824     END Set_Attributes;
1825   BEGIN
1826     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
1827                                               p_init_msg_list,
1828                                               '_PVT',
1829                                               x_return_status);
1830     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1831       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1832     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1833       RAISE OKL_API.G_EXCEPTION_ERROR;
1834     END IF;
1835     --- Setting item atributes
1836     l_return_status := Set_Attributes(
1837       l_pxh_rec,                         -- IN
1838       l_def_pxh_rec);                    -- OUT
1839     --- If any errors happen abort API
1840     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1841       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1842     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1846       header_extension_id,
1843       RAISE OKL_API.G_EXCEPTION_ERROR;
1844     END IF;
1845     INSERT INTO OKL_EXT_AP_HEADER_SOURCES_B(
1847       source_id,
1848       source_table,
1849       object_version_number,
1850       khr_id,
1851       try_id,
1852       trans_number,
1853       contract_number,
1854       customer_name,
1855       cust_account_number,
1856       product_name,
1857       book_classification_code,
1858       tax_owner_code,
1859       int_calc_method_code,
1860       rev_rec_method_code,
1861       scs_code,
1862       converted_number,
1863       contract_effective_from,
1864       contract_currency_code,
1865       sales_rep_name,
1866       po_order_number,
1867       vendor_program_number,
1868       assignable_flag,
1869       converted_account_flag,
1870       accrual_override_flag,
1871       khr_attribute_category,
1872       khr_attribute1,
1873       khr_attribute2,
1874       khr_attribute3,
1875       khr_attribute4,
1876       khr_attribute5,
1877       khr_attribute6,
1878       khr_attribute7,
1879       khr_attribute8,
1880       khr_attribute9,
1881       khr_attribute10,
1882       khr_attribute11,
1883       khr_attribute12,
1884       khr_attribute13,
1885       khr_attribute14,
1886       khr_attribute15,
1887       cust_attribute_category,
1888       cust_attribute1,
1889       cust_attribute2,
1890       cust_attribute3,
1891       cust_attribute4,
1892       cust_attribute5,
1893       cust_attribute6,
1894       cust_attribute7,
1895       cust_attribute8,
1896       cust_attribute9,
1897       cust_attribute10,
1898       cust_attribute11,
1899       cust_attribute12,
1900       cust_attribute13,
1901       cust_attribute14,
1902       cust_attribute15,
1903       rent_ia_contract_number,
1904       rent_ia_product_name,
1905       rent_ia_accounting_code,
1906       res_ia_contract_number,
1907       res_ia_product_name,
1908       res_ia_accounting_code,
1909       inv_agrmnt_number,
1910       inv_agrmnt_effective_from,
1911       inv_agrmnt_product_name,
1912       inv_agrmnt_currency_code,
1913       inv_agrmnt_synd_code,
1914       inv_agrmnt_pool_number,
1915       contract_status_code,
1916       inv_agrmnt_status_code,
1917       trx_type_class_code,
1918       created_by,
1919       creation_date,
1920       last_updated_by,
1921       last_update_date,
1922       last_update_login,
1923 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables start
1924       party_id,
1925       cust_account_id
1926 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables end
1927       )
1928     VALUES (
1929       l_def_pxh_rec.header_extension_id,
1930       l_def_pxh_rec.source_id,
1931       l_def_pxh_rec.source_table,
1932       l_def_pxh_rec.object_version_number,
1933       l_def_pxh_rec.khr_id,
1934       l_def_pxh_rec.try_id,
1935       l_def_pxh_rec.trans_number,
1936       l_def_pxh_rec.contract_number,
1937       l_def_pxh_rec.customer_name,
1938       l_def_pxh_rec.cust_account_number,
1939       l_def_pxh_rec.product_name,
1940       l_def_pxh_rec.book_classification_code,
1941       l_def_pxh_rec.tax_owner_code,
1942       l_def_pxh_rec.int_calc_method_code,
1943       l_def_pxh_rec.rev_rec_method_code,
1944       l_def_pxh_rec.scs_code,
1945       l_def_pxh_rec.converted_number,
1946       l_def_pxh_rec.contract_effective_from,
1947       l_def_pxh_rec.contract_currency_code,
1948       l_def_pxh_rec.sales_rep_name,
1949       l_def_pxh_rec.po_order_number,
1950       l_def_pxh_rec.vendor_program_number,
1951       l_def_pxh_rec.assignable_flag,
1952       l_def_pxh_rec.converted_account_flag,
1953       l_def_pxh_rec.accrual_override_flag,
1954       l_def_pxh_rec.khr_attribute_category,
1955       l_def_pxh_rec.khr_attribute1,
1956       l_def_pxh_rec.khr_attribute2,
1957       l_def_pxh_rec.khr_attribute3,
1958       l_def_pxh_rec.khr_attribute4,
1959       l_def_pxh_rec.khr_attribute5,
1960       l_def_pxh_rec.khr_attribute6,
1961       l_def_pxh_rec.khr_attribute7,
1962       l_def_pxh_rec.khr_attribute8,
1963       l_def_pxh_rec.khr_attribute9,
1964       l_def_pxh_rec.khr_attribute10,
1965       l_def_pxh_rec.khr_attribute11,
1966       l_def_pxh_rec.khr_attribute12,
1967       l_def_pxh_rec.khr_attribute13,
1968       l_def_pxh_rec.khr_attribute14,
1969       l_def_pxh_rec.khr_attribute15,
1970       l_def_pxh_rec.cust_attribute_category,
1971       l_def_pxh_rec.cust_attribute1,
1972       l_def_pxh_rec.cust_attribute2,
1973       l_def_pxh_rec.cust_attribute3,
1974       l_def_pxh_rec.cust_attribute4,
1975       l_def_pxh_rec.cust_attribute5,
1976       l_def_pxh_rec.cust_attribute6,
1977       l_def_pxh_rec.cust_attribute7,
1978       l_def_pxh_rec.cust_attribute8,
1979       l_def_pxh_rec.cust_attribute9,
1980       l_def_pxh_rec.cust_attribute10,
1981       l_def_pxh_rec.cust_attribute11,
1982       l_def_pxh_rec.cust_attribute12,
1983       l_def_pxh_rec.cust_attribute13,
1984       l_def_pxh_rec.cust_attribute14,
1985       l_def_pxh_rec.cust_attribute15,
1986       l_def_pxh_rec.rent_ia_contract_number,
1987       l_def_pxh_rec.rent_ia_product_name,
1988       l_def_pxh_rec.rent_ia_accounting_code,
1989       l_def_pxh_rec.res_ia_contract_number,
1990       l_def_pxh_rec.res_ia_product_name,
1991       l_def_pxh_rec.res_ia_accounting_code,
1992       l_def_pxh_rec.inv_agrmnt_number,
1993       l_def_pxh_rec.inv_agrmnt_effective_from,
1994       l_def_pxh_rec.inv_agrmnt_product_name,
1995       l_def_pxh_rec.inv_agrmnt_currency_code,
1996       l_def_pxh_rec.inv_agrmnt_synd_code,
1997       l_def_pxh_rec.inv_agrmnt_pool_number,
1998       l_def_pxh_rec.contract_status_code,
2002       l_def_pxh_rec.creation_date,
1999       l_def_pxh_rec.inv_agrmnt_status_code,
2000       l_def_pxh_rec.trx_type_class_code,
2001       l_def_pxh_rec.created_by,
2003       l_def_pxh_rec.last_updated_by,
2004       l_def_pxh_rec.last_update_date,
2005       l_def_pxh_rec.last_update_login,
2006       l_def_pxh_rec.party_id,
2007       l_def_pxh_rec.cust_account_id
2008       );
2009     -- Set OUT values
2010     x_pxh_rec := l_def_pxh_rec;
2011     x_return_status := l_return_status;
2012     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2013   EXCEPTION
2014     WHEN OKL_API.G_EXCEPTION_ERROR THEN
2015       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2016       (
2017         l_api_name,
2018         G_PKG_NAME,
2019         'OKL_API.G_RET_STS_ERROR',
2020         x_msg_count,
2021         x_msg_data,
2022         '_PVT'
2023       );
2024     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2025       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2026       (
2027         l_api_name,
2028         G_PKG_NAME,
2029         'OKL_API.G_RET_STS_UNEXP_ERROR',
2030         x_msg_count,
2031         x_msg_data,
2032         '_PVT'
2033       );
2034     WHEN OTHERS THEN
2035       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2036       (
2037         l_api_name,
2038         G_PKG_NAME,
2039         'OTHERS',
2040         x_msg_count,
2041         x_msg_data,
2042         '_PVT'
2043       );
2044   END insert_row;
2045   -------------------------------------------------
2046   -- insert_row for:OKL_EXT_AP_HEADER_SOURCES_TL --
2047   -------------------------------------------------
2048   PROCEDURE insert_row(
2049     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2050     x_return_status                OUT NOCOPY VARCHAR2,
2051     x_msg_count                    OUT NOCOPY NUMBER,
2052     x_msg_data                     OUT NOCOPY VARCHAR2,
2053     p_pxhl_rec                     IN pxhl_rec_type,
2054     x_pxhl_rec                     OUT NOCOPY pxhl_rec_type) IS
2055 
2056     l_api_version                  CONSTANT NUMBER := 1;
2057     l_api_name                     CONSTANT VARCHAR2(30) := 'TL_insert_row';
2058     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2059     l_pxhl_rec                     pxhl_rec_type := p_pxhl_rec;
2060     l_def_pxhl_rec                 pxhl_rec_type;
2061     CURSOR get_languages IS
2062       SELECT *
2063         FROM FND_LANGUAGES
2064        WHERE INSTALLED_FLAG IN ('I', 'B');
2065     -----------------------------------------------------
2066     -- Set_Attributes for:OKL_EXT_AP_HEADER_SOURCES_TL --
2067     -----------------------------------------------------
2068     FUNCTION Set_Attributes (
2069       p_pxhl_rec IN pxhl_rec_type,
2070       x_pxhl_rec OUT NOCOPY pxhl_rec_type
2071     ) RETURN VARCHAR2 IS
2072       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2073     BEGIN
2074       x_pxhl_rec := p_pxhl_rec;
2075       x_pxhl_rec.SFWT_FLAG := 'N';
2076       x_pxhl_rec.SOURCE_LANG := USERENV('LANG');
2077       RETURN(l_return_status);
2078     END Set_Attributes;
2079   BEGIN
2080     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2081                                               p_init_msg_list,
2082                                               '_PVT',
2083                                               x_return_status);
2084     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2085       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2086     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2087       RAISE OKL_API.G_EXCEPTION_ERROR;
2088     END IF;
2089     --- Setting item attributes
2090     l_return_status := Set_Attributes(
2091       p_pxhl_rec,                        -- IN
2092       l_pxhl_rec);                       -- OUT
2093     --- If any errors happen abort API
2094     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2095       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2096     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2097       RAISE OKL_API.G_EXCEPTION_ERROR;
2098     END IF;
2099       INSERT INTO OKL_EXT_AP_HEADER_SOURCES_TL(
2100         header_extension_id,
2101         language,
2102         source_lang,
2103         sfwt_flag,
2104         contract_status,
2105         inv_agrmnt_status,
2106         transaction_type_name,
2107         created_by,
2108         creation_date,
2109         last_updated_by,
2110         last_update_date,
2111         last_update_login)
2112       VALUES (
2113         l_pxhl_rec.header_extension_id,
2114         l_pxhl_rec.language,
2115         l_pxhl_rec.source_lang,
2116         l_pxhl_rec.sfwt_flag,
2117         l_pxhl_rec.contract_status,
2118         l_pxhl_rec.inv_agrmnt_status,
2119         l_pxhl_rec.transaction_type_name,
2120         l_pxhl_rec.created_by,
2121         l_pxhl_rec.creation_date,
2122         l_pxhl_rec.last_updated_by,
2123         l_pxhl_rec.last_update_date,
2124         l_pxhl_rec.last_update_login);
2125     -- Set OUT values
2126     x_pxhl_rec := l_pxhl_rec;
2127     x_return_status := l_return_status;
2128     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2129   EXCEPTION
2130     WHEN OKL_API.G_EXCEPTION_ERROR THEN
2131       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2132       (
2133         l_api_name,
2134         G_PKG_NAME,
2135         'OKL_API.G_RET_STS_ERROR',
2136         x_msg_count,
2137         x_msg_data,
2138         '_PVT'
2139       );
2140     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2141       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2142       (
2143         l_api_name,
2144         G_PKG_NAME,
2145         'OKL_API.G_RET_STS_UNEXP_ERROR',
2146         x_msg_count,
2147         x_msg_data,
2151       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2148         '_PVT'
2149       );
2150     WHEN OTHERS THEN
2152       (
2153         l_api_name,
2154         G_PKG_NAME,
2155         'OTHERS',
2156         x_msg_count,
2157         x_msg_data,
2158         '_PVT'
2159       );
2160   END insert_row;
2161   -------------------------------------------------
2162   -- insert_row for :OKL_EXT_AP_HEADER_SOURCES_B --
2163   -------------------------------------------------
2164   PROCEDURE insert_row(
2165     p_api_version                  IN NUMBER,
2166     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2167     x_return_status                OUT NOCOPY VARCHAR2,
2168     x_msg_count                    OUT NOCOPY NUMBER,
2169     x_msg_data                     OUT NOCOPY VARCHAR2,
2170     p_pxhv_rec                     IN pxhv_rec_type,
2171     x_pxhv_rec                     OUT NOCOPY pxhv_rec_type) IS
2172 
2173     l_api_version                  CONSTANT NUMBER := 1;
2174     l_api_name                     CONSTANT VARCHAR2(30) := 'V_insert_row';
2175     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2176     l_pxhv_rec                     pxhv_rec_type := p_pxhv_rec;
2177     l_def_pxhv_rec                 pxhv_rec_type;
2178     l_pxh_rec                      pxh_rec_type;
2179     lx_pxh_rec                     pxh_rec_type;
2180     l_pxhl_rec                     pxhl_rec_type;
2181     lx_pxhl_rec                    pxhl_rec_type;
2182     -------------------------------
2183     -- FUNCTION fill_who_columns --
2184     -------------------------------
2185     FUNCTION fill_who_columns (
2186       p_pxhv_rec IN pxhv_rec_type
2187     ) RETURN pxhv_rec_type IS
2188       l_pxhv_rec pxhv_rec_type := p_pxhv_rec;
2189     BEGIN
2190       l_pxhv_rec.CREATION_DATE := SYSDATE;
2191       l_pxhv_rec.CREATED_BY := FND_GLOBAL.USER_ID;
2192       l_pxhv_rec.LAST_UPDATE_DATE := l_pxhv_rec.CREATION_DATE;
2193       l_pxhv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
2194       l_pxhv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
2195       RETURN(l_pxhv_rec);
2196     END fill_who_columns;
2197     ----------------------------------------------------
2198     -- Set_Attributes for:OKL_EXT_AP_HEADER_SOURCES_B --
2199     ----------------------------------------------------
2200     FUNCTION Set_Attributes (
2201       p_pxhv_rec IN pxhv_rec_type,
2202       x_pxhv_rec OUT NOCOPY pxhv_rec_type
2203     ) RETURN VARCHAR2 IS
2204       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2205     BEGIN
2206       x_pxhv_rec := p_pxhv_rec;
2207       x_pxhv_rec.OBJECT_VERSION_NUMBER := 1;
2208       RETURN(l_return_status);
2209     END Set_Attributes;
2210   BEGIN
2211     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2212                                               G_PKG_NAME,
2213                                               p_init_msg_list,
2214                                               l_api_version,
2215                                               p_api_version,
2216                                               '_PVT',
2217                                               x_return_status);
2218     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2219       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2220     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2221       RAISE OKL_API.G_EXCEPTION_ERROR;
2222     END IF;
2223     l_pxhv_rec := null_out_defaults(p_pxhv_rec);
2224     -- Set primary key value
2225     l_pxhv_rec.HEADER_EXTENSION_ID := get_seq_id;
2226     -- Setting item attributes
2227     l_return_Status := Set_Attributes(
2228       l_pxhv_rec,                        -- IN
2229       l_def_pxhv_rec);                   -- OUT
2230     --- If any errors happen abort API
2231     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2232       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2233     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2234       RAISE OKL_API.G_EXCEPTION_ERROR;
2235     END IF;
2236     l_def_pxhv_rec := fill_who_columns(l_def_pxhv_rec);
2237     --- Validate all non-missing attributes (Item Level Validation)
2238     l_return_status := Validate_Attributes(l_def_pxhv_rec);
2239     --- If any errors happen abort API
2240     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2241       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2242     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2243       RAISE OKL_API.G_EXCEPTION_ERROR;
2244     END IF;
2245     l_return_status := Validate_Record(l_def_pxhv_rec);
2246     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2247       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2248     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2249       RAISE OKL_API.G_EXCEPTION_ERROR;
2250     END IF;
2251     -----------------------------------------
2252     -- Move VIEW record to "Child" records --
2253     -----------------------------------------
2254     migrate(l_def_pxhv_rec, l_pxh_rec);
2255     migrate(l_def_pxhv_rec, l_pxhl_rec);
2256     -----------------------------------------------
2257     -- Call the INSERT_ROW for each child record --
2258     -----------------------------------------------
2259     insert_row(
2260       p_init_msg_list,
2261       l_return_status,
2262       x_msg_count,
2263       x_msg_data,
2264       l_pxh_rec,
2265       lx_pxh_rec
2266     );
2267     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2268       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2269     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2270       RAISE OKL_API.G_EXCEPTION_ERROR;
2271     END IF;
2272     migrate(lx_pxh_rec, l_def_pxhv_rec);
2273     insert_row(
2274       p_init_msg_list,
2275       l_return_status,
2276       x_msg_count,
2277       x_msg_data,
2278       l_pxhl_rec,
2279       lx_pxhl_rec
2283     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2280     );
2281     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2282       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2284       RAISE OKL_API.G_EXCEPTION_ERROR;
2285     END IF;
2286     migrate(lx_pxhl_rec, l_def_pxhv_rec);
2287     -- Set OUT values
2288     x_pxhv_rec := l_def_pxhv_rec;
2289     x_return_status := l_return_status;
2290     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2291   EXCEPTION
2292     WHEN OKL_API.G_EXCEPTION_ERROR THEN
2293       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2294       (
2295         l_api_name,
2296         G_PKG_NAME,
2297         'OKL_API.G_RET_STS_ERROR',
2298         x_msg_count,
2299         x_msg_data,
2300         '_PVT'
2301       );
2302     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2303       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2304       (
2305         l_api_name,
2306         G_PKG_NAME,
2307         'OKL_API.G_RET_STS_UNEXP_ERROR',
2308         x_msg_count,
2309         x_msg_data,
2310         '_PVT'
2311       );
2312     WHEN OTHERS THEN
2313       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2314       (
2315         l_api_name,
2316         G_PKG_NAME,
2317         'OTHERS',
2318         x_msg_count,
2319         x_msg_data,
2320         '_PVT'
2321       );
2322   END insert_row;
2323   ----------------------------------------
2324   -- PL/SQL TBL insert_row for:PXHV_TBL --
2325   ----------------------------------------
2326   PROCEDURE insert_row(
2327     p_api_version                  IN NUMBER,
2328     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2329     x_return_status                OUT NOCOPY VARCHAR2,
2330     x_msg_count                    OUT NOCOPY NUMBER,
2331     x_msg_data                     OUT NOCOPY VARCHAR2,
2332     p_pxhv_tbl                     IN pxhv_tbl_type,
2333     x_pxhv_tbl                     OUT NOCOPY pxhv_tbl_type,
2334     px_error_tbl                   IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
2335 
2336     l_api_version                  CONSTANT NUMBER := 1;
2337     l_api_name                     CONSTANT VARCHAR2(30) := 'V_error_tbl_insert_row';
2338     i                              NUMBER := 0;
2339   BEGIN
2340     OKL_API.init_msg_list(p_init_msg_list);
2341     -- Make sure PL/SQL table has records in it before passing
2342     IF (p_pxhv_tbl.COUNT > 0) THEN
2343       i := p_pxhv_tbl.FIRST;
2344       LOOP
2345         DECLARE
2346           l_error_rec         OKL_API.ERROR_REC_TYPE;
2347         BEGIN
2348           l_error_rec.api_name := l_api_name;
2349           l_error_rec.api_package := G_PKG_NAME;
2350           l_error_rec.idx := i;
2351           insert_row (
2352             p_api_version                  => p_api_version,
2353             p_init_msg_list                => OKL_API.G_FALSE,
2354             x_return_status                => l_error_rec.error_type,
2355             x_msg_count                    => l_error_rec.msg_count,
2356             x_msg_data                     => l_error_rec.msg_data,
2357             p_pxhv_rec                     => p_pxhv_tbl(i),
2358             x_pxhv_rec                     => x_pxhv_tbl(i));
2359           IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
2360             l_error_rec.sqlcode := SQLCODE;
2361             load_error_tbl(l_error_rec, px_error_tbl);
2362           ELSE
2363             x_msg_count := l_error_rec.msg_count;
2364             x_msg_data := l_error_rec.msg_data;
2365           END IF;
2366         EXCEPTION
2367           WHEN OKL_API.G_EXCEPTION_ERROR THEN
2368             l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
2369             l_error_rec.sqlcode := SQLCODE;
2370             load_error_tbl(l_error_rec, px_error_tbl);
2371           WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2372             l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
2373             l_error_rec.sqlcode := SQLCODE;
2374             load_error_tbl(l_error_rec, px_error_tbl);
2375           WHEN OTHERS THEN
2376             l_error_rec.error_type := 'OTHERS';
2377             l_error_rec.sqlcode := SQLCODE;
2378             load_error_tbl(l_error_rec, px_error_tbl);
2379         END;
2380         EXIT WHEN (i = p_pxhv_tbl.LAST);
2381         i := p_pxhv_tbl.NEXT(i);
2382       END LOOP;
2383     END IF;
2384     -- Loop through the error_tbl to find the error with the highest severity
2385     -- and return it.
2386     x_return_status := find_highest_exception(px_error_tbl);
2387     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2388   EXCEPTION
2389     WHEN OKL_API.G_EXCEPTION_ERROR THEN
2390       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2391       (
2392         l_api_name,
2393         G_PKG_NAME,
2394         'OKL_API.G_RET_STS_ERROR',
2395         x_msg_count,
2396         x_msg_data,
2397         '_PVT'
2398       );
2399     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2400       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2401       (
2402         l_api_name,
2403         G_PKG_NAME,
2404         'OKL_API.G_RET_STS_UNEXP_ERROR',
2405         x_msg_count,
2406         x_msg_data,
2407         '_PVT'
2408       );
2409     WHEN OTHERS THEN
2410       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2411       (
2412         l_api_name,
2413         G_PKG_NAME,
2414         'OTHERS',
2415         x_msg_count,
2416         x_msg_data,
2417         '_PVT'
2418       );
2419   END insert_row;
2420 
2421   ----------------------------------------
2422   -- PL/SQL TBL insert_row for:PXHV_TBL --
2423   ----------------------------------------
2424   PROCEDURE insert_row(
2425     p_api_version                  IN NUMBER,
2429     x_msg_data                     OUT NOCOPY VARCHAR2,
2426     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2427     x_return_status                OUT NOCOPY VARCHAR2,
2428     x_msg_count                    OUT NOCOPY NUMBER,
2430     p_pxhv_tbl                     IN pxhv_tbl_type,
2431     x_pxhv_tbl                     OUT NOCOPY pxhv_tbl_type) IS
2432 
2433     l_api_version                  CONSTANT NUMBER := 1;
2434     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
2435     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2436     l_error_tbl                    OKL_API.ERROR_TBL_TYPE;
2437   BEGIN
2438     OKL_API.init_msg_list(p_init_msg_list);
2439     -- Make sure PL/SQL table has records in it before passing
2440     IF (p_pxhv_tbl.COUNT > 0) THEN
2441       insert_row (
2442         p_api_version                  => p_api_version,
2443         p_init_msg_list                => OKL_API.G_FALSE,
2444         x_return_status                => x_return_status,
2445         x_msg_count                    => x_msg_count,
2446         x_msg_data                     => x_msg_data,
2447         p_pxhv_tbl                     => p_pxhv_tbl,
2448         x_pxhv_tbl                     => x_pxhv_tbl,
2449         px_error_tbl                   => l_error_tbl);
2450     END IF;
2451     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2452   EXCEPTION
2453     WHEN OKL_API.G_EXCEPTION_ERROR THEN
2454       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2455       (
2456         l_api_name,
2457         G_PKG_NAME,
2458         'OKL_API.G_RET_STS_ERROR',
2459         x_msg_count,
2460         x_msg_data,
2461         '_PVT'
2462       );
2463     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2464       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2465       (
2466         l_api_name,
2467         G_PKG_NAME,
2468         'OKL_API.G_RET_STS_UNEXP_ERROR',
2469         x_msg_count,
2470         x_msg_data,
2471         '_PVT'
2472       );
2473     WHEN OTHERS THEN
2474       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2475       (
2476         l_api_name,
2477         G_PKG_NAME,
2478         'OTHERS',
2479         x_msg_count,
2480         x_msg_data,
2481         '_PVT'
2482       );
2483   END insert_row;
2484 
2485   ---------------------------------------------------------------------------
2486   -- PROCEDURE lock_row
2487   ---------------------------------------------------------------------------
2488   ----------------------------------------------
2489   -- lock_row for:OKL_EXT_AP_HEADER_SOURCES_B --
2490   ----------------------------------------------
2491   PROCEDURE lock_row(
2492     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2493     x_return_status                OUT NOCOPY VARCHAR2,
2494     x_msg_count                    OUT NOCOPY NUMBER,
2495     x_msg_data                     OUT NOCOPY VARCHAR2,
2496     p_pxh_rec                      IN pxh_rec_type) IS
2497 
2498     E_Resource_Busy                EXCEPTION;
2499     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
2500     CURSOR lock_csr (p_pxh_rec IN pxh_rec_type) IS
2501     SELECT OBJECT_VERSION_NUMBER
2502       FROM OKL_EXT_AP_HEADER_SOURCES_B
2503      WHERE HEADER_EXTENSION_ID = p_pxh_rec.header_extension_id
2504        AND OBJECT_VERSION_NUMBER = p_pxh_rec.object_version_number
2505     FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
2506 
2507     CURSOR lchk_csr (p_pxh_rec IN pxh_rec_type) IS
2508     SELECT OBJECT_VERSION_NUMBER
2509       FROM OKL_EXT_AP_HEADER_SOURCES_B
2510      WHERE HEADER_EXTENSION_ID = p_pxh_rec.header_extension_id;
2511     l_api_version                  CONSTANT NUMBER := 1;
2512     l_api_name                     CONSTANT VARCHAR2(30) := 'B_lock_row';
2513     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2514     l_object_version_number        OKL_EXT_AP_HEADER_SOURCES_B.OBJECT_VERSION_NUMBER%TYPE;
2515     lc_object_version_number       OKL_EXT_AP_HEADER_SOURCES_B.OBJECT_VERSION_NUMBER%TYPE;
2516     l_row_notfound                 BOOLEAN := FALSE;
2517     lc_row_notfound                BOOLEAN := FALSE;
2518   BEGIN
2519     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2520                                               p_init_msg_list,
2521                                               '_PVT',
2522                                               x_return_status);
2523     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2524       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2525     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2526       RAISE OKL_API.G_EXCEPTION_ERROR;
2527     END IF;
2528     BEGIN
2529       OPEN lock_csr(p_pxh_rec);
2530       FETCH lock_csr INTO l_object_version_number;
2531       l_row_notfound := lock_csr%NOTFOUND;
2532       CLOSE lock_csr;
2533     EXCEPTION
2534       WHEN E_Resource_Busy THEN
2535         IF (lock_csr%ISOPEN) THEN
2536           CLOSE lock_csr;
2537         END IF;
2538         OKL_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
2539         RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
2540     END;
2541 
2542     IF ( l_row_notfound ) THEN
2543       OPEN lchk_csr(p_pxh_rec);
2544       FETCH lchk_csr INTO lc_object_version_number;
2545       lc_row_notfound := lchk_csr%NOTFOUND;
2546       CLOSE lchk_csr;
2547     END IF;
2548     IF (lc_row_notfound) THEN
2549       OKL_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
2550       RAISE OKL_API.G_EXCEPTION_ERROR;
2551     ELSIF lc_object_version_number > p_pxh_rec.object_version_number THEN
2552       OKL_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2553       RAISE OKL_API.G_EXCEPTION_ERROR;
2554     ELSIF lc_object_version_number <> p_pxh_rec.object_version_number THEN
2555       OKL_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2556       RAISE OKL_API.G_EXCEPTION_ERROR;
2560     END IF;
2557     ELSIF lc_object_version_number = -1 THEN
2558       OKL_API.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
2559       RAISE OKL_API.G_EXCEPTION_ERROR;
2561     x_return_status := l_return_status;
2562     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2563   EXCEPTION
2564     WHEN OKL_API.G_EXCEPTION_ERROR THEN
2565       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2566       (
2567         l_api_name,
2568         G_PKG_NAME,
2569         'OKL_API.G_RET_STS_ERROR',
2570         x_msg_count,
2571         x_msg_data,
2572         '_PVT'
2573       );
2574     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2575       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2576       (
2577         l_api_name,
2578         G_PKG_NAME,
2579         'OKL_API.G_RET_STS_UNEXP_ERROR',
2580         x_msg_count,
2581         x_msg_data,
2582         '_PVT'
2583       );
2584     WHEN OTHERS THEN
2585       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2586       (
2587         l_api_name,
2588         G_PKG_NAME,
2589         'OTHERS',
2590         x_msg_count,
2591         x_msg_data,
2592         '_PVT'
2593       );
2594   END lock_row;
2595   -----------------------------------------------
2596   -- lock_row for:OKL_EXT_AP_HEADER_SOURCES_TL --
2597   -----------------------------------------------
2598   PROCEDURE lock_row(
2599     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2600     x_return_status                OUT NOCOPY VARCHAR2,
2601     x_msg_count                    OUT NOCOPY NUMBER,
2602     x_msg_data                     OUT NOCOPY VARCHAR2,
2603     p_pxhl_rec                     IN pxhl_rec_type) IS
2604 
2605     E_Resource_Busy                EXCEPTION;
2606     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
2607     CURSOR lock_csr (p_pxhl_rec IN pxhl_rec_type) IS
2608     SELECT *
2609       FROM OKL_EXT_AP_HEADER_SOURCES_TL
2610      WHERE HEADER_EXTENSION_ID = p_pxhl_rec.header_extension_id
2611     FOR UPDATE NOWAIT;
2612 
2613     l_api_version                  CONSTANT NUMBER := 1;
2614     l_api_name                     CONSTANT VARCHAR2(30) := 'TL_lock_row';
2615     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2616     l_lock_var                     lock_csr%ROWTYPE;
2617     l_row_notfound                 BOOLEAN := FALSE;
2618     lc_row_notfound                BOOLEAN := FALSE;
2619   BEGIN
2620     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2621                                               p_init_msg_list,
2622                                               '_PVT',
2623                                               x_return_status);
2624     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2625       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2626     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2627       RAISE OKL_API.G_EXCEPTION_ERROR;
2628     END IF;
2629     BEGIN
2630       OPEN lock_csr(p_pxhl_rec);
2631       FETCH lock_csr INTO l_lock_var;
2632       l_row_notfound := lock_csr%NOTFOUND;
2633       CLOSE lock_csr;
2634     EXCEPTION
2635       WHEN E_Resource_Busy THEN
2636         IF (lock_csr%ISOPEN) THEN
2637           CLOSE lock_csr;
2638         END IF;
2639         OKL_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
2640         RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
2641     END;
2642 
2643     IF ( l_row_notfound ) THEN
2644       OKL_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
2645       RAISE OKL_API.G_EXCEPTION_ERROR;
2646     END IF;
2647     x_return_status := l_return_status;
2648     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2649   EXCEPTION
2650     WHEN OKL_API.G_EXCEPTION_ERROR THEN
2651       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2652       (
2653         l_api_name,
2654         G_PKG_NAME,
2655         'OKL_API.G_RET_STS_ERROR',
2656         x_msg_count,
2657         x_msg_data,
2658         '_PVT'
2659       );
2660     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2661       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2662       (
2663         l_api_name,
2664         G_PKG_NAME,
2665         'OKL_API.G_RET_STS_UNEXP_ERROR',
2666         x_msg_count,
2667         x_msg_data,
2668         '_PVT'
2669       );
2670     WHEN OTHERS THEN
2671       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2672       (
2673         l_api_name,
2674         G_PKG_NAME,
2675         'OTHERS',
2676         x_msg_count,
2677         x_msg_data,
2678         '_PVT'
2679       );
2680   END lock_row;
2681   -----------------------------------------------
2682   -- lock_row for: OKL_EXT_AP_HEADER_SOURCES_V --
2683   -----------------------------------------------
2684   PROCEDURE lock_row(
2685     p_api_version                  IN NUMBER,
2686     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2687     x_return_status                OUT NOCOPY VARCHAR2,
2688     x_msg_count                    OUT NOCOPY NUMBER,
2689     x_msg_data                     OUT NOCOPY VARCHAR2,
2690     p_pxhv_rec                     IN pxhv_rec_type) IS
2691 
2692     l_api_version                  CONSTANT NUMBER := 1;
2693     l_api_name                     CONSTANT VARCHAR2(30) := 'V_lock_row';
2694     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2695     l_pxh_rec                      pxh_rec_type;
2696     l_pxhl_rec                     pxhl_rec_type;
2697   BEGIN
2698     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2699                                               G_PKG_NAME,
2700                                               p_init_msg_list,
2701                                               l_api_version,
2702                                               p_api_version,
2706       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2703                                               '_PVT',
2704                                               x_return_status);
2705     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2707     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2708       RAISE OKL_API.G_EXCEPTION_ERROR;
2709     END IF;
2710     -----------------------------------------
2711     -- Move VIEW record to "Child" records --
2712     -----------------------------------------
2713     migrate(p_pxhv_rec, l_pxh_rec);
2714     migrate(p_pxhv_rec, l_pxhl_rec);
2715     ---------------------------------------------
2716     -- Call the LOCK_ROW for each child record --
2717     ---------------------------------------------
2718     lock_row(
2719       p_init_msg_list,
2720       l_return_status,
2721       x_msg_count,
2722       x_msg_data,
2723       l_pxh_rec
2724     );
2725     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2726       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2727     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2728       RAISE OKL_API.G_EXCEPTION_ERROR;
2729     END IF;
2730     lock_row(
2731       p_init_msg_list,
2732       l_return_status,
2733       x_msg_count,
2734       x_msg_data,
2735       l_pxhl_rec
2736     );
2737     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2738       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2739     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2740       RAISE OKL_API.G_EXCEPTION_ERROR;
2741     END IF;
2742     x_return_status := l_return_status;
2743     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2744   EXCEPTION
2745     WHEN OKL_API.G_EXCEPTION_ERROR THEN
2746       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2747       (
2748         l_api_name,
2749         G_PKG_NAME,
2750         'OKL_API.G_RET_STS_ERROR',
2751         x_msg_count,
2752         x_msg_data,
2753         '_PVT'
2754       );
2755     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2756       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2757       (
2758         l_api_name,
2759         G_PKG_NAME,
2760         'OKL_API.G_RET_STS_UNEXP_ERROR',
2761         x_msg_count,
2762         x_msg_data,
2763         '_PVT'
2764       );
2765     WHEN OTHERS THEN
2766       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2767       (
2768         l_api_name,
2769         G_PKG_NAME,
2770         'OTHERS',
2771         x_msg_count,
2772         x_msg_data,
2773         '_PVT'
2774       );
2775   END lock_row;
2776   --------------------------------------
2777   -- PL/SQL TBL lock_row for:PXHV_TBL --
2778   --------------------------------------
2779   PROCEDURE lock_row(
2780     p_api_version                  IN NUMBER,
2781     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2782     x_return_status                OUT NOCOPY VARCHAR2,
2783     x_msg_count                    OUT NOCOPY NUMBER,
2784     x_msg_data                     OUT NOCOPY VARCHAR2,
2785     p_pxhv_tbl                     IN pxhv_tbl_type,
2786     px_error_tbl                   IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
2787 
2788     l_api_version                  CONSTANT NUMBER := 1;
2789     l_api_name                     CONSTANT VARCHAR2(30) := 'V_error_tbl_lock_row';
2790     i                              NUMBER := 0;
2791   BEGIN
2792     OKL_API.init_msg_list(p_init_msg_list);
2793     -- Make sure PL/SQL table has recrods in it before passing
2794     IF (p_pxhv_tbl.COUNT > 0) THEN
2795       i := p_pxhv_tbl.FIRST;
2796       LOOP
2797         DECLARE
2798           l_error_rec         OKL_API.ERROR_REC_TYPE;
2799         BEGIN
2800           l_error_rec.api_name := l_api_name;
2801           l_error_rec.api_package := G_PKG_NAME;
2802           l_error_rec.idx := i;
2803           lock_row(
2804             p_api_version                  => p_api_version,
2805             p_init_msg_list                => OKL_API.G_FALSE,
2806             x_return_status                => l_error_rec.error_type,
2807             x_msg_count                    => l_error_rec.msg_count,
2808             x_msg_data                     => l_error_rec.msg_data,
2809             p_pxhv_rec                     => p_pxhv_tbl(i));
2810           IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
2811             l_error_rec.sqlcode := SQLCODE;
2812             load_error_tbl(l_error_rec, px_error_tbl);
2813           ELSE
2814             x_msg_count := l_error_rec.msg_count;
2815             x_msg_data := l_error_rec.msg_data;
2816           END IF;
2817         EXCEPTION
2818           WHEN OKL_API.G_EXCEPTION_ERROR THEN
2819             l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
2820             l_error_rec.sqlcode := SQLCODE;
2821             load_error_tbl(l_error_rec, px_error_tbl);
2822           WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2823             l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
2824             l_error_rec.sqlcode := SQLCODE;
2825             load_error_tbl(l_error_rec, px_error_tbl);
2826           WHEN OTHERS THEN
2827             l_error_rec.error_type := 'OTHERS';
2828             l_error_rec.sqlcode := SQLCODE;
2829             load_error_tbl(l_error_rec, px_error_tbl);
2830         END;
2831         EXIT WHEN (i = p_pxhv_tbl.LAST);
2832         i := p_pxhv_tbl.NEXT(i);
2833       END LOOP;
2834     END IF;
2835     -- Loop through the error_tbl to find the error with the highest severity
2836     -- and return it.
2837     x_return_status := find_highest_exception(px_error_tbl);
2838     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2839   EXCEPTION
2840     WHEN OKL_API.G_EXCEPTION_ERROR THEN
2841       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2842       (
2843         l_api_name,
2847         x_msg_data,
2844         G_PKG_NAME,
2845         'OKL_API.G_RET_STS_ERROR',
2846         x_msg_count,
2848         '_PVT'
2849       );
2850     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2851       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2852       (
2853         l_api_name,
2854         G_PKG_NAME,
2855         'OKL_API.G_RET_STS_UNEXP_ERROR',
2856         x_msg_count,
2857         x_msg_data,
2858         '_PVT'
2859       );
2860     WHEN OTHERS THEN
2861       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2862       (
2863         l_api_name,
2864         G_PKG_NAME,
2865         'OTHERS',
2866         x_msg_count,
2867         x_msg_data,
2868         '_PVT'
2869       );
2870   END lock_row;
2871   --------------------------------------
2872   -- PL/SQL TBL lock_row for:PXHV_TBL --
2873   --------------------------------------
2874   PROCEDURE lock_row(
2875     p_api_version                  IN NUMBER,
2876     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2877     x_return_status                OUT NOCOPY VARCHAR2,
2878     x_msg_count                    OUT NOCOPY NUMBER,
2879     x_msg_data                     OUT NOCOPY VARCHAR2,
2880     p_pxhv_tbl                     IN pxhv_tbl_type) IS
2881 
2882     l_api_version                  CONSTANT NUMBER := 1;
2883     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
2884     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2885     l_error_tbl                    OKL_API.ERROR_TBL_TYPE;
2886   BEGIN
2887     OKL_API.init_msg_list(p_init_msg_list);
2888     -- Make sure PL/SQL table has recrods in it before passing
2889     IF (p_pxhv_tbl.COUNT > 0) THEN
2890       lock_row(
2891         p_api_version                  => p_api_version,
2892         p_init_msg_list                => OKL_API.G_FALSE,
2893         x_return_status                => x_return_status,
2894         x_msg_count                    => x_msg_count,
2895         x_msg_data                     => x_msg_data,
2896         p_pxhv_tbl                     => p_pxhv_tbl,
2897         px_error_tbl                   => l_error_tbl);
2898     END IF;
2899     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2900   EXCEPTION
2901     WHEN OKL_API.G_EXCEPTION_ERROR THEN
2902       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2903       (
2904         l_api_name,
2905         G_PKG_NAME,
2906         'OKL_API.G_RET_STS_ERROR',
2907         x_msg_count,
2908         x_msg_data,
2909         '_PVT'
2910       );
2911     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2912       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2913       (
2914         l_api_name,
2915         G_PKG_NAME,
2916         'OKL_API.G_RET_STS_UNEXP_ERROR',
2917         x_msg_count,
2918         x_msg_data,
2919         '_PVT'
2920       );
2921     WHEN OTHERS THEN
2922       x_return_status := OKL_API.HANDLE_EXCEPTIONS
2923       (
2924         l_api_name,
2925         G_PKG_NAME,
2926         'OTHERS',
2927         x_msg_count,
2928         x_msg_data,
2929         '_PVT'
2930       );
2931   END lock_row;
2932   ---------------------------------------------------------------------------
2933   -- PROCEDURE update_row
2934   ---------------------------------------------------------------------------
2935   ------------------------------------------------
2936   -- update_row for:OKL_EXT_AP_HEADER_SOURCES_B --
2937   ------------------------------------------------
2938   PROCEDURE update_row(
2939     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2940     x_return_status                OUT NOCOPY VARCHAR2,
2941     x_msg_count                    OUT NOCOPY NUMBER,
2942     x_msg_data                     OUT NOCOPY VARCHAR2,
2943     p_pxh_rec                      IN pxh_rec_type,
2944     x_pxh_rec                      OUT NOCOPY pxh_rec_type) IS
2945 
2946     l_api_version                  CONSTANT NUMBER := 1;
2947     l_api_name                     CONSTANT VARCHAR2(30) := 'B_update_row';
2948     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2949     l_pxh_rec                      pxh_rec_type := p_pxh_rec;
2950     l_def_pxh_rec                  pxh_rec_type;
2951     l_row_notfound                 BOOLEAN := TRUE;
2952     ----------------------------------
2953     -- FUNCTION populate_new_record --
2954     ----------------------------------
2955     FUNCTION populate_new_record (
2956       p_pxh_rec IN pxh_rec_type,
2957       x_pxh_rec OUT NOCOPY pxh_rec_type
2958     ) RETURN VARCHAR2 IS
2959       l_pxh_rec                      pxh_rec_type;
2960       l_row_notfound                 BOOLEAN := TRUE;
2961       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2962     BEGIN
2963       x_pxh_rec := p_pxh_rec;
2964       -- Get current database values
2965       l_pxh_rec := get_rec(p_pxh_rec, l_return_status);
2966       IF (l_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
2967         IF x_pxh_rec.header_extension_id IS NULL THEN
2968           x_pxh_rec.header_extension_id := l_pxh_rec.header_extension_id;
2969         END IF;
2970         IF x_pxh_rec.source_id IS NULL THEN
2971           x_pxh_rec.source_id := l_pxh_rec.source_id;
2972         END IF;
2973         IF x_pxh_rec.source_table IS NULL THEN
2974           x_pxh_rec.source_table := l_pxh_rec.source_table;
2975         END IF;
2976         IF x_pxh_rec.object_version_number IS NULL THEN
2977           x_pxh_rec.object_version_number := l_pxh_rec.object_version_number;
2978         END IF;
2979         IF x_pxh_rec.khr_id IS NULL THEN
2980           x_pxh_rec.khr_id := l_pxh_rec.khr_id;
2981         END IF;
2982         IF x_pxh_rec.try_id IS NULL THEN
2983           x_pxh_rec.try_id := l_pxh_rec.try_id;
2984         END IF;
2988         IF x_pxh_rec.contract_number IS NULL THEN
2985         IF x_pxh_rec.trans_number IS NULL THEN
2986           x_pxh_rec.trans_number := l_pxh_rec.trans_number;
2987         END IF;
2989           x_pxh_rec.contract_number := l_pxh_rec.contract_number;
2990         END IF;
2991         IF x_pxh_rec.customer_name IS NULL THEN
2992           x_pxh_rec.customer_name := l_pxh_rec.customer_name;
2993         END IF;
2994         IF x_pxh_rec.cust_account_number IS NULL THEN
2995           x_pxh_rec.cust_account_number := l_pxh_rec.cust_account_number;
2996         END IF;
2997         IF x_pxh_rec.product_name IS NULL THEN
2998           x_pxh_rec.product_name := l_pxh_rec.product_name;
2999         END IF;
3000         IF x_pxh_rec.book_classification_code IS NULL THEN
3001           x_pxh_rec.book_classification_code := l_pxh_rec.book_classification_code;
3002         END IF;
3003         IF x_pxh_rec.tax_owner_code IS NULL THEN
3004           x_pxh_rec.tax_owner_code := l_pxh_rec.tax_owner_code;
3005         END IF;
3006         IF x_pxh_rec.int_calc_method_code IS NULL THEN
3007           x_pxh_rec.int_calc_method_code := l_pxh_rec.int_calc_method_code;
3008         END IF;
3009         IF x_pxh_rec.rev_rec_method_code IS NULL THEN
3010           x_pxh_rec.rev_rec_method_code := l_pxh_rec.rev_rec_method_code;
3011         END IF;
3012         IF x_pxh_rec.scs_code IS NULL THEN
3013           x_pxh_rec.scs_code := l_pxh_rec.scs_code;
3014         END IF;
3015         IF x_pxh_rec.converted_number IS NULL THEN
3016           x_pxh_rec.converted_number := l_pxh_rec.converted_number;
3017         END IF;
3018         IF x_pxh_rec.contract_effective_from IS NULL THEN
3019           x_pxh_rec.contract_effective_from := l_pxh_rec.contract_effective_from;
3020         END IF;
3021         IF x_pxh_rec.contract_currency_code IS NULL THEN
3022           x_pxh_rec.contract_currency_code := l_pxh_rec.contract_currency_code;
3023         END IF;
3024         IF x_pxh_rec.sales_rep_name IS NULL THEN
3025           x_pxh_rec.sales_rep_name := l_pxh_rec.sales_rep_name;
3026         END IF;
3027         IF x_pxh_rec.po_order_number IS NULL THEN
3028           x_pxh_rec.po_order_number := l_pxh_rec.po_order_number;
3029         END IF;
3030         IF x_pxh_rec.vendor_program_number IS NULL THEN
3031           x_pxh_rec.vendor_program_number := l_pxh_rec.vendor_program_number;
3032         END IF;
3033         IF x_pxh_rec.assignable_flag IS NULL THEN
3034           x_pxh_rec.assignable_flag := l_pxh_rec.assignable_flag;
3035         END IF;
3036         IF x_pxh_rec.converted_account_flag IS NULL THEN
3037           x_pxh_rec.converted_account_flag := l_pxh_rec.converted_account_flag;
3038         END IF;
3039         IF x_pxh_rec.accrual_override_flag IS NULL THEN
3040           x_pxh_rec.accrual_override_flag := l_pxh_rec.accrual_override_flag;
3041         END IF;
3042         IF x_pxh_rec.khr_attribute_category IS NULL THEN
3043           x_pxh_rec.khr_attribute_category := l_pxh_rec.khr_attribute_category;
3044         END IF;
3045         IF x_pxh_rec.khr_attribute1 IS NULL THEN
3046           x_pxh_rec.khr_attribute1 := l_pxh_rec.khr_attribute1;
3047         END IF;
3048         IF x_pxh_rec.khr_attribute2 IS NULL THEN
3049           x_pxh_rec.khr_attribute2 := l_pxh_rec.khr_attribute2;
3050         END IF;
3051         IF x_pxh_rec.khr_attribute3 IS NULL THEN
3052           x_pxh_rec.khr_attribute3 := l_pxh_rec.khr_attribute3;
3053         END IF;
3054         IF x_pxh_rec.khr_attribute4 IS NULL THEN
3055           x_pxh_rec.khr_attribute4 := l_pxh_rec.khr_attribute4;
3056         END IF;
3057         IF x_pxh_rec.khr_attribute5 IS NULL THEN
3058           x_pxh_rec.khr_attribute5 := l_pxh_rec.khr_attribute5;
3059         END IF;
3060         IF x_pxh_rec.khr_attribute6 IS NULL THEN
3061           x_pxh_rec.khr_attribute6 := l_pxh_rec.khr_attribute6;
3062         END IF;
3063         IF x_pxh_rec.khr_attribute7 IS NULL THEN
3064           x_pxh_rec.khr_attribute7 := l_pxh_rec.khr_attribute7;
3065         END IF;
3066         IF x_pxh_rec.khr_attribute8 IS NULL THEN
3067           x_pxh_rec.khr_attribute8 := l_pxh_rec.khr_attribute8;
3068         END IF;
3069         IF x_pxh_rec.khr_attribute9 IS NULL THEN
3070           x_pxh_rec.khr_attribute9 := l_pxh_rec.khr_attribute9;
3071         END IF;
3072         IF x_pxh_rec.khr_attribute10 IS NULL THEN
3073           x_pxh_rec.khr_attribute10 := l_pxh_rec.khr_attribute10;
3074         END IF;
3075         IF x_pxh_rec.khr_attribute11 IS NULL THEN
3076           x_pxh_rec.khr_attribute11 := l_pxh_rec.khr_attribute11;
3077         END IF;
3078         IF x_pxh_rec.khr_attribute12 IS NULL THEN
3079           x_pxh_rec.khr_attribute12 := l_pxh_rec.khr_attribute12;
3080         END IF;
3081         IF x_pxh_rec.khr_attribute13 IS NULL THEN
3082           x_pxh_rec.khr_attribute13 := l_pxh_rec.khr_attribute13;
3083         END IF;
3084         IF x_pxh_rec.khr_attribute14 IS NULL THEN
3085           x_pxh_rec.khr_attribute14 := l_pxh_rec.khr_attribute14;
3086         END IF;
3087         IF x_pxh_rec.khr_attribute15 IS NULL THEN
3088           x_pxh_rec.khr_attribute15 := l_pxh_rec.khr_attribute15;
3089         END IF;
3090         IF x_pxh_rec.cust_attribute_category IS NULL THEN
3091           x_pxh_rec.cust_attribute_category := l_pxh_rec.cust_attribute_category;
3092         END IF;
3093         IF x_pxh_rec.cust_attribute1 IS NULL THEN
3094           x_pxh_rec.cust_attribute1 := l_pxh_rec.cust_attribute1;
3095         END IF;
3096         IF x_pxh_rec.cust_attribute2 IS NULL THEN
3097           x_pxh_rec.cust_attribute2 := l_pxh_rec.cust_attribute2;
3098         END IF;
3099         IF x_pxh_rec.cust_attribute3 IS NULL THEN
3100           x_pxh_rec.cust_attribute3 := l_pxh_rec.cust_attribute3;
3101         END IF;
3102         IF x_pxh_rec.cust_attribute4 IS NULL THEN
3103           x_pxh_rec.cust_attribute4 := l_pxh_rec.cust_attribute4;
3104         END IF;
3105         IF x_pxh_rec.cust_attribute5 IS NULL THEN
3109           x_pxh_rec.cust_attribute6 := l_pxh_rec.cust_attribute6;
3106           x_pxh_rec.cust_attribute5 := l_pxh_rec.cust_attribute5;
3107         END IF;
3108         IF x_pxh_rec.cust_attribute6 IS NULL THEN
3110         END IF;
3111         IF x_pxh_rec.cust_attribute7 IS NULL THEN
3112           x_pxh_rec.cust_attribute7 := l_pxh_rec.cust_attribute7;
3113         END IF;
3114         IF x_pxh_rec.cust_attribute8 IS NULL THEN
3115           x_pxh_rec.cust_attribute8 := l_pxh_rec.cust_attribute8;
3116         END IF;
3117         IF x_pxh_rec.cust_attribute9 IS NULL THEN
3118           x_pxh_rec.cust_attribute9 := l_pxh_rec.cust_attribute9;
3119         END IF;
3120         IF x_pxh_rec.cust_attribute10 IS NULL THEN
3121           x_pxh_rec.cust_attribute10 := l_pxh_rec.cust_attribute10;
3122         END IF;
3123         IF x_pxh_rec.cust_attribute11 IS NULL THEN
3124           x_pxh_rec.cust_attribute11 := l_pxh_rec.cust_attribute11;
3125         END IF;
3126         IF x_pxh_rec.cust_attribute12 IS NULL THEN
3127           x_pxh_rec.cust_attribute12 := l_pxh_rec.cust_attribute12;
3128         END IF;
3129         IF x_pxh_rec.cust_attribute13 IS NULL THEN
3130           x_pxh_rec.cust_attribute13 := l_pxh_rec.cust_attribute13;
3131         END IF;
3132         IF x_pxh_rec.cust_attribute14 IS NULL THEN
3133           x_pxh_rec.cust_attribute14 := l_pxh_rec.cust_attribute14;
3134         END IF;
3135         IF x_pxh_rec.cust_attribute15 IS NULL THEN
3136           x_pxh_rec.cust_attribute15 := l_pxh_rec.cust_attribute15;
3137         END IF;
3138         IF x_pxh_rec.rent_ia_contract_number IS NULL THEN
3139           x_pxh_rec.rent_ia_contract_number := l_pxh_rec.rent_ia_contract_number;
3140         END IF;
3141         IF x_pxh_rec.rent_ia_product_name IS NULL THEN
3142           x_pxh_rec.rent_ia_product_name := l_pxh_rec.rent_ia_product_name;
3143         END IF;
3144         IF x_pxh_rec.rent_ia_accounting_code IS NULL THEN
3145           x_pxh_rec.rent_ia_accounting_code := l_pxh_rec.rent_ia_accounting_code;
3146         END IF;
3147         IF x_pxh_rec.res_ia_contract_number IS NULL THEN
3148           x_pxh_rec.res_ia_contract_number := l_pxh_rec.res_ia_contract_number;
3149         END IF;
3150         IF x_pxh_rec.res_ia_product_name IS NULL THEN
3151           x_pxh_rec.res_ia_product_name := l_pxh_rec.res_ia_product_name;
3152         END IF;
3153         IF x_pxh_rec.res_ia_accounting_code IS NULL THEN
3154           x_pxh_rec.res_ia_accounting_code := l_pxh_rec.res_ia_accounting_code;
3155         END IF;
3156         IF x_pxh_rec.inv_agrmnt_number IS NULL THEN
3157           x_pxh_rec.inv_agrmnt_number := l_pxh_rec.inv_agrmnt_number;
3158         END IF;
3159         IF x_pxh_rec.inv_agrmnt_effective_from IS NULL THEN
3160           x_pxh_rec.inv_agrmnt_effective_from := l_pxh_rec.inv_agrmnt_effective_from;
3161         END IF;
3162         IF x_pxh_rec.inv_agrmnt_product_name IS NULL THEN
3163           x_pxh_rec.inv_agrmnt_product_name := l_pxh_rec.inv_agrmnt_product_name;
3164         END IF;
3165         IF x_pxh_rec.inv_agrmnt_currency_code IS NULL THEN
3166           x_pxh_rec.inv_agrmnt_currency_code := l_pxh_rec.inv_agrmnt_currency_code;
3167         END IF;
3168         IF x_pxh_rec.inv_agrmnt_synd_code IS NULL THEN
3169           x_pxh_rec.inv_agrmnt_synd_code := l_pxh_rec.inv_agrmnt_synd_code;
3170         END IF;
3171         IF x_pxh_rec.inv_agrmnt_pool_number IS NULL THEN
3172           x_pxh_rec.inv_agrmnt_pool_number := l_pxh_rec.inv_agrmnt_pool_number;
3173         END IF;
3174         IF x_pxh_rec.contract_status_code IS NULL THEN
3175           x_pxh_rec.contract_status_code := l_pxh_rec.contract_status_code;
3176         END IF;
3177         IF x_pxh_rec.inv_agrmnt_status_code IS NULL THEN
3178           x_pxh_rec.inv_agrmnt_status_code := l_pxh_rec.inv_agrmnt_status_code;
3179         END IF;
3180         IF x_pxh_rec.trx_type_class_code IS NULL THEN
3181           x_pxh_rec.trx_type_class_code := l_pxh_rec.trx_type_class_code;
3182         END IF;
3183         IF x_pxh_rec.created_by IS NULL THEN
3184           x_pxh_rec.created_by := l_pxh_rec.created_by;
3185         END IF;
3186         IF x_pxh_rec.creation_date IS NULL THEN
3187           x_pxh_rec.creation_date := l_pxh_rec.creation_date;
3188         END IF;
3189         IF x_pxh_rec.last_updated_by IS NULL THEN
3190           x_pxh_rec.last_updated_by := l_pxh_rec.last_updated_by;
3191         END IF;
3192         IF x_pxh_rec.last_update_date IS NULL THEN
3193           x_pxh_rec.last_update_date := l_pxh_rec.last_update_date;
3194         END IF;
3195         IF x_pxh_rec.last_update_login IS NULL THEN
3196           x_pxh_rec.last_update_login := l_pxh_rec.last_update_login;
3197         END IF;
3198 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables start
3199         IF x_pxh_rec.party_id IS NULL THEN
3200           x_pxh_rec.party_id := l_pxh_rec.party_id;
3201         END IF;
3202         IF x_pxh_rec.cust_account_id IS NULL THEN
3203           x_pxh_rec.cust_account_id := l_pxh_rec.cust_account_id;
3204         END IF;
3205 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables end
3206       END IF;
3207       RETURN(l_return_status);
3208     END populate_new_record;
3209     ----------------------------------------------------
3210     -- Set_Attributes for:OKL_EXT_AP_HEADER_SOURCES_B --
3211     ----------------------------------------------------
3212     FUNCTION Set_Attributes (
3213       p_pxh_rec IN pxh_rec_type,
3214       x_pxh_rec OUT NOCOPY pxh_rec_type
3215     ) RETURN VARCHAR2 IS
3216       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3217     BEGIN
3218       x_pxh_rec := p_pxh_rec;
3219       x_pxh_rec.OBJECT_VERSION_NUMBER := p_pxh_rec.OBJECT_VERSION_NUMBER + 1;
3220       RETURN(l_return_status);
3221     END Set_Attributes;
3222   BEGIN
3223     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3227     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3224                                               p_init_msg_list,
3225                                               '_PVT',
3226                                               x_return_status);
3228       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3229     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3230       RAISE OKL_API.G_EXCEPTION_ERROR;
3231     END IF;
3232     --- Setting item attributes
3233     l_return_status := Set_Attributes(
3234       p_pxh_rec,                         -- IN
3235       l_pxh_rec);                        -- OUT
3236     --- If any errors happen abort API
3237     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3238       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3239     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3240       RAISE OKL_API.G_EXCEPTION_ERROR;
3241     END IF;
3242     l_return_status := populate_new_record(l_pxh_rec, l_def_pxh_rec);
3243     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3244       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3245     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3246       RAISE OKL_API.G_EXCEPTION_ERROR;
3247     END IF;
3248     UPDATE OKL_EXT_AP_HEADER_SOURCES_B
3249     SET SOURCE_ID = l_def_pxh_rec.source_id,
3250         SOURCE_TABLE = l_def_pxh_rec.source_table,
3251         OBJECT_VERSION_NUMBER = l_def_pxh_rec.object_version_number,
3252         KHR_ID = l_def_pxh_rec.khr_id,
3253         TRY_ID = l_def_pxh_rec.try_id,
3254         TRANS_NUMBER = l_def_pxh_rec.trans_number,
3255         CONTRACT_NUMBER = l_def_pxh_rec.contract_number,
3256         CUSTOMER_NAME = l_def_pxh_rec.customer_name,
3257         CUST_ACCOUNT_NUMBER = l_def_pxh_rec.cust_account_number,
3258         PRODUCT_NAME = l_def_pxh_rec.product_name,
3259         BOOK_CLASSIFICATION_CODE = l_def_pxh_rec.book_classification_code,
3260         TAX_OWNER_CODE = l_def_pxh_rec.tax_owner_code,
3261         INT_CALC_METHOD_CODE = l_def_pxh_rec.int_calc_method_code,
3262         REV_REC_METHOD_CODE = l_def_pxh_rec.rev_rec_method_code,
3263         SCS_CODE = l_def_pxh_rec.scs_code,
3264         CONVERTED_NUMBER = l_def_pxh_rec.converted_number,
3265         CONTRACT_EFFECTIVE_FROM = l_def_pxh_rec.contract_effective_from,
3266         CONTRACT_CURRENCY_CODE = l_def_pxh_rec.contract_currency_code,
3267         SALES_REP_NAME = l_def_pxh_rec.sales_rep_name,
3268         PO_ORDER_NUMBER = l_def_pxh_rec.po_order_number,
3269         VENDOR_PROGRAM_NUMBER = l_def_pxh_rec.vendor_program_number,
3270         ASSIGNABLE_FLAG = l_def_pxh_rec.assignable_flag,
3271         CONVERTED_ACCOUNT_FLAG = l_def_pxh_rec.converted_account_flag,
3272         ACCRUAL_OVERRIDE_FLAG = l_def_pxh_rec.accrual_override_flag,
3273         KHR_ATTRIBUTE_CATEGORY = l_def_pxh_rec.khr_attribute_category,
3274         KHR_ATTRIBUTE1 = l_def_pxh_rec.khr_attribute1,
3275         KHR_ATTRIBUTE2 = l_def_pxh_rec.khr_attribute2,
3276         KHR_ATTRIBUTE3 = l_def_pxh_rec.khr_attribute3,
3277         KHR_ATTRIBUTE4 = l_def_pxh_rec.khr_attribute4,
3278         KHR_ATTRIBUTE5 = l_def_pxh_rec.khr_attribute5,
3279         KHR_ATTRIBUTE6 = l_def_pxh_rec.khr_attribute6,
3280         KHR_ATTRIBUTE7 = l_def_pxh_rec.khr_attribute7,
3281         KHR_ATTRIBUTE8 = l_def_pxh_rec.khr_attribute8,
3282         KHR_ATTRIBUTE9 = l_def_pxh_rec.khr_attribute9,
3283         KHR_ATTRIBUTE10 = l_def_pxh_rec.khr_attribute10,
3284         KHR_ATTRIBUTE11 = l_def_pxh_rec.khr_attribute11,
3285         KHR_ATTRIBUTE12 = l_def_pxh_rec.khr_attribute12,
3286         KHR_ATTRIBUTE13 = l_def_pxh_rec.khr_attribute13,
3287         KHR_ATTRIBUTE14 = l_def_pxh_rec.khr_attribute14,
3288         KHR_ATTRIBUTE15 = l_def_pxh_rec.khr_attribute15,
3289         CUST_ATTRIBUTE_CATEGORY = l_def_pxh_rec.cust_attribute_category,
3290         CUST_ATTRIBUTE1 = l_def_pxh_rec.cust_attribute1,
3291         CUST_ATTRIBUTE2 = l_def_pxh_rec.cust_attribute2,
3292         CUST_ATTRIBUTE3 = l_def_pxh_rec.cust_attribute3,
3293         CUST_ATTRIBUTE4 = l_def_pxh_rec.cust_attribute4,
3294         CUST_ATTRIBUTE5 = l_def_pxh_rec.cust_attribute5,
3295         CUST_ATTRIBUTE6 = l_def_pxh_rec.cust_attribute6,
3296         CUST_ATTRIBUTE7 = l_def_pxh_rec.cust_attribute7,
3297         CUST_ATTRIBUTE8 = l_def_pxh_rec.cust_attribute8,
3298         CUST_ATTRIBUTE9 = l_def_pxh_rec.cust_attribute9,
3299         CUST_ATTRIBUTE10 = l_def_pxh_rec.cust_attribute10,
3300         CUST_ATTRIBUTE11 = l_def_pxh_rec.cust_attribute11,
3301         CUST_ATTRIBUTE12 = l_def_pxh_rec.cust_attribute12,
3302         CUST_ATTRIBUTE13 = l_def_pxh_rec.cust_attribute13,
3303         CUST_ATTRIBUTE14 = l_def_pxh_rec.cust_attribute14,
3304         CUST_ATTRIBUTE15 = l_def_pxh_rec.cust_attribute15,
3305         RENT_IA_CONTRACT_NUMBER = l_def_pxh_rec.rent_ia_contract_number,
3306         RENT_IA_PRODUCT_NAME = l_def_pxh_rec.rent_ia_product_name,
3307         RENT_IA_ACCOUNTING_CODE = l_def_pxh_rec.rent_ia_accounting_code,
3308         RES_IA_CONTRACT_NUMBER = l_def_pxh_rec.res_ia_contract_number,
3309         RES_IA_PRODUCT_NAME = l_def_pxh_rec.res_ia_product_name,
3310         RES_IA_ACCOUNTING_CODE = l_def_pxh_rec.res_ia_accounting_code,
3311         INV_AGRMNT_NUMBER = l_def_pxh_rec.inv_agrmnt_number,
3312         INV_AGRMNT_EFFECTIVE_FROM = l_def_pxh_rec.inv_agrmnt_effective_from,
3313         INV_AGRMNT_PRODUCT_NAME = l_def_pxh_rec.inv_agrmnt_product_name,
3314         INV_AGRMNT_CURRENCY_CODE = l_def_pxh_rec.inv_agrmnt_currency_code,
3315         INV_AGRMNT_SYND_CODE = l_def_pxh_rec.inv_agrmnt_synd_code,
3316         INV_AGRMNT_POOL_NUMBER = l_def_pxh_rec.inv_agrmnt_pool_number,
3317         CONTRACT_STATUS_CODE = l_def_pxh_rec.contract_status_code,
3318         INV_AGRMNT_STATUS_CODE = l_def_pxh_rec.inv_agrmnt_status_code,
3319         TRX_TYPE_CLASS_CODE = l_def_pxh_rec.trx_type_class_code,
3320         CREATED_BY = l_def_pxh_rec.created_by,
3321         CREATION_DATE = l_def_pxh_rec.creation_date,
3322         LAST_UPDATED_BY = l_def_pxh_rec.last_updated_by,
3323         LAST_UPDATE_DATE = l_def_pxh_rec.last_update_date,
3324         LAST_UPDATE_LOGIN = l_def_pxh_rec.last_update_login,
3328 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables end
3325 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables start
3326         PARTY_ID = l_def_pxh_rec.party_id,
3327         CUST_ACCOUNT_ID = l_def_pxh_rec.cust_account_id
3329     WHERE HEADER_EXTENSION_ID = l_def_pxh_rec.header_extension_id;
3330 
3331     x_pxh_rec := l_pxh_rec;
3332     x_return_status := l_return_status;
3333     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3334   EXCEPTION
3335     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3336       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3337       (
3338         l_api_name,
3339         G_PKG_NAME,
3340         'OKL_API.G_RET_STS_ERROR',
3341         x_msg_count,
3342         x_msg_data,
3343         '_PVT'
3344       );
3345     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3346       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3347       (
3348         l_api_name,
3349         G_PKG_NAME,
3350         'OKL_API.G_RET_STS_UNEXP_ERROR',
3351         x_msg_count,
3352         x_msg_data,
3353         '_PVT'
3354       );
3355     WHEN OTHERS THEN
3356       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3357       (
3358         l_api_name,
3359         G_PKG_NAME,
3360         'OTHERS',
3361         x_msg_count,
3362         x_msg_data,
3363         '_PVT'
3364       );
3365   END update_row;
3366   -------------------------------------------------
3367   -- update_row for:OKL_EXT_AP_HEADER_SOURCES_TL --
3368   -------------------------------------------------
3369   PROCEDURE update_row(
3370     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3371     x_return_status                OUT NOCOPY VARCHAR2,
3372     x_msg_count                    OUT NOCOPY NUMBER,
3373     x_msg_data                     OUT NOCOPY VARCHAR2,
3374     p_pxhl_rec                     IN pxhl_rec_type,
3375     x_pxhl_rec                     OUT NOCOPY pxhl_rec_type) IS
3376 
3377     l_api_version                  CONSTANT NUMBER := 1;
3378     l_api_name                     CONSTANT VARCHAR2(30) := 'TL_update_row';
3379     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3380     l_pxhl_rec                     pxhl_rec_type := p_pxhl_rec;
3381     l_def_pxhl_rec                 pxhl_rec_type;
3382     l_row_notfound                 BOOLEAN := TRUE;
3383     ----------------------------------
3384     -- FUNCTION populate_new_record --
3385     ----------------------------------
3386     FUNCTION populate_new_record (
3387       p_pxhl_rec IN pxhl_rec_type,
3388       x_pxhl_rec OUT NOCOPY pxhl_rec_type
3389     ) RETURN VARCHAR2 IS
3390       l_pxhl_rec                     pxhl_rec_type;
3391       l_row_notfound                 BOOLEAN := TRUE;
3392       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3393     BEGIN
3394       x_pxhl_rec := p_pxhl_rec;
3395       -- Get current database values
3396       l_pxhl_rec := get_rec(p_pxhl_rec, l_return_status);
3397       IF (l_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
3398         IF x_pxhl_rec.header_extension_id IS NULL THEN
3399           x_pxhl_rec.header_extension_id := l_pxhl_rec.header_extension_id;
3400         END IF;
3401         IF x_pxhl_rec.language IS NULL THEN
3402           x_pxhl_rec.language := l_pxhl_rec.language;
3403         END IF;
3404         IF x_pxhl_rec.source_lang IS NULL THEN
3405           x_pxhl_rec.source_lang := l_pxhl_rec.source_lang;
3406         END IF;
3407         IF x_pxhl_rec.sfwt_flag IS NULL THEN
3408           x_pxhl_rec.sfwt_flag := l_pxhl_rec.sfwt_flag;
3409         END IF;
3410         IF x_pxhl_rec.contract_status IS NULL THEN
3411           x_pxhl_rec.contract_status := l_pxhl_rec.contract_status;
3412         END IF;
3413         IF x_pxhl_rec.inv_agrmnt_status IS NULL THEN
3414           x_pxhl_rec.inv_agrmnt_status := l_pxhl_rec.inv_agrmnt_status;
3415         END IF;
3416         IF x_pxhl_rec.transaction_type_name IS NULL THEN
3417           x_pxhl_rec.transaction_type_name := l_pxhl_rec.transaction_type_name;
3418         END IF;
3419         IF x_pxhl_rec.created_by IS NULL THEN
3420           x_pxhl_rec.created_by := l_pxhl_rec.created_by;
3421         END IF;
3422         IF x_pxhl_rec.creation_date IS NULL THEN
3423           x_pxhl_rec.creation_date := l_pxhl_rec.creation_date;
3424         END IF;
3425         IF x_pxhl_rec.last_updated_by IS NULL THEN
3426           x_pxhl_rec.last_updated_by := l_pxhl_rec.last_updated_by;
3427         END IF;
3428         IF x_pxhl_rec.last_update_date IS NULL THEN
3429           x_pxhl_rec.last_update_date := l_pxhl_rec.last_update_date;
3430         END IF;
3431         IF x_pxhl_rec.last_update_login IS NULL THEN
3432           x_pxhl_rec.last_update_login := l_pxhl_rec.last_update_login;
3433         END IF;
3434       END IF;
3435       RETURN(l_return_status);
3436     END populate_new_record;
3437     -----------------------------------------------------
3438     -- Set_Attributes for:OKL_EXT_AP_HEADER_SOURCES_TL --
3439     -----------------------------------------------------
3440     FUNCTION Set_Attributes (
3441       p_pxhl_rec IN pxhl_rec_type,
3442       x_pxhl_rec OUT NOCOPY pxhl_rec_type
3443     ) RETURN VARCHAR2 IS
3444       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3445     BEGIN
3446       x_pxhl_rec := p_pxhl_rec;
3447       x_pxhl_rec.LANGUAGE := USERENV('LANG');
3448       x_pxhl_rec.LANGUAGE := USERENV('LANG');
3449       RETURN(l_return_status);
3450     END Set_Attributes;
3451   BEGIN
3452     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3453                                               p_init_msg_list,
3454                                               '_PVT',
3455                                               x_return_status);
3456     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3457       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3458     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3459       RAISE OKL_API.G_EXCEPTION_ERROR;
3460     END IF;
3461     --- Setting item attributes
3462     l_return_status := Set_Attributes(
3463       p_pxhl_rec,                        -- IN
3464       l_pxhl_rec);                       -- OUT
3465     --- If any errors happen abort API
3466     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3467       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3468     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3469       RAISE OKL_API.G_EXCEPTION_ERROR;
3470     END IF;
3471     l_return_status := populate_new_record(l_pxhl_rec, l_def_pxhl_rec);
3472     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3473       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3474     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3475       RAISE OKL_API.G_EXCEPTION_ERROR;
3476     END IF;
3477     UPDATE OKL_EXT_AP_HEADER_SOURCES_TL
3478     SET CONTRACT_STATUS = l_def_pxhl_rec.contract_status,
3479         INV_AGRMNT_STATUS = l_def_pxhl_rec.inv_agrmnt_status,
3480         TRANSACTION_TYPE_NAME = l_def_pxhl_rec.transaction_type_name,
3481         CREATED_BY = l_def_pxhl_rec.created_by,
3482         CREATION_DATE = l_def_pxhl_rec.creation_date,
3483         LAST_UPDATED_BY = l_def_pxhl_rec.last_updated_by,
3484         LAST_UPDATE_DATE = l_def_pxhl_rec.last_update_date,
3485         LAST_UPDATE_LOGIN = l_def_pxhl_rec.last_update_login
3486     WHERE HEADER_EXTENSION_ID = l_def_pxhl_rec.header_extension_id
3487       AND SOURCE_LANG = USERENV('LANG');
3488 
3489     UPDATE OKL_EXT_AP_HEADER_SOURCES_TL
3490     SET SFWT_FLAG = 'Y'
3491     WHERE HEADER_EXTENSION_ID = l_def_pxhl_rec.header_extension_id
3492       AND SOURCE_LANG <> USERENV('LANG');
3493 
3494     x_pxhl_rec := l_pxhl_rec;
3495     x_return_status := l_return_status;
3496     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3497   EXCEPTION
3498     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3499       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3500       (
3501         l_api_name,
3502         G_PKG_NAME,
3503         'OKL_API.G_RET_STS_ERROR',
3504         x_msg_count,
3505         x_msg_data,
3506         '_PVT'
3507       );
3508     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3509       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3510       (
3511         l_api_name,
3512         G_PKG_NAME,
3513         'OKL_API.G_RET_STS_UNEXP_ERROR',
3514         x_msg_count,
3515         x_msg_data,
3516         '_PVT'
3517       );
3518     WHEN OTHERS THEN
3519       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3520       (
3521         l_api_name,
3522         G_PKG_NAME,
3523         'OTHERS',
3524         x_msg_count,
3525         x_msg_data,
3526         '_PVT'
3527       );
3528   END update_row;
3529   ------------------------------------------------
3530   -- update_row for:OKL_EXT_AP_HEADER_SOURCES_V --
3531   ------------------------------------------------
3532   PROCEDURE update_row(
3533     p_api_version                  IN NUMBER,
3534     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3535     x_return_status                OUT NOCOPY VARCHAR2,
3536     x_msg_count                    OUT NOCOPY NUMBER,
3537     x_msg_data                     OUT NOCOPY VARCHAR2,
3538     p_pxhv_rec                     IN pxhv_rec_type,
3539     x_pxhv_rec                     OUT NOCOPY pxhv_rec_type) IS
3540 
3541     l_api_version                  CONSTANT NUMBER := 1;
3542     l_api_name                     CONSTANT VARCHAR2(30) := 'V_update_row';
3543     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3544     l_pxhv_rec                     pxhv_rec_type := p_pxhv_rec;
3545     l_def_pxhv_rec                 pxhv_rec_type;
3546     l_db_pxhv_rec                  pxhv_rec_type;
3547     l_pxh_rec                      pxh_rec_type;
3548     lx_pxh_rec                     pxh_rec_type;
3549     l_pxhl_rec                     pxhl_rec_type;
3550     lx_pxhl_rec                    pxhl_rec_type;
3551     -------------------------------
3552     -- FUNCTION fill_who_columns --
3556     ) RETURN pxhv_rec_type IS
3553     -------------------------------
3554     FUNCTION fill_who_columns (
3555       p_pxhv_rec IN pxhv_rec_type
3557       l_pxhv_rec pxhv_rec_type := p_pxhv_rec;
3558     BEGIN
3559       l_pxhv_rec.LAST_UPDATE_DATE := SYSDATE;
3560       l_pxhv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
3561       l_pxhv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
3562       RETURN(l_pxhv_rec);
3563     END fill_who_columns;
3564     ----------------------------------
3565     -- FUNCTION populate_new_record --
3566     ----------------------------------
3567     FUNCTION populate_new_record (
3568       p_pxhv_rec IN pxhv_rec_type,
3569       x_pxhv_rec OUT NOCOPY pxhv_rec_type
3570     ) RETURN VARCHAR2 IS
3571       l_row_notfound                 BOOLEAN := TRUE;
3572       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3573     BEGIN
3574       x_pxhv_rec := p_pxhv_rec;
3575       -- Get current database values
3576       -- NOTE: Never assign the OBJECT_VERSION_NUMBER.  Force the user to pass it
3577       --       so it may be verified through LOCK_ROW.
3578       l_db_pxhv_rec := get_rec(p_pxhv_rec, l_return_status);
3579       IF (l_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
3580         IF x_pxhv_rec.header_extension_id IS NULL THEN
3581           x_pxhv_rec.header_extension_id := l_db_pxhv_rec.header_extension_id;
3582         END IF;
3583         IF x_pxhv_rec.source_id IS NULL THEN
3584           x_pxhv_rec.source_id := l_db_pxhv_rec.source_id;
3585         END IF;
3586         IF x_pxhv_rec.source_table IS NULL THEN
3587           x_pxhv_rec.source_table := l_db_pxhv_rec.source_table;
3588         END IF;
3589         IF x_pxhv_rec.khr_id IS NULL THEN
3590           x_pxhv_rec.khr_id := l_db_pxhv_rec.khr_id;
3591         END IF;
3592         IF x_pxhv_rec.try_id IS NULL THEN
3593           x_pxhv_rec.try_id := l_db_pxhv_rec.try_id;
3594         END IF;
3595         IF x_pxhv_rec.trans_number IS NULL THEN
3596           x_pxhv_rec.trans_number := l_db_pxhv_rec.trans_number;
3597         END IF;
3598         IF x_pxhv_rec.contract_number IS NULL THEN
3599           x_pxhv_rec.contract_number := l_db_pxhv_rec.contract_number;
3600         END IF;
3601         IF x_pxhv_rec.customer_name IS NULL THEN
3602           x_pxhv_rec.customer_name := l_db_pxhv_rec.customer_name;
3603         END IF;
3604         IF x_pxhv_rec.cust_account_number IS NULL THEN
3605           x_pxhv_rec.cust_account_number := l_db_pxhv_rec.cust_account_number;
3606         END IF;
3607         IF x_pxhv_rec.product_name IS NULL THEN
3608           x_pxhv_rec.product_name := l_db_pxhv_rec.product_name;
3609         END IF;
3610         IF x_pxhv_rec.book_classification_code IS NULL THEN
3611           x_pxhv_rec.book_classification_code := l_db_pxhv_rec.book_classification_code;
3612         END IF;
3613         IF x_pxhv_rec.tax_owner_code IS NULL THEN
3614           x_pxhv_rec.tax_owner_code := l_db_pxhv_rec.tax_owner_code;
3615         END IF;
3616         IF x_pxhv_rec.int_calc_method_code IS NULL THEN
3617           x_pxhv_rec.int_calc_method_code := l_db_pxhv_rec.int_calc_method_code;
3618         END IF;
3619         IF x_pxhv_rec.rev_rec_method_code IS NULL THEN
3620           x_pxhv_rec.rev_rec_method_code := l_db_pxhv_rec.rev_rec_method_code;
3621         END IF;
3622         IF x_pxhv_rec.scs_code IS NULL THEN
3623           x_pxhv_rec.scs_code := l_db_pxhv_rec.scs_code;
3624         END IF;
3625         IF x_pxhv_rec.converted_number IS NULL THEN
3626           x_pxhv_rec.converted_number := l_db_pxhv_rec.converted_number;
3627         END IF;
3628         IF x_pxhv_rec.contract_effective_from IS NULL THEN
3629           x_pxhv_rec.contract_effective_from := l_db_pxhv_rec.contract_effective_from;
3630         END IF;
3631         IF x_pxhv_rec.contract_currency_code IS NULL THEN
3632           x_pxhv_rec.contract_currency_code := l_db_pxhv_rec.contract_currency_code;
3633         END IF;
3634         IF x_pxhv_rec.sales_rep_name IS NULL THEN
3635           x_pxhv_rec.sales_rep_name := l_db_pxhv_rec.sales_rep_name;
3636         END IF;
3637         IF x_pxhv_rec.po_order_number IS NULL THEN
3638           x_pxhv_rec.po_order_number := l_db_pxhv_rec.po_order_number;
3639         END IF;
3640         IF x_pxhv_rec.vendor_program_number IS NULL THEN
3641           x_pxhv_rec.vendor_program_number := l_db_pxhv_rec.vendor_program_number;
3642         END IF;
3643         IF x_pxhv_rec.assignable_flag IS NULL THEN
3644           x_pxhv_rec.assignable_flag := l_db_pxhv_rec.assignable_flag;
3645         END IF;
3646         IF x_pxhv_rec.converted_account_flag IS NULL THEN
3647           x_pxhv_rec.converted_account_flag := l_db_pxhv_rec.converted_account_flag;
3648         END IF;
3649         IF x_pxhv_rec.accrual_override_flag IS NULL THEN
3650           x_pxhv_rec.accrual_override_flag := l_db_pxhv_rec.accrual_override_flag;
3651         END IF;
3652         IF x_pxhv_rec.khr_attribute_category IS NULL THEN
3653           x_pxhv_rec.khr_attribute_category := l_db_pxhv_rec.khr_attribute_category;
3654         END IF;
3655         IF x_pxhv_rec.khr_attribute1 IS NULL THEN
3656           x_pxhv_rec.khr_attribute1 := l_db_pxhv_rec.khr_attribute1;
3657         END IF;
3658         IF x_pxhv_rec.khr_attribute2 IS NULL THEN
3659           x_pxhv_rec.khr_attribute2 := l_db_pxhv_rec.khr_attribute2;
3660         END IF;
3661         IF x_pxhv_rec.khr_attribute3 IS NULL THEN
3662           x_pxhv_rec.khr_attribute3 := l_db_pxhv_rec.khr_attribute3;
3663         END IF;
3664         IF x_pxhv_rec.khr_attribute4 IS NULL THEN
3665           x_pxhv_rec.khr_attribute4 := l_db_pxhv_rec.khr_attribute4;
3666         END IF;
3667         IF x_pxhv_rec.khr_attribute5 IS NULL THEN
3668           x_pxhv_rec.khr_attribute5 := l_db_pxhv_rec.khr_attribute5;
3669         END IF;
3670         IF x_pxhv_rec.khr_attribute6 IS NULL THEN
3671           x_pxhv_rec.khr_attribute6 := l_db_pxhv_rec.khr_attribute6;
3672         END IF;
3676         IF x_pxhv_rec.khr_attribute8 IS NULL THEN
3673         IF x_pxhv_rec.khr_attribute7 IS NULL THEN
3674           x_pxhv_rec.khr_attribute7 := l_db_pxhv_rec.khr_attribute7;
3675         END IF;
3677           x_pxhv_rec.khr_attribute8 := l_db_pxhv_rec.khr_attribute8;
3678         END IF;
3679         IF x_pxhv_rec.khr_attribute9 IS NULL THEN
3680           x_pxhv_rec.khr_attribute9 := l_db_pxhv_rec.khr_attribute9;
3681         END IF;
3682         IF x_pxhv_rec.khr_attribute10 IS NULL THEN
3683           x_pxhv_rec.khr_attribute10 := l_db_pxhv_rec.khr_attribute10;
3684         END IF;
3685         IF x_pxhv_rec.khr_attribute11 IS NULL THEN
3686           x_pxhv_rec.khr_attribute11 := l_db_pxhv_rec.khr_attribute11;
3687         END IF;
3688         IF x_pxhv_rec.khr_attribute12 IS NULL THEN
3689           x_pxhv_rec.khr_attribute12 := l_db_pxhv_rec.khr_attribute12;
3690         END IF;
3691         IF x_pxhv_rec.khr_attribute13 IS NULL THEN
3692           x_pxhv_rec.khr_attribute13 := l_db_pxhv_rec.khr_attribute13;
3693         END IF;
3694         IF x_pxhv_rec.khr_attribute14 IS NULL THEN
3695           x_pxhv_rec.khr_attribute14 := l_db_pxhv_rec.khr_attribute14;
3696         END IF;
3697         IF x_pxhv_rec.khr_attribute15 IS NULL THEN
3698           x_pxhv_rec.khr_attribute15 := l_db_pxhv_rec.khr_attribute15;
3699         END IF;
3700         IF x_pxhv_rec.cust_attribute_category IS NULL THEN
3701           x_pxhv_rec.cust_attribute_category := l_db_pxhv_rec.cust_attribute_category;
3702         END IF;
3703         IF x_pxhv_rec.cust_attribute1 IS NULL THEN
3704           x_pxhv_rec.cust_attribute1 := l_db_pxhv_rec.cust_attribute1;
3705         END IF;
3706         IF x_pxhv_rec.cust_attribute2 IS NULL THEN
3707           x_pxhv_rec.cust_attribute2 := l_db_pxhv_rec.cust_attribute2;
3708         END IF;
3709         IF x_pxhv_rec.cust_attribute3 IS NULL THEN
3710           x_pxhv_rec.cust_attribute3 := l_db_pxhv_rec.cust_attribute3;
3711         END IF;
3712         IF x_pxhv_rec.cust_attribute4 IS NULL THEN
3713           x_pxhv_rec.cust_attribute4 := l_db_pxhv_rec.cust_attribute4;
3714         END IF;
3715         IF x_pxhv_rec.cust_attribute5 IS NULL THEN
3716           x_pxhv_rec.cust_attribute5 := l_db_pxhv_rec.cust_attribute5;
3717         END IF;
3718         IF x_pxhv_rec.cust_attribute6 IS NULL THEN
3719           x_pxhv_rec.cust_attribute6 := l_db_pxhv_rec.cust_attribute6;
3720         END IF;
3721         IF x_pxhv_rec.cust_attribute7 IS NULL THEN
3722           x_pxhv_rec.cust_attribute7 := l_db_pxhv_rec.cust_attribute7;
3723         END IF;
3724         IF x_pxhv_rec.cust_attribute8 IS NULL THEN
3725           x_pxhv_rec.cust_attribute8 := l_db_pxhv_rec.cust_attribute8;
3726         END IF;
3727         IF x_pxhv_rec.cust_attribute9 IS NULL THEN
3728           x_pxhv_rec.cust_attribute9 := l_db_pxhv_rec.cust_attribute9;
3729         END IF;
3730         IF x_pxhv_rec.cust_attribute10 IS NULL THEN
3731           x_pxhv_rec.cust_attribute10 := l_db_pxhv_rec.cust_attribute10;
3732         END IF;
3733         IF x_pxhv_rec.cust_attribute11 IS NULL THEN
3734           x_pxhv_rec.cust_attribute11 := l_db_pxhv_rec.cust_attribute11;
3735         END IF;
3736         IF x_pxhv_rec.cust_attribute12 IS NULL THEN
3737           x_pxhv_rec.cust_attribute12 := l_db_pxhv_rec.cust_attribute12;
3738         END IF;
3739         IF x_pxhv_rec.cust_attribute13 IS NULL THEN
3740           x_pxhv_rec.cust_attribute13 := l_db_pxhv_rec.cust_attribute13;
3741         END IF;
3742         IF x_pxhv_rec.cust_attribute14 IS NULL THEN
3743           x_pxhv_rec.cust_attribute14 := l_db_pxhv_rec.cust_attribute14;
3744         END IF;
3745         IF x_pxhv_rec.cust_attribute15 IS NULL THEN
3746           x_pxhv_rec.cust_attribute15 := l_db_pxhv_rec.cust_attribute15;
3747         END IF;
3748         IF x_pxhv_rec.rent_ia_contract_number IS NULL THEN
3749           x_pxhv_rec.rent_ia_contract_number := l_db_pxhv_rec.rent_ia_contract_number;
3750         END IF;
3751         IF x_pxhv_rec.rent_ia_product_name IS NULL THEN
3752           x_pxhv_rec.rent_ia_product_name := l_db_pxhv_rec.rent_ia_product_name;
3753         END IF;
3754         IF x_pxhv_rec.rent_ia_accounting_code IS NULL THEN
3755           x_pxhv_rec.rent_ia_accounting_code := l_db_pxhv_rec.rent_ia_accounting_code;
3756         END IF;
3757         IF x_pxhv_rec.res_ia_contract_number IS NULL THEN
3758           x_pxhv_rec.res_ia_contract_number := l_db_pxhv_rec.res_ia_contract_number;
3759         END IF;
3760         IF x_pxhv_rec.res_ia_product_name IS NULL THEN
3761           x_pxhv_rec.res_ia_product_name := l_db_pxhv_rec.res_ia_product_name;
3762         END IF;
3763         IF x_pxhv_rec.res_ia_accounting_code IS NULL THEN
3764           x_pxhv_rec.res_ia_accounting_code := l_db_pxhv_rec.res_ia_accounting_code;
3765         END IF;
3766         IF x_pxhv_rec.inv_agrmnt_number IS NULL THEN
3767           x_pxhv_rec.inv_agrmnt_number := l_db_pxhv_rec.inv_agrmnt_number;
3768         END IF;
3769         IF x_pxhv_rec.inv_agrmnt_effective_from IS NULL THEN
3770           x_pxhv_rec.inv_agrmnt_effective_from := l_db_pxhv_rec.inv_agrmnt_effective_from;
3771         END IF;
3772         IF x_pxhv_rec.inv_agrmnt_product_name IS NULL THEN
3773           x_pxhv_rec.inv_agrmnt_product_name := l_db_pxhv_rec.inv_agrmnt_product_name;
3774         END IF;
3775         IF x_pxhv_rec.inv_agrmnt_currency_code IS NULL THEN
3776           x_pxhv_rec.inv_agrmnt_currency_code := l_db_pxhv_rec.inv_agrmnt_currency_code;
3777         END IF;
3778         IF x_pxhv_rec.inv_agrmnt_synd_code IS NULL THEN
3779           x_pxhv_rec.inv_agrmnt_synd_code := l_db_pxhv_rec.inv_agrmnt_synd_code;
3780         END IF;
3781         IF x_pxhv_rec.inv_agrmnt_pool_number IS NULL THEN
3782           x_pxhv_rec.inv_agrmnt_pool_number := l_db_pxhv_rec.inv_agrmnt_pool_number;
3783         END IF;
3784         IF x_pxhv_rec.contract_status_code IS NULL THEN
3785           x_pxhv_rec.contract_status_code := l_db_pxhv_rec.contract_status_code;
3786         END IF;
3790         IF x_pxhv_rec.trx_type_class_code IS NULL THEN
3787         IF x_pxhv_rec.inv_agrmnt_status_code IS NULL THEN
3788           x_pxhv_rec.inv_agrmnt_status_code := l_db_pxhv_rec.inv_agrmnt_status_code;
3789         END IF;
3791           x_pxhv_rec.trx_type_class_code := l_db_pxhv_rec.trx_type_class_code;
3792         END IF;
3793         IF x_pxhv_rec.language IS NULL THEN
3794           x_pxhv_rec.language := l_db_pxhv_rec.language;
3795         END IF;
3796         IF x_pxhv_rec.contract_status IS NULL THEN
3797           x_pxhv_rec.contract_status := l_db_pxhv_rec.contract_status;
3798         END IF;
3799         IF x_pxhv_rec.inv_agrmnt_status IS NULL THEN
3800           x_pxhv_rec.inv_agrmnt_status := l_db_pxhv_rec.inv_agrmnt_status;
3801         END IF;
3802         IF x_pxhv_rec.transaction_type_name IS NULL THEN
3803           x_pxhv_rec.transaction_type_name := l_db_pxhv_rec.transaction_type_name;
3804         END IF;
3805         IF x_pxhv_rec.created_by IS NULL THEN
3806           x_pxhv_rec.created_by := l_db_pxhv_rec.created_by;
3807         END IF;
3808         IF x_pxhv_rec.creation_date IS NULL THEN
3809           x_pxhv_rec.creation_date := l_db_pxhv_rec.creation_date;
3810         END IF;
3811         IF x_pxhv_rec.last_updated_by IS NULL THEN
3812           x_pxhv_rec.last_updated_by := l_db_pxhv_rec.last_updated_by;
3813         END IF;
3814         IF x_pxhv_rec.last_update_date IS NULL THEN
3815           x_pxhv_rec.last_update_date := l_db_pxhv_rec.last_update_date;
3816         END IF;
3817         IF x_pxhv_rec.last_update_login IS NULL THEN
3818           x_pxhv_rec.last_update_login := l_db_pxhv_rec.last_update_login;
3819         END IF;
3820 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables start
3821         IF x_pxhv_rec.party_id IS NULL THEN
3822           x_pxhv_rec.party_id := l_db_pxhv_rec.party_id;
3823         END IF;
3824         IF x_pxhv_rec.cust_account_id IS NULL THEN
3825           x_pxhv_rec.cust_account_id := l_db_pxhv_rec.cust_account_id;
3826         END IF;
3827 -- added by zrehman Bug#6707320 for Party Merge impact on Accounting sources tables end
3828       END IF;
3829       RETURN(l_return_status);
3830     END populate_new_record;
3831     ----------------------------------------------------
3832     -- Set_Attributes for:OKL_EXT_AP_HEADER_SOURCES_V --
3833     ----------------------------------------------------
3834     FUNCTION Set_Attributes (
3835       p_pxhv_rec IN pxhv_rec_type,
3836       x_pxhv_rec OUT NOCOPY pxhv_rec_type
3837     ) RETURN VARCHAR2 IS
3838       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3839     BEGIN
3840       x_pxhv_rec := p_pxhv_rec;
3841       RETURN(l_return_status);
3842     END Set_Attributes;
3843   BEGIN
3844     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3845                                               G_PKG_NAME,
3846                                               p_init_msg_list,
3847                                               l_api_version,
3848                                               p_api_version,
3849                                               '_PVT',
3850                                               x_return_status);
3851     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3852       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3853     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3854       RAISE OKL_API.G_EXCEPTION_ERROR;
3855     END IF;
3856     --- Setting item attributes
3857     l_return_status := Set_Attributes(
3858       p_pxhv_rec,                        -- IN
3859       x_pxhv_rec);                       -- OUT
3860     --- If any errors happen abort API
3861     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3862       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3863     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3864       RAISE OKL_API.G_EXCEPTION_ERROR;
3865     END IF;
3866     l_return_status := populate_new_record(l_pxhv_rec, l_def_pxhv_rec);
3867     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3868       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3869     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3870       RAISE OKL_API.G_EXCEPTION_ERROR;
3871     END IF;
3872     l_def_pxhv_rec := null_out_defaults(l_def_pxhv_rec);
3873     l_def_pxhv_rec := fill_who_columns(l_def_pxhv_rec);
3874     --- Validate all non-missing attributes (Item Level Validation)
3875     l_return_status := Validate_Attributes(l_def_pxhv_rec);
3876     --- If any errors happen abort API
3877     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3878       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3879     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3880       RAISE OKL_API.G_EXCEPTION_ERROR;
3881     END IF;
3882     l_return_status := Validate_Record(l_def_pxhv_rec, l_db_pxhv_rec);
3883     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3884       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3885     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3886       RAISE OKL_API.G_EXCEPTION_ERROR;
3887     END IF;
3888 
3889     -- Lock the Record
3890     lock_row(
3891       p_api_version                  => p_api_version,
3892       p_init_msg_list                => p_init_msg_list,
3893       x_return_status                => l_return_status,
3894       x_msg_count                    => x_msg_count,
3895       x_msg_data                     => x_msg_data,
3896       p_pxhv_rec                     => p_pxhv_rec);
3897     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3898       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3899     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3900       RAISE OKL_API.G_EXCEPTION_ERROR;
3901     END IF;
3902 
3903     -----------------------------------------
3904     -- Move VIEW record to "Child" records --
3905     -----------------------------------------
3906     migrate(l_def_pxhv_rec, l_pxh_rec);
3910     -----------------------------------------------
3907     migrate(l_def_pxhv_rec, l_pxhl_rec);
3908     -----------------------------------------------
3909     -- Call the UPDATE_ROW for each child record --
3911     update_row(
3912       p_init_msg_list,
3913       l_return_status,
3914       x_msg_count,
3915       x_msg_data,
3916       l_pxh_rec,
3917       lx_pxh_rec
3918     );
3919     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3920       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3921     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3922       RAISE OKL_API.G_EXCEPTION_ERROR;
3923     END IF;
3924     migrate(lx_pxh_rec, l_def_pxhv_rec);
3925     update_row(
3926       p_init_msg_list,
3927       l_return_status,
3928       x_msg_count,
3929       x_msg_data,
3930       l_pxhl_rec,
3931       lx_pxhl_rec
3932     );
3933     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3934       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3935     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3936       RAISE OKL_API.G_EXCEPTION_ERROR;
3937     END IF;
3938     migrate(lx_pxhl_rec, l_def_pxhv_rec);
3939     x_pxhv_rec := l_def_pxhv_rec;
3940     x_return_status := l_return_status;
3941     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3942   EXCEPTION
3943     WHEN OKL_API.G_EXCEPTION_ERROR THEN
3944       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3945       (
3946         l_api_name,
3947         G_PKG_NAME,
3948         'OKL_API.G_RET_STS_ERROR',
3949         x_msg_count,
3950         x_msg_data,
3951         '_PVT'
3952       );
3953     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3954       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3955       (
3956         l_api_name,
3957         G_PKG_NAME,
3958         'OKL_API.G_RET_STS_UNEXP_ERROR',
3959         x_msg_count,
3960         x_msg_data,
3961         '_PVT'
3962       );
3963     WHEN OTHERS THEN
3964       x_return_status := OKL_API.HANDLE_EXCEPTIONS
3965       (
3966         l_api_name,
3967         G_PKG_NAME,
3968         'OTHERS',
3969         x_msg_count,
3970         x_msg_data,
3971         '_PVT'
3972       );
3973   END update_row;
3974   ----------------------------------------
3975   -- PL/SQL TBL update_row for:pxhv_tbl --
3976   ----------------------------------------
3977   PROCEDURE update_row(
3978     p_api_version                  IN NUMBER,
3979     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3980     x_return_status                OUT NOCOPY VARCHAR2,
3981     x_msg_count                    OUT NOCOPY NUMBER,
3982     x_msg_data                     OUT NOCOPY VARCHAR2,
3983     p_pxhv_tbl                     IN pxhv_tbl_type,
3984     x_pxhv_tbl                     OUT NOCOPY pxhv_tbl_type,
3985     px_error_tbl                   IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
3986 
3987     l_api_version                  CONSTANT NUMBER := 1;
3988     l_api_name                     CONSTANT VARCHAR2(30) := 'V_error_tbl_update_row';
3989     i                              NUMBER := 0;
3990   BEGIN
3991     OKL_API.init_msg_list(p_init_msg_list);
3992     -- Make sure PL/SQL table has records in it before passing
3993     IF (p_pxhv_tbl.COUNT > 0) THEN
3994       i := p_pxhv_tbl.FIRST;
3995       LOOP
3996         DECLARE
3997           l_error_rec         OKL_API.ERROR_REC_TYPE;
3998         BEGIN
3999           l_error_rec.api_name := l_api_name;
4000           l_error_rec.api_package := G_PKG_NAME;
4001           l_error_rec.idx := i;
4002           update_row (
4003             p_api_version                  => p_api_version,
4004             p_init_msg_list                => OKL_API.G_FALSE,
4005             x_return_status                => l_error_rec.error_type,
4006             x_msg_count                    => l_error_rec.msg_count,
4007             x_msg_data                     => l_error_rec.msg_data,
4008             p_pxhv_rec                     => p_pxhv_tbl(i),
4009             x_pxhv_rec                     => x_pxhv_tbl(i));
4010           IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
4011             l_error_rec.sqlcode := SQLCODE;
4012             load_error_tbl(l_error_rec, px_error_tbl);
4013           ELSE
4014             x_msg_count := l_error_rec.msg_count;
4015             x_msg_data := l_error_rec.msg_data;
4016           END IF;
4017         EXCEPTION
4018           WHEN OKL_API.G_EXCEPTION_ERROR THEN
4019             l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
4020             l_error_rec.sqlcode := SQLCODE;
4021             load_error_tbl(l_error_rec, px_error_tbl);
4022           WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4023             l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
4024             l_error_rec.sqlcode := SQLCODE;
4025             load_error_tbl(l_error_rec, px_error_tbl);
4026           WHEN OTHERS THEN
4027             l_error_rec.error_type := 'OTHERS';
4028             l_error_rec.sqlcode := SQLCODE;
4029             load_error_tbl(l_error_rec, px_error_tbl);
4030         END;
4031         EXIT WHEN (i = p_pxhv_tbl.LAST);
4032         i := p_pxhv_tbl.NEXT(i);
4033       END LOOP;
4034     END IF;
4035     -- Loop through the error_tbl to find the error with the highest severity
4036     -- and return it.
4037     x_return_status := find_highest_exception(px_error_tbl);
4038     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4039   EXCEPTION
4040     WHEN OKL_API.G_EXCEPTION_ERROR THEN
4041       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4042       (
4043         l_api_name,
4044         G_PKG_NAME,
4045         'OKL_API.G_RET_STS_ERROR',
4046         x_msg_count,
4047         x_msg_data,
4048         '_PVT'
4049       );
4050     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4054         G_PKG_NAME,
4051       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4052       (
4053         l_api_name,
4055         'OKL_API.G_RET_STS_UNEXP_ERROR',
4056         x_msg_count,
4057         x_msg_data,
4058         '_PVT'
4059       );
4060     WHEN OTHERS THEN
4061       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4062       (
4063         l_api_name,
4064         G_PKG_NAME,
4065         'OTHERS',
4066         x_msg_count,
4067         x_msg_data,
4068         '_PVT'
4069       );
4070   END update_row;
4071 
4072   ----------------------------------------
4073   -- PL/SQL TBL update_row for:PXHV_TBL --
4074   ----------------------------------------
4075   PROCEDURE update_row(
4076     p_api_version                  IN NUMBER,
4077     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4078     x_return_status                OUT NOCOPY VARCHAR2,
4079     x_msg_count                    OUT NOCOPY NUMBER,
4080     x_msg_data                     OUT NOCOPY VARCHAR2,
4081     p_pxhv_tbl                     IN pxhv_tbl_type,
4082     x_pxhv_tbl                     OUT NOCOPY pxhv_tbl_type) IS
4083 
4084     l_api_version                  CONSTANT NUMBER := 1;
4085     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
4086     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4087     l_error_tbl                    OKL_API.ERROR_TBL_TYPE;
4088   BEGIN
4089     OKL_API.init_msg_list(p_init_msg_list);
4090     -- Make sure PL/SQL table has records in it before passing
4091     IF (p_pxhv_tbl.COUNT > 0) THEN
4092       update_row (
4093         p_api_version                  => p_api_version,
4094         p_init_msg_list                => OKL_API.G_FALSE,
4095         x_return_status                => x_return_status,
4096         x_msg_count                    => x_msg_count,
4097         x_msg_data                     => x_msg_data,
4098         p_pxhv_tbl                     => p_pxhv_tbl,
4099         x_pxhv_tbl                     => x_pxhv_tbl,
4100         px_error_tbl                   => l_error_tbl);
4101     END IF;
4102     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4103   EXCEPTION
4104     WHEN OKL_API.G_EXCEPTION_ERROR THEN
4105       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4106       (
4107         l_api_name,
4108         G_PKG_NAME,
4109         'OKL_API.G_RET_STS_ERROR',
4110         x_msg_count,
4111         x_msg_data,
4112         '_PVT'
4113       );
4114     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4115       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4116       (
4117         l_api_name,
4118         G_PKG_NAME,
4119         'OKL_API.G_RET_STS_UNEXP_ERROR',
4120         x_msg_count,
4121         x_msg_data,
4122         '_PVT'
4123       );
4124     WHEN OTHERS THEN
4125       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4126       (
4127         l_api_name,
4128         G_PKG_NAME,
4129         'OTHERS',
4130         x_msg_count,
4131         x_msg_data,
4132         '_PVT'
4133       );
4134   END update_row;
4135 
4136   ---------------------------------------------------------------------------
4137   -- PROCEDURE delete_row
4138   ---------------------------------------------------------------------------
4139   ------------------------------------------------
4140   -- delete_row for:OKL_EXT_AP_HEADER_SOURCES_B --
4141   ------------------------------------------------
4142   PROCEDURE delete_row(
4143     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4144     x_return_status                OUT NOCOPY VARCHAR2,
4145     x_msg_count                    OUT NOCOPY NUMBER,
4146     x_msg_data                     OUT NOCOPY VARCHAR2,
4147     p_pxh_rec                      IN pxh_rec_type) IS
4148 
4149     l_api_version                  CONSTANT NUMBER := 1;
4150     l_api_name                     CONSTANT VARCHAR2(30) := 'B_delete_row';
4151     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4152     l_pxh_rec                      pxh_rec_type := p_pxh_rec;
4153     l_row_notfound                 BOOLEAN := TRUE;
4154   BEGIN
4155     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
4156                                               p_init_msg_list,
4157                                               '_PVT',
4158                                               x_return_status);
4159     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4160       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4161     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4162       RAISE OKL_API.G_EXCEPTION_ERROR;
4163     END IF;
4164 
4165     DELETE FROM OKL_EXT_AP_HEADER_SOURCES_B
4166      WHERE HEADER_EXTENSION_ID = p_pxh_rec.header_extension_id;
4167 
4168     x_return_status := l_return_status;
4169     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4170   EXCEPTION
4171     WHEN OKL_API.G_EXCEPTION_ERROR THEN
4172       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4173       (
4174         l_api_name,
4175         G_PKG_NAME,
4176         'OKL_API.G_RET_STS_ERROR',
4177         x_msg_count,
4178         x_msg_data,
4179         '_PVT'
4180       );
4181     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4182       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4183       (
4184         l_api_name,
4185         G_PKG_NAME,
4186         'OKL_API.G_RET_STS_UNEXP_ERROR',
4187         x_msg_count,
4188         x_msg_data,
4189         '_PVT'
4190       );
4191     WHEN OTHERS THEN
4192       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4193       (
4194         l_api_name,
4195         G_PKG_NAME,
4196         'OTHERS',
4197         x_msg_count,
4198         x_msg_data,
4199         '_PVT'
4200       );
4204   -------------------------------------------------
4201   END delete_row;
4202   -------------------------------------------------
4203   -- delete_row for:OKL_EXT_AP_HEADER_SOURCES_TL --
4205   PROCEDURE delete_row(
4206     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4207     x_return_status                OUT NOCOPY VARCHAR2,
4208     x_msg_count                    OUT NOCOPY NUMBER,
4209     x_msg_data                     OUT NOCOPY VARCHAR2,
4210     p_pxhl_rec                     IN pxhl_rec_type) IS
4211 
4212     l_api_version                  CONSTANT NUMBER := 1;
4213     l_api_name                     CONSTANT VARCHAR2(30) := 'TL_delete_row';
4214     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4215     l_pxhl_rec                     pxhl_rec_type := p_pxhl_rec;
4216     l_row_notfound                 BOOLEAN := TRUE;
4217   BEGIN
4218     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
4219                                               p_init_msg_list,
4220                                               '_PVT',
4221                                               x_return_status);
4222     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4223       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4224     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4225       RAISE OKL_API.G_EXCEPTION_ERROR;
4226     END IF;
4227 
4228     DELETE FROM OKL_EXT_AP_HEADER_SOURCES_TL
4229      WHERE HEADER_EXTENSION_ID = p_pxhl_rec.header_extension_id;
4230 
4231     x_return_status := l_return_status;
4232     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4233   EXCEPTION
4234     WHEN OKL_API.G_EXCEPTION_ERROR THEN
4235       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4236       (
4237         l_api_name,
4238         G_PKG_NAME,
4239         'OKL_API.G_RET_STS_ERROR',
4240         x_msg_count,
4241         x_msg_data,
4242         '_PVT'
4243       );
4244     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4245       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4246       (
4247         l_api_name,
4248         G_PKG_NAME,
4249         'OKL_API.G_RET_STS_UNEXP_ERROR',
4250         x_msg_count,
4251         x_msg_data,
4252         '_PVT'
4253       );
4254     WHEN OTHERS THEN
4255       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4256       (
4257         l_api_name,
4258         G_PKG_NAME,
4259         'OTHERS',
4260         x_msg_count,
4261         x_msg_data,
4262         '_PVT'
4263       );
4264   END delete_row;
4265   ------------------------------------------------
4266   -- delete_row for:OKL_EXT_AP_HEADER_SOURCES_V --
4267   ------------------------------------------------
4268   PROCEDURE delete_row(
4269     p_api_version                  IN NUMBER,
4270     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4271     x_return_status                OUT NOCOPY VARCHAR2,
4272     x_msg_count                    OUT NOCOPY NUMBER,
4273     x_msg_data                     OUT NOCOPY VARCHAR2,
4274     p_pxhv_rec                     IN pxhv_rec_type) IS
4275 
4276     l_api_version                  CONSTANT NUMBER := 1;
4277     l_api_name                     CONSTANT VARCHAR2(30) := 'V_delete_row';
4278     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4279     l_pxhv_rec                     pxhv_rec_type := p_pxhv_rec;
4280     l_pxhl_rec                     pxhl_rec_type;
4281     l_pxh_rec                      pxh_rec_type;
4282   BEGIN
4283     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
4284                                               G_PKG_NAME,
4285                                               p_init_msg_list,
4286                                               l_api_version,
4287                                               p_api_version,
4288                                               '_PVT',
4289                                               x_return_status);
4290     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4291       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4292     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4293       RAISE OKL_API.G_EXCEPTION_ERROR;
4294     END IF;
4295     -----------------------------------------
4296     -- Move VIEW record to "Child" records --
4297     -----------------------------------------
4298     migrate(l_pxhv_rec, l_pxhl_rec);
4299     migrate(l_pxhv_rec, l_pxh_rec);
4300     -----------------------------------------------
4301     -- Call the DELETE_ROW for each child record --
4302     -----------------------------------------------
4303     delete_row(
4304       p_init_msg_list,
4305       l_return_status,
4306       x_msg_count,
4307       x_msg_data,
4308       l_pxhl_rec
4309     );
4310     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4311       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4312     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4313       RAISE OKL_API.G_EXCEPTION_ERROR;
4314     END IF;
4315     delete_row(
4316       p_init_msg_list,
4317       l_return_status,
4318       x_msg_count,
4319       x_msg_data,
4320       l_pxh_rec
4321     );
4322     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4323       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4324     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4325       RAISE OKL_API.G_EXCEPTION_ERROR;
4326     END IF;
4327     x_return_status := l_return_status;
4328     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4329   EXCEPTION
4330     WHEN OKL_API.G_EXCEPTION_ERROR THEN
4331       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4332       (
4333         l_api_name,
4334         G_PKG_NAME,
4335         'OKL_API.G_RET_STS_ERROR',
4336         x_msg_count,
4337         x_msg_data,
4338         '_PVT'
4339       );
4343         l_api_name,
4340     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4341       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4342       (
4344         G_PKG_NAME,
4345         'OKL_API.G_RET_STS_UNEXP_ERROR',
4346         x_msg_count,
4347         x_msg_data,
4348         '_PVT'
4349       );
4350     WHEN OTHERS THEN
4351       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4352       (
4353         l_api_name,
4354         G_PKG_NAME,
4355         'OTHERS',
4356         x_msg_count,
4357         x_msg_data,
4358         '_PVT'
4359       );
4360   END delete_row;
4361   -----------------------------------------------------------
4362   -- PL/SQL TBL delete_row for:OKL_EXT_AP_HEADER_SOURCES_V --
4363   -----------------------------------------------------------
4364   PROCEDURE delete_row(
4365     p_api_version                  IN NUMBER,
4366     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4367     x_return_status                OUT NOCOPY VARCHAR2,
4368     x_msg_count                    OUT NOCOPY NUMBER,
4369     x_msg_data                     OUT NOCOPY VARCHAR2,
4370     p_pxhv_tbl                     IN pxhv_tbl_type,
4371     px_error_tbl                   IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
4372 
4373     l_api_version                  CONSTANT NUMBER := 1;
4374     l_api_name                     CONSTANT VARCHAR2(30) := 'V_error_tbl_delete_row';
4375     i                              NUMBER := 0;
4376   BEGIN
4377     OKL_API.init_msg_list(p_init_msg_list);
4378     -- Make sure PL/SQL table has records in it before passing
4379     IF (p_pxhv_tbl.COUNT > 0) THEN
4380       i := p_pxhv_tbl.FIRST;
4381       LOOP
4382         DECLARE
4383           l_error_rec         OKL_API.ERROR_REC_TYPE;
4384         BEGIN
4385           l_error_rec.api_name := l_api_name;
4386           l_error_rec.api_package := G_PKG_NAME;
4387           l_error_rec.idx := i;
4388           delete_row (
4389             p_api_version                  => p_api_version,
4390             p_init_msg_list                => OKL_API.G_FALSE,
4391             x_return_status                => l_error_rec.error_type,
4392             x_msg_count                    => l_error_rec.msg_count,
4393             x_msg_data                     => l_error_rec.msg_data,
4394             p_pxhv_rec                     => p_pxhv_tbl(i));
4395           IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
4396             l_error_rec.sqlcode := SQLCODE;
4397             load_error_tbl(l_error_rec, px_error_tbl);
4398           ELSE
4399             x_msg_count := l_error_rec.msg_count;
4400             x_msg_data := l_error_rec.msg_data;
4401           END IF;
4402         EXCEPTION
4403           WHEN OKL_API.G_EXCEPTION_ERROR THEN
4404             l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
4405             l_error_rec.sqlcode := SQLCODE;
4406             load_error_tbl(l_error_rec, px_error_tbl);
4407           WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4408             l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
4409             l_error_rec.sqlcode := SQLCODE;
4410             load_error_tbl(l_error_rec, px_error_tbl);
4411           WHEN OTHERS THEN
4412             l_error_rec.error_type := 'OTHERS';
4413             l_error_rec.sqlcode := SQLCODE;
4414             load_error_tbl(l_error_rec, px_error_tbl);
4415         END;
4416         EXIT WHEN (i = p_pxhv_tbl.LAST);
4417         i := p_pxhv_tbl.NEXT(i);
4418       END LOOP;
4419     END IF;
4420     -- Loop through the error_tbl to find the error with the highest severity
4421     -- and return it.
4422     x_return_status := find_highest_exception(px_error_tbl);
4423     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4424   EXCEPTION
4425     WHEN OKL_API.G_EXCEPTION_ERROR THEN
4426       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4427       (
4428         l_api_name,
4429         G_PKG_NAME,
4430         'OKL_API.G_RET_STS_ERROR',
4431         x_msg_count,
4432         x_msg_data,
4433         '_PVT'
4434       );
4435     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4436       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4437       (
4438         l_api_name,
4439         G_PKG_NAME,
4440         'OKL_API.G_RET_STS_UNEXP_ERROR',
4441         x_msg_count,
4442         x_msg_data,
4443         '_PVT'
4444       );
4445     WHEN OTHERS THEN
4446       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4447       (
4448         l_api_name,
4449         G_PKG_NAME,
4450         'OTHERS',
4451         x_msg_count,
4452         x_msg_data,
4453         '_PVT'
4454       );
4455   END delete_row;
4456 
4457   -----------------------------------------------------------
4458   -- PL/SQL TBL delete_row for:OKL_EXT_AP_HEADER_SOURCES_V --
4459   -----------------------------------------------------------
4460   PROCEDURE delete_row(
4461     p_api_version                  IN NUMBER,
4462     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4463     x_return_status                OUT NOCOPY VARCHAR2,
4464     x_msg_count                    OUT NOCOPY NUMBER,
4465     x_msg_data                     OUT NOCOPY VARCHAR2,
4466     p_pxhv_tbl                     IN pxhv_tbl_type) IS
4467 
4468     l_api_version                  CONSTANT NUMBER := 1;
4469     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
4470     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4471     l_error_tbl                    OKL_API.ERROR_TBL_TYPE;
4472   BEGIN
4473     OKL_API.init_msg_list(p_init_msg_list);
4474     -- Make sure PL/SQL table has records in it before passing
4475     IF (p_pxhv_tbl.COUNT > 0) THEN
4476       delete_row (
4477         p_api_version                  => p_api_version,
4478         p_init_msg_list                => OKL_API.G_FALSE,
4482         p_pxhv_tbl                     => p_pxhv_tbl,
4479         x_return_status                => x_return_status,
4480         x_msg_count                    => x_msg_count,
4481         x_msg_data                     => x_msg_data,
4483         px_error_tbl                   => l_error_tbl);
4484     END IF;
4485     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4486   EXCEPTION
4487     WHEN OKL_API.G_EXCEPTION_ERROR THEN
4488       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4489       (
4490         l_api_name,
4491         G_PKG_NAME,
4492         'OKL_API.G_RET_STS_ERROR',
4493         x_msg_count,
4494         x_msg_data,
4495         '_PVT'
4496       );
4497     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4498       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4499       (
4500         l_api_name,
4501         G_PKG_NAME,
4502         'OKL_API.G_RET_STS_UNEXP_ERROR',
4503         x_msg_count,
4504         x_msg_data,
4505         '_PVT'
4506       );
4507     WHEN OTHERS THEN
4508       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4509       (
4510         l_api_name,
4511         G_PKG_NAME,
4512         'OTHERS',
4513         x_msg_count,
4514         x_msg_data,
4515         '_PVT'
4516       );
4517   END delete_row;
4518 
4519   ---------------------------------------------------------------------------
4520   -- PROCEDURE insert_row
4521   ---------------------------------------------------------------------------
4522   -- Added for Bug# 6268782 : PRASJAIN
4523   -------------------------------------------------
4524   -- insert_row for:OKL_EXT_AP_HEADER_SOURCES_B  --
4525   -- insert_row for:OKL_EXT_AP_HEADER_SOURCES_TL --
4526   -------------------------------------------------
4527   PROCEDURE insert_row(
4528     p_api_version                  IN NUMBER,
4529     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4530     x_return_status                OUT NOCOPY  VARCHAR2,
4531     x_msg_count                    OUT NOCOPY  NUMBER,
4532     x_msg_data                     OUT NOCOPY  VARCHAR2,
4533     p_pxh_rec                      IN pxh_rec_type,
4534     p_pxhl_tbl                     IN pxhl_tbl_type,
4535     x_pxh_rec                      OUT NOCOPY pxh_rec_type,
4536     x_pxhl_tbl                     OUT NOCOPY pxhl_tbl_type) IS
4537 
4538     l_api_version                  CONSTANT NUMBER := 1;
4539     l_api_name                     CONSTANT VARCHAR2(30) := 'B_TL_insert_row';
4540     l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4541 
4542     l_pxh_rec                      pxh_rec_type := p_pxh_rec;
4543     l_def_pxh_rec                  pxh_rec_type;
4544     lx_pxh_rec                     pxh_rec_type;
4545 
4546     l_pxhl_tbl                     pxhl_tbl_type := p_pxhl_tbl;
4547     lx_pxhl_tbl                    pxhl_tbl_type;
4548 
4549     idx                            NUMBER := 0;
4550     -------------------------------
4551     -- FUNCTION fill_who_columns --
4552     -------------------------------
4553     FUNCTION fill_who_columns (
4554       p_pxh_rec IN pxh_rec_type
4555     ) RETURN pxh_rec_type IS
4556       l_pxh_rec pxh_rec_type := p_pxh_rec;
4557     BEGIN
4558       l_pxh_rec.CREATION_DATE := SYSDATE;
4559       l_pxh_rec.CREATED_BY := FND_GLOBAL.USER_ID;
4560       l_pxh_rec.LAST_UPDATE_DATE := l_pxh_rec.CREATION_DATE;
4561       l_pxh_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
4562       l_pxh_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
4563       RETURN(l_pxh_rec);
4564     END fill_who_columns;
4565     ----------------------------------------------------
4566     -- Set_Attributes for:OKL_EXT_AP_HEADER_SOURCES_B --
4567     ----------------------------------------------------
4568     FUNCTION Set_Attributes (
4569       p_pxh_rec IN pxh_rec_type,
4570       x_pxh_rec OUT NOCOPY pxh_rec_type
4571     ) RETURN VARCHAR2 IS
4572       l_return_status                VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4573     BEGIN
4574       x_pxh_rec := p_pxh_rec;
4575       x_pxh_rec.OBJECT_VERSION_NUMBER := 1;
4576       RETURN(l_return_status);
4577     END Set_Attributes;
4578   BEGIN
4579     l_return_status := OKL_API.START_ACTIVITY(l_api_name,
4580                                               G_PKG_NAME,
4581                                               p_init_msg_list,
4582                                               l_api_version,
4583                                               p_api_version,
4584                                               '_PVT',
4585                                               x_return_status);
4586     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4587       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4588     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4589       RAISE OKL_API.G_EXCEPTION_ERROR;
4590     END IF;
4591     -- Set primary key value
4592     l_pxh_rec.HEADER_EXTENSION_ID := get_seq_id;
4593     -- Setting item attributes
4594     l_return_Status := Set_Attributes(
4595       l_pxh_rec,                        -- IN
4596       l_def_pxh_rec);                   -- OUT
4597     --- If any errors happen abort API
4598     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4599       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4600     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4601       RAISE OKL_API.G_EXCEPTION_ERROR;
4602     END IF;
4603     l_def_pxh_rec := fill_who_columns(l_def_pxh_rec);
4604     l_pxh_rec := l_def_pxh_rec;
4605     -----------------------------------------------
4606     -- Call the INSERT_ROW for each child record --
4607     -----------------------------------------------
4608     insert_row(
4609       p_init_msg_list,
4610       l_return_status,
4611       x_msg_count,
4612       x_msg_data,
4613       l_pxh_rec,
4614       lx_pxh_rec
4615     );
4616     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4617       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4618     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4619       RAISE OKL_API.G_EXCEPTION_ERROR;
4620     END IF;
4621     -- Looping header translatable sources for insert
4622     FOR idx in p_pxhl_tbl.FIRST .. p_pxhl_tbl.LAST
4623     LOOP
4624       -- Set foreign key value
4625       l_pxhl_tbl(idx).header_extension_id := lx_pxh_rec.header_extension_id;
4626       -- Filling who columns
4627       l_pxhl_tbl(idx).CREATION_DATE := SYSDATE;
4628       l_pxhl_tbl(idx).CREATED_BY := FND_GLOBAL.USER_ID;
4629       l_pxhl_tbl(idx).LAST_UPDATE_DATE := l_pxhl_tbl(idx).CREATION_DATE;
4630       l_pxhl_tbl(idx).LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
4631       l_pxhl_tbl(idx).LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
4632       insert_row(
4633         p_init_msg_list,
4634         l_return_status,
4635         x_msg_count,
4636         x_msg_data,
4637         l_pxhl_tbl(idx),
4638         lx_pxhl_tbl(idx)
4639       );
4640     END LOOP;
4641     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4642       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4643     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4644       RAISE OKL_API.G_EXCEPTION_ERROR;
4645     END IF;
4646     -- Set OUT values
4647     x_pxh_rec       := lx_pxh_rec;
4648     x_pxhl_tbl      := lx_pxhl_tbl;
4649     x_return_status := l_return_status;
4650     OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4651   EXCEPTION
4652     WHEN OKL_API.G_EXCEPTION_ERROR THEN
4653       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4654       (
4655         l_api_name,
4656         G_PKG_NAME,
4657         'OKL_API.G_RET_STS_ERROR',
4658         x_msg_count,
4659         x_msg_data,
4660         '_PVT'
4661       );
4662     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4663       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4664       (
4665         l_api_name,
4666         G_PKG_NAME,
4667         'OKL_API.G_RET_STS_UNEXP_ERROR',
4668         x_msg_count,
4669         x_msg_data,
4670         '_PVT'
4671       );
4672     WHEN OTHERS THEN
4673       x_return_status := OKL_API.HANDLE_EXCEPTIONS
4674       (
4675         l_api_name,
4676         G_PKG_NAME,
4677         'OTHERS',
4678         x_msg_count,
4679         x_msg_data,
4680         '_PVT'
4681       );
4682   END insert_row;
4683 END OKL_PXH_PVT;