DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSI_ITEM_INSTANCE_GRP

Source


1 PACKAGE BODY CSI_ITEM_INSTANCE_GRP AS
2 /* $Header: csigiib.pls 120.37.12020000.5 2012/11/01 19:30:42 rasraja ship $ */
3 
4 -- --------------------------------------------------------
5 -- Define global variables
6 -- --------------------------------------------------------
7 
8 G_PKG_NAME CONSTANT VARCHAR2(30)  := 'CSI_ITEM_INSTANCE_GRP';
9 G_FILE_NAME CONSTANT VARCHAR2(12) := 'csigiib.pls';
10 
11 /*----------------------------------------------------*/
12 /* Procedure name: Update_Interface_table             */
13 /* Description :   procedure for Updating the error   */
14 /*                 text in the Interface Table        */
15 /*----------------------------------------------------*/
16 
17 PROCEDURE Update_Interface_Table
18                      ( p_intf_id       NUMBER,
19                        p_intf_table    VARCHAR2,
20                        p_intf_col_name VARCHAR2,
21                        p_error_text    VARCHAR2,
22                        p_status        VARCHAR2,
23                        p_instance_id   NUMBER
24                       )
25 IS
26 --
27    v_upd_stmt         VARCHAR2(2000);
28    v_cursor_handle    INTEGER := dbms_sql.open_cursor;
29    v_num_of_rows      NUMBER;
30 BEGIN
31    v_upd_stmt := 'UPDATE '||p_intf_table||' SET ERROR_TEXT = :l_error_text'
32                           ||' ,PROCESS_STATUS = :l_status'
33                           ||' ,INSTANCE_ID = :l_instance_id'
34         		  ||' WHERE '||p_intf_col_name||' = :l_intf_id';
35    dbms_sql.parse(v_cursor_handle,v_upd_stmt,dbms_sql.NATIVE);
36    dbms_sql.bind_variable(v_cursor_handle,':l_error_text',p_error_text);
37    dbms_sql.bind_variable(v_cursor_handle,':l_status',p_status);
38    dbms_sql.bind_variable(v_cursor_handle,':l_instance_id',p_instance_id);
39    dbms_sql.bind_variable(v_cursor_handle,':l_intf_id',p_intf_id);
40    v_num_of_rows := dbms_sql.execute(v_cursor_handle);
41    dbms_sql.close_cursor(v_cursor_handle);
42 EXCEPTION
43    WHEN OTHERS THEN
44       NULL;
45 END Update_Interface_Table;
46 --
47 FUNCTION Valid_Lot_Number
48    ( p_instance_rec      IN csi_datastructures_pub.instance_rec,
49      p_instance_tbl      IN OUT NOCOPY csi_datastructures_pub.instance_tbl
50    ) RETURN BOOLEAN IS
51    --
52    l_lot_type           NUMBER;
53    l_temp               VARCHAR2(1);
54    l_return_value       BOOLEAN;
55 BEGIN
56    l_return_value := TRUE;
57    --
58    -- Lot Number uniqueness
59    ------------------------
60    -- 1 - Across Items
61    -- 2 - None
62    BEGIN
63       SELECT lot_number_uniqueness -- Lot number uniqueness
64       INTO   l_lot_type
65       FROM   mtl_parameters
66       WHERE  organization_id = p_instance_rec.vld_organization_id;
67    EXCEPTION
68       WHEN no_data_found THEN
69          l_return_value  := FALSE;
70          fnd_message.set_name('CSI','CSI_NO_ORG_SET');
71          fnd_message.set_token('ORGANIZATION_ID',p_instance_rec.vld_organization_id);
72          fnd_msg_pub.add;
73          RETURN l_return_value;
74    END;
75    --
76    l_temp := NULL;
77    --
78    IF l_lot_type = 1 THEN
79       -- Check some other item in this batch has the same lot number
80       FOR j IN p_instance_tbl.FIRST .. p_instance_tbl.LAST LOOP
81          IF p_instance_tbl.EXISTS(j) THEN
82             IF p_instance_rec.inventory_item_id <> p_instance_tbl(j).inventory_item_id AND
83                p_instance_rec.lot_number = p_instance_tbl(j).lot_number AND
84                nvl(p_instance_tbl(j).processed_flag,'N') <> 'E' AND
85                p_instance_rec.interface_id <> p_instance_tbl(j).interface_id THEN
86                l_temp := 'x';
87                exit;
88             END IF;
89          END IF;
90       END LOOP;
91       --
92       IF l_temp IS NOT NULL THEN
93          l_return_value  := FALSE;
94          fnd_message.set_name('CSI','CSI_LOT_CASE2');
95          fnd_message.set_token('LOT_NUMBER',p_instance_rec.lot_number);
96          fnd_msg_pub.add;
97          RETURN l_return_value;
98       END IF;
99    END IF;
100    --
101    RETURN l_return_value;
102 END Valid_Lot_Number;
103 --
104 FUNCTION Valid_Serial_Number
105    ( p_instance_rec      IN csi_datastructures_pub.instance_rec,
106      p_instance_tbl      IN OUT NOCOPY csi_datastructures_pub.instance_tbl,
107      p_inst_tab_row      IN NUMBER := -1  --bug 9227016
108    ) RETURN BOOLEAN IS
109    --
110    l_serial_type        NUMBER;
111    l_temp               VARCHAR2(1);
112    l_base_item_id       NUMBER;
113    l_return_value       BOOLEAN;
114    l_count              NUMBER;
115    --
116 BEGIN
117    l_return_value := TRUE;
118    --
119    BEGIN
120       SELECT serial_number_type -- serial number uniqueness control
121       INTO   l_serial_type
122       FROM   mtl_parameters
123       WHERE  organization_id = p_instance_rec.vld_organization_id;
124    EXCEPTION
125       WHEN no_data_found THEN
126          l_return_value  := FALSE;
127          fnd_message.set_name('CSI','CSI_NO_ORG_SET');
128          fnd_message.set_token('ORGANIZATION_ID',p_instance_rec.vld_organization_id);
129          fnd_msg_pub.add;
130          RETURN l_return_value;
131    END;
132    --
133    l_temp := NULL;
134    --
135    IF l_serial_type = 1 THEN
136       l_base_item_id := NULL;
137       Begin
138          select base_item_id
139          into l_base_item_id
140          from MTL_SYSTEM_ITEMS_B
141          where inventory_item_id = p_instance_rec.inventory_item_id
142          and   organization_id = p_instance_rec.vld_organization_id;
143       Exception
144          when no_data_found then
145             l_return_value  := FALSE;
146             FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ITEM');
147             FND_MESSAGE.SET_TOKEN('INVENTORY_ITEM_ID',p_instance_rec.inventory_item_id);
148             FND_MESSAGE.SET_TOKEN('INVENTORY_ORGANIZATION_ID',p_instance_rec.vld_organization_id);
149             FND_MSG_PUB.Add;
150             RETURN l_return_value;
151       End;
152       --
153       FOR j IN p_instance_tbl.FIRST .. p_instance_tbl.LAST LOOP
154          IF p_instance_tbl.EXISTS(j) THEN
155             IF p_instance_tbl(j).interface_id <> p_instance_rec.interface_id
156 	    OR  j <> p_inst_tab_row -- bug 9227016
157 	    THEN -- ignoring the current
158                IF p_instance_tbl(j).serial_number = p_instance_rec.serial_number AND
159                   nvl(p_instance_tbl(j).processed_flag,'N') <> 'E' THEN
160                   IF p_instance_tbl(j).inventory_item_id = p_instance_rec.inventory_item_id THEN
161                      l_temp := '1'; -- Fundamental uniqueness violated
162                      exit;
163                   ELSE -- Uniqueness within Model
164                      l_count := 0;
165                      IF l_base_item_id IS NOT NULL THEN
166                         Begin
167                            select 1
168                            into l_count
169                            from dual
170                            where exists (select 'x' from mtl_system_items_b msi
171                                          where msi.base_item_id = l_base_item_id
172                                          and   msi.inventory_item_id = p_instance_tbl(j).inventory_item_id);
173                         Exception
174                            when no_data_found then
175                               l_count := 0;
176                            when too_many_rows then
177                               l_count := 1;
178                         End;
179                         IF nvl(l_count,0) > 0 THEN
180                            l_temp := '4';
181                            exit;
182                         END IF;
183                      END IF; -- Base Model exists
184                   END IF;
185                END IF; -- Same srl# check
186             END IF; -- current check
187          END IF; -- exists
188       END LOOP;
189       --
190       IF nvl(l_temp,'0') = '1' THEN
191          l_return_value  := FALSE;
192          fnd_message.set_name('CSI','CSI_SER_CASE1');
193          fnd_message.set_token('SERIAL_NUMBER',p_instance_rec.serial_number);
194          fnd_msg_pub.add;
195          RETURN l_return_value;
196       ELSIF nvl(l_temp,'0') = '4' THEN
197          l_return_value  := FALSE;
198          fnd_message.set_name('CSI','CSI_SER_CASE4');
199          fnd_message.set_token('SERIAL_NUMBER',p_instance_rec.serial_number);
200          fnd_msg_pub.add;
201          RETURN l_return_value;
202       END IF;
203    END IF; -- Serial Type 1
204    --
205    IF l_serial_type = 4 THEN
206       FOR j IN p_instance_tbl.FIRST .. p_instance_tbl.LAST LOOP
207          IF p_instance_tbl.EXISTS(j) THEN
208             IF p_instance_rec.inventory_item_id = p_instance_tbl(j).inventory_item_id AND
209                p_instance_rec.serial_number = p_instance_tbl(j).serial_number AND
210                nvl(p_instance_tbl(j).processed_flag,'N') <> 'E' AND
211                p_instance_rec.interface_id <> p_instance_tbl(j).interface_id THEN
212                l_temp := 'x';
213                exit;
214             END IF;
215          END IF;
216       END LOOP;
217       IF l_temp IS NOT NULL THEN
218          l_return_value  := FALSE;
222          RETURN l_return_value;
219          fnd_message.set_name('CSI','CSI_SER_CASE1');
220          fnd_message.set_token('SERIAL_NUMBER',p_instance_rec.serial_number);
221          fnd_msg_pub.add;
223       END IF;
224    END IF; -- serial_type 4
225    --
226    IF l_serial_type = 2 THEN
227       FOR j IN p_instance_tbl.FIRST .. p_instance_tbl.LAST LOOP
228          IF p_instance_tbl.EXISTS(j) THEN
229             IF p_instance_rec.serial_number = p_instance_tbl(j).serial_number AND
230                p_instance_rec.vld_organization_id = p_instance_tbl(j).vld_organization_id AND
231                nvl(p_instance_tbl(j).processed_flag,'N') <> 'E' AND
232                p_instance_rec.interface_id <> p_instance_tbl(j).interface_id THEN
233                l_temp := 'x';
234                exit;
235             END IF;
236          END IF;
237       END LOOP;
238       IF l_temp IS NOT NULL THEN
239          l_return_value  := FALSE;
240          fnd_message.set_name('CSI','CSI_SER_CASE2');
241          fnd_message.set_token('SERIAL_NUMBER',p_instance_rec.serial_number);
242          fnd_msg_pub.add;
243          RETURN l_return_value;
244       END IF;
245       --
246       -- Also check if it has been already defined as
247       -- unique serial number accross organizations i.e entire system
248       BEGIN
249          SELECT 'x'
250          INTO   l_temp
251          FROM   mtl_serial_numbers s,
252                 mtl_parameters p
253          WHERE  s.current_organization_id = p.organization_id
254          AND    s.serial_number = p_instance_rec.serial_number
255          AND    p.serial_number_type = 3
256          AND    ROWNUM = 1;
257          IF l_temp IS NOT NULL THEN
258             l_return_value  := FALSE;
259             fnd_message.set_name('CSI','CSI_SER_CASE21');
260             fnd_message.set_token('SERIAL_NUMBER',p_instance_rec.serial_number);
261             fnd_msg_pub.add;
262             RETURN l_return_value;
263          END IF;
264       EXCEPTION
265          WHEN OTHERS THEN
266             l_return_value  := TRUE;
267       END;
268    END IF; -- serial_type 2
269    --
270    IF l_serial_type = 3 THEN
271       FOR j IN p_instance_tbl.FIRST .. p_instance_tbl.LAST LOOP
272          IF p_instance_tbl.EXISTS(j) THEN
273             IF p_instance_rec.serial_number = p_instance_tbl(j).serial_number AND
274                nvl(p_instance_tbl(j).processed_flag,'N') <> 'E' AND
275                p_instance_rec.interface_id <> p_instance_tbl(j).interface_id THEN
276                l_temp := 'x';
277                exit;
278             END IF;
279          END IF;
280       END LOOP;
281       IF l_temp IS NOT NULL THEN
282          l_return_value  := FALSE;
283          fnd_message.set_name('CSI','CSI_SER_CASE3');
284          fnd_message.set_token('SERIAL_NUMBER',p_instance_rec.serial_number);
285          fnd_msg_pub.add;
286          RETURN l_return_value;
287       END IF;
288    END IF; -- serial_type 3
289    --
290    RETURN l_return_value;
291 END Valid_Serial_Number;
292 --
293 FUNCTION Check_Inst_Party_Rules
294    (
295      p_party_tbl         IN csi_datastructures_pub.party_tbl
296     ,p_party_rec         IN csi_datastructures_pub.party_rec
297     ,p_start_date        IN DATE  -- Instance start date
298     ,p_end_date          IN DATE  -- Instance end date
299    ) RETURN BOOLEAN IS
300    --
301    l_party_rec         csi_datastructures_pub.party_rec := p_party_rec;
302    l_party_tbl         csi_datastructures_pub.party_tbl := p_party_tbl;
303    l_count             NUMBER := 0;
304    l_primary_pty_count NUMBER := 0;
305    l_primary_con_count NUMBER := 0;
306    l_return_status BOOLEAN;
307 BEGIN
308    l_return_status := TRUE;
309    --
310    IF l_party_rec.active_end_date IS NOT NULL AND
311       l_party_rec.active_end_date <> FND_API.G_MISS_DATE THEN
312       IF TRUNC(l_party_rec.active_start_date,'MI')  > TRUNC(l_party_rec.active_end_date,'MI') THEN --Changed to trunc for bug 9756224
313          l_return_status  := FALSE;
314          FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_PTY_START_DATE');
315          FND_MESSAGE.SET_TOKEN('ACTIVE_START_DATE',l_party_rec.active_start_date);
316          FND_MSG_PUB.ADD;
317          RETURN l_return_status;
318       END IF;
319       --
320       IF ( (TRUNC(l_party_rec.active_end_date,'MI') < TRUNC(SYSDATE,'MI')) OR
321            (p_end_date IS NOT NULL AND TRUNC(l_party_rec.active_end_date,'MI') > TRUNC(p_end_date,'MI'))) THEN --Changed to trunc for bug 9756224
322          l_return_status  := FALSE;
323          FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_PTY_END_DATE');
324          FND_MESSAGE.SET_TOKEN('ACTIVE_END_DATE',l_party_rec.active_end_date);
325          FND_MSG_PUB.ADD;
326          RETURN l_return_status;
327       END IF;
328    END IF;
329    --
330    IF ( (TRUNC(l_party_rec.active_start_date,'MI') < TRUNC( p_start_date,'MI')) OR
331         (p_end_date IS NOT NULL AND p_end_date <> FND_API.G_MISS_DATE AND TRUNC(l_party_rec.active_start_date,'MI') > TRUNC(p_end_date,'MI')) ) THEN --Changed to trunc for bug 9756224
332          l_return_status  := FALSE;
333          FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_PTY_START_DATE');
334          FND_MESSAGE.SET_TOKEN('ACTIVE_START_DATE',l_party_rec.active_start_date);
335          FND_MSG_PUB.ADD;
336          RETURN l_return_status;
337    END IF;
338    IF l_party_tbl.count < 2 THEN
339       l_return_status := TRUE;
340       RETURN l_return_status;
341    END IF;
342    --
343    IF l_party_rec.contact_flag IS NULL OR
344       l_party_rec.contact_flag = FND_API.G_MISS_CHAR THEN
345       l_party_rec.contact_flag := 'N';
346    END IF;
347    --
348    IF l_party_rec.contact_ip_id IS NULL OR
349       l_party_rec.contact_ip_id = FND_API.G_MISS_NUM THEN
350       l_party_rec.contact_ip_id := -9999;
351    END IF;
352    --
353    IF l_party_rec.PREFERRED_FLAG = 'Y' THEN
354       IF l_party_rec.CONTACT_FLAG <> 'Y' THEN
355          IF l_party_rec.PARTY_SOURCE_TABLE NOT IN ('GROUP','TEAM') THEN
356             l_return_status := FALSE;
357             FND_MESSAGE.SET_NAME('CSI','CSI_PREFERRED_PTY_TYPE');
358             FND_MESSAGE.SET_TOKEN('PARTY_TYPE',l_party_rec.PARTY_SOURCE_TABLE);
359             FND_MESSAGE.SET_TOKEN('INSTANCE_ID',l_party_rec.INSTANCE_ID);
360             FND_MSG_PUB.ADD;
361             RETURN l_return_status;
362          END IF;
363       END IF;
364    END IF;
365    --
366    FOR pty_row in l_party_tbl.FIRST .. l_party_tbl.LAST LOOP
367       IF l_party_tbl(pty_row).contact_flag IS NULL OR
368          l_party_tbl(pty_row).contact_flag = FND_API.G_MISS_CHAR THEN
369          l_party_tbl(pty_row).contact_flag := 'N';
370       END IF;
371       --
372       IF l_party_tbl(pty_row).contact_ip_id IS NULL OR
373          l_party_tbl(pty_row).contact_ip_id = FND_API.G_MISS_NUM THEN
374          l_party_tbl(pty_row).contact_ip_id := -9999;
375       END IF;
376       --
377       IF l_party_tbl(pty_row).party_source_table = l_party_rec.party_source_table AND
378          l_party_tbl(pty_row).party_id = l_party_rec.party_id AND
379          l_party_tbl(pty_row).relationship_type_code = l_party_rec.relationship_type_code AND
380          l_party_tbl(pty_row).contact_flag = l_party_rec.contact_flag AND
381          l_party_tbl(pty_row).contact_parent_tbl_index = l_party_rec.contact_parent_tbl_index THEN
382          l_count := l_count + 1;
383       END IF;
384       --
385       IF l_party_rec.primary_flag = 'Y' THEN
386          IF l_party_rec.contact_flag <> 'Y' THEN
387             IF l_party_rec.party_source_table NOT IN ('GROUP','TEAM') THEN
388                l_return_status := FALSE;
389                FND_MESSAGE.SET_NAME('CSI','CSI_PRIMARY_PTY_TYPE');
390                FND_MESSAGE.SET_TOKEN('PARTY_TYPE',l_party_rec.PARTY_SOURCE_TABLE);
391                FND_MESSAGE.SET_TOKEN('INSTANCE_ID',l_party_rec.INSTANCE_ID);
392                FND_MSG_PUB.ADD;
393                exit;
394             ELSE
395               -- Check for Primary Party
396               IF l_party_tbl(pty_row).primary_flag = 'Y' AND
397                  l_party_tbl(pty_row).contact_flag <>'Y' AND
398                  l_party_tbl(pty_row).relationship_type_code = l_party_rec.relationship_type_code THEN
399                  l_primary_pty_count := l_primary_pty_count + 1;
400               END IF;
401             END IF;
402          ELSE
403             -- check for Primary contact party
404             IF l_party_tbl(pty_row).primary_flag = 'Y' AND
405                l_party_tbl(pty_row).contact_flag = 'Y' AND
406                l_party_tbl(pty_row).contact_parent_tbl_index = l_party_rec.contact_parent_tbl_index AND
407                l_party_tbl(pty_row).relationship_type_code = l_party_rec.relationship_type_code THEN
408                l_primary_con_count := l_primary_con_count + 1;
409             END IF;
410          END IF;
411       END IF;
412    END LOOP;
413    --
414    IF l_count > 1 THEN
415       l_return_status := FALSE;
416       FND_MESSAGE.SET_NAME('CSI','CSI_API_MANY_PTY_REL_COM_EXIST');
417       FND_MESSAGE.SET_TOKEN('PARTY_REL_COMB',to_char(l_party_rec.INSTANCE_ID)||','||l_party_rec.PARTY_SOURCE_TABLE||','||to_char(l_party_rec.party_id)||','||l_party_rec.relationship_type_code);
418       FND_MSG_PUB.ADD;
419       RETURN l_return_status;
420    END IF;
421    --
422    IF l_primary_pty_count > 1 OR
423       l_primary_con_count > 1 THEN
424       l_return_status := FALSE;
425       FND_MESSAGE.SET_NAME('CSI','CSI_API_PRIMARY_PTY_EXISTS');
426       FND_MESSAGE.SET_TOKEN('INSTANCE_ID',l_party_rec.INSTANCE_ID);
427       FND_MESSAGE.SET_TOKEN('RELATIONSHIP_TYPE',l_party_rec.relationship_type_code);
428       FND_MSG_PUB.ADD;
429       RETURN l_return_status;
430    END IF;
431    --
432    RETURN l_return_status;
433 END Check_Inst_Party_Rules;
434 --
435 FUNCTION Check_Party_Acct_Rules
436    (
437      p_account_tbl           IN csi_datastructures_pub.party_account_tbl
438     ,p_account_rec           IN csi_datastructures_pub.party_account_rec
439     ,p_pty_src_table         IN VARCHAR2
440     ,p_party_id              IN NUMBER
441     ,p_acct_id_tbl           IN OUT NOCOPY  csi_party_relationships_pvt.acct_id_tbl
442     ,p_start_date            IN DATE -- Instance Party Start Date
443     ,p_end_date              IN DATE -- Instance Party End Date
444    ) RETURN BOOLEAN IS
445    --
446    l_return_status       BOOLEAN;
447    l_count               NUMBER := 0;
448    l_rel_count           NUMBER := 0;
449    l_exists              VARCHAR2(1);
450    l_exists_flag         VARCHAR2(1);
451    l_valid_flag          VARCHAR2(1);
452    l_ctr                 NUMBER;
453 BEGIN
454    l_return_status := TRUE;
455    --
456    IF p_account_rec.active_end_date IS NOT NULL AND
457       p_account_rec.active_end_date <> FND_API.G_MISS_DATE THEN
461          FND_MESSAGE.SET_TOKEN('ACTIVE_START_DATE',p_account_rec.active_start_date);
458       IF TRUNC(p_account_rec.active_start_date,'MI') > TRUNC(p_account_rec.active_end_date,'MI') THEN --Changed to trunc for bug 9756224
459          l_return_status := FALSE;
460          FND_MESSAGE.SET_NAME('CSI','CSI_API_INV_ACCT_START_DATE');
462          FND_MSG_PUB.ADD;
463          RETURN l_return_status;
464       END IF;
465       --
466       IF ( (TRUNC(p_account_rec.active_end_date,'MI') < TRUNC(SYSDATE,'MI')) OR
467            (p_end_date IS NOT NULL AND TRUNC(p_account_rec.active_end_date,'MI') > TRUNC(p_end_date,'MI')) ) THEN --Changed to trunc for bug 9756224
468          l_return_status  := FALSE;
469          FND_MESSAGE.SET_NAME('CSI','CSI_API_INV_ACCT_END_DATE');
470          FND_MESSAGE.SET_TOKEN('ACTIVE_END_DATE',p_account_rec.active_end_date);
471          FND_MSG_PUB.ADD;
472          RETURN l_return_status;
473       END IF;
474    END IF;
475    --
476    IF ( (TRUNC(p_account_rec.active_start_date,'MI') < TRUNC(p_start_date,'MI')) OR
477         (p_end_date IS NOT NULL AND p_end_date <> FND_API.G_MISS_DATE AND TRUNC(p_account_rec.active_start_date,'MI') > TRUNC(p_end_date,'MI')) ) THEN --Changed to trunc for bug 9756224
478       l_return_status := FALSE;
479       FND_MESSAGE.SET_NAME('CSI','CSI_API_INV_ACCT_START_DATE');
480       FND_MESSAGE.SET_TOKEN('ACTIVE_START_DATE',p_account_rec.active_start_date);
481       FND_MSG_PUB.ADD;
482       RETURN l_return_status;
483    END IF;
484    --
485  /****  IF p_pty_src_table = 'HZ_PARTIES' AND
486       p_account_rec.relationship_type_code = 'OWNER' THEN
487       Begin
488          select 'x'
489          into l_exists
490          from HZ_PARTIES hzp
491              ,HZ_CUST_ACCOUNTS hzc
492          where hzc.cust_account_id = p_account_rec.party_account_id
493          and   hzc.party_id = p_party_id
494          and   hzc.party_id = hzp.party_id;
495       Exception
496          when others then
497             l_return_status := FALSE;
498             FND_MESSAGE.SET_NAME('CSI','CSI_API_PTY_ACCT_HZ_PTY');
499             FND_MESSAGE.SET_TOKEN('PARTY_ACCOUNT_ID',p_account_rec.party_account_id);
500             FND_MESSAGE.SET_TOKEN('PARTY_ID',p_party_id);
501             RETURN l_return_status;
502       End;
503    ELSE
504       Begin
505          select 'x'
506          into l_exists
507          from HZ_CUST_ACCOUNTS hzc
508          where hzc.cust_account_id = p_account_rec.party_account_id;
509       Exception
510          when others then
511             l_return_status := FALSE;
512             FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_PTY_ACCT_ID');
513             FND_MESSAGE.SET_TOKEN('PARTY_ACCOUNT_ID',p_account_rec.party_account_id);
514             RETURN l_return_status;
515       End;
516    END IF;   ***/
517    --
518    l_exists_flag := 'N';
519    l_valid_flag := 'Y';
520    IF p_account_rec.party_account_id IS NOT NULL AND
521       p_account_rec.party_account_id <> FND_API.G_MISS_NUM THEN
522       IF p_acct_id_tbl.count > 0 THEN
523          FOR acct_row in p_acct_id_tbl.FIRST .. p_acct_id_tbl.LAST LOOP
524             IF p_acct_id_tbl(acct_row).account_id = p_account_rec.party_account_id THEN
525                l_valid_flag := p_acct_id_tbl(acct_row).valid_flag;
526                l_exists_flag := 'Y';
527                exit;
528             END IF;
529          END LOOP;
530          --
531          IF l_valid_flag <> 'Y' THEN
532             l_return_status := FALSE;
533             FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_PTY_ACCT_ID');
534             FND_MESSAGE.SET_TOKEN('PARTY_ACCOUNT_ID',p_account_rec.party_account_id);
535             FND_MSG_PUB.ADD;
536             RETURN l_return_status;
537          END IF;
538       END IF;
539       --
540       IF l_exists_flag <> 'Y' THEN
541          l_ctr := p_acct_id_tbl.count + 1;
542          p_acct_id_tbl(l_ctr).account_id := p_account_rec.party_account_id;
543 	 Begin
544 	    select 'x'
545 	    into l_exists
546 	    from HZ_CUST_ACCOUNTS hzc
547 	    where hzc.cust_account_id = p_account_rec.party_account_id;
548             p_acct_id_tbl(l_ctr).valid_flag := 'Y';
549 	 Exception
550 	    when others then
551                p_acct_id_tbl(l_ctr).valid_flag := 'N';
552 	       l_return_status := FALSE;
553 	       FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_PTY_ACCT_ID');
554 	       FND_MESSAGE.SET_TOKEN('PARTY_ACCOUNT_ID',p_account_rec.party_account_id);
555                FND_MSG_PUB.ADD;
556 	       RETURN l_return_status;
557 	 End;
558       END IF;
559    END IF;
560    --
561    IF p_account_tbl.count < 2 THEN
562       l_return_status := TRUE;
563       RETURN l_return_status;
564    END IF;
565    --
566    FOR acct_row in p_account_tbl.FIRST .. p_account_tbl.LAST LOOP
567       IF p_account_tbl(acct_row).party_account_id = p_account_rec.party_account_id AND
568          p_account_tbl(acct_row).relationship_type_code = p_account_rec.relationship_type_code THEN
569          l_count := l_count + 1;
570       END IF;
571       --
572       IF p_account_tbl(acct_row).relationship_type_code = p_account_rec.relationship_type_code THEN
573          l_rel_count := l_rel_count + 1;
574       END IF;
575    END LOOP;
576    --
577    IF l_count > 1 THEN
578       l_return_status := FALSE;
579       FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_PARTY_ACCT_COM');
580       FND_MESSAGE.SET_TOKEN('ACCT_COMBINATION',to_char(p_account_rec.instance_party_id) ||', '
581                       ||to_char(p_account_rec.party_account_id) ||','||p_account_rec.relationship_type_code);
582       FND_MSG_PUB.ADD;
583       RETURN l_return_status;
584    END IF;
585    --
586    IF l_rel_count > 1 THEN
587       l_return_status := FALSE;
588       FND_MESSAGE.SET_NAME('CSI','CSI_API_DUP_ACCT_TYPE');
589       FND_MESSAGE.SET_TOKEN('RELATIONSHIP_TYPE_CODE',p_account_rec.relationship_type_code);
590       FND_MSG_PUB.ADD;
591       RETURN l_return_status;
592    END IF;
593    --
594    RETURN l_return_status;
595 END Check_Party_Acct_Rules;
596 --
597 FUNCTION Check_Org_Rules
598    ( p_org_units_tbl  IN csi_datastructures_pub.organization_units_tbl
599     ,p_org_units_rec  IN csi_datastructures_pub.organization_units_rec
600     ,p_start_date     IN DATE
601     ,p_end_date       IN DATE
602    ) RETURN BOOLEAN IS
603    --
604    l_count               NUMBER := 0;
605    l_return_status       BOOLEAN;
606 BEGIN
607    l_return_status := TRUE;
608    --
609    IF p_org_units_rec.active_end_date IS NOT NULL AND
610       p_org_units_rec.active_end_date <> FND_API.G_MISS_DATE THEN
611       IF p_org_units_rec.active_start_date > p_org_units_rec.active_end_date THEN
612          l_return_status := FALSE;
613          FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_ORG_START_DATE');
614          FND_MESSAGE.SET_TOKEN('START_DATE',p_org_units_rec.active_start_date);
615          FND_MSG_PUB.ADD;
616          RETURN l_return_status;
617       END IF;
618       --
619       IF ( (p_org_units_rec.active_end_date < SYSDATE) OR
620            (p_end_date IS NOT NULL AND p_org_units_rec.active_end_date > p_end_date) ) THEN
621          l_return_status  := FALSE;
622          FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_ORG_END_DATE');
623          FND_MESSAGE.SET_TOKEN('END_DATE',p_org_units_rec.active_end_date);
624          FND_MSG_PUB.ADD;
625          RETURN l_return_status;
626       END IF;
627    END IF;
628    --
629    IF ( (p_org_units_rec.active_start_date < p_start_date) OR
630         (p_end_date IS NOT NULL AND p_end_date <> FND_API.G_MISS_DATE AND p_org_units_rec.active_start_date > p_end_date) ) THEN
631       l_return_status := FALSE;
632       FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_ORG_START_DATE');
633       FND_MESSAGE.SET_TOKEN('START_DATE',p_org_units_rec.active_start_date);
634       FND_MSG_PUB.ADD;
635       RETURN l_return_status;
636    END IF;
637    --
638    IF p_org_units_tbl.count < 2 THEN
639       l_return_status := TRUE;
640       RETURN l_return_status;
641    END IF;
642    --
643    FOR org_row in p_org_units_tbl.FIRST .. p_org_units_tbl.LAST LOOP
644       IF p_org_units_tbl(org_row).relationship_type_code = p_org_units_rec.relationship_type_code THEN
645          l_count := l_count + 1;
646       END IF;
647    END LOOP;
648    --
649    IF l_count > 1 THEN
650       l_return_status := FALSE;
651       FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ALTERNATE_PK');
652       FND_MESSAGE.SET_TOKEN('ALTERNATE_PK',to_char(p_org_units_rec.instance_id)||'  '||p_org_units_rec.relationship_type_code);
653       FND_MSG_PUB.ADD;
654       RETURN l_return_status;
655    END IF;
656    --
657    RETURN l_return_status;
658 END Check_Org_Rules;
659 --
660 FUNCTION Check_Pricing_Rules
661    (
662      p_pricing_rec    IN csi_datastructures_pub.pricing_attribs_rec
663     ,p_start_date     IN DATE
664     ,p_end_date       IN DATE
665    ) RETURN BOOLEAN IS
666    --
667    l_return_status       BOOLEAN;
668 BEGIN
669    l_return_status := TRUE;
670    --
671    IF p_pricing_rec.active_end_date IS NOT NULL AND
672       p_pricing_rec.active_end_date <> FND_API.G_MISS_DATE THEN
673       IF p_pricing_rec.active_start_date > p_pricing_rec.active_end_date THEN
674          l_return_status := FALSE;
675          FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_PRI_START_DATE');
676          FND_MESSAGE.SET_TOKEN('START_DATE',p_pricing_rec.active_start_date);
677          FND_MSG_PUB.ADD;
678          RETURN l_return_status;
679       END IF;
680       --
681       IF ( (p_pricing_rec.active_end_date < SYSDATE) OR
682            (p_end_date IS NOT NULL AND p_pricing_rec.active_end_date > p_end_date) ) THEN
683          l_return_status  := FALSE;
684          FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_PRI_END_DATE');
685          FND_MESSAGE.SET_TOKEN('END_DATE',p_pricing_rec.active_end_date);
686          FND_MSG_PUB.ADD;
687          RETURN l_return_status;
688       END IF;
689    END IF;
690    --
691    IF ( (p_pricing_rec.active_start_date < p_start_date) OR
692         (p_end_date IS NOT NULL AND p_end_date <> FND_API.G_MISS_DATE AND p_pricing_rec.active_start_date > p_end_date) ) THEN
693       l_return_status := FALSE;
694       FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_PRI_START_DATE');
695       FND_MESSAGE.SET_TOKEN('START_DATE',p_pricing_rec.active_start_date);
696       FND_MSG_PUB.ADD;
697       RETURN l_return_status;
698    END IF;
699    --
700    RETURN l_return_status;
701 END Check_Pricing_Rules;
702 --
703 FUNCTION Check_Ext_Rules
704    (
705      p_ext_tbl       IN csi_datastructures_pub.extend_attrib_values_tbl
706     ,p_ext_rec       IN csi_datastructures_pub.extend_attrib_values_rec
707     ,p_start_date     IN DATE
708     ,p_end_date       IN DATE
709    ) RETURN BOOLEAN IS
710    --
711    l_count               NUMBER := 0;
712    l_return_status       BOOLEAN;
713 BEGIN
714    l_return_status := TRUE;
715    --
716    IF p_ext_rec.active_end_date IS NOT NULL AND
717       p_ext_rec.active_end_date <> FND_API.G_MISS_DATE THEN
718       IF p_ext_rec.active_start_date > p_ext_rec.active_end_date THEN
719          l_return_status := FALSE;
720          FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_EXT_START_DATE');
721          FND_MESSAGE.SET_TOKEN('START_DATE',p_ext_rec.active_start_date);
722          FND_MSG_PUB.ADD;
723          RETURN l_return_status;
724       END IF;
725       --
726       IF ( (p_ext_rec.active_end_date < SYSDATE) OR
727            (p_end_date IS NOT NULL AND p_ext_rec.active_end_date > p_end_date) ) THEN
728          l_return_status  := FALSE;
729          FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_EXT_END_DATE');
730          FND_MESSAGE.SET_TOKEN('END_DATE',p_ext_rec.active_end_date);
731          FND_MSG_PUB.ADD;
732          RETURN l_return_status;
733       END IF;
734    END IF;
735    --
736    IF ( (p_ext_rec.active_start_date < p_start_date) OR
737         (p_end_date IS NOT NULL AND p_end_date <> FND_API.G_MISS_DATE AND p_ext_rec.active_start_date > p_end_date) ) THEN
738       l_return_status := FALSE;
739       FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_EXT_START_DATE');
740       FND_MESSAGE.SET_TOKEN('START_DATE',p_ext_rec.active_start_date);
741       FND_MSG_PUB.ADD;
742       RETURN l_return_status;
743    END IF;
744    --
745    IF p_ext_tbl.count < 2 THEN
746       l_return_status := TRUE;
747       RETURN l_return_status;
748    END IF;
749    --
750    FOR ext_row in p_ext_tbl.FIRST .. p_ext_tbl.LAST LOOP
751       IF p_ext_tbl(ext_row).attribute_id = p_ext_rec.attribute_id THEN
752          l_count := l_count + 1;
753       END IF;
754    END LOOP;
755    --
756    IF l_count > 1 THEN
757       l_return_status := FALSE;
758       FND_MESSAGE.SET_NAME('CSI','CSI_EXT_INVALID_ALTERNATE_PK');
759       FND_MESSAGE.SET_TOKEN('ALTERNATE_PK',to_char(p_ext_rec.instance_id)||','||to_char(p_ext_rec.attribute_id));
760       FND_MSG_PUB.ADD;
761       RETURN l_return_status;
762    END IF;
763    --
764    RETURN l_return_status;
765 END Check_Ext_Rules;
766 --
767 FUNCTION Check_Asset_Rules
768    (
769      p_asset_rec    IN csi_datastructures_pub.instance_asset_rec
770     ,p_start_date   IN DATE
771     ,p_end_date     IN DATE
772    ) RETURN BOOLEAN IS
773    --
774    l_return_status       BOOLEAN;
775 BEGIN
776    l_return_status := TRUE;
777    --
778    IF p_asset_rec.active_end_date IS NOT NULL AND
779       p_asset_rec.active_end_date <> FND_API.G_MISS_DATE THEN
780       IF p_asset_rec.active_start_date > p_asset_rec.active_end_date THEN
781          l_return_status := FALSE;
782          FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_AST_START_DATE');
783          FND_MESSAGE.SET_TOKEN('START_DATE',p_asset_rec.active_start_date);
784          FND_MSG_PUB.ADD;
785          RETURN l_return_status;
786       END IF;
787       --
788       IF ( (p_asset_rec.active_end_date < SYSDATE) OR
792          FND_MESSAGE.SET_TOKEN('END_DATE',p_asset_rec.active_end_date);
789            (p_end_date IS NOT NULL AND p_asset_rec.active_end_date > p_end_date) ) THEN
790          l_return_status  := FALSE;
791          FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_AST_END_DATE');
793          FND_MSG_PUB.ADD;
794          RETURN l_return_status;
795       END IF;
796    END IF;
797    --
798    IF ( (p_asset_rec.active_start_date < p_start_date) OR
799         (p_end_date IS NOT NULL AND p_end_date <> FND_API.G_MISS_DATE AND p_asset_rec.active_start_date > p_end_date) ) THEN
800       l_return_status := FALSE;
801       FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_AST_START_DATE');
802       FND_MESSAGE.SET_TOKEN('START_DATE',p_asset_rec.active_start_date);
803       FND_MSG_PUB.ADD;
804       RETURN l_return_status;
805    END IF;
806    --
807    RETURN l_return_status;
808 END Check_Asset_Rules;
809 --
810 PROCEDURE Build_Instance_History
811   (
812     p_inst_hist_tbl  IN OUT NOCOPY  csi_datastructures_pub.instance_history_tbl
813    ,p_inst_rec       IN     csi_datastructures_pub.instance_rec
814    ,p_txn_id         IN     NUMBER
815   ) IS
816   --
817   l_count NUMBER;
818   l_hist_id NUMBER;
819 BEGIN
820    l_count := p_inst_hist_tbl.count + 1;
821    select CSI_ITEM_INSTANCES_H_S.nextval
822    into l_hist_id
823    from sys.dual;
824    p_inst_hist_tbl(l_count).instance_id := p_inst_rec.instance_id;
825    p_inst_hist_tbl(l_count).instance_history_id := l_hist_id;
826    p_inst_hist_tbl(l_count).transaction_id := p_txn_id;
827    p_inst_hist_tbl(l_count).old_instance_number := null;
828    p_inst_hist_tbl(l_count).new_instance_number := p_inst_rec.instance_number;
829    p_inst_hist_tbl(l_count).old_external_reference := null;
830    p_inst_hist_tbl(l_count).new_external_reference := p_inst_rec.external_reference;
831    p_inst_hist_tbl(l_count).old_inventory_item_id := null;
832    p_inst_hist_tbl(l_count).new_inventory_item_id := p_inst_rec.inventory_item_id;
833    p_inst_hist_tbl(l_count).old_inventory_revision := null;
834    p_inst_hist_tbl(l_count).new_inventory_revision := p_inst_rec.inventory_revision;
835    p_inst_hist_tbl(l_count).old_inv_master_org_id := null;
836    p_inst_hist_tbl(l_count).new_inv_master_org_id := p_inst_rec.inv_master_organization_id;
837    p_inst_hist_tbl(l_count).old_serial_number := null;
838    p_inst_hist_tbl(l_count).new_serial_number  := p_inst_rec.serial_number;
839    p_inst_hist_tbl(l_count).old_mfg_serial_number_flag := null;
840    p_inst_hist_tbl(l_count).new_mfg_serial_number_flag := p_inst_rec.mfg_serial_number_flag ;
841    p_inst_hist_tbl(l_count).old_lot_number := null;
842    p_inst_hist_tbl(l_count).new_lot_number := p_inst_rec.lot_number;
843    p_inst_hist_tbl(l_count).old_quantity := null;
844    p_inst_hist_tbl(l_count).new_quantity := p_inst_rec.quantity;
845    p_inst_hist_tbl(l_count).old_unit_of_measure := null;
846    p_inst_hist_tbl(l_count).new_unit_of_measure := p_inst_rec.unit_of_measure;
847    p_inst_hist_tbl(l_count).old_accounting_class_code := null;
848    p_inst_hist_tbl(l_count).new_accounting_class_code := p_inst_rec.accounting_class_code;
849    p_inst_hist_tbl(l_count).old_instance_condition_id := null;
850    p_inst_hist_tbl(l_count).new_instance_condition_id := p_inst_rec.instance_condition_id;
851    p_inst_hist_tbl(l_count).old_instance_status_id := null;
852    p_inst_hist_tbl(l_count).new_instance_status_id := p_inst_rec.instance_status_id;
853    p_inst_hist_tbl(l_count).old_customer_view_flag := null;
854    p_inst_hist_tbl(l_count).new_customer_view_flag := p_inst_rec.customer_view_flag;
855    p_inst_hist_tbl(l_count).old_merchant_view_flag := null;
856    p_inst_hist_tbl(l_count).new_merchant_view_flag := p_inst_rec.merchant_view_flag;
857    p_inst_hist_tbl(l_count).old_sellable_flag := null;
858    p_inst_hist_tbl(l_count).new_sellable_flag := p_inst_rec.sellable_flag ;
859    p_inst_hist_tbl(l_count).old_system_id := null;
860    p_inst_hist_tbl(l_count).new_system_id := p_inst_rec.system_id;
861    p_inst_hist_tbl(l_count).old_instance_type_code := null;
862    p_inst_hist_tbl(l_count).new_instance_type_code := p_inst_rec.instance_type_code;
863    p_inst_hist_tbl(l_count).old_active_start_date := null;
864    p_inst_hist_tbl(l_count).new_active_start_date := p_inst_rec.active_start_date;
865    p_inst_hist_tbl(l_count).old_active_end_date := null;
866    p_inst_hist_tbl(l_count).new_active_end_date := p_inst_rec.active_end_date;
867    p_inst_hist_tbl(l_count).old_location_type_code := null;
868    p_inst_hist_tbl(l_count).new_location_type_code := p_inst_rec.location_type_code;
869    p_inst_hist_tbl(l_count).old_location_id := null;
870    p_inst_hist_tbl(l_count).new_location_id := p_inst_rec.location_id;
871    p_inst_hist_tbl(l_count).old_inv_organization_id := null;
872    p_inst_hist_tbl(l_count).new_inv_organization_id := p_inst_rec.inv_organization_id;
873    p_inst_hist_tbl(l_count).old_inv_subinventory_name := null;
874    p_inst_hist_tbl(l_count).new_inv_subinventory_name := p_inst_rec.inv_subinventory_name;
875    p_inst_hist_tbl(l_count).old_inv_locator_id := null;
876    p_inst_hist_tbl(l_count).new_inv_locator_id := p_inst_rec.inv_locator_id;
877    p_inst_hist_tbl(l_count).old_pa_project_id := null;
878    p_inst_hist_tbl(l_count).new_pa_project_id := p_inst_rec.pa_project_id;
879    p_inst_hist_tbl(l_count).old_pa_project_task_id := null;
880    p_inst_hist_tbl(l_count).new_pa_project_task_id := p_inst_rec.pa_project_task_id;
881    p_inst_hist_tbl(l_count).old_in_transit_order_line_id := null;
882    p_inst_hist_tbl(l_count).new_in_transit_order_line_id := p_inst_rec.in_transit_order_line_id;
883    p_inst_hist_tbl(l_count).old_wip_job_id := null;
884    p_inst_hist_tbl(l_count).new_wip_job_id := p_inst_rec.wip_job_id;
885    p_inst_hist_tbl(l_count).old_po_order_line_id := null;
886    p_inst_hist_tbl(l_count).new_po_order_line_id := p_inst_rec.po_order_line_id;
887    p_inst_hist_tbl(l_count).old_completeness_flag := null;
888    p_inst_hist_tbl(l_count).new_completeness_flag := p_inst_rec.completeness_flag;
889    p_inst_hist_tbl(l_count).old_context := null;
890    p_inst_hist_tbl(l_count).new_context := p_inst_rec.context;
891    p_inst_hist_tbl(l_count).old_attribute1 := null;
892    p_inst_hist_tbl(l_count).new_attribute1 := p_inst_rec.attribute1;
893    p_inst_hist_tbl(l_count).old_attribute2 := null;
894    p_inst_hist_tbl(l_count).new_attribute2 := p_inst_rec.attribute2;
895    p_inst_hist_tbl(l_count).old_attribute3 := null;
896    p_inst_hist_tbl(l_count).new_attribute3 := p_inst_rec.attribute3;
897    p_inst_hist_tbl(l_count).old_attribute4 := null;
898    p_inst_hist_tbl(l_count).new_attribute4 := p_inst_rec.attribute4;
899    p_inst_hist_tbl(l_count).old_attribute5 := null;
900    p_inst_hist_tbl(l_count).new_attribute5 := p_inst_rec.attribute5;
901    p_inst_hist_tbl(l_count).old_attribute6 := null;
902    p_inst_hist_tbl(l_count).new_attribute6 := p_inst_rec.attribute6;
903    p_inst_hist_tbl(l_count).old_attribute7 := null;
904    p_inst_hist_tbl(l_count).new_attribute7 := p_inst_rec.attribute7;
905    p_inst_hist_tbl(l_count).old_attribute8 := null;
906    p_inst_hist_tbl(l_count).new_attribute8 := p_inst_rec.attribute8;
907    p_inst_hist_tbl(l_count).old_attribute9 := null;
908    p_inst_hist_tbl(l_count).new_attribute9 := p_inst_rec.attribute9;
909    p_inst_hist_tbl(l_count).old_attribute10 := null;
910    p_inst_hist_tbl(l_count).new_attribute10 := p_inst_rec.attribute10;
911    p_inst_hist_tbl(l_count).old_attribute11 := null;
912    p_inst_hist_tbl(l_count).new_attribute11 := p_inst_rec.attribute11;
913    p_inst_hist_tbl(l_count).old_attribute12 := null;
914    p_inst_hist_tbl(l_count).new_attribute12 := p_inst_rec.attribute12;
915    p_inst_hist_tbl(l_count).old_attribute13 := null;
916    p_inst_hist_tbl(l_count).new_attribute13 := p_inst_rec.attribute13;
917    p_inst_hist_tbl(l_count).old_attribute14 := null;
918    p_inst_hist_tbl(l_count).new_attribute14 := p_inst_rec.attribute14;
919    p_inst_hist_tbl(l_count).old_attribute15 := null;
920    p_inst_hist_tbl(l_count).new_attribute15 := p_inst_rec.attribute15;
921    p_inst_hist_tbl(l_count).old_install_location_type_code := null;
922    p_inst_hist_tbl(l_count).new_install_location_type_code := p_inst_rec.install_location_type_code;
923    p_inst_hist_tbl(l_count).old_install_location_id := null;
924    p_inst_hist_tbl(l_count).new_install_location_id := p_inst_rec.install_location_id;
925    p_inst_hist_tbl(l_count).old_instance_usage_code := null;
926    p_inst_hist_tbl(l_count).new_instance_usage_code := p_inst_rec.instance_usage_code;
927    p_inst_hist_tbl(l_count).old_last_vld_organization_id := null;
928    p_inst_hist_tbl(l_count).new_last_vld_organization_id := p_inst_rec.vld_organization_id;
929    p_inst_hist_tbl(l_count).old_config_inst_rev_num := null;
930    p_inst_hist_tbl(l_count).new_config_inst_rev_num := p_inst_rec.config_inst_rev_num;
931    p_inst_hist_tbl(l_count).old_config_valid_status := null;
932    p_inst_hist_tbl(l_count).new_config_valid_status := p_inst_rec.config_valid_status;
933    p_inst_hist_tbl(l_count).old_instance_description := null;
934    p_inst_hist_tbl(l_count).new_instance_description := p_inst_rec.instance_description;
935    p_inst_hist_tbl(l_count).old_last_oe_agreement_id := null;
936    p_inst_hist_tbl(l_count).new_last_oe_agreement_id := p_inst_rec.last_oe_agreement_id;
937    p_inst_hist_tbl(l_count).old_install_date := null;
938    p_inst_hist_tbl(l_count).new_install_date := p_inst_rec.install_date;
939    p_inst_hist_tbl(l_count).old_return_by_date := null;
940    p_inst_hist_tbl(l_count).new_return_by_date := p_inst_rec.return_by_date;
941    p_inst_hist_tbl(l_count).old_actual_return_date := null;
942    p_inst_hist_tbl(l_count).new_actual_return_date := p_inst_rec.actual_return_date;
943    p_inst_hist_tbl(l_count).old_last_oe_order_line_id := null;
944    p_inst_hist_tbl(l_count).new_last_oe_order_line_id := p_inst_rec.last_oe_order_line_id;
945    p_inst_hist_tbl(l_count).old_last_oe_rma_line_id := null;
946    p_inst_hist_tbl(l_count).new_last_oe_rma_line_id := p_inst_rec.last_oe_rma_line_id;
947    p_inst_hist_tbl(l_count).old_last_wip_job_id := null;
948    p_inst_hist_tbl(l_count).new_last_wip_job_id := p_inst_rec.last_wip_job_id;
949    p_inst_hist_tbl(l_count).old_last_po_po_line_id := null;
950    p_inst_hist_tbl(l_count).new_last_po_po_line_id := p_inst_rec.last_po_po_line_id;
951    p_inst_hist_tbl(l_count).old_last_pa_project_id := null;
952    p_inst_hist_tbl(l_count).new_last_pa_project_id := p_inst_rec.last_pa_project_id;
953    p_inst_hist_tbl(l_count).old_last_pa_task_id := null;
954    p_inst_hist_tbl(l_count).new_last_pa_task_id := p_inst_rec.last_pa_task_id;
955    p_inst_hist_tbl(l_count).old_last_txn_line_detail_id := null;
956    p_inst_hist_tbl(l_count).new_last_txn_line_detail_id := p_inst_rec.last_txn_line_detail_id;
957    p_inst_hist_tbl(l_count).old_last_oe_po_number := null;
958    p_inst_hist_tbl(l_count).new_last_oe_po_number := p_inst_rec.last_oe_po_number;
959 
960    p_inst_hist_tbl(l_count).old_network_asset_flag       := null;
961    p_inst_hist_tbl(l_count).new_network_asset_flag       := p_inst_rec.network_asset_flag;
962    p_inst_hist_tbl(l_count).old_maintainable_flag        := null;
963    p_inst_hist_tbl(l_count).new_maintainable_flag        := p_inst_rec.maintainable_flag;
964    p_inst_hist_tbl(l_count).old_asset_criticality_code   := null;
965    p_inst_hist_tbl(l_count).new_asset_criticality_code   := p_inst_rec.asset_criticality_code;
966    p_inst_hist_tbl(l_count).old_category_id              := null;
967    p_inst_hist_tbl(l_count).new_category_id              := p_inst_rec.category_id ;
968    p_inst_hist_tbl(l_count).old_equipment_gen_object_id  := null;
969    p_inst_hist_tbl(l_count).new_equipment_gen_object_id  := p_inst_rec.equipment_gen_object_id ;
970    p_inst_hist_tbl(l_count).old_instantiation_flag       := null;
971    p_inst_hist_tbl(l_count).new_instantiation_flag       := p_inst_rec.instantiation_flag;
972    p_inst_hist_tbl(l_count).old_operational_log_flag     := null;
973    p_inst_hist_tbl(l_count).new_operational_log_flag     := p_inst_rec.operational_log_flag ;
974    p_inst_hist_tbl(l_count).old_supplier_warranty_exp_date := null;
975    p_inst_hist_tbl(l_count).new_supplier_warranty_exp_date := p_inst_rec.supplier_warranty_exp_date ;
976    p_inst_hist_tbl(l_count).old_attribute16              := null;
977    p_inst_hist_tbl(l_count).new_attribute16              := p_inst_rec.attribute16;
978    p_inst_hist_tbl(l_count).old_attribute17              := null;
979    p_inst_hist_tbl(l_count).new_attribute17              := p_inst_rec.attribute17;
980    p_inst_hist_tbl(l_count).old_attribute18              := null;
981    p_inst_hist_tbl(l_count).new_attribute18              := p_inst_rec.attribute18;
982    p_inst_hist_tbl(l_count).old_attribute19              := null;
983    p_inst_hist_tbl(l_count).new_attribute19              := p_inst_rec.attribute19;
984    p_inst_hist_tbl(l_count).old_attribute20              := null;
985    p_inst_hist_tbl(l_count).new_attribute20              := p_inst_rec.attribute20;
986    p_inst_hist_tbl(l_count).old_attribute21              := null;
987    p_inst_hist_tbl(l_count).new_attribute21              := p_inst_rec.attribute21;
988    p_inst_hist_tbl(l_count).old_attribute22              := null;
989    p_inst_hist_tbl(l_count).new_attribute22              := p_inst_rec.attribute22;
990    p_inst_hist_tbl(l_count).old_attribute23              := null;
991    p_inst_hist_tbl(l_count).new_attribute23              := p_inst_rec.attribute23;
992    p_inst_hist_tbl(l_count).old_attribute24              := null;
996    p_inst_hist_tbl(l_count).old_attribute26              := null;
993    p_inst_hist_tbl(l_count).new_attribute24              := p_inst_rec.attribute24;
994    p_inst_hist_tbl(l_count).old_attribute25              := null;
995    p_inst_hist_tbl(l_count).new_attribute25              := p_inst_rec.attribute25;
997    p_inst_hist_tbl(l_count).new_attribute26              := p_inst_rec.attribute26;
998    p_inst_hist_tbl(l_count).old_attribute27              := null;
999    p_inst_hist_tbl(l_count).new_attribute27              := p_inst_rec.attribute27;
1000    p_inst_hist_tbl(l_count).old_attribute28              := null;
1001    p_inst_hist_tbl(l_count).new_attribute28              := p_inst_rec.attribute28;
1002    p_inst_hist_tbl(l_count).old_attribute29              := null;
1003    p_inst_hist_tbl(l_count).new_attribute29              := p_inst_rec.attribute29;
1004    p_inst_hist_tbl(l_count).old_attribute30              := null;
1005    p_inst_hist_tbl(l_count).new_attribute30              := p_inst_rec.attribute30;
1006    --
1007    p_inst_hist_tbl(l_count).old_payables_currency_code   := null;
1008    p_inst_hist_tbl(l_count).new_payables_currency_code   := p_inst_rec.payables_currency_code;
1009    p_inst_hist_tbl(l_count).old_purchase_unit_price      := null;
1010    p_inst_hist_tbl(l_count).new_purchase_unit_price      := p_inst_rec.purchase_unit_price;
1011    p_inst_hist_tbl(l_count).old_purchase_currency_code   := null;
1012    p_inst_hist_tbl(l_count).new_purchase_currency_code   := p_inst_rec.purchase_currency_code;
1013    p_inst_hist_tbl(l_count).old_payables_unit_price      := null;
1014    p_inst_hist_tbl(l_count).new_payables_unit_price      := p_inst_rec.payables_unit_price;
1015    p_inst_hist_tbl(l_count).old_sales_unit_price         := null;
1016    p_inst_hist_tbl(l_count).new_sales_unit_price         := p_inst_rec.sales_unit_price;
1017    p_inst_hist_tbl(l_count).old_sales_currency_code      := null;
1018    p_inst_hist_tbl(l_count).new_sales_currency_code      := p_inst_rec.sales_currency_code;
1019    p_inst_hist_tbl(l_count).old_operational_status_code  := null;
1020    p_inst_hist_tbl(l_count).new_operational_status_code  := p_inst_rec.operational_status_code;
1021 
1022 END Build_Instance_History;
1023 --
1024 PROCEDURE Build_Ver_Label_History
1025    (
1026      p_ver_label_history_tbl    IN OUT NOCOPY  csi_datastructures_pub.version_label_history_tbl
1027     ,p_version_label_rec        IN     csi_datastructures_pub.version_label_rec
1028     ,p_txn_id                   IN     NUMBER
1029    ) IS
1030   --
1031   l_count NUMBER;
1032   l_hist_id NUMBER;
1033 BEGIN
1034    l_count := p_ver_label_history_tbl.count + 1;
1035    select CSI_I_VERSION_LABELS_H_S.nextval
1036    into l_hist_id
1037    from sys.dual;
1038    --
1039    p_ver_label_history_tbl(l_count).VERSION_LABEL_HISTORY_ID	 := l_hist_id;
1040    p_ver_label_history_tbl(l_count).VERSION_LABEL_ID	 := p_version_label_rec.VERSION_LABEL_ID;
1041    p_ver_label_history_tbl(l_count).TRANSACTION_ID	 := p_txn_id;
1042    p_ver_label_history_tbl(l_count).OLD_VERSION_LABEL	 := NULL;
1043    p_ver_label_history_tbl(l_count).NEW_VERSION_LABEL	 := p_version_label_rec.VERSION_LABEL;
1044    p_ver_label_history_tbl(l_count).OLD_DESCRIPTION	 := NULL;
1045    p_ver_label_history_tbl(l_count).NEW_DESCRIPTION	 := p_version_label_rec.DESCRIPTION;
1046    p_ver_label_history_tbl(l_count).OLD_DATE_TIME_STAMP	 := NULL;
1047    p_ver_label_history_tbl(l_count).NEW_DATE_TIME_STAMP	 := p_version_label_rec.DATE_TIME_STAMP;
1048    p_ver_label_history_tbl(l_count).OLD_ACTIVE_START_DATE	 := NULL;
1049    p_ver_label_history_tbl(l_count).NEW_ACTIVE_START_DATE	 := p_version_label_rec.ACTIVE_START_DATE;
1050    p_ver_label_history_tbl(l_count).OLD_ACTIVE_END_DATE	 := NULL;
1051    p_ver_label_history_tbl(l_count).NEW_ACTIVE_END_DATE	 := p_version_label_rec.ACTIVE_END_DATE;
1052    p_ver_label_history_tbl(l_count).OLD_CONTEXT	 := NULL;
1053    p_ver_label_history_tbl(l_count).NEW_CONTEXT	 := p_version_label_rec.CONTEXT;
1054    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE1	 := NULL;
1055    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE1	 := p_version_label_rec.ATTRIBUTE1;
1056    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE2	 := NULL;
1057    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE2	 := p_version_label_rec.ATTRIBUTE2;
1058    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE3	 := NULL;
1059    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE3	 := p_version_label_rec.ATTRIBUTE3;
1060    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE4	 := NULL;
1061    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE4	 := p_version_label_rec.ATTRIBUTE4;
1062    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE5	 := NULL;
1063    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE5	 := p_version_label_rec.ATTRIBUTE5;
1064    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE6	 := NULL;
1065    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE6	 := p_version_label_rec.ATTRIBUTE6;
1066    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE7	 := NULL;
1067    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE7	 := p_version_label_rec.ATTRIBUTE7;
1068    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE8	 := NULL;
1069    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE8	 := p_version_label_rec.ATTRIBUTE8;
1070    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE9	 := NULL;
1071    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE9	 := p_version_label_rec.ATTRIBUTE9;
1072    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE10	 := NULL;
1073    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE10	 := p_version_label_rec.ATTRIBUTE10;
1074    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE11	 := NULL;
1075    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE11	 := p_version_label_rec.ATTRIBUTE11;
1076    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE12	 := NULL;
1077    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE12	 := p_version_label_rec.ATTRIBUTE12;
1078    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE13	 := NULL;
1079    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE13	 := p_version_label_rec.ATTRIBUTE13;
1083    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE15	 := p_version_label_rec.ATTRIBUTE15;
1080    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE14	 := NULL;
1081    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE14	 := p_version_label_rec.ATTRIBUTE14;
1082    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE15	 := NULL;
1084 END Build_Ver_Label_History;
1085 --
1086 PROCEDURE Build_Party_History
1087     ( p_party_hist_tbl     IN OUT NOCOPY  csi_datastructures_pub.party_history_tbl
1088      ,p_party_rec          IN     csi_datastructures_pub.party_rec
1089      ,p_txn_id             IN     NUMBER
1090     ) IS
1091     l_count    NUMBER;
1092     l_hist_id  NUMBER;
1093 BEGIN
1094    l_count := p_party_hist_tbl.count + 1;
1095    select CSI_I_PARTIES_H_S.nextval
1096    into l_hist_id
1097    from sys.dual;
1098    --
1099    p_party_hist_tbl(l_count).INSTANCE_PARTY_HISTORY_ID := l_hist_id;
1100    p_party_hist_tbl(l_count).INSTANCE_PARTY_ID := p_party_rec.INSTANCE_PARTY_ID;
1101    p_party_hist_tbl(l_count).TRANSACTION_ID := p_txn_id;
1102    p_party_hist_tbl(l_count).OLD_PARTY_SOURCE_TABLE := NULL;
1103    p_party_hist_tbl(l_count).NEW_PARTY_SOURCE_TABLE := p_party_rec.PARTY_SOURCE_TABLE;
1104    p_party_hist_tbl(l_count).OLD_PARTY_ID := NULL;
1105    p_party_hist_tbl(l_count).NEW_PARTY_ID := p_party_rec.PARTY_ID;
1106    p_party_hist_tbl(l_count).OLD_RELATIONSHIP_TYPE_CODE := NULL;
1107    p_party_hist_tbl(l_count).NEW_RELATIONSHIP_TYPE_CODE := p_party_rec.RELATIONSHIP_TYPE_CODE;
1108    p_party_hist_tbl(l_count).OLD_CONTACT_FLAG := NULL;
1109    p_party_hist_tbl(l_count).NEW_CONTACT_FLAG := p_party_rec.CONTACT_FLAG;
1110    p_party_hist_tbl(l_count).OLD_CONTACT_IP_ID := NULL;
1111    p_party_hist_tbl(l_count).NEW_CONTACT_IP_ID := p_party_rec.CONTACT_IP_ID;
1112    p_party_hist_tbl(l_count).OLD_ACTIVE_START_DATE := NULL;
1113    p_party_hist_tbl(l_count).NEW_ACTIVE_START_DATE := p_party_rec.ACTIVE_START_DATE;
1114    p_party_hist_tbl(l_count).OLD_ACTIVE_END_DATE := NULL;
1115    p_party_hist_tbl(l_count).NEW_ACTIVE_END_DATE := p_party_rec.ACTIVE_END_DATE;
1116    p_party_hist_tbl(l_count).OLD_CONTEXT := NULL;
1117    p_party_hist_tbl(l_count).NEW_CONTEXT := p_party_rec.CONTEXT;
1118    p_party_hist_tbl(l_count).OLD_ATTRIBUTE1 := NULL;
1119    p_party_hist_tbl(l_count).NEW_ATTRIBUTE1 := p_party_rec.ATTRIBUTE1;
1120    p_party_hist_tbl(l_count).OLD_ATTRIBUTE2 := NULL;
1121    p_party_hist_tbl(l_count).NEW_ATTRIBUTE2 := p_party_rec.ATTRIBUTE2;
1122    p_party_hist_tbl(l_count).OLD_ATTRIBUTE3 := NULL;
1123    p_party_hist_tbl(l_count).NEW_ATTRIBUTE3 := p_party_rec.ATTRIBUTE3;
1124    p_party_hist_tbl(l_count).OLD_ATTRIBUTE4 := NULL;
1125    p_party_hist_tbl(l_count).NEW_ATTRIBUTE4 := p_party_rec.ATTRIBUTE4;
1126    p_party_hist_tbl(l_count).OLD_ATTRIBUTE5 := NULL;
1127    p_party_hist_tbl(l_count).NEW_ATTRIBUTE5 := p_party_rec.ATTRIBUTE5;
1128    p_party_hist_tbl(l_count).OLD_ATTRIBUTE6 := NULL;
1129    p_party_hist_tbl(l_count).NEW_ATTRIBUTE6 := p_party_rec.ATTRIBUTE6;
1130    p_party_hist_tbl(l_count).OLD_ATTRIBUTE7 := NULL;
1131    p_party_hist_tbl(l_count).NEW_ATTRIBUTE7 := p_party_rec.ATTRIBUTE7;
1132    p_party_hist_tbl(l_count).OLD_ATTRIBUTE8 := NULL;
1133    p_party_hist_tbl(l_count).NEW_ATTRIBUTE8 := p_party_rec.ATTRIBUTE8;
1134    p_party_hist_tbl(l_count).OLD_ATTRIBUTE9 := NULL;
1135    p_party_hist_tbl(l_count).NEW_ATTRIBUTE9 := p_party_rec.ATTRIBUTE9;
1136    p_party_hist_tbl(l_count).OLD_ATTRIBUTE10 := NULL;
1137    p_party_hist_tbl(l_count).NEW_ATTRIBUTE10 := p_party_rec.ATTRIBUTE10;
1138    p_party_hist_tbl(l_count).OLD_ATTRIBUTE11 := NULL;
1139    p_party_hist_tbl(l_count).NEW_ATTRIBUTE11 := p_party_rec.ATTRIBUTE11;
1140    p_party_hist_tbl(l_count).OLD_ATTRIBUTE12 := NULL;
1141    p_party_hist_tbl(l_count).NEW_ATTRIBUTE12 := p_party_rec.ATTRIBUTE12;
1142    p_party_hist_tbl(l_count).OLD_ATTRIBUTE13 := NULL;
1143    p_party_hist_tbl(l_count).NEW_ATTRIBUTE13 := p_party_rec.ATTRIBUTE13;
1144    p_party_hist_tbl(l_count).OLD_ATTRIBUTE14 := NULL;
1145    p_party_hist_tbl(l_count).NEW_ATTRIBUTE14 := p_party_rec.ATTRIBUTE14;
1146    p_party_hist_tbl(l_count).OLD_ATTRIBUTE15 := NULL;
1147    p_party_hist_tbl(l_count).NEW_ATTRIBUTE15 := p_party_rec.ATTRIBUTE15;
1148    p_party_hist_tbl(l_count).OLD_PRIMARY_FLAG := NULL;
1149    p_party_hist_tbl(l_count).NEW_PRIMARY_FLAG := p_party_rec.PRIMARY_FLAG;
1150    p_party_hist_tbl(l_count).OLD_PREFERRED_FLAG := NULL;
1151    p_party_hist_tbl(l_count).NEW_PREFERRED_FLAG := p_party_rec.PREFERRED_FLAG;
1152 END Build_Party_History;
1153 --
1154 PROCEDURE Build_Account_History
1155     ( p_acct_hist_tbl      IN OUT NOCOPY  csi_datastructures_pub.account_history_tbl
1156      ,p_acct_rec           IN     csi_datastructures_pub.party_account_rec
1157      ,p_txn_id             IN     NUMBER
1158     ) IS
1159 --
1160    l_count    NUMBER;
1161    l_hist_id  NUMBER;
1162 BEGIN
1163    l_count := p_acct_hist_tbl.count + 1;
1164    select CSI_IP_ACCOUNTS_H_S.nextval
1165    into l_hist_id
1166    from sys.dual;
1167    --
1168    p_acct_hist_tbl(l_count).IP_ACCOUNT_HISTORY_ID := l_hist_id;
1169    p_acct_hist_tbl(l_count).IP_ACCOUNT_ID := p_acct_rec.IP_ACCOUNT_ID;
1170    p_acct_hist_tbl(l_count).TRANSACTION_ID := p_txn_id;
1171    p_acct_hist_tbl(l_count).OLD_PARTY_ACCOUNT_ID := NULL;
1172    p_acct_hist_tbl(l_count).NEW_PARTY_ACCOUNT_ID := p_acct_rec.PARTY_ACCOUNT_ID;
1173    p_acct_hist_tbl(l_count).OLD_RELATIONSHIP_TYPE_CODE := NULL;
1174    p_acct_hist_tbl(l_count).NEW_RELATIONSHIP_TYPE_CODE := p_acct_rec.RELATIONSHIP_TYPE_CODE;
1175    p_acct_hist_tbl(l_count).OLD_ACTIVE_START_DATE := NULL;
1176    p_acct_hist_tbl(l_count).NEW_ACTIVE_START_DATE := p_acct_rec.ACTIVE_START_DATE;
1177    p_acct_hist_tbl(l_count).OLD_ACTIVE_END_DATE := NULL;
1178    p_acct_hist_tbl(l_count).NEW_ACTIVE_END_DATE := p_acct_rec.ACTIVE_END_DATE;
1179    p_acct_hist_tbl(l_count).OLD_CONTEXT := NULL;
1180    p_acct_hist_tbl(l_count).NEW_CONTEXT := p_acct_rec.CONTEXT;
1181    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE1 := NULL;
1182    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE1 := p_acct_rec.ATTRIBUTE1;
1183    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE2 := NULL;
1184    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE2 := p_acct_rec.ATTRIBUTE2;
1185    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE3 := NULL;
1186    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE3 := p_acct_rec.ATTRIBUTE3;
1187    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE4 := NULL;
1188    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE4 := p_acct_rec.ATTRIBUTE4;
1189    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE5 := NULL;
1190    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE5 := p_acct_rec.ATTRIBUTE5;
1191    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE6 := NULL;
1192    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE6 := p_acct_rec.ATTRIBUTE6;
1193    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE7 := NULL;
1194    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE7 := p_acct_rec.ATTRIBUTE7;
1195    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE8 := NULL;
1196    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE8 := p_acct_rec.ATTRIBUTE8;
1197    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE9 := NULL;
1198    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE9 := p_acct_rec.ATTRIBUTE9;
1199    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE10 := NULL;
1200    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE10 := p_acct_rec.ATTRIBUTE10;
1201    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE11 := NULL;
1202    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE11 := p_acct_rec.ATTRIBUTE11;
1203    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE12 := NULL;
1204    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE12 := p_acct_rec.ATTRIBUTE12;
1205    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE13 := NULL;
1206    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE13 := p_acct_rec.ATTRIBUTE13;
1207    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE14 := NULL;
1208    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE14 := p_acct_rec.ATTRIBUTE14;
1209    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE15 := NULL;
1210    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE15 := p_acct_rec.ATTRIBUTE15;
1211    p_acct_hist_tbl(l_count).OLD_BILL_TO_ADDRESS := NULL;
1212    p_acct_hist_tbl(l_count).NEW_BILL_TO_ADDRESS := p_acct_rec.BILL_TO_ADDRESS;
1213    p_acct_hist_tbl(l_count).OLD_SHIP_TO_ADDRESS := NULL;
1214    p_acct_hist_tbl(l_count).NEW_SHIP_TO_ADDRESS := p_acct_rec.SHIP_TO_ADDRESS;
1215 END Build_Account_History;
1216 --
1217 PROCEDURE Build_Org_History
1218   (
1219     p_org_hist_tbl  IN OUT NOCOPY  csi_datastructures_pub.org_units_history_tbl
1220    ,p_org_rec       IN     csi_datastructures_pub.organization_units_rec
1221    ,p_txn_id        IN     NUMBER
1222   ) IS
1223   --
1224   l_count NUMBER;
1225   l_hist_id NUMBER;
1226 BEGIN
1227    l_count := p_org_hist_tbl.count + 1;
1228    select CSI_I_ORG_ASSIGNMENTS_H_S.nextval
1229    into l_hist_id
1230    from sys.dual;
1231 
1232    p_org_hist_tbl(l_count).instance_ou_history_id      := l_hist_id;
1233    p_org_hist_tbl(l_count).instance_ou_id              := p_org_rec.instance_ou_id;
1234    p_org_hist_tbl(l_count).transaction_id              := p_txn_id;
1235    p_org_hist_tbl(l_count).old_operating_unit_id       := NULL;
1236    p_org_hist_tbl(l_count).new_operating_unit_id       := p_org_rec.operating_unit_id;
1237    p_org_hist_tbl(l_count).old_relationship_type_code  := NULL;
1238    p_org_hist_tbl(l_count).new_relationship_type_code  := p_org_rec.relationship_type_code;
1239    p_org_hist_tbl(l_count).old_active_start_date       := NULL;
1240    p_org_hist_tbl(l_count).new_active_start_date       := p_org_rec.active_start_date;
1241    p_org_hist_tbl(l_count).old_active_end_date         := NULL;
1242    p_org_hist_tbl(l_count).new_active_end_date         := p_org_rec.active_end_date;
1243    p_org_hist_tbl(l_count).old_context                 := NULL;
1244    p_org_hist_tbl(l_count).new_context                 := p_org_rec.context;
1245    p_org_hist_tbl(l_count).old_attribute1              := NULL;
1246    p_org_hist_tbl(l_count).new_attribute1              := p_org_rec.attribute1;
1247    p_org_hist_tbl(l_count).old_attribute2              := NULL;
1248    p_org_hist_tbl(l_count).new_attribute2              := p_org_rec.attribute2;
1249    p_org_hist_tbl(l_count).old_attribute3              := NULL;
1250    p_org_hist_tbl(l_count).new_attribute3              := p_org_rec.attribute3;
1251    p_org_hist_tbl(l_count).old_attribute4              := NULL;
1252    p_org_hist_tbl(l_count).new_attribute4              := p_org_rec.attribute4;
1253    p_org_hist_tbl(l_count).old_attribute5              := NULL;
1254    p_org_hist_tbl(l_count).new_attribute5              := p_org_rec.attribute5;
1258    p_org_hist_tbl(l_count).new_attribute7              := p_org_rec.attribute7;
1255    p_org_hist_tbl(l_count).old_attribute6              := NULL;
1256    p_org_hist_tbl(l_count).new_attribute6              := p_org_rec.attribute6;
1257    p_org_hist_tbl(l_count).old_attribute7              := NULL;
1259    p_org_hist_tbl(l_count).old_attribute8              := NULL;
1260    p_org_hist_tbl(l_count).new_attribute8              := p_org_rec.attribute8;
1261    p_org_hist_tbl(l_count).old_attribute9              := NULL;
1262    p_org_hist_tbl(l_count).new_attribute9              := p_org_rec.attribute9;
1263    p_org_hist_tbl(l_count).old_attribute10             := NULL;
1264    p_org_hist_tbl(l_count).new_attribute10             := p_org_rec.attribute10;
1265    p_org_hist_tbl(l_count).old_attribute11             := NULL;
1266    p_org_hist_tbl(l_count).new_attribute11             := p_org_rec.attribute11;
1267    p_org_hist_tbl(l_count).old_attribute12             := NULL;
1268    p_org_hist_tbl(l_count).new_attribute12             := p_org_rec.attribute12;
1269    p_org_hist_tbl(l_count).old_attribute13             := NULL;
1270    p_org_hist_tbl(l_count).new_attribute13             := p_org_rec.attribute13;
1271    p_org_hist_tbl(l_count).old_attribute14             := NULL;
1272    p_org_hist_tbl(l_count).new_attribute14             := p_org_rec.attribute14;
1273    p_org_hist_tbl(l_count).old_attribute15             := NULL;
1274    p_org_hist_tbl(l_count).new_attribute15             := p_org_rec.attribute15;
1275 END Build_Org_History;
1276 --
1277 PROCEDURE Build_Pricing_History
1278   (
1279     p_pricing_hist_tbl  IN OUT NOCOPY  csi_datastructures_pub.pricing_history_tbl
1280    ,p_pricing_rec       IN     csi_datastructures_pub.pricing_attribs_rec
1281    ,p_txn_id            IN     NUMBER
1282   ) IS
1283   --
1284   l_count NUMBER;
1285   l_hist_id NUMBER;
1286 BEGIN
1287    l_count := p_pricing_hist_tbl.count + 1;
1288    select CSI_I_PRICING_ATTRIBS_H_S.nextval
1289    into l_hist_id
1290    from sys.dual;
1291 
1292    p_pricing_hist_tbl(l_count).PRICE_ATTRIB_HISTORY_ID         := l_hist_id;
1293    p_pricing_hist_tbl(l_count).PRICING_ATTRIBUTE_ID            := p_pricing_rec.pricing_attribute_id;
1294    p_pricing_hist_tbl(l_count).TRANSACTION_ID                  := p_txn_id;
1295    p_pricing_hist_tbl(l_count).OLD_PRICING_CONTEXT             := NULL;
1296    p_pricing_hist_tbl(l_count).NEW_PRICING_CONTEXT             := p_pricing_rec.pricing_context;
1297    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE1          := NULL;
1298    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE1          := p_pricing_rec.pricing_attribute1;
1299    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE2          := NULL;
1300    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE2          := p_pricing_rec.pricing_attribute2;
1301    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE3          := NULL;
1302    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE3          := p_pricing_rec.pricing_attribute3;
1303    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE4          := NULL;
1304    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE4          := p_pricing_rec.pricing_attribute4;
1305    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE5          := NULL;
1306    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE5          := p_pricing_rec.pricing_attribute5;
1307    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE6          := NULL;
1308    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE6          := p_pricing_rec.pricing_attribute6;
1309    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE7          := NULL;
1310    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE7          := p_pricing_rec.pricing_attribute7;
1311    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE8          := NULL;
1312    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE8          := p_pricing_rec.pricing_attribute8;
1313    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE9          := NULL;
1314    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE9          := p_pricing_rec.pricing_attribute9;
1315    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE10         := NULL;
1316    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE10         := p_pricing_rec.pricing_attribute10;
1317    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE11         := NULL;
1318    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE11         := p_pricing_rec.pricing_attribute11;
1319    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE12         := NULL;
1320    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE12         := p_pricing_rec.pricing_attribute12;
1321    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE13         := NULL;
1322    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE13         := p_pricing_rec.pricing_attribute13;
1323    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE14         := NULL;
1324    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE14         := p_pricing_rec.pricing_attribute14;
1325    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE15         := NULL;
1326    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE15         := p_pricing_rec.pricing_attribute15;
1327    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE16         := NULL;
1328    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE16         := p_pricing_rec.pricing_attribute16;
1329    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE17         := NULL;
1330    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE17         := p_pricing_rec.pricing_attribute17;
1331    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE18         := NULL;
1332    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE18         := p_pricing_rec.pricing_attribute18;
1333    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE19         := NULL;
1334    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE19         := p_pricing_rec.pricing_attribute19;
1335    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE20         := NULL;
1336    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE20         := p_pricing_rec.pricing_attribute20;
1337    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE21         := NULL;
1341    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE23         := NULL;
1338    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE21         := p_pricing_rec.pricing_attribute21;
1339    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE22         := NULL;
1340    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE22         := p_pricing_rec.pricing_attribute22;
1342    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE23         := p_pricing_rec.pricing_attribute23;
1343    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE24         := NULL;
1344    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE24         := p_pricing_rec.pricing_attribute24;
1345    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE25         := NULL;
1346    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE25         := p_pricing_rec.pricing_attribute25;
1347    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE26         := NULL;
1348    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE26         := p_pricing_rec.pricing_attribute26;
1349    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE27         := NULL;
1350    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE27         := p_pricing_rec.pricing_attribute27;
1351    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE28         := NULL;
1352    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE28         := p_pricing_rec.pricing_attribute28;
1353    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE29         := NULL;
1354    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE29         := p_pricing_rec.pricing_attribute29;
1355    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE30         := NULL;
1356    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE30         := p_pricing_rec.pricing_attribute30;
1357    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE31         := NULL;
1358    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE31         := p_pricing_rec.pricing_attribute31;
1359    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE32         := NULL;
1360    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE32         := p_pricing_rec.pricing_attribute32;
1361    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE33         := NULL;
1362    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE33         := p_pricing_rec.pricing_attribute33;
1363    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE34         := NULL;
1364    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE34         := p_pricing_rec.pricing_attribute34;
1365    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE35         := NULL;
1366    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE35         := p_pricing_rec.pricing_attribute35;
1367    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE36         := NULL;
1368    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE36         := p_pricing_rec.pricing_attribute36;
1369    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE37         := NULL;
1370    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE37         := p_pricing_rec.pricing_attribute37;
1371    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE38         := NULL;
1372    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE38         := p_pricing_rec.pricing_attribute38;
1373    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE39         := NULL;
1374    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE39         := p_pricing_rec.pricing_attribute39;
1375    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE40         := NULL;
1376    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE40         := p_pricing_rec.pricing_attribute40;
1377    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE41         := NULL;
1378    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE41         := p_pricing_rec.pricing_attribute41;
1379    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE42         := NULL;
1380    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE42         := p_pricing_rec.pricing_attribute42;
1381    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE43         := NULL;
1382    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE43         := p_pricing_rec.pricing_attribute43;
1383    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE44         := NULL;
1384    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE44         := p_pricing_rec.pricing_attribute44;
1385    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE45         := NULL;
1386    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE45         := p_pricing_rec.pricing_attribute45;
1387    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE46         := NULL;
1388    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE46         := p_pricing_rec.pricing_attribute46;
1389    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE47         := NULL;
1390    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE47         := p_pricing_rec.pricing_attribute47;
1391    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE48         := NULL;
1392    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE48         := p_pricing_rec.pricing_attribute48;
1393    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE49         := NULL;
1394    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE49         := p_pricing_rec.pricing_attribute49;
1395    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE50         := NULL;
1396    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE50         := p_pricing_rec.pricing_attribute50;
1397    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE51         := NULL;
1398    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE51         := p_pricing_rec.pricing_attribute51;
1399    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE52         := NULL;
1400    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE52         := p_pricing_rec.pricing_attribute52;
1401    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE53         := NULL;
1402    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE53         := p_pricing_rec.pricing_attribute53;
1403    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE54         := NULL;
1404    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE54         := p_pricing_rec.pricing_attribute54;
1405    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE55         := NULL;
1406    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE55         := p_pricing_rec.pricing_attribute55;
1410    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE57         := p_pricing_rec.pricing_attribute57;
1407    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE56         := NULL;
1408    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE56         := p_pricing_rec.pricing_attribute56;
1409    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE57         := NULL;
1411    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE58         := NULL;
1412    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE58         := p_pricing_rec.pricing_attribute58;
1413    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE59         := NULL;
1414    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE59         := p_pricing_rec.pricing_attribute59;
1415    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE60         := NULL;
1416    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE60         := p_pricing_rec.pricing_attribute60;
1417    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE61         := NULL;
1418    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE61         := p_pricing_rec.pricing_attribute61;
1419    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE62         := NULL;
1420    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE62         := p_pricing_rec.pricing_attribute62;
1421    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE63         := NULL;
1422    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE63         := p_pricing_rec.pricing_attribute63;
1423    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE64         := NULL;
1424    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE64         := p_pricing_rec.pricing_attribute64;
1425    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE65         := NULL;
1426    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE65         := p_pricing_rec.pricing_attribute65;
1427    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE66         := NULL;
1428    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE66         := p_pricing_rec.pricing_attribute66;
1429    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE67         := NULL;
1430    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE67         := p_pricing_rec.pricing_attribute67;
1431    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE68         := NULL;
1432    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE68         := p_pricing_rec.pricing_attribute68;
1433    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE69         := NULL;
1434    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE69         := p_pricing_rec.pricing_attribute69;
1435    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE70         := NULL;
1436    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE70         := p_pricing_rec.pricing_attribute70;
1437    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE71         := NULL;
1438    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE71         := p_pricing_rec.pricing_attribute71;
1439    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE72         := NULL;
1440    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE72         := p_pricing_rec.pricing_attribute72;
1441    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE73         := NULL;
1442    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE73         := p_pricing_rec.pricing_attribute73;
1443    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE74         := NULL;
1444    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE74         := p_pricing_rec.pricing_attribute74;
1445    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE75         := NULL;
1446    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE75         := p_pricing_rec.pricing_attribute75;
1447    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE76         := NULL;
1448    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE76         := p_pricing_rec.pricing_attribute76;
1449    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE77         := NULL;
1450    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE77         := p_pricing_rec.pricing_attribute77;
1451    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE78         := NULL;
1452    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE78         := p_pricing_rec.pricing_attribute78;
1453    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE79         := NULL;
1454    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE79         := p_pricing_rec.pricing_attribute79;
1455    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE80         := NULL;
1456    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE80         := p_pricing_rec.pricing_attribute80;
1457    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE81         := NULL;
1458    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE81         := p_pricing_rec.pricing_attribute81;
1459    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE82         := NULL;
1460    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE82         := p_pricing_rec.pricing_attribute82;
1461    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE83         := NULL;
1462    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE83         := p_pricing_rec.pricing_attribute83;
1463    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE84         := NULL;
1464    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE84         := p_pricing_rec.pricing_attribute84;
1465    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE85         := NULL;
1466    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE85         := p_pricing_rec.pricing_attribute85;
1467    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE86         := NULL;
1468    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE86         := p_pricing_rec.pricing_attribute86;
1469    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE87         := NULL;
1470    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE87         := p_pricing_rec.pricing_attribute87;
1471    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE88         := NULL;
1472    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE88         := p_pricing_rec.pricing_attribute88;
1473    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE89         := NULL;
1474    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE89         := p_pricing_rec.pricing_attribute89;
1475    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE90         := NULL;
1476    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE90         := p_pricing_rec.pricing_attribute90;
1477    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE91         := NULL;
1478    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE91         := p_pricing_rec.pricing_attribute91;
1479    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE92         := NULL;
1480    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE92         := p_pricing_rec.pricing_attribute92;
1481    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE93         := NULL;
1482    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE93         := p_pricing_rec.pricing_attribute93;
1483    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE94         := NULL;
1484    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE94         := p_pricing_rec.pricing_attribute94;
1485    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE95         := NULL;
1486    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE95         := p_pricing_rec.pricing_attribute95;
1487    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE96         := NULL;
1488    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE96         := p_pricing_rec.pricing_attribute96;
1489    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE97         := NULL;
1490    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE97         := p_pricing_rec.pricing_attribute97;
1491    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE98         := NULL;
1492    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE98         := p_pricing_rec.pricing_attribute98;
1493    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE99         := NULL;
1494    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE99         := p_pricing_rec.pricing_attribute99;
1495    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE100        := NULL;
1496    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE100        := p_pricing_rec.pricing_attribute100;
1497    p_pricing_hist_tbl(l_count).OLD_ACTIVE_START_DATE           := NULL;
1498    p_pricing_hist_tbl(l_count).NEW_ACTIVE_START_DATE           :=  p_pricing_rec.active_start_date;
1499    p_pricing_hist_tbl(l_count).OLD_ACTIVE_END_DATE             := NULL;
1500    p_pricing_hist_tbl(l_count).NEW_ACTIVE_END_DATE             :=  p_pricing_rec.active_end_date;
1501    p_pricing_hist_tbl(l_count).OLD_CONTEXT                     := NULL;
1502    p_pricing_hist_tbl(l_count).NEW_CONTEXT                     := p_pricing_rec.context;
1503    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE1                  := NULL;
1504    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE1                  := p_pricing_rec.ATTRIBUTE1;
1505    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE2                  := NULL;
1506    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE2                  := p_pricing_rec.ATTRIBUTE2;
1507    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE3                  := NULL;
1508    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE3                  := p_pricing_rec.ATTRIBUTE3;
1509    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE4                  := NULL;
1510    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE4                  := p_pricing_rec.ATTRIBUTE4;
1511    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE5                  := NULL;
1512    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE5                  := p_pricing_rec.ATTRIBUTE5;
1513    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE6                  := NULL;
1514    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE6                  := p_pricing_rec.ATTRIBUTE6;
1515    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE7                  := NULL;
1516    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE7                  := p_pricing_rec.ATTRIBUTE7;
1517    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE8                  := NULL;
1518    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE8                  := p_pricing_rec.ATTRIBUTE8;
1519    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE9                  := NULL;
1520    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE9                  := p_pricing_rec.ATTRIBUTE9;
1521    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE10                 := NULL;
1522    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE10                 := p_pricing_rec.ATTRIBUTE10;
1523    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE11                 := NULL;
1524    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE11                 := p_pricing_rec.ATTRIBUTE11;
1525    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE12                 := NULL;
1526    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE12                 := p_pricing_rec.ATTRIBUTE12;
1527    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE13                 := NULL;
1528    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE13                 := p_pricing_rec.ATTRIBUTE13;
1529    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE14                 := NULL;
1530    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE14                 := p_pricing_rec.ATTRIBUTE14;
1531    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE15                 := NULL;
1532    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE15                 := p_pricing_rec.ATTRIBUTE15;
1533 END Build_Pricing_History;
1534 --
1535 PROCEDURE Build_Ext_Attr_History
1536   (
1537     p_ext_attr_hist_tbl IN OUT NOCOPY  csi_datastructures_pub.ext_attrib_val_history_tbl
1538    ,p_ext_attr_rec      IN     csi_datastructures_pub.extend_attrib_values_rec
1539    ,p_txn_id            IN     NUMBER
1540   ) IS
1541   --
1542   l_count NUMBER;
1543   l_hist_id NUMBER;
1544 BEGIN
1545    l_count := p_ext_attr_hist_tbl.count + 1;
1546    select CSI_IEA_VALUES_H_S.nextval
1547    into l_hist_id
1548    from sys.dual;
1549 
1550    p_ext_attr_hist_tbl(l_count).attribute_value_history_id := l_hist_id;
1551    p_ext_attr_hist_tbl(l_count).attribute_value_id := p_ext_attr_rec.attribute_value_id;
1552    p_ext_attr_hist_tbl(l_count).transaction_id := p_txn_id;
1553    p_ext_attr_hist_tbl(l_count).old_attribute_value   := NULL;
1554    p_ext_attr_hist_tbl(l_count).new_attribute_value   := p_ext_attr_rec.attribute_value;
1555    p_ext_attr_hist_tbl(l_count).old_active_start_date := NULL;
1556    p_ext_attr_hist_tbl(l_count).new_active_start_date := p_ext_attr_rec.active_start_date;
1557    p_ext_attr_hist_tbl(l_count).old_active_end_date   := NULL;
1558    p_ext_attr_hist_tbl(l_count).new_active_end_date := p_ext_attr_rec.active_end_date;
1559    p_ext_attr_hist_tbl(l_count).old_context           := NULL;
1560    p_ext_attr_hist_tbl(l_count).new_context           := p_ext_attr_rec.context;
1561    p_ext_attr_hist_tbl(l_count).old_attribute1        := NULL;
1562    p_ext_attr_hist_tbl(l_count).new_attribute1        := p_ext_attr_rec.attribute1;
1563    p_ext_attr_hist_tbl(l_count).old_attribute2        := NULL;
1564    p_ext_attr_hist_tbl(l_count).new_attribute2        := p_ext_attr_rec.attribute2;
1565    p_ext_attr_hist_tbl(l_count).old_attribute3        := NULL;
1566    p_ext_attr_hist_tbl(l_count).new_attribute3        := p_ext_attr_rec.attribute3;
1567    p_ext_attr_hist_tbl(l_count).old_attribute4        := NULL;
1568    p_ext_attr_hist_tbl(l_count).new_attribute4        := p_ext_attr_rec.attribute4;
1569    p_ext_attr_hist_tbl(l_count).old_attribute5        := NULL;
1570    p_ext_attr_hist_tbl(l_count).new_attribute5        := p_ext_attr_rec.attribute5;
1571    p_ext_attr_hist_tbl(l_count).old_attribute6        := NULL;
1572    p_ext_attr_hist_tbl(l_count).new_attribute6        := p_ext_attr_rec.attribute6;
1573    p_ext_attr_hist_tbl(l_count).old_attribute7        := NULL;
1574    p_ext_attr_hist_tbl(l_count).new_attribute7        := p_ext_attr_rec.attribute7;
1575    p_ext_attr_hist_tbl(l_count).old_attribute8        := NULL;
1576    p_ext_attr_hist_tbl(l_count).new_attribute8        := p_ext_attr_rec.attribute8;
1577    p_ext_attr_hist_tbl(l_count).old_attribute9        := NULL;
1578    p_ext_attr_hist_tbl(l_count).new_attribute9        := p_ext_attr_rec.attribute9;
1579    p_ext_attr_hist_tbl(l_count).old_attribute10       := NULL;
1580    p_ext_attr_hist_tbl(l_count).new_attribute10       := p_ext_attr_rec.attribute10;
1581    p_ext_attr_hist_tbl(l_count).old_attribute11       := NULL;
1582    p_ext_attr_hist_tbl(l_count).new_attribute11       := p_ext_attr_rec.attribute11;
1583    p_ext_attr_hist_tbl(l_count).old_attribute12       := NULL;
1584    p_ext_attr_hist_tbl(l_count).new_attribute12       := p_ext_attr_rec.attribute12;
1585    p_ext_attr_hist_tbl(l_count).old_attribute13       := NULL;
1586    p_ext_attr_hist_tbl(l_count).new_attribute13       := p_ext_attr_rec.attribute13;
1587    p_ext_attr_hist_tbl(l_count).old_attribute14       := NULL;
1588    p_ext_attr_hist_tbl(l_count).new_attribute14       := p_ext_attr_rec.attribute14;
1589    p_ext_attr_hist_tbl(l_count).old_attribute15       := NULL;
1590    p_ext_attr_hist_tbl(l_count).new_attribute15       := p_ext_attr_rec.attribute15;
1591    p_ext_attr_hist_tbl(l_count).attribute_code        := p_ext_attr_rec.attribute_code;
1592 
1593 END Build_Ext_Attr_History;
1594 --
1595 PROCEDURE Build_Asset_History
1596   (
1597     p_asset_hist_tbl IN OUT NOCOPY  csi_datastructures_pub.ins_asset_history_tbl
1598    ,p_asset_rec      IN     csi_datastructures_pub.instance_asset_rec
1599    ,p_txn_id         IN     NUMBER
1600   ) IS
1601   --
1602   l_count NUMBER;
1603   l_hist_id NUMBER;
1604 BEGIN
1605    l_count := p_asset_hist_tbl.count + 1;
1606    select CSI_I_ASSETS_H_S.nextval
1607    into l_hist_id
1608    from sys.dual;
1609 
1610    p_asset_hist_tbl(l_count).instance_asset_history_id := l_hist_id;
1611    p_asset_hist_tbl(l_count).transaction_id            := p_txn_id;
1612    p_asset_hist_tbl(l_count).instance_asset_id         := p_asset_rec.instance_asset_id;
1613    p_asset_hist_tbl(l_count).old_instance_id           := NULL;
1614    p_asset_hist_tbl(l_count).new_instance_id           := p_asset_rec.instance_id;
1615    p_asset_hist_tbl(l_count).old_fa_asset_id           := NULL;
1616    p_asset_hist_tbl(l_count).new_fa_asset_id           := p_asset_rec.fa_asset_id;
1617    p_asset_hist_tbl(l_count).old_fa_book_type_code     := NULL;
1618    p_asset_hist_tbl(l_count).new_fa_book_type_code     := p_asset_rec.fa_book_type_code;
1619    p_asset_hist_tbl(l_count).old_fa_location_id        := NULL;
1620    p_asset_hist_tbl(l_count).new_fa_location_id        := p_asset_rec.fa_location_id;
1621    p_asset_hist_tbl(l_count).old_asset_quantity        := NULL;
1622    p_asset_hist_tbl(l_count).new_asset_quantity        := p_asset_rec.asset_quantity;
1623    p_asset_hist_tbl(l_count).old_update_status         := NULL;
1624    p_asset_hist_tbl(l_count).new_update_status         := p_asset_rec.update_status;
1625    p_asset_hist_tbl(l_count).old_active_start_date     := NULL;
1626    p_asset_hist_tbl(l_count).new_active_start_date     := p_asset_rec.active_start_date;
1627    p_asset_hist_tbl(l_count).old_active_end_date       := NULL;
1628    p_asset_hist_tbl(l_count).new_active_end_date       := p_asset_rec.active_end_date;
1629 
1630 END Build_Asset_History;
1631 --
1632 PROCEDURE Build_Inst_Rec_of_Table
1633    (
1634      p_inst_tbl           IN      csi_datastructures_pub.instance_tbl
1635     ,p_inst_rec_tab       IN OUT NOCOPY   csi_item_instance_grp.instance_rec_tab
1636    ) IS
1637 BEGIN
1638    FOR i in p_inst_tbl.FIRST .. p_inst_tbl.LAST LOOP
1639       p_inst_rec_tab.INSTANCE_ID(i)           :=	p_inst_tbl(i).INSTANCE_ID;
1640       p_inst_rec_tab.instance_number(i)       :=	p_inst_tbl(i).instance_number;
1641       p_inst_rec_tab.external_reference(i)       :=	p_inst_tbl(i).external_reference;
1642       p_inst_rec_tab.inventory_item_id(i)       :=	p_inst_tbl(i).inventory_item_id;
1643       p_inst_rec_tab.vld_organization_id(i)       :=	p_inst_tbl(i).vld_organization_id;
1644       p_inst_rec_tab.inventory_revision(i)       :=	p_inst_tbl(i).inventory_revision;
1645       p_inst_rec_tab.inv_master_organization_id(i)       :=	p_inst_tbl(i).inv_master_organization_id;
1646       p_inst_rec_tab.serial_number(i)       :=	p_inst_tbl(i).serial_number;
1647       p_inst_rec_tab.mfg_serial_number_flag(i)       :=	p_inst_tbl(i).mfg_serial_number_flag;
1648       p_inst_rec_tab.lot_number(i)       :=	p_inst_tbl(i).lot_number;
1649       p_inst_rec_tab.quantity(i)       :=	p_inst_tbl(i).quantity;
1650       p_inst_rec_tab.unit_of_measure(i)       :=	p_inst_tbl(i).unit_of_measure;
1651       p_inst_rec_tab.accounting_class_code(i)       :=	p_inst_tbl(i).accounting_class_code;
1652       p_inst_rec_tab.instance_condition_id(i)       :=	p_inst_tbl(i).instance_condition_id;
1653       p_inst_rec_tab.instance_status_id(i)       :=	p_inst_tbl(i).instance_status_id;
1654       p_inst_rec_tab.customer_view_flag(i)       :=	p_inst_tbl(i).customer_view_flag;
1655       p_inst_rec_tab.merchant_view_flag(i)       :=	p_inst_tbl(i).merchant_view_flag;
1656       p_inst_rec_tab.sellable_flag(i)       :=	p_inst_tbl(i).sellable_flag;
1657       p_inst_rec_tab.system_id(i)       :=	p_inst_tbl(i).system_id;
1658       p_inst_rec_tab.instance_type_code(i)       :=	p_inst_tbl(i).instance_type_code;
1659       p_inst_rec_tab.active_start_date(i)       :=	p_inst_tbl(i).active_start_date;
1660       p_inst_rec_tab.active_end_date(i)       :=	p_inst_tbl(i).active_end_date;
1661       p_inst_rec_tab.location_type_code(i)       :=	p_inst_tbl(i).location_type_code;
1662       p_inst_rec_tab.location_id(i)       :=	p_inst_tbl(i).location_id;
1663       p_inst_rec_tab.inv_organization_id(i)       :=	p_inst_tbl(i).inv_organization_id;
1664       p_inst_rec_tab.inv_subinventory_name(i)       :=	p_inst_tbl(i).inv_subinventory_name;
1665       p_inst_rec_tab.inv_locator_id(i)       :=	p_inst_tbl(i).inv_locator_id;
1666       p_inst_rec_tab.pa_project_id(i)       :=	p_inst_tbl(i).pa_project_id;
1667       p_inst_rec_tab.pa_project_task_id(i)       :=	p_inst_tbl(i).pa_project_task_id;
1668       p_inst_rec_tab.in_transit_order_line_id(i)       :=	p_inst_tbl(i).in_transit_order_line_id;
1669       p_inst_rec_tab.wip_job_id(i)       :=	p_inst_tbl(i).wip_job_id;
1670       p_inst_rec_tab.po_order_line_id(i)       :=	p_inst_tbl(i).po_order_line_id;
1671       p_inst_rec_tab.last_oe_order_line_id(i)       :=	p_inst_tbl(i).last_oe_order_line_id;
1672       p_inst_rec_tab.last_oe_rma_line_id(i)       :=	p_inst_tbl(i).last_oe_rma_line_id;
1673       p_inst_rec_tab.last_po_po_line_id(i)       :=	p_inst_tbl(i).last_po_po_line_id;
1674       p_inst_rec_tab.last_oe_po_number(i)       :=	p_inst_tbl(i).last_oe_po_number;
1675       p_inst_rec_tab.last_wip_job_id(i)       :=	p_inst_tbl(i).last_wip_job_id;
1676       p_inst_rec_tab.last_pa_project_id(i)       :=	p_inst_tbl(i).last_pa_project_id;
1677       p_inst_rec_tab.last_pa_task_id(i)       :=	p_inst_tbl(i).last_pa_task_id;
1678       p_inst_rec_tab.last_oe_agreement_id(i)       :=	p_inst_tbl(i).last_oe_agreement_id;
1679       p_inst_rec_tab.install_date(i)       :=	p_inst_tbl(i).install_date;
1680       p_inst_rec_tab.manually_created_flag(i)       :=	p_inst_tbl(i).manually_created_flag;
1681       p_inst_rec_tab.return_by_date(i)       :=	p_inst_tbl(i).return_by_date;
1682       p_inst_rec_tab.actual_return_date(i)       :=	p_inst_tbl(i).actual_return_date;
1683       p_inst_rec_tab.creation_complete_flag(i)       :=	p_inst_tbl(i).creation_complete_flag;
1684       p_inst_rec_tab.completeness_flag(i)       :=	p_inst_tbl(i).completeness_flag;
1685       p_inst_rec_tab.version_label(i)       :=	p_inst_tbl(i).version_label;
1686       p_inst_rec_tab.version_label_description(i)       :=	p_inst_tbl(i).version_label_description;
1687       p_inst_rec_tab.context(i)       :=	p_inst_tbl(i).context;
1688       p_inst_rec_tab.attribute1(i)       :=	p_inst_tbl(i).attribute1;
1689       p_inst_rec_tab.attribute2(i)       :=	p_inst_tbl(i).attribute2;
1690       p_inst_rec_tab.attribute3(i)       :=	p_inst_tbl(i).attribute3;
1691       p_inst_rec_tab.attribute4(i)       :=	p_inst_tbl(i).attribute4;
1692       p_inst_rec_tab.attribute5(i)       :=	p_inst_tbl(i).attribute5;
1693       p_inst_rec_tab.attribute6(i)       :=	p_inst_tbl(i).attribute6;
1694       p_inst_rec_tab.attribute7(i)       :=	p_inst_tbl(i).attribute7;
1695       p_inst_rec_tab.attribute8(i)       :=	p_inst_tbl(i).attribute8;
1696       p_inst_rec_tab.attribute9(i)       :=	p_inst_tbl(i).attribute9;
1697       p_inst_rec_tab.attribute10(i)       :=	p_inst_tbl(i).attribute10;
1698       p_inst_rec_tab.attribute11(i)       :=	p_inst_tbl(i).attribute11;
1699       p_inst_rec_tab.attribute12(i)       :=	p_inst_tbl(i).attribute12;
1700       p_inst_rec_tab.attribute13(i)       :=	p_inst_tbl(i).attribute13;
1701       p_inst_rec_tab.attribute14(i)       :=	p_inst_tbl(i).attribute14;
1702       p_inst_rec_tab.attribute15(i)       :=	p_inst_tbl(i).attribute15;
1703       p_inst_rec_tab.object_version_number(i)       :=	p_inst_tbl(i).object_version_number;
1704       p_inst_rec_tab.last_txn_line_detail_id(i)       :=	p_inst_tbl(i).last_txn_line_detail_id;
1705       p_inst_rec_tab.install_location_type_code(i)       :=	p_inst_tbl(i).install_location_type_code;
1706       p_inst_rec_tab.install_location_id(i)       :=	p_inst_tbl(i).install_location_id;
1707       p_inst_rec_tab.instance_usage_code(i)       :=	p_inst_tbl(i).instance_usage_code;
1708       p_inst_rec_tab.check_for_instance_expiry(i)       :=	p_inst_tbl(i).check_for_instance_expiry;
1709       p_inst_rec_tab.call_contracts(i)       :=	p_inst_tbl(i).call_contracts;
1710       p_inst_rec_tab.grp_call_contracts(i)       :=	p_inst_tbl(i).grp_call_contracts;
1711       p_inst_rec_tab.config_inst_hdr_id(i)       :=	p_inst_tbl(i).config_inst_hdr_id;
1712       p_inst_rec_tab.config_inst_rev_num(i)       :=	p_inst_tbl(i).config_inst_rev_num;
1713       p_inst_rec_tab.config_inst_item_id(i)       :=	p_inst_tbl(i).config_inst_item_id;
1714       p_inst_rec_tab.config_valid_status(i)       :=	p_inst_tbl(i).config_valid_status;
1715       p_inst_rec_tab.instance_description(i)       :=	p_inst_tbl(i).instance_description;
1716 
1717       p_inst_rec_tab.network_asset_flag(i)       := p_inst_tbl(i).network_asset_flag;
1718       p_inst_rec_tab.maintainable_flag(i)        := p_inst_tbl(i).maintainable_flag;
1719       p_inst_rec_tab.asset_criticality_code(i)   := p_inst_tbl(i).asset_criticality_code;
1720       p_inst_rec_tab.category_id(i)              := p_inst_tbl(i).category_id ;
1721       p_inst_rec_tab.equipment_gen_object_id(i)  := p_inst_tbl(i).equipment_gen_object_id ;
1722       p_inst_rec_tab.instantiation_flag(i)       := p_inst_tbl(i).instantiation_flag;
1723       p_inst_rec_tab.operational_log_flag(i)     := p_inst_tbl(i).operational_log_flag ;
1724       p_inst_rec_tab.supplier_warranty_exp_date(i) := p_inst_tbl(i).supplier_warranty_exp_date ;
1725       p_inst_rec_tab.attribute16(i)               := p_inst_tbl(i).attribute16;
1726       p_inst_rec_tab.attribute17(i)               := p_inst_tbl(i).attribute17;
1727       p_inst_rec_tab.attribute18(i)               := p_inst_tbl(i).attribute18;
1728       p_inst_rec_tab.attribute19(i)               := p_inst_tbl(i).attribute19;
1729       p_inst_rec_tab.attribute20(i)               := p_inst_tbl(i).attribute20;
1730       p_inst_rec_tab.attribute21(i)               := p_inst_tbl(i).attribute21;
1731       p_inst_rec_tab.attribute22(i)               := p_inst_tbl(i).attribute22;
1732       p_inst_rec_tab.attribute23(i)               := p_inst_tbl(i).attribute23;
1733       p_inst_rec_tab.attribute24(i)               := p_inst_tbl(i).attribute24;
1734       p_inst_rec_tab.attribute25(i)               := p_inst_tbl(i).attribute25;
1735       p_inst_rec_tab.attribute26(i)               := p_inst_tbl(i).attribute26;
1736       p_inst_rec_tab.attribute27(i)               := p_inst_tbl(i).attribute27;
1737       p_inst_rec_tab.attribute28(i)               := p_inst_tbl(i).attribute28;
1738       p_inst_rec_tab.attribute29(i)               := p_inst_tbl(i).attribute29;
1739       p_inst_rec_tab.attribute30(i)               := p_inst_tbl(i).attribute30;
1740 
1741       p_inst_rec_tab.purchase_unit_price(i)       := p_inst_tbl(i).purchase_unit_price;
1742       p_inst_rec_tab.purchase_currency_code(i)    := p_inst_tbl(i).purchase_currency_code;
1743       p_inst_rec_tab.payables_unit_price(i)       := p_inst_tbl(i).payables_unit_price;
1744       p_inst_rec_tab.payables_currency_code(i)    := p_inst_tbl(i).payables_currency_code;
1745       p_inst_rec_tab.sales_unit_price(i)          := p_inst_tbl(i).sales_unit_price;
1746       p_inst_rec_tab.sales_currency_code(i)       := p_inst_tbl(i).sales_currency_code;
1747       p_inst_rec_tab.operational_status_code(i)   := p_inst_tbl(i).operational_status_code;
1748 
1749    END LOOP;
1750 END Build_Inst_Rec_of_Table;
1751 --
1752 PROCEDURE Build_Inst_Hist_Rec_of_Table
1753   ( p_inst_hist_tbl       IN     csi_datastructures_pub.instance_history_tbl
1754    ,p_inst_hist_rec_tab   IN OUT NOCOPY  csi_item_instance_grp.instance_history_rec_tab
1755   ) IS
1756 BEGIN
1757    FOR i in p_inst_hist_tbl.FIRST .. p_inst_hist_tbl.LAST LOOP
1758       p_inst_hist_rec_tab.instance_id(i)	   :=  p_inst_hist_tbl(i).instance_id;
1759       p_inst_hist_rec_tab.old_instance_number(i)	   :=  p_inst_hist_tbl(i).old_instance_number;
1760       p_inst_hist_rec_tab.new_instance_number(i)	   :=  p_inst_hist_tbl(i).new_instance_number;
1761       p_inst_hist_rec_tab.old_external_reference(i)	   :=  p_inst_hist_tbl(i).old_external_reference;
1762       p_inst_hist_rec_tab.new_external_reference(i)	   :=  p_inst_hist_tbl(i).new_external_reference;
1763       p_inst_hist_rec_tab.old_inventory_item_id(i)	   :=  p_inst_hist_tbl(i).old_inventory_item_id;
1764       p_inst_hist_rec_tab.new_inventory_item_id(i)	   :=  p_inst_hist_tbl(i).new_inventory_item_id;
1765       p_inst_hist_rec_tab.old_inventory_revision(i)	   :=  p_inst_hist_tbl(i).old_inventory_revision;
1766       p_inst_hist_rec_tab.new_inventory_revision(i)	   :=  p_inst_hist_tbl(i).new_inventory_revision;
1767       p_inst_hist_rec_tab.old_inv_master_org_id(i)	   :=  p_inst_hist_tbl(i).old_inv_master_org_id;
1768       p_inst_hist_rec_tab.new_inv_master_org_id(i)	   :=  p_inst_hist_tbl(i).new_inv_master_org_id;
1769       p_inst_hist_rec_tab.old_serial_number(i)	   :=  p_inst_hist_tbl(i).old_serial_number;
1770       p_inst_hist_rec_tab.new_serial_number(i)	   :=  p_inst_hist_tbl(i).new_serial_number;
1771       p_inst_hist_rec_tab.old_mfg_serial_number_flag(i)   :=  p_inst_hist_tbl(i).old_mfg_serial_number_flag;
1772       p_inst_hist_rec_tab.new_mfg_serial_number_flag(i)   :=  p_inst_hist_tbl(i).new_mfg_serial_number_flag;
1773       p_inst_hist_rec_tab.old_lot_number(i)	   :=  p_inst_hist_tbl(i).old_lot_number;
1774       p_inst_hist_rec_tab.new_lot_number(i)	   :=  p_inst_hist_tbl(i).new_lot_number;
1775       p_inst_hist_rec_tab.old_quantity(i)	   :=  p_inst_hist_tbl(i).old_quantity;
1776       p_inst_hist_rec_tab.new_quantity(i)	   :=  p_inst_hist_tbl(i).new_quantity;
1777       p_inst_hist_rec_tab.old_unit_of_measure_name(i)	   :=  p_inst_hist_tbl(i).old_unit_of_measure_name;
1778       p_inst_hist_rec_tab.new_unit_of_measure_name(i)	   :=  p_inst_hist_tbl(i).new_unit_of_measure_name;
1779       p_inst_hist_rec_tab.old_unit_of_measure(i)	   :=  p_inst_hist_tbl(i).old_unit_of_measure;
1780       p_inst_hist_rec_tab.new_unit_of_measure(i)	   :=  p_inst_hist_tbl(i).new_unit_of_measure;
1781       p_inst_hist_rec_tab.old_accounting_class(i)	   :=  p_inst_hist_tbl(i).old_accounting_class;
1782       p_inst_hist_rec_tab.new_accounting_class(i)	   :=  p_inst_hist_tbl(i).new_accounting_class;
1783       p_inst_hist_rec_tab.old_accounting_class_code(i)   :=  p_inst_hist_tbl(i).old_accounting_class_code;
1784       p_inst_hist_rec_tab.new_accounting_class_code(i)   :=  p_inst_hist_tbl(i).new_accounting_class_code;
1785       p_inst_hist_rec_tab.old_instance_condition(i)	   :=  p_inst_hist_tbl(i).old_instance_condition;
1786       p_inst_hist_rec_tab.new_instance_condition(i)	   :=  p_inst_hist_tbl(i).new_instance_condition;
1787       p_inst_hist_rec_tab.old_instance_condition_id(i)   :=  p_inst_hist_tbl(i).old_instance_condition_id;
1788       p_inst_hist_rec_tab.new_instance_condition_id(i)   :=  p_inst_hist_tbl(i).new_instance_condition_id;
1789       p_inst_hist_rec_tab.old_instance_status(i)	   :=  p_inst_hist_tbl(i).old_instance_status;
1790       p_inst_hist_rec_tab.new_instance_status(i)	   :=  p_inst_hist_tbl(i).new_instance_status;
1791       p_inst_hist_rec_tab.old_instance_status_id(i)	   :=  p_inst_hist_tbl(i).old_instance_status_id;
1792       p_inst_hist_rec_tab.new_instance_status_id(i)	   :=  p_inst_hist_tbl(i).new_instance_status_id;
1793       p_inst_hist_rec_tab.old_customer_view_flag(i)	   :=  p_inst_hist_tbl(i).old_customer_view_flag;
1794       p_inst_hist_rec_tab.new_customer_view_flag(i)	   :=  p_inst_hist_tbl(i).new_customer_view_flag;
1795       p_inst_hist_rec_tab.old_merchant_view_flag(i)	   :=  p_inst_hist_tbl(i).old_merchant_view_flag;
1796       p_inst_hist_rec_tab.new_merchant_view_flag(i)	   :=  p_inst_hist_tbl(i).new_merchant_view_flag;
1797       p_inst_hist_rec_tab.old_sellable_flag(i)	   :=  p_inst_hist_tbl(i).old_sellable_flag;
1798       p_inst_hist_rec_tab.new_sellable_flag(i)	   :=  p_inst_hist_tbl(i).new_sellable_flag;
1799       p_inst_hist_rec_tab.old_system_id(i)	   :=  p_inst_hist_tbl(i).old_system_id;
1800       p_inst_hist_rec_tab.new_system_id(i)	   :=  p_inst_hist_tbl(i).new_system_id;
1801       p_inst_hist_rec_tab.old_system_name(i)	   :=  p_inst_hist_tbl(i).old_system_name;
1802       p_inst_hist_rec_tab.new_system_name(i)	   :=  p_inst_hist_tbl(i).new_system_name;
1803       p_inst_hist_rec_tab.old_instance_type_code(i)	   :=  p_inst_hist_tbl(i).old_instance_type_code;
1807       p_inst_hist_rec_tab.old_active_start_date(i)	   :=  p_inst_hist_tbl(i).old_active_start_date;
1804       p_inst_hist_rec_tab.new_instance_type_code(i)	   :=  p_inst_hist_tbl(i).new_instance_type_code;
1805       p_inst_hist_rec_tab.old_instance_type_name(i)	   :=  p_inst_hist_tbl(i).old_instance_type_name;
1806       p_inst_hist_rec_tab.new_instance_type_name(i)	   :=  p_inst_hist_tbl(i).new_instance_type_name;
1808       p_inst_hist_rec_tab.new_active_start_date(i)	   :=  p_inst_hist_tbl(i).new_active_start_date;
1809       p_inst_hist_rec_tab.old_active_end_date(i)	   :=  p_inst_hist_tbl(i).old_active_end_date;
1810       p_inst_hist_rec_tab.new_active_end_date(i)	   :=  p_inst_hist_tbl(i).new_active_end_date;
1811       p_inst_hist_rec_tab.old_location_type_code(i)	   :=  p_inst_hist_tbl(i).old_location_type_code;
1812       p_inst_hist_rec_tab.new_location_type_code(i)	   :=  p_inst_hist_tbl(i).new_location_type_code;
1813       p_inst_hist_rec_tab.old_location_id(i)	   :=  p_inst_hist_tbl(i).old_location_id;
1814       p_inst_hist_rec_tab.new_location_id(i)	   :=  p_inst_hist_tbl(i).new_location_id;
1815       p_inst_hist_rec_tab.old_inv_organization_id(i)	   :=  p_inst_hist_tbl(i).old_inv_organization_id;
1816       p_inst_hist_rec_tab.new_inv_organization_id(i)	   :=  p_inst_hist_tbl(i).new_inv_organization_id;
1817       p_inst_hist_rec_tab.old_inv_organization_name(i)   :=  p_inst_hist_tbl(i).old_inv_organization_name;
1818       p_inst_hist_rec_tab.new_inv_organization_name(i)   :=  p_inst_hist_tbl(i).new_inv_organization_name;
1819       p_inst_hist_rec_tab.old_inv_subinventory_name(i)   :=  p_inst_hist_tbl(i).old_inv_subinventory_name;
1820       p_inst_hist_rec_tab.new_inv_subinventory_name(i)   :=  p_inst_hist_tbl(i).new_inv_subinventory_name;
1821       p_inst_hist_rec_tab.old_inv_locator_id(i)	   :=  p_inst_hist_tbl(i).old_inv_locator_id;
1822       p_inst_hist_rec_tab.new_inv_locator_id(i)	   :=  p_inst_hist_tbl(i).new_inv_locator_id;
1823       p_inst_hist_rec_tab.old_pa_project_id(i)	   :=  p_inst_hist_tbl(i).old_pa_project_id;
1824       p_inst_hist_rec_tab.new_pa_project_id(i)	   :=  p_inst_hist_tbl(i).new_pa_project_id;
1825       p_inst_hist_rec_tab.old_pa_project_task_id(i)	   :=  p_inst_hist_tbl(i).old_pa_project_task_id;
1826       p_inst_hist_rec_tab.new_pa_project_task_id(i)	   :=  p_inst_hist_tbl(i).new_pa_project_task_id;
1827       p_inst_hist_rec_tab.old_pa_project_name(i)	   :=  p_inst_hist_tbl(i).old_pa_project_name;
1828       p_inst_hist_rec_tab.new_pa_project_name(i)	   :=  p_inst_hist_tbl(i).new_pa_project_name;
1829       p_inst_hist_rec_tab.old_pa_project_number(i)	   :=  p_inst_hist_tbl(i).old_pa_project_number;
1830       p_inst_hist_rec_tab.new_pa_project_number(i)	   :=  p_inst_hist_tbl(i).new_pa_project_number;
1831       p_inst_hist_rec_tab.old_pa_task_name(i)	   :=  p_inst_hist_tbl(i).old_pa_task_name;
1832       p_inst_hist_rec_tab.new_pa_task_name(i)	   :=  p_inst_hist_tbl(i).new_pa_task_name;
1833       p_inst_hist_rec_tab.old_pa_task_number(i)	   :=  p_inst_hist_tbl(i).old_pa_task_number;
1834       p_inst_hist_rec_tab.new_pa_task_number(i)	   :=  p_inst_hist_tbl(i).new_pa_task_number;
1835       p_inst_hist_rec_tab.old_in_transit_order_line_id(i) := p_inst_hist_tbl(i).old_in_transit_order_line_id;
1836       p_inst_hist_rec_tab.new_in_transit_order_line_id(i) := p_inst_hist_tbl(i).new_in_transit_order_line_id;
1837       p_inst_hist_rec_tab.old_in_transit_order_line_num(i) := p_inst_hist_tbl(i).old_in_transit_order_line_num;
1838       p_inst_hist_rec_tab.new_in_transit_order_line_num(i) := p_inst_hist_tbl(i).new_in_transit_order_line_num;
1839       p_inst_hist_rec_tab.old_in_transit_order_number(i)  :=  p_inst_hist_tbl(i).old_in_transit_order_number;
1840       p_inst_hist_rec_tab.new_in_transit_order_number(i)  :=  p_inst_hist_tbl(i).new_in_transit_order_number;
1841       p_inst_hist_rec_tab.old_wip_job_id(i)	   :=  p_inst_hist_tbl(i).old_wip_job_id;
1842       p_inst_hist_rec_tab.new_wip_job_id(i)	   :=  p_inst_hist_tbl(i).new_wip_job_id;
1843       p_inst_hist_rec_tab.old_wip_entity_name(i)   :=  p_inst_hist_tbl(i).old_wip_entity_name;
1844       p_inst_hist_rec_tab.new_wip_entity_name(i)   :=  p_inst_hist_tbl(i).new_wip_entity_name;
1845       p_inst_hist_rec_tab.old_po_order_line_id(i)   :=  p_inst_hist_tbl(i).old_po_order_line_id;
1846       p_inst_hist_rec_tab.new_po_order_line_id(i) :=  p_inst_hist_tbl(i).new_po_order_line_id;
1847       p_inst_hist_rec_tab.old_last_oe_order_line_id(i)   :=  p_inst_hist_tbl(i).old_last_oe_order_line_id;
1848       p_inst_hist_rec_tab.new_last_oe_order_line_id(i)   :=  p_inst_hist_tbl(i).new_last_oe_order_line_id;
1849       p_inst_hist_rec_tab.old_last_oe_rma_line_id(i)	   :=  p_inst_hist_tbl(i).old_last_oe_rma_line_id;
1850       p_inst_hist_rec_tab.new_last_oe_rma_line_id(i)	   :=  p_inst_hist_tbl(i).new_last_oe_rma_line_id;
1851       p_inst_hist_rec_tab.old_last_po_po_line_id(i)	   :=  p_inst_hist_tbl(i).old_last_po_po_line_id;
1852       p_inst_hist_rec_tab.new_last_po_po_line_id(i)	   :=  p_inst_hist_tbl(i).new_last_po_po_line_id;
1853       p_inst_hist_rec_tab.old_last_oe_po_number(i)	   :=  p_inst_hist_tbl(i).old_last_oe_po_number;
1854       p_inst_hist_rec_tab.new_last_oe_po_number(i)	   :=  p_inst_hist_tbl(i).new_last_oe_po_number;
1855       p_inst_hist_rec_tab.old_last_wip_job_id(i)	   :=  p_inst_hist_tbl(i).old_last_wip_job_id;
1856       p_inst_hist_rec_tab.new_last_wip_job_id(i)	   :=  p_inst_hist_tbl(i).new_last_wip_job_id;
1857       p_inst_hist_rec_tab.old_last_pa_project_id(i)	   :=  p_inst_hist_tbl(i).old_last_pa_project_id;
1858       p_inst_hist_rec_tab.new_last_pa_project_id(i)	   :=  p_inst_hist_tbl(i).new_last_pa_project_id;
1859       p_inst_hist_rec_tab.old_last_pa_task_id(i)	   :=  p_inst_hist_tbl(i).old_last_pa_task_id;
1860       p_inst_hist_rec_tab.new_last_pa_task_id(i)	   :=  p_inst_hist_tbl(i).new_last_pa_task_id;
1861       p_inst_hist_rec_tab.old_last_oe_agreement_id(i)	   :=  p_inst_hist_tbl(i).old_last_oe_agreement_id;
1862       p_inst_hist_rec_tab.new_last_oe_agreement_id(i)	   :=  p_inst_hist_tbl(i).new_last_oe_agreement_id;
1863       p_inst_hist_rec_tab.old_install_date(i)	   :=  p_inst_hist_tbl(i).old_install_date;
1864       p_inst_hist_rec_tab.new_install_date(i)	   :=  p_inst_hist_tbl(i).new_install_date;
1865       p_inst_hist_rec_tab.old_manually_created_flag(i)   :=  p_inst_hist_tbl(i).old_manually_created_flag;
1866       p_inst_hist_rec_tab.new_manually_created_flag(i)   :=  p_inst_hist_tbl(i).new_manually_created_flag;
1870       p_inst_hist_rec_tab.new_actual_return_date(i)	   :=  p_inst_hist_tbl(i).new_actual_return_date;
1867       p_inst_hist_rec_tab.old_return_by_date(i)	   :=  p_inst_hist_tbl(i).old_return_by_date;
1868       p_inst_hist_rec_tab.new_return_by_date(i)	   :=  p_inst_hist_tbl(i).new_return_by_date;
1869       p_inst_hist_rec_tab.old_actual_return_date(i)	   :=  p_inst_hist_tbl(i).old_actual_return_date;
1871       p_inst_hist_rec_tab.old_creation_complete_flag(i)  :=  p_inst_hist_tbl(i).old_creation_complete_flag;
1872       p_inst_hist_rec_tab.new_creation_complete_flag(i)   :=  p_inst_hist_tbl(i).new_creation_complete_flag;
1873       p_inst_hist_rec_tab.old_completeness_flag(i)	   :=  p_inst_hist_tbl(i).old_completeness_flag;
1874       p_inst_hist_rec_tab.new_completeness_flag(i)	   :=  p_inst_hist_tbl(i).new_completeness_flag;
1875       p_inst_hist_rec_tab.old_context(i)	   :=  p_inst_hist_tbl(i).old_context;
1876       p_inst_hist_rec_tab.new_context(i)	   :=  p_inst_hist_tbl(i).new_context;
1877       p_inst_hist_rec_tab.old_attribute1(i)	   :=  p_inst_hist_tbl(i).old_attribute1;
1878       p_inst_hist_rec_tab.new_attribute1(i)	   :=  p_inst_hist_tbl(i).new_attribute1;
1879       p_inst_hist_rec_tab.old_attribute2(i)	   :=  p_inst_hist_tbl(i).old_attribute2;
1880       p_inst_hist_rec_tab.new_attribute2(i)	   :=  p_inst_hist_tbl(i).new_attribute2;
1881       p_inst_hist_rec_tab.old_attribute3(i)	   :=  p_inst_hist_tbl(i).old_attribute3;
1882       p_inst_hist_rec_tab.new_attribute3(i)	   :=  p_inst_hist_tbl(i).new_attribute3;
1883       p_inst_hist_rec_tab.old_attribute4(i)	   :=  p_inst_hist_tbl(i).old_attribute4;
1884       p_inst_hist_rec_tab.new_attribute4(i)	   :=  p_inst_hist_tbl(i).new_attribute4;
1885       p_inst_hist_rec_tab.old_attribute5(i)	   :=  p_inst_hist_tbl(i).old_attribute5;
1886       p_inst_hist_rec_tab.new_attribute5(i)	   :=  p_inst_hist_tbl(i).new_attribute5;
1887       p_inst_hist_rec_tab.old_attribute6(i)	   :=  p_inst_hist_tbl(i).old_attribute6;
1888       p_inst_hist_rec_tab.new_attribute6(i)	   :=  p_inst_hist_tbl(i).new_attribute6;
1889       p_inst_hist_rec_tab.old_attribute7(i)	   :=  p_inst_hist_tbl(i).old_attribute7;
1890       p_inst_hist_rec_tab.new_attribute7(i)	   :=  p_inst_hist_tbl(i).new_attribute7;
1891       p_inst_hist_rec_tab.old_attribute8(i)	   :=  p_inst_hist_tbl(i).old_attribute8;
1892       p_inst_hist_rec_tab.new_attribute8(i)	   :=  p_inst_hist_tbl(i).new_attribute8;
1893       p_inst_hist_rec_tab.old_attribute9(i)	   :=  p_inst_hist_tbl(i).old_attribute9;
1894       p_inst_hist_rec_tab.new_attribute9(i)	   :=  p_inst_hist_tbl(i).new_attribute9;
1895       p_inst_hist_rec_tab.old_attribute10(i)	   :=  p_inst_hist_tbl(i).old_attribute10;
1896       p_inst_hist_rec_tab.new_attribute10(i)	   :=  p_inst_hist_tbl(i).new_attribute10;
1897       p_inst_hist_rec_tab.old_attribute11(i)	   :=  p_inst_hist_tbl(i).old_attribute11;
1898       p_inst_hist_rec_tab.new_attribute11(i)	   :=  p_inst_hist_tbl(i).new_attribute11;
1899       p_inst_hist_rec_tab.old_attribute12(i)	   :=  p_inst_hist_tbl(i).old_attribute12;
1900       p_inst_hist_rec_tab.new_attribute12(i)	   :=  p_inst_hist_tbl(i).new_attribute12;
1901       p_inst_hist_rec_tab.old_attribute13(i)	   :=  p_inst_hist_tbl(i).old_attribute13;
1902       p_inst_hist_rec_tab.new_attribute13(i)	   :=  p_inst_hist_tbl(i).new_attribute13;
1903       p_inst_hist_rec_tab.old_attribute14(i)	   :=  p_inst_hist_tbl(i).old_attribute14;
1904       p_inst_hist_rec_tab.new_attribute14(i)	   :=  p_inst_hist_tbl(i).new_attribute14;
1905       p_inst_hist_rec_tab.old_attribute15(i)	   :=  p_inst_hist_tbl(i).old_attribute15;
1906       p_inst_hist_rec_tab.new_attribute15(i)	   :=  p_inst_hist_tbl(i).new_attribute15;
1907       p_inst_hist_rec_tab.old_last_txn_line_detail_id(i)   :=  p_inst_hist_tbl(i).old_last_txn_line_detail_id;
1908       p_inst_hist_rec_tab.new_last_txn_line_detail_id(i)   :=  p_inst_hist_tbl(i).new_last_txn_line_detail_id;
1909       p_inst_hist_rec_tab.old_install_location_type_code(i) :=  p_inst_hist_tbl(i).old_install_location_type_code;
1910       p_inst_hist_rec_tab.new_install_location_type_code(i) :=  p_inst_hist_tbl(i).new_install_location_type_code;
1911       p_inst_hist_rec_tab.old_install_location_id(i)	   :=  p_inst_hist_tbl(i).old_install_location_id;
1912       p_inst_hist_rec_tab.new_install_location_id(i)	   :=  p_inst_hist_tbl(i).new_install_location_id;
1913       p_inst_hist_rec_tab.old_instance_usage_code(i)	   :=  p_inst_hist_tbl(i).old_instance_usage_code;
1914       p_inst_hist_rec_tab.new_instance_usage_code(i)	   :=  p_inst_hist_tbl(i).new_instance_usage_code;
1915       p_inst_hist_rec_tab.old_current_loc_address1(i)	   :=  p_inst_hist_tbl(i).old_current_loc_address1;
1916       p_inst_hist_rec_tab.new_current_loc_address1(i)	   :=  p_inst_hist_tbl(i).new_current_loc_address1;
1917       p_inst_hist_rec_tab.old_current_loc_address2(i)	   :=  p_inst_hist_tbl(i).old_current_loc_address2;
1918       p_inst_hist_rec_tab.new_current_loc_address2(i)	   :=  p_inst_hist_tbl(i).new_current_loc_address2;
1919       p_inst_hist_rec_tab.old_current_loc_address3(i)	   :=  p_inst_hist_tbl(i).old_current_loc_address3;
1920       p_inst_hist_rec_tab.new_current_loc_address3(i)	   :=  p_inst_hist_tbl(i).new_current_loc_address3;
1921       p_inst_hist_rec_tab.old_current_loc_address4(i)	   :=  p_inst_hist_tbl(i).old_current_loc_address4;
1922       p_inst_hist_rec_tab.new_current_loc_address4(i)	   :=  p_inst_hist_tbl(i).new_current_loc_address4;
1923       p_inst_hist_rec_tab.old_current_loc_city(i)	   :=  p_inst_hist_tbl(i).old_current_loc_city;
1924       p_inst_hist_rec_tab.new_current_loc_city(i)	   :=  p_inst_hist_tbl(i).new_current_loc_city;
1925       p_inst_hist_rec_tab.old_current_loc_postal_code(i)  :=  p_inst_hist_tbl(i).old_current_loc_postal_code;
1926       p_inst_hist_rec_tab.new_current_loc_postal_code(i)  :=  p_inst_hist_tbl(i).new_current_loc_postal_code;
1927       p_inst_hist_rec_tab.old_current_loc_country(i)	   :=  p_inst_hist_tbl(i).old_current_loc_country;
1928       p_inst_hist_rec_tab.new_current_loc_country(i)	   :=  p_inst_hist_tbl(i).new_current_loc_country;
1929       p_inst_hist_rec_tab.old_sales_order_number(i)	   :=  p_inst_hist_tbl(i).old_sales_order_number;
1930       p_inst_hist_rec_tab.new_sales_order_number(i)	   :=  p_inst_hist_tbl(i).new_sales_order_number;
1931       p_inst_hist_rec_tab.old_sales_order_line_number(i)  :=  p_inst_hist_tbl(i).old_sales_order_line_number;
1935       p_inst_hist_rec_tab.old_purchase_order_number(i)   :=  p_inst_hist_tbl(i).old_purchase_order_number;
1932       p_inst_hist_rec_tab.new_sales_order_line_number(i)  :=  p_inst_hist_tbl(i).new_sales_order_line_number;
1933       p_inst_hist_rec_tab.old_sales_order_date(i)	   :=  p_inst_hist_tbl(i).old_sales_order_date;
1934       p_inst_hist_rec_tab.new_sales_order_date(i)	   :=  p_inst_hist_tbl(i).new_sales_order_date;
1936       p_inst_hist_rec_tab.new_purchase_order_number(i)   :=  p_inst_hist_tbl(i).new_purchase_order_number;
1937       p_inst_hist_rec_tab.old_instance_usage_name(i)	   :=  p_inst_hist_tbl(i).old_instance_usage_name;
1938       p_inst_hist_rec_tab.new_instance_usage_name(i)	   :=  p_inst_hist_tbl(i).new_instance_usage_name;
1939       p_inst_hist_rec_tab.old_current_loc_state(i)	   :=  p_inst_hist_tbl(i).old_current_loc_state;
1940       p_inst_hist_rec_tab.new_current_loc_state(i)	   :=  p_inst_hist_tbl(i).new_current_loc_state;
1941       p_inst_hist_rec_tab.old_install_loc_address1(i)	   :=  p_inst_hist_tbl(i).old_install_loc_address1;
1942       p_inst_hist_rec_tab.new_install_loc_address1(i)	   :=  p_inst_hist_tbl(i).new_install_loc_address1;
1943       p_inst_hist_rec_tab.old_install_loc_address2(i)	   :=  p_inst_hist_tbl(i).old_install_loc_address2;
1944       p_inst_hist_rec_tab.new_install_loc_address2(i)	   :=  p_inst_hist_tbl(i).new_install_loc_address2;
1945       p_inst_hist_rec_tab.old_install_loc_address3(i)	   :=  p_inst_hist_tbl(i).old_install_loc_address3;
1946       p_inst_hist_rec_tab.new_install_loc_address3(i)	   :=  p_inst_hist_tbl(i).new_install_loc_address3;
1947       p_inst_hist_rec_tab.old_install_loc_address4(i)	   :=  p_inst_hist_tbl(i).old_install_loc_address4;
1948       p_inst_hist_rec_tab.new_install_loc_address4(i)	   :=  p_inst_hist_tbl(i).new_install_loc_address4;
1949       p_inst_hist_rec_tab.old_install_loc_city(i)	   :=  p_inst_hist_tbl(i).old_install_loc_city;
1950       p_inst_hist_rec_tab.new_install_loc_city(i)	   :=  p_inst_hist_tbl(i).new_install_loc_city;
1951       p_inst_hist_rec_tab.old_install_loc_state(i)	   :=  p_inst_hist_tbl(i).old_install_loc_state;
1952       p_inst_hist_rec_tab.new_install_loc_state(i)	   :=  p_inst_hist_tbl(i).new_install_loc_state;
1953       p_inst_hist_rec_tab.old_install_loc_postal_code(i) :=  p_inst_hist_tbl(i).old_install_loc_postal_code;
1954       p_inst_hist_rec_tab.new_install_loc_postal_code(i) :=  p_inst_hist_tbl(i).new_install_loc_postal_code;
1955       p_inst_hist_rec_tab.old_install_loc_country(i)	   :=  p_inst_hist_tbl(i).old_install_loc_country;
1956       p_inst_hist_rec_tab.new_install_loc_country(i)	   :=  p_inst_hist_tbl(i).new_install_loc_country;
1957       p_inst_hist_rec_tab.old_config_inst_rev_num(i)	   :=  p_inst_hist_tbl(i).old_config_inst_rev_num;
1958       p_inst_hist_rec_tab.new_config_inst_rev_num(i)	   :=  p_inst_hist_tbl(i).new_config_inst_rev_num;
1959       p_inst_hist_rec_tab.old_config_valid_status(i)	   :=  p_inst_hist_tbl(i).old_config_valid_status;
1960       p_inst_hist_rec_tab.new_config_valid_status(i)	   :=  p_inst_hist_tbl(i).new_config_valid_status;
1961       p_inst_hist_rec_tab.old_instance_description(i)	   :=  p_inst_hist_tbl(i).old_instance_description;
1962       p_inst_hist_rec_tab.new_instance_description(i)	   :=  p_inst_hist_tbl(i).new_instance_description;
1963       p_inst_hist_rec_tab.instance_history_id(i)	   :=  p_inst_hist_tbl(i).instance_history_id;
1964       p_inst_hist_rec_tab.transaction_id(i)	           :=  p_inst_hist_tbl(i).transaction_id;
1965       p_inst_hist_rec_tab.old_last_vld_organization_id(i)  :=  p_inst_hist_tbl(i).old_last_vld_organization_id;
1966       p_inst_hist_rec_tab.new_last_vld_organization_id(i)  :=  p_inst_hist_tbl(i).new_last_vld_organization_id;
1967 
1968       p_inst_hist_rec_tab.old_network_asset_flag(i)       := p_inst_hist_tbl(i).old_network_asset_flag;
1969       p_inst_hist_rec_tab.new_network_asset_flag(i)       := p_inst_hist_tbl(i).new_network_asset_flag;
1970       p_inst_hist_rec_tab.old_maintainable_flag(i)        := p_inst_hist_tbl(i).old_maintainable_flag;
1971       p_inst_hist_rec_tab.new_maintainable_flag(i)        := p_inst_hist_tbl(i).new_maintainable_flag;
1972       p_inst_hist_rec_tab.old_asset_criticality_code(i)   := p_inst_hist_tbl(i).old_asset_criticality_code;
1973       p_inst_hist_rec_tab.new_asset_criticality_code(i)   := p_inst_hist_tbl(i).new_asset_criticality_code;
1974       p_inst_hist_rec_tab.old_category_id(i)              := p_inst_hist_tbl(i).old_category_id ;
1975       p_inst_hist_rec_tab.new_category_id(i)              := p_inst_hist_tbl(i).new_category_id ;
1976       p_inst_hist_rec_tab.old_equipment_gen_object_id(i)  := p_inst_hist_tbl(i).old_equipment_gen_object_id ;
1977       p_inst_hist_rec_tab.new_equipment_gen_object_id(i)  := p_inst_hist_tbl(i).new_equipment_gen_object_id ;
1978       p_inst_hist_rec_tab.old_instantiation_flag(i)       := p_inst_hist_tbl(i).old_instantiation_flag;
1979       p_inst_hist_rec_tab.new_instantiation_flag(i)       := p_inst_hist_tbl(i).new_instantiation_flag;
1980       p_inst_hist_rec_tab.old_operational_log_flag(i)     := p_inst_hist_tbl(i).old_operational_log_flag ;
1981       p_inst_hist_rec_tab.new_operational_log_flag(i)     := p_inst_hist_tbl(i).new_operational_log_flag ;
1982       p_inst_hist_rec_tab.old_supplier_warranty_exp_date(i) := p_inst_hist_tbl(i).old_supplier_warranty_exp_date ;
1983       p_inst_hist_rec_tab.new_supplier_warranty_exp_date(i) := p_inst_hist_tbl(i).new_supplier_warranty_exp_date ;
1984       p_inst_hist_rec_tab.old_attribute16(i) := p_inst_hist_tbl(i).old_attribute16           ;
1985       p_inst_hist_rec_tab.new_attribute16(i) := p_inst_hist_tbl(i).new_attribute16           ;
1986       p_inst_hist_rec_tab.old_attribute17(i) := p_inst_hist_tbl(i).old_attribute17           ;
1987       p_inst_hist_rec_tab.new_attribute17(i) := p_inst_hist_tbl(i).new_attribute17           ;
1988       p_inst_hist_rec_tab.old_attribute18(i) := p_inst_hist_tbl(i).old_attribute18           ;
1989       p_inst_hist_rec_tab.new_attribute18(i) := p_inst_hist_tbl(i).new_attribute18           ;
1990       p_inst_hist_rec_tab.old_attribute19(i) := p_inst_hist_tbl(i).old_attribute19           ;
1991       p_inst_hist_rec_tab.new_attribute19(i) := p_inst_hist_tbl(i).new_attribute19           ;
1992       p_inst_hist_rec_tab.old_attribute20(i) := p_inst_hist_tbl(i).old_attribute20           ;
1993       p_inst_hist_rec_tab.new_attribute20(i) := p_inst_hist_tbl(i).new_attribute20           ;
1994       p_inst_hist_rec_tab.old_attribute21(i) := p_inst_hist_tbl(i).old_attribute21           ;
1995       p_inst_hist_rec_tab.new_attribute21(i) := p_inst_hist_tbl(i).new_attribute21           ;
1996       p_inst_hist_rec_tab.old_attribute22(i) := p_inst_hist_tbl(i).old_attribute22           ;
1997       p_inst_hist_rec_tab.new_attribute22(i) := p_inst_hist_tbl(i).new_attribute22           ;
1998       p_inst_hist_rec_tab.old_attribute23(i) := p_inst_hist_tbl(i).old_attribute23           ;
1999       p_inst_hist_rec_tab.new_attribute23(i) := p_inst_hist_tbl(i).new_attribute23           ;
2000       p_inst_hist_rec_tab.old_attribute24(i) := p_inst_hist_tbl(i).old_attribute24           ;
2001       p_inst_hist_rec_tab.new_attribute24(i) := p_inst_hist_tbl(i).new_attribute24           ;
2002       p_inst_hist_rec_tab.old_attribute25(i) := p_inst_hist_tbl(i).old_attribute25           ;
2003       p_inst_hist_rec_tab.new_attribute25(i) := p_inst_hist_tbl(i).new_attribute25           ;
2004       p_inst_hist_rec_tab.old_attribute26(i) := p_inst_hist_tbl(i).old_attribute26           ;
2005       p_inst_hist_rec_tab.new_attribute26(i) := p_inst_hist_tbl(i).new_attribute26           ;
2006       p_inst_hist_rec_tab.old_attribute27(i) := p_inst_hist_tbl(i).old_attribute27           ;
2007       p_inst_hist_rec_tab.new_attribute27(i) := p_inst_hist_tbl(i).new_attribute27           ;
2008       p_inst_hist_rec_tab.old_attribute28(i) := p_inst_hist_tbl(i).old_attribute28           ;
2009       p_inst_hist_rec_tab.new_attribute28(i) := p_inst_hist_tbl(i).new_attribute28           ;
2010       p_inst_hist_rec_tab.old_attribute29(i) := p_inst_hist_tbl(i).old_attribute29           ;
2011       p_inst_hist_rec_tab.new_attribute29(i) := p_inst_hist_tbl(i).new_attribute29           ;
2012       p_inst_hist_rec_tab.old_attribute30(i) := p_inst_hist_tbl(i).old_attribute30           ;
2013       p_inst_hist_rec_tab.new_attribute30(i) := p_inst_hist_tbl(i).new_attribute30           ;
2014 
2015       p_inst_hist_rec_tab.old_payables_currency_code(i)   := p_inst_hist_tbl(i).old_payables_currency_code;
2016       p_inst_hist_rec_tab.new_payables_currency_code(i)   := p_inst_hist_tbl(i).new_payables_currency_code;
2017       p_inst_hist_rec_tab.old_purchase_unit_price(i)      := p_inst_hist_tbl(i).old_purchase_unit_price;
2018       p_inst_hist_rec_tab.new_purchase_unit_price(i)      := p_inst_hist_tbl(i).new_purchase_unit_price;
2019       p_inst_hist_rec_tab.old_purchase_currency_code(i)   := p_inst_hist_tbl(i).old_purchase_currency_code;
2020       p_inst_hist_rec_tab.new_purchase_currency_code(i)   := p_inst_hist_tbl(i).new_purchase_currency_code;
2021       p_inst_hist_rec_tab.old_payables_unit_price(i)      := p_inst_hist_tbl(i).old_payables_unit_price;
2022       p_inst_hist_rec_tab.new_payables_unit_price(i)      := p_inst_hist_tbl(i).new_payables_unit_price;
2023       p_inst_hist_rec_tab.old_sales_unit_price(i)         := p_inst_hist_tbl(i).old_sales_unit_price;
2024       p_inst_hist_rec_tab.new_sales_unit_price(i)         := p_inst_hist_tbl(i).new_sales_unit_price;
2025       p_inst_hist_rec_tab.old_sales_currency_code(i)      := p_inst_hist_tbl(i).old_sales_currency_code;
2026       p_inst_hist_rec_tab.new_sales_currency_code(i)      := p_inst_hist_tbl(i).new_sales_currency_code;
2027       p_inst_hist_rec_tab.old_operational_status_code(i)  := p_inst_hist_tbl(i).old_operational_status_code;
2028       p_inst_hist_rec_tab.new_operational_status_code(i)  := p_inst_hist_tbl(i).new_operational_status_code;
2029 
2030    END LOOP;
2031 END Build_Inst_Hist_Rec_of_Table;
2032 --
2033 PROCEDURE Build_Ver_Label_Rec_of_Table
2034    (
2035      p_version_label_tbl     IN     csi_datastructures_pub.version_label_tbl
2036     ,p_version_label_rec_tab IN OUT NOCOPY  csi_item_instance_grp.version_label_rec_tab
2037    ) IS
2038 BEGIN
2039    FOR i in p_version_label_tbl.FIRST .. p_version_label_tbl.LAST LOOP
2040       p_version_label_rec_tab.version_label_id(i)	:= p_version_label_tbl(i).version_label_id;
2041       p_version_label_rec_tab.instance_id(i)	:= p_version_label_tbl(i).instance_id;
2042       p_version_label_rec_tab.version_label(i)	:= p_version_label_tbl(i).version_label;
2043       p_version_label_rec_tab.description(i)	:= p_version_label_tbl(i).description;
2044       p_version_label_rec_tab.date_time_stamp(i)	:= p_version_label_tbl(i).date_time_stamp;
2045       p_version_label_rec_tab.active_start_date(i)	:= p_version_label_tbl(i).active_start_date;
2046       p_version_label_rec_tab.active_end_date(i)	:= p_version_label_tbl(i).active_end_date;
2047       p_version_label_rec_tab.context(i)	:= p_version_label_tbl(i).context;
2048       p_version_label_rec_tab.attribute1(i)	:= p_version_label_tbl(i).attribute1;
2049       p_version_label_rec_tab.attribute2(i)	:= p_version_label_tbl(i).attribute2;
2050       p_version_label_rec_tab.attribute3(i)	:= p_version_label_tbl(i).attribute3;
2051       p_version_label_rec_tab.attribute4(i)	:= p_version_label_tbl(i).attribute4;
2052       p_version_label_rec_tab.attribute5(i)	:= p_version_label_tbl(i).attribute5;
2053       p_version_label_rec_tab.attribute6(i)	:= p_version_label_tbl(i).attribute6;
2054       p_version_label_rec_tab.attribute7(i)	:= p_version_label_tbl(i).attribute7;
2055       p_version_label_rec_tab.attribute8(i)	:= p_version_label_tbl(i).attribute8;
2056       p_version_label_rec_tab.attribute9(i)	:= p_version_label_tbl(i).attribute9;
2057       p_version_label_rec_tab.attribute10(i)	:= p_version_label_tbl(i).attribute10;
2058       p_version_label_rec_tab.attribute11(i)	:= p_version_label_tbl(i).attribute11;
2059       p_version_label_rec_tab.attribute12(i)	:= p_version_label_tbl(i).attribute12;
2060       p_version_label_rec_tab.attribute13(i)	:= p_version_label_tbl(i).attribute13;
2061       p_version_label_rec_tab.attribute14(i)	:= p_version_label_tbl(i).attribute14;
2062       p_version_label_rec_tab.attribute15(i)	:= p_version_label_tbl(i).attribute15;
2063       p_version_label_rec_tab.object_version_number(i)	:= p_version_label_tbl(i).object_version_number;
2064    END LOOP;
2065 END Build_Ver_Label_Rec_of_Table;
2066 --
2067 PROCEDURE Build_Ver_Lbl_Hist_Rec_Table
2068    (
2069      p_ver_label_hist_tbl     IN   csi_datastructures_pub.version_label_history_tbl
2070     ,p_ver_label_hist_rec_tab IN OUT NOCOPY  csi_item_instance_grp.ver_label_history_rec_tab
2071    ) IS
2072 BEGIN
2073    FOR i in p_ver_label_hist_tbl.FIRST .. p_ver_label_hist_tbl.LAST LOOP
2074       p_ver_label_hist_rec_tab.VERSION_LABEL_HISTORY_ID(i):= p_ver_label_hist_tbl(i).VERSION_LABEL_HISTORY_ID;
2075       p_ver_label_hist_rec_tab.VERSION_LABEL_ID(i)	:= p_ver_label_hist_tbl(i).VERSION_LABEL_ID;
2076       p_ver_label_hist_rec_tab.TRANSACTION_ID(i)	:= p_ver_label_hist_tbl(i).TRANSACTION_ID;
2077       p_ver_label_hist_rec_tab.OLD_VERSION_LABEL(i)	:= p_ver_label_hist_tbl(i).OLD_VERSION_LABEL;
2078       p_ver_label_hist_rec_tab.NEW_VERSION_LABEL(i)	:= p_ver_label_hist_tbl(i).NEW_VERSION_LABEL;
2079       p_ver_label_hist_rec_tab.OLD_DESCRIPTION(i)	:= p_ver_label_hist_tbl(i).OLD_DESCRIPTION;
2080       p_ver_label_hist_rec_tab.NEW_DESCRIPTION(i)	:= p_ver_label_hist_tbl(i).NEW_DESCRIPTION;
2081       p_ver_label_hist_rec_tab.OLD_DATE_TIME_STAMP(i)	:= p_ver_label_hist_tbl(i).OLD_DATE_TIME_STAMP;
2082       p_ver_label_hist_rec_tab.NEW_DATE_TIME_STAMP(i)	:= p_ver_label_hist_tbl(i).NEW_DATE_TIME_STAMP;
2083       p_ver_label_hist_rec_tab.OLD_ACTIVE_START_DATE(i)	:= p_ver_label_hist_tbl(i).OLD_ACTIVE_START_DATE;
2084       p_ver_label_hist_rec_tab.NEW_ACTIVE_START_DATE(i)	:= p_ver_label_hist_tbl(i).NEW_ACTIVE_START_DATE;
2085       p_ver_label_hist_rec_tab.OLD_ACTIVE_END_DATE(i)	:= p_ver_label_hist_tbl(i).OLD_ACTIVE_END_DATE;
2086       p_ver_label_hist_rec_tab.NEW_ACTIVE_END_DATE(i)	:= p_ver_label_hist_tbl(i).NEW_ACTIVE_END_DATE;
2087       p_ver_label_hist_rec_tab.OLD_CONTEXT(i)	:= p_ver_label_hist_tbl(i).OLD_CONTEXT;
2088       p_ver_label_hist_rec_tab.NEW_CONTEXT(i)	:= p_ver_label_hist_tbl(i).NEW_CONTEXT;
2089       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE1(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE1;
2090       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE1(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE1;
2091       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE2(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE2;
2092       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE2(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE2;
2093       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE3(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE3;
2094       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE3(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE3;
2095       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE4(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE4;
2096       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE4(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE4;
2097       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE5(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE5;
2098       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE5(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE5;
2099       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE6(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE6;
2100       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE6(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE6;
2101       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE7(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE7;
2102       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE7(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE7;
2103       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE8(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE8;
2104       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE8(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE8;
2105       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE9(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE9;
2106       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE9(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE9;
2107       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE10(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE10;
2108       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE10(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE10;
2109       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE11(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE11;
2110       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE11(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE11;
2111       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE12(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE12;
2112       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE12(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE12;
2113       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE13(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE13;
2114       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE13(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE13;
2115       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE14(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE14;
2116       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE14(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE14;
2117       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE15(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE15;
2118       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE15(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE15;
2119       p_ver_label_hist_rec_tab.FULL_DUMP_FLAG(i)	:= p_ver_label_hist_tbl(i).FULL_DUMP_FLAG;
2120       p_ver_label_hist_rec_tab.OBJECT_VERSION_NUMBER(i)	:= p_ver_label_hist_tbl(i).OBJECT_VERSION_NUMBER;
2121       p_ver_label_hist_rec_tab.INSTANCE_ID(i)	:= p_ver_label_hist_tbl(i).INSTANCE_ID;
2122    END LOOP;
2123 END Build_Ver_Lbl_Hist_Rec_Table;
2124 --
2125 PROCEDURE Build_Party_Rec_of_Table
2126    ( p_party_tbl          IN   csi_datastructures_pub.party_tbl
2127     ,p_party_rec_tab      IN OUT NOCOPY  csi_item_instance_grp.party_rec_tab
2128    ) IS
2129 BEGIN
2130    FOR i in p_party_tbl.FIRST .. p_party_tbl.LAST LOOP
2131       p_party_rec_tab.instance_party_id(i)	  := p_party_tbl(i).instance_party_id;
2132       p_party_rec_tab.instance_id(i)	  := p_party_tbl(i).instance_id;
2133       p_party_rec_tab.party_source_table(i)	  := p_party_tbl(i).party_source_table;
2134       p_party_rec_tab.party_id(i)	  := p_party_tbl(i).party_id;
2135       p_party_rec_tab.relationship_type_code(i)	  := p_party_tbl(i).relationship_type_code;
2136       p_party_rec_tab.contact_flag(i)	  := p_party_tbl(i).contact_flag;
2137       p_party_rec_tab.contact_ip_id(i)	  := p_party_tbl(i).contact_ip_id;
2138       p_party_rec_tab.active_start_date(i)	  := p_party_tbl(i).active_start_date;
2139       p_party_rec_tab.active_end_date(i)	  := p_party_tbl(i).active_end_date;
2140       p_party_rec_tab.context(i)	  := p_party_tbl(i).context;
2141       p_party_rec_tab.attribute1(i)	  := p_party_tbl(i).attribute1;
2142       p_party_rec_tab.attribute2(i)	  := p_party_tbl(i).attribute2;
2143       p_party_rec_tab.attribute3(i)	  := p_party_tbl(i).attribute3;
2144       p_party_rec_tab.attribute4(i)	  := p_party_tbl(i).attribute4;
2145       p_party_rec_tab.attribute5(i)	  := p_party_tbl(i).attribute5;
2146       p_party_rec_tab.attribute6(i)	  := p_party_tbl(i).attribute6;
2147       p_party_rec_tab.attribute7(i)	  := p_party_tbl(i).attribute7;
2148       p_party_rec_tab.attribute8(i)	  := p_party_tbl(i).attribute8;
2149       p_party_rec_tab.attribute9(i)	  := p_party_tbl(i).attribute9;
2150       p_party_rec_tab.attribute10(i)	  := p_party_tbl(i).attribute10;
2151       p_party_rec_tab.attribute11(i)	  := p_party_tbl(i).attribute11;
2152       p_party_rec_tab.attribute12(i)	  := p_party_tbl(i).attribute12;
2153       p_party_rec_tab.attribute13(i)	  := p_party_tbl(i).attribute13;
2154       p_party_rec_tab.attribute14(i)	  := p_party_tbl(i).attribute14;
2155       p_party_rec_tab.attribute15(i)	  := p_party_tbl(i).attribute15;
2156       p_party_rec_tab.object_version_number(i)	  := p_party_tbl(i).object_version_number;
2157       p_party_rec_tab.primary_flag(i)	  := p_party_tbl(i).primary_flag;
2158       p_party_rec_tab.preferred_flag(i)	  := p_party_tbl(i).preferred_flag;
2159       p_party_rec_tab.parent_tbl_index(i)	  := p_party_tbl(i).parent_tbl_index;
2160       p_party_rec_tab.call_contracts(i)	  := p_party_tbl(i).call_contracts;
2161       p_party_rec_tab.contact_parent_tbl_index(i)	  := p_party_tbl(i).contact_parent_tbl_index;
2162    END LOOP;
2163 END Build_Party_Rec_of_Table;
2164 --
2165 PROCEDURE Build_Party_Hist_Rec_of_Table
2166    ( p_party_hist_tbl        IN      csi_datastructures_pub.party_history_tbl
2167     ,p_party_hist_rec_tab    IN OUT NOCOPY   csi_item_instance_grp.party_history_rec_tab
2168    ) IS
2169 BEGIN
2170    FOR i in p_party_hist_tbl.FIRST .. p_party_hist_tbl.LAST LOOP
2171       p_party_hist_rec_tab.INSTANCE_PARTY_HISTORY_ID(i)	   :=  p_party_hist_tbl(i).INSTANCE_PARTY_HISTORY_ID;
2172       p_party_hist_rec_tab.INSTANCE_PARTY_ID(i)	   :=  p_party_hist_tbl(i).INSTANCE_PARTY_ID;
2173       p_party_hist_rec_tab.TRANSACTION_ID(i)	   :=  p_party_hist_tbl(i).TRANSACTION_ID;
2174       p_party_hist_rec_tab.OLD_PARTY_SOURCE_TABLE(i)	   :=  p_party_hist_tbl(i).OLD_PARTY_SOURCE_TABLE;
2175       p_party_hist_rec_tab.NEW_PARTY_SOURCE_TABLE(i)	   :=  p_party_hist_tbl(i).NEW_PARTY_SOURCE_TABLE;
2176       p_party_hist_rec_tab.OLD_PARTY_ID(i)	   :=  p_party_hist_tbl(i).OLD_PARTY_ID;
2177       p_party_hist_rec_tab.NEW_PARTY_ID(i)	   :=  p_party_hist_tbl(i).NEW_PARTY_ID;
2178       p_party_hist_rec_tab.OLD_RELATIONSHIP_TYPE_CODE(i) :=  p_party_hist_tbl(i).OLD_RELATIONSHIP_TYPE_CODE;
2179       p_party_hist_rec_tab.NEW_RELATIONSHIP_TYPE_CODE(i) :=  p_party_hist_tbl(i).NEW_RELATIONSHIP_TYPE_CODE;
2180       p_party_hist_rec_tab.OLD_CONTACT_FLAG(i)	   :=  p_party_hist_tbl(i).OLD_CONTACT_FLAG;
2181       p_party_hist_rec_tab.NEW_CONTACT_FLAG(i)	   :=  p_party_hist_tbl(i).NEW_CONTACT_FLAG;
2182       p_party_hist_rec_tab.OLD_CONTACT_IP_ID(i)	   :=  p_party_hist_tbl(i).OLD_CONTACT_IP_ID;
2183       p_party_hist_rec_tab.NEW_CONTACT_IP_ID(i)	   :=  p_party_hist_tbl(i).NEW_CONTACT_IP_ID;
2184       p_party_hist_rec_tab.OLD_ACTIVE_START_DATE(i)	   :=  p_party_hist_tbl(i).OLD_ACTIVE_START_DATE;
2185       p_party_hist_rec_tab.NEW_ACTIVE_START_DATE(i)	   :=  p_party_hist_tbl(i).NEW_ACTIVE_START_DATE;
2186       p_party_hist_rec_tab.OLD_ACTIVE_END_DATE(i)	   :=  p_party_hist_tbl(i).OLD_ACTIVE_END_DATE;
2187       p_party_hist_rec_tab.NEW_ACTIVE_END_DATE(i)	   :=  p_party_hist_tbl(i).NEW_ACTIVE_END_DATE;
2188       p_party_hist_rec_tab.OLD_CONTEXT(i)	   :=  p_party_hist_tbl(i).OLD_CONTEXT;
2189       p_party_hist_rec_tab.NEW_CONTEXT(i)	   :=  p_party_hist_tbl(i).NEW_CONTEXT;
2190       p_party_hist_rec_tab.OLD_ATTRIBUTE1(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE1;
2191       p_party_hist_rec_tab.NEW_ATTRIBUTE1(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE1;
2192       p_party_hist_rec_tab.OLD_ATTRIBUTE2(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE2;
2193       p_party_hist_rec_tab.NEW_ATTRIBUTE2(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE2;
2194       p_party_hist_rec_tab.OLD_ATTRIBUTE3(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE3;
2195       p_party_hist_rec_tab.NEW_ATTRIBUTE3(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE3;
2196       p_party_hist_rec_tab.OLD_ATTRIBUTE4(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE4;
2197       p_party_hist_rec_tab.NEW_ATTRIBUTE4(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE4;
2198       p_party_hist_rec_tab.OLD_ATTRIBUTE5(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE5;
2199       p_party_hist_rec_tab.NEW_ATTRIBUTE5(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE5;
2200       p_party_hist_rec_tab.OLD_ATTRIBUTE6(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE6;
2201       p_party_hist_rec_tab.NEW_ATTRIBUTE6(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE6;
2202       p_party_hist_rec_tab.OLD_ATTRIBUTE7(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE7;
2203       p_party_hist_rec_tab.NEW_ATTRIBUTE7(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE7;
2204       p_party_hist_rec_tab.OLD_ATTRIBUTE8(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE8;
2205       p_party_hist_rec_tab.NEW_ATTRIBUTE8(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE8;
2206       p_party_hist_rec_tab.OLD_ATTRIBUTE9(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE9;
2207       p_party_hist_rec_tab.NEW_ATTRIBUTE9(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE9;
2208       p_party_hist_rec_tab.OLD_ATTRIBUTE10(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE10;
2209       p_party_hist_rec_tab.NEW_ATTRIBUTE10(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE10;
2210       p_party_hist_rec_tab.OLD_ATTRIBUTE11(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE11;
2211       p_party_hist_rec_tab.NEW_ATTRIBUTE11(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE11;
2212       p_party_hist_rec_tab.OLD_ATTRIBUTE12(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE12;
2213       p_party_hist_rec_tab.NEW_ATTRIBUTE12(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE12;
2214       p_party_hist_rec_tab.OLD_ATTRIBUTE13(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE13;
2215       p_party_hist_rec_tab.NEW_ATTRIBUTE13(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE13;
2216       p_party_hist_rec_tab.OLD_ATTRIBUTE14(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE14;
2217       p_party_hist_rec_tab.NEW_ATTRIBUTE14(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE14;
2218       p_party_hist_rec_tab.OLD_ATTRIBUTE15(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE15;
2219       p_party_hist_rec_tab.NEW_ATTRIBUTE15(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE15;
2220       p_party_hist_rec_tab.FULL_DUMP_FLAG(i)	   :=  p_party_hist_tbl(i).FULL_DUMP_FLAG;
2224       p_party_hist_rec_tab.OLD_PRIMARY_FLAG(i)	   :=  p_party_hist_tbl(i).OLD_PRIMARY_FLAG;
2221       p_party_hist_rec_tab.OBJECT_VERSION_NUMBER(i)	   :=  p_party_hist_tbl(i).OBJECT_VERSION_NUMBER;
2222       p_party_hist_rec_tab.OLD_PREFERRED_FLAG(i)	   :=  p_party_hist_tbl(i).OLD_PREFERRED_FLAG;
2223       p_party_hist_rec_tab.NEW_PREFERRED_FLAG(i)	   :=  p_party_hist_tbl(i).NEW_PREFERRED_FLAG;
2225       p_party_hist_rec_tab.NEW_PRIMARY_FLAG(i)	   :=  p_party_hist_tbl(i).NEW_PRIMARY_FLAG;
2226       p_party_hist_rec_tab.old_party_number(i)	   :=  p_party_hist_tbl(i).old_party_number;
2227       p_party_hist_rec_tab.old_party_name(i)	   :=  p_party_hist_tbl(i).old_party_name;
2228       p_party_hist_rec_tab.old_party_type(i)	   :=  p_party_hist_tbl(i).old_party_type;
2229       p_party_hist_rec_tab.old_contact_party_number(i)	   :=  p_party_hist_tbl(i).old_contact_party_number;
2230       p_party_hist_rec_tab.old_contact_party_name(i)	   :=  p_party_hist_tbl(i).old_contact_party_name;
2231       p_party_hist_rec_tab.old_contact_party_type(i)	   :=  p_party_hist_tbl(i).old_contact_party_type;
2232       p_party_hist_rec_tab.old_contact_address1(i)	   :=  p_party_hist_tbl(i).old_contact_address1;
2233       p_party_hist_rec_tab.old_contact_address2(i)	   :=  p_party_hist_tbl(i).old_contact_address2;
2234       p_party_hist_rec_tab.old_contact_address3(i)	   :=  p_party_hist_tbl(i).old_contact_address3;
2235       p_party_hist_rec_tab.old_contact_address4(i)	   :=  p_party_hist_tbl(i).old_contact_address4;
2236       p_party_hist_rec_tab.old_contact_city(i)	   :=  p_party_hist_tbl(i).old_contact_city;
2237       p_party_hist_rec_tab.old_contact_state(i)	   :=  p_party_hist_tbl(i).old_contact_state;
2238       p_party_hist_rec_tab.old_contact_postal_code(i)	   :=  p_party_hist_tbl(i).old_contact_postal_code;
2239       p_party_hist_rec_tab.old_contact_country(i)	   :=  p_party_hist_tbl(i).old_contact_country;
2240       p_party_hist_rec_tab.old_contact_work_phone_num(i)  :=  p_party_hist_tbl(i).old_contact_work_phone_num;
2241       p_party_hist_rec_tab.old_contact_email_address(i)	   :=  p_party_hist_tbl(i).old_contact_email_address;
2242       p_party_hist_rec_tab.new_party_number(i)	   :=  p_party_hist_tbl(i).new_party_number;
2243       p_party_hist_rec_tab.new_party_name(i)	   :=  p_party_hist_tbl(i).new_party_name;
2244       p_party_hist_rec_tab.new_party_type(i)	   :=  p_party_hist_tbl(i).new_party_type;
2245       p_party_hist_rec_tab.new_contact_party_number(i)	   :=  p_party_hist_tbl(i).new_contact_party_number;
2246       p_party_hist_rec_tab.new_contact_party_name(i)	   :=  p_party_hist_tbl(i).new_contact_party_name;
2247       p_party_hist_rec_tab.new_contact_party_type(i)	   :=  p_party_hist_tbl(i).new_contact_party_type;
2248       p_party_hist_rec_tab.new_contact_address1(i)	   :=  p_party_hist_tbl(i).new_contact_address1;
2249       p_party_hist_rec_tab.new_contact_address2(i)	   :=  p_party_hist_tbl(i).new_contact_address2;
2250       p_party_hist_rec_tab.new_contact_address3(i)	   :=  p_party_hist_tbl(i).new_contact_address3;
2251       p_party_hist_rec_tab.new_contact_address4(i)	   :=  p_party_hist_tbl(i).new_contact_address4;
2252       p_party_hist_rec_tab.new_contact_city(i)	   :=  p_party_hist_tbl(i).new_contact_city;
2253       p_party_hist_rec_tab.new_contact_state(i)	   :=  p_party_hist_tbl(i).new_contact_state;
2254       p_party_hist_rec_tab.new_contact_postal_code(i)	   :=  p_party_hist_tbl(i).new_contact_postal_code;
2255       p_party_hist_rec_tab.new_contact_country(i)	   :=  p_party_hist_tbl(i).new_contact_country;
2256       p_party_hist_rec_tab.new_contact_work_phone_num(i)  :=  p_party_hist_tbl(i).new_contact_work_phone_num;
2257       p_party_hist_rec_tab.new_contact_email_address(i)	   :=  p_party_hist_tbl(i).new_contact_email_address;
2258       p_party_hist_rec_tab.INSTANCE_ID(i)	   :=  p_party_hist_tbl(i).INSTANCE_ID;
2259    END LOOP;
2260 END Build_Party_Hist_Rec_of_Table;
2261 --
2262 PROCEDURE Build_Acct_Rec_of_Table
2263    (
2264      p_account_tbl        IN     csi_datastructures_pub.party_account_tbl
2265     ,p_account_rec_tab    IN OUT NOCOPY  csi_item_instance_grp.account_rec_tab
2266    ) IS
2267 BEGIN
2268    FOR i in p_account_tbl.FIRST .. p_account_tbl.LAST LOOP
2269       p_account_rec_tab.ip_account_id(i)	 := p_account_tbl(i).ip_account_id;
2270       p_account_rec_tab.parent_tbl_index(i)	 := p_account_tbl(i).parent_tbl_index;
2271       p_account_rec_tab.instance_party_id(i)	 := p_account_tbl(i).instance_party_id;
2272       p_account_rec_tab.party_account_id(i)	 := p_account_tbl(i).party_account_id;
2273       p_account_rec_tab.relationship_type_code(i)	 := p_account_tbl(i).relationship_type_code;
2274       p_account_rec_tab.bill_to_address(i)	 := p_account_tbl(i).bill_to_address;
2275       p_account_rec_tab.ship_to_address(i)	 := p_account_tbl(i).ship_to_address;
2276       p_account_rec_tab.active_start_date(i)	 := p_account_tbl(i).active_start_date;
2277       p_account_rec_tab.active_end_date(i)	 := p_account_tbl(i).active_end_date;
2278       p_account_rec_tab.context(i)	 := p_account_tbl(i).context;
2279       p_account_rec_tab.attribute1(i)	 := p_account_tbl(i).attribute1;
2280       p_account_rec_tab.attribute2(i)	 := p_account_tbl(i).attribute2;
2281       p_account_rec_tab.attribute3(i)	 := p_account_tbl(i).attribute3;
2282       p_account_rec_tab.attribute4(i)	 := p_account_tbl(i).attribute4;
2283       p_account_rec_tab.attribute5(i)	 := p_account_tbl(i).attribute5;
2284       p_account_rec_tab.attribute6(i)	 := p_account_tbl(i).attribute6;
2285       p_account_rec_tab.attribute7(i)	 := p_account_tbl(i).attribute7;
2286       p_account_rec_tab.attribute8(i)	 := p_account_tbl(i).attribute8;
2287       p_account_rec_tab.attribute9(i)	 := p_account_tbl(i).attribute9;
2288       p_account_rec_tab.attribute10(i)	 := p_account_tbl(i).attribute10;
2289       p_account_rec_tab.attribute11(i)	 := p_account_tbl(i).attribute11;
2290       p_account_rec_tab.attribute12(i)	 := p_account_tbl(i).attribute12;
2291       p_account_rec_tab.attribute13(i)	 := p_account_tbl(i).attribute13;
2292       p_account_rec_tab.attribute14(i)	 := p_account_tbl(i).attribute14;
2293       p_account_rec_tab.attribute15(i)	 := p_account_tbl(i).attribute15;
2294       p_account_rec_tab.object_version_number(i)	 := p_account_tbl(i).object_version_number;
2295       p_account_rec_tab.call_contracts(i)	 := p_account_tbl(i).call_contracts;
2296       p_account_rec_tab.vld_organization_id(i)	 := p_account_tbl(i).vld_organization_id;
2297       p_account_rec_tab.expire_flag(i)	 := p_account_tbl(i).expire_flag;
2298       p_account_rec_tab.grp_call_contracts(i)	 := p_account_tbl(i).grp_call_contracts;
2299    END LOOP;
2300 END Build_Acct_Rec_of_Table;
2301 --
2302 PROCEDURE Build_Acct_Hist_Rec_of_Table
2303    (
2304      p_acct_hist_tbl      IN     csi_datastructures_pub.account_history_tbl
2305     ,p_acct_hist_rec_tab  IN OUT NOCOPY  csi_item_instance_grp.account_history_rec_tab
2306    ) IS
2307 BEGIN
2308    FOR i in p_acct_hist_tbl.FIRST .. p_acct_hist_tbl.LAST LOOP
2309       p_acct_hist_rec_tab.IP_ACCOUNT_HISTORY_ID(i)	 := p_acct_hist_tbl(i).IP_ACCOUNT_HISTORY_ID;
2310       p_acct_hist_rec_tab.IP_ACCOUNT_ID(i)	 := p_acct_hist_tbl(i).IP_ACCOUNT_ID;
2311       p_acct_hist_rec_tab.TRANSACTION_ID(i)	 := p_acct_hist_tbl(i).TRANSACTION_ID;
2312       p_acct_hist_rec_tab.OLD_PARTY_ACCOUNT_ID(i)	 := p_acct_hist_tbl(i).OLD_PARTY_ACCOUNT_ID;
2313       p_acct_hist_rec_tab.NEW_PARTY_ACCOUNT_ID(i)	 := p_acct_hist_tbl(i).NEW_PARTY_ACCOUNT_ID;
2314       p_acct_hist_rec_tab.OLD_RELATIONSHIP_TYPE_CODE(i)	 := p_acct_hist_tbl(i).OLD_RELATIONSHIP_TYPE_CODE;
2315       p_acct_hist_rec_tab.NEW_RELATIONSHIP_TYPE_CODE(i)	 := p_acct_hist_tbl(i).NEW_RELATIONSHIP_TYPE_CODE;
2316       p_acct_hist_rec_tab.OLD_ACTIVE_START_DATE(i)	 := p_acct_hist_tbl(i).OLD_ACTIVE_START_DATE;
2317       p_acct_hist_rec_tab.NEW_ACTIVE_START_DATE(i)	 := p_acct_hist_tbl(i).NEW_ACTIVE_START_DATE;
2318       p_acct_hist_rec_tab.OLD_ACTIVE_END_DATE(i)	 := p_acct_hist_tbl(i).OLD_ACTIVE_END_DATE;
2319       p_acct_hist_rec_tab.NEW_ACTIVE_END_DATE(i)	 := p_acct_hist_tbl(i).NEW_ACTIVE_END_DATE;
2320       p_acct_hist_rec_tab.OLD_CONTEXT(i)	 := p_acct_hist_tbl(i).OLD_CONTEXT;
2321       p_acct_hist_rec_tab.NEW_CONTEXT(i)	 := p_acct_hist_tbl(i).NEW_CONTEXT;
2322       p_acct_hist_rec_tab.OLD_ATTRIBUTE1(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE1;
2323       p_acct_hist_rec_tab.NEW_ATTRIBUTE1(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE1;
2324       p_acct_hist_rec_tab.OLD_ATTRIBUTE2(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE2;
2325       p_acct_hist_rec_tab.NEW_ATTRIBUTE2(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE2;
2326       p_acct_hist_rec_tab.OLD_ATTRIBUTE3(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE3;
2327       p_acct_hist_rec_tab.NEW_ATTRIBUTE3(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE3;
2328       p_acct_hist_rec_tab.OLD_ATTRIBUTE4(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE4;
2329       p_acct_hist_rec_tab.NEW_ATTRIBUTE4(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE4;
2330       p_acct_hist_rec_tab.OLD_ATTRIBUTE5(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE5;
2331       p_acct_hist_rec_tab.NEW_ATTRIBUTE5(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE5;
2332       p_acct_hist_rec_tab.OLD_ATTRIBUTE6(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE6;
2333       p_acct_hist_rec_tab.NEW_ATTRIBUTE6(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE6;
2334       p_acct_hist_rec_tab.OLD_ATTRIBUTE7(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE7;
2335       p_acct_hist_rec_tab.NEW_ATTRIBUTE7(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE7;
2336       p_acct_hist_rec_tab.OLD_ATTRIBUTE8(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE8;
2337       p_acct_hist_rec_tab.NEW_ATTRIBUTE8(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE8;
2338       p_acct_hist_rec_tab.OLD_ATTRIBUTE9(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE9;
2339       p_acct_hist_rec_tab.NEW_ATTRIBUTE9(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE9;
2340       p_acct_hist_rec_tab.OLD_ATTRIBUTE10(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE10;
2341       p_acct_hist_rec_tab.NEW_ATTRIBUTE10(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE10;
2342       p_acct_hist_rec_tab.OLD_ATTRIBUTE11(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE11;
2343       p_acct_hist_rec_tab.NEW_ATTRIBUTE11(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE11;
2344       p_acct_hist_rec_tab.OLD_ATTRIBUTE12(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE12;
2345       p_acct_hist_rec_tab.NEW_ATTRIBUTE12(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE12;
2346       p_acct_hist_rec_tab.OLD_ATTRIBUTE13(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE13;
2347       p_acct_hist_rec_tab.NEW_ATTRIBUTE13(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE13;
2348       p_acct_hist_rec_tab.OLD_ATTRIBUTE14(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE14;
2349       p_acct_hist_rec_tab.NEW_ATTRIBUTE14(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE14;
2350       p_acct_hist_rec_tab.OLD_ATTRIBUTE15(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE15;
2351       p_acct_hist_rec_tab.NEW_ATTRIBUTE15(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE15;
2352       p_acct_hist_rec_tab.FULL_DUMP_FLAG(i)	 := p_acct_hist_tbl(i).FULL_DUMP_FLAG;
2353       p_acct_hist_rec_tab.OBJECT_VERSION_NUMBER(i)	 := p_acct_hist_tbl(i).OBJECT_VERSION_NUMBER;
2354       p_acct_hist_rec_tab.OLD_BILL_TO_ADDRESS(i)	 := p_acct_hist_tbl(i).OLD_BILL_TO_ADDRESS;
2355       p_acct_hist_rec_tab.NEW_BILL_TO_ADDRESS(i)	 := p_acct_hist_tbl(i).NEW_BILL_TO_ADDRESS;
2356       p_acct_hist_rec_tab.OLD_SHIP_TO_ADDRESS(i)	 := p_acct_hist_tbl(i).OLD_SHIP_TO_ADDRESS;
2357       p_acct_hist_rec_tab.NEW_SHIP_TO_ADDRESS(i)	 := p_acct_hist_tbl(i).NEW_SHIP_TO_ADDRESS;
2358       p_acct_hist_rec_tab.old_party_account_number(i)	 := p_acct_hist_tbl(i).old_party_account_number;
2359       p_acct_hist_rec_tab.old_party_account_name(i)	 := p_acct_hist_tbl(i).old_party_account_name;
2360       p_acct_hist_rec_tab.old_bill_to_location(i)	 := p_acct_hist_tbl(i).old_bill_to_location;
2361       p_acct_hist_rec_tab.old_ship_to_location(i)	 := p_acct_hist_tbl(i).old_ship_to_location;
2362       p_acct_hist_rec_tab.new_party_account_number(i)	 := p_acct_hist_tbl(i).new_party_account_number;
2363       p_acct_hist_rec_tab.new_party_account_name(i)	 := p_acct_hist_tbl(i).new_party_account_name;
2364       p_acct_hist_rec_tab.new_bill_to_location(i)	 := p_acct_hist_tbl(i).new_bill_to_location;
2365       p_acct_hist_rec_tab.new_ship_to_location(i)	 := p_acct_hist_tbl(i).new_ship_to_location;
2366       p_acct_hist_rec_tab.INSTANCE_ID(i)	 := p_acct_hist_tbl(i).INSTANCE_ID;
2367    END LOOP;
2368 END Build_Acct_Hist_Rec_of_Table;
2369 --
2370 PROCEDURE Build_Owner_Pty_Acct_Rec_Table
2371    (
2372      p_owner_pty_acct_tbl     IN     csi_item_instance_pvt.owner_pty_acct_tbl
2373     ,p_owner_pty_acct_rec_tab IN OUT NOCOPY  csi_item_instance_pvt.owner_pty_acct_rec_tab
2374    ) IS
2375 BEGIN
2376    FOR i in p_owner_pty_acct_tbl.FIRST .. p_owner_pty_acct_tbl.LAST LOOP
2377       p_owner_pty_acct_rec_tab.instance_id(i) := p_owner_pty_acct_tbl(i).instance_id;
2378       p_owner_pty_acct_rec_tab.party_source_table(i) := p_owner_pty_acct_tbl(i).party_source_table;
2379       p_owner_pty_acct_rec_tab.party_id(i) := p_owner_pty_acct_tbl(i).party_id;
2380       p_owner_pty_acct_rec_tab.account_id(i) := p_owner_pty_acct_tbl(i).account_id;
2381    END LOOP;
2382 END Build_Owner_Pty_Acct_Rec_Table;
2383 --
2384 PROCEDURE Build_Txn_Rec_of_Table
2385    (
2386      p_txn_tbl        IN     csi_datastructures_pub.transaction_tbl
2387     ,p_txn_rec_tab    IN OUT NOCOPY  csi_item_instance_grp.transaction_rec_tab
2388    ) IS
2389 BEGIN
2390    FOR i in p_txn_tbl.FIRST .. p_txn_tbl.LAST LOOP
2391       p_txn_rec_tab.TRANSACTION_ID(i)	 := p_txn_tbl(i).TRANSACTION_ID;
2392       p_txn_rec_tab.TRANSACTION_DATE(i)	 := p_txn_tbl(i).TRANSACTION_DATE;
2393       p_txn_rec_tab.SOURCE_TRANSACTION_DATE(i)	 := p_txn_tbl(i).SOURCE_TRANSACTION_DATE;
2394       p_txn_rec_tab.TRANSACTION_TYPE_ID(i)	 := p_txn_tbl(i).TRANSACTION_TYPE_ID;
2395       p_txn_rec_tab.TXN_SUB_TYPE_ID(i)	 := p_txn_tbl(i).TXN_SUB_TYPE_ID;
2396       p_txn_rec_tab.SOURCE_GROUP_REF_ID(i)	 := p_txn_tbl(i).SOURCE_GROUP_REF_ID;
2397       p_txn_rec_tab.SOURCE_GROUP_REF(i)	 := p_txn_tbl(i).SOURCE_GROUP_REF;
2398       p_txn_rec_tab.SOURCE_HEADER_REF_ID(i)	 := p_txn_tbl(i).SOURCE_HEADER_REF_ID;
2399       p_txn_rec_tab.SOURCE_HEADER_REF(i)	 := p_txn_tbl(i).SOURCE_HEADER_REF;
2400       p_txn_rec_tab.SOURCE_LINE_REF_ID(i)	 := p_txn_tbl(i).SOURCE_LINE_REF_ID;
2401       p_txn_rec_tab.SOURCE_LINE_REF(i)	 := p_txn_tbl(i).SOURCE_LINE_REF;
2402       p_txn_rec_tab.SOURCE_DIST_REF_ID1(i)	 := p_txn_tbl(i).SOURCE_DIST_REF_ID1;
2403       p_txn_rec_tab.SOURCE_DIST_REF_ID2(i)	 := p_txn_tbl(i).SOURCE_DIST_REF_ID2;
2404       p_txn_rec_tab.INV_MATERIAL_TRANSACTION_ID(i)	 := p_txn_tbl(i).INV_MATERIAL_TRANSACTION_ID;
2405       p_txn_rec_tab.TRANSACTION_QUANTITY(i)	 := p_txn_tbl(i).TRANSACTION_QUANTITY;
2406       p_txn_rec_tab.TRANSACTION_UOM_CODE(i)	 := p_txn_tbl(i).TRANSACTION_UOM_CODE;
2407       p_txn_rec_tab.TRANSACTED_BY(i)	 := p_txn_tbl(i).TRANSACTED_BY;
2408       p_txn_rec_tab.TRANSACTION_STATUS_CODE(i)	 := p_txn_tbl(i).TRANSACTION_STATUS_CODE;
2409       p_txn_rec_tab.TRANSACTION_ACTION_CODE(i)	 := p_txn_tbl(i).TRANSACTION_ACTION_CODE;
2410       p_txn_rec_tab.MESSAGE_ID(i)	 := p_txn_tbl(i).MESSAGE_ID;
2411       p_txn_rec_tab.CONTEXT(i)	 := p_txn_tbl(i).CONTEXT;
2412       p_txn_rec_tab.ATTRIBUTE1(i)	 := p_txn_tbl(i).ATTRIBUTE1;
2413       p_txn_rec_tab.ATTRIBUTE2(i)	 := p_txn_tbl(i).ATTRIBUTE2;
2414       p_txn_rec_tab.ATTRIBUTE3(i)	 := p_txn_tbl(i).ATTRIBUTE3;
2415       p_txn_rec_tab.ATTRIBUTE4(i)	 := p_txn_tbl(i).ATTRIBUTE4;
2416       p_txn_rec_tab.ATTRIBUTE5(i)	 := p_txn_tbl(i).ATTRIBUTE5;
2417       p_txn_rec_tab.ATTRIBUTE6(i)	 := p_txn_tbl(i).ATTRIBUTE6;
2418       p_txn_rec_tab.ATTRIBUTE7(i)	 := p_txn_tbl(i).ATTRIBUTE7;
2419       p_txn_rec_tab.ATTRIBUTE8(i)	 := p_txn_tbl(i).ATTRIBUTE8;
2420       p_txn_rec_tab.ATTRIBUTE9(i)	 := p_txn_tbl(i).ATTRIBUTE9;
2421       p_txn_rec_tab.ATTRIBUTE10(i)	 := p_txn_tbl(i).ATTRIBUTE10;
2422       p_txn_rec_tab.ATTRIBUTE11(i)	 := p_txn_tbl(i).ATTRIBUTE11;
2423       p_txn_rec_tab.ATTRIBUTE12(i)	 := p_txn_tbl(i).ATTRIBUTE12;
2424       p_txn_rec_tab.ATTRIBUTE13(i)	 := p_txn_tbl(i).ATTRIBUTE13;
2425       p_txn_rec_tab.ATTRIBUTE14(i)	 := p_txn_tbl(i).ATTRIBUTE14;
2426       p_txn_rec_tab.ATTRIBUTE15(i)	 := p_txn_tbl(i).ATTRIBUTE15;
2427       p_txn_rec_tab.OBJECT_VERSION_NUMBER(i)	 := p_txn_tbl(i).OBJECT_VERSION_NUMBER;
2428       p_txn_rec_tab.SPLIT_REASON_CODE(i)	 := p_txn_tbl(i).SPLIT_REASON_CODE;
2429       p_txn_rec_tab.GL_INTERFACE_STATUS_CODE(i)	 := p_txn_tbl(i).GL_INTERFACE_STATUS_CODE;
2430    END LOOP;
2431 END Build_Txn_Rec_of_Table;
2432 --
2433 PROCEDURE Build_Org_Rec_of_Table
2434    (
2435      p_org_tbl                 IN      csi_datastructures_pub.organization_units_tbl
2436     ,p_org_units_rec_tab       IN OUT NOCOPY   csi_item_instance_grp.org_units_rec_tab
2437    ) IS
2438 BEGIN
2439    FOR i in p_org_tbl.FIRST .. p_org_tbl.LAST LOOP
2440      p_org_units_rec_tab.instance_ou_id(i)          := p_org_tbl(i).instance_ou_id;
2441      p_org_units_rec_tab.instance_id(i)	            := p_org_tbl(i).instance_id;
2442      p_org_units_rec_tab.operating_unit_id(i)       := p_org_tbl(i).operating_unit_id;
2443      p_org_units_rec_tab.relationship_type_code(i)  := p_org_tbl(i).relationship_type_code;
2444      p_org_units_rec_tab.active_start_date(i)       := p_org_tbl(i).active_start_date;
2445      p_org_units_rec_tab.active_end_date(i)         := p_org_tbl(i).active_end_date;
2446      p_org_units_rec_tab.context(i)	            := p_org_tbl(i).context;
2447      p_org_units_rec_tab.attribute1(i)	            := p_org_tbl(i).attribute1;
2448      p_org_units_rec_tab.attribute2(i)	            := p_org_tbl(i).attribute2;
2449      p_org_units_rec_tab.attribute3(i)	            := p_org_tbl(i).attribute3;
2450      p_org_units_rec_tab.attribute4(i)	            := p_org_tbl(i).attribute4;
2451      p_org_units_rec_tab.attribute5(i)	            := p_org_tbl(i).attribute5;
2452      p_org_units_rec_tab.attribute6(i)	            := p_org_tbl(i).attribute6;
2453      p_org_units_rec_tab.attribute7(i)	            := p_org_tbl(i).attribute7;
2454      p_org_units_rec_tab.attribute8(i)	            := p_org_tbl(i).attribute8;
2455      p_org_units_rec_tab.attribute9(i)	            := p_org_tbl(i).attribute9;
2456      p_org_units_rec_tab.attribute10(i)	            := p_org_tbl(i).attribute10;
2457      p_org_units_rec_tab.attribute11(i)	            := p_org_tbl(i).attribute11;
2458      p_org_units_rec_tab.attribute12(i)	            := p_org_tbl(i).attribute12;
2459      p_org_units_rec_tab.attribute13(i)	            := p_org_tbl(i).attribute13;
2460      p_org_units_rec_tab.attribute14(i)	            := p_org_tbl(i).attribute14;
2461      p_org_units_rec_tab.attribute15(i)	            := p_org_tbl(i).attribute15;
2462      p_org_units_rec_tab.object_version_number(i)   := p_org_tbl(i).object_version_number;
2463      p_org_units_rec_tab.parent_tbl_index(i)	    := p_org_tbl(i).parent_tbl_index;
2464    END LOOP;
2465 END Build_Org_Rec_of_Table;
2466 --
2467 PROCEDURE Build_Org_Hist_Rec_of_Table
2468   ( p_org_hist_tbl       IN     csi_datastructures_pub.org_units_history_tbl
2469    ,p_org_hist_rec_tab   IN OUT NOCOPY  csi_item_instance_grp.org_units_history_rec_tab
2470   ) IS
2471 BEGIN
2472    FOR i in p_org_hist_tbl.FIRST .. p_org_hist_tbl.LAST LOOP
2473        p_org_hist_rec_tab.INSTANCE_OU_HISTORY_ID(i)	:= p_org_hist_tbl(i).INSTANCE_OU_HISTORY_ID;
2474        p_org_hist_rec_tab.INSTANCE_OU_ID(i)	        := p_org_hist_tbl(i).INSTANCE_OU_ID;
2475        p_org_hist_rec_tab.TRANSACTION_ID(i)	        := p_org_hist_tbl(i).TRANSACTION_ID;
2476        p_org_hist_rec_tab.OLD_OPERATING_UNIT_ID(i)	:= p_org_hist_tbl(i).OLD_OPERATING_UNIT_ID;
2477        p_org_hist_rec_tab.NEW_OPERATING_UNIT_ID(i)	:= p_org_hist_tbl(i).NEW_OPERATING_UNIT_ID;
2478        p_org_hist_rec_tab.OLD_RELATIONSHIP_TYPE_CODE(i)	:= p_org_hist_tbl(i).OLD_RELATIONSHIP_TYPE_CODE;
2479        p_org_hist_rec_tab.NEW_RELATIONSHIP_TYPE_CODE(i)	:= p_org_hist_tbl(i).NEW_RELATIONSHIP_TYPE_CODE;
2480        p_org_hist_rec_tab.OLD_ACTIVE_START_DATE(i)	:= p_org_hist_tbl(i).OLD_ACTIVE_START_DATE;
2481        p_org_hist_rec_tab.NEW_ACTIVE_START_DATE(i)	:= p_org_hist_tbl(i).NEW_ACTIVE_START_DATE;
2482        p_org_hist_rec_tab.OLD_ACTIVE_END_DATE(i)	:= p_org_hist_tbl(i).OLD_ACTIVE_END_DATE;
2483        p_org_hist_rec_tab.NEW_ACTIVE_END_DATE(i)	:= p_org_hist_tbl(i).NEW_ACTIVE_END_DATE;
2484        p_org_hist_rec_tab.OLD_CONTEXT(i)	        := p_org_hist_tbl(i).OLD_CONTEXT;
2485        p_org_hist_rec_tab.NEW_CONTEXT(i)	        := p_org_hist_tbl(i).NEW_CONTEXT;
2486        p_org_hist_rec_tab.OLD_ATTRIBUTE1(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE1;
2487        p_org_hist_rec_tab.NEW_ATTRIBUTE1(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE1;
2488        p_org_hist_rec_tab.OLD_ATTRIBUTE2(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE2;
2489        p_org_hist_rec_tab.NEW_ATTRIBUTE2(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE2;
2490        p_org_hist_rec_tab.OLD_ATTRIBUTE3(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE3;
2491        p_org_hist_rec_tab.NEW_ATTRIBUTE3(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE3;
2492        p_org_hist_rec_tab.OLD_ATTRIBUTE4(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE4;
2493        p_org_hist_rec_tab.NEW_ATTRIBUTE4(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE4;
2494        p_org_hist_rec_tab.OLD_ATTRIBUTE5(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE5;
2495        p_org_hist_rec_tab.NEW_ATTRIBUTE5(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE5;
2496        p_org_hist_rec_tab.OLD_ATTRIBUTE6(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE6;
2497        p_org_hist_rec_tab.NEW_ATTRIBUTE6(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE6;
2498        p_org_hist_rec_tab.OLD_ATTRIBUTE7(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE7;
2499        p_org_hist_rec_tab.NEW_ATTRIBUTE7(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE7;
2500        p_org_hist_rec_tab.OLD_ATTRIBUTE8(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE8;
2501        p_org_hist_rec_tab.NEW_ATTRIBUTE8(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE8;
2502        p_org_hist_rec_tab.OLD_ATTRIBUTE9(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE9;
2503        p_org_hist_rec_tab.NEW_ATTRIBUTE9(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE9;
2504        p_org_hist_rec_tab.OLD_ATTRIBUTE10(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE10;
2505        p_org_hist_rec_tab.NEW_ATTRIBUTE10(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE10;
2506        p_org_hist_rec_tab.OLD_ATTRIBUTE11(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE11;
2507        p_org_hist_rec_tab.NEW_ATTRIBUTE11(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE11;
2508        p_org_hist_rec_tab.OLD_ATTRIBUTE12(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE12;
2509        p_org_hist_rec_tab.NEW_ATTRIBUTE12(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE12;
2510        p_org_hist_rec_tab.OLD_ATTRIBUTE13(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE13;
2511        p_org_hist_rec_tab.NEW_ATTRIBUTE13(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE13;
2512        p_org_hist_rec_tab.OLD_ATTRIBUTE14(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE14;
2513        p_org_hist_rec_tab.NEW_ATTRIBUTE14(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE14;
2514        p_org_hist_rec_tab.OLD_ATTRIBUTE15(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE15;
2515        p_org_hist_rec_tab.NEW_ATTRIBUTE15(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE15;
2516        p_org_hist_rec_tab.FULL_DUMP_FLAG(i)	        := p_org_hist_tbl(i).FULL_DUMP_FLAG;
2517        p_org_hist_rec_tab.OBJECT_VERSION_NUMBER(i)	:= p_org_hist_tbl(i).OBJECT_VERSION_NUMBER;
2518        p_org_hist_rec_tab.new_operating_unit_name(i)	:= p_org_hist_tbl(i).new_operating_unit_name;
2519        p_org_hist_rec_tab.old_operating_unit_name(i)	:= p_org_hist_tbl(i).old_operating_unit_name;
2520        p_org_hist_rec_tab.INSTANCE_ID(i)	        := p_org_hist_tbl(i).INSTANCE_ID;
2521 
2522    END LOOP;
2523 END Build_Org_Hist_Rec_of_Table;
2524 --
2525 PROCEDURE Build_pricing_Rec_of_Table
2526    (
2527      p_pricing_tbl           IN      csi_datastructures_pub.pricing_attribs_tbl
2528     ,p_pricing_rec_tab       IN OUT NOCOPY   csi_item_instance_grp.pricing_attribs_rec_tab
2529    ) IS
2530 BEGIN
2531    FOR i in p_pricing_tbl.FIRST .. p_pricing_tbl.LAST LOOP
2532        p_pricing_rec_tab.pricing_attribute_id(i)    := p_pricing_tbl(i).pricing_attribute_id;
2533        p_pricing_rec_tab.instance_id(i)	            := p_pricing_tbl(i).instance_id;
2534        p_pricing_rec_tab.active_start_date(i)	    := p_pricing_tbl(i).active_start_date;
2535        p_pricing_rec_tab.active_end_date(i)	        := p_pricing_tbl(i).active_end_date;
2536        p_pricing_rec_tab.pricing_context(i)	        := p_pricing_tbl(i).pricing_context;
2537        p_pricing_rec_tab.pricing_attribute1(i)	    := p_pricing_tbl(i).pricing_attribute1;
2538        p_pricing_rec_tab.pricing_attribute2(i)	    := p_pricing_tbl(i).pricing_attribute2;
2539        p_pricing_rec_tab.pricing_attribute3(i)	    := p_pricing_tbl(i).pricing_attribute3;
2540        p_pricing_rec_tab.pricing_attribute4(i)	    := p_pricing_tbl(i).pricing_attribute4;
2541        p_pricing_rec_tab.pricing_attribute5(i)	    := p_pricing_tbl(i).pricing_attribute5;
2542        p_pricing_rec_tab.pricing_attribute6(i)	    := p_pricing_tbl(i).pricing_attribute6;
2543        p_pricing_rec_tab.pricing_attribute7(i)	    := p_pricing_tbl(i).pricing_attribute7;
2544        p_pricing_rec_tab.pricing_attribute8(i) 	    := p_pricing_tbl(i).pricing_attribute8;
2545        p_pricing_rec_tab.pricing_attribute9(i)	    := p_pricing_tbl(i).pricing_attribute9;
2546        p_pricing_rec_tab.pricing_attribute10(i)	    := p_pricing_tbl(i).pricing_attribute10;
2547        p_pricing_rec_tab.pricing_attribute11(i)	    := p_pricing_tbl(i).pricing_attribute11;
2548        p_pricing_rec_tab.pricing_attribute12(i)	    := p_pricing_tbl(i).pricing_attribute12;
2549        p_pricing_rec_tab.pricing_attribute13(i)	    := p_pricing_tbl(i).pricing_attribute13;
2550        p_pricing_rec_tab.pricing_attribute14(i)	    := p_pricing_tbl(i).pricing_attribute14;
2551        p_pricing_rec_tab.pricing_attribute15(i)	    := p_pricing_tbl(i).pricing_attribute15;
2552        p_pricing_rec_tab.pricing_attribute16(i)	    := p_pricing_tbl(i).pricing_attribute16;
2553        p_pricing_rec_tab.pricing_attribute17(i)	    := p_pricing_tbl(i).pricing_attribute17;
2554        p_pricing_rec_tab.pricing_attribute18(i)	    := p_pricing_tbl(i).pricing_attribute18;
2555        p_pricing_rec_tab.pricing_attribute19(i)	    := p_pricing_tbl(i).pricing_attribute19;
2556        p_pricing_rec_tab.pricing_attribute20(i)	    := p_pricing_tbl(i).pricing_attribute20;
2557        p_pricing_rec_tab.pricing_attribute21(i)	    := p_pricing_tbl(i).pricing_attribute21;
2558        p_pricing_rec_tab.pricing_attribute22(i)	    := p_pricing_tbl(i).pricing_attribute22;
2559        p_pricing_rec_tab.pricing_attribute23(i)	    := p_pricing_tbl(i).pricing_attribute23;
2560        p_pricing_rec_tab.pricing_attribute24(i)	    := p_pricing_tbl(i).pricing_attribute24;
2561        p_pricing_rec_tab.pricing_attribute25(i)	    := p_pricing_tbl(i).pricing_attribute25;
2562        p_pricing_rec_tab.pricing_attribute26(i)	    := p_pricing_tbl(i).pricing_attribute26;
2563        p_pricing_rec_tab.pricing_attribute27(i)	    := p_pricing_tbl(i).pricing_attribute27;
2564        p_pricing_rec_tab.pricing_attribute28(i)	    := p_pricing_tbl(i).pricing_attribute28;
2565        p_pricing_rec_tab.pricing_attribute29(i)	    := p_pricing_tbl(i).pricing_attribute29;
2566        p_pricing_rec_tab.pricing_attribute30(i)	    := p_pricing_tbl(i).pricing_attribute30;
2567        p_pricing_rec_tab.pricing_attribute31(i)	    := p_pricing_tbl(i).pricing_attribute31;
2568        p_pricing_rec_tab.pricing_attribute32(i)	    := p_pricing_tbl(i).pricing_attribute32;
2569        p_pricing_rec_tab.pricing_attribute33(i)     := p_pricing_tbl(i).pricing_attribute33;
2570        p_pricing_rec_tab.pricing_attribute34(i)	    := p_pricing_tbl(i).pricing_attribute34;
2571        p_pricing_rec_tab.pricing_attribute35(i)	    := p_pricing_tbl(i).pricing_attribute35;
2572        p_pricing_rec_tab.pricing_attribute36(i)	    := p_pricing_tbl(i).pricing_attribute36;
2573        p_pricing_rec_tab.pricing_attribute37(i)	    := p_pricing_tbl(i).pricing_attribute37;
2574        p_pricing_rec_tab.pricing_attribute38(i)	    := p_pricing_tbl(i).pricing_attribute38;
2575        p_pricing_rec_tab.pricing_attribute39(i)	    := p_pricing_tbl(i).pricing_attribute39;
2576        p_pricing_rec_tab.pricing_attribute40(i)	    := p_pricing_tbl(i).pricing_attribute40;
2577        p_pricing_rec_tab.pricing_attribute41(i)	    := p_pricing_tbl(i).pricing_attribute41;
2578        p_pricing_rec_tab.pricing_attribute42(i)	    := p_pricing_tbl(i).pricing_attribute42;
2582        p_pricing_rec_tab.pricing_attribute46(i)	    := p_pricing_tbl(i).pricing_attribute46;
2579        p_pricing_rec_tab.pricing_attribute43(i)     := p_pricing_tbl(i).pricing_attribute43;
2580        p_pricing_rec_tab.pricing_attribute44(i)	    := p_pricing_tbl(i).pricing_attribute44;
2581        p_pricing_rec_tab.pricing_attribute45(i)	    := p_pricing_tbl(i).pricing_attribute45;
2583        p_pricing_rec_tab.pricing_attribute47(i)	    := p_pricing_tbl(i).pricing_attribute47;
2584        p_pricing_rec_tab.pricing_attribute48(i)	    := p_pricing_tbl(i).pricing_attribute48;
2585        p_pricing_rec_tab.pricing_attribute49(i)	    := p_pricing_tbl(i).pricing_attribute49;
2586        p_pricing_rec_tab.pricing_attribute50(i)	    := p_pricing_tbl(i).pricing_attribute50;
2587        p_pricing_rec_tab.pricing_attribute51(i)	    := p_pricing_tbl(i).pricing_attribute51;
2588        p_pricing_rec_tab.pricing_attribute52(i)	    := p_pricing_tbl(i).pricing_attribute52;
2589        p_pricing_rec_tab.pricing_attribute53(i)	    := p_pricing_tbl(i).pricing_attribute53;
2590        p_pricing_rec_tab.pricing_attribute54(i)	    := p_pricing_tbl(i).pricing_attribute54;
2591        p_pricing_rec_tab.pricing_attribute55(i)	    := p_pricing_tbl(i).pricing_attribute55;
2592        p_pricing_rec_tab.pricing_attribute56(i)	    := p_pricing_tbl(i).pricing_attribute56;
2593        p_pricing_rec_tab.pricing_attribute57(i)	    := p_pricing_tbl(i).pricing_attribute57;
2594        p_pricing_rec_tab.pricing_attribute58(i)	    := p_pricing_tbl(i).pricing_attribute58;
2595        p_pricing_rec_tab.pricing_attribute59(i)	    := p_pricing_tbl(i).pricing_attribute59;
2596        p_pricing_rec_tab.pricing_attribute60(i)	    := p_pricing_tbl(i).pricing_attribute60;
2597        p_pricing_rec_tab.pricing_attribute61(i)	    := p_pricing_tbl(i).pricing_attribute61;
2598        p_pricing_rec_tab.pricing_attribute62(i)	    := p_pricing_tbl(i).pricing_attribute62;
2599        p_pricing_rec_tab.pricing_attribute63(i)	    := p_pricing_tbl(i).pricing_attribute63;
2600        p_pricing_rec_tab.pricing_attribute64(i)	    := p_pricing_tbl(i).pricing_attribute64;
2601        p_pricing_rec_tab.pricing_attribute65(i)	    := p_pricing_tbl(i).pricing_attribute65;
2602        p_pricing_rec_tab.pricing_attribute66(i)	    := p_pricing_tbl(i).pricing_attribute66;
2603        p_pricing_rec_tab.pricing_attribute67(i)	    := p_pricing_tbl(i).pricing_attribute67;
2604        p_pricing_rec_tab.pricing_attribute68(i)	    := p_pricing_tbl(i).pricing_attribute68;
2605        p_pricing_rec_tab.pricing_attribute69(i)	    := p_pricing_tbl(i).pricing_attribute69;
2606        p_pricing_rec_tab.pricing_attribute70(i)	    := p_pricing_tbl(i).pricing_attribute70;
2607        p_pricing_rec_tab.pricing_attribute71(i)	    := p_pricing_tbl(i).pricing_attribute71;
2608        p_pricing_rec_tab.pricing_attribute72(i)	    := p_pricing_tbl(i).pricing_attribute72;
2609        p_pricing_rec_tab.pricing_attribute73(i)	    := p_pricing_tbl(i).pricing_attribute73;
2610        p_pricing_rec_tab.pricing_attribute74(i)	    := p_pricing_tbl(i).pricing_attribute74;
2611        p_pricing_rec_tab.pricing_attribute75(i)	    := p_pricing_tbl(i).pricing_attribute75;
2612        p_pricing_rec_tab.pricing_attribute76(i)	    := p_pricing_tbl(i).pricing_attribute76;
2613        p_pricing_rec_tab.pricing_attribute77(i)	    := p_pricing_tbl(i).pricing_attribute77;
2614        p_pricing_rec_tab.pricing_attribute78(i)	    := p_pricing_tbl(i).pricing_attribute78;
2615        p_pricing_rec_tab.pricing_attribute79(i)	    := p_pricing_tbl(i).pricing_attribute79;
2616        p_pricing_rec_tab.pricing_attribute80(i)	    := p_pricing_tbl(i).pricing_attribute80;
2617        p_pricing_rec_tab.pricing_attribute81(i)	    := p_pricing_tbl(i).pricing_attribute81;
2618        p_pricing_rec_tab.pricing_attribute82(i)	    := p_pricing_tbl(i).pricing_attribute82;
2619        p_pricing_rec_tab.pricing_attribute83(i)	    := p_pricing_tbl(i).pricing_attribute83;
2620        p_pricing_rec_tab.pricing_attribute84(i)	    := p_pricing_tbl(i).pricing_attribute84;
2621        p_pricing_rec_tab.pricing_attribute85(i)	    := p_pricing_tbl(i).pricing_attribute85;
2622        p_pricing_rec_tab.pricing_attribute86(i)	    := p_pricing_tbl(i).pricing_attribute86;
2623        p_pricing_rec_tab.pricing_attribute87(i)	    := p_pricing_tbl(i).pricing_attribute87;
2624        p_pricing_rec_tab.pricing_attribute88(i)	    := p_pricing_tbl(i).pricing_attribute88;
2625        p_pricing_rec_tab.pricing_attribute89(i)	    := p_pricing_tbl(i).pricing_attribute89;
2626        p_pricing_rec_tab.pricing_attribute90(i)	    := p_pricing_tbl(i).pricing_attribute90;
2627        p_pricing_rec_tab.pricing_attribute91(i)	    := p_pricing_tbl(i).pricing_attribute91;
2628        p_pricing_rec_tab.pricing_attribute92(i)	    := p_pricing_tbl(i).pricing_attribute92;
2629        p_pricing_rec_tab.pricing_attribute93(i)	    := p_pricing_tbl(i).pricing_attribute93;
2630        p_pricing_rec_tab.pricing_attribute94(i)	    := p_pricing_tbl(i).pricing_attribute94;
2631        p_pricing_rec_tab.pricing_attribute95(i)	    := p_pricing_tbl(i).pricing_attribute95;
2632        p_pricing_rec_tab.pricing_attribute96(i)	    := p_pricing_tbl(i).pricing_attribute96;
2633        p_pricing_rec_tab.pricing_attribute97(i)	    := p_pricing_tbl(i).pricing_attribute97;
2634        p_pricing_rec_tab.pricing_attribute98(i)	    := p_pricing_tbl(i).pricing_attribute98;
2635        p_pricing_rec_tab.pricing_attribute99(i)	    := p_pricing_tbl(i).pricing_attribute99;
2636        p_pricing_rec_tab.pricing_attribute100(i)    := p_pricing_tbl(i).pricing_attribute100;
2637        p_pricing_rec_tab.context(i)	                := p_pricing_tbl(i).context;
2638        p_pricing_rec_tab.attribute1(i)	            := p_pricing_tbl(i).attribute1;
2639        p_pricing_rec_tab.attribute2(i)	            := p_pricing_tbl(i).attribute2;
2640        p_pricing_rec_tab.attribute3(i)	            := p_pricing_tbl(i).attribute3;
2641        p_pricing_rec_tab.attribute4(i)	            := p_pricing_tbl(i).attribute4;
2642        p_pricing_rec_tab.attribute5(i)	            := p_pricing_tbl(i).attribute5;
2643        p_pricing_rec_tab.attribute6(i)	            := p_pricing_tbl(i).attribute6;
2644        p_pricing_rec_tab.attribute7(i)	            := p_pricing_tbl(i).attribute7;
2645        p_pricing_rec_tab.attribute8(i)	            := p_pricing_tbl(i).attribute8;
2646        p_pricing_rec_tab.attribute9(i)	            := p_pricing_tbl(i).attribute9;
2650        p_pricing_rec_tab.attribute13(i)	            := p_pricing_tbl(i).attribute13;
2647        p_pricing_rec_tab.attribute10(i)	            := p_pricing_tbl(i).attribute10;
2648        p_pricing_rec_tab.attribute11(i)	            := p_pricing_tbl(i).attribute11;
2649        p_pricing_rec_tab.attribute12(i)	            := p_pricing_tbl(i).attribute12;
2651        p_pricing_rec_tab.attribute14(i)	            := p_pricing_tbl(i).attribute14;
2652        p_pricing_rec_tab.attribute15(i)	            := p_pricing_tbl(i).attribute15;
2653        p_pricing_rec_tab.object_version_number(i)   := p_pricing_tbl(i).object_version_number;
2654        p_pricing_rec_tab.parent_tbl_index(i)	    := p_pricing_tbl(i).parent_tbl_index;
2655    END LOOP;
2656 END Build_pricing_Rec_of_Table;
2657 --
2658 PROCEDURE Build_pricing_Hist_Rec_Table
2659   ( p_pricing_hist_tbl       IN     csi_datastructures_pub.pricing_history_tbl
2660    ,p_pricing_hist_rec_tab   IN OUT NOCOPY  csi_item_instance_grp.pricing_attribs_hist_rec_tab
2661   ) IS
2662 BEGIN
2663    FOR i in p_pricing_hist_tbl.FIRST .. p_pricing_hist_tbl.LAST LOOP
2664       p_pricing_hist_rec_tab.PRICE_ATTRIB_HISTORY_ID(i):= p_pricing_hist_tbl(i).PRICE_ATTRIB_HISTORY_ID;
2665       p_pricing_hist_rec_tab.PRICING_ATTRIBUTE_ID(i):= p_pricing_hist_tbl(i).PRICING_ATTRIBUTE_ID;
2666       p_pricing_hist_rec_tab.TRANSACTION_ID(i)         := p_pricing_hist_tbl(i).TRANSACTION_ID;
2667       p_pricing_hist_rec_tab.OLD_PRICING_CONTEXT(i):= p_pricing_hist_tbl(i).OLD_PRICING_CONTEXT;
2668       p_pricing_hist_rec_tab.NEW_PRICING_CONTEXT(i):= p_pricing_hist_tbl(i).NEW_PRICING_CONTEXT;
2669       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE1(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE1;
2670       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE1(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE1;
2671       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE2(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE2;
2672       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE2(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE2;
2673       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE3(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE3;
2674       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE3(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE3;
2675       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE4(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE4;
2676       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE4(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE4;
2677       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE5(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE5;
2678       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE5(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE5;
2679       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE6(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE6;
2680       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE6(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE6;
2681       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE7(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE7;
2682       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE7(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE7;
2683       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE8(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE8;
2684       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE8(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE8;
2685       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE9(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE9;
2686       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE9(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE9;
2687       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE10(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE10;
2688       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE10(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE10;
2689       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE11(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE11;
2690       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE11(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE11;
2691       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE12(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE12;
2692       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE12(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE12;
2693       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE13(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE13;
2694       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE13(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE13;
2695       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE14(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE14;
2696       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE14(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE14;
2697       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE15(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE15;
2698       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE15(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE15;
2699       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE16(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE16;
2700       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE16(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE16;
2701       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE17(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE17;
2702       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE17(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE17;
2703       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE18(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE18;
2704       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE18(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE18;
2705       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE19(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE19;
2706       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE19(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE19;
2707       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE20(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE20;
2708       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE20(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE20;
2709       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE21(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE21;
2710       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE21(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE21;
2711       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE22(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE22;
2712       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE22(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE22;
2713       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE23(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE23;
2717       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE25(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE25;
2714       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE23(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE23;
2715       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE24(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE24;
2716       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE24(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE24;
2718       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE25(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE25;
2719       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE26(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE26;
2720       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE26(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE26;
2721       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE27(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE27;
2722       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE27(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE27;
2723       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE28(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE28;
2724       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE28(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE28;
2725       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE29(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE29;
2726       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE29(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE29;
2727       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE30(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE30;
2728       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE30(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE30;
2729       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE31(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE31;
2730       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE31(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE31;
2731       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE32(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE32;
2732       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE32(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE32;
2733       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE33(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE33;
2734       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE33(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE33;
2735       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE34(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE34;
2736       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE34(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE34;
2737       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE35(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE35;
2738       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE35(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE35;
2739       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE36(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE36;
2740       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE36(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE36;
2741       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE37(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE37;
2742       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE37(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE37;
2743       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE38(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE38;
2744       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE38(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE38;
2745       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE39(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE39;
2746       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE39(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE39;
2747       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE40(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE40;
2748       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE40(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE40;
2749       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE41(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE41;
2750       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE41(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE41;
2751       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE42(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE42;
2752       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE42(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE42;
2753       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE43(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE43;
2754       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE43(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE43;
2755       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE44(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE44;
2756       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE44(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE44;
2757       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE45(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE45;
2758       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE45(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE45;
2759       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE46(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE46;
2760       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE46(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE46;
2761       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE47(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE47;
2762       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE47(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE47;
2763       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE48(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE48;
2764       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE48(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE48;
2765       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE49(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE49;
2766       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE49(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE49;
2767       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE50(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE50;
2768       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE50(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE50;
2769       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE51(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE51;
2770       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE51(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE51;
2771       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE52(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE52;
2772       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE52(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE52;
2773       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE53(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE53;
2777       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE55(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE55;
2774       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE53(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE53;
2775       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE54(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE54;
2776       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE54(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE54;
2778       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE55(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE55;
2779       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE56(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE56;
2780       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE56(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE56;
2781       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE57(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE57;
2782       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE57(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE57;
2783       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE58(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE58;
2784       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE58(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE58;
2785       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE59(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE59;
2786       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE59(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE59;
2787       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE60(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE60;
2788       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE60(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE60;
2789       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE61(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE61;
2790       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE61(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE61;
2791       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE62(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE62;
2792       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE62(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE62;
2793       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE63(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE63;
2794       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE63(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE63;
2795       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE64(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE64;
2796       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE64(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE64;
2797       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE65(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE65;
2798       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE65(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE65;
2799       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE66(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE66;
2800       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE66(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE66;
2801       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE67(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE67;
2802       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE67(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE67;
2803       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE68(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE68;
2804       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE68(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE68;
2805       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE69(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE69;
2806       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE69(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE69;
2807       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE70(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE70;
2808       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE70(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE70;
2809       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE71(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE71;
2810       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE71(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE71;
2811       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE72(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE72;
2812       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE72(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE72;
2813       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE73(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE73;
2814       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE73(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE73;
2815       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE74(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE74;
2816       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE74(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE74;
2817       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE75(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE75;
2818       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE75(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE75;
2819       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE76(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE76;
2820       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE76(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE76;
2821       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE77(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE77;
2822       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE77(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE77;
2823       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE78(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE78;
2824       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE78(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE78;
2825       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE79(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE79;
2826       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE79(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE79;
2827       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE80(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE80;
2828       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE80(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE80;
2829       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE81(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE81;
2830       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE81(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE81;
2831       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE82(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE82;
2832       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE82(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE82;
2833       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE83(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE83;
2837       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE85(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE85;
2834       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE83(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE83;
2835       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE84(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE84;
2836       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE84(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE84;
2838       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE85(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE85;
2839       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE86(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE86;
2840       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE86(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE86;
2841       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE87(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE87;
2842       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE87(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE87;
2843       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE88(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE88;
2844       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE88(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE88;
2845       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE89(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE89;
2846       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE89(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE89;
2847       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE90(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE90;
2848       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE90(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE90;
2849       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE91(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE91;
2850       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE91(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE91;
2851       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE92(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE92;
2852       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE92(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE92;
2853       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE93(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE93;
2854       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE93(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE93;
2855       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE94(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE94;
2856       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE94(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE94;
2857       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE95(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE95;
2858       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE95(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE95;
2859       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE96(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE96;
2860       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE96(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE96;
2861       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE97(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE97;
2862       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE97(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE97;
2863       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE98(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE98;
2864       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE98(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE98;
2865       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE99(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE99;
2866       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE99(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE99;
2867       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE100(i)  := p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE100;
2868       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE100(i)  := p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE100;
2869       p_pricing_hist_rec_tab.OLD_ACTIVE_START_DATE(i):= p_pricing_hist_tbl(i).OLD_ACTIVE_START_DATE;
2870       p_pricing_hist_rec_tab.NEW_ACTIVE_START_DATE(i):= p_pricing_hist_tbl(i).NEW_ACTIVE_START_DATE;
2871       p_pricing_hist_rec_tab.OLD_ACTIVE_END_DATE(i):= p_pricing_hist_tbl(i).OLD_ACTIVE_END_DATE;
2872       p_pricing_hist_rec_tab.NEW_ACTIVE_END_DATE(i):= p_pricing_hist_tbl(i).NEW_ACTIVE_END_DATE;
2873       p_pricing_hist_rec_tab.OLD_CONTEXT(i)	        := p_pricing_hist_tbl(i).OLD_CONTEXT;
2874       p_pricing_hist_rec_tab.NEW_CONTEXT(i)	        := p_pricing_hist_tbl(i).NEW_CONTEXT;
2875       p_pricing_hist_rec_tab.OLD_ATTRIBUTE1(i)	        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE1;
2876       p_pricing_hist_rec_tab.NEW_ATTRIBUTE1(i)        := p_pricing_hist_tbl(i).NEW_ATTRIBUTE1;
2877       p_pricing_hist_rec_tab.OLD_ATTRIBUTE2(i)        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE2;
2878       p_pricing_hist_rec_tab.NEW_ATTRIBUTE2(i)        := p_pricing_hist_tbl(i).NEW_ATTRIBUTE2;
2879       p_pricing_hist_rec_tab.OLD_ATTRIBUTE3(i)        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE3;
2880       p_pricing_hist_rec_tab.NEW_ATTRIBUTE3(i)	        := p_pricing_hist_tbl(i).NEW_ATTRIBUTE3;
2881       p_pricing_hist_rec_tab.OLD_ATTRIBUTE4(i)	        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE4;
2882       p_pricing_hist_rec_tab.NEW_ATTRIBUTE4(i)        := p_pricing_hist_tbl(i).NEW_ATTRIBUTE4;
2883       p_pricing_hist_rec_tab.OLD_ATTRIBUTE5(i)        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE5;
2884       p_pricing_hist_rec_tab.NEW_ATTRIBUTE5(i)        := p_pricing_hist_tbl(i).NEW_ATTRIBUTE5;
2885       p_pricing_hist_rec_tab.OLD_ATTRIBUTE6(i)	        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE6;
2886       p_pricing_hist_rec_tab.NEW_ATTRIBUTE6(i)        := p_pricing_hist_tbl(i).NEW_ATTRIBUTE6;
2887       p_pricing_hist_rec_tab.OLD_ATTRIBUTE7(i)        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE7;
2888       p_pricing_hist_rec_tab.NEW_ATTRIBUTE7(i)	        := p_pricing_hist_tbl(i).NEW_ATTRIBUTE7;
2889       p_pricing_hist_rec_tab.OLD_ATTRIBUTE8(i)	        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE8;
2890       p_pricing_hist_rec_tab.NEW_ATTRIBUTE8(i)        := p_pricing_hist_tbl(i).NEW_ATTRIBUTE8;
2891       p_pricing_hist_rec_tab.OLD_ATTRIBUTE9(i)        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE9;
2892       p_pricing_hist_rec_tab.NEW_ATTRIBUTE9(i)        := p_pricing_hist_tbl(i).NEW_ATTRIBUTE9;
2893       p_pricing_hist_rec_tab.OLD_ATTRIBUTE10(i)        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE10;
2894       p_pricing_hist_rec_tab.NEW_ATTRIBUTE10(i)	    := p_pricing_hist_tbl(i).NEW_ATTRIBUTE10;
2895       p_pricing_hist_rec_tab.OLD_ATTRIBUTE11(i)        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE11;
2899       p_pricing_hist_rec_tab.OLD_ATTRIBUTE13(i)        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE13;
2896       p_pricing_hist_rec_tab.NEW_ATTRIBUTE11(i)	    := p_pricing_hist_tbl(i).NEW_ATTRIBUTE11;
2897       p_pricing_hist_rec_tab.OLD_ATTRIBUTE12(i)        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE12;
2898       p_pricing_hist_rec_tab.NEW_ATTRIBUTE12(i)        := p_pricing_hist_tbl(i).NEW_ATTRIBUTE12;
2900       p_pricing_hist_rec_tab.NEW_ATTRIBUTE13(i)        := p_pricing_hist_tbl(i).NEW_ATTRIBUTE13;
2901       p_pricing_hist_rec_tab.OLD_ATTRIBUTE14(i)	    := p_pricing_hist_tbl(i).OLD_ATTRIBUTE14;
2902       p_pricing_hist_rec_tab.NEW_ATTRIBUTE14(i)	    := p_pricing_hist_tbl(i).NEW_ATTRIBUTE14;
2903       p_pricing_hist_rec_tab.OLD_ATTRIBUTE15(i)	    := p_pricing_hist_tbl(i).OLD_ATTRIBUTE15;
2904       p_pricing_hist_rec_tab.NEW_ATTRIBUTE15(i)	    := p_pricing_hist_tbl(i).NEW_ATTRIBUTE15;
2905       p_pricing_hist_rec_tab.FULL_DUMP_FLAG(i)        := p_pricing_hist_tbl(i).FULL_DUMP_FLAG;
2906    END LOOP;
2907 END Build_pricing_Hist_Rec_Table;
2908 --
2909 PROCEDURE Build_Ext_Attr_Rec_Table
2910    (
2911      p_ext_attr_tbl     IN     csi_datastructures_pub.extend_attrib_values_tbl
2912     ,p_ext_attr_rec_tab IN OUT NOCOPY  csi_item_instance_grp.extend_attrib_values_rec_tab
2913    ) IS
2914 
2915 BEGIN
2916    FOR i in p_ext_attr_tbl.FIRST .. p_ext_attr_tbl.LAST LOOP
2917 
2918      p_ext_attr_rec_tab.attribute_value_id(i)      :=  p_ext_attr_tbl(i).attribute_value_id;
2919      p_ext_attr_rec_tab.instance_id(i)             :=  p_ext_attr_tbl(i).instance_id;
2920      p_ext_attr_rec_tab.attribute_id(i)            :=  p_ext_attr_tbl(i).attribute_id;
2921      p_ext_attr_rec_tab.attribute_code(i)          :=  p_ext_attr_tbl(i).attribute_code;
2922      p_ext_attr_rec_tab.attribute_value(i)         :=  p_ext_attr_tbl(i).attribute_value;
2923      p_ext_attr_rec_tab.active_start_date(i)       :=  p_ext_attr_tbl(i).active_start_date;
2924      p_ext_attr_rec_tab.active_end_date(i)         :=  p_ext_attr_tbl(i).active_end_date;
2925      p_ext_attr_rec_tab.context(i)                 :=  p_ext_attr_tbl(i).context;
2926      p_ext_attr_rec_tab.attribute1(i)              :=  p_ext_attr_tbl(i).attribute1;
2927      p_ext_attr_rec_tab.attribute2 (i)             :=  p_ext_attr_tbl(i).attribute2;
2928      p_ext_attr_rec_tab.attribute3(i)              :=  p_ext_attr_tbl(i).attribute3;
2929      p_ext_attr_rec_tab.attribute4(i)              :=  p_ext_attr_tbl(i).attribute4;
2930      p_ext_attr_rec_tab.attribute5(i)              :=  p_ext_attr_tbl(i).attribute5;
2931      p_ext_attr_rec_tab.attribute6(i)              :=  p_ext_attr_tbl(i).attribute6;
2932      p_ext_attr_rec_tab.attribute7(i)              :=  p_ext_attr_tbl(i).attribute7;
2933      p_ext_attr_rec_tab.attribute8(i)              :=  p_ext_attr_tbl(i).attribute8;
2934      p_ext_attr_rec_tab.attribute9(i)              :=  p_ext_attr_tbl(i).attribute9;
2935      p_ext_attr_rec_tab.attribute10(i)             :=  p_ext_attr_tbl(i).attribute10;
2936      p_ext_attr_rec_tab.attribute11(i)             :=  p_ext_attr_tbl(i).attribute11;
2937      p_ext_attr_rec_tab.attribute12(i)             :=  p_ext_attr_tbl(i).attribute12;
2938      p_ext_attr_rec_tab.attribute13(i)             :=  p_ext_attr_tbl(i).attribute13;
2939      p_ext_attr_rec_tab.attribute14(i)             :=  p_ext_attr_tbl(i).attribute14;
2940      p_ext_attr_rec_tab.attribute15(i)             :=  p_ext_attr_tbl(i).attribute15;
2941      p_ext_attr_rec_tab.object_version_number(i)   :=  p_ext_attr_tbl(i).object_version_number;
2942      p_ext_attr_rec_tab.parent_tbl_index(i)        :=  p_ext_attr_tbl(i).parent_tbl_index;
2943 
2944    END LOOP;
2945 END Build_Ext_Attr_Rec_Table;
2946 --
2947 PROCEDURE Build_Ext_Attr_Hist_Rec_Table
2948    (
2949      p_ext_attr_hist_tbl  IN  csi_datastructures_pub.ext_attrib_val_history_tbl
2950     ,p_ext_attr_hist_rec_tab IN OUT NOCOPY  csi_item_instance_grp.ext_attrib_val_hist_rec_tab
2951    ) IS
2952 BEGIN
2953    FOR i in p_ext_attr_hist_tbl.FIRST .. p_ext_attr_hist_tbl.LAST LOOP
2954 
2955       p_ext_attr_hist_rec_tab.attribute_value_history_id(i) := p_ext_attr_hist_tbl(i).attribute_value_history_id;
2956       p_ext_attr_hist_rec_tab.attribute_value_id(i)       := p_ext_attr_hist_tbl(i).attribute_value_id;
2957       p_ext_attr_hist_rec_tab.transaction_id(i)           := p_ext_attr_hist_tbl(i).transaction_id;
2958       p_ext_attr_hist_rec_tab.old_attribute_value(i)      := p_ext_attr_hist_tbl(i).old_attribute_value;
2959       p_ext_attr_hist_rec_tab.new_attribute_value(i)      := p_ext_attr_hist_tbl(i).new_attribute_value;
2960       p_ext_attr_hist_rec_tab.old_active_start_date(i)    := p_ext_attr_hist_tbl(i).old_active_start_date;
2961       p_ext_attr_hist_rec_tab.new_active_start_date(i)    := p_ext_attr_hist_tbl(i).new_active_start_date;
2962       p_ext_attr_hist_rec_tab.old_active_end_date(i)      := p_ext_attr_hist_tbl(i).old_active_end_date;
2963       p_ext_attr_hist_rec_tab.new_active_end_date(i)      := p_ext_attr_hist_tbl(i).new_active_end_date;
2964       p_ext_attr_hist_rec_tab.old_context(i)              := p_ext_attr_hist_tbl(i).old_context;
2965       p_ext_attr_hist_rec_tab.new_context(i)              := p_ext_attr_hist_tbl(i).new_context;
2966       p_ext_attr_hist_rec_tab.old_attribute1(i)           := p_ext_attr_hist_tbl(i).old_attribute1;
2967       p_ext_attr_hist_rec_tab.new_attribute1(i)           := p_ext_attr_hist_tbl(i).new_attribute1;
2968       p_ext_attr_hist_rec_tab.old_attribute2(i)           := p_ext_attr_hist_tbl(i).old_attribute2;
2969       p_ext_attr_hist_rec_tab.new_attribute2(i)           := p_ext_attr_hist_tbl(i).new_attribute2;
2970       p_ext_attr_hist_rec_tab.old_attribute3(i)           := p_ext_attr_hist_tbl(i).old_attribute3;
2971       p_ext_attr_hist_rec_tab.new_attribute3(i)           := p_ext_attr_hist_tbl(i).new_attribute3;
2972       p_ext_attr_hist_rec_tab.old_attribute4(i)           := p_ext_attr_hist_tbl(i).old_attribute4;
2973       p_ext_attr_hist_rec_tab.new_attribute4(i)           := p_ext_attr_hist_tbl(i).new_attribute4;
2974       p_ext_attr_hist_rec_tab.old_attribute5(i)           := p_ext_attr_hist_tbl(i).old_attribute5;
2975       p_ext_attr_hist_rec_tab.new_attribute5(i)           := p_ext_attr_hist_tbl(i).new_attribute5;
2976       p_ext_attr_hist_rec_tab.old_attribute6(i)           := p_ext_attr_hist_tbl(i).old_attribute6;
2977       p_ext_attr_hist_rec_tab.new_attribute6(i)           := p_ext_attr_hist_tbl(i).new_attribute6;
2978       p_ext_attr_hist_rec_tab.old_attribute7(i)           := p_ext_attr_hist_tbl(i).old_attribute7;
2979       p_ext_attr_hist_rec_tab.new_attribute7(i)           := p_ext_attr_hist_tbl(i).new_attribute7;
2980       p_ext_attr_hist_rec_tab.old_attribute8(i)           := p_ext_attr_hist_tbl(i).old_attribute8;
2981       p_ext_attr_hist_rec_tab.new_attribute8(i)           := p_ext_attr_hist_tbl(i).new_attribute8;
2982       p_ext_attr_hist_rec_tab.old_attribute9(i)           := p_ext_attr_hist_tbl(i).old_attribute9;
2983       p_ext_attr_hist_rec_tab.new_attribute9(i)           := p_ext_attr_hist_tbl(i).new_attribute9;
2984       p_ext_attr_hist_rec_tab.old_attribute10(i)          := p_ext_attr_hist_tbl(i).old_attribute10;
2985       p_ext_attr_hist_rec_tab.new_attribute10(i)          := p_ext_attr_hist_tbl(i).new_attribute10;
2986       p_ext_attr_hist_rec_tab.old_attribute11(i)          := p_ext_attr_hist_tbl(i).old_attribute11;
2987       p_ext_attr_hist_rec_tab.new_attribute11(i)          := p_ext_attr_hist_tbl(i).new_attribute11;
2988       p_ext_attr_hist_rec_tab.old_attribute12(i)          := p_ext_attr_hist_tbl(i).old_attribute12;
2989       p_ext_attr_hist_rec_tab.new_attribute12(i)          := p_ext_attr_hist_tbl(i).new_attribute12;
2990       p_ext_attr_hist_rec_tab.old_attribute13(i)          := p_ext_attr_hist_tbl(i).old_attribute13;
2991       p_ext_attr_hist_rec_tab.new_attribute13(i)          := p_ext_attr_hist_tbl(i).new_attribute13;
2992       p_ext_attr_hist_rec_tab.old_attribute14(i)          := p_ext_attr_hist_tbl(i).old_attribute14;
2993       p_ext_attr_hist_rec_tab.new_attribute14(i)          := p_ext_attr_hist_tbl(i).new_attribute14;
2994       p_ext_attr_hist_rec_tab.old_attribute15(i)          := p_ext_attr_hist_tbl(i).old_attribute15;
2995       p_ext_attr_hist_rec_tab.new_attribute15(i)          := p_ext_attr_hist_tbl(i).new_attribute15;
2996       p_ext_attr_hist_rec_tab.instance_id(i)              := p_ext_attr_hist_tbl(i).instance_id;
2997       p_ext_attr_hist_rec_tab.attribute_code(i)           := p_ext_attr_hist_tbl(i).attribute_code;
2998 
2999    END LOOP;
3000 END Build_Ext_Attr_Hist_Rec_Table;
3001 --
3002 PROCEDURE Build_Asset_Rec_Table
3003    (
3004      p_asset_tbl     IN     csi_datastructures_pub.instance_asset_tbl
3005     ,p_asset_rec_tab IN OUT NOCOPY  csi_item_instance_grp.instance_asset_rec_tab
3006    ) IS
3007 
3008 BEGIN
3009    FOR i in p_asset_tbl.FIRST .. p_asset_tbl.LAST LOOP
3010 
3011      p_asset_rec_tab.instance_asset_id(i)          := p_asset_tbl(i).instance_asset_id;
3012      p_asset_rec_tab.instance_id(i)                := p_asset_tbl(i).instance_id;
3013      p_asset_rec_tab.fa_asset_id(i)                := p_asset_tbl(i).fa_asset_id;
3014      p_asset_rec_tab.fa_book_type_code(i)          := p_asset_tbl(i).fa_book_type_code;
3015      p_asset_rec_tab.fa_location_id(i)             := p_asset_tbl(i).fa_location_id;
3016      p_asset_rec_tab.asset_quantity(i)             := p_asset_tbl(i).asset_quantity;
3017      p_asset_rec_tab.update_status(i)              := p_asset_tbl(i).update_status;
3018      p_asset_rec_tab.active_start_date(i)          := p_asset_tbl(i).active_start_date;
3019      p_asset_rec_tab.active_end_date(i)            := p_asset_tbl(i).active_end_date;
3020      p_asset_rec_tab.object_version_number(i)      := p_asset_tbl(i).object_version_number;
3021      p_asset_rec_tab.check_for_instance_expiry(i)  := p_asset_tbl(i).check_for_instance_expiry;
3022      p_asset_rec_tab.parent_tbl_index(i)           := p_asset_tbl(i).parent_tbl_index;
3023      p_asset_rec_tab.fa_sync_flag(i)               := p_asset_tbl(i).fa_sync_flag;
3024 
3025    END LOOP;
3026 END Build_Asset_Rec_Table;
3027 --
3028 PROCEDURE Build_Asset_Hist_Rec_Table
3029    (
3030      p_asset_hist_tbl  IN  csi_datastructures_pub.ins_asset_history_tbl
3031     ,p_asset_hist_rec_tab IN OUT NOCOPY  csi_item_instance_grp.ins_asset_history_rec_tab
3032    ) IS
3033 BEGIN
3034    FOR i in p_asset_hist_tbl.FIRST .. p_asset_hist_tbl.LAST LOOP
3035 
3036      p_asset_hist_rec_tab.instance_asset_history_id(i)    := p_asset_hist_tbl(i).instance_asset_history_id;
3037      p_asset_hist_rec_tab.transaction_id(i)               := p_asset_hist_tbl(i).transaction_id;
3038      p_asset_hist_rec_tab.instance_asset_id(i)            := p_asset_hist_tbl(i).instance_asset_id;
3039      p_asset_hist_rec_tab.old_instance_id(i)              := p_asset_hist_tbl(i).old_instance_id;
3043      p_asset_hist_rec_tab.old_fa_book_type_code(i)        := p_asset_hist_tbl(i).old_fa_book_type_code;
3040      p_asset_hist_rec_tab.new_instance_id(i)              := p_asset_hist_tbl(i).new_instance_id;
3041      p_asset_hist_rec_tab.old_fa_asset_id(i)              := p_asset_hist_tbl(i).old_fa_asset_id;
3042      p_asset_hist_rec_tab.new_fa_asset_id(i)              := p_asset_hist_tbl(i).new_fa_asset_id;
3044      p_asset_hist_rec_tab.new_fa_book_type_code(i)        := p_asset_hist_tbl(i).new_fa_book_type_code;
3045      p_asset_hist_rec_tab.old_fa_location_id(i)           := p_asset_hist_tbl(i).old_fa_location_id;
3046      p_asset_hist_rec_tab.new_fa_location_id(i)           := p_asset_hist_tbl(i).new_fa_location_id;
3047      p_asset_hist_rec_tab.old_asset_quantity(i)           := p_asset_hist_tbl(i).old_asset_quantity;
3048      p_asset_hist_rec_tab.new_asset_quantity(i)           := p_asset_hist_tbl(i).new_asset_quantity;
3049      p_asset_hist_rec_tab.old_update_status(i)            := p_asset_hist_tbl(i).old_update_status;
3050      p_asset_hist_rec_tab.new_update_status(i)            := p_asset_hist_tbl(i).new_update_status;
3051      p_asset_hist_rec_tab.old_active_start_date(i)        := p_asset_hist_tbl(i).old_active_start_date;
3052      p_asset_hist_rec_tab.new_active_start_date(i)        := p_asset_hist_tbl(i).new_active_start_date;
3053      p_asset_hist_rec_tab.old_active_end_date(i)          := p_asset_hist_tbl(i).old_active_end_date;
3054      p_asset_hist_rec_tab.new_active_end_date(i)          := p_asset_hist_tbl(i).new_active_end_date;
3055      p_asset_hist_rec_tab.old_asset_number(i)             := p_asset_hist_tbl(i).old_asset_number;
3056      p_asset_hist_rec_tab.new_asset_number(i)             := p_asset_hist_tbl(i).new_asset_number;
3057      p_asset_hist_rec_tab.old_serial_number(i)            := p_asset_hist_tbl(i).old_serial_number;
3058      p_asset_hist_rec_tab.new_serial_number(i)            := p_asset_hist_tbl(i).new_serial_number;
3059      p_asset_hist_rec_tab.old_tag_number(i)               := p_asset_hist_tbl(i).old_tag_number;
3060      p_asset_hist_rec_tab.new_tag_number(i)               := p_asset_hist_tbl(i).new_tag_number;
3061      p_asset_hist_rec_tab.old_category(i)                 := p_asset_hist_tbl(i).old_category;
3062      p_asset_hist_rec_tab.new_category(i)                 := p_asset_hist_tbl(i).new_category;
3063      p_asset_hist_rec_tab.old_fa_location_segment1(i)     := p_asset_hist_tbl(i).old_fa_location_segment1;
3064      p_asset_hist_rec_tab.new_fa_location_segment1(i)     := p_asset_hist_tbl(i).new_fa_location_segment1;
3065      p_asset_hist_rec_tab.old_fa_location_segment2(i)     := p_asset_hist_tbl(i).old_fa_location_segment2;
3066      p_asset_hist_rec_tab.new_fa_location_segment2(i)     := p_asset_hist_tbl(i).new_fa_location_segment2;
3067      p_asset_hist_rec_tab.old_fa_location_segment3(i)     := p_asset_hist_tbl(i).old_fa_location_segment3;
3068      p_asset_hist_rec_tab.new_fa_location_segment3(i)     := p_asset_hist_tbl(i).new_fa_location_segment3;
3069      p_asset_hist_rec_tab.old_fa_location_segment4(i)     := p_asset_hist_tbl(i).old_fa_location_segment4;
3070      p_asset_hist_rec_tab.new_fa_location_segment4(i)     := p_asset_hist_tbl(i).new_fa_location_segment4;
3071      p_asset_hist_rec_tab.old_fa_location_segment5(i)     := p_asset_hist_tbl(i).old_fa_location_segment5;
3072      p_asset_hist_rec_tab.new_fa_location_segment5(i)     := p_asset_hist_tbl(i).new_fa_location_segment5;
3073      p_asset_hist_rec_tab.old_fa_location_segment6(i)     := p_asset_hist_tbl(i).old_fa_location_segment6;
3074      p_asset_hist_rec_tab.new_fa_location_segment6(i)     := p_asset_hist_tbl(i).new_fa_location_segment6;
3075      p_asset_hist_rec_tab.old_fa_location_segment7(i)     := p_asset_hist_tbl(i).old_fa_location_segment7;
3076      p_asset_hist_rec_tab.new_fa_location_segment7(i)     := p_asset_hist_tbl(i).new_fa_location_segment7;
3077      p_asset_hist_rec_tab.old_date_placed_in_service(i)   := p_asset_hist_tbl(i).old_date_placed_in_service;
3078      p_asset_hist_rec_tab.new_date_placed_in_service(i)   := p_asset_hist_tbl(i).new_date_placed_in_service;
3079      p_asset_hist_rec_tab.old_description(i)              := p_asset_hist_tbl(i).old_description;
3080      p_asset_hist_rec_tab.new_description(i)              := p_asset_hist_tbl(i).new_description;
3081      p_asset_hist_rec_tab.old_employee_name(i)            := p_asset_hist_tbl(i).old_employee_name;
3082      p_asset_hist_rec_tab.new_employee_name(i)            := p_asset_hist_tbl(i).new_employee_name;
3083      p_asset_hist_rec_tab.old_expense_account_number(i)   := p_asset_hist_tbl(i).old_expense_account_number;
3084      p_asset_hist_rec_tab.new_expense_account_number(i)   := p_asset_hist_tbl(i).new_expense_account_number;
3085      p_asset_hist_rec_tab.instance_id(i)                  := p_asset_hist_tbl(i).instance_id;
3086      p_asset_hist_rec_tab.old_fa_sync_flag(i)             := p_asset_hist_tbl(i).old_fa_sync_flag;
3087      p_asset_hist_rec_tab.new_fa_sync_flag(i)             := p_asset_hist_tbl(i).new_fa_sync_flag;
3088 
3089    END LOOP;
3090 END Build_Asset_Hist_Rec_Table;
3091 --
3092 PROCEDURE Bulk_Insert
3093    (
3094      p_inst_tbl           IN  csi_datastructures_pub.instance_tbl
3095     ,p_txn_tbl            IN  csi_datastructures_pub.transaction_tbl
3096     ,p_inst_hist_tbl      IN  csi_datastructures_pub.instance_history_tbl
3097     ,p_version_label_tbl  IN  csi_datastructures_pub.version_label_tbl
3098     ,p_ver_label_hist_tbl IN  csi_datastructures_pub.version_label_history_tbl
3099     ,p_party_tbl          IN  csi_datastructures_pub.party_tbl
3100     ,p_party_hist_tbl     IN  csi_datastructures_pub.party_history_tbl
3101     ,p_account_tbl        IN  csi_datastructures_pub.party_account_tbl
3102     ,p_acct_hist_tbl      IN  csi_datastructures_pub.account_history_tbl
3103     ,p_owner_pty_acct_tbl IN  csi_item_instance_pvt.owner_pty_acct_tbl
3104     ,p_org_units_tbl      IN  csi_datastructures_pub.organization_units_tbl
3105     ,p_org_units_hist_tbl IN  csi_datastructures_pub.org_units_history_tbl
3106     ,p_pricing_tbl        IN  csi_datastructures_pub.pricing_attribs_tbl
3107     ,p_pricing_hist_tbl   IN  csi_datastructures_pub.pricing_history_tbl
3108     ,p_ext_attr_values_tbl IN csi_datastructures_pub.extend_attrib_values_tbl
3109     ,p_ext_attr_val_hist_tbl IN csi_datastructures_pub.ext_attrib_val_history_tbl
3110     ,p_asset_tbl          IN  csi_datastructures_pub.instance_asset_tbl
3111     ,p_asset_hist_tbl     IN  csi_datastructures_pub.ins_asset_history_tbl
3112     ,x_return_status      OUT NOCOPY VARCHAR2
3113    ) IS
3114    --
3115    l_inst_rec_tab                csi_item_instance_grp.instance_rec_tab;
3116    l_inst_hist_rec_tab           csi_item_instance_grp.instance_history_rec_tab;
3117    l_version_label_rec_tab       csi_item_instance_grp.version_label_rec_tab;
3118    l_ver_label_hist_rec_tab      csi_item_instance_grp.ver_label_history_rec_tab;
3119    l_party_rec_tab               csi_item_instance_grp.party_rec_tab;
3120    l_party_hist_rec_tab          csi_item_instance_grp.party_history_rec_tab;
3121    l_account_rec_tab             csi_item_instance_grp.account_rec_tab;
3122    l_acct_hist_rec_tab           csi_item_instance_grp.account_history_rec_tab;
3123    l_txn_rec_tab                 csi_item_instance_grp.transaction_rec_tab;
3124    l_owner_pty_acct_rec_tab      csi_item_instance_pvt.owner_pty_acct_rec_tab;
3125    l_ext_attr_rec_tab            csi_item_instance_grp.extend_attrib_values_rec_tab;
3126    l_ext_attr_hist_rec_tab       csi_item_instance_grp.ext_attrib_val_hist_rec_tab;
3127    l_asset_rec_tab               csi_item_instance_grp.instance_asset_rec_tab;
3128    l_asset_hist_rec_tab          csi_item_instance_grp.ins_asset_history_rec_tab;
3129    l_org_units_rec_tab           csi_item_instance_grp.org_units_rec_tab;
3130    l_org_hist_rec_tab            csi_item_instance_grp.org_units_history_rec_tab;
3131    l_pricing_rec_tab             csi_item_instance_grp.pricing_attribs_rec_tab;
3132    l_pricing_hist_rec_tab        csi_item_instance_grp.pricing_attribs_hist_rec_tab;
3133    --
3134    l_user_id      NUMBER := FND_GLOBAL.USER_ID;
3135    l_login_id     NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
3136    l_ctr          NUMBER;
3137 BEGIN
3138    SAVEPOINT Bulk_Insert;
3139    --
3140    x_return_status := FND_API.G_RET_STS_SUCCESS;
3141    --
3142    IF p_inst_tbl.count > 0 THEN
3143       Build_Inst_Rec_of_Table
3144          ( p_inst_tbl  => p_inst_tbl
3145           ,p_inst_rec_tab => l_inst_rec_tab
3146          );
3147       --
3148       l_ctr := l_inst_rec_tab.instance_id.count;
3149       FORALL i in 1 .. l_ctr
3150          INSERT INTO CSI_ITEM_INSTANCES(
3151          INSTANCE_ID,
3152          INSTANCE_NUMBER,
3153          EXTERNAL_REFERENCE,
3154          INVENTORY_ITEM_ID,
3155          INVENTORY_REVISION,
3156          INV_MASTER_ORGANIZATION_ID,
3157          SERIAL_NUMBER,
3158          MFG_SERIAL_NUMBER_FLAG,
3159          LOT_NUMBER,
3160          QUANTITY,
3161          UNIT_OF_MEASURE,
3162          ACCOUNTING_CLASS_CODE,
3163          INSTANCE_CONDITION_ID,
3164          INSTANCE_STATUS_ID,
3165          CUSTOMER_VIEW_FLAG,
3166          MERCHANT_VIEW_FLAG,
3167          SELLABLE_FLAG,
3168          SYSTEM_ID,
3169          INSTANCE_TYPE_CODE,
3170          ACTIVE_START_DATE,
3171          ACTIVE_END_DATE,
3172          LOCATION_TYPE_CODE,
3173          LOCATION_ID,
3174          INV_ORGANIZATION_ID,
3175          INV_SUBINVENTORY_NAME,
3176          INV_LOCATOR_ID,
3177          PA_PROJECT_ID,
3178          PA_PROJECT_TASK_ID,
3179          IN_TRANSIT_ORDER_LINE_ID,
3180          WIP_JOB_ID,
3181          PO_ORDER_LINE_ID,
3182          LAST_OE_ORDER_LINE_ID,
3183          LAST_OE_RMA_LINE_ID,
3184          LAST_PO_PO_LINE_ID,
3185          LAST_OE_PO_NUMBER,
3186          LAST_WIP_JOB_ID,
3187          LAST_PA_PROJECT_ID,
3188          LAST_PA_TASK_ID,
3189          LAST_OE_AGREEMENT_ID,
3190          INSTALL_DATE,
3191          MANUALLY_CREATED_FLAG,
3192          RETURN_BY_DATE,
3193          ACTUAL_RETURN_DATE,
3194          CREATION_COMPLETE_FLAG,
3195          COMPLETENESS_FLAG,
3196          CONTEXT,
3197 	 ATTRIBUTE1,
3198 	 ATTRIBUTE2,
3199 	 ATTRIBUTE3,
3200 	 ATTRIBUTE4,
3201 	 ATTRIBUTE5,
3202 	 ATTRIBUTE6,
3203 	 ATTRIBUTE7,
3204 	 ATTRIBUTE8,
3205 	 ATTRIBUTE9,
3206 	 ATTRIBUTE10,
3207 	 ATTRIBUTE11,
3208 	 ATTRIBUTE12,
3209 	 ATTRIBUTE13,
3210 	 ATTRIBUTE14,
3211 	 ATTRIBUTE15,
3212 	 CREATED_BY,
3213 	 CREATION_DATE,
3214 	 LAST_UPDATED_BY,
3215 	 LAST_UPDATE_DATE,
3216 	 LAST_UPDATE_LOGIN,
3217 	 OBJECT_VERSION_NUMBER,
3218 	 LAST_TXN_LINE_DETAIL_ID,
3219 	 INSTALL_LOCATION_TYPE_CODE,
3220 	 INSTALL_LOCATION_ID,
3221 	 INSTANCE_USAGE_CODE,
3222          LAST_VLD_ORGANIZATION_ID,
3223          CONFIG_INST_HDR_ID,
3224          CONFIG_INST_REV_NUM,
3225          CONFIG_INST_ITEM_ID,
3226          CONFIG_VALID_STATUS,
3227          INSTANCE_DESCRIPTION,
3228          NETWORK_ASSET_FLAG,
3229          MAINTAINABLE_FLAG ,
3230          ASSET_CRITICALITY_CODE,
3231          CATEGORY_ID           ,
3232          EQUIPMENT_GEN_OBJECT_ID,
3233          INSTANTIATION_FLAG     ,
3234          OPERATIONAL_LOG_FLAG   ,
3235          SUPPLIER_WARRANTY_EXP_DATE,
3236          ATTRIBUTE16 ,
3237          ATTRIBUTE17 ,
3238          ATTRIBUTE18 ,
3239          ATTRIBUTE19 ,
3240          ATTRIBUTE20 ,
3241          ATTRIBUTE21 ,
3242          ATTRIBUTE22 ,
3243          ATTRIBUTE23 ,
3244          ATTRIBUTE24 ,
3245          ATTRIBUTE25 ,
3246          ATTRIBUTE26 ,
3247          ATTRIBUTE27 ,
3248          ATTRIBUTE28 ,
3249          ATTRIBUTE29 ,
3250          ATTRIBUTE30 ,
3251 	 PURCHASE_UNIT_PRICE ,
3252 	 PURCHASE_CURRENCY_CODE ,
3253 	 PAYABLES_UNIT_PRICE ,
3254 	 PAYABLES_CURRENCY_CODE ,
3255 	 SALES_UNIT_PRICE ,
3256 	 SALES_CURRENCY_CODE ,
3257 	 OPERATIONAL_STATUS_CODE
3258          ) VALUES(
3259           l_inst_rec_tab.INSTANCE_ID(i),
3260 	  decode( l_inst_rec_tab.INSTANCE_NUMBER(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.INSTANCE_NUMBER(i)),
3261 	  decode( l_inst_rec_tab.EXTERNAL_REFERENCE(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.EXTERNAL_REFERENCE(i)),
3262 	  decode( l_inst_rec_tab.INVENTORY_ITEM_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.INVENTORY_ITEM_ID(i)),
3263 	  decode( l_inst_rec_tab.INVENTORY_REVISION(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.INVENTORY_REVISION(i)),
3264 	  decode( l_inst_rec_tab.INV_MASTER_ORGANIZATION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.INV_MASTER_ORGANIZATION_ID(i)),
3268 	  decode( l_inst_rec_tab.QUANTITY(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.QUANTITY(i)),
3265 	  decode( l_inst_rec_tab.SERIAL_NUMBER(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.SERIAL_NUMBER(i)),
3266 	  decode( l_inst_rec_tab.MFG_SERIAL_NUMBER_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.MFG_SERIAL_NUMBER_FLAG(i)),
3267 	  decode( l_inst_rec_tab.LOT_NUMBER(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.LOT_NUMBER(i)),
3269 	  decode( l_inst_rec_tab.UNIT_OF_MEASURE(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.UNIT_OF_MEASURE(i)),
3270 	  decode( l_inst_rec_tab.ACCOUNTING_CLASS_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ACCOUNTING_CLASS_CODE(i)),
3271 	  decode( l_inst_rec_tab.INSTANCE_CONDITION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.INSTANCE_CONDITION_ID(i)),
3272 	  decode( l_inst_rec_tab.INSTANCE_STATUS_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.INSTANCE_STATUS_ID(i)),
3273 	  decode( l_inst_rec_tab.CUSTOMER_VIEW_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.CUSTOMER_VIEW_FLAG(i)),
3274 	  decode( l_inst_rec_tab.MERCHANT_VIEW_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.MERCHANT_VIEW_FLAG(i)),
3275 	  decode( l_inst_rec_tab.SELLABLE_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.SELLABLE_FLAG(i)),
3276 	  decode( l_inst_rec_tab.SYSTEM_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.SYSTEM_ID(i)),
3277 	  decode( l_inst_rec_tab.INSTANCE_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.INSTANCE_TYPE_CODE(i)),
3278 	  decode( l_inst_rec_tab.ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_inst_rec_tab.ACTIVE_START_DATE(i)),
3279 	  decode( l_inst_rec_tab.ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_inst_rec_tab.ACTIVE_END_DATE(i)),
3280 	  decode( l_inst_rec_tab.LOCATION_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.LOCATION_TYPE_CODE(i)),
3281 	  decode( l_inst_rec_tab.LOCATION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.LOCATION_ID(i)),
3282 	  decode( l_inst_rec_tab.INV_ORGANIZATION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.INV_ORGANIZATION_ID(i)),
3283 	  decode( l_inst_rec_tab.INV_SUBINVENTORY_NAME(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.INV_SUBINVENTORY_NAME(i)),
3284 	  decode( l_inst_rec_tab.INV_LOCATOR_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.INV_LOCATOR_ID(i)),
3285 	  decode( l_inst_rec_tab.PA_PROJECT_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.PA_PROJECT_ID(i)),
3286 	  decode( l_inst_rec_tab.PA_PROJECT_TASK_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.PA_PROJECT_TASK_ID(i)),
3287 	  decode( l_inst_rec_tab.IN_TRANSIT_ORDER_LINE_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.IN_TRANSIT_ORDER_LINE_ID(i)),
3288 	  decode( l_inst_rec_tab.WIP_JOB_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.WIP_JOB_ID(i)),
3289 	  decode( l_inst_rec_tab.PO_ORDER_LINE_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.PO_ORDER_LINE_ID(i)),
3290 	  decode( l_inst_rec_tab.LAST_OE_ORDER_LINE_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.LAST_OE_ORDER_LINE_ID(i)),
3291 	  decode( l_inst_rec_tab.LAST_OE_RMA_LINE_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.LAST_OE_RMA_LINE_ID(i)),
3292 	  decode( l_inst_rec_tab.LAST_PO_PO_LINE_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.LAST_PO_PO_LINE_ID(i)),
3293 	  decode( l_inst_rec_tab.LAST_OE_PO_NUMBER(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.LAST_OE_PO_NUMBER(i)),
3294 	  decode( l_inst_rec_tab.LAST_WIP_JOB_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.LAST_WIP_JOB_ID(i)),
3295 	  decode( l_inst_rec_tab.LAST_PA_PROJECT_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.LAST_PA_PROJECT_ID(i)),
3296 	  decode( l_inst_rec_tab.LAST_PA_TASK_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.LAST_PA_TASK_ID(i)),
3297 	  decode( l_inst_rec_tab.LAST_OE_AGREEMENT_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.LAST_OE_AGREEMENT_ID(i)),
3298 	  decode( l_inst_rec_tab.INSTALL_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_inst_rec_tab.INSTALL_DATE(i)),
3299 	  decode( l_inst_rec_tab.MANUALLY_CREATED_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.MANUALLY_CREATED_FLAG(i)),
3300 	  decode( l_inst_rec_tab.RETURN_BY_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_inst_rec_tab.RETURN_BY_DATE(i)),
3301 	  decode( l_inst_rec_tab.ACTUAL_RETURN_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_inst_rec_tab.ACTUAL_RETURN_DATE(i)),
3302 	  decode( l_inst_rec_tab.CREATION_COMPLETE_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.CREATION_COMPLETE_FLAG(i)),
3303 	  decode( l_inst_rec_tab.COMPLETENESS_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.COMPLETENESS_FLAG(i)),
3304 	  decode( l_inst_rec_tab.CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.CONTEXT(i)),
3305 	  decode( l_inst_rec_tab.ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE1(i)),
3306 	  decode( l_inst_rec_tab.ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE2(i)),
3307 	  decode( l_inst_rec_tab.ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE3(i)),
3308 	  decode( l_inst_rec_tab.ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE4(i)),
3309 	  decode( l_inst_rec_tab.ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE5(i)),
3310 	  decode( l_inst_rec_tab.ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE6(i)),
3311 	  decode( l_inst_rec_tab.ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE7(i)),
3312 	  decode( l_inst_rec_tab.ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE8(i)),
3313 	  decode( l_inst_rec_tab.ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE9(i)),
3314 	  decode( l_inst_rec_tab.ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE10(i)),
3315 	  decode( l_inst_rec_tab.ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE11(i)),
3316 	  decode( l_inst_rec_tab.ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE12(i)),
3317 	  decode( l_inst_rec_tab.ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE13(i)),
3318 	  decode( l_inst_rec_tab.ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE14(i)),
3319 	  decode( l_inst_rec_tab.ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE15(i)),
3320 	  l_user_id,
3321 	  SYSDATE,
3322 	  l_user_id,
3323 	  SYSDATE,
3324 	  l_login_id,
3325 	  1,
3326 	  decode( l_inst_rec_tab.LAST_TXN_LINE_DETAIL_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.LAST_TXN_LINE_DETAIL_ID(i)),
3327 	  decode( l_inst_rec_tab.INSTALL_LOCATION_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.INSTALL_LOCATION_TYPE_CODE(i)),
3331           decode( l_inst_rec_tab.CONFIG_INST_HDR_ID(i), FND_API.G_MISS_NUM, NULL,l_inst_rec_tab.CONFIG_INST_HDR_ID(i)),
3328 	  decode( l_inst_rec_tab.INSTALL_LOCATION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.INSTALL_LOCATION_ID(i)),
3329 	  decode( l_inst_rec_tab.INSTANCE_USAGE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.INSTANCE_USAGE_CODE(i)),
3330 	  decode( l_inst_rec_tab.vld_organization_id(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.vld_organization_id(i)),
3332           decode( l_inst_rec_tab.CONFIG_INST_REV_NUM(i), FND_API.G_MISS_NUM, NULL,l_inst_rec_tab.CONFIG_INST_REV_NUM(i)),
3333           decode( l_inst_rec_tab.CONFIG_INST_ITEM_ID(i), FND_API.G_MISS_NUM, NULL,l_inst_rec_tab.CONFIG_INST_ITEM_ID(i)),
3334           decode( l_inst_rec_tab.CONFIG_VALID_STATUS(i), FND_API.G_MISS_CHAR, NULL,l_inst_rec_tab.CONFIG_VALID_STATUS(i)),
3335           decode( l_inst_rec_tab.INSTANCE_DESCRIPTION(i), FND_API.G_MISS_CHAR, NULL,l_inst_rec_tab.INSTANCE_DESCRIPTION(i)),
3336           decode( l_inst_rec_tab.NETWORK_ASSET_FLAG(i), FND_API.G_MISS_CHAR, NULL,l_inst_rec_tab.NETWORK_ASSET_FLAG(i)),
3337           decode( l_inst_rec_tab.MAINTAINABLE_FLAG(i), FND_API.G_MISS_CHAR, NULL,l_inst_rec_tab.MAINTAINABLE_FLAG(i)),
3338           decode( l_inst_rec_tab.ASSET_CRITICALITY_CODE(i), FND_API.G_MISS_CHAR, NULL,l_inst_rec_tab.ASSET_CRITICALITY_CODE(i)),
3339           decode( l_inst_rec_tab.CATEGORY_ID(i), FND_API.G_MISS_NUM, NULL,l_inst_rec_tab.CATEGORY_ID(i)),
3340           decode( l_inst_rec_tab.EQUIPMENT_GEN_OBJECT_ID(i), FND_API.G_MISS_NUM, NULL,l_inst_rec_tab.EQUIPMENT_GEN_OBJECT_ID(i)),
3341           decode( l_inst_rec_tab.INSTANTIATION_FLAG(i), FND_API.G_MISS_CHAR, NULL,l_inst_rec_tab.INSTANTIATION_FLAG(i)),
3342           decode( l_inst_rec_tab.OPERATIONAL_LOG_FLAG(i), FND_API.G_MISS_CHAR, NULL,l_inst_rec_tab.OPERATIONAL_LOG_FLAG(i)),
3343           decode( l_inst_rec_tab.SUPPLIER_WARRANTY_EXP_DATE(i), FND_API.G_MISS_DATE, NULL,l_inst_rec_tab.SUPPLIER_WARRANTY_EXP_DATE(i)),
3344 	  decode( l_inst_rec_tab.ATTRIBUTE16(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE16(i)),
3345 	  decode( l_inst_rec_tab.ATTRIBUTE17(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE17(i)),
3346 	  decode( l_inst_rec_tab.ATTRIBUTE18(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE18(i)),
3347 	  decode( l_inst_rec_tab.ATTRIBUTE19(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE19(i)),
3348 	  decode( l_inst_rec_tab.ATTRIBUTE20(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE20(i)),
3349 	  decode( l_inst_rec_tab.ATTRIBUTE21(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE21(i)),
3350 	  decode( l_inst_rec_tab.ATTRIBUTE22(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE22(i)),
3351 	  decode( l_inst_rec_tab.ATTRIBUTE23(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE23(i)),
3352 	  decode( l_inst_rec_tab.ATTRIBUTE24(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE24(i)),
3353 	  decode( l_inst_rec_tab.ATTRIBUTE25(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE25(i)),
3354 	  decode( l_inst_rec_tab.ATTRIBUTE26(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE26(i)),
3355 	  decode( l_inst_rec_tab.ATTRIBUTE27(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE27(i)),
3356 	  decode( l_inst_rec_tab.ATTRIBUTE28(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE28(i)),
3357 	  decode( l_inst_rec_tab.ATTRIBUTE29(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE29(i)),
3358 	  decode( l_inst_rec_tab.ATTRIBUTE30(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE30(i)),
3359 	  decode( l_inst_rec_tab.PURCHASE_UNIT_PRICE(i),FND_API.G_MISS_NUM, NULL,l_inst_rec_tab.PURCHASE_UNIT_PRICE(i)),
3360 	  decode( l_inst_rec_tab.PURCHASE_CURRENCY_CODE(i),FND_API.G_MISS_CHAR, NULL,l_inst_rec_tab.PURCHASE_CURRENCY_CODE(i)),
3361 	 decode( l_inst_rec_tab.PAYABLES_UNIT_PRICE(i),FND_API.G_MISS_NUM, NULL,l_inst_rec_tab.PAYABLES_UNIT_PRICE(i)),
3362 	 decode( l_inst_rec_tab.PAYABLES_CURRENCY_CODE(i),FND_API.G_MISS_CHAR, NULL,l_inst_rec_tab.PAYABLES_CURRENCY_CODE(i)),
3363 	 decode(l_inst_rec_tab.SALES_UNIT_PRICE(i),FND_API.G_MISS_NUM, NULL,l_inst_rec_tab.SALES_UNIT_PRICE(i)),
3364 	 decode( l_inst_rec_tab.SALES_CURRENCY_CODE(i),FND_API.G_MISS_CHAR, NULL,l_inst_rec_tab.SALES_CURRENCY_CODE(i)),
3365 	 decode( l_inst_rec_tab.OPERATIONAL_STATUS_CODE(i),FND_API.G_MISS_CHAR, NULL,l_inst_rec_tab.OPERATIONAL_STATUS_CODE(i))
3366          );
3367    END IF;
3368    --
3369    IF p_txn_tbl.count > 0 THEN
3370       Build_Txn_Rec_of_Table
3371         (
3372           p_txn_tbl     => p_txn_tbl
3373          ,p_txn_rec_tab => l_txn_rec_tab
3374         );
3375       --
3376       l_ctr := l_txn_rec_tab.transaction_id.count;
3377       --
3378       FORALL i in 1 .. l_ctr
3379          INSERT INTO CSI_TRANSACTIONS(
3380 	    transaction_id,
3381 	    transaction_date,
3382 	    source_transaction_date,
3383 	    transaction_type_id,
3384 	    txn_sub_type_id,
3385 	    source_group_ref_id,
3386 	    source_group_ref,
3387 	    source_header_ref_id,
3388 	    source_header_ref,
3389 	    source_line_ref_id,
3390 	    source_line_ref,
3391 	    source_dist_ref_id1,
3392 	    source_dist_ref_id2,
3393 	    inv_material_transaction_id,
3394 	    transaction_quantity,
3395 	    transaction_uom_code,
3396 	    transacted_by,
3397 	    transaction_status_code,
3398 	    transaction_action_code,
3399 	    message_id,
3400 	    context,
3401 	    attribute1,
3402 	    attribute2,
3403 	    attribute3,
3404 	    attribute4,
3405 	    attribute5,
3406 	    attribute6,
3407 	    attribute7,
3408 	    attribute8,
3409 	    attribute9,
3410 	    attribute10,
3411 	    attribute11,
3412 	    attribute12,
3413 	    attribute13,
3414 	    attribute14,
3415 	    attribute15,
3416 	    created_by,
3417 	    creation_date,
3418 	    last_updated_by,
3419 	    last_update_date,
3420 	    last_update_login,
3421 	    object_version_number,
3422 	    split_reason_code,
3423             gl_interface_status_code
3424 	   ) VALUES (
3425 	    l_txn_rec_tab.transaction_id(i),
3426 	    decode( l_txn_rec_tab.transaction_date(i), fnd_api.g_miss_date, to_date(null), l_txn_rec_tab.transaction_date(i)),
3427 	    decode( l_txn_rec_tab.source_transaction_date(i), fnd_api.g_miss_date, to_date(null), l_txn_rec_tab.source_transaction_date(i)),
3428 	    decode( l_txn_rec_tab.transaction_type_id(i), fnd_api.g_miss_num, null, l_txn_rec_tab.transaction_type_id(i)),
3429 	    decode( l_txn_rec_tab.txn_sub_type_id(i), fnd_api.g_miss_num, null, l_txn_rec_tab.txn_sub_type_id(i)),
3430 	    decode( l_txn_rec_tab.source_group_ref_id(i), fnd_api.g_miss_num, null, l_txn_rec_tab.source_group_ref_id(i)),
3431 	    decode( l_txn_rec_tab.source_group_ref(i), fnd_api.g_miss_char, null, l_txn_rec_tab.source_group_ref(i)),
3432 	    decode( l_txn_rec_tab.source_header_ref_id(i), fnd_api.g_miss_num, null, l_txn_rec_tab.source_header_ref_id(i)),
3433 	    decode( l_txn_rec_tab.source_header_ref(i), fnd_api.g_miss_char, null, l_txn_rec_tab.source_header_ref(i)),
3434 	    decode( l_txn_rec_tab.source_line_ref_id(i), fnd_api.g_miss_num, null, l_txn_rec_tab.source_line_ref_id(i)),
3435 	    decode( l_txn_rec_tab.source_line_ref(i), fnd_api.g_miss_char, null, l_txn_rec_tab.source_line_ref(i)),
3436 	    decode( l_txn_rec_tab.source_dist_ref_id1(i), fnd_api.g_miss_num, null, l_txn_rec_tab.source_dist_ref_id1(i)),
3437 	    decode( l_txn_rec_tab.source_dist_ref_id2(i), fnd_api.g_miss_num, null, l_txn_rec_tab.source_dist_ref_id2(i)),
3438 	    decode( l_txn_rec_tab.inv_material_transaction_id(i), fnd_api.g_miss_num, null, l_txn_rec_tab.inv_material_transaction_id(i)),
3439 	    decode( l_txn_rec_tab.transaction_quantity(i), fnd_api.g_miss_num, null, l_txn_rec_tab.transaction_quantity(i)),
3440 	    decode( l_txn_rec_tab.transaction_uom_code(i), fnd_api.g_miss_char, null, l_txn_rec_tab.transaction_uom_code(i)),
3441 	    decode( l_txn_rec_tab.transacted_by(i), fnd_api.g_miss_num, null, l_txn_rec_tab.transacted_by(i)),
3442 	    decode( l_txn_rec_tab.transaction_status_code(i), fnd_api.g_miss_char, null, l_txn_rec_tab.transaction_status_code(i)),
3443 	    decode( l_txn_rec_tab.transaction_action_code(i), fnd_api.g_miss_char, null, l_txn_rec_tab.transaction_action_code(i)),
3444 	    decode( l_txn_rec_tab.message_id(i), fnd_api.g_miss_num, null, l_txn_rec_tab.message_id(i)),
3445 	    decode( l_txn_rec_tab.context(i), fnd_api.g_miss_char, null, l_txn_rec_tab.context(i)),
3446 	    decode( l_txn_rec_tab.attribute1(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute1(i)),
3447 	    decode( l_txn_rec_tab.attribute2(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute2(i)),
3448 	    decode( l_txn_rec_tab.attribute3(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute3(i)),
3449 	    decode( l_txn_rec_tab.attribute4(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute4(i)),
3450 	    decode( l_txn_rec_tab.attribute5(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute5(i)),
3451 	    decode( l_txn_rec_tab.attribute6(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute6(i)),
3452 	    decode( l_txn_rec_tab.attribute7(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute7(i)),
3453 	    decode( l_txn_rec_tab.attribute8(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute8(i)),
3454 	    decode( l_txn_rec_tab.attribute9(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute9(i)),
3455 	    decode( l_txn_rec_tab.attribute10(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute10(i)),
3456 	    decode( l_txn_rec_tab.attribute11(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute11(i)),
3457 	    decode( l_txn_rec_tab.attribute12(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute12(i)),
3458 	    decode( l_txn_rec_tab.attribute13(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute13(i)),
3459 	    decode( l_txn_rec_tab.attribute14(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute14(i)),
3460 	    decode( l_txn_rec_tab.attribute15(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute15(i)),
3461 	    l_user_id,
3462 	    SYSDATE,
3463 	    l_user_id,
3464 	    SYSDATE,
3465 	    l_login_id,
3466 	    1,
3467 	    decode( l_txn_rec_tab.split_reason_code(i), fnd_api.g_miss_char, null, l_txn_rec_tab.split_reason_code(i)),
3468 	    decode( l_txn_rec_tab.gl_interface_status_code(i), fnd_api.g_miss_num, null, l_txn_rec_tab.gl_interface_status_code(i))
3469 	    );
3470    END IF;
3471    --
3472    IF p_inst_hist_tbl.count > 0 THEN
3473       Build_Inst_Hist_Rec_of_Table
3474        ( p_inst_hist_tbl     => p_inst_hist_tbl
3475         ,p_inst_hist_rec_tab => l_inst_hist_rec_tab
3476        );
3477       --
3478       l_ctr := l_inst_hist_rec_tab.instance_history_id.count;
3479       --
3480       FORALL i in 1 .. l_ctr
3484 		 TRANSACTION_ID,
3481          INSERT INTO CSI_ITEM_INSTANCES_H(
3482 		 INSTANCE_HISTORY_ID,
3483 		 INSTANCE_ID,
3485 		 OLD_INSTANCE_NUMBER,
3486 		 NEW_INSTANCE_NUMBER,
3487 		 OLD_EXTERNAL_REFERENCE,
3488 		 NEW_EXTERNAL_REFERENCE,
3489 		 OLD_INVENTORY_ITEM_ID,
3490 		 NEW_INVENTORY_ITEM_ID,
3491 		 OLD_INVENTORY_REVISION,
3492 		 NEW_INVENTORY_REVISION,
3493 		 OLD_INV_MASTER_ORGANIZATION_ID,
3494 		 NEW_INV_MASTER_ORGANIZATION_ID,
3495 		 OLD_SERIAL_NUMBER,
3496 		 NEW_SERIAL_NUMBER ,
3497 		 OLD_MFG_SERIAL_NUMBER_FLAG,
3498 		 NEW_MFG_SERIAL_NUMBER_FLAG,
3499 		 OLD_LOT_NUMBER,
3500 		 NEW_LOT_NUMBER,
3501 		 OLD_QUANTITY,
3502 		 NEW_QUANTITY,
3503 		 OLD_UNIT_OF_MEASURE,
3504 		 NEW_UNIT_OF_MEASURE,
3505 		 OLD_ACCOUNTING_CLASS_CODE,
3506 		 NEW_ACCOUNTING_CLASS_CODE,
3507 		 OLD_INSTANCE_CONDITION_ID,
3508 		 NEW_INSTANCE_CONDITION_ID,
3509 		 OLD_INSTANCE_STATUS_ID,
3510 		 NEW_INSTANCE_STATUS_ID,
3511 		 OLD_CUSTOMER_VIEW_FLAG,
3512 		 NEW_CUSTOMER_VIEW_FLAG,
3513 		 OLD_MERCHANT_VIEW_FLAG,
3514 		 NEW_MERCHANT_VIEW_FLAG,
3515 		 OLD_SELLABLE_FLAG,
3516 		 NEW_SELLABLE_FLAG,
3517 		 OLD_SYSTEM_ID,
3518 		 NEW_SYSTEM_ID,
3519 		 OLD_INSTANCE_TYPE_CODE,
3520 		 NEW_INSTANCE_TYPE_CODE,
3521 		 OLD_ACTIVE_START_DATE,
3522 		 NEW_ACTIVE_START_DATE,
3523 		 OLD_ACTIVE_END_DATE,
3524 		 NEW_ACTIVE_END_DATE,
3525 		 OLD_LOCATION_TYPE_CODE,
3526 		 NEW_LOCATION_TYPE_CODE,
3527 		 OLD_LOCATION_ID,
3528 		 NEW_LOCATION_ID,
3529 		 OLD_INV_ORGANIZATION_ID,
3530 		 NEW_INV_ORGANIZATION_ID,
3531 		 OLD_INV_SUBINVENTORY_NAME,
3532 		 NEW_INV_SUBINVENTORY_NAME,
3533 		 OLD_INV_LOCATOR_ID,
3534 		 NEW_INV_LOCATOR_ID,
3535 		 OLD_PA_PROJECT_ID,
3536 		 NEW_PA_PROJECT_ID,
3537 		 OLD_PA_PROJECT_TASK_ID,
3538 		 NEW_PA_PROJECT_TASK_ID,
3539 		 OLD_IN_TRANSIT_ORDER_LINE_ID,
3540 		 NEW_IN_TRANSIT_ORDER_LINE_ID,
3541 		 OLD_WIP_JOB_ID,
3542 		 NEW_WIP_JOB_ID,
3543 		 OLD_PO_ORDER_LINE_ID,
3544 		 NEW_PO_ORDER_LINE_ID,
3545 		 OLD_COMPLETENESS_FLAG,
3546 		 NEW_COMPLETENESS_FLAG,
3547 		 FULL_DUMP_FLAG,
3548 		 OLD_CONTEXT,
3549 		 NEW_CONTEXT,
3550 		 OLD_ATTRIBUTE1,
3551 		 NEW_ATTRIBUTE1,
3552 		 OLD_ATTRIBUTE2,
3553 		 NEW_ATTRIBUTE2,
3554 		 OLD_ATTRIBUTE3,
3555 		 NEW_ATTRIBUTE3,
3556 		 OLD_ATTRIBUTE4,
3557 		 NEW_ATTRIBUTE4,
3558 		 OLD_ATTRIBUTE5,
3559 		 NEW_ATTRIBUTE5,
3560 		 OLD_ATTRIBUTE6,
3561 		 NEW_ATTRIBUTE6,
3562 		 OLD_ATTRIBUTE7,
3563 		 NEW_ATTRIBUTE7,
3564 		 OLD_ATTRIBUTE8,
3565 		 NEW_ATTRIBUTE8,
3566 		 OLD_ATTRIBUTE9,
3567 		 NEW_ATTRIBUTE9,
3568 		 OLD_ATTRIBUTE10,
3569 		 NEW_ATTRIBUTE10,
3570 		 OLD_ATTRIBUTE11,
3571 		 NEW_ATTRIBUTE11,
3572 		 OLD_ATTRIBUTE12,
3573 		 NEW_ATTRIBUTE12,
3574 		 OLD_ATTRIBUTE13,
3575 		 NEW_ATTRIBUTE13,
3576 		 OLD_ATTRIBUTE14,
3577 		 NEW_ATTRIBUTE14,
3578 		 OLD_ATTRIBUTE15,
3579 		 NEW_ATTRIBUTE15,
3580 		 CREATED_BY,
3581 		 CREATION_DATE,
3582 		 LAST_UPDATED_BY,
3583 		 LAST_UPDATE_DATE,
3584 		 LAST_UPDATE_LOGIN,
3585 		 OBJECT_VERSION_NUMBER,
3586 		 OLD_INST_LOC_TYPE_CODE,
3587 		 NEW_INST_LOC_TYPE_CODE,
3588 		 OLD_INST_LOC_ID,
3589 		 NEW_INST_LOC_ID,
3590 		 OLD_INST_USAGE_CODE,
3591 		 NEW_INST_USAGE_CODE,
3592 		 OLD_last_vld_organization_id,
3593 		 NEW_last_vld_organization_id,
3594 		 OLD_CONFIG_INST_REV_NUM   ,
3595 		 NEW_CONFIG_INST_REV_NUM   ,
3596 		 OLD_CONFIG_VALID_STATUS   ,
3597 		 NEW_CONFIG_VALID_STATUS   ,
3598 		 OLD_INSTANCE_DESCRIPTION  ,
3599 		 NEW_INSTANCE_DESCRIPTION  ,
3600                  OLD_OE_AGREEMENT_ID ,
3601                  NEW_OE_AGREEMENT_ID ,
3602                  OLD_INSTALL_DATE ,
3603 		 NEW_INSTALL_DATE ,
3604 		 OLD_RETURN_BY_DATE ,
3605 		 NEW_RETURN_BY_DATE ,
3606 		 OLD_ACTUAL_RETURN_DATE ,
3607 		 NEW_ACTUAL_RETURN_DATE ,
3608 		 OLD_LAST_OE_ORDER_LINE_ID ,
3609 		 NEW_LAST_OE_ORDER_LINE_ID ,
3610 		 OLD_LAST_OE_RMA_LINE_ID ,
3611 		 NEW_LAST_OE_RMA_LINE_ID ,
3612 		 OLD_LAST_WIP_JOB_ID ,
3613 		 NEW_LAST_WIP_JOB_ID ,
3614 		 OLD_LAST_PO_PO_LINE_ID ,
3615 		 NEW_LAST_PO_PO_LINE_ID ,
3616 		 OLD_LAST_PA_PROJECT_ID ,
3617 		 NEW_LAST_PA_PROJECT_ID ,
3618 		 OLD_LAST_PA_TASK_ID ,
3619 		 NEW_LAST_PA_TASK_ID ,
3620 		 OLD_LAST_TXN_LINE_DETAIL_ID ,
3621 		 NEW_LAST_TXN_LINE_DETAIL_ID ,
3622 		 OLD_LAST_OE_PO_NUMBER ,
3623 		 NEW_LAST_OE_PO_NUMBER,
3624 
3625 		 OLD_NETWORK_ASSET_FLAG,
3626 		 NEW_NETWORK_ASSET_FLAG,
3627 		 OLD_MAINTAINABLE_FLAG,
3628 		 NEW_MAINTAINABLE_FLAG,
3629 		 OLD_ASSET_CRITICALITY_CODE,
3630 		 NEW_ASSET_CRITICALITY_CODE,
3631 		 OLD_CATEGORY_ID          ,
3632 		 NEW_CATEGORY_ID          ,
3633 		 OLD_EQUIPMENT_GEN_OBJECT_ID,
3634 		 NEW_EQUIPMENT_GEN_OBJECT_ID,
3635 		 OLD_INSTANTIATION_FLAG     ,
3636 		 NEW_INSTANTIATION_FLAG     ,
3637 		 OLD_OPERATIONAL_LOG_FLAG   ,
3638 		 NEW_OPERATIONAL_LOG_FLAG   ,
3639 		 OLD_SUPPLIER_WARRANTY_EXP_DATE,
3640 		 NEW_SUPPLIER_WARRANTY_EXP_DATE,
3641 		 OLD_ATTRIBUTE16,
3642 		 NEW_ATTRIBUTE16,
3643 		 OLD_ATTRIBUTE17,
3644 		 NEW_ATTRIBUTE17,
3645 		 OLD_ATTRIBUTE18,
3646 		 NEW_ATTRIBUTE18,
3647 		 OLD_ATTRIBUTE19,
3648 		 NEW_ATTRIBUTE19,
3649 		 OLD_ATTRIBUTE20,
3650 		 NEW_ATTRIBUTE20,
3651 		 OLD_ATTRIBUTE21,
3652 		 NEW_ATTRIBUTE21,
3653 		 OLD_ATTRIBUTE22,
3654 		 NEW_ATTRIBUTE22,
3655 		 OLD_ATTRIBUTE23,
3656 		 NEW_ATTRIBUTE23,
3657 		 OLD_ATTRIBUTE24,
3658 		 NEW_ATTRIBUTE24,
3659 		 OLD_ATTRIBUTE25,
3660 		 NEW_ATTRIBUTE25,
3661 		 OLD_ATTRIBUTE26,
3662 		 NEW_ATTRIBUTE26,
3663 		 OLD_ATTRIBUTE27,
3664 		 NEW_ATTRIBUTE27,
3665 		 OLD_ATTRIBUTE28,
3669 		 OLD_ATTRIBUTE30,
3666 		 NEW_ATTRIBUTE28,
3667 		 OLD_ATTRIBUTE29,
3668 		 NEW_ATTRIBUTE29,
3670 		 NEW_ATTRIBUTE30,
3671                  OLD_PAYABLES_CURRENCY_CODE,
3672                  NEW_PAYABLES_CURRENCY_CODE,
3673                  OLD_PURCHASE_UNIT_PRICE,
3674                  NEW_PURCHASE_UNIT_PRICE,
3675                  OLD_PURCHASE_CURRENCY_CODE,
3676                  NEW_PURCHASE_CURRENCY_CODE,
3677                  OLD_PAYABLES_UNIT_PRICE,
3678                  NEW_PAYABLES_UNIT_PRICE,
3679                  OLD_SALES_UNIT_PRICE,
3680                  NEW_SALES_UNIT_PRICE,
3681                  OLD_SALES_CURRENCY_CODE,
3682                  NEW_SALES_CURRENCY_CODE,
3683                  OLD_OPERATIONAL_STATUS_CODE,
3684                  NEW_OPERATIONAL_STATUS_CODE
3685                 )
3686 		 VALUES (
3687 		 l_inst_hist_rec_tab.INSTANCE_HISTORY_ID(i),
3688 		 decode( l_inst_hist_rec_tab.INSTANCE_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.INSTANCE_ID(i)),
3689 		 decode( l_inst_hist_rec_tab.TRANSACTION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.TRANSACTION_ID(i)),
3690 		 decode( l_inst_hist_rec_tab.OLD_INSTANCE_NUMBER(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_INSTANCE_NUMBER(i)),
3691 		 decode( l_inst_hist_rec_tab.NEW_INSTANCE_NUMBER(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_INSTANCE_NUMBER(i)),
3692 		 decode( l_inst_hist_rec_tab.OLD_EXTERNAL_REFERENCE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_EXTERNAL_REFERENCE(i)),
3693 		 decode( l_inst_hist_rec_tab.NEW_EXTERNAL_REFERENCE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_EXTERNAL_REFERENCE(i)),
3694 		 decode( l_inst_hist_rec_tab.OLD_INVENTORY_ITEM_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_INVENTORY_ITEM_ID(i)),
3695 		 decode( l_inst_hist_rec_tab.NEW_INVENTORY_ITEM_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_INVENTORY_ITEM_ID(i)),
3696 		 decode( l_inst_hist_rec_tab.OLD_INVENTORY_REVISION(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_INVENTORY_REVISION(i)),
3697 		 decode( l_inst_hist_rec_tab.NEW_INVENTORY_REVISION(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_INVENTORY_REVISION(i)),
3698 		 decode( l_inst_hist_rec_tab.OLD_INV_MASTER_ORG_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_INV_MASTER_ORG_ID(i)),
3699 		 decode( l_inst_hist_rec_tab.NEW_INV_MASTER_ORG_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_INV_MASTER_ORG_ID(i)),
3700 		 decode( l_inst_hist_rec_tab.OLD_SERIAL_NUMBER(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_SERIAL_NUMBER(i)),
3701 		 decode( l_inst_hist_rec_tab.NEW_SERIAL_NUMBER(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_SERIAL_NUMBER(i)),
3702 		 decode( l_inst_hist_rec_tab.OLD_MFG_SERIAL_NUMBER_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_MFG_SERIAL_NUMBER_FLAG(i)),
3703 		 decode( l_inst_hist_rec_tab.NEW_MFG_SERIAL_NUMBER_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_MFG_SERIAL_NUMBER_FLAG(i)),
3704 		 decode( l_inst_hist_rec_tab.OLD_LOT_NUMBER(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_LOT_NUMBER(i)),
3705 		 decode( l_inst_hist_rec_tab.NEW_LOT_NUMBER(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_LOT_NUMBER(i)),
3706 		 decode( l_inst_hist_rec_tab.OLD_QUANTITY(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_QUANTITY(i)),
3707 		 decode( l_inst_hist_rec_tab.NEW_QUANTITY(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_QUANTITY(i)),
3708 		 decode( l_inst_hist_rec_tab.OLD_UNIT_OF_MEASURE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_UNIT_OF_MEASURE(i)),
3709 		 decode( l_inst_hist_rec_tab.NEW_UNIT_OF_MEASURE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_UNIT_OF_MEASURE(i)),
3710 		 decode( l_inst_hist_rec_tab.OLD_ACCOUNTING_CLASS_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ACCOUNTING_CLASS_CODE(i)),
3711 		 decode( l_inst_hist_rec_tab.NEW_ACCOUNTING_CLASS_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ACCOUNTING_CLASS_CODE(i)),
3712 		 decode( l_inst_hist_rec_tab.OLD_INSTANCE_CONDITION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_INSTANCE_CONDITION_ID(i)),
3713 		 decode( l_inst_hist_rec_tab.NEW_INSTANCE_CONDITION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_INSTANCE_CONDITION_ID(i)),
3714 		 decode( l_inst_hist_rec_tab.OLD_INSTANCE_STATUS_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_INSTANCE_STATUS_ID(i)),
3715 		 decode( l_inst_hist_rec_tab.NEW_INSTANCE_STATUS_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_INSTANCE_STATUS_ID(i)),
3716 		 decode( l_inst_hist_rec_tab.OLD_CUSTOMER_VIEW_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_CUSTOMER_VIEW_FLAG(i)),
3717 		 decode( l_inst_hist_rec_tab.NEW_CUSTOMER_VIEW_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_CUSTOMER_VIEW_FLAG(i)),
3718 		 decode( l_inst_hist_rec_tab.OLD_MERCHANT_VIEW_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_MERCHANT_VIEW_FLAG(i)),
3719 		 decode( l_inst_hist_rec_tab.NEW_MERCHANT_VIEW_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_MERCHANT_VIEW_FLAG(i)),
3720 		 decode( l_inst_hist_rec_tab.OLD_SELLABLE_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_SELLABLE_FLAG(i)),
3721 		 decode( l_inst_hist_rec_tab.NEW_SELLABLE_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_SELLABLE_FLAG(i)),
3722 		 decode( l_inst_hist_rec_tab.OLD_SYSTEM_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_SYSTEM_ID(i)),
3723 		 decode( l_inst_hist_rec_tab.NEW_SYSTEM_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_SYSTEM_ID(i)),
3724 		 decode( l_inst_hist_rec_tab.OLD_INSTANCE_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_INSTANCE_TYPE_CODE(i)),
3725 		 decode( l_inst_hist_rec_tab.NEW_INSTANCE_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_INSTANCE_TYPE_CODE(i)),
3726 		 decode( l_inst_hist_rec_tab.OLD_ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_inst_hist_rec_tab.OLD_ACTIVE_START_DATE(i)),
3727 		 decode( l_inst_hist_rec_tab.NEW_ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_inst_hist_rec_tab.NEW_ACTIVE_START_DATE(i)),
3728 		 decode( l_inst_hist_rec_tab.OLD_ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_inst_hist_rec_tab.OLD_ACTIVE_END_DATE(i)),
3729 		 decode( l_inst_hist_rec_tab.NEW_ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_inst_hist_rec_tab.NEW_ACTIVE_END_DATE(i)),
3733 		 decode( l_inst_hist_rec_tab.NEW_LOCATION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_LOCATION_ID(i)),
3730 		 decode( l_inst_hist_rec_tab.OLD_LOCATION_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_LOCATION_TYPE_CODE(i)),
3731 		 decode( l_inst_hist_rec_tab.NEW_LOCATION_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_LOCATION_TYPE_CODE(i)),
3732 		 decode( l_inst_hist_rec_tab.OLD_LOCATION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_LOCATION_ID(i)),
3734 		 decode( l_inst_hist_rec_tab.OLD_INV_ORGANIZATION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_INV_ORGANIZATION_ID(i)),
3735 		 decode( l_inst_hist_rec_tab.NEW_INV_ORGANIZATION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_INV_ORGANIZATION_ID(i)),
3736 		 decode( l_inst_hist_rec_tab.OLD_INV_SUBINVENTORY_NAME(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_INV_SUBINVENTORY_NAME(i)),
3737 		 decode( l_inst_hist_rec_tab.NEW_INV_SUBINVENTORY_NAME(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_INV_SUBINVENTORY_NAME(i)),
3738 		 decode( l_inst_hist_rec_tab.OLD_INV_LOCATOR_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_INV_LOCATOR_ID(i)),
3739 		 decode( l_inst_hist_rec_tab.NEW_INV_LOCATOR_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_INV_LOCATOR_ID(i)),
3740 		 decode( l_inst_hist_rec_tab.OLD_PA_PROJECT_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_PA_PROJECT_ID(i)),
3741 		 decode( l_inst_hist_rec_tab.NEW_PA_PROJECT_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_PA_PROJECT_ID(i)),
3742 		 decode( l_inst_hist_rec_tab.OLD_PA_PROJECT_TASK_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_PA_PROJECT_TASK_ID(i)),
3743 		 decode( l_inst_hist_rec_tab.NEW_PA_PROJECT_TASK_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_PA_PROJECT_TASK_ID(i)),
3744 		 decode( l_inst_hist_rec_tab.OLD_IN_TRANSIT_ORDER_LINE_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_IN_TRANSIT_ORDER_LINE_ID(i)),
3745 		 decode( l_inst_hist_rec_tab.NEW_IN_TRANSIT_ORDER_LINE_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_IN_TRANSIT_ORDER_LINE_ID(i)),
3746 		 decode( l_inst_hist_rec_tab.OLD_WIP_JOB_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_WIP_JOB_ID(i)),
3747 		 decode( l_inst_hist_rec_tab.NEW_WIP_JOB_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_WIP_JOB_ID(i)),
3748 		 decode( l_inst_hist_rec_tab.OLD_PO_ORDER_LINE_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_PO_ORDER_LINE_ID(i)),
3749 		 decode( l_inst_hist_rec_tab.NEW_PO_ORDER_LINE_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_PO_ORDER_LINE_ID(i)),
3750 		 decode( l_inst_hist_rec_tab.OLD_COMPLETENESS_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_COMPLETENESS_FLAG(i)),
3751 		 decode( l_inst_hist_rec_tab.NEW_COMPLETENESS_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_COMPLETENESS_FLAG(i)),
3752 		 'N',
3753 		 decode( l_inst_hist_rec_tab.OLD_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_CONTEXT(i)),
3754 		 decode( l_inst_hist_rec_tab.NEW_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_CONTEXT(i)),
3755 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE1(i)),
3756 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE1(i)),
3757 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE2(i)),
3758 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE2(i)),
3759 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE3(i)),
3760 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE3(i)),
3761 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE4(i)),
3762 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE4(i)),
3763 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE5(i)),
3764 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE5(i)),
3765 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE6(i)),
3766 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE6(i)),
3767 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE7(i)),
3768 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE7(i)),
3769 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE8(i)),
3770 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE8(i)),
3771 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE9(i)),
3772 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE9(i)),
3773 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE10(i)),
3774 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE10(i)),
3775 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE11(i)),
3776 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE11(i)),
3777 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE12(i)),
3778 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE12(i)),
3779 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE13(i)),
3780 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE13(i)),
3781 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE14(i)),
3782 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE14(i)),
3786 		 SYSDATE,
3783 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE15(i)),
3784 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE15(i)),
3785 		 l_user_id,
3787 		 l_user_id,
3788 		 SYSDATE,
3789 		 l_login_id,
3790 		 1,
3791 		 decode( l_inst_hist_rec_tab.OLD_INSTALL_LOCATION_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_INSTALL_LOCATION_TYPE_CODE(i)),
3792 		 decode( l_inst_hist_rec_tab.NEW_INSTALL_LOCATION_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_INSTALL_LOCATION_TYPE_CODE(i)),
3793 		 decode( l_inst_hist_rec_tab.OLD_INSTALL_LOCATION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_INSTALL_LOCATION_ID(i)),
3794 		 decode( l_inst_hist_rec_tab.NEW_INSTALL_LOCATION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_INSTALL_LOCATION_ID(i)),
3795 		 decode( l_inst_hist_rec_tab.OLD_INSTANCE_USAGE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_INSTANCE_USAGE_CODE(i)),
3796 		 decode( l_inst_hist_rec_tab.NEW_INSTANCE_USAGE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_INSTANCE_USAGE_CODE(i)),
3797 		 decode( l_inst_hist_rec_tab.OLD_last_vld_organization_id(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_last_vld_organization_id(i)),
3798 		 decode( l_inst_hist_rec_tab.NEW_last_vld_organization_id(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.new_last_vld_organization_id(i)),
3799 		 decode( l_inst_hist_rec_tab.OLD_CONFIG_INST_REV_NUM(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_CONFIG_INST_REV_NUM(i)),
3800 		 decode( l_inst_hist_rec_tab.NEW_CONFIG_INST_REV_NUM(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_CONFIG_INST_REV_NUM(i)),
3801 		 decode( l_inst_hist_rec_tab.OLD_CONFIG_VALID_STATUS(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_CONFIG_VALID_STATUS(i)),
3802 		 decode( l_inst_hist_rec_tab.NEW_CONFIG_VALID_STATUS(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_CONFIG_VALID_STATUS(i)),
3803 		 decode( l_inst_hist_rec_tab.OLD_INSTANCE_DESCRIPTION(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_INSTANCE_DESCRIPTION(i)),
3804 		 decode( l_inst_hist_rec_tab.NEW_INSTANCE_DESCRIPTION(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_INSTANCE_DESCRIPTION(i)),
3805                  decode( l_inst_hist_rec_tab.OLD_LAST_OE_AGREEMENT_ID(i),FND_API.G_MISS_NUM, NULL,l_inst_hist_rec_tab.OLD_LAST_OE_AGREEMENT_ID(i)),
3806                  decode( l_inst_hist_rec_tab.NEW_LAST_OE_AGREEMENT_ID(i),FND_API.G_MISS_NUM, NULL,l_inst_hist_rec_tab.NEW_LAST_OE_AGREEMENT_ID(i)),
3807                  decode( l_inst_hist_rec_tab.OLD_INSTALL_DATE(i),FND_API.G_MISS_DATE, NULL, l_inst_hist_rec_tab.OLD_INSTALL_DATE(i)) ,
3808 		 decode(l_inst_hist_rec_tab.NEW_INSTALL_DATE(i),FND_API.G_MISS_DATE, NULL, l_inst_hist_rec_tab.NEW_INSTALL_DATE(i)) ,
3809 		 decode(l_inst_hist_rec_tab.OLD_RETURN_BY_DATE(i) ,FND_API.G_MISS_DATE,NULL, l_inst_hist_rec_tab.OLD_RETURN_BY_DATE(i)),
3810 		 decode(l_inst_hist_rec_tab.NEW_RETURN_BY_DATE(i) ,FND_API.G_MISS_DATE,NULL,l_inst_hist_rec_tab.NEW_RETURN_BY_DATE(i)),
3811 		 decode(l_inst_hist_rec_tab.OLD_ACTUAL_RETURN_DATE(i) ,FND_API.G_MISS_DATE,NULL,l_inst_hist_rec_tab.OLD_ACTUAL_RETURN_DATE(i)),
3812 		 decode(l_inst_hist_rec_tab.NEW_ACTUAL_RETURN_DATE(i) ,FND_API.G_MISS_DATE,NULL,l_inst_hist_rec_tab.NEW_ACTUAL_RETURN_DATE(i)),
3813 		 decode(l_inst_hist_rec_tab.OLD_LAST_OE_ORDER_LINE_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.OLD_LAST_OE_ORDER_LINE_ID(i)),
3814 		 decode(l_inst_hist_rec_tab.NEW_LAST_OE_ORDER_LINE_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.NEW_LAST_OE_ORDER_LINE_ID(i)),
3815 		 decode(l_inst_hist_rec_tab.OLD_LAST_OE_RMA_LINE_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.OLD_LAST_OE_RMA_LINE_ID(i)),
3816 		 decode(l_inst_hist_rec_tab.NEW_LAST_OE_RMA_LINE_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.NEW_LAST_OE_RMA_LINE_ID(i)),
3817 		 decode(l_inst_hist_rec_tab.OLD_LAST_WIP_JOB_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.OLD_LAST_WIP_JOB_ID(i)),
3818 		 decode(l_inst_hist_rec_tab.NEW_LAST_WIP_JOB_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.NEW_LAST_WIP_JOB_ID(i)),
3819 		 decode(l_inst_hist_rec_tab.OLD_LAST_PO_PO_LINE_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.OLD_LAST_PO_PO_LINE_ID(i)),
3820 		 decode(l_inst_hist_rec_tab.NEW_LAST_PO_PO_LINE_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.NEW_LAST_PO_PO_LINE_ID(i)),
3821 		 decode(l_inst_hist_rec_tab.OLD_LAST_PA_PROJECT_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.OLD_LAST_PA_PROJECT_ID(i)),
3822 		 decode(l_inst_hist_rec_tab.NEW_LAST_PA_PROJECT_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.NEW_LAST_PA_PROJECT_ID(i)),
3823 		 decode(l_inst_hist_rec_tab.OLD_LAST_PA_TASK_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.OLD_LAST_PA_TASK_ID(i)),
3824 		 decode(l_inst_hist_rec_tab.NEW_LAST_PA_TASK_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.NEW_LAST_PA_TASK_ID(i)),
3825 		 decode(l_inst_hist_rec_tab.OLD_LAST_TXN_LINE_DETAIL_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.OLD_LAST_TXN_LINE_DETAIL_ID(i)),
3826 		 decode(l_inst_hist_rec_tab.NEW_LAST_TXN_LINE_DETAIL_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.NEW_LAST_TXN_LINE_DETAIL_ID(i)),
3827 		 decode(l_inst_hist_rec_tab.OLD_LAST_OE_PO_NUMBER(i) ,FND_API.G_MISS_CHAR,NULL,l_inst_hist_rec_tab.OLD_LAST_OE_PO_NUMBER(i)),
3828 		 decode(l_inst_hist_rec_tab.NEW_LAST_OE_PO_NUMBER(i) ,FND_API.G_MISS_CHAR,NULL,l_inst_hist_rec_tab.NEW_LAST_OE_PO_NUMBER(i)),
3829 		 decode(l_inst_hist_rec_tab.OLD_NETWORK_ASSET_FLAG(i) ,FND_API.G_MISS_CHAR,NULL,l_inst_hist_rec_tab.OLD_NETWORK_ASSET_FLAG(i)),
3830 		 decode(l_inst_hist_rec_tab.NEW_NETWORK_ASSET_FLAG(i) ,FND_API.G_MISS_CHAR,NULL,l_inst_hist_rec_tab.NEW_NETWORK_ASSET_FLAG(i)),
3831 		 decode(l_inst_hist_rec_tab.OLD_MAINTAINABLE_FLAG(i) ,FND_API.G_MISS_CHAR,NULL,l_inst_hist_rec_tab.OLD_MAINTAINABLE_FLAG(i)),
3832 		 decode(l_inst_hist_rec_tab.NEW_MAINTAINABLE_FLAG(i) ,FND_API.G_MISS_CHAR,NULL,l_inst_hist_rec_tab.NEW_MAINTAINABLE_FLAG(i)),
3833 		 decode(l_inst_hist_rec_tab.OLD_ASSET_CRITICALITY_CODE(i) ,FND_API.G_MISS_CHAR,NULL,l_inst_hist_rec_tab.OLD_ASSET_CRITICALITY_CODE(i)),
3834 		 decode(l_inst_hist_rec_tab.NEW_ASSET_CRITICALITY_CODE(i) ,FND_API.G_MISS_CHAR,NULL,l_inst_hist_rec_tab.NEW_ASSET_CRITICALITY_CODE(i)),
3835 		 decode(l_inst_hist_rec_tab.OLD_CATEGORY_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.OLD_CATEGORY_ID(i)),
3836 		 decode(l_inst_hist_rec_tab.NEW_CATEGORY_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.NEW_CATEGORY_ID(i)),
3840 		 decode(l_inst_hist_rec_tab.NEW_INSTANTIATION_FLAG(i) ,FND_API.G_MISS_CHAR,NULL,l_inst_hist_rec_tab.NEW_INSTANTIATION_FLAG(i)),
3837 		 decode(l_inst_hist_rec_tab.OLD_EQUIPMENT_GEN_OBJECT_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.OLD_EQUIPMENT_GEN_OBJECT_ID(i)),
3838 		 decode(l_inst_hist_rec_tab.NEW_EQUIPMENT_GEN_OBJECT_ID(i) ,FND_API.G_MISS_NUM,NULL,l_inst_hist_rec_tab.NEW_EQUIPMENT_GEN_OBJECT_ID(i)),
3839 		 decode(l_inst_hist_rec_tab.OLD_INSTANTIATION_FLAG(i) ,FND_API.G_MISS_CHAR,NULL,l_inst_hist_rec_tab.OLD_INSTANTIATION_FLAG(i)),
3841 		 decode(l_inst_hist_rec_tab.OLD_OPERATIONAL_LOG_FLAG(i) ,FND_API.G_MISS_CHAR,NULL,l_inst_hist_rec_tab.OLD_OPERATIONAL_LOG_FLAG(i)),
3842 		 decode(l_inst_hist_rec_tab.NEW_OPERATIONAL_LOG_FLAG(i) ,FND_API.G_MISS_CHAR,NULL,l_inst_hist_rec_tab.NEW_OPERATIONAL_LOG_FLAG(i)),
3843 		 decode(l_inst_hist_rec_tab.OLD_SUPPLIER_WARRANTY_EXP_DATE(i) ,FND_API.G_MISS_DATE,NULL,l_inst_hist_rec_tab.OLD_SUPPLIER_WARRANTY_EXP_DATE(i)),
3844 		 decode(l_inst_hist_rec_tab.NEW_SUPPLIER_WARRANTY_EXP_DATE(i) ,FND_API.G_MISS_DATE,NULL,l_inst_hist_rec_tab.NEW_SUPPLIER_WARRANTY_EXP_DATE(i)),
3845 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE16(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE16(i)),
3846 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE16(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE16(i)),
3847 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE17(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE17(i)),
3848 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE17(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE17(i)),
3849 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE18(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE18(i)),
3850 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE18(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE18(i)),
3851 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE19(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE19(i)),
3852 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE19(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE19(i)),
3853 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE20(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE20(i)),
3854 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE20(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE20(i)),
3855 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE21(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE21(i)),
3856 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE21(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE21(i)),
3857 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE22(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE22(i)),
3858 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE22(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE22(i)),
3859 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE23(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE23(i)),
3860 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE23(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE23(i)),
3861 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE24(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE24(i)),
3862 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE24(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE24(i)),
3863 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE25(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE25(i)),
3864 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE25(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE25(i)),
3865 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE26(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE26(i)),
3866 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE26(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE26(i)),
3867 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE27(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE27(i)),
3868 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE27(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE27(i)),
3869 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE28(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE28(i)),
3870 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE28(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE28(i)),
3871 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE29(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE29(i)),
3872 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE29(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE29(i)),
3873 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE30(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE30(i)),
3874 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE30(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE30(i)),
3875                  decode( l_inst_hist_rec_tab.OLD_PAYABLES_CURRENCY_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_PAYABLES_CURRENCY_CODE(i)),
3876                  decode( l_inst_hist_rec_tab.NEW_PAYABLES_CURRENCY_CODE(i), FND_API.G_MISS_CHAR, NULL,l_inst_hist_rec_tab.NEW_PAYABLES_CURRENCY_CODE(i)),
3877                  decode( l_inst_hist_rec_tab.OLD_PURCHASE_UNIT_PRICE(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_PURCHASE_UNIT_PRICE(i)),
3878                  decode( l_inst_hist_rec_tab.NEW_PURCHASE_UNIT_PRICE(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_PURCHASE_UNIT_PRICE(i)),
3879                  decode( l_inst_hist_rec_tab.OLD_PURCHASE_CURRENCY_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_PURCHASE_CURRENCY_CODE(i)),
3880                  decode( l_inst_hist_rec_tab.NEW_PURCHASE_CURRENCY_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_PURCHASE_CURRENCY_CODE(i)),
3881                  decode( l_inst_hist_rec_tab.OLD_PAYABLES_UNIT_PRICE(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_PAYABLES_UNIT_PRICE(i)),
3882                  decode( l_inst_hist_rec_tab.NEW_PAYABLES_UNIT_PRICE(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_PAYABLES_UNIT_PRICE(i)),
3883                  decode( l_inst_hist_rec_tab.OLD_SALES_UNIT_PRICE(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_SALES_UNIT_PRICE(i)),
3884                  decode( l_inst_hist_rec_tab.NEW_SALES_UNIT_PRICE(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_SALES_UNIT_PRICE(i)),
3885                  decode( l_inst_hist_rec_tab.OLD_SALES_CURRENCY_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_SALES_CURRENCY_CODE(i)),
3886                  decode( l_inst_hist_rec_tab.NEW_SALES_CURRENCY_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_SALES_CURRENCY_CODE(i)),
3890    END IF;
3887                  decode( l_inst_hist_rec_tab.OLD_OPERATIONAL_STATUS_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_OPERATIONAL_STATUS_CODE(i)),
3888                  decode( l_inst_hist_rec_tab.NEW_OPERATIONAL_STATUS_CODE(i),FND_API.G_MISS_CHAR, NULL,l_inst_hist_rec_tab.NEW_OPERATIONAL_STATUS_CODE(i))
3889 		 );
3891    --
3892    IF p_version_label_tbl.count > 0 THEN
3893       Build_Ver_Label_Rec_of_Table
3894          (
3895            p_version_label_tbl     => p_version_label_tbl
3896           ,p_version_label_rec_tab => l_version_label_rec_tab
3897          );
3898       --
3899       l_ctr := l_version_label_rec_tab.version_label_id.count;
3900       --
3901          FORALL i in 1 .. l_ctr
3902 	    INSERT INTO CSI_I_VERSION_LABELS(
3903 		    VERSION_LABEL_ID,
3904 		    INSTANCE_ID,
3905 		    VERSION_LABEL,
3906 		    DATE_TIME_STAMP,
3907 		    DESCRIPTION,
3908 		    ACTIVE_START_DATE,
3909 		    ACTIVE_END_DATE,
3910 		    CONTEXT,
3911 		    ATTRIBUTE1,
3912 		    ATTRIBUTE2,
3913 		    ATTRIBUTE3,
3914 		    ATTRIBUTE4,
3915 		    ATTRIBUTE5,
3916 		    ATTRIBUTE6,
3917 		    ATTRIBUTE7,
3918 		    ATTRIBUTE8,
3919 		    ATTRIBUTE9,
3920 		    ATTRIBUTE10,
3921 		    ATTRIBUTE11,
3922 		    ATTRIBUTE12,
3923 		    ATTRIBUTE13,
3924 		    ATTRIBUTE14,
3925 		    ATTRIBUTE15,
3926 		    CREATED_BY,
3927 		    CREATION_DATE,
3928 		    LAST_UPDATED_BY,
3929 		    LAST_UPDATE_DATE,
3930 		    LAST_UPDATE_LOGIN,
3931 		    OBJECT_VERSION_NUMBER
3932 		   ) VALUES (
3933 		    l_version_label_rec_tab.VERSION_LABEL_ID(i),
3934 		    decode( l_version_label_rec_tab.INSTANCE_ID(i), FND_API.G_MISS_NUM, NULL, l_version_label_rec_tab.INSTANCE_ID(i)),
3935 		    decode( l_version_label_rec_tab.VERSION_LABEL(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.VERSION_LABEL(i)),
3936 		    decode( l_version_label_rec_tab.DATE_TIME_STAMP(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_version_label_rec_tab.DATE_TIME_STAMP(i)),
3937 		    decode( l_version_label_rec_tab.DESCRIPTION(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.DESCRIPTION(i)),
3938 		    decode( l_version_label_rec_tab.ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_version_label_rec_tab.ACTIVE_START_DATE(i)),
3939 		    decode( l_version_label_rec_tab.ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_version_label_rec_tab.ACTIVE_END_DATE(i)),
3940 		    decode( l_version_label_rec_tab.CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.CONTEXT(i)),
3941 		    decode( l_version_label_rec_tab.ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE1(i)),
3942 		    decode( l_version_label_rec_tab.ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE2(i)),
3943 		    decode( l_version_label_rec_tab.ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE3(i)),
3944 		    decode( l_version_label_rec_tab.ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE4(i)),
3945 		    decode( l_version_label_rec_tab.ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE5(i)),
3946 		    decode( l_version_label_rec_tab.ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE6(i)),
3947 		    decode( l_version_label_rec_tab.ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE7(i)),
3948 		    decode( l_version_label_rec_tab.ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE8(i)),
3949 		    decode( l_version_label_rec_tab.ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE9(i)),
3950 		    decode( l_version_label_rec_tab.ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE10(i)),
3951 		    decode( l_version_label_rec_tab.ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE11(i)),
3952 		    decode( l_version_label_rec_tab.ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE12(i)),
3953 		    decode( l_version_label_rec_tab.ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE13(i)),
3954 		    decode( l_version_label_rec_tab.ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE14(i)),
3955 		    decode( l_version_label_rec_tab.ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE15(i)),
3956 		    l_user_id,
3957 		    SYSDATE,
3958 		    l_user_id,
3959 		    SYSDATE,
3960 		    l_login_id,
3961 		    1
3962                  );
3963    END IF;
3964    --
3965    IF p_ver_label_hist_tbl.count > 0 THEN
3966       Build_Ver_Lbl_Hist_Rec_Table
3967          (
3968            p_ver_label_hist_tbl     => p_ver_label_hist_tbl
3969           ,p_ver_label_hist_rec_tab => l_ver_label_hist_rec_tab
3970          );
3971       --
3972       l_ctr := l_ver_label_hist_rec_tab.version_label_history_id.count;
3973       --
3974          FORALL i in 1 .. l_ctr
3975 	    INSERT INTO CSI_I_VERSION_LABELS_H(
3976 		    VERSION_LABEL_HISTORY_ID,
3977 		    VERSION_LABEL_ID,
3978 		    TRANSACTION_ID,
3979 		    OLD_VERSION_LABEL,
3980 		    NEW_VERSION_LABEL,
3981 		    OLD_DESCRIPTION,
3982 		    NEW_DESCRIPTION,
3983 		    OLD_DATE_TIME_STAMP,
3984 		    NEW_DATE_TIME_STAMP,
3985 		    OLD_ACTIVE_START_DATE,
3986 		    NEW_ACTIVE_START_DATE,
3987 		    OLD_ACTIVE_END_DATE,
3988 		    NEW_ACTIVE_END_DATE,
3989 		    OLD_CONTEXT,
3990 		    NEW_CONTEXT,
3991 		    OLD_ATTRIBUTE1,
3992 		    NEW_ATTRIBUTE1,
3993 		    OLD_ATTRIBUTE2,
3994 		    NEW_ATTRIBUTE2,
3995 		    OLD_ATTRIBUTE3,
3996 		    NEW_ATTRIBUTE3,
3997 		    OLD_ATTRIBUTE4,
3998 		    NEW_ATTRIBUTE4,
3999 		    OLD_ATTRIBUTE5,
4000 		    NEW_ATTRIBUTE5,
4001 		    OLD_ATTRIBUTE6,
4002 		    NEW_ATTRIBUTE6,
4003 		    OLD_ATTRIBUTE7,
4004 		    NEW_ATTRIBUTE7,
4005 		    OLD_ATTRIBUTE8,
4006 		    NEW_ATTRIBUTE8,
4007 		    OLD_ATTRIBUTE9,
4008 		    NEW_ATTRIBUTE9,
4009 		    OLD_ATTRIBUTE10,
4010 		    NEW_ATTRIBUTE10,
4014 		    NEW_ATTRIBUTE12,
4011 		    OLD_ATTRIBUTE11,
4012 		    NEW_ATTRIBUTE11,
4013 		    OLD_ATTRIBUTE12,
4015 		    OLD_ATTRIBUTE13,
4016 		    NEW_ATTRIBUTE13,
4017 		    OLD_ATTRIBUTE14,
4018 		    NEW_ATTRIBUTE14,
4019 		    OLD_ATTRIBUTE15,
4020 		    NEW_ATTRIBUTE15,
4021 		    FULL_DUMP_FLAG,
4022 		    CREATED_BY,
4023 		    CREATION_DATE,
4024 		    LAST_UPDATED_BY,
4025 		    LAST_UPDATE_DATE,
4026 		    LAST_UPDATE_LOGIN,
4027 		    OBJECT_VERSION_NUMBER
4028 		   ) VALUES (
4029 		    l_ver_label_hist_rec_tab.VERSION_LABEL_HISTORY_ID(i),
4030 		    decode( l_ver_label_hist_rec_tab.VERSION_LABEL_ID(i), FND_API.G_MISS_NUM, NULL, l_ver_label_hist_rec_tab.VERSION_LABEL_ID(i)),
4031 		    decode( l_ver_label_hist_rec_tab.TRANSACTION_ID(i), FND_API.G_MISS_NUM, NULL, l_ver_label_hist_rec_tab.TRANSACTION_ID(i)),
4032 		    decode( l_ver_label_hist_rec_tab.OLD_VERSION_LABEL(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.OLD_VERSION_LABEL(i)),
4033 		    decode( l_ver_label_hist_rec_tab.NEW_VERSION_LABEL(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.NEW_VERSION_LABEL(i)),
4034 		    decode( l_ver_label_hist_rec_tab.OLD_DESCRIPTION(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.OLD_DESCRIPTION(i)),
4035 		    decode( l_ver_label_hist_rec_tab.NEW_DESCRIPTION(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.NEW_DESCRIPTION(i)),
4036 		    decode( l_ver_label_hist_rec_tab.OLD_DATE_TIME_STAMP(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_ver_label_hist_rec_tab.OLD_DATE_TIME_STAMP(i)),
4037 		    decode( l_ver_label_hist_rec_tab.NEW_DATE_TIME_STAMP(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_ver_label_hist_rec_tab.NEW_DATE_TIME_STAMP(i)),
4038 		    decode( l_ver_label_hist_rec_tab.OLD_ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_ver_label_hist_rec_tab.OLD_ACTIVE_START_DATE(i)),
4039 		    decode( l_ver_label_hist_rec_tab.NEW_ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_ver_label_hist_rec_tab.NEW_ACTIVE_START_DATE(i)),
4040 		    decode( l_ver_label_hist_rec_tab.OLD_ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_ver_label_hist_rec_tab.OLD_ACTIVE_END_DATE(i)),
4041 		    decode( l_ver_label_hist_rec_tab.NEW_ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_ver_label_hist_rec_tab.NEW_ACTIVE_END_DATE(i)),
4042 		    decode( l_ver_label_hist_rec_tab.OLD_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.OLD_CONTEXT(i)),
4043 		    decode( l_ver_label_hist_rec_tab.NEW_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.NEW_CONTEXT(i)),
4044 		    decode( l_ver_label_hist_rec_tab.OLD_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.OLD_ATTRIBUTE1(i)),
4045 		    decode( l_ver_label_hist_rec_tab.NEW_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.NEW_ATTRIBUTE1(i)),
4046 		    decode( l_ver_label_hist_rec_tab.OLD_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.OLD_ATTRIBUTE2(i)),
4047 		    decode( l_ver_label_hist_rec_tab.NEW_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.NEW_ATTRIBUTE2(i)),
4048 		    decode( l_ver_label_hist_rec_tab.OLD_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.OLD_ATTRIBUTE3(i)),
4049 		    decode( l_ver_label_hist_rec_tab.NEW_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.NEW_ATTRIBUTE3(i)),
4050 		    decode( l_ver_label_hist_rec_tab.OLD_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.OLD_ATTRIBUTE4(i)),
4051 		    decode( l_ver_label_hist_rec_tab.NEW_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.NEW_ATTRIBUTE4(i)),
4052 		    decode( l_ver_label_hist_rec_tab.OLD_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.OLD_ATTRIBUTE5(i)),
4053 		    decode( l_ver_label_hist_rec_tab.NEW_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.NEW_ATTRIBUTE5(i)),
4054 		    decode( l_ver_label_hist_rec_tab.OLD_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.OLD_ATTRIBUTE6(i)),
4055 		    decode( l_ver_label_hist_rec_tab.NEW_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.NEW_ATTRIBUTE6(i)),
4056 		    decode( l_ver_label_hist_rec_tab.OLD_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.OLD_ATTRIBUTE7(i)),
4057 		    decode( l_ver_label_hist_rec_tab.NEW_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.NEW_ATTRIBUTE7(i)),
4058 		    decode( l_ver_label_hist_rec_tab.OLD_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.OLD_ATTRIBUTE8(i)),
4059 		    decode( l_ver_label_hist_rec_tab.NEW_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.NEW_ATTRIBUTE8(i)),
4060 		    decode( l_ver_label_hist_rec_tab.OLD_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.OLD_ATTRIBUTE9(i)),
4061 		    decode( l_ver_label_hist_rec_tab.NEW_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.NEW_ATTRIBUTE9(i)),
4062 		    decode( l_ver_label_hist_rec_tab.OLD_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.OLD_ATTRIBUTE10(i)),
4063 		    decode( l_ver_label_hist_rec_tab.NEW_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.NEW_ATTRIBUTE10(i)),
4064 		    decode( l_ver_label_hist_rec_tab.OLD_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.OLD_ATTRIBUTE11(i)),
4065 		    decode( l_ver_label_hist_rec_tab.NEW_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.NEW_ATTRIBUTE11(i)),
4066 		    decode( l_ver_label_hist_rec_tab.OLD_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.OLD_ATTRIBUTE12(i)),
4067 		    decode( l_ver_label_hist_rec_tab.NEW_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.NEW_ATTRIBUTE12(i)),
4068 		    decode( l_ver_label_hist_rec_tab.OLD_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.OLD_ATTRIBUTE13(i)),
4069 		    decode( l_ver_label_hist_rec_tab.NEW_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.NEW_ATTRIBUTE13(i)),
4070 		    decode( l_ver_label_hist_rec_tab.OLD_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.OLD_ATTRIBUTE14(i)),
4071 		    decode( l_ver_label_hist_rec_tab.NEW_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.NEW_ATTRIBUTE14(i)),
4072 		    decode( l_ver_label_hist_rec_tab.OLD_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.OLD_ATTRIBUTE15(i)),
4073 		    decode( l_ver_label_hist_rec_tab.NEW_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_ver_label_hist_rec_tab.NEW_ATTRIBUTE15(i)),
4077 		    l_user_id,
4074 		    'N',
4075 		    l_user_id,
4076 		    SYSDATE,
4078 		    SYSDATE,
4079 		    l_login_id,
4080 		    1
4081                   );
4082    END IF;
4083    --
4084    IF p_party_tbl.count > 0 THEN
4085       Build_Party_Rec_of_Table
4086         ( p_party_tbl    => p_party_tbl
4087          ,p_party_rec_tab => l_party_rec_tab
4088         );
4089       --
4090       l_ctr := l_party_rec_tab.instance_party_id.count;
4091       --
4092         FORALL i in 1 .. l_ctr
4093          INSERT INTO CSI_I_PARTIES(
4094 	 INSTANCE_PARTY_ID,
4095 	 INSTANCE_ID,
4096 	 PARTY_SOURCE_TABLE,
4097 	 PARTY_ID,
4098 	 RELATIONSHIP_TYPE_CODE,
4099 	 CONTACT_FLAG,
4100 	 CONTACT_IP_ID,
4101 	 ACTIVE_START_DATE,
4102 	 ACTIVE_END_DATE,
4103 	 CONTEXT,
4104 	 ATTRIBUTE1,
4105 	 ATTRIBUTE2,
4106 	 ATTRIBUTE3,
4107 	 ATTRIBUTE4,
4108 	 ATTRIBUTE5,
4109 	 ATTRIBUTE6,
4110 	 ATTRIBUTE7,
4111 	 ATTRIBUTE8,
4112 	 ATTRIBUTE9,
4113 	 ATTRIBUTE10,
4114 	 ATTRIBUTE11,
4115 	 ATTRIBUTE12,
4116 	 ATTRIBUTE13,
4117 	 ATTRIBUTE14,
4118 	 ATTRIBUTE15,
4119 	 CREATED_BY,
4120 	 CREATION_DATE,
4121 	 LAST_UPDATED_BY,
4122 	 LAST_UPDATE_DATE,
4123 	 LAST_UPDATE_LOGIN,
4124 	 OBJECT_VERSION_NUMBER,
4125 	 PRIMARY_FLAG,
4126 	 PREFERRED_FLAG
4127 	 ) VALUES (
4128 	 l_party_rec_tab.INSTANCE_PARTY_ID(i),
4129 	 decode( l_party_rec_tab.INSTANCE_ID(i), FND_API.G_MISS_NUM, NULL, l_party_rec_tab.INSTANCE_ID(i)),
4130 	 decode( l_party_rec_tab.PARTY_SOURCE_TABLE(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.PARTY_SOURCE_TABLE(i)),
4131 	 decode( l_party_rec_tab.PARTY_ID(i), FND_API.G_MISS_NUM, NULL, l_party_rec_tab.PARTY_ID(i)),
4132 	 decode( l_party_rec_tab.RELATIONSHIP_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.RELATIONSHIP_TYPE_CODE(i)),
4133 	 decode( l_party_rec_tab.CONTACT_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.CONTACT_FLAG(i)),
4134 	 decode( l_party_rec_tab.CONTACT_IP_ID(i), FND_API.G_MISS_NUM, NULL, l_party_rec_tab.CONTACT_IP_ID(i)),
4135 	 decode( l_party_rec_tab.ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_party_rec_tab.ACTIVE_START_DATE(i)),
4136 	 decode( l_party_rec_tab.ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_party_rec_tab.ACTIVE_END_DATE(i)),
4137 	 decode( l_party_rec_tab.CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.CONTEXT(i)),
4138 	 decode( l_party_rec_tab.ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE1(i)),
4139 	 decode( l_party_rec_tab.ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE2(i)),
4140 	 decode( l_party_rec_tab.ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE3(i)),
4141 	 decode( l_party_rec_tab.ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE4(i)),
4142 	 decode( l_party_rec_tab.ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE5(i)),
4143 	 decode( l_party_rec_tab.ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE6(i)),
4144 	 decode( l_party_rec_tab.ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE7(i)),
4145 	 decode( l_party_rec_tab.ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE8(i)),
4146 	 decode( l_party_rec_tab.ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE9(i)),
4147 	 decode( l_party_rec_tab.ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE10(i)),
4148 	 decode( l_party_rec_tab.ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE11(i)),
4149 	 decode( l_party_rec_tab.ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE12(i)),
4150 	 decode( l_party_rec_tab.ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE13(i)),
4151 	 decode( l_party_rec_tab.ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE14(i)),
4152 	 decode( l_party_rec_tab.ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE15(i)),
4153 	 l_user_id,
4154 	 SYSDATE,
4155 	 l_user_id,
4156 	 SYSDATE,
4157 	 l_login_id,
4158 	 1,
4159 	 decode(l_party_rec_tab.PRIMARY_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.PRIMARY_FLAG(i)),
4160 	 decode( l_party_rec_tab.PREFERRED_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.PREFERRED_FLAG(i)));
4161          --
4162    END IF;
4163    --
4164    IF p_party_hist_tbl.count > 0 THEN
4165          Build_Party_Hist_Rec_of_Table
4166             ( p_party_hist_tbl     => p_party_hist_tbl
4167              ,p_party_hist_rec_tab => l_party_hist_rec_tab
4168             );
4169          --
4170          l_ctr := l_party_hist_rec_tab.instance_party_history_id.count;
4171          --
4172          FORALL i in 1 .. l_ctr
4173 	   INSERT INTO CSI_I_PARTIES_H(
4174 		 INSTANCE_PARTY_HISTORY_ID,
4175 		 INSTANCE_PARTY_ID,
4176 		 TRANSACTION_ID,
4177 		 OLD_PARTY_SOURCE_TABLE,
4178 		 NEW_PARTY_SOURCE_TABLE,
4179 		 OLD_PARTY_ID,
4180 		 NEW_PARTY_ID,
4181 		 OLD_RELATIONSHIP_TYPE_CODE,
4182 		 NEW_RELATIONSHIP_TYPE_CODE,
4183 		 OLD_CONTACT_FLAG,
4184 		 NEW_CONTACT_FLAG,
4185 		 OLD_CONTACT_IP_ID,
4186 		 NEW_CONTACT_IP_ID,
4187 		 OLD_ACTIVE_START_DATE,
4188 		 NEW_ACTIVE_START_DATE,
4189 		 OLD_ACTIVE_END_DATE,
4190 		 NEW_ACTIVE_END_DATE,
4191 		 OLD_CONTEXT,
4192 		 NEW_CONTEXT,
4193 		 OLD_ATTRIBUTE1,
4194 		 NEW_ATTRIBUTE1,
4195 		 OLD_ATTRIBUTE2,
4196 		 NEW_ATTRIBUTE2,
4197 		 OLD_ATTRIBUTE3,
4198 		 NEW_ATTRIBUTE3,
4199 		 OLD_ATTRIBUTE4,
4200 		 NEW_ATTRIBUTE4,
4201 		 OLD_ATTRIBUTE5,
4202 		 NEW_ATTRIBUTE5,
4203 		 OLD_ATTRIBUTE6,
4204 		 NEW_ATTRIBUTE6,
4205 		 OLD_ATTRIBUTE7,
4206 		 NEW_ATTRIBUTE7,
4207 		 OLD_ATTRIBUTE8,
4208 		 NEW_ATTRIBUTE8,
4209 		 OLD_ATTRIBUTE9,
4210 		 NEW_ATTRIBUTE9,
4211 		 OLD_ATTRIBUTE10,
4212 		 NEW_ATTRIBUTE10,
4213 		 OLD_ATTRIBUTE11,
4214 		 NEW_ATTRIBUTE11,
4215 		 OLD_ATTRIBUTE12,
4216 		 NEW_ATTRIBUTE12,
4217 		 OLD_ATTRIBUTE13,
4221 		 OLD_ATTRIBUTE15,
4218 		 NEW_ATTRIBUTE13,
4219 		 OLD_ATTRIBUTE14,
4220 		 NEW_ATTRIBUTE14,
4222 		 NEW_ATTRIBUTE15,
4223 		 FULL_DUMP_FLAG,
4224 		 CREATED_BY,
4225 		 CREATION_DATE,
4226 		 LAST_UPDATED_BY,
4227 		 LAST_UPDATE_DATE,
4228 		 LAST_UPDATE_LOGIN,
4229 		 OBJECT_VERSION_NUMBER,
4230 		 OLD_PRIMARY_FLAG,
4231 		 NEW_PRIMARY_FLAG,
4232 		 OLD_PREFERRED_FLAG,
4233 		 NEW_PREFERRED_FLAG
4234 		) VALUES (
4235 		 l_party_hist_rec_tab.INSTANCE_PARTY_HISTORY_ID(i),
4236 		 decode( l_party_hist_rec_tab.INSTANCE_PARTY_ID(i), FND_API.G_MISS_NUM, NULL, l_party_hist_rec_tab.INSTANCE_PARTY_ID(i)),
4237 		 decode( l_party_hist_rec_tab.TRANSACTION_ID(i), FND_API.G_MISS_NUM, NULL, l_party_hist_rec_tab.TRANSACTION_ID(i)),
4238 		 decode( l_party_hist_rec_tab.OLD_PARTY_SOURCE_TABLE(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_PARTY_SOURCE_TABLE(i)),
4239 		 decode( l_party_hist_rec_tab.NEW_PARTY_SOURCE_TABLE(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_PARTY_SOURCE_TABLE(i)),
4240 		 decode( l_party_hist_rec_tab.OLD_PARTY_ID(i), FND_API.G_MISS_NUM, NULL, l_party_hist_rec_tab.OLD_PARTY_ID(i)),
4241 		 decode( l_party_hist_rec_tab.NEW_PARTY_ID(i), FND_API.G_MISS_NUM, NULL, l_party_hist_rec_tab.NEW_PARTY_ID(i)),
4242 		 decode( l_party_hist_rec_tab.OLD_RELATIONSHIP_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_RELATIONSHIP_TYPE_CODE(i)),
4243 		 decode( l_party_hist_rec_tab.NEW_RELATIONSHIP_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_RELATIONSHIP_TYPE_CODE(i)),
4244 		 decode( l_party_hist_rec_tab.OLD_CONTACT_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_CONTACT_FLAG(i)),
4245 		 decode( l_party_hist_rec_tab.NEW_CONTACT_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_CONTACT_FLAG(i)),
4246 		 decode( l_party_hist_rec_tab.OLD_CONTACT_IP_ID(i), FND_API.G_MISS_NUM, NULL, l_party_hist_rec_tab.OLD_CONTACT_IP_ID(i)),
4247 		 decode( l_party_hist_rec_tab.NEW_CONTACT_IP_ID(i), FND_API.G_MISS_NUM, NULL, l_party_hist_rec_tab.NEW_CONTACT_IP_ID(i)),
4248 		 decode( l_party_hist_rec_tab.OLD_ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_party_hist_rec_tab.OLD_ACTIVE_START_DATE(i)),
4249 		 decode( l_party_hist_rec_tab.NEW_ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_party_hist_rec_tab.NEW_ACTIVE_START_DATE(i)),
4250 		 decode( l_party_hist_rec_tab.OLD_ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_party_hist_rec_tab.OLD_ACTIVE_END_DATE(i)),
4251 		 decode( l_party_hist_rec_tab.NEW_ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_party_hist_rec_tab.NEW_ACTIVE_END_DATE(i)),
4252 		 decode( l_party_hist_rec_tab.OLD_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_CONTEXT(i)),
4253 		 decode( l_party_hist_rec_tab.NEW_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_CONTEXT(i)),
4254 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE1(i)),
4255 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE1(i)),
4256 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE2(i)),
4257 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE2(i)),
4258 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE3(i)),
4259 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE3(i)),
4260 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE4(i)),
4261 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE4(i)),
4262 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE5(i)),
4263 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE5(i)),
4264 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE6(i)),
4265 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE6(i)),
4266 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE7(i)),
4267 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE7(i)),
4268 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE8(i)),
4269 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE8(i)),
4270 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE9(i)),
4271 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE9(i)),
4272 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE10(i)),
4273 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE10(i)),
4274 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE11(i)),
4275 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE11(i)),
4276 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE12(i)),
4277 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE12(i)),
4278 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE13(i)),
4279 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE13(i)),
4280 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE14(i)),
4281 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE14(i)),
4282 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE15(i)),
4283 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE15(i)),
4287 		 l_user_id,
4284 		 'N',
4285 		 l_user_id,
4286 		 SYSDATE,
4288 		 SYSDATE,
4289 		 l_login_id,
4290 		 1,
4291 		 decode( l_party_hist_rec_tab.OLD_PRIMARY_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_PRIMARY_FLAG(i)),
4292 		 decode( l_party_hist_rec_tab.NEW_PRIMARY_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_PRIMARY_FLAG(i)),
4293 		 decode( l_party_hist_rec_tab.OLD_PREFERRED_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_PREFERRED_FLAG(i)),
4294 		 decode( l_party_hist_rec_tab.NEW_PREFERRED_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_PREFERRED_FLAG(i))
4295             );
4296    END IF;
4297    --
4298    IF p_account_tbl.count > 0 THEN
4299          Build_Acct_Rec_of_Table
4300             ( p_account_tbl       => p_account_tbl
4301              ,p_account_rec_tab   => l_account_rec_tab
4302             );
4303          --
4304          l_ctr := l_account_rec_tab.ip_account_id.count;
4305          --
4306          FORALL i in 1 .. l_ctr
4307 	    INSERT INTO CSI_IP_ACCOUNTS(
4308 		 IP_ACCOUNT_ID,
4309 		 INSTANCE_PARTY_ID,
4310 		 PARTY_ACCOUNT_ID,
4311 		 RELATIONSHIP_TYPE_CODE,
4312 		 ACTIVE_START_DATE,
4313 		 ACTIVE_END_DATE,
4314 		 CONTEXT,
4315 		 ATTRIBUTE1,
4316 		 ATTRIBUTE2,
4317 		 ATTRIBUTE3,
4318 		 ATTRIBUTE4,
4319 		 ATTRIBUTE5,
4320 		 ATTRIBUTE6,
4321 		 ATTRIBUTE7,
4322 		 ATTRIBUTE8,
4323 		 ATTRIBUTE9,
4324 		 ATTRIBUTE10,
4325 		 ATTRIBUTE11,
4326 		 ATTRIBUTE12,
4327 		 ATTRIBUTE13,
4328 		 ATTRIBUTE14,
4329 		 ATTRIBUTE15,
4330 		 CREATED_BY,
4331 		 CREATION_DATE,
4332 		 LAST_UPDATED_BY,
4333 		 LAST_UPDATE_DATE,
4334 		 LAST_UPDATE_LOGIN,
4335 		 OBJECT_VERSION_NUMBER,
4336 		 BILL_TO_ADDRESS,
4337 		 SHIP_TO_ADDRESS
4338 		) VALUES (
4339 		 l_account_rec_tab.IP_ACCOUNT_ID(i),
4340 		 decode( l_account_rec_tab.INSTANCE_PARTY_ID(i), FND_API.G_MISS_NUM, NULL, l_account_rec_tab.INSTANCE_PARTY_ID(i)),
4341 		 decode( l_account_rec_tab.PARTY_ACCOUNT_ID(i), FND_API.G_MISS_NUM, NULL, l_account_rec_tab.PARTY_ACCOUNT_ID(i)),
4342 		 decode( l_account_rec_tab.RELATIONSHIP_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.RELATIONSHIP_TYPE_CODE(i)),
4343 		 decode( l_account_rec_tab.ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_account_rec_tab.ACTIVE_START_DATE(i)),
4344 		 decode( l_account_rec_tab.ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_account_rec_tab.ACTIVE_END_DATE(i)),
4345 		 decode( l_account_rec_tab.CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.CONTEXT(i)),
4346 		 decode( l_account_rec_tab.ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE1(i)),
4347 		 decode( l_account_rec_tab.ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE2(i)),
4348 		 decode( l_account_rec_tab.ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE3(i)),
4349 		 decode( l_account_rec_tab.ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE4(i)),
4350 		 decode( l_account_rec_tab.ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE5(i)),
4351 		 decode( l_account_rec_tab.ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE6(i)),
4352 		 decode( l_account_rec_tab.ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE7(i)),
4353 		 decode( l_account_rec_tab.ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE8(i)),
4354 		 decode( l_account_rec_tab.ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE9(i)),
4355 		 decode( l_account_rec_tab.ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE10(i)),
4356 		 decode( l_account_rec_tab.ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE11(i)),
4357 		 decode( l_account_rec_tab.ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE12(i)),
4358 		 decode( l_account_rec_tab.ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE13(i)),
4359 		 decode( l_account_rec_tab.ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE14(i)),
4360 		 decode( l_account_rec_tab.ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE15(i)),
4361 		 l_user_id,
4362 		 SYSDATE,
4363 		  l_user_id,
4364 		 SYSDATE,
4365 		 l_login_id,
4366 		 1,
4367 		 decode( l_account_rec_tab.BILL_TO_ADDRESS(i), FND_API.G_MISS_NUM, NULL, l_account_rec_tab.BILL_TO_ADDRESS(i)),
4368 		 decode( l_account_rec_tab.SHIP_TO_ADDRESS(i), FND_API.G_MISS_NUM, NULL, l_account_rec_tab.SHIP_TO_ADDRESS(i))
4369               );
4370    END IF;
4371    --
4372    IF p_owner_pty_acct_tbl.count > 0 THEN
4373          Build_Owner_Pty_Acct_Rec_Table
4374             (
4375               p_owner_pty_acct_tbl     => p_owner_pty_acct_tbl
4376              ,p_owner_pty_acct_rec_tab => l_owner_pty_acct_rec_tab
4377             );
4378          --
4379          l_ctr := l_owner_pty_acct_rec_tab.instance_id.count;
4380          --
4381          FORALL i in 1 .. l_ctr
4382          UPDATE CSI_ITEM_INSTANCES
4383          SET owner_party_id = l_owner_pty_acct_rec_tab.party_id(i)
4384             ,owner_party_source_table = l_owner_pty_acct_rec_tab.party_source_table(i)
4385             ,owner_party_account_id = l_owner_pty_acct_rec_tab.account_id(i)
4386          WHERE instance_id = l_owner_pty_acct_rec_tab.instance_id(i);
4387    END IF;
4388    --
4389    IF p_acct_hist_tbl.count > 0 THEN
4390          Build_Acct_Hist_Rec_of_Table
4391            ( p_acct_hist_tbl      => p_acct_hist_tbl
4392             ,p_acct_hist_rec_tab  => l_acct_hist_rec_tab
4393            );
4394          --
4395          l_ctr := l_acct_hist_rec_tab.ip_account_history_id.count;
4396          --
4397          FORALL i in 1 .. l_ctr
4398 	    INSERT INTO CSI_IP_ACCOUNTS_H(
4399 		 IP_ACCOUNT_HISTORY_ID,
4400 		 IP_ACCOUNT_ID,
4401 		 TRANSACTION_ID,
4402 		 OLD_PARTY_ACCOUNT_ID,
4403 		 NEW_PARTY_ACCOUNT_ID,
4404 		 OLD_RELATIONSHIP_TYPE_CODE,
4405 		 NEW_RELATIONSHIP_TYPE_CODE,
4406 		 OLD_ACTIVE_START_DATE,
4410 		 OLD_CONTEXT,
4407 		 NEW_ACTIVE_START_DATE,
4408 		 OLD_ACTIVE_END_DATE,
4409 		 NEW_ACTIVE_END_DATE,
4411 		 NEW_CONTEXT,
4412 		 OLD_ATTRIBUTE1,
4413 		 NEW_ATTRIBUTE1,
4414 		 OLD_ATTRIBUTE2,
4415 		 NEW_ATTRIBUTE2,
4416 		 OLD_ATTRIBUTE3,
4417 		 NEW_ATTRIBUTE3,
4418 		 OLD_ATTRIBUTE4,
4419 		 NEW_ATTRIBUTE4,
4420 		 OLD_ATTRIBUTE5,
4421 		 NEW_ATTRIBUTE5,
4422 		 OLD_ATTRIBUTE6,
4423 		 NEW_ATTRIBUTE6,
4424 		 OLD_ATTRIBUTE7,
4425 		 NEW_ATTRIBUTE7,
4426 		 OLD_ATTRIBUTE8,
4427 		 NEW_ATTRIBUTE8,
4428 		 OLD_ATTRIBUTE9,
4429 		 NEW_ATTRIBUTE9,
4430 		 OLD_ATTRIBUTE10,
4431 		 NEW_ATTRIBUTE10,
4432 		 OLD_ATTRIBUTE11,
4433 		 NEW_ATTRIBUTE11,
4434 		 OLD_ATTRIBUTE12,
4435 		 NEW_ATTRIBUTE12,
4436 		 OLD_ATTRIBUTE13,
4437 		 NEW_ATTRIBUTE13,
4438 		 OLD_ATTRIBUTE14,
4439 		 NEW_ATTRIBUTE14,
4440 		 OLD_ATTRIBUTE15,
4441 		 NEW_ATTRIBUTE15,
4442 		 FULL_DUMP_FLAG,
4443 		 CREATED_BY,
4444 		 CREATION_DATE,
4445 		 LAST_UPDATED_BY,
4446 		 LAST_UPDATE_DATE,
4447 		 LAST_UPDATE_LOGIN,
4448 		 OBJECT_VERSION_NUMBER,
4449 		 OLD_BILL_TO_ADDRESS,
4450 		 NEW_BILL_TO_ADDRESS,
4451 		 OLD_SHIP_TO_ADDRESS,
4452 		 NEW_SHIP_TO_ADDRESS
4453 		) VALUES (
4454 		 l_acct_hist_rec_tab.IP_ACCOUNT_HISTORY_ID(i),
4455 		 decode( l_acct_hist_rec_tab.IP_ACCOUNT_ID(i), FND_API.G_MISS_NUM, NULL, l_acct_hist_rec_tab.IP_ACCOUNT_ID(i)),
4456 		 decode( l_acct_hist_rec_tab.TRANSACTION_ID(i), FND_API.G_MISS_NUM, NULL, l_acct_hist_rec_tab.TRANSACTION_ID(i)),
4457 		 decode( l_acct_hist_rec_tab.OLD_PARTY_ACCOUNT_ID(i), FND_API.G_MISS_NUM, NULL, l_acct_hist_rec_tab.OLD_PARTY_ACCOUNT_ID(i)),
4458 		 decode( l_acct_hist_rec_tab.NEW_PARTY_ACCOUNT_ID(i), FND_API.G_MISS_NUM, NULL, l_acct_hist_rec_tab.NEW_PARTY_ACCOUNT_ID(i)),
4459 		 decode( l_acct_hist_rec_tab.OLD_RELATIONSHIP_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_RELATIONSHIP_TYPE_CODE(i)),
4460 		 decode( l_acct_hist_rec_tab.NEW_RELATIONSHIP_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_RELATIONSHIP_TYPE_CODE(i)),
4461 		 decode( l_acct_hist_rec_tab.OLD_ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_acct_hist_rec_tab.OLD_ACTIVE_START_DATE(i)),
4462 		 decode( l_acct_hist_rec_tab.NEW_ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_acct_hist_rec_tab.NEW_ACTIVE_START_DATE(i)),
4463 		 decode( l_acct_hist_rec_tab.OLD_ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_acct_hist_rec_tab.OLD_ACTIVE_END_DATE(i)),
4464 		 decode( l_acct_hist_rec_tab.NEW_ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_acct_hist_rec_tab.NEW_ACTIVE_END_DATE(i)),
4465 		 decode( l_acct_hist_rec_tab.OLD_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_CONTEXT(i)),
4466 		 decode( l_acct_hist_rec_tab.NEW_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_CONTEXT(i)),
4467 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE1(i)),
4468 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE1(i)),
4469 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE2(i)),
4470 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE2(i)),
4471 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE3(i)),
4472 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE3(i)),
4473 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE4(i)),
4474 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE4(i)),
4475 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE5(i)),
4476 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE5(i)),
4477 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE6(i)),
4478 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE6(i)),
4479 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE7(i)),
4480 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE7(i)),
4481 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE8(i)),
4482 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE8(i)),
4483 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE9(i)),
4484 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE9(i)),
4485 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE10(i)),
4486 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE10(i)),
4487 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE11(i)),
4488 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE11(i)),
4489 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE12(i)),
4490 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE12(i)),
4491 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE13(i)),
4492 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE13(i)),
4493 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE14(i)),
4494 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE14(i)),
4495 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE15(i)),
4499 		 SYSDATE,
4496 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE15(i)),
4497 		 'N',
4498 		 l_user_id,
4500 		 l_user_id,
4501 		 SYSDATE,
4502 		 l_login_id,
4503 		 1,
4504 		 decode( l_acct_hist_rec_tab.OLD_BILL_TO_ADDRESS(i), FND_API.G_MISS_NUM, NULL, l_acct_hist_rec_tab.OLD_BILL_TO_ADDRESS(i)),
4505 		 decode( l_acct_hist_rec_tab.NEW_BILL_TO_ADDRESS(i), FND_API.G_MISS_NUM, NULL, l_acct_hist_rec_tab.NEW_BILL_TO_ADDRESS(i)),
4506 		 decode( l_acct_hist_rec_tab.OLD_SHIP_TO_ADDRESS(i), FND_API.G_MISS_NUM, NULL, l_acct_hist_rec_tab.OLD_SHIP_TO_ADDRESS(i)),
4507 		 decode( l_acct_hist_rec_tab.NEW_SHIP_TO_ADDRESS(i), FND_API.G_MISS_NUM, NULL, l_acct_hist_rec_tab.NEW_SHIP_TO_ADDRESS(i))
4508              );
4509    END IF;
4510    --
4511    IF p_org_units_tbl.count > 0 THEN
4512          Build_Org_Rec_of_Table
4513             (
4514               p_org_tbl           => p_org_units_tbl
4515              ,p_org_units_rec_tab => l_org_units_rec_tab
4516             );
4517          --
4518          l_ctr := l_org_units_rec_tab.instance_ou_id.count;
4519          --
4520 	 FORALL i in 1 .. l_ctr
4521 	  INSERT INTO CSI_I_ORG_ASSIGNMENTS(
4522 	     INSTANCE_OU_ID,
4523 	     INSTANCE_ID,
4524 	     OPERATING_UNIT_ID,
4525 	     RELATIONSHIP_TYPE_CODE,
4526 	     ACTIVE_START_DATE,
4527 	     ACTIVE_END_DATE,
4528 	     CONTEXT,
4529 	     ATTRIBUTE1,
4530 	     ATTRIBUTE2,
4531 	     ATTRIBUTE3,
4532 	     ATTRIBUTE4,
4533 	     ATTRIBUTE5,
4534 	     ATTRIBUTE6,
4535 	     ATTRIBUTE7,
4536 	     ATTRIBUTE8,
4537 	     ATTRIBUTE9,
4538 	     ATTRIBUTE10,
4539 	     ATTRIBUTE11,
4540 	     ATTRIBUTE12,
4541 	     ATTRIBUTE13,
4542 	     ATTRIBUTE14,
4543 	     ATTRIBUTE15,
4544 	     CREATED_BY,
4545 	     CREATION_DATE,
4546 	     LAST_UPDATED_BY,
4547 	     LAST_UPDATE_DATE,
4548 	     LAST_UPDATE_LOGIN,
4549 	     OBJECT_VERSION_NUMBER
4550 	    ) VALUES (
4551 	     l_org_units_rec_tab.INSTANCE_OU_ID(i),
4552 	     decode( l_org_units_rec_tab.INSTANCE_ID(i), FND_API.G_MISS_NUM, NULL, l_org_units_rec_tab.INSTANCE_ID(i)),
4553 	     decode( l_org_units_rec_tab.OPERATING_UNIT_ID(i), FND_API.G_MISS_NUM, NULL, l_org_units_rec_tab.OPERATING_UNIT_ID(i)),
4554 	     decode( l_org_units_rec_tab.RELATIONSHIP_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.RELATIONSHIP_TYPE_CODE(i)),
4555 	     decode( l_org_units_rec_tab.ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_org_units_rec_tab.ACTIVE_START_DATE(i)),
4556 	     decode( l_org_units_rec_tab.ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_org_units_rec_tab.ACTIVE_END_DATE(i)),
4557 	     decode( l_org_units_rec_tab.CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.CONTEXT(i)),
4558 	     decode( l_org_units_rec_tab.ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE1(i)),
4559 	     decode( l_org_units_rec_tab.ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE2(i)),
4560 	     decode( l_org_units_rec_tab.ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE3(i)),
4561 	     decode( l_org_units_rec_tab.ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE4(i)),
4562 	     decode( l_org_units_rec_tab.ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE5(i)),
4563 	     decode( l_org_units_rec_tab.ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE6(i)),
4564 	     decode( l_org_units_rec_tab.ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE7(i)),
4565 	     decode( l_org_units_rec_tab.ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE8(i)),
4566 	     decode( l_org_units_rec_tab.ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE9(i)),
4567 	     decode( l_org_units_rec_tab.ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE10(i)),
4568 	     decode( l_org_units_rec_tab.ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE11(i)),
4569 	     decode( l_org_units_rec_tab.ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE12(i)),
4570 	     decode( l_org_units_rec_tab.ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE13(i)),
4571 	     decode( l_org_units_rec_tab.ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE14(i)),
4572 	     decode( l_org_units_rec_tab.ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE15(i)),
4573 	     l_user_id,
4574 	     SYSDATE,
4575 	     l_user_id,
4576 	     SYSDATE,
4577 	     l_login_id,
4578 	     1);
4579    END IF;
4580    --
4581    IF p_org_units_hist_tbl.count > 0 THEN
4582          Build_Org_Hist_Rec_of_Table
4583             (
4584               p_org_hist_tbl         => p_org_units_hist_tbl
4585              ,p_org_hist_rec_tab     => l_org_hist_rec_tab
4586             );
4587          --
4588          l_ctr := l_org_hist_rec_tab.instance_ou_history_id.count;
4589          --
4590 	 FORALL i in 1 .. l_ctr
4591 	 INSERT INTO CSI_I_ORG_ASSIGNMENTS_H(
4592 	    INSTANCE_OU_HISTORY_ID,
4593 	    INSTANCE_OU_ID,
4594 	    TRANSACTION_ID,
4595 	    OLD_OPERATING_UNIT_ID,
4596 	    NEW_OPERATING_UNIT_ID,
4597 	    OLD_RELATIONSHIP_TYPE_CODE,
4598 	    NEW_RELATIONSHIP_TYPE_CODE,
4599 	    OLD_ACTIVE_START_DATE,
4600 	    NEW_ACTIVE_START_DATE,
4601 	    OLD_ACTIVE_END_DATE,
4602 	    NEW_ACTIVE_END_DATE,
4603 	    OLD_CONTEXT,
4604 	    NEW_CONTEXT,
4605 	    OLD_ATTRIBUTE1,
4606 	    NEW_ATTRIBUTE1,
4607 	    OLD_ATTRIBUTE2,
4608 	    NEW_ATTRIBUTE2,
4609 	    OLD_ATTRIBUTE3,
4610 	    NEW_ATTRIBUTE3,
4611 	    OLD_ATTRIBUTE4,
4612 	    NEW_ATTRIBUTE4,
4613 	    OLD_ATTRIBUTE5,
4614 	    NEW_ATTRIBUTE5,
4615 	    OLD_ATTRIBUTE6,
4616 	    NEW_ATTRIBUTE6,
4617 	    OLD_ATTRIBUTE7,
4618 	    NEW_ATTRIBUTE7,
4619 	    OLD_ATTRIBUTE8,
4620 	    NEW_ATTRIBUTE8,
4621 	    OLD_ATTRIBUTE9,
4622 	    NEW_ATTRIBUTE9,
4626 	    NEW_ATTRIBUTE11,
4623 	    OLD_ATTRIBUTE10,
4624 	    NEW_ATTRIBUTE10,
4625 	    OLD_ATTRIBUTE11,
4627 	    OLD_ATTRIBUTE12,
4628 	    NEW_ATTRIBUTE12,
4629 	    OLD_ATTRIBUTE13,
4630 	    NEW_ATTRIBUTE13,
4631 	    OLD_ATTRIBUTE14,
4632 	    NEW_ATTRIBUTE14,
4633 	    OLD_ATTRIBUTE15,
4634 	    NEW_ATTRIBUTE15,
4635 	    FULL_DUMP_FLAG,
4636 	    CREATED_BY,
4637 	    CREATION_DATE,
4638 	    LAST_UPDATED_BY,
4639 	    LAST_UPDATE_DATE,
4640 	    LAST_UPDATE_LOGIN,
4641 	    OBJECT_VERSION_NUMBER
4642 	    ) VALUES (
4643 	    l_org_hist_rec_tab.INSTANCE_OU_HISTORY_ID(i),
4644 	    decode( l_org_hist_rec_tab.INSTANCE_OU_ID(i), FND_API.G_MISS_NUM, NULL, l_org_hist_rec_tab.INSTANCE_OU_ID(i)),
4645 	    decode( l_org_hist_rec_tab.TRANSACTION_ID(i), FND_API.G_MISS_NUM, NULL, l_org_hist_rec_tab.TRANSACTION_ID(i)),
4646 	    decode( l_org_hist_rec_tab.OLD_OPERATING_UNIT_ID(i), FND_API.G_MISS_NUM, NULL, l_org_hist_rec_tab.OLD_OPERATING_UNIT_ID(i)),
4647 	    decode( l_org_hist_rec_tab.NEW_OPERATING_UNIT_ID(i), FND_API.G_MISS_NUM, NULL, l_org_hist_rec_tab.NEW_OPERATING_UNIT_ID(i)),
4648 	    decode( l_org_hist_rec_tab.OLD_RELATIONSHIP_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_RELATIONSHIP_TYPE_CODE(i)),
4649 	    decode( l_org_hist_rec_tab.NEW_RELATIONSHIP_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_RELATIONSHIP_TYPE_CODE(i)),
4650 	    decode( l_org_hist_rec_tab.OLD_ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_org_hist_rec_tab.OLD_ACTIVE_START_DATE(i)),
4651 	    decode( l_org_hist_rec_tab.NEW_ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_org_hist_rec_tab.NEW_ACTIVE_START_DATE(i)),
4652 	    decode( l_org_hist_rec_tab.OLD_ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_org_hist_rec_tab.OLD_ACTIVE_END_DATE(i)),
4653 	    decode( l_org_hist_rec_tab.NEW_ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_org_hist_rec_tab.NEW_ACTIVE_END_DATE(i)),
4654 	    decode( l_org_hist_rec_tab.OLD_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_CONTEXT(i)),
4655 	    decode( l_org_hist_rec_tab.NEW_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_CONTEXT(i)),
4656 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE1(i)),
4657 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE1(i)),
4658 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE2(i)),
4659 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE2(i)),
4660 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE3(i)),
4661 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE3(i)),
4662 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE4(i)),
4663 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE4(i)),
4664 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE5(i)),
4665 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE5(i)),
4666 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE6(i)),
4667 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE6(i)),
4668 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE7(i)),
4669 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE7(i)),
4670 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE8(i)),
4671 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE8(i)),
4672 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE9(i)),
4673 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE9(i)),
4674 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE10(i)),
4675 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE10(i)),
4676 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE11(i)),
4677 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE11(i)),
4678 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE12(i)),
4679 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE12(i)),
4680 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE13(i)),
4681 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE13(i)),
4682 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE14(i)),
4683 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE14(i)),
4684 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE15(i)),
4685 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE15(i)),
4686 	    'N',
4687 	    l_user_id,
4688 	    SYSDATE,
4689 	    l_user_id,
4690 	    SYSDATE,
4691 	    l_login_id,
4692 	    1);
4693    END IF;
4694    --
4695    IF p_pricing_tbl.count > 0 THEN
4696       Build_pricing_Rec_of_Table
4697         (
4698           p_pricing_tbl       => p_pricing_tbl
4699          ,p_pricing_rec_tab   => l_pricing_rec_tab
4700         );
4701       --
4702       l_ctr := l_pricing_rec_tab.pricing_attribute_id.count;
4703       --
4704       FORALL i in 1 .. l_ctr
4705        INSERT INTO CSI_I_PRICING_ATTRIBS(
4706 	  PRICING_ATTRIBUTE_ID,
4707 	  INSTANCE_ID,
4708 	  ACTIVE_START_DATE,
4709 	  ACTIVE_END_DATE,
4710 	  CONTEXT,
4711 	  ATTRIBUTE1,
4712 	  ATTRIBUTE2,
4713 	  ATTRIBUTE3,
4714 	  ATTRIBUTE4,
4715 	  ATTRIBUTE5,
4716 	  ATTRIBUTE6,
4717 	  ATTRIBUTE7,
4718 	  ATTRIBUTE8,
4719 	  ATTRIBUTE9,
4720 	  ATTRIBUTE10,
4721 	  ATTRIBUTE11,
4722 	  ATTRIBUTE12,
4723 	  ATTRIBUTE13,
4724 	  ATTRIBUTE14,
4725 	  ATTRIBUTE15,
4726 	  CREATED_BY,
4727 	  CREATION_DATE,
4728 	  LAST_UPDATED_BY,
4729 	  LAST_UPDATE_DATE,
4730 	  LAST_UPDATE_LOGIN,
4731 	  OBJECT_VERSION_NUMBER,
4732 	  PRICING_CONTEXT,
4733 	  PRICING_ATTRIBUTE1,
4734 	  PRICING_ATTRIBUTE2,
4735 	  PRICING_ATTRIBUTE3,
4736 	  PRICING_ATTRIBUTE4,
4737 	  PRICING_ATTRIBUTE5,
4738 	  PRICING_ATTRIBUTE6,
4739 	  PRICING_ATTRIBUTE7,
4740 	  PRICING_ATTRIBUTE8,
4741 	  PRICING_ATTRIBUTE9,
4742 	  PRICING_ATTRIBUTE10,
4743 	  PRICING_ATTRIBUTE11,
4744 	  PRICING_ATTRIBUTE12,
4745 	  PRICING_ATTRIBUTE13,
4746 	  PRICING_ATTRIBUTE14,
4747 	  PRICING_ATTRIBUTE15,
4748 	  PRICING_ATTRIBUTE16,
4749 	  PRICING_ATTRIBUTE17,
4750 	  PRICING_ATTRIBUTE18,
4751 	  PRICING_ATTRIBUTE19,
4752 	  PRICING_ATTRIBUTE20,
4753 	  PRICING_ATTRIBUTE21,
4754 	  PRICING_ATTRIBUTE22,
4755 	  PRICING_ATTRIBUTE23,
4756 	  PRICING_ATTRIBUTE24,
4757 	  PRICING_ATTRIBUTE25,
4758 	  PRICING_ATTRIBUTE26,
4759 	  PRICING_ATTRIBUTE27,
4760 	  PRICING_ATTRIBUTE28,
4761 	  PRICING_ATTRIBUTE29,
4762 	  PRICING_ATTRIBUTE30,
4763 	  PRICING_ATTRIBUTE31,
4764 	  PRICING_ATTRIBUTE32,
4765 	  PRICING_ATTRIBUTE33,
4766 	  PRICING_ATTRIBUTE34,
4767 	  PRICING_ATTRIBUTE35,
4768 	  PRICING_ATTRIBUTE36,
4769 	  PRICING_ATTRIBUTE37,
4770 	  PRICING_ATTRIBUTE38,
4771 	  PRICING_ATTRIBUTE39,
4772 	  PRICING_ATTRIBUTE40,
4773 	  PRICING_ATTRIBUTE41,
4774 	  PRICING_ATTRIBUTE42,
4775 	  PRICING_ATTRIBUTE43,
4776 	  PRICING_ATTRIBUTE44,
4777 	  PRICING_ATTRIBUTE45,
4778 	  PRICING_ATTRIBUTE46,
4779 	  PRICING_ATTRIBUTE47,
4780 	  PRICING_ATTRIBUTE48,
4781 	  PRICING_ATTRIBUTE49,
4782 	  PRICING_ATTRIBUTE50,
4783 	  PRICING_ATTRIBUTE51,
4784 	  PRICING_ATTRIBUTE52,
4785 	  PRICING_ATTRIBUTE53,
4786 	  PRICING_ATTRIBUTE54,
4787 	  PRICING_ATTRIBUTE55,
4788 	  PRICING_ATTRIBUTE56,
4789 	  PRICING_ATTRIBUTE57,
4790 	  PRICING_ATTRIBUTE58,
4791 	  PRICING_ATTRIBUTE59,
4792 	  PRICING_ATTRIBUTE60,
4793 	  PRICING_ATTRIBUTE61,
4794 	  PRICING_ATTRIBUTE62,
4795 	  PRICING_ATTRIBUTE63,
4796 	  PRICING_ATTRIBUTE64,
4797 	  PRICING_ATTRIBUTE65,
4798 	  PRICING_ATTRIBUTE66,
4799 	  PRICING_ATTRIBUTE67,
4800 	  PRICING_ATTRIBUTE68,
4801 	  PRICING_ATTRIBUTE69,
4802 	  PRICING_ATTRIBUTE70,
4803 	  PRICING_ATTRIBUTE71,
4804 	  PRICING_ATTRIBUTE72,
4805 	  PRICING_ATTRIBUTE73,
4806 	  PRICING_ATTRIBUTE74,
4807 	  PRICING_ATTRIBUTE75,
4808 	  PRICING_ATTRIBUTE76,
4809 	  PRICING_ATTRIBUTE77,
4810 	  PRICING_ATTRIBUTE78,
4811 	  PRICING_ATTRIBUTE79,
4812 	  PRICING_ATTRIBUTE80,
4813 	  PRICING_ATTRIBUTE81,
4814 	  PRICING_ATTRIBUTE82,
4815 	  PRICING_ATTRIBUTE83,
4816 	  PRICING_ATTRIBUTE84,
4817 	  PRICING_ATTRIBUTE85,
4818 	  PRICING_ATTRIBUTE86,
4819 	  PRICING_ATTRIBUTE87,
4820 	  PRICING_ATTRIBUTE88,
4821 	  PRICING_ATTRIBUTE89,
4822 	  PRICING_ATTRIBUTE90,
4823 	  PRICING_ATTRIBUTE91,
4824 	  PRICING_ATTRIBUTE92,
4825 	  PRICING_ATTRIBUTE93,
4826 	  PRICING_ATTRIBUTE94,
4827 	  PRICING_ATTRIBUTE95,
4828 	  PRICING_ATTRIBUTE96,
4829 	  PRICING_ATTRIBUTE97,
4830 	  PRICING_ATTRIBUTE98,
4831 	  PRICING_ATTRIBUTE99,
4832 	  PRICING_ATTRIBUTE100
4833 	 ) VALUES (
4834 	  l_pricing_rec_tab.PRICING_ATTRIBUTE_ID(i),
4835 	  decode( l_pricing_rec_tab.INSTANCE_ID(i), FND_API.G_MISS_NUM, NULL, l_pricing_rec_tab.INSTANCE_ID(i)),
4836 	  decode( l_pricing_rec_tab.ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_pricing_rec_tab.ACTIVE_START_DATE(i)),
4837 	  decode( l_pricing_rec_tab.ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_pricing_rec_tab.ACTIVE_END_DATE(i)),
4838 	  decode( l_pricing_rec_tab.CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.CONTEXT(i)),
4839 	  decode( l_pricing_rec_tab.ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE1(i)),
4840 	  decode( l_pricing_rec_tab.ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE2(i)),
4841 	  decode( l_pricing_rec_tab.ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE3(i)),
4842 	  decode( l_pricing_rec_tab.ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE4(i)),
4843 	  decode( l_pricing_rec_tab.ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE5(i)),
4844 	  decode( l_pricing_rec_tab.ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE6(i)),
4845 	  decode( l_pricing_rec_tab.ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE7(i)),
4846 	  decode( l_pricing_rec_tab.ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE8(i)),
4847 	  decode( l_pricing_rec_tab.ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE9(i)),
4848 	  decode( l_pricing_rec_tab.ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE10(i)),
4849 	  decode( l_pricing_rec_tab.ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE11(i)),
4850 	  decode( l_pricing_rec_tab.ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE12(i)),
4851 	  decode( l_pricing_rec_tab.ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE13(i)),
4852 	  decode( l_pricing_rec_tab.ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE14(i)),
4853 	  decode( l_pricing_rec_tab.ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE15(i)),
4854 	  l_user_id,
4855 	  SYSDATE,
4856 	  l_user_id,
4857 	  SYSDATE,
4858 	  l_login_id,
4859 	  1,
4860 	  decode( l_pricing_rec_tab.PRICING_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_CONTEXT(i)),
4861 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE1(i)),
4862 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE2(i)),
4863 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE3(i)),
4864 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE4(i)),
4865 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE5(i)),
4866 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE6(i)),
4867 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE7(i)),
4868 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE8(i)),
4869 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE9(i)),
4870 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE10(i)),
4871 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE11(i)),
4872 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE12(i)),
4873 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE13(i)),
4874 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE14(i)),
4875 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE15(i)),
4876 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE16(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE16(i)),
4877 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE17(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE17(i)),
4878 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE18(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE18(i)),
4879 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE19(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE19(i)),
4880 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE20(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE20(i)),
4881 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE21(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE21(i)),
4882 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE22(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE22(i)),
4883 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE23(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE23(i)),
4884 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE24(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE24(i)),
4885 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE25(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE25(i)),
4886 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE26(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE26(i)),
4887 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE27(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE27(i)),
4888 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE28(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE28(i)),
4889 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE29(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE29(i)),
4890 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE30(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE30(i)),
4891 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE31(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE31(i)),
4892 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE32(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE32(i)),
4893 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE33(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE33(i)),
4894 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE34(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE34(i)),
4895 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE35(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE35(i)),
4896 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE36(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE36(i)),
4897 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE37(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE37(i)),
4898 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE38(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE38(i)),
4899 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE39(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE39(i)),
4900 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE40(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE40(i)),
4901 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE41(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE41(i)),
4902 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE42(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE42(i)),
4903 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE43(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE43(i)),
4904 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE44(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE44(i)),
4905 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE45(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE45(i)),
4906 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE46(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE46(i)),
4907 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE47(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE47(i)),
4908 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE48(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE48(i)),
4909 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE49(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE49(i)),
4910 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE50(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE50(i)),
4911 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE51(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE51(i)),
4912 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE52(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE52(i)),
4913 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE53(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE53(i)),
4914 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE54(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE54(i)),
4915 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE55(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE55(i)),
4916 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE56(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE56(i)),
4917 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE57(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE57(i)),
4918 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE58(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE58(i)),
4919 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE59(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE59(i)),
4920 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE60(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE60(i)),
4921 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE61(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE61(i)),
4922 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE62(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE62(i)),
4923 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE63(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE63(i)),
4924 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE64(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE64(i)),
4925 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE65(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE65(i)),
4926 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE66(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE66(i)),
4927 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE67(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE67(i)),
4928 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE68(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE68(i)),
4929 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE69(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE69(i)),
4930 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE70(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE70(i)),
4931 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE71(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE71(i)),
4932 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE72(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE72(i)),
4933 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE73(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE73(i)),
4934 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE74(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE74(i)),
4935 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE75(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE75(i)),
4936 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE76(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE76(i)),
4937 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE77(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE77(i)),
4938 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE78(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE78(i)),
4939 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE79(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE79(i)),
4943 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE83(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE83(i)),
4940 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE80(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE80(i)),
4941 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE81(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE81(i)),
4942 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE82(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE82(i)),
4944 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE84(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE84(i)),
4945 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE85(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE85(i)),
4946 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE86(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE86(i)),
4947 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE87(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE87(i)),
4948 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE88(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE88(i)),
4949 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE89(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE89(i)),
4950 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE90(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE90(i)),
4951 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE91(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE91(i)),
4952 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE92(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE92(i)),
4953 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE93(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE93(i)),
4954 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE94(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE94(i)),
4955 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE95(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE95(i)),
4956 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE96(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE96(i)),
4957 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE97(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE97(i)),
4958 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE98(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE98(i)),
4959 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE99(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE99(i)),
4960 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE100(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE100(i))
4961 	  );
4962    END IF;
4963    --
4964    IF p_pricing_hist_tbl.count > 0 THEN
4965          Build_pricing_Hist_Rec_Table
4966             (
4967               p_pricing_hist_tbl       => p_pricing_hist_tbl
4968              ,p_pricing_hist_rec_tab   => l_pricing_hist_rec_tab
4969             );
4970          --
4971          l_ctr := l_pricing_hist_rec_tab.price_attrib_history_id.count;
4972          --
4973 	 FORALL i in 1 .. l_ctr
4974 	  INSERT INTO CSI_I_PRICING_ATTRIBS_H(
4975 	    PRICE_ATTRIB_HISTORY_ID,
4976 	    PRICING_ATTRIBUTE_ID,
4977 	    TRANSACTION_ID,
4978 	    OLD_PRICING_CONTEXT,
4979 	    NEW_PRICING_CONTEXT,
4980 	    OLD_PRICING_ATTRIBUTE1,
4981 	    NEW_PRICING_ATTRIBUTE1,
4982 	    OLD_PRICING_ATTRIBUTE2,
4983 	    NEW_PRICING_ATTRIBUTE2,
4984 	    OLD_PRICING_ATTRIBUTE3,
4985 	    NEW_PRICING_ATTRIBUTE3,
4986 	    OLD_PRICING_ATTRIBUTE4,
4987 	    NEW_PRICING_ATTRIBUTE4,
4988 	    OLD_PRICING_ATTRIBUTE5,
4989 	    NEW_PRICING_ATTRIBUTE5,
4990 	    OLD_PRICING_ATTRIBUTE6,
4991 	    NEW_PRICING_ATTRIBUTE6,
4992 	    OLD_PRICING_ATTRIBUTE7,
4993 	    NEW_PRICING_ATTRIBUTE7,
4994 	    OLD_PRICING_ATTRIBUTE8,
4995 	    NEW_PRICING_ATTRIBUTE8,
4996 	    OLD_PRICING_ATTRIBUTE9,
4997 	    NEW_PRICING_ATTRIBUTE9,
4998 	    OLD_PRICING_ATTRIBUTE10,
4999 	    NEW_PRICING_ATTRIBUTE10,
5000 	    OLD_PRICING_ATTRIBUTE11,
5001 	    NEW_PRICING_ATTRIBUTE11,
5002 	    OLD_PRICING_ATTRIBUTE12,
5003 	    NEW_PRICING_ATTRIBUTE12,
5004 	    OLD_PRICING_ATTRIBUTE13,
5005 	    NEW_PRICING_ATTRIBUTE13,
5006 	    OLD_PRICING_ATTRIBUTE14,
5007 	    NEW_PRICING_ATTRIBUTE14,
5008 	    OLD_PRICING_ATTRIBUTE15,
5009 	    NEW_PRICING_ATTRIBUTE15,
5010 	    OLD_PRICING_ATTRIBUTE16,
5011 	    NEW_PRICING_ATTRIBUTE16,
5012 	    OLD_PRICING_ATTRIBUTE17,
5013 	    NEW_PRICING_ATTRIBUTE17,
5014 	    OLD_PRICING_ATTRIBUTE18,
5015 	    NEW_PRICING_ATTRIBUTE18,
5016 	    OLD_PRICING_ATTRIBUTE19,
5017 	    NEW_PRICING_ATTRIBUTE19,
5018 	    OLD_PRICING_ATTRIBUTE20,
5019 	    NEW_PRICING_ATTRIBUTE20,
5020 	    OLD_PRICING_ATTRIBUTE21,
5021 	    NEW_PRICING_ATTRIBUTE21,
5022 	    OLD_PRICING_ATTRIBUTE22,
5023 	    NEW_PRICING_ATTRIBUTE22,
5024 	    OLD_PRICING_ATTRIBUTE23,
5025 	    NEW_PRICING_ATTRIBUTE23,
5026 	    OLD_PRICING_ATTRIBUTE24,
5027 	    NEW_PRICING_ATTRIBUTE24,
5028 	    NEW_PRICING_ATTRIBUTE25,
5029 	    OLD_PRICING_ATTRIBUTE25,
5030 	    OLD_PRICING_ATTRIBUTE26,
5031 	    NEW_PRICING_ATTRIBUTE26,
5032 	    OLD_PRICING_ATTRIBUTE27,
5033 	    NEW_PRICING_ATTRIBUTE27,
5034 	    OLD_PRICING_ATTRIBUTE28,
5035 	    NEW_PRICING_ATTRIBUTE28,
5036 	    OLD_PRICING_ATTRIBUTE29,
5037 	    NEW_PRICING_ATTRIBUTE29,
5038 	    OLD_PRICING_ATTRIBUTE30,
5039 	    NEW_PRICING_ATTRIBUTE30,
5040 	    OLD_PRICING_ATTRIBUTE31,
5041 	    NEW_PRICING_ATTRIBUTE31,
5042 	    OLD_PRICING_ATTRIBUTE32,
5043 	    NEW_PRICING_ATTRIBUTE32,
5044 	    OLD_PRICING_ATTRIBUTE33,
5045 	    NEW_PRICING_ATTRIBUTE33,
5046 	    OLD_PRICING_ATTRIBUTE34,
5047 	    NEW_PRICING_ATTRIBUTE34,
5048 	    OLD_PRICING_ATTRIBUTE35,
5049 	    NEW_PRICING_ATTRIBUTE35,
5050 	    OLD_PRICING_ATTRIBUTE36,
5051 	    NEW_PRICING_ATTRIBUTE36,
5052 	    OLD_PRICING_ATTRIBUTE37,
5053 	    NEW_PRICING_ATTRIBUTE37,
5054 	    OLD_PRICING_ATTRIBUTE38,
5055 	    NEW_PRICING_ATTRIBUTE38,
5056 	    OLD_PRICING_ATTRIBUTE39,
5057 	    NEW_PRICING_ATTRIBUTE39,
5058 	    OLD_PRICING_ATTRIBUTE40,
5059 	    NEW_PRICING_ATTRIBUTE40,
5060 	    OLD_PRICING_ATTRIBUTE41,
5061 	    NEW_PRICING_ATTRIBUTE41,
5062 	    OLD_PRICING_ATTRIBUTE42,
5063 	    NEW_PRICING_ATTRIBUTE42,
5064 	    OLD_PRICING_ATTRIBUTE43,
5065 	    NEW_PRICING_ATTRIBUTE43,
5066 	    OLD_PRICING_ATTRIBUTE44,
5067 	    NEW_PRICING_ATTRIBUTE44,
5068 	    OLD_PRICING_ATTRIBUTE45,
5069 	    NEW_PRICING_ATTRIBUTE45,
5070 	    OLD_PRICING_ATTRIBUTE46,
5071 	    NEW_PRICING_ATTRIBUTE46,
5072 	    OLD_PRICING_ATTRIBUTE47,
5073 	    NEW_PRICING_ATTRIBUTE47,
5074 	    OLD_PRICING_ATTRIBUTE48,
5075 	    NEW_PRICING_ATTRIBUTE48,
5076 	    OLD_PRICING_ATTRIBUTE49,
5077 	    NEW_PRICING_ATTRIBUTE49,
5078 	    OLD_PRICING_ATTRIBUTE50,
5079 	    NEW_PRICING_ATTRIBUTE50,
5080 	    OLD_PRICING_ATTRIBUTE51,
5081 	    NEW_PRICING_ATTRIBUTE51,
5082 	    OLD_PRICING_ATTRIBUTE52,
5083 	    NEW_PRICING_ATTRIBUTE52,
5084 	    OLD_PRICING_ATTRIBUTE53,
5085 	    NEW_PRICING_ATTRIBUTE53,
5086 	    OLD_PRICING_ATTRIBUTE54,
5087 	    NEW_PRICING_ATTRIBUTE54,
5088 	    OLD_PRICING_ATTRIBUTE55,
5089 	    NEW_PRICING_ATTRIBUTE55,
5090 	    OLD_PRICING_ATTRIBUTE56,
5091 	    NEW_PRICING_ATTRIBUTE56,
5092 	    OLD_PRICING_ATTRIBUTE57,
5093 	    NEW_PRICING_ATTRIBUTE57,
5094 	    OLD_PRICING_ATTRIBUTE58,
5095 	    NEW_PRICING_ATTRIBUTE58,
5096 	    OLD_PRICING_ATTRIBUTE59,
5097 	    NEW_PRICING_ATTRIBUTE59,
5098 	    OLD_PRICING_ATTRIBUTE60,
5099 	    NEW_PRICING_ATTRIBUTE60,
5100 	    OLD_PRICING_ATTRIBUTE61,
5101 	    NEW_PRICING_ATTRIBUTE61,
5102 	    OLD_PRICING_ATTRIBUTE62,
5103 	    NEW_PRICING_ATTRIBUTE62,
5104 	    OLD_PRICING_ATTRIBUTE63,
5105 	    NEW_PRICING_ATTRIBUTE63,
5106 	    OLD_PRICING_ATTRIBUTE64,
5107 	    NEW_PRICING_ATTRIBUTE64,
5108 	    OLD_PRICING_ATTRIBUTE65,
5109 	    NEW_PRICING_ATTRIBUTE65,
5110 	    OLD_PRICING_ATTRIBUTE66,
5111 	    NEW_PRICING_ATTRIBUTE66,
5112 	    OLD_PRICING_ATTRIBUTE67,
5113 	    NEW_PRICING_ATTRIBUTE67,
5114 	    OLD_PRICING_ATTRIBUTE68,
5115 	    NEW_PRICING_ATTRIBUTE68,
5116 	    OLD_PRICING_ATTRIBUTE69,
5117 	    NEW_PRICING_ATTRIBUTE69,
5118 	    OLD_PRICING_ATTRIBUTE70,
5119 	    NEW_PRICING_ATTRIBUTE70,
5120 	    OLD_PRICING_ATTRIBUTE71,
5121 	    NEW_PRICING_ATTRIBUTE71,
5122 	    OLD_PRICING_ATTRIBUTE72,
5123 	    NEW_PRICING_ATTRIBUTE72,
5124 	    OLD_PRICING_ATTRIBUTE73,
5125 	    NEW_PRICING_ATTRIBUTE73,
5126 	    OLD_PRICING_ATTRIBUTE74,
5127 	    NEW_PRICING_ATTRIBUTE74,
5128 	    OLD_PRICING_ATTRIBUTE75,
5129 	    NEW_PRICING_ATTRIBUTE75,
5130 	    OLD_PRICING_ATTRIBUTE76,
5131 	    NEW_PRICING_ATTRIBUTE76,
5132 	    OLD_PRICING_ATTRIBUTE77,
5133 	    NEW_PRICING_ATTRIBUTE77,
5134 	    OLD_PRICING_ATTRIBUTE78,
5135 	    NEW_PRICING_ATTRIBUTE78,
5136 	    OLD_PRICING_ATTRIBUTE79,
5137 	    NEW_PRICING_ATTRIBUTE79,
5138 	    OLD_PRICING_ATTRIBUTE80,
5139 	    NEW_PRICING_ATTRIBUTE80,
5140 	    OLD_PRICING_ATTRIBUTE81,
5141 	    NEW_PRICING_ATTRIBUTE81,
5142 	    OLD_PRICING_ATTRIBUTE82,
5143 	    NEW_PRICING_ATTRIBUTE82,
5144 	    OLD_PRICING_ATTRIBUTE83,
5145 	    NEW_PRICING_ATTRIBUTE83,
5146 	    OLD_PRICING_ATTRIBUTE84,
5147 	    NEW_PRICING_ATTRIBUTE84,
5148 	    OLD_PRICING_ATTRIBUTE85,
5149 	    NEW_PRICING_ATTRIBUTE85,
5150 	    OLD_PRICING_ATTRIBUTE86,
5151 	    NEW_PRICING_ATTRIBUTE86,
5152 	    OLD_PRICING_ATTRIBUTE87,
5153 	    NEW_PRICING_ATTRIBUTE87,
5154 	    OLD_PRICING_ATTRIBUTE88,
5155 	    NEW_PRICING_ATTRIBUTE88,
5156 	    OLD_PRICING_ATTRIBUTE89,
5157 	    NEW_PRICING_ATTRIBUTE89,
5158 	    OLD_PRICING_ATTRIBUTE90,
5159 	    NEW_PRICING_ATTRIBUTE90,
5160 	    OLD_PRICING_ATTRIBUTE91,
5161 	    NEW_PRICING_ATTRIBUTE91,
5162 	    OLD_PRICING_ATTRIBUTE92,
5163 	    NEW_PRICING_ATTRIBUTE92,
5164 	    OLD_PRICING_ATTRIBUTE93,
5165 	    NEW_PRICING_ATTRIBUTE93,
5166 	    OLD_PRICING_ATTRIBUTE94,
5167 	    NEW_PRICING_ATTRIBUTE94,
5168 	    OLD_PRICING_ATTRIBUTE95,
5169 	    NEW_PRICING_ATTRIBUTE95,
5170 	    OLD_PRICING_ATTRIBUTE96,
5171 	    NEW_PRICING_ATTRIBUTE96,
5172 	    OLD_PRICING_ATTRIBUTE97,
5173 	    NEW_PRICING_ATTRIBUTE97,
5174 	    OLD_PRICING_ATTRIBUTE98,
5175 	    NEW_PRICING_ATTRIBUTE98,
5176 	    OLD_PRICING_ATTRIBUTE99,
5177 	    NEW_PRICING_ATTRIBUTE99,
5178 	    OLD_PRICING_ATTRIBUTE100,
5179 	    NEW_PRICING_ATTRIBUTE100,
5180 	    OLD_ACTIVE_START_DATE,
5181 	    NEW_ACTIVE_START_DATE,
5182 	    OLD_ACTIVE_END_DATE,
5183 	    NEW_ACTIVE_END_DATE,
5184 	    OLD_CONTEXT,
5185 	    NEW_CONTEXT,
5186 	    OLD_ATTRIBUTE1,
5187 	    NEW_ATTRIBUTE1,
5188 	    OLD_ATTRIBUTE2,
5189 	    NEW_ATTRIBUTE2,
5190 	    OLD_ATTRIBUTE3,
5191 	    NEW_ATTRIBUTE3,
5192 	    OLD_ATTRIBUTE4,
5193 	    NEW_ATTRIBUTE4,
5194 	    OLD_ATTRIBUTE5,
5195 	    NEW_ATTRIBUTE5,
5196 	    OLD_ATTRIBUTE6,
5197 	    NEW_ATTRIBUTE6,
5198 	    OLD_ATTRIBUTE7,
5199 	    NEW_ATTRIBUTE7,
5200 	    OLD_ATTRIBUTE8,
5201 	    NEW_ATTRIBUTE8,
5202 	    OLD_ATTRIBUTE9,
5203 	    NEW_ATTRIBUTE9,
5204 	    OLD_ATTRIBUTE10,
5205 	    NEW_ATTRIBUTE10,
5206 	    OLD_ATTRIBUTE11,
5207 	    NEW_ATTRIBUTE11,
5208 	    OLD_ATTRIBUTE12,
5209 	    NEW_ATTRIBUTE12,
5210 	    OLD_ATTRIBUTE13,
5211 	    NEW_ATTRIBUTE13,
5212 	    OLD_ATTRIBUTE14,
5213 	    NEW_ATTRIBUTE14,
5214 	    OLD_ATTRIBUTE15,
5215 	    NEW_ATTRIBUTE15,
5216 	    FULL_DUMP_FLAG,
5217 	    CREATED_BY,
5218 	    CREATION_DATE,
5219 	    LAST_UPDATED_BY,
5220 	    LAST_UPDATE_DATE,
5221 	    LAST_UPDATE_LOGIN,
5222 	    OBJECT_VERSION_NUMBER
5223 	   ) VALUES (
5224 	    l_pricing_hist_rec_tab.PRICE_ATTRIB_HISTORY_ID(i),
5225 	    decode( l_pricing_hist_rec_tab.PRICING_ATTRIBUTE_ID(i), FND_API.G_MISS_NUM, NULL, l_pricing_hist_rec_tab.PRICING_ATTRIBUTE_ID(i)),
5226 	    decode( l_pricing_hist_rec_tab.TRANSACTION_ID(i), FND_API.G_MISS_NUM, NULL, l_pricing_hist_rec_tab.TRANSACTION_ID(i)),
5227 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_CONTEXT(i)),
5228 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_CONTEXT(i)),
5229 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE1(i)),
5230 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE1(i)),
5231 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE2(i)),
5232 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE2(i)),
5233 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE3(i)),
5234 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE3(i)),
5235 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE4(i)),
5236 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE4(i)),
5237 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE5(i)),
5238 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE5(i)),
5239 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE6(i)),
5240 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE6(i)),
5241 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE7(i)),
5242 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE7(i)),
5243 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE8(i)),
5244 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE8(i)),
5245 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE9(i)),
5246 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE9(i)),
5247 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE10(i)),
5248 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE10(i)),
5249 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE11(i)),
5250 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE11(i)),
5251 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE12(i)),
5252 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE12(i)),
5253 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE13(i)),
5254 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE13(i)),
5255 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE14(i)),
5256 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE14(i)),
5257 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE15(i)),
5258 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE15(i)),
5259 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE16(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE16(i)),
5260 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE16(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE16(i)),
5261 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE17(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE17(i)),
5262 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE17(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE17(i)),
5263 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE18(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE18(i)),
5264 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE18(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE18(i)),
5265 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE19(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE19(i)),
5266 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE19(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE19(i)),
5267 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE20(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE20(i)),
5268 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE20(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE20(i)),
5269 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE21(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE21(i)),
5270 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE21(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE21(i)),
5271 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE22(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE22(i)),
5272 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE22(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE22(i)),
5273 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE23(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE23(i)),
5277 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE25(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE25(i)),
5274 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE23(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE23(i)),
5275 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE24(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE24(i)),
5276 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE24(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE24(i)),
5278 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE25(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE25(i)),
5279 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE26(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE26(i)),
5280 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE26(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE26(i)),
5281 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE27(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE27(i)),
5282 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE27(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE27(i)),
5283 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE28(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE28(i)),
5284 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE28(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE28(i)),
5285 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE29(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE29(i)),
5286 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE29(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE29(i)),
5287 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE30(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE30(i)),
5288 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE30(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE30(i)),
5289 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE31(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE31(i)),
5290 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE31(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE31(i)),
5291 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE32(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE32(i)),
5292 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE32(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE32(i)),
5293 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE33(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE33(i)),
5294 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE33(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE33(i)),
5295 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE34(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE34(i)),
5296 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE34(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE34(i)),
5297 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE35(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE35(i)),
5298 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE35(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE35(i)),
5299 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE36(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE36(i)),
5300 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE36(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE36(i)),
5301 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE37(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE37(i)),
5302 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE37(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE37(i)),
5303 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE38(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE38(i)),
5304 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE38(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE38(i)),
5305 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE39(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE39(i)),
5306 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE39(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE39(i)),
5307 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE40(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE40(i)),
5308 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE40(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE40(i)),
5309 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE41(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE41(i)),
5310 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE41(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE41(i)),
5311 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE42(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE42(i)),
5312 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE42(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE42(i)),
5313 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE43(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE43(i)),
5314 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE43(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE43(i)),
5315 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE44(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE44(i)),
5316 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE44(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE44(i)),
5317 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE45(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE45(i)),
5318 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE45(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE45(i)),
5319 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE46(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE46(i)),
5323 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE48(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE48(i)),
5320 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE46(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE46(i)),
5321 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE47(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE47(i)),
5322 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE47(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE47(i)),
5324 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE48(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE48(i)),
5325 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE49(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE49(i)),
5326 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE49(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE49(i)),
5327 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE50(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE50(i)),
5328 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE50(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE50(i)),
5329 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE51(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE51(i)),
5330 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE51(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE51(i)),
5331 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE52(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE52(i)),
5332 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE52(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE52(i)),
5333 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE53(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE53(i)),
5334 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE53(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE53(i)),
5335 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE54(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE54(i)),
5336 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE54(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE54(i)),
5337 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE55(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE55(i)),
5338 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE55(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE55(i)),
5339 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE56(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE56(i)),
5340 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE56(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE56(i)),
5341 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE57(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE57(i)),
5342 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE57(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE57(i)),
5343 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE58(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE58(i)),
5344 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE58(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE58(i)),
5345 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE59(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE59(i)),
5346 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE59(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE59(i)),
5347 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE60(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE60(i)),
5348 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE60(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE60(i)),
5349 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE61(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE61(i)),
5350 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE61(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE61(i)),
5351 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE62(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE62(i)),
5352 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE62(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE62(i)),
5353 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE63(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE63(i)),
5354 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE63(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE63(i)),
5355 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE64(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE64(i)),
5356 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE64(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE64(i)),
5357 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE65(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE65(i)),
5358 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE65(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE65(i)),
5359 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE66(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE66(i)),
5360 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE66(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE66(i)),
5361 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE67(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE67(i)),
5362 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE67(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE67(i)),
5363 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE68(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE68(i)),
5364 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE68(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE68(i)),
5365 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE69(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE69(i)),
5366 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE69(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE69(i)),
5367 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE70(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE70(i)),
5368 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE70(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE70(i)),
5369 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE71(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE71(i)),
5370 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE71(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE71(i)),
5371 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE72(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE72(i)),
5372 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE72(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE72(i)),
5373 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE73(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE73(i)),
5374 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE73(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE73(i)),
5375 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE74(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE74(i)),
5376 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE74(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE74(i)),
5377 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE75(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE75(i)),
5378 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE75(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE75(i)),
5379 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE76(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE76(i)),
5380 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE76(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE76(i)),
5381 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE77(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE77(i)),
5382 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE77(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE77(i)),
5383 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE78(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE78(i)),
5384 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE78(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE78(i)),
5385 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE79(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE79(i)),
5386 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE79(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE79(i)),
5387 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE80(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE80(i)),
5388 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE80(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE80(i)),
5389 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE81(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE81(i)),
5390 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE81(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE81(i)),
5391 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE82(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE82(i)),
5392 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE82(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE82(i)),
5393 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE83(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE83(i)),
5394 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE83(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE83(i)),
5395 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE84(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE84(i)),
5396 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE84(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE84(i)),
5397 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE85(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE85(i)),
5398 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE85(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE85(i)),
5399 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE86(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE86(i)),
5400 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE86(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE86(i)),
5401 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE87(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE87(i)),
5402 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE87(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE87(i)),
5403 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE88(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE88(i)),
5404 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE88(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE88(i)),
5405 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE89(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE89(i)),
5406 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE89(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE89(i)),
5407 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE90(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE90(i)),
5408 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE90(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE90(i)),
5409 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE91(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE91(i)),
5410 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE91(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE91(i)),
5411 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE92(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE92(i)),
5412 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE92(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE92(i)),
5413 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE93(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE93(i)),
5414 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE93(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE93(i)),
5415 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE94(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE94(i)),
5416 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE94(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE94(i)),
5417 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE95(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE95(i)),
5418 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE95(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE95(i)),
5419 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE96(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE96(i)),
5420 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE96(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE96(i)),
5421 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE97(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE97(i)),
5422 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE97(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE97(i)),
5423 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE98(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE98(i)),
5424 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE98(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE98(i)),
5425 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE99(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE99(i)),
5426 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE99(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE99(i)),
5427 	    decode( l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE100(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE100(i)),
5428 	    decode( l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE100(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE100(i)),
5429 	    decode( l_pricing_hist_rec_tab.OLD_ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_pricing_hist_rec_tab.OLD_ACTIVE_START_DATE(i)),
5433 	    decode( l_pricing_hist_rec_tab.OLD_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_CONTEXT(i)),
5430 	    decode( l_pricing_hist_rec_tab.NEW_ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_pricing_hist_rec_tab.NEW_ACTIVE_START_DATE(i)),
5431 	    decode( l_pricing_hist_rec_tab.OLD_ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_pricing_hist_rec_tab.OLD_ACTIVE_END_DATE(i)),
5432 	    decode( l_pricing_hist_rec_tab.NEW_ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_pricing_hist_rec_tab.NEW_ACTIVE_END_DATE(i)),
5434 	    decode( l_pricing_hist_rec_tab.NEW_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_CONTEXT(i)),
5435 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE1(i)),
5436 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE1(i)),
5437 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE2(i)),
5438 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE2(i)),
5439 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE3(i)),
5440 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE3(i)),
5441 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE4(i)),
5442 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE4(i)),
5443 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE5(i)),
5444 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE5(i)),
5445 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE6(i)),
5446 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE6(i)),
5447 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE7(i)),
5448 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE7(i)),
5449 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE8(i)),
5450 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE8(i)),
5451 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE9(i)),
5452 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE9(i)),
5453 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE10(i)),
5454 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE10(i)),
5455 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE11(i)),
5456 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE11(i)),
5457 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE12(i)),
5458 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE12(i)),
5459 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE13(i)),
5460 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE13(i)),
5461 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE14(i)),
5462 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE14(i)),
5463 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE15(i)),
5464 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE15(i)),
5465 	    'N',
5466 	    l_user_id,
5467 	    SYSDATE,
5468 	    l_user_id,
5469 	    SYSDATE,
5470 	    l_login_id,
5471 	    1
5472 	   );
5473    END IF;
5474    IF p_ext_attr_values_tbl.count > 0 THEN
5475          Build_Ext_Attr_Rec_Table
5476             (
5477               p_ext_attr_tbl     => p_ext_attr_values_tbl
5478              ,p_ext_attr_rec_tab => l_ext_attr_rec_tab
5479             );
5480          --
5481          l_ctr := l_ext_attr_rec_tab.attribute_value_id.count;
5482          --
5483          FORALL i in 1 .. l_ctr
5484             INSERT INTO CSI_IEA_VALUES(
5485               ATTRIBUTE_VALUE_ID,
5486               ATTRIBUTE_ID,
5487               INSTANCE_ID,
5488               ATTRIBUTE_VALUE,
5489               ACTIVE_START_DATE,
5490               ACTIVE_END_DATE,
5491               CONTEXT,
5492               ATTRIBUTE1,
5493               ATTRIBUTE2,
5494               ATTRIBUTE3,
5495               ATTRIBUTE4,
5496               ATTRIBUTE5,
5497               ATTRIBUTE6,
5498               ATTRIBUTE7,
5499               ATTRIBUTE8,
5500               ATTRIBUTE9,
5501               ATTRIBUTE10,
5502               ATTRIBUTE11,
5503               ATTRIBUTE12,
5504               ATTRIBUTE13,
5505               ATTRIBUTE14,
5506               ATTRIBUTE15,
5507               CREATED_BY,
5508               CREATION_DATE,
5509               LAST_UPDATED_BY,
5510               LAST_UPDATE_DATE,
5511               LAST_UPDATE_LOGIN,
5512               OBJECT_VERSION_NUMBER
5513               ) VALUES (
5514               l_ext_attr_rec_tab.ATTRIBUTE_VALUE_ID(i),
5515               decode( l_ext_attr_rec_tab.ATTRIBUTE_ID(i), FND_API.G_MISS_NUM, NULL, l_ext_attr_rec_tab.ATTRIBUTE_ID(i)),
5519               decode( l_ext_attr_rec_tab.ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, NULL, l_ext_attr_rec_tab.ACTIVE_END_DATE(i)),
5516               decode( l_ext_attr_rec_tab.INSTANCE_ID(i), FND_API.G_MISS_NUM, NULL, l_ext_attr_rec_tab.INSTANCE_ID(i)),
5517               decode( l_ext_attr_rec_tab.ATTRIBUTE_VALUE(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE_VALUE(i)),
5518               decode( l_ext_attr_rec_tab.ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, NULL, l_ext_attr_rec_tab.ACTIVE_START_DATE(i)),
5520               decode( l_ext_attr_rec_tab.CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.CONTEXT(i)),
5521               decode( l_ext_attr_rec_tab.ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE1(i)),
5522               decode( l_ext_attr_rec_tab.ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE2(i)),
5523               decode( l_ext_attr_rec_tab.ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE3(i)),
5524               decode( l_ext_attr_rec_tab.ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE4(i)),
5525               decode( l_ext_attr_rec_tab.ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE5(i)),
5526               decode( l_ext_attr_rec_tab.ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE6(i)),
5527               decode( l_ext_attr_rec_tab.ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE7(i)),
5528               decode( l_ext_attr_rec_tab.ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE8(i)),
5529               decode( l_ext_attr_rec_tab.ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE9(i)),
5530               decode( l_ext_attr_rec_tab.ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE10(i)),
5531               decode( l_ext_attr_rec_tab.ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE11(i)),
5532               decode( l_ext_attr_rec_tab.ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE12(i)),
5533               decode( l_ext_attr_rec_tab.ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE13(i)),
5534               decode( l_ext_attr_rec_tab.ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE14(i)),
5535               decode( l_ext_attr_rec_tab.ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE15(i)),
5536               l_user_id,
5537               SYSDATE,
5538               l_user_id,
5539               SYSDATE,
5540               l_login_id,
5541               1
5542               );
5543    END IF;
5544    --
5545    IF p_ext_attr_val_hist_tbl.count > 0 THEN
5546          Build_Ext_Attr_Hist_Rec_Table
5547             (
5548               p_ext_attr_hist_tbl      =>  p_ext_attr_val_hist_tbl
5549              ,p_ext_attr_hist_rec_tab  =>  l_ext_attr_hist_rec_tab
5550             );
5551          --
5552          l_ctr := l_ext_attr_hist_rec_tab.attribute_value_history_id.count;
5553          --
5554          FORALL i in 1 .. l_ctr
5555             INSERT INTO CSI_IEA_VALUES_H(
5556               ATTRIBUTE_VALUE_HISTORY_ID,
5557               ATTRIBUTE_VALUE_ID,
5558               TRANSACTION_ID,
5559               OLD_ATTRIBUTE_VALUE,
5560               NEW_ATTRIBUTE_VALUE,
5561               OLD_ACTIVE_START_DATE,
5562               NEW_ACTIVE_START_DATE,
5563               OLD_ACTIVE_END_DATE,
5564               NEW_ACTIVE_END_DATE,
5565               OLD_CONTEXT,
5566               NEW_CONTEXT,
5567               OLD_ATTRIBUTE1,
5568               NEW_ATTRIBUTE1,
5569               OLD_ATTRIBUTE2,
5570               NEW_ATTRIBUTE2,
5571               OLD_ATTRIBUTE3,
5572               NEW_ATTRIBUTE3,
5573               OLD_ATTRIBUTE4,
5574               NEW_ATTRIBUTE4,
5575               OLD_ATTRIBUTE5,
5576               NEW_ATTRIBUTE5,
5577               OLD_ATTRIBUTE6,
5578               NEW_ATTRIBUTE6,
5579               OLD_ATTRIBUTE7,
5580               NEW_ATTRIBUTE7,
5581               OLD_ATTRIBUTE8,
5582               NEW_ATTRIBUTE8,
5583               OLD_ATTRIBUTE9,
5584               NEW_ATTRIBUTE9,
5585               OLD_ATTRIBUTE10,
5586               NEW_ATTRIBUTE10,
5587               OLD_ATTRIBUTE11,
5588               NEW_ATTRIBUTE11,
5589               OLD_ATTRIBUTE12,
5590               NEW_ATTRIBUTE12,
5591               OLD_ATTRIBUTE13,
5592               NEW_ATTRIBUTE13,
5593               OLD_ATTRIBUTE14,
5594               NEW_ATTRIBUTE14,
5595               OLD_ATTRIBUTE15,
5596               NEW_ATTRIBUTE15,
5597               FULL_DUMP_FLAG,
5598               CREATED_BY,
5599               CREATION_DATE,
5600               LAST_UPDATED_BY,
5601               LAST_UPDATE_DATE,
5602               LAST_UPDATE_LOGIN,
5603               OBJECT_VERSION_NUMBER
5604               ) VALUES (
5605               l_ext_attr_hist_rec_tab.ATTRIBUTE_VALUE_HISTORY_ID(i),
5606               decode( l_ext_attr_hist_rec_tab.ATTRIBUTE_VALUE_ID(i), FND_API.G_MISS_NUM, NULL, l_ext_attr_hist_rec_tab.ATTRIBUTE_VALUE_ID(i)),
5607               decode( l_ext_attr_hist_rec_tab.TRANSACTION_ID(i), FND_API.G_MISS_NUM, NULL, l_ext_attr_hist_rec_tab.TRANSACTION_ID(i)),
5608               decode( l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE_VALUE(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE_VALUE(i)),
5609               decode( l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE_VALUE(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE_VALUE(i)),
5610               decode( l_ext_attr_hist_rec_tab.OLD_ACTIVE_START_DATE(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.OLD_ACTIVE_START_DATE(i)),
5611               decode( l_ext_attr_hist_rec_tab.NEW_ACTIVE_START_DATE(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.NEW_ACTIVE_START_DATE(i)),
5612               decode( l_ext_attr_hist_rec_tab.OLD_ACTIVE_END_DATE(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.OLD_ACTIVE_END_DATE(i)),
5613               decode( l_ext_attr_hist_rec_tab.NEW_ACTIVE_END_DATE(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.NEW_ACTIVE_END_DATE(i)),
5617               decode( l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE1(i)),
5614               decode( l_ext_attr_hist_rec_tab.OLD_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.OLD_CONTEXT(i)),
5615               decode( l_ext_attr_hist_rec_tab.NEW_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.NEW_CONTEXT(i)),
5616               decode( l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE1(i)),
5618               decode( l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE2(i)),
5619               decode( l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE2(i)),
5620               decode( l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE3(i)),
5621               decode( l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE3(i)),
5622               decode( l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE4(i)),
5623               decode( l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE4(i)),
5624               decode( l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE5(i)),
5625               decode( l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE5(i)),
5626               decode( l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE6(i)),
5627               decode( l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE6(i)),
5628               decode( l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE7(i)),
5629               decode( l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE7(i)),
5630               decode( l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE8(i)),
5631               decode( l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE8(i)),
5632               decode( l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE9(i)),
5633               decode( l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE9(i)),
5634               decode( l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE10(i)),
5635               decode( l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE10(i)),
5636               decode( l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE11(i)),
5637               decode( l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE11(i)),
5638               decode( l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE12(i)),
5639               decode( l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE12(i)),
5640               decode( l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE13(i)),
5641               decode( l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE13(i)),
5642               decode( l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE14(i)),
5643               decode( l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE14(i)),
5644               decode( l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.OLD_ATTRIBUTE15(i)),
5645               decode( l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_hist_rec_tab.NEW_ATTRIBUTE15(i)),
5646               'N',
5647               l_user_id,
5648               SYSDATE,
5649               l_user_id,
5650               SYSDATE,
5651               l_login_id,
5652               1
5653               );
5654    END IF;
5655    --
5656    IF p_asset_tbl.count > 0 THEN
5657          Build_Asset_Rec_Table
5658             (
5659               p_asset_tbl     => p_asset_tbl
5660              ,p_asset_rec_tab => l_asset_rec_tab
5661             );
5662          --
5663          l_ctr := l_asset_rec_tab.instance_asset_id.count;
5664          --
5665          FORALL i in 1 .. l_ctr
5666           INSERT INTO CSI_I_ASSETS(
5667            INSTANCE_ASSET_ID,
5668            INSTANCE_ID,
5669            FA_ASSET_ID,
5670            FA_BOOK_TYPE_CODE,
5671            FA_LOCATION_ID,
5672            ASSET_QUANTITY,
5673            UPDATE_STATUS,
5674            ACTIVE_START_DATE,
5675            ACTIVE_END_DATE,
5676            CREATED_BY,
5677            CREATION_DATE,
5678            LAST_UPDATED_BY,
5679            LAST_UPDATE_DATE,
5680            LAST_UPDATE_LOGIN,
5681            OBJECT_VERSION_NUMBER,
5682            FA_SYNC_FLAG
5683            ) VALUES (
5684            l_asset_rec_tab.INSTANCE_ASSET_ID(i),
5685            decode( l_asset_rec_tab.INSTANCE_ID(i), FND_API.G_MISS_NUM, NULL, l_asset_rec_tab.INSTANCE_ID(i)),
5686            decode( l_asset_rec_tab.FA_ASSET_ID(i), FND_API.G_MISS_NUM, NULL, l_asset_rec_tab.FA_ASSET_ID(i)),
5687            decode( l_asset_rec_tab.FA_BOOK_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_asset_rec_tab.FA_BOOK_TYPE_CODE(i)),
5688            decode( l_asset_rec_tab.FA_LOCATION_ID(i), FND_API.G_MISS_NUM, NULL, l_asset_rec_tab.FA_LOCATION_ID(i)),
5689            decode( l_asset_rec_tab.ASSET_QUANTITY(i), FND_API.G_MISS_NUM, NULL, l_asset_rec_tab.ASSET_QUANTITY(i)),
5690            decode( l_asset_rec_tab.UPDATE_STATUS(i), FND_API.G_MISS_CHAR, NULL, l_asset_rec_tab.UPDATE_STATUS(i)),
5694            SYSDATE,
5691            decode( l_asset_rec_tab.ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, NULL, l_asset_rec_tab.ACTIVE_START_DATE(i)),
5692            decode( l_asset_rec_tab.ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, NULL, l_asset_rec_tab.ACTIVE_END_DATE(i)),
5693            l_user_id,
5695            l_user_id,
5696            SYSDATE,
5697            l_login_id,
5698            1,
5699            decode( l_asset_rec_tab.FA_SYNC_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_asset_rec_tab.FA_SYNC_FLAG(i))
5700            );
5701    END IF;
5702    --
5703    IF p_asset_hist_tbl.count > 0 THEN
5704          Build_Asset_Hist_Rec_Table
5705             (
5706               p_asset_hist_tbl      => p_asset_hist_tbl
5707              ,p_asset_hist_rec_tab  => l_asset_hist_rec_tab
5708             );
5709          --
5710          l_ctr := l_asset_hist_rec_tab.instance_asset_history_id.count;
5711          --
5712          FORALL i in 1 .. l_ctr
5713           INSERT INTO CSI_I_ASSETS_H(
5714            INSTANCE_ASSET_HISTORY_ID,
5715            INSTANCE_ASSET_ID,
5716            TRANSACTION_ID,
5717            OLD_INSTANCE_ID,
5718            NEW_INSTANCE_ID,
5719            OLD_FA_ASSET_ID,
5720            NEW_FA_ASSET_ID,
5721            OLD_ASSET_QUANTITY,
5722            NEW_ASSET_QUANTITY,
5723            OLD_FA_BOOK_TYPE_CODE,
5724            NEW_FA_BOOK_TYPE_CODE,
5725            OLD_FA_LOCATION_ID,
5726            NEW_FA_LOCATION_ID,
5727            OLD_UPDATE_STATUS,
5728            NEW_UPDATE_STATUS,
5729            OLD_ACTIVE_START_DATE,
5730            NEW_ACTIVE_START_DATE,
5731            OLD_ACTIVE_END_DATE,
5732            NEW_ACTIVE_END_DATE,
5733            FULL_DUMP_FLAG,
5734            CREATED_BY,
5735            CREATION_DATE,
5736            LAST_UPDATED_BY,
5737            LAST_UPDATE_DATE,
5738            LAST_UPDATE_LOGIN,
5739            OBJECT_VERSION_NUMBER,
5740            OLD_FA_SYNC_FLAG,
5741            NEW_FA_SYNC_FLAG
5742            ) VALUES (
5743            l_asset_hist_rec_tab.INSTANCE_ASSET_HISTORY_ID(i),
5744            decode( l_asset_hist_rec_tab.INSTANCE_ASSET_ID(i), FND_API.G_MISS_NUM, NULL, l_asset_hist_rec_tab.INSTANCE_ASSET_ID(i)),
5745            decode( l_asset_hist_rec_tab.TRANSACTION_ID(i), FND_API.G_MISS_NUM, NULL, l_asset_hist_rec_tab.TRANSACTION_ID(i)),
5746            decode( l_asset_hist_rec_tab.OLD_INSTANCE_ID(i), FND_API.G_MISS_NUM, NULL, l_asset_hist_rec_tab.OLD_INSTANCE_ID(i)),
5747            decode( l_asset_hist_rec_tab.NEW_INSTANCE_ID(i), FND_API.G_MISS_NUM, NULL, l_asset_hist_rec_tab.NEW_INSTANCE_ID(i)),
5748            decode( l_asset_hist_rec_tab.OLD_FA_ASSET_ID(i), FND_API.G_MISS_NUM, NULL, l_asset_hist_rec_tab.OLD_FA_ASSET_ID(i)),
5749            decode( l_asset_hist_rec_tab.NEW_FA_ASSET_ID(i), FND_API.G_MISS_NUM, NULL, l_asset_hist_rec_tab.NEW_FA_ASSET_ID(i)),
5750            decode( l_asset_hist_rec_tab.OLD_ASSET_QUANTITY(i), FND_API.G_MISS_NUM, NULL, l_asset_hist_rec_tab.OLD_ASSET_QUANTITY(i)),
5751            decode( l_asset_hist_rec_tab.NEW_ASSET_QUANTITY(i), FND_API.G_MISS_NUM, NULL, l_asset_hist_rec_tab.NEW_ASSET_QUANTITY(i)),
5752            decode( l_asset_hist_rec_tab.OLD_FA_BOOK_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_asset_hist_rec_tab.OLD_FA_BOOK_TYPE_CODE(i)),
5753            decode( l_asset_hist_rec_tab.NEW_FA_BOOK_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_asset_hist_rec_tab.NEW_FA_BOOK_TYPE_CODE(i)),
5754            decode( l_asset_hist_rec_tab.OLD_FA_LOCATION_ID(i), FND_API.G_MISS_NUM, NULL, l_asset_hist_rec_tab.OLD_FA_LOCATION_ID(i)),
5755            decode( l_asset_hist_rec_tab.NEW_FA_LOCATION_ID(i), FND_API.G_MISS_NUM, NULL, l_asset_hist_rec_tab.NEW_FA_LOCATION_ID(i)),
5756            decode( l_asset_hist_rec_tab.OLD_UPDATE_STATUS(i), FND_API.G_MISS_CHAR, NULL, l_asset_hist_rec_tab.OLD_UPDATE_STATUS(i)),
5757            decode( l_asset_hist_rec_tab.NEW_UPDATE_STATUS(i), FND_API.G_MISS_CHAR, NULL, l_asset_hist_rec_tab.NEW_UPDATE_STATUS(i)),
5758            decode( l_asset_hist_rec_tab.OLD_ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, NULL, l_asset_hist_rec_tab.OLD_ACTIVE_START_DATE(i)),
5759            decode( l_asset_hist_rec_tab.NEW_ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, NULL, l_asset_hist_rec_tab.NEW_ACTIVE_START_DATE(i)),
5760            decode( l_asset_hist_rec_tab.OLD_ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, NULL, l_asset_hist_rec_tab.OLD_ACTIVE_END_DATE(i)),
5761            decode( l_asset_hist_rec_tab.NEW_ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, NULL, l_asset_hist_rec_tab.NEW_ACTIVE_END_DATE(i)),
5762            'N',
5763            l_user_id,
5764            SYSDATE,
5765            l_user_id,
5766            SYSDATE,
5767            l_login_id,
5768            1,
5769            decode( l_asset_hist_rec_tab.OLD_FA_SYNC_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_asset_hist_rec_tab.OLD_FA_SYNC_FLAG(i)),
5770            decode( l_asset_hist_rec_tab.NEW_FA_SYNC_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_asset_hist_rec_tab.NEW_FA_SYNC_FLAG(i))
5771            );
5772    END IF;
5773    --
5774 EXCEPTION
5775    WHEN OTHERS THEN
5776       FND_File.Put_Line(Fnd_File.LOG,'Into when others of bulk_insert');
5777       FND_File.Put_Line(Fnd_File.LOG,'SQLERRM:'||substr(SQLERRM,1,200));
5778       csi_gen_utility_pvt.put_line('SQLERRM:'||substr(SQLERRM,1,200));
5779       ROLLBACK TO Bulk_Insert;
5780       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5781 END Bulk_Insert;
5782 --
5783 --
5784 /*----------------------------------------------------*/
5785 /* procedure name: create_item_instance               */
5786 /* description :   procedure used to                  */
5787 /*                 create item instances              */
5788 /*----------------------------------------------------*/
5789 
5790 PROCEDURE create_item_instance
5791  (
5792      p_api_version           IN     NUMBER
5793     ,p_commit                IN     VARCHAR2
5794     ,p_init_msg_list         IN     VARCHAR2
5795     ,p_validation_level      IN     NUMBER
5796     ,p_instance_tbl          IN OUT NOCOPY csi_datastructures_pub.instance_tbl
5797     ,p_ext_attrib_values_tbl IN OUT NOCOPY csi_datastructures_pub.extend_attrib_values_tbl
5801     ,p_org_assignments_tbl   IN OUT NOCOPY csi_datastructures_pub.organization_units_tbl
5798     ,p_party_tbl             IN OUT NOCOPY csi_datastructures_pub.party_tbl
5799     ,p_account_tbl           IN OUT NOCOPY csi_datastructures_pub.party_account_tbl
5800     ,p_pricing_attrib_tbl    IN OUT NOCOPY csi_datastructures_pub.pricing_attribs_tbl
5802     ,p_asset_assignment_tbl  IN OUT NOCOPY csi_datastructures_pub.instance_asset_tbl
5803     ,p_txn_tbl               IN OUT NOCOPY csi_datastructures_pub.transaction_tbl
5804     ,p_call_from_bom_expl    IN     VARCHAR2
5805     ,p_grp_error_tbl         OUT NOCOPY    csi_datastructures_pub.grp_error_tbl
5806     ,x_return_status         OUT NOCOPY    VARCHAR2
5807     ,x_msg_count             OUT NOCOPY    NUMBER
5808     ,x_msg_data              OUT NOCOPY    VARCHAR2
5809  )
5810 IS
5811     l_api_name                      CONSTANT VARCHAR2(30)   := 'CREATE_ITEM_INSTANCE';
5812     l_api_version                   CONSTANT NUMBER         := 1.0;
5813     l_debug_level                   NUMBER;
5814     l_flag                          VARCHAR2(1)             := 'N';
5815     l_serial_control                NUMBER;
5816     l_msg_data                      VARCHAR2(2000);
5817     l_msg_index                     NUMBER;
5818     l_msg_count                     NUMBER;
5819     l_transaction_type              VARCHAR2(10);
5820     l_contracts_status              VARCHAR2(3);
5821     l_account_id                    NUMBER;
5822     l_party_id                      NUMBER;
5823     l_party_src_tbl                 VARCHAR2(30);
5824     l_version_label                 VARCHAR2(30) := FND_PROFILE.VALUE('CSI_DEFAULT_VERSION_LABEL');
5825     l_temp_party_tbl                csi_datastructures_pub.party_tbl;
5826     l_temp_account_tbl              csi_datastructures_pub.party_account_tbl;
5827     l_temp_org_tbl                  csi_datastructures_pub.organization_units_tbl;
5828     l_temp_asset_tbl                csi_datastructures_pub.instance_asset_tbl;
5829     l_temp_ext_tbl                  csi_datastructures_pub.extend_attrib_values_tbl;
5830     l_build_party_tbl               csi_datastructures_pub.party_tbl;
5831     l_build_account_tbl             csi_datastructures_pub.party_account_tbl;
5832     l_build_org_tbl                 csi_datastructures_pub.organization_units_tbl;
5833     l_build_asset_tbl               csi_datastructures_pub.instance_asset_tbl;
5834     l_build_ext_tbl                 csi_datastructures_pub.extend_attrib_values_tbl;
5835     l_build_pricing_tbl             csi_datastructures_pub.pricing_attribs_tbl;
5836     l_build_ctr                     NUMBER := 0;
5837     l_party_count                   NUMBER;
5838     l_account_count                 NUMBER;
5839     l_org_count                     NUMBER;
5840     l_asset_count                   NUMBER;
5841     l_ext_count                     NUMBER;
5842     l_iface_id                      NUMBER;
5843     l_iface_error_text              VARCHAR2(2000);
5844     l_item_attribute_tbl            csi_item_instance_pvt.item_attribute_tbl;
5845     l_location_tbl                  csi_item_instance_pvt.location_tbl;
5846     l_generic_id_tbl                csi_item_instance_pvt.generic_id_tbl;
5847     l_lookup_tbl                    csi_item_instance_pvt.lookup_tbl;
5848     l_ins_count_rec                 csi_item_instance_pvt.ins_count_rec;
5849     l_internal_party_id             NUMBER;
5850     l_party_has_correct_acct        BOOLEAN := FALSE;
5851     l_party_source_tbl              csi_party_relationships_pvt.party_source_tbl;
5852     l_party_id_tbl                  csi_party_relationships_pvt.party_id_tbl;
5853     l_contact_tbl                   csi_party_relationships_pvt.contact_tbl;
5854     l_party_rel_type_tbl            csi_party_relationships_pvt.party_rel_type_tbl;
5855     l_party_count_rec               csi_party_relationships_pvt.party_count_rec;
5856     l_inst_party_tbl                csi_party_relationships_pvt.inst_party_tbl;
5857     l_acct_rel_type_tbl             csi_party_relationships_pvt.acct_rel_type_tbl;
5858     l_site_use_tbl                  csi_party_relationships_pvt.site_use_tbl;
5859     l_account_count_rec             csi_party_relationships_pvt.account_count_rec;
5860     l_acct_id_tbl                   csi_party_relationships_pvt.acct_id_tbl;
5861     l_grp_error_tbl                 csi_datastructures_pub.grp_error_tbl;
5862     l_ou_lookup_tbl                 csi_organization_unit_pvt.lookup_tbl;
5863     l_ou_count_rec                  csi_organization_unit_pvt.ou_count_rec;
5864     l_ou_id_tbl                     csi_organization_unit_pvt.ou_id_tbl;
5865     l_ext_id_tbl                    csi_item_instance_pvt.ext_id_tbl;
5866     l_ext_count_rec                 csi_item_instance_pvt.ext_count_rec;
5867     l_ext_attr_tbl                  csi_item_instance_pvt.ext_attr_tbl;
5868     l_ext_cat_tbl                   csi_item_instance_pvt.ext_cat_tbl;
5869     l_asset_lookup_tbl              csi_asset_pvt.lookup_tbl;
5870     l_asset_count_rec               csi_asset_pvt.asset_count_rec;
5871     l_asset_id_tbl                  csi_asset_pvt.asset_id_tbl;
5872     l_asset_loc_tbl                 csi_asset_pvt.asset_loc_tbl;
5873     --
5874     l_bulk_inst_tbl                 csi_datastructures_pub.instance_tbl;
5875     l_bulk_version_label_tbl        csi_datastructures_pub.version_label_tbl;
5876     l_bulk_ver_label_hist_tbl       csi_datastructures_pub.version_label_history_tbl;
5877     l_bulk_inst_hist_tbl            csi_datastructures_pub.instance_history_tbl;
5878     l_bulk_party_tbl                csi_datastructures_pub.party_tbl;
5879     l_bulk_party_hist_tbl           csi_datastructures_pub.party_history_tbl;
5880     l_bulk_acct_tbl                 csi_datastructures_pub.party_account_tbl;
5881     l_bulk_acct_hist_tbl            csi_datastructures_pub.account_history_tbl;
5882     l_bulk_txn_tbl                  csi_datastructures_pub.transaction_tbl;
5883     x_bulk_txn_tbl                  csi_datastructures_pub.transaction_tbl;
5884     l_owner_pty_acct_tbl            csi_item_instance_pvt.owner_pty_acct_tbl;
5885     l_bulk_org_units_tbl            csi_datastructures_pub.organization_units_tbl;
5886     l_bulk_org_units_hist_tbl       csi_datastructures_pub.org_units_history_tbl;
5890     l_bulk_ext_attrib_val_hist_tbl  csi_datastructures_pub.ext_attrib_val_history_tbl;
5887     l_bulk_pricing_tbl              csi_datastructures_pub.pricing_attribs_tbl;
5888     l_bulk_pricing_hist_tbl         csi_datastructures_pub.pricing_history_tbl;
5889     l_bulk_ext_attrib_values_tbl    csi_datastructures_pub.extend_attrib_values_tbl;
5891     l_bulk_asset_tbl                csi_datastructures_pub.instance_asset_tbl;
5892     l_bulk_asset_hist_tbl           csi_datastructures_pub.ins_asset_history_tbl;
5893     --
5894     l_bulk_inst_count               NUMBER := 0;
5895     l_bulk_pty_count                NUMBER := 0;
5896     l_bulk_acct_count               NUMBER := 0;
5897     l_bulk_org_count                NUMBER := 0;
5898     l_bulk_pricing_count            NUMBER := 0;
5899     l_bulk_ext_count                NUMBER := 0;
5900     l_bulk_asset_count              NUMBER := 0;
5901     l_owner_count                   NUMBER := 0;
5902     --
5903     l_txn_exists_tbl                dbms_sql.Number_Table;
5904     l_intf_id_array                 dbms_sql.Number_Table;
5905     l_inst_id_array                 dbms_sql.Number_Table;
5906     l_status_array                  dbms_sql.Varchar2_Table;
5907     l_error_array                   dbms_sql.Varchar2_Table;
5908     l_num_of_rows                   NUMBER;
5909     l_upd_stmt                      VARCHAR2(2000);
5910     l_dummy                         NUMBER;
5911     l_instance_status               VARCHAR2(50) := FND_PROFILE.VALUE('CSI_DEFAULT_INSTANCE_STATUS');
5912     l_status_id                     NUMBER;
5913     l_owner_party_id                NUMBER;
5914     l_vld_organization_id           NUMBER;
5915     l_location_id                   NUMBER;
5916 
5917 	-- Start of code for Bug 9249563
5918 	l_base_item_id           NUMBER;
5919 	l_counter_flag       NUMBER :=0;
5920 	l_ctr_item_associations_rec csi_ctr_datastructures_pub.ctr_item_associations_rec;
5921 
5922 	CURSOR CTR_GROUP(p_src_object_id IN NUMBER) IS
5923 	     SELECT  group_id,
5924             associated_to_group,
5925 			COUNTER_ID
5926 	      FROM  csi_ctr_item_associations
5927 	      WHERE  inventory_item_id = p_src_object_id;
5928 	-- End of code for Bug 9249563
5929     --
5930     TYPE NUMLIST IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
5931     l_del_inst_tbl                  NUMLIST;
5932     l_del_txn_tbl                   NUMLIST;
5933     l_del_count                     NUMBER := 0;
5934     --
5935     l_error_count                   NUMBER := 0;
5936     --
5937     TYPE CTR_REC IS RECORD
5938        (
5939          inventory_item_id     NUMBER
5940         ,ctr_template_exists   VARCHAR2(1)
5941        );
5942     TYPE CTR_TBL IS TABLE OF CTR_REC INDEX BY BINARY_INTEGER;
5943     --
5944     TYPE CONTACT_PARTY_REC IS RECORD
5945        (
5946          party_id         NUMBER
5947         ,contact_party_id NUMBER
5948         ,valid_flag       VARCHAR2(1)
5949        );
5950     TYPE CONTACT_PARTY_TBL IS TABLE OF CONTACT_PARTY_REC INDEX BY BINARY_INTEGER;
5951 
5952     -- Data Structure for bug 11693286
5953     TYPE HASH_VAL_TBL IS TABLE OF NUMLIST  INDEX BY VARCHAR2(500);
5954     l_party_hashtbl HASH_VAL_TBL;
5955     l_party_acct_hashtbl HASH_VAL_TBL;
5956     l_tmp_cnt NUMBER := 0;
5957     l_tmp_numlist NUMLIST;
5958     l_tmp_numlist2 NUMLIST;
5959     l_key VARCHAR2(500);
5960     l_party_index NUMBER;
5961     l_acct_index NUMBER;
5962 
5963     -- for debug purpose
5964      --l_i VARCHAR2(500);
5965      --l_j BINARY_INTEGER;
5966 
5967     -- bug 11693286 end
5968 
5969     --
5970     l_ctr_id                        dbms_sql.Number_Table;
5971     l_ctr_ins_id                    dbms_sql.Number_Table;
5972     l_ctr_item_id                   dbms_sql.Number_Table;
5973     l_ctr_org_id                    dbms_sql.Number_Table;
5974     l_counter                       NUMBER := 0;
5975     l_contact_party_tbl             CONTACT_PARTY_TBL;
5976     l_contact_party_count           NUMBER := 0;
5977     l_ctr_tbl                       CTR_TBL;
5978     l_ctr_count                     NUMBER := 0;
5979     l_exists_flag                   VARCHAR2(1);
5980     l_exists                        VARCHAR2(1);
5981     l_txn_ctr                       NUMBER;
5982     l_valid_flag                    VARCHAR2(1);
5983     l_ctr_exists_flag               VARCHAR2(1);
5984     l_ctr_instantiate               VARCHAR2(1);
5985     l_call_counters                 VARCHAR2(1) := FND_PROFILE.VALUE('CSI_COUNTERS_ENABLED');
5986     l_ctr_grp_id_template           NUMBER;
5987     l_ctr_grp_id_instance           NUMBER;
5988     l_ctr_id_template               csi_counter_template_pub.ctr_template_autoinst_tbl;
5989     l_ctr_id_instance               csi_counter_template_pub.counter_autoinstantiate_tbl;
5990     l_user_id                       NUMBER := FND_GLOBAL.USER_ID;
5991     l_login_id                      NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
5992     l_upd_txn_count                 NUMBER := 0;
5993     l_upd_txn_tbl                   dbms_sql.Number_Table;
5994     l_serial_control_code           number;
5995     --
5996     PROCESS_NEXT                    EXCEPTION;
5997     SKIP_ERROR                      EXCEPTION;
5998     OTHER_ERROR                     EXCEPTION; -- Added for bug 3579121(rel 11.5.9)
5999 
6000     CURSOR instance_csr (p_ins_id IN NUMBER) IS
6001     SELECT  *
6002     FROM    csi_item_instances
6003     WHERE   instance_id = p_ins_id;
6004     --
6005     l_instance_csr    instance_csr%ROWTYPE;
6006     --
6007     px_oks_txn_inst_tbl            oks_ibint_pub.txn_instance_tbl;
6008     l_ctr_group_id                 NUMBER;
6009     l_eam_item_type                NUMBER;
6010     --
6011 BEGIN
6012 
6013      -- Standard Start of API savepoint
6014      -- SAVEPOINT  create_item_instance;
6015 
6016      -- Check for freeze_flag in csi_install_parameters is set to 'Y'
6020      IF NOT FND_API.Compatible_API_Call (l_api_version,
6017      csi_utility_grp.check_ib_active;
6018 
6019      -- Standard call to check for call compatibility.
6021                                          p_api_version,
6022                                          l_api_name   ,
6023                                          G_PKG_NAME   )
6024      THEN
6025           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6026      END IF;
6027 
6028      -- Initialize message list if p_init_msg_list is set to TRUE.
6029      IF FND_API.to_Boolean( p_init_msg_list ) THEN
6030         FND_MSG_PUB.initialize;
6031      END IF;
6032 
6033      -- Initialize API return status to success
6034      x_return_status := FND_API.G_RET_STS_SUCCESS;
6035 
6036      -- Check the profile option debug_level for debug message reporting
6037      l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
6038 
6039      -- If debug_level = 1 then dump the procedure name
6040      IF (l_debug_level > 0) THEN
6041         csi_gen_utility_pvt.put_line( 'create_item_instance');
6042      END IF;
6043 
6044      -- If the debug level = 2 then dump all the parameters values.
6045      IF (l_debug_level > 1) THEN
6046 
6047             csi_gen_utility_pvt.put_line( 'create_item_instance' ||
6048                                           p_api_version         ||'-'||
6049                                           p_commit              ||'-'||
6050                                           p_init_msg_list       ||'-'||
6051                                           p_validation_level );
6052      END IF;
6053 
6054      /***** srramakr commented for bug # 3304439
6055      -- Check for the profile option and enable trace
6056              l_flag:=CSI_GEN_UTILITY_PVT.enable_trace(l_trace_flag => l_flag);
6057      -- End enable trace
6058      ****/
6059 
6060     -- Start API body
6061     l_ext_count_rec.ext_count := 0;
6062     -- Create an item instance after validating all the instance attributes.
6063     -- API also validates that exactly one owner is being created for the
6064     -- item instance
6065     -- Grab the internal party id from csi_installed paramters
6066     IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
6067        csi_gen_utility_pvt.populate_install_param_rec;
6068     END IF;
6069     --
6070     l_internal_party_id := csi_datastructures_pub.g_install_param_rec.internal_party_id;
6071     --
6072     IF l_internal_party_id IS NULL THEN
6073        FND_MESSAGE.SET_NAME('CSI','CSI_API_UNINSTALLED_PARAMETER');
6074        FND_MSG_PUB.ADD;
6075        RAISE OTHER_ERROR;
6076     END IF;
6077     --
6078     BEGIN
6079 	SELECT instance_status_id
6080 	INTO   l_status_id
6081 	FROM   csi_instance_statuses
6082 	WHERE  name = l_instance_status;
6083 	--
6084     EXCEPTION
6085 	WHEN OTHERS THEN
6086 	   FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_STATUS_ID');
6087 	   FND_MESSAGE.SET_TOKEN('INSTANCE_STATUS',l_instance_status);
6088 	   FND_MSG_PUB.Add;
6089 	  -- RAISE FND_API.G_EXC_ERROR;
6090        RAISE OTHER_ERROR; -- Added for bug 3579121 (rel 11.5.9)
6091     END;
6092     --
6093     IF (p_instance_tbl.count > 0) THEN
6094 
6095       --Bug 11693286 start
6096       -- Populating party and account data in temp tables
6097           IF (p_party_tbl.COUNT > 0) THEN --bug 13648101
6098            FOR tab_row IN p_party_tbl.FIRST .. p_party_tbl.LAST
6099 	   LOOP
6100 	     IF p_party_tbl.EXISTS(tab_row) THEN
6101                 IF l_party_hashtbl.EXISTS(p_party_tbl(tab_row).parent_tbl_index) THEN
6102 
6103                   l_tmp_numlist.DELETE;
6104 		  l_tmp_numlist := l_party_hashtbl(p_party_tbl(tab_row).parent_tbl_index);
6105 		  l_tmp_cnt :=  l_tmp_numlist.count;
6106 		  l_tmp_numlist(l_tmp_cnt + 1) := tab_row;
6107 
6108 		  l_party_hashtbl(p_party_tbl(tab_row).parent_tbl_index) := l_tmp_numlist;
6109                 ELSE
6110 
6111 		  l_tmp_numlist.DELETE;
6112 		  l_tmp_numlist(1) := tab_row;
6113 
6114 		  l_party_hashtbl(p_party_tbl(tab_row).parent_tbl_index) := l_tmp_numlist;
6115 
6116                 END IF;
6117 	     END IF;
6118            END LOOP;
6119 	  END IF; -- IF (p_party_tbl.COUNT > 0) THEN --bug 13648101
6120 
6121 
6122           IF (p_account_tbl.COUNT > 0) THEN --bug 13648101
6123            FOR l_acct_row IN p_account_tbl.FIRST .. p_account_tbl.LAST
6124 	   LOOP
6125                 IF p_account_tbl.EXISTS(l_acct_row) THEN
6126 
6127 	          l_key := p_party_tbl(p_account_tbl(l_acct_row).parent_tbl_index).parent_tbl_index
6128 		           ||'#'
6129 			   ||p_account_tbl(l_acct_row).parent_tbl_index;
6130 
6131 		  IF l_party_acct_hashtbl.EXISTS(l_key) THEN
6132 
6133  		    l_tmp_numlist.DELETE;
6134 		    l_tmp_numlist := l_party_acct_hashtbl(l_key);
6135 		    l_tmp_cnt :=  l_tmp_numlist.count;
6136 		    l_tmp_numlist(l_tmp_cnt + 1) := l_acct_row;
6137 
6138 		    l_party_acct_hashtbl(l_key) := l_tmp_numlist;
6139 
6140 		  ELSE
6141 		    l_tmp_numlist.DELETE;
6142 		    l_tmp_numlist(1) := l_acct_row;
6143 
6144 		    l_party_acct_hashtbl(l_key) := l_tmp_numlist;
6145 		  END IF;
6146 
6147 		END IF;
6148 
6149 	   END LOOP;
6150 	  END IF; --IF (p_account_tbl.COUNT > 0) THEN --bug 13648101
6151 
6152       -- dumping data for debugging
6153        /*
6154        IF (l_debug_level > 0) THEN
6155         csi_gen_utility_pvt.put_line( 'Tmp hashtbl data dump');
6156 	csi_gen_utility_pvt.put_line( 'Table : l_party_hashtbl');
6157 
6158 	  l_i :=  l_party_hashtbl.first;
6159 
6160          WHILE l_i IS NOT NULL
6161          LOOP
6162 
6163            csi_gen_utility_pvt.put_line( 'l_party_hashtbl index - '||l_i);
6164 	   csi_gen_utility_pvt.put_line( '##############################');
6165            l_tmp_numlist.DELETE;
6166 
6167            l_tmp_numlist := l_party_hashtbl(l_i);
6168            l_j :=  l_tmp_numlist.first;
6169 
6170            WHILE l_j IS NOT NULL  LOOP
6171 	    csi_gen_utility_pvt.put_line(l_j || ' - ' || l_tmp_numlist(l_j));
6172             l_j :=  l_tmp_numlist.NEXT(l_j);
6173            END LOOP;
6174 
6175            csi_gen_utility_pvt.put_line( '##############################');
6176            l_i := l_party_hashtbl.NEXT(l_i);
6177           END LOOP;
6178 
6179 	csi_gen_utility_pvt.put_line( 'Table : l_party_acct_hashtbl');
6180 
6181 	  l_i :=  l_party_acct_hashtbl.first;
6182 
6183          WHILE l_i IS NOT NULL
6184          LOOP
6185 
6186            csi_gen_utility_pvt.put_line( 'l_party_acct_hashtbl index - '||l_i);
6187 	   csi_gen_utility_pvt.put_line( '##############################');
6188            l_tmp_numlist.DELETE;
6189 
6190            l_tmp_numlist := l_party_acct_hashtbl(l_i);
6191            l_j :=  l_tmp_numlist.first;
6192 
6193            WHILE l_j IS NOT NULL  LOOP
6194 	    csi_gen_utility_pvt.put_line(l_j || ' - ' || l_tmp_numlist(l_j));
6195             l_j :=  l_tmp_numlist.NEXT(l_j);
6196            END LOOP;
6197 
6198            csi_gen_utility_pvt.put_line( '##############################');
6199            l_i := l_party_acct_hashtbl.NEXT(l_i);
6200           END LOOP;
6201 
6202 
6203        END IF;
6204        */
6205       --end bug 11693286
6206 
6207       FOR inst_tab_row IN p_instance_tbl.FIRST .. p_instance_tbl.LAST
6208       LOOP
6209       BEGIN
6210        IF p_instance_tbl.EXISTS(inst_tab_row) THEN
6211           FND_MSG_PUB.initialize;
6212           csi_gen_utility_pvt.dump_instance_rec(p_instance_tbl(inst_tab_row));
6213 
6214           -- Standard Start of API savepoint
6215           SAVEPOINT create_item_instance;
6216           l_iface_id := p_instance_tbl(inst_tab_row).interface_id;
6217           l_iface_error_text := NULL;
6218           l_intf_id_array(inst_tab_row) := p_instance_tbl(inst_tab_row).interface_id;
6219           l_grp_error_tbl(inst_tab_row).group_inst_num := inst_tab_row;
6220           --
6221           l_build_party_tbl.DELETE;
6222           l_build_account_tbl.DELETE;
6223           l_build_org_tbl.DELETE;
6224           l_build_pricing_tbl.DELETE;
6225           l_build_ext_tbl.DELETE;
6226           l_build_asset_tbl.DELETE;
6227           --
6228           IF NOT p_txn_tbl.EXISTS(inst_tab_row) THEN
6229              l_iface_error_text := 'Unable to find the corresponding Transaction record';
6230              RAISE SKIP_ERROR;
6231           END IF;
6232           --
6233           --dump the operating units table associated to the instance
6234          IF l_debug_level > 0 THEN
6235 	    IF p_org_assignments_tbl.count > 0 THEN
6236 	       FOR tab_row IN p_org_assignments_tbl.FIRST .. p_org_assignments_tbl.LAST
6237 	       LOOP
6238 		  IF p_org_assignments_tbl.EXISTS(tab_row) THEN
6239 		     IF p_org_assignments_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
6240 			csi_gen_utility_pvt.dump_organization_unit_rec(p_org_assignments_tbl(tab_row));
6241 		     END IF;
6242 		  END IF;
6243 	       END LOOP;
6244 	    END IF;
6245 	    --dump the pricing attributes table associated to the instance
6246 	    IF p_pricing_attrib_tbl.count > 0 THEN
6247 	      FOR tab_row IN p_pricing_attrib_tbl.FIRST .. p_pricing_attrib_tbl.LAST
6248 	      LOOP
6249 	       IF p_pricing_attrib_tbl.EXISTS(tab_row) THEN
6250 		IF p_pricing_attrib_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
6251 		   csi_gen_utility_pvt.dump_pricing_attribs_rec(p_pricing_attrib_tbl(tab_row));
6252 		END IF;
6253 	       END IF;
6254 	      END LOOP;
6255 	    END IF;
6256 	    --dump the extended attributes table associated to the instance
6257 	    IF p_ext_attrib_values_tbl.count > 0 THEN
6258 	      FOR tab_row IN p_ext_attrib_values_tbl.FIRST .. p_ext_attrib_values_tbl.LAST
6259 	      LOOP
6260 	       IF p_ext_attrib_values_tbl.EXISTS(tab_row) THEN
6261 		IF p_ext_attrib_values_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
6262 		   csi_gen_utility_pvt.dump_ext_attrib_values_rec(p_ext_attrib_values_tbl(tab_row));
6263 		END IF;
6264 	       END IF;
6265 	      END LOOP;
6266 	    END IF;
6267 	    --dump the assets table associated to the instance
6268 	    IF (p_asset_assignment_tbl.count > 0) THEN
6269 	      FOR tab_row IN p_asset_assignment_tbl.FIRST .. p_asset_assignment_tbl.LAST
6270 	      LOOP
6271 		IF p_asset_assignment_tbl.EXISTS(tab_row) THEN
6272 		 IF p_asset_assignment_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
6273 		    csi_gen_utility_pvt.dump_instance_asset_rec(p_asset_assignment_tbl(tab_row));
6274 		 END IF;
6275 		END IF;
6276 	      END LOOP;
6277 	    END IF;
6278 
6279 	    --dump the parties and corresponding accounts table that are associated to an instance
6280 	    IF (p_party_tbl.count > 0) THEN
6281 	      FOR tab_row IN p_party_tbl.FIRST .. p_party_tbl.LAST
6282 	      LOOP
6283 		IF p_party_tbl.EXISTS(tab_row) THEN
6284 		   IF p_party_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
6285 		      csi_gen_utility_pvt.dump_party_rec(p_party_tbl(tab_row));
6286 		      IF p_account_tbl.count > 0 THEN
6287 			 FOR acct_tab_row in p_account_tbl.FIRST .. p_account_tbl.LAST
6288 			 LOOP
6289 			    IF p_account_tbl.EXISTS(acct_tab_row) THEN
6290 			       IF p_account_tbl(acct_tab_row).parent_tbl_index = tab_row THEN
6291 				  csi_gen_utility_pvt.dump_party_account_rec(p_account_tbl(acct_tab_row));
6292 			       END IF;
6293 			    END IF;
6294 			 END LOOP;
6295 		      END IF;
6296 		    END IF;
6297 		 END IF;
6298 	      END LOOP;
6299 	    END IF;
6300         END IF; -- dump if l_debug_level > 0
6301          --
6302        ELSE
6303           RAISE PROCESS_NEXT;
6304        END IF; --p_instance_tbl.EXISTS(inst_tab_row)
6305        -- Compress the Party Tbl and pass it to the Create API.
6306        l_temp_party_tbl.DELETE;
6307        l_party_count := 0;
6308        --
6309 
6310        --bug 11693286  start
6311        IF l_party_hashtbl.EXISTS(inst_tab_row) THEN
6312 
6313            l_tmp_numlist.DELETE;
6314            l_tmp_numlist := l_party_hashtbl(inst_tab_row);
6315 
6316            FOR tab_row IN l_tmp_numlist.FIRST .. l_tmp_numlist.LAST
6317 	   LOOP
6318              IF p_party_tbl.EXISTS(l_tmp_numlist(tab_row)) THEN
6319                  l_party_count := l_party_count + 1;
6320                  l_temp_party_tbl(l_party_count) := p_party_tbl(l_tmp_numlist(tab_row));
6321 	     END IF;
6322 	   END LOOP;
6323        END IF;
6324 
6325        /*
6326        IF (p_party_tbl.count > 0) THEN
6327            FOR tab_row IN p_party_tbl.FIRST .. p_party_tbl.LAST
6328            LOOP
6329               IF p_party_tbl.EXISTS(tab_row) THEN
6330                  IF p_party_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
6331                     l_party_count := l_party_count + 1;
6332                     l_temp_party_tbl(l_party_count) := p_party_tbl(tab_row);
6333                  END IF;
6334               END IF;
6335            END LOOP;
6336        END IF;
6337        */
6338 
6339        -- bug 11693286 end
6340          --
6341          -- Compress Asset Tbl and pass it to the Create API.
6342          l_asset_count := 0;
6343          l_temp_asset_tbl.DELETE;
6344          IF (p_asset_assignment_tbl.count > 0) THEN
6345             FOR tab_row IN p_asset_assignment_tbl.FIRST .. p_asset_assignment_tbl.LAST
6346             LOOP
6347                IF p_asset_assignment_tbl.EXISTS(tab_row) THEN
6348                   IF p_asset_assignment_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
6349                      l_asset_count := l_asset_count + 1;
6350                      l_temp_asset_tbl(l_asset_count) := p_asset_assignment_tbl(tab_row);
6351                   END IF;
6352                END IF;
6353             END LOOP;
6354          END IF;
6355          --
6356          IF p_instance_tbl(inst_tab_row).instance_status_id IS NULL OR
6357             p_instance_tbl(inst_tab_row).instance_status_id = FND_API.G_MISS_NUM THEN
6358             p_instance_tbl(inst_tab_row).instance_status_id := l_status_id;
6359          END IF;
6360          --
6361          -- If version label is null, then we need read the the default value from the profile option
6362          IF ((p_instance_tbl(inst_tab_row).version_label IS NULL) OR
6363              (p_instance_tbl(inst_tab_row).version_label = FND_API.G_MISS_CHAR)) THEN
6364              IF l_version_label IS NULL THEN
6365                 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_VERSION_LABEL');
6366                 FND_MSG_PUB.ADD;
6367                 l_msg_index := 1;
6368                 FND_MSG_PUB.Count_And_Get
6369                     (p_count  =>  x_msg_count,
6370                      p_data   =>  x_msg_data
6371                     );
6372                 l_msg_count := x_msg_count;
6373                 WHILE l_msg_count > 0 LOOP
6374                    x_msg_data := FND_MSG_PUB.GET
6375 		     (  l_msg_index,
6376 			FND_API.G_FALSE );
6377 		   csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
6378 		   l_msg_index := l_msg_index + 1;
6379 		   l_msg_count := l_msg_count - 1;
6380                 END LOOP;
6381 		l_iface_error_text := substr(x_msg_data,1,2000);
6382 		RAISE SKIP_ERROR;
6383              ELSE
6384                 p_instance_tbl(inst_tab_row).version_label := l_version_label;
6385              END IF;
6386          END IF;
6387          --
6391                                        p_instance_tbl(inst_tab_row).inv_master_organization_id;
6388          IF p_instance_tbl(inst_tab_row).vld_organization_id IS NULL OR
6389             p_instance_tbl(inst_tab_row).vld_organization_id = FND_API.G_MISS_NUM THEN
6390             p_instance_tbl(inst_tab_row).vld_organization_id :=
6392          END IF;
6393          -- Validate Serial uniqueness within this batch
6394          IF p_instance_tbl(inst_tab_row).serial_number IS NOT NULL AND
6395             p_instance_tbl(inst_tab_row).serial_number <> FND_API.G_MISS_CHAR AND
6396             p_instance_tbl(inst_tab_row).vld_organization_id IS NOT NULL AND
6397             p_instance_tbl(inst_tab_row).vld_organization_id <> FND_API.G_MISS_NUM AND
6398             p_instance_tbl(inst_tab_row).inventory_item_id IS NOT NULL AND
6399             p_instance_tbl(inst_tab_row).inventory_item_id <> FND_API.G_MISS_NUM THEN
6400             IF NOT Valid_Serial_Number
6401                 ( p_instance_rec   =>  p_instance_tbl(inst_tab_row),
6402                   p_instance_tbl   =>  p_instance_tbl,
6403                   p_inst_tab_row => inst_tab_row) THEN --bug 9227016
6404                l_msg_index := 1;
6405                FND_MSG_PUB.Count_And_Get
6406                     (p_count  =>  x_msg_count,
6407                      p_data   =>  x_msg_data
6408                     );
6409                l_msg_count := x_msg_count;
6410                WHILE l_msg_count > 0 LOOP
6411                      x_msg_data := FND_MSG_PUB.GET
6412                        (  l_msg_index,
6413                           FND_API.G_FALSE );
6414                       csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
6415                      l_msg_index := l_msg_index + 1;
6416                      l_msg_count := l_msg_count - 1;
6417                END LOOP;
6418                l_iface_error_text := substr(x_msg_data,1,2000);
6419 	       RAISE SKIP_ERROR;
6420             END IF;
6421          END IF;
6422          --
6423          -- Validate Lot uniqueness within this batch
6424          IF p_instance_tbl(inst_tab_row).lot_number IS NOT NULL AND
6425             p_instance_tbl(inst_tab_row).lot_number <> FND_API.G_MISS_CHAR AND
6426             p_instance_tbl(inst_tab_row).vld_organization_id IS NOT NULL AND
6427             p_instance_tbl(inst_tab_row).vld_organization_id <> FND_API.G_MISS_NUM AND
6428             p_instance_tbl(inst_tab_row).inventory_item_id IS NOT NULL AND
6429             p_instance_tbl(inst_tab_row).inventory_item_id <> FND_API.G_MISS_NUM THEN
6430             IF NOT Valid_Lot_Number
6431                 ( p_instance_rec   =>  p_instance_tbl(inst_tab_row),
6432                   p_instance_tbl   =>  p_instance_tbl) THEN
6433                l_msg_index := 1;
6434                FND_MSG_PUB.Count_And_Get
6435                     (p_count  =>  x_msg_count,
6436                      p_data   =>  x_msg_data
6437                     );
6438                l_msg_count := x_msg_count;
6439                WHILE l_msg_count > 0 LOOP
6440                      x_msg_data := FND_MSG_PUB.GET
6441                        (  l_msg_index,
6442                           FND_API.G_FALSE );
6443                       csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
6444                      l_msg_index := l_msg_index + 1;
6445                      l_msg_count := l_msg_count - 1;
6446                END LOOP;
6447                l_iface_error_text := substr(x_msg_data,1,2000);
6448 	       RAISE SKIP_ERROR;
6449             END IF;
6450          END IF;
6451          --
6452 
6453       SELECT eam_item_type,
6454              serial_number_control_code
6455       INTO   l_eam_item_type,
6456              l_serial_control_code
6457       FROM   mtl_system_items
6458       WHERE  inventory_item_id = p_instance_tbl(inst_tab_row).inventory_item_id
6459       AND    organization_id   = p_instance_tbl(inst_tab_row).vld_organization_id;
6460 
6461       IF l_eam_item_type in (1, 3) AND l_serial_control_code <> 1 THEN
6462          p_instance_tbl(inst_tab_row).instance_condition_id := 1;
6463       END IF;
6464 
6465 
6466         -- Calling Pre Customer User Hook -- added for bug 9146060 by HYONLEE
6467 
6468       BEGIN
6469         IF JTF_USR_HKS.Ok_to_execute(G_PKG_NAME, l_api_name, 'B', 'C' ) THEN
6470            csi_gen_utility_pvt.put_line('Calling CSI_ITEM_INSTANCE_CUHK.Create_Item_Instance_Pre ..');
6471           CSI_ITEM_INSTANCE_CUHK.Create_Item_Instance_Pre
6472             (
6473             p_api_version               => 1.0
6474             ,p_commit                   => fnd_api.g_false
6475             ,p_init_msg_list            => fnd_api.g_false
6476             ,p_validation_level         => fnd_api.g_valid_level_full
6477             ,p_instance_rec             => p_instance_tbl(inst_tab_row)
6478             ,p_ext_attrib_values_tbl    => p_ext_attrib_values_tbl
6479             ,p_party_tbl                => l_temp_party_tbl
6480             ,p_account_tbl              => p_account_tbl
6481             ,p_pricing_attrib_tbl       => p_pricing_attrib_tbl
6482             ,p_org_assignments_tbl      => p_org_assignments_tbl
6483             ,p_asset_assignment_tbl     => p_asset_assignment_tbl
6484             ,p_txn_rec                  => p_txn_tbl(inst_tab_row)
6485             ,x_return_status            => x_return_status
6486             ,x_msg_count                => x_msg_count
6487             ,x_msg_data                 => x_msg_data
6488          );
6489           --
6490           IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
6491               l_msg_index := 1;
6492               l_msg_count := x_msg_count;
6493               WHILE l_msg_count > 0 LOOP
6494                       x_msg_data := FND_MSG_PUB.GET
6495                                   (  l_msg_index,
6496                                      FND_API.G_FALSE );
6497                   csi_gen_utility_pvt.put_line('ERROR FROM CSI_ITEM_INSTANCE_CUHK.Create_Item_Instance_Pre API ');
6498                   csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
6502              RAISE FND_API.G_EXC_ERROR;
6499                   l_msg_index := l_msg_index + 1;
6500                   l_msg_count := l_msg_count - 1;
6501               END LOOP;
6503            END IF;
6504           --
6505         END IF;
6506       EXCEPTION
6507         WHEN OTHERS THEN
6508            csi_gen_utility_pvt.put_line('ERROR FROM JTF_USR_HKS.Ok_to_execute API Create Pre Customer');
6509            RAISE FND_API.G_EXC_ERROR;
6510       END;
6511 
6512      -- Calling Pre Vertical User Hook -- added for bug 9146060 by HYONLEE
6513       BEGIN
6514 
6515         IF JTF_USR_HKS.Ok_to_execute( G_PKG_NAME, l_api_name, 'B', 'V' )  THEN
6516            csi_gen_utility_pvt.put_line('Calling CSI_ITEM_INSTANCE_VUHK.Create_Item_Instance_Pre ..');
6517           CSI_ITEM_INSTANCE_VUHK.Create_Item_Instance_Pre
6518             (
6519             p_api_version               => 1.0
6520             ,p_commit                   => fnd_api.g_false
6521             ,p_init_msg_list            => fnd_api.g_false
6522             ,p_validation_level         => fnd_api.g_valid_level_full
6523             ,p_instance_rec             => p_instance_tbl(inst_tab_row)
6524             ,p_ext_attrib_values_tbl    => p_ext_attrib_values_tbl
6525             ,p_party_tbl                => l_temp_party_tbl
6526             ,p_account_tbl              => p_account_tbl
6527             ,p_pricing_attrib_tbl       => p_pricing_attrib_tbl
6528             ,p_org_assignments_tbl      => p_org_assignments_tbl
6529             ,p_asset_assignment_tbl     => p_asset_assignment_tbl
6530             ,p_txn_rec                  => p_txn_tbl(inst_tab_row)
6531             ,x_return_status            => x_return_status
6532             ,x_msg_count                => x_msg_count
6533             ,x_msg_data                 => x_msg_data
6534          );
6535           --
6536           IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
6537               l_msg_index := 1;
6538               l_msg_count := x_msg_count;
6539               WHILE l_msg_count > 0 LOOP
6540                       x_msg_data := FND_MSG_PUB.GET
6541                                   (  l_msg_index,
6542                                      FND_API.G_FALSE );
6543                   csi_gen_utility_pvt.put_line('ERROR FROM CSI_ITEM_INSTANCE_VUHK.Create_Item_Instance_Pre API ');
6544                   csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
6545                   l_msg_index := l_msg_index + 1;
6546                   l_msg_count := l_msg_count - 1;
6547               END LOOP;
6548              RAISE FND_API.G_EXC_ERROR;
6549            END IF;
6550           --
6551         END IF;
6552 
6553       EXCEPTION
6554         WHEN OTHERS THEN
6555            csi_gen_utility_pvt.put_line('ERROR FROM JTF_USR_HKS.Ok_to_execute API Create Pre Vertical');
6556            RAISE FND_API.G_EXC_ERROR;
6557       END;
6558 
6559     -- End of PRE User Hooks
6560          csi_item_instance_pvt.create_item_instance
6561            (
6562             p_api_version        => p_api_version
6563            ,p_commit             => fnd_api.g_false
6564            ,p_init_msg_list      => p_init_msg_list
6565            ,p_validation_level   => p_validation_level
6566            ,p_instance_rec       => p_instance_tbl(inst_tab_row)
6567            ,p_txn_rec            => p_txn_tbl(inst_tab_row)
6568            ,p_party_tbl          => l_temp_party_tbl
6569            ,p_asset_tbl          => l_temp_asset_tbl
6570            ,x_return_status      => x_return_status
6571            ,x_msg_count          => x_msg_count
6572            ,x_msg_data           => x_msg_data
6573            ,p_item_attribute_tbl => l_item_attribute_tbl
6574            ,p_location_tbl       => l_location_tbl
6575            ,p_generic_id_tbl     => l_generic_id_tbl
6576            ,p_lookup_tbl         => l_lookup_tbl
6577            ,p_ins_count_rec      => l_ins_count_rec
6578            ,p_called_from_grp    => fnd_api.g_true
6579            ,p_internal_party_id  => l_internal_party_id
6580            );
6581          IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
6582             csi_gen_utility_pvt.put_line( ' Error from CSI_ITEM_INSTANCE_PVT.. ');
6583             l_msg_index := 1;
6584             l_msg_count := x_msg_count;
6585             WHILE l_msg_count > 0 LOOP
6586                    x_msg_data := FND_MSG_PUB.GET
6587                        (  l_msg_index,
6588                           FND_API.G_FALSE );
6589                       csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
6590                      l_msg_index := l_msg_index + 1;
6591                      l_msg_count := l_msg_count - 1;
6592             END LOOP;
6593             l_iface_error_text := substr(x_msg_data,1,2000);
6594             RAISE SKIP_ERROR;
6595          END IF;
6596 
6597      /* Commented for Bug 14684073  by RASRAJA
6598 	    Calling Post Customer User Hook -- added for bug 9146060 by HYONLEE
6599           BEGIN
6600 
6601              IF JTF_USR_HKS.Ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'C' ) THEN
6602                csi_gen_utility_pvt.put_line('Calling  CSI_ITEM_INSTANCE_CUHK.Create_Item_Instance_Post ..');
6603                 CSI_ITEM_INSTANCE_CUHK.Create_Item_Instance_Post
6604                    (
6605                     p_api_version               => 1.0
6606                     ,p_commit                   => fnd_api.g_false
6607                     ,p_init_msg_list            => fnd_api.g_false
6608                     ,p_validation_level         => fnd_api.g_valid_level_full
6609                     ,p_instance_rec             => p_instance_tbl(inst_tab_row)
6610                     ,p_ext_attrib_values_tbl    => p_ext_attrib_values_tbl
6611                     ,p_party_tbl                => l_temp_party_tbl
6612                     ,p_account_tbl              => p_account_tbl
6613                     ,p_pricing_attrib_tbl       => p_pricing_attrib_tbl
6614                     ,p_org_assignments_tbl      => p_org_assignments_tbl
6618                     ,x_msg_count                => x_msg_count
6615                     ,p_asset_assignment_tbl     => p_asset_assignment_tbl
6616                     ,p_txn_rec                  => p_txn_tbl(inst_tab_row)
6617                     ,x_return_status            => x_return_status
6619                     ,x_msg_data                 => x_msg_data
6620               );
6621                 --
6622                 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
6623                   l_msg_index := 1;
6624                   l_msg_count := x_msg_count;
6625                   WHILE l_msg_count > 0 LOOP
6626                           x_msg_data := FND_MSG_PUB.GET
6627                                       (  l_msg_index,
6628                                          FND_API.G_FALSE );
6629                       csi_gen_utility_pvt.put_line('ERROR FROM CSI_ITEM_INSTANCE_CUHK.Create_Item_Instance_Post API ');
6630                       csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
6631                       l_msg_index := l_msg_index + 1;
6632                       l_msg_count := l_msg_count - 1;
6633                   END LOOP;
6634                  RAISE FND_API.G_EXC_ERROR;
6635                END IF;
6636                 --
6637             END IF;
6638           EXCEPTION
6639             WHEN OTHERS THEN
6640                csi_gen_utility_pvt.put_line('ERROR FROM JTF_USR_HKS.Ok_to_execute API Create Post Customer');
6641                RAISE FND_API.G_EXC_ERROR;
6642           END; */
6643 
6644 
6645          -- Call the create_party_relationship API to create instance-to-party
6646          -- relationships.
6647          IF ((p_instance_tbl(inst_tab_row).instance_id IS NOT NULL) AND
6648              (p_instance_tbl(inst_tab_row).instance_id <> FND_API.G_MISS_NUM)) THEN
6649 
6650 	       -- bug 11693286
6651 
6652             --IF (p_party_tbl.count > 0) THEN
6653 
6654     	    IF l_party_hashtbl.EXISTS(inst_tab_row) THEN
6655 		 l_tmp_numlist.DELETE;
6656                  l_tmp_numlist := l_party_hashtbl(inst_tab_row);
6657 
6658                FOR tab_row IN l_tmp_numlist.FIRST .. l_tmp_numlist.LAST
6659 	       LOOP
6660 	          l_party_index := l_tmp_numlist(tab_row);
6661 
6662 		-- bug 11693286 end
6663 		-- Replacing l_acct_row with l_acct_index and tab_row with l_party_index
6664 		-- for bug 11693286
6665 
6666                --FOR tab_row IN p_party_tbl.FIRST .. p_party_tbl.LAST
6667                --LOOP
6668                   IF p_party_tbl.EXISTS(l_party_index) THEN
6669                     IF p_party_tbl(l_party_index).parent_tbl_index = inst_tab_row THEN
6670                        p_party_tbl(l_party_index).instance_id := p_instance_tbl(inst_tab_row).instance_id;
6671                        IF ((p_party_tbl(l_party_index).active_start_date IS NULL) OR
6672                            (p_party_tbl(l_party_index).active_start_date = FND_API.G_MISS_DATE)) THEN
6673                             p_party_tbl(l_party_index).active_start_date := p_instance_tbl(inst_tab_row).active_start_date;
6674                        END IF;
6675                        IF ((p_party_tbl(l_party_index).party_source_table = 'HZ_PARTIES') AND
6676                            (p_party_tbl(l_party_index).party_id <> l_internal_party_id) AND
6677                            (p_party_tbl(l_party_index).relationship_type_code = 'OWNER')) THEN
6678                            l_party_has_correct_acct := FALSE;
6679                           IF p_account_tbl.COUNT > 0 THEN
6680                              FOR l_acct_row IN  p_account_tbl.FIRST..p_account_tbl.LAST
6681                              LOOP
6682                              -- Check if the party and its accounts are mapped
6683 			     --Commenting for bug 7010294
6684 			      --  IF ((p_account_tbl(l_acct_row).parent_tbl_index = tab_row) AND
6685                                IF (p_account_tbl(l_acct_row).relationship_type_code = 'OWNER') THEN
6686 			            l_party_has_correct_acct := TRUE;
6687                                     exit;
6688                                 END IF;
6689                              END LOOP;
6690                           END IF;
6691                           -- Raise an exception if external parties don't have an owner account
6692                           IF NOT l_party_has_correct_acct THEN
6693                              l_iface_error_text := 'Invalid OWNER Party Account for Party ID '
6694                                                           ||to_char(p_party_tbl(l_party_index).party_id);
6695                              csi_gen_utility_pvt.put_line(l_iface_error_text);
6696                              RAISE SKIP_ERROR;
6697                           END IF;
6698                        END IF; -- Party source table is HZ_PARITES and External OWNER Party check
6699                        --
6700                        -- Use l_temp_party_tbl which belongs to the current instance and validate the
6701                        -- Instance-Party business rules.
6702                        IF p_party_tbl(l_party_index).contact_flag = 'Y' THEN
6703                           IF p_party_tbl(l_party_index).contact_parent_tbl_index IS NULL OR
6704                              p_party_tbl(l_party_index).contact_parent_tbl_index = FND_API.G_MISS_NUM THEN
6705                              l_iface_error_text := 'Contact_parent_tbl_index should be passed for contacts';
6706                              csi_gen_utility_pvt.put_line(l_iface_error_text);
6707                              RAISE SKIP_ERROR;
6708                           END IF;
6709                           --
6710                           IF p_party_tbl(l_party_index).contact_parent_tbl_index = l_party_index THEN
6711                              l_iface_error_text := 'Contact Party cannot be a contact of itself ';
6712                              csi_gen_utility_pvt.put_line(l_iface_error_text);
6713                              RAISE SKIP_ERROR;
6714                           END IF;
6715                           --
6716                           IF NOT p_party_tbl.EXISTS((p_party_tbl(l_party_index).contact_parent_tbl_index)) THEN
6720                           ELSE
6717                              l_iface_error_text := 'Contact_parent_tbl_index passed is not valid ';
6718                              csi_gen_utility_pvt.put_line(l_iface_error_text);
6719                              RAISE SKIP_ERROR;
6721                              -- Check if the contact_party and the current party belong to the same instance
6722                              IF p_party_tbl((p_party_tbl(l_party_index).contact_parent_tbl_index)).parent_tbl_index <>
6723                                 p_party_tbl(l_party_index).parent_tbl_index THEN
6724                                 l_iface_error_text := 'Contact Party and the Current Party should belong to the same Instance';
6725                                 csi_gen_utility_pvt.put_line(l_iface_error_text);
6726                                 RAISE SKIP_ERROR;
6727                              END IF;
6728                              l_party_id := p_party_tbl((p_party_tbl(l_party_index).contact_parent_tbl_index)).party_id;
6729                              l_party_src_tbl := p_party_tbl((p_party_tbl(l_party_index).contact_parent_tbl_index)).party_source_table;
6730                           END IF;
6731                           -- check whether the contact_party_id is related to the parent party_id
6732                           IF p_party_tbl(l_party_index).party_source_table = 'HZ_PARTIES' AND
6733                              l_party_src_tbl = 'HZ_PARTIES' THEN
6734                              l_exists_flag := 'N';
6735                              l_valid_flag := 'Y';
6736                              IF l_contact_party_tbl.count > 0 THEN
6737                                 FOR con_pty_row in l_contact_party_tbl.FIRST .. l_contact_party_tbl.LAST LOOP
6738                                    IF p_party_tbl(l_party_index).party_id = l_contact_party_tbl(con_pty_row).contact_party_id AND
6739                                       l_party_id = l_contact_party_tbl(con_pty_row).party_id THEN
6740                                       l_exists_flag := 'Y';
6741                                       l_valid_flag := l_contact_party_tbl(con_pty_row).valid_flag;
6742                                       exit;
6743                                    END IF;
6744                                 END LOOP;
6745                                 --
6746                                 IF l_valid_flag <> 'Y' THEN
6747                                    l_iface_error_text := 'Invalid Contact Party ID '||to_char(p_party_tbl(l_party_index).party_id)
6748                                                           ||' for party ID '||to_char(l_party_id);
6749                                    csi_gen_utility_pvt.put_line(l_iface_error_text);
6750                                    RAISE SKIP_ERROR;
6751                                 END IF;
6752                              END IF;
6753                              --
6754                              IF l_exists_flag <> 'Y' THEN
6755                                 l_contact_party_count := l_contact_party_count + 1;
6756                                 l_contact_party_tbl(l_contact_party_count).contact_party_id := p_party_tbl(l_party_index).party_id;
6757                                 l_contact_party_tbl(l_contact_party_count).party_id := l_party_id;
6758                                 l_contact_party_tbl(l_contact_party_count).valid_flag := 'Y';
6759                              END IF;
6760                           END IF; -- Both party source tables are 'HZ_PARTIES' check
6761                        END IF; -- contact_flag check
6762                        --
6763                        IF NOT ( Check_Inst_Party_Rules
6764                                    ( p_party_tbl  => l_temp_party_tbl
6765                                     ,p_party_rec  => p_party_tbl(l_party_index)
6766                                     ,p_start_date => p_instance_tbl(inst_tab_row).active_start_date
6767                                     ,p_end_date   => p_instance_tbl(inst_tab_row).active_end_date
6768                                    ) ) THEN
6769 		          l_msg_index := 1;
6770                           FND_MSG_PUB.Count_And_Get
6771                                 (p_count  =>  x_msg_count,
6772                                  p_data   =>  x_msg_data
6773                                 );
6774 			  l_msg_count := x_msg_count;
6775 			  WHILE l_msg_count > 0 LOOP
6776 			      x_msg_data := FND_MSG_PUB.GET
6777 				  (  l_msg_index,
6778 			             FND_API.G_FALSE    );
6779 			      csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
6780 			      l_msg_index := l_msg_index + 1;
6781 			      l_msg_count := l_msg_count - 1;
6782 			  END LOOP;
6783 			  l_iface_error_text := substr(x_msg_data,1,2000);
6784 			  RAISE SKIP_ERROR;
6785                        END IF;
6786                        --
6787                        -- Call Private package to validate and create party relationship
6788 		       csi_party_relationships_pvt.create_inst_party_relationship
6789 		       ( p_api_version      => p_api_version
6790 		        ,p_commit           => fnd_api.g_false
6791 		        ,p_init_msg_list    => p_init_msg_list
6792 		        ,p_validation_level => p_validation_level
6793 		        ,p_party_rec        => p_party_tbl(l_party_index)
6794 		        ,p_txn_rec          => p_txn_tbl(inst_tab_row)
6795 		        ,x_return_status    => x_return_status
6796 		        ,x_msg_count        => x_msg_count
6797 		        ,x_msg_data         => x_msg_data
6798 		        ,p_party_source_tbl => l_party_source_tbl
6799 		        ,p_party_id_tbl     => l_party_id_tbl
6800 		        ,p_contact_tbl      => l_contact_tbl
6801 		        ,p_party_rel_type_tbl => l_party_rel_type_tbl
6802 		        ,p_party_count_rec  => l_party_count_rec
6803                         ,p_called_from_grp  => fnd_api.g_true
6804                        ) ;
6805 
6806 		       IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
6807 		          l_msg_index := 1;
6808 	  	  	  l_msg_count := x_msg_count;
6809 			  WHILE l_msg_count > 0 LOOP
6810 			        x_msg_data := FND_MSG_PUB.GET
6811 			  	  (  l_msg_index,
6812 				     FND_API.G_FALSE    );
6816 			  END LOOP;
6813 			     csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
6814 			     l_msg_index := l_msg_index + 1;
6815 			     l_msg_count := l_msg_count - 1;
6817 			  l_iface_error_text := substr(x_msg_data,1,2000);
6818 			  RAISE SKIP_ERROR;
6819 		       ELSE
6820 			  l_build_ctr := l_build_party_tbl.count + 1;
6821 			  l_build_party_tbl(l_build_ctr) := p_party_tbl(l_party_index);
6822 		       END IF;
6823                        --
6824                        -- Traverse the account tbl and create the accounts
6825                        l_temp_account_tbl.DELETE;
6826                        l_account_count := 0;
6827 
6828 		       --bug 11693286 start
6829 		       l_key := inst_tab_row || '#' || l_party_index;
6830 		       IF l_party_acct_hashtbl.exists(l_key) THEN
6831                        --IF p_account_tbl.count > 0 THEN
6832 		          l_tmp_numlist2.DELETE;
6833 			  l_tmp_numlist2 := l_party_acct_hashtbl(l_key);
6834                           FOR l_acct_row IN l_tmp_numlist2.FIRST .. l_tmp_numlist2.LAST
6835                           --FOR l_acct_row IN p_account_tbl.FIRST .. p_account_tbl.LAST
6836                           LOOP
6837 			     l_acct_index := l_tmp_numlist2(l_acct_row);
6838 			     --bug 11693286 end
6839 			     -- Replacing l_acct_row with l_acct_index and tab_row with l_party_index
6840 			     -- for bug 11693286
6841                              IF p_account_tbl.EXISTS(l_acct_index) THEN
6842                                 IF p_account_tbl(l_acct_index).parent_tbl_index = l_party_index THEN
6843                                    p_account_tbl(l_acct_index).instance_party_id :=
6844                                                       p_party_tbl(l_party_index).instance_party_id;
6845                                    p_account_tbl(l_acct_index).call_contracts := fnd_api.g_false;
6846                                    p_account_tbl(l_acct_index).vld_organization_id :=
6847                                                       p_instance_tbl(inst_tab_row).vld_organization_id;
6848                                    IF p_account_tbl(l_acct_index).active_start_date IS NULL OR
6849                                       p_account_tbl(l_acct_index).active_start_date = fnd_api.g_miss_date
6850                                    THEN
6851                                       p_account_tbl(l_acct_index).active_start_date :=
6852 				   	        p_party_tbl(l_party_index).active_start_date;
6853                                    END IF;
6854                                    --
6855                                    IF p_account_tbl(l_acct_index).relationship_type_code = 'OWNER' AND
6856                                       p_party_tbl(l_party_index).relationship_type_code <> 'OWNER' THEN
6857                                       l_iface_error_text := 'OWNER Account Requires OWNER PARTY ';
6858                                       csi_gen_utility_pvt.put_line(l_iface_error_text);
6859                                       RAISE SKIP_ERROR;
6860                                    END IF;
6861                                    --
6862                                    l_account_count := l_account_count + 1;
6863                                    l_temp_account_tbl(l_account_count) := p_account_tbl(l_acct_index);
6864                                    -- Check Party Account Business rules
6865                                    IF NOT ( Check_Party_Acct_Rules
6866                                      ( p_account_tbl     =>  l_temp_account_tbl
6867                                       ,p_account_rec     =>  p_account_tbl(l_acct_index)
6868                                       ,p_pty_src_table   =>  p_party_tbl(l_party_index).party_source_table
6869                                       ,p_party_id        =>  p_party_tbl(l_party_index).party_id
6870                                       ,p_acct_id_tbl     =>  l_acct_id_tbl
6871                                       ,p_start_date      =>  p_party_tbl(l_party_index).active_start_date
6872                                       ,p_end_date        =>  p_party_tbl(l_party_index).active_end_date
6873                                      ) ) THEN
6874                                      l_msg_index := 1;
6875                                      FND_MSG_PUB.Count_And_Get
6876                                        (p_count  =>  x_msg_count,
6877                                         p_data   =>  x_msg_data
6878                                        );
6879                                      l_msg_count := x_msg_count;
6880                                      WHILE l_msg_count > 0 LOOP
6881                                         x_msg_data := FND_MSG_PUB.GET(
6882                                                               l_msg_index,
6883                                                               FND_API.G_FALSE );
6884                                         csi_gen_utility_pvt.put_line( 'message data = '||x_msg_data);
6885                                         l_msg_index := l_msg_index + 1;
6886                                         l_msg_count := l_msg_count - 1;
6887                                      END LOOP;
6888                                      l_iface_error_text := substr(x_msg_data,1,2000);
6889                                      RAISE SKIP_ERROR;
6890                                   END IF;
6891                                   -- Call Private package to validate and create party accounts
6892               		          csi_party_relationships_pvt.create_inst_party_account
6893                                     ( p_api_version         => p_api_version
6894                                      ,p_commit              => fnd_api.g_false
6895                                      ,p_init_msg_list       => p_init_msg_list
6896                                      ,p_validation_level      => p_validation_level
6897                                      ,p_party_account_rec     => p_account_tbl(l_acct_index)
6898                                      ,p_txn_rec             => p_txn_tbl(inst_tab_row)
6899                                      ,x_return_status       => x_return_status
6900                                      ,x_msg_count           => x_msg_count
6901                                      ,x_msg_data            => x_msg_data
6905                                      ,p_account_count_rec   => l_account_count_rec
6902                                      ,p_inst_party_tbl      => l_inst_party_tbl
6903                                      ,p_acct_rel_type_tbl   => l_acct_rel_type_tbl
6904                                      ,p_site_use_tbl        => l_site_use_tbl
6906                                      ,p_called_from_grp     => fnd_api.g_true
6907                                      ,p_oks_txn_inst_tbl    => px_oks_txn_inst_tbl
6908                                     );
6909 
6910                                   IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
6911                                      l_msg_index := 1;
6912                                      l_msg_count := x_msg_count;
6913                                      WHILE l_msg_count > 0 LOOP
6914                                         x_msg_data := FND_MSG_PUB.GET(
6915                                         l_msg_index,
6916                                         FND_API.G_FALSE );
6917                                         csi_gen_utility_pvt.put_line( 'message data = '||x_msg_data);
6918                                         l_msg_index := l_msg_index + 1;
6919                                         l_msg_count := l_msg_count - 1;
6920                                      END LOOP;
6921                                      l_iface_error_text := substr(x_msg_data,1,2000);
6922                                      RAISE SKIP_ERROR;
6923 				  ELSE
6924 				     l_build_ctr := l_build_account_tbl.count + 1;
6925 				     l_build_account_tbl(l_build_ctr) := p_account_tbl(l_acct_index);
6926                                   END IF;
6927                                END IF; -- If this account belongs to the current Party
6928                            END IF; -- Account record exists
6929                         END LOOP; -- Account Loop
6930                      END IF; -- Account Tbl count
6931                   END IF; -- If this party belong to the current instance
6932                END IF; -- Party record exists
6933             END LOOP; -- Party Loop
6934           END IF; -- Party Tbl count
6935        END IF; -- Instance ID exists
6936        --
6937        -- Call create_organization_unit API to create instance-
6938        -- to-organization units associations
6939        --
6940        l_temp_org_tbl.DELETE;
6941        l_org_count := 0;
6942        IF ((p_instance_tbl(inst_tab_row).instance_id IS NOT NULL) AND
6943            (p_instance_tbl(inst_tab_row).instance_id <> FND_API.G_MISS_NUM)) THEN
6944            IF (p_org_assignments_tbl.count > 0) THEN
6945               FOR tab_row IN p_org_assignments_tbl.FIRST .. p_org_assignments_tbl.LAST
6946               LOOP
6947                 IF p_org_assignments_tbl.EXISTS(tab_row) THEN
6948                    IF p_org_assignments_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
6949                       p_org_assignments_tbl(tab_row).instance_id := p_instance_tbl(inst_tab_row).instance_id;
6950                       IF p_org_assignments_tbl(tab_row).active_start_date IS NULL OR
6951                          p_org_assignments_tbl(tab_row).active_start_date = FND_API.G_MISS_DATE THEN
6952                          p_org_assignments_tbl(tab_row).active_start_date := SYSDATE;
6953                       END IF;
6954                       l_org_count := l_org_count + 1;
6955                       l_temp_org_tbl(l_org_count) := p_org_assignments_tbl(tab_row);
6956                       IF NOT ( Check_Org_Rules
6957                                   ( p_org_units_tbl => l_temp_org_tbl
6958                                    ,p_org_units_rec => p_org_assignments_tbl(tab_row)
6959                                    ,p_start_date => p_instance_tbl(inst_tab_row).active_start_date
6960                                    ,p_end_date   => p_instance_tbl(inst_tab_row).active_end_date
6961                                   ) ) THEN
6962                          l_msg_index := 1;
6963                          FND_MSG_PUB.Count_And_Get
6964                               (p_count  =>  x_msg_count,
6965                                p_data   =>  x_msg_data
6966                               );
6967                          l_msg_count := x_msg_count;
6968                          WHILE l_msg_count > 0 LOOP
6969                                x_msg_data := FND_MSG_PUB.GET
6970                                     (  l_msg_index,
6971                                        FND_API.G_FALSE        );
6972                                 csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
6973                                 l_msg_index := l_msg_index + 1;
6974                                 l_msg_count := l_msg_count - 1;
6975                          END LOOP;
6976                          l_iface_error_text := substr(x_msg_data,1,2000);
6977                          RAISE SKIP_ERROR;
6978                       END IF;
6979                       --
6980                       csi_organization_unit_pvt.create_organization_unit
6981                       (
6982                         p_api_version      => p_api_version
6983                        ,p_commit           => fnd_api.g_false
6984                        ,p_init_msg_list    => p_init_msg_list
6985                        ,p_validation_level => p_validation_level
6986                        ,p_org_unit_rec     => p_org_assignments_tbl(tab_row)
6987                        ,p_txn_rec          => p_txn_tbl(inst_tab_row)
6988                        ,x_return_status    => x_return_status
6989                        ,x_msg_count        => x_msg_count
6990                        ,x_msg_data         => x_msg_data
6991                        ,p_lookup_tbl       => l_ou_lookup_tbl
6992                        ,p_ou_count_rec     => l_ou_count_rec
6993                        ,p_ou_id_tbl        => l_ou_id_tbl
6994                        ,p_called_from_grp  => fnd_api.g_true
6995                       );
6996 
6997                       IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
6998                           csi_gen_utility_pvt.put_line( ' Error from CSI_ORGANIZATION_UNIT_PVT..');
7002                                 x_msg_data := FND_MSG_PUB.GET
6999                           l_msg_index := 1;
7000                           l_msg_count := x_msg_count;
7001                           WHILE l_msg_count > 0 LOOP
7003                                     (  l_msg_index,
7004                                        FND_API.G_FALSE        );
7005                                 csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
7006                                 l_msg_index := l_msg_index + 1;
7007                                 l_msg_count := l_msg_count - 1;
7008                           END LOOP;
7009                           l_iface_error_text := substr(x_msg_data,1,2000);
7010                           RAISE SKIP_ERROR;
7011 		       ELSE
7012 		          l_build_ctr := l_build_org_tbl.count + 1;
7013 		          l_build_org_tbl(l_build_ctr) := p_org_assignments_tbl(tab_row);
7014                        END IF;
7015                    END IF; -- Org assignment for the current instance
7016                 END IF; -- Org assignments row EXISTS
7017              END LOOP;
7018           END IF; --p_org_assignments_tbl.count > 0
7019        END IF;
7020 
7021        -- Call create_pricing_attribs to associate any pricing attributes
7022        -- to the item instance
7023        IF ((p_instance_tbl(inst_tab_row).instance_id IS NOT NULL) AND
7024            (p_instance_tbl(inst_tab_row).instance_id <> FND_API.G_MISS_NUM)) THEN
7025            IF (p_pricing_attrib_tbl.count > 0) THEN
7026               FOR tab_row IN p_pricing_attrib_tbl.FIRST .. p_pricing_attrib_tbl.LAST
7027               LOOP
7028                 IF p_pricing_attrib_tbl.EXISTS(tab_row) THEN
7029                    IF p_pricing_attrib_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
7030                       p_pricing_attrib_tbl(tab_row).instance_id := p_instance_tbl(inst_tab_row).instance_id;
7031                       IF p_pricing_attrib_tbl(tab_row).active_start_date IS NULL OR
7032                          p_pricing_attrib_tbl(tab_row).active_start_date = FND_API.G_MISS_DATE THEN
7033                          p_pricing_attrib_tbl(tab_row).active_start_date := SYSDATE;
7034                       END IF;
7035                       --
7036                       IF NOT ( Check_Pricing_Rules
7037                                   ( p_pricing_rec   => p_pricing_attrib_tbl(tab_row)
7038                                    ,p_start_date    => p_instance_tbl(inst_tab_row).active_start_date
7039                                    ,p_end_date      => p_instance_tbl(inst_tab_row).active_end_date
7040                                   ) ) THEN
7041                          l_msg_index := 1;
7042                          FND_MSG_PUB.Count_And_Get
7043                               (p_count  =>  x_msg_count,
7044                                p_data   =>  x_msg_data
7045                               );
7046                          l_msg_count := x_msg_count;
7047                          WHILE l_msg_count > 0 LOOP
7048                                 x_msg_data := FND_MSG_PUB.GET
7049                                     (  l_msg_index,
7050                                        FND_API.G_FALSE        );
7051                                 csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
7052                                 l_msg_index := l_msg_index + 1;
7053                                 l_msg_count := l_msg_count - 1;
7054                          END LOOP;
7055                          l_iface_error_text := substr(x_msg_data,1,2000);
7056                          RAISE SKIP_ERROR;
7057                       END IF;
7058                       --
7059                       csi_pricing_attribs_pvt.create_pricing_attribs
7060                       (
7061                         p_api_version         => p_api_version
7062                        ,p_commit              => fnd_api.g_false
7063                        ,p_init_msg_list       => p_init_msg_list
7064                        ,p_validation_level    => p_validation_level
7065                        ,p_pricing_attribs_rec => p_pricing_attrib_tbl(tab_row)
7066                        ,p_txn_rec             => p_txn_tbl(inst_tab_row)
7067                        ,x_return_status       => x_return_status
7068                        ,x_msg_count           => x_msg_count
7069                        ,x_msg_data            => x_msg_data
7070                        ,p_called_from_grp     => fnd_api.g_true
7071                       );
7072 
7073                       IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
7074                           csi_gen_utility_pvt.put_line( ' Error from CSI_PRICING_ATTRIBS_PUB..');
7075                           l_msg_index := 1;
7076                           l_msg_count := x_msg_count;
7077                           WHILE l_msg_count > 0 LOOP
7078                                 x_msg_data := FND_MSG_PUB.GET
7079                                     (  l_msg_index,
7080                                        FND_API.G_FALSE        );
7081                                 csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
7082                                 l_msg_index := l_msg_index + 1;
7083                                 l_msg_count := l_msg_count - 1;
7084                           END LOOP;
7085                           l_iface_error_text := substr(x_msg_data,1,2000);
7086                           RAISE SKIP_ERROR;
7087 		       ELSE
7088 		          l_build_ctr := l_build_pricing_tbl.count + 1;
7089 		          l_build_pricing_tbl(l_build_ctr) := p_pricing_attrib_tbl(tab_row);
7090                       END IF;
7091                    END IF; -- Pricing for the current instance
7092                 END IF; -- Pricing row EXISTS.
7093               END LOOP;
7094            END IF; --p_pricing_attrib_tbl.count > 0
7095        END IF;
7096 
7097        -- Call create_extended_attribs to associate any extended attributes
7098        -- to the item instance
7099        l_temp_ext_tbl.DELETE;
7100        l_ext_count := 0;
7101        IF ((p_instance_tbl(inst_tab_row).instance_id IS NOT NULL) AND
7105                LOOP
7102            (p_instance_tbl(inst_tab_row).instance_id <> FND_API.G_MISS_NUM)) THEN
7103            IF (p_ext_attrib_values_tbl.count > 0) THEN
7104                FOR tab_row IN p_ext_attrib_values_tbl.FIRST .. p_ext_attrib_values_tbl.LAST
7106                  IF p_ext_attrib_values_tbl.EXISTS(tab_row) THEN
7107                     IF p_ext_attrib_values_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
7108                        p_ext_attrib_values_tbl(tab_row).instance_id := p_instance_tbl(inst_tab_row).instance_id;
7109                        IF p_ext_attrib_values_tbl(tab_row).active_start_date IS NULL OR
7110                           p_ext_attrib_values_tbl(tab_row).active_start_date = FND_API.G_MISS_DATE THEN
7111                           p_ext_attrib_values_tbl(tab_row).active_start_date := SYSDATE;
7112                        END IF;
7113                        --
7114                        l_ext_count_rec.ext_count := l_ext_count_rec.ext_count + 1;
7115                        l_ext_id_tbl(l_ext_count_rec.ext_count).instance_id := p_instance_tbl(inst_tab_row).instance_id;
7116                        l_ext_id_tbl(l_ext_count_rec.ext_count).inv_item_id := p_instance_tbl(inst_tab_row).inventory_item_id;
7117                        l_ext_id_tbl(l_ext_count_rec.ext_count).inv_mast_org_id := p_instance_tbl(inst_tab_row).inv_master_organization_id;
7118                        l_ext_id_tbl(l_ext_count_rec.ext_count).valid_flag := 'Y';
7119                        --
7120                        l_ext_count := l_ext_count + 1;
7121                        l_temp_ext_tbl(l_ext_count) := p_ext_attrib_values_tbl(tab_row);
7122                        --
7123                        IF NOT ( Check_Ext_Rules
7124                                     ( p_ext_tbl        => l_temp_ext_tbl
7125                                      ,p_ext_rec        => p_ext_attrib_values_tbl(tab_row)
7126                                      ,p_start_date     => p_instance_tbl(inst_tab_row).active_start_date
7127                                      ,p_end_date       => p_instance_tbl(inst_tab_row).active_end_date
7128                                   ) ) THEN
7129                           l_msg_index := 1;
7130                           FND_MSG_PUB.Count_And_Get
7131                               (p_count  =>  x_msg_count,
7132                                p_data   =>  x_msg_data
7133                               );
7134                           l_msg_count := x_msg_count;
7135                           WHILE l_msg_count > 0 LOOP
7136                               x_msg_data := FND_MSG_PUB.GET
7137                                          (  l_msg_index,
7138                                             FND_API.G_FALSE        );
7139                                      csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
7140                                      l_msg_index := l_msg_index + 1;
7141                                      l_msg_count := l_msg_count - 1;
7142                           END LOOP;
7143                           l_iface_error_text := substr(x_msg_data,1,2000);
7144                           RAISE SKIP_ERROR;
7145                        END IF;
7146                        --
7147                        csi_item_instance_pvt.create_extended_attrib_values
7148                        (
7149                          p_api_version         => p_api_version
7150                         ,p_commit              => fnd_api.g_false
7151                         ,p_init_msg_list       => p_init_msg_list
7152                         ,p_validation_level    => p_validation_level
7153                         ,p_ext_attrib_rec      => p_ext_attrib_values_tbl(tab_row)
7154                         ,p_txn_rec             => p_txn_tbl(inst_tab_row)
7155                         ,x_return_status       => x_return_status
7156                         ,x_msg_count           => x_msg_count
7157                         ,x_msg_data            => x_msg_data
7158                         ,p_ext_id_tbl          => l_ext_id_tbl
7159                         ,p_ext_count_rec       => l_ext_count_rec
7160                         ,p_ext_attr_tbl        => l_ext_attr_tbl
7161                         ,p_ext_cat_tbl         => l_ext_cat_tbl
7162                         ,p_called_from_grp     => fnd_api.g_true
7163                        );
7164 
7165                        IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
7166                            csi_gen_utility_pvt.put_line( ' Error from CSI_EXTENDED_ATTRIBS_PUB..');
7167                            l_msg_index := 1;
7168                            l_msg_count := x_msg_count;
7169                            WHILE l_msg_count > 0 LOOP
7170                                x_msg_data := FND_MSG_PUB.GET
7171                                          (  l_msg_index,
7172                                             FND_API.G_FALSE        );
7173                                      csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
7174                                      l_msg_index := l_msg_index + 1;
7175                                      l_msg_count := l_msg_count - 1;
7176                            END LOOP;
7177                            l_iface_error_text := substr(x_msg_data,1,2000);
7178                            RAISE SKIP_ERROR;
7179 		        ELSE
7180 		           l_build_ctr := l_build_ext_tbl.count + 1;
7181 		           l_build_ext_tbl(l_build_ctr) := p_ext_attrib_values_tbl(tab_row);
7182                        END IF;
7183                     END IF; -- Ext attribs for the current instance
7184                  END IF; -- Ext attribs EXISTS.
7185                 END LOOP;
7186            END IF; --p_ext_attrib_values_tbl.count > 0
7187        END IF;
7188 
7189        -- Call create_asset_assignments to associate any assets associated
7190        -- to the item instance
7191        IF ((p_instance_tbl(inst_tab_row).instance_id IS NOT NULL) AND
7192            (p_instance_tbl(inst_tab_row).instance_id <> FND_API.G_MISS_NUM)) THEN
7193            IF (p_asset_assignment_tbl.count > 0) THEN
7194                FOR tab_row IN p_asset_assignment_tbl.FIRST .. p_asset_assignment_tbl.LAST
7195                LOOP
7199                        IF p_asset_assignment_tbl(tab_row).active_start_date IS NULL OR
7196                  IF p_asset_assignment_tbl.EXISTS(tab_row) THEN
7197                     IF p_asset_assignment_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
7198                        p_asset_assignment_tbl(tab_row).instance_id := p_instance_tbl(inst_tab_row).instance_id;
7200                           p_asset_assignment_tbl(tab_row).active_start_date = FND_API.G_MISS_DATE THEN
7201                           p_asset_assignment_tbl(tab_row).active_start_date := SYSDATE;
7202                        END IF;
7203                        --
7204                        IF NOT ( Check_Asset_Rules
7205                                    ( p_asset_rec       => p_asset_assignment_tbl(tab_row)
7206                                     ,p_start_date     => p_instance_tbl(inst_tab_row).active_start_date
7207                                     ,p_end_date       => p_instance_tbl(inst_tab_row).active_end_date
7208                                   ) ) THEN
7209                           l_msg_index := 1;
7210                           FND_MSG_PUB.Count_And_Get
7211                               (p_count  =>  x_msg_count,
7212                                p_data   =>  x_msg_data
7213                               );
7214                           l_msg_count := x_msg_count;
7215                           WHILE l_msg_count > 0 LOOP
7216                                      x_msg_data := FND_MSG_PUB.GET
7217                                          (  l_msg_index,
7218                                             FND_API.G_FALSE        );
7219                                      csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
7220                                      l_msg_index := l_msg_index + 1;
7221                                      l_msg_count := l_msg_count - 1;
7222                           END LOOP;
7223                           l_iface_error_text := substr(x_msg_data,1,2000);
7224                           RAISE SKIP_ERROR;
7225                        END IF;
7226                        --
7227                        -- Asset Open Interface should have this validation as False
7228                        --
7229                        -- Since the item instance is not yet created, the set_fa_sync_flag routine
7230                        -- that looks at csi_item_instances cannot be used directly. Hence calling the
7231                        -- same with the location_id.
7232                        --
7233                        IF p_asset_assignment_tbl(tab_row).fa_sync_validation_reqd = fnd_api.g_true THEN
7234                           IF p_instance_tbl(inst_tab_row).location_type_code = 'HZ_PARTY_SITES' THEN
7235                              Begin
7236                                 select location_id
7237                                 into l_location_id
7238                                 from HZ_PARTY_SITES
7239                                 where party_site_id = p_instance_tbl(inst_tab_row).location_id;
7240                              Exception
7241                                 when no_data_found then
7242                                    l_location_id := null;
7243                              End;
7244                           ELSE
7245                              l_location_id := p_instance_tbl(inst_tab_row).location_id;
7246                           END IF;
7247                           -- Pass this Location ID to Set_Sync_Flag and validate against CSI_A_LOCATIONS
7248                           IF l_location_id IS NOT NULL THEN
7249 			     csi_asset_pvt.set_fa_sync_flag (
7250 			       px_instance_asset_rec => p_asset_assignment_tbl(tab_row),
7251 			       p_location_id         => l_location_id,
7252 			       x_return_status       => x_return_status,
7253 			       x_error_msg           => x_msg_data);
7254                           END IF;
7255                           --
7256                           -- The above routine just tries to set the FA Sync Flag. It doesn't retun any error
7257                        END IF; -- Validation_reqd check
7258                        --
7259                        csi_asset_pvt.create_instance_asset
7260                        (
7261                          p_api_version         => p_api_version
7262                         ,p_commit              => fnd_api.g_false
7263                         ,p_init_msg_list       => p_init_msg_list
7264                         ,p_instance_asset_rec  => p_asset_assignment_tbl(tab_row)
7265                         ,p_txn_rec             => p_txn_tbl(inst_tab_row)
7266                         ,x_return_status       => x_return_status
7267                         ,x_msg_count           => x_msg_count
7268                         ,x_msg_data            => x_msg_data
7269                         ,p_lookup_tbl          => l_asset_lookup_tbl
7270                         ,p_asset_count_rec     => l_asset_count_rec
7271                         ,p_asset_id_tbl        => l_asset_id_tbl
7272                         ,p_asset_loc_tbl       => l_asset_loc_tbl
7273                         ,p_called_from_grp     => fnd_api.g_true
7274                        );
7275 
7276                        IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
7277                            csi_gen_utility_pvt.put_line( ' Error from CSI_ASSET_PVT..');
7278                            l_msg_index := 1;
7279                            l_msg_count := x_msg_count;
7280                            WHILE l_msg_count > 0 LOOP
7281                               x_msg_data := FND_MSG_PUB.GET
7282                                          (  l_msg_index,
7283                                             FND_API.G_FALSE        );
7284                               csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
7285                               l_msg_index := l_msg_index + 1;
7286                               l_msg_count := l_msg_count - 1;
7287                            END LOOP;
7288                            l_iface_error_text := substr(x_msg_data,1,2000);
7289                            RAISE SKIP_ERROR;
7290 		        ELSE
7291 		           l_build_ctr := l_build_asset_tbl.count + 1;
7295                  END IF; -- Asset row EXISTS.
7292 		           l_build_asset_tbl(l_build_ctr) := p_asset_assignment_tbl(tab_row);
7293                         END IF;
7294                     END IF; -- Asset for the current instance
7296                 END LOOP;
7297            END IF; --p_asset_assignment_tbl.count > 0
7298        END IF;
7299        --
7300        -- Version Label tbl will be directly buil from Instance tbl
7301        --
7302        -- Call to contracts will be made after Bulk Insert
7303        --
7304        -- Update the Interface Table with PROCESSED status.
7305        p_instance_tbl(inst_tab_row).processed_flag := 'P'; -- Processed
7306        l_grp_error_tbl(inst_tab_row).process_status := 'S'; -- Success
7307        l_grp_error_tbl(inst_tab_row).error_message := NULL;
7308        l_error_array(inst_tab_row) := NULL;
7309        l_status_array(inst_tab_row) := 'P';
7310        l_inst_id_array(inst_tab_row) := p_instance_tbl(inst_tab_row).instance_id;
7311 
7312        --
7313        l_bulk_inst_count := l_bulk_inst_count + 1;
7314        l_bulk_inst_tbl(l_bulk_inst_count) := p_instance_tbl(inst_tab_row);
7315        IF p_txn_tbl(inst_tab_row).transaction_id IS NULL OR
7316           p_txn_tbl(inst_tab_row).transaction_id = FND_API.G_MISS_NUM THEN
7317           select CSI_TRANSACTIONS_S.nextval
7318           into p_txn_tbl(inst_tab_row).transaction_id
7319           from sys.dual;
7320        END IF;
7321        --
7322        l_bulk_txn_tbl(l_bulk_inst_count) := p_txn_tbl(inst_tab_row);
7323        --
7324        select CSI_I_VERSION_LABELS_S.nextval
7325        into l_bulk_version_label_tbl(l_bulk_inst_count).version_label_id
7326        from sys.dual;
7327        --
7328        l_bulk_version_label_tbl(l_bulk_inst_count).version_label := p_instance_tbl(inst_tab_row).version_label;
7329        l_bulk_version_label_tbl(l_bulk_inst_count).active_start_date := p_instance_tbl(inst_tab_row).active_start_date;
7330        l_bulk_version_label_tbl(l_bulk_inst_count).date_time_stamp := SYSDATE;
7331        l_bulk_version_label_tbl(l_bulk_inst_count).instance_id := p_instance_tbl(inst_tab_row).instance_id;
7332        l_bulk_version_label_tbl(l_bulk_inst_count).description := p_instance_tbl(inst_tab_row).version_label_description;
7333        --
7334        Build_Instance_History
7335           ( p_inst_hist_tbl => l_bulk_inst_hist_tbl
7336            ,p_inst_rec => l_bulk_inst_tbl(l_bulk_inst_count)
7337            ,p_txn_id => l_bulk_txn_tbl(l_bulk_inst_count).transaction_id
7338           );
7339        --
7340        Build_Ver_Label_History
7341           (
7342             p_ver_label_history_tbl => l_bulk_ver_label_hist_tbl
7343            ,p_version_label_rec     => l_bulk_version_label_tbl(l_bulk_inst_count)
7344            ,p_txn_id                => l_bulk_txn_tbl(l_bulk_inst_count).transaction_id
7345           );
7346        --
7347        IF l_build_party_tbl.count > 0 THEN
7348           FOR pty_row in l_build_party_tbl.FIRST .. l_build_party_tbl.LAST LOOP
7349              IF l_build_party_tbl(pty_row).contact_flag = 'Y' THEN
7350                 l_build_party_tbl(pty_row).contact_ip_id :=
7351                        p_party_tbl(l_build_party_tbl(pty_row).contact_parent_tbl_index).instance_party_id;
7352                 FOR src_pty in  p_party_tbl.FIRST .. p_party_tbl.LAST LOOP
7353                    IF p_party_tbl(src_pty).instance_party_id = l_build_party_tbl(pty_row).instance_party_id
7354                    THEN
7355                       p_party_tbl(src_pty).contact_ip_id := l_build_party_tbl(pty_row).contact_ip_id;
7356                       EXIT;
7357                    END IF;
7358                 END LOOP;
7359              END IF;
7360              l_bulk_pty_count := l_bulk_pty_count + 1;
7361              l_bulk_party_tbl(l_bulk_pty_count) := l_build_party_tbl(pty_row);
7362              --
7363              IF l_build_party_tbl(pty_row).relationship_type_code = 'OWNER' THEN
7364                 l_owner_count := l_owner_count + 1;
7365                 l_owner_pty_acct_tbl(l_owner_count).instance_id := l_build_party_tbl(pty_row).instance_id;
7366                 l_owner_pty_acct_tbl(l_owner_count).party_source_table :=
7367                                   l_build_party_tbl(pty_row).party_source_table;
7368                 l_owner_pty_acct_tbl(l_owner_count).party_id := l_build_party_tbl(pty_row).party_id;
7369                 l_owner_pty_acct_tbl(l_owner_count).account_id := NULL;
7370                 l_owner_pty_acct_tbl(l_owner_count).vld_organization_id :=
7371                                            p_instance_tbl(inst_tab_row).vld_organization_id;
7372              END IF;
7373              --
7374              Build_Party_History
7375                 ( p_party_hist_tbl => l_bulk_party_hist_tbl
7376                  ,p_party_rec => l_bulk_party_tbl(l_bulk_pty_count)
7377                  ,p_txn_id => l_bulk_txn_tbl(l_bulk_inst_count).transaction_id
7378                 );
7379           END LOOP;
7380        END IF;
7381        --
7382        IF l_build_account_tbl.count > 0 THEN
7383           FOR acct_row in l_build_account_tbl.FIRST .. l_build_account_tbl.LAST LOOP
7384              l_bulk_acct_count := l_bulk_acct_count + 1;
7385              l_bulk_acct_tbl(l_bulk_acct_count) := l_build_account_tbl(acct_row);
7386              --
7387              IF l_build_account_tbl(acct_row).relationship_type_code = 'OWNER' THEN
7388                 l_owner_pty_acct_tbl(l_owner_count).account_id :=
7389                            l_build_account_tbl(acct_row).party_account_id;
7390              END IF;
7391              --
7392              Build_Account_History
7393                 ( p_acct_hist_tbl => l_bulk_acct_hist_tbl
7394                  ,p_acct_rec => l_bulk_acct_tbl(l_bulk_acct_count)
7395                  ,p_txn_id => l_bulk_txn_tbl(l_bulk_inst_count).transaction_id
7396                 );
7397           END LOOP; -- Account Loop
7398        END IF; -- Account_tbl count check
7399        --
7400        IF l_build_org_tbl.count > 0 THEN
7404              --
7401           FOR org_row in l_build_org_tbl.FIRST .. l_build_org_tbl.LAST LOOP
7402              l_bulk_org_count := l_bulk_org_count + 1;
7403              l_bulk_org_units_tbl(l_bulk_org_count) := l_build_org_tbl(org_row);
7405              Build_Org_History
7406                ( p_org_hist_tbl    => l_bulk_org_units_hist_tbl
7407                 ,p_org_rec         => l_bulk_org_units_tbl(l_bulk_org_count)
7408                 ,p_txn_id          => l_bulk_txn_tbl(l_bulk_inst_count).transaction_id
7409                );
7410           END LOOP;
7411        END IF;
7412        --
7413        IF l_build_pricing_tbl.count > 0 THEN
7414           FOR pricing_row in l_build_pricing_tbl.FIRST .. l_build_pricing_tbl.LAST LOOP
7415              l_bulk_pricing_count := l_bulk_pricing_count + 1;
7416              l_bulk_pricing_tbl(l_bulk_pricing_count) := l_build_pricing_tbl(pricing_row);
7417              --
7418              Build_Pricing_History
7419                (
7420                  p_pricing_hist_tbl  => l_bulk_pricing_hist_tbl
7421                 ,p_pricing_rec       => l_bulk_pricing_tbl(l_bulk_pricing_count)
7422                 ,p_txn_id            => l_bulk_txn_tbl(l_bulk_inst_count).transaction_id
7423                );
7424           END LOOP;
7425        END IF;
7426        --
7427        IF l_build_ext_tbl.count > 0 THEN
7428           FOR ext_row in l_build_ext_tbl.FIRST .. l_build_ext_tbl.LAST LOOP
7429              l_bulk_ext_count := l_bulk_ext_count + 1;
7430              l_bulk_ext_attrib_values_tbl(l_bulk_ext_count) := l_build_ext_tbl(ext_row);
7431              -- Build History
7432              Build_Ext_Attr_History
7433                 ( p_ext_attr_hist_tbl => l_bulk_ext_attrib_val_hist_tbl
7434                  ,p_ext_attr_rec    => l_bulk_ext_attrib_values_tbl(l_bulk_ext_count)
7435                  ,p_txn_id => l_bulk_txn_tbl(l_bulk_inst_count).transaction_id
7436                 );
7437           END LOOP;
7438        END IF;
7439        --
7440        IF l_build_asset_tbl.count > 0 THEN
7441           FOR asset_row in l_build_asset_tbl.FIRST .. l_build_asset_tbl.LAST LOOP
7442              l_bulk_asset_count := l_bulk_asset_count + 1;
7443              l_bulk_asset_tbl(l_bulk_asset_count) := l_build_asset_tbl(asset_row);
7444              -- Build History
7445              Build_Asset_History
7446                 ( p_asset_hist_tbl   => l_bulk_asset_hist_tbl
7447                  ,p_asset_rec        => l_bulk_asset_tbl(l_bulk_asset_count)
7448                  ,p_txn_id => l_bulk_txn_tbl(l_bulk_inst_count).transaction_id
7449                 );
7450           END LOOP;
7451        END IF;
7452 
7453   /*  -- Commented for Bug 14684073  by RASRAJA
7454          Calling Post Vertical User Hook
7455         BEGIN
7456 
7457          IF JTF_USR_HKS.Ok_to_execute( G_PKG_NAME, l_api_name, 'A', 'V' )  THEN
7458            csi_gen_utility_pvt.put_line('Calling  CSI_ITEM_INSTANCE_VUHK.Create_Item_Instance_Post ..');
7459             CSI_ITEM_INSTANCE_VUHK.Create_Item_Instance_Post
7460                (
7461                 p_api_version               => 1.0
7462                 ,p_commit                   => fnd_api.g_false
7463                 ,p_init_msg_list            => fnd_api.g_false
7464                 ,p_validation_level         => fnd_api.g_valid_level_full
7465                 ,p_instance_rec             => p_instance_tbl(inst_tab_row)
7466                 ,p_ext_attrib_values_tbl    => p_ext_attrib_values_tbl
7467                 ,p_party_tbl                => l_temp_party_tbl
7468                 ,p_account_tbl              => p_account_tbl
7469                 ,p_pricing_attrib_tbl       => p_pricing_attrib_tbl
7470                 ,p_org_assignments_tbl      => p_org_assignments_tbl
7471                 ,p_asset_assignment_tbl     => p_asset_assignment_tbl
7472                 ,p_txn_rec                  => p_txn_tbl(inst_tab_row)
7473                 ,x_return_status            => x_return_status
7474                 ,x_msg_count                => x_msg_count
7475                 ,x_msg_data                 => x_msg_data
7476           );
7477 
7478           IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
7479               l_msg_index := 1;
7480               l_msg_count := x_msg_count;
7481               WHILE l_msg_count > 0 LOOP
7482                       x_msg_data := FND_MSG_PUB.GET
7483                                   (  l_msg_index,
7484                                      FND_API.G_FALSE );
7485                   csi_gen_utility_pvt.put_line('ERROR FROM CSI_ITEM_INSTANCE_VUHK.Create_Item_Instance_Post API ');
7486                   csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
7487                   l_msg_index := l_msg_index + 1;
7488                   l_msg_count := l_msg_count - 1;
7489               END LOOP;
7490             RAISE FND_API.G_EXC_ERROR;
7491           END IF;
7492             --
7493          END IF;
7494       EXCEPTION
7495         WHEN OTHERS THEN
7496            csi_gen_utility_pvt.put_line('ERROR FROM JTF_USR_HKS.Ok_to_execute API Create Post Vertical');
7497            RAISE FND_API.G_EXC_ERROR;
7498       END; */
7499      -- End of POST User Hooks
7500 
7501     EXCEPTION
7502       WHEN PROCESS_NEXT THEN
7503          NULL;
7504       WHEN SKIP_ERROR THEN
7505            ROLLBACK TO create_item_instance;
7506            p_instance_tbl(inst_tab_row).processed_flag := 'E'; -- Error
7507            l_grp_error_tbl(inst_tab_row).process_status := 'E';
7508            l_grp_error_tbl(inst_tab_row).error_message := l_iface_error_text;
7509            l_error_array(inst_tab_row) := l_iface_error_text;
7510            l_status_array(inst_tab_row) := 'E';
7511            l_inst_id_array(inst_tab_row) := NULL;
7512     END;
7513   END LOOP; --instance_tbl
7514   --
7515   l_temp_party_tbl.DELETE;
7516   l_temp_account_tbl.DELETE;
7517   l_temp_org_tbl.DELETE;
7518   l_temp_asset_tbl.DELETE;
7519   l_temp_ext_tbl.DELETE;
7523   --  x_bulk_txn_tbl contains the transactions that need to be inserted in CSI_TRANSACTIONS
7520   x_return_status := FND_API.G_RET_STS_SUCCESS;
7521   --
7522   --  l_txn_exists_tbl contains those transactions exist in CSI_TRANSACTIONS
7524   IF l_bulk_inst_tbl.count > 0 THEN
7525      -- Loop thru' the l_bulk_txn_tbl and eliminate duplicate txn id's.
7526      FOR j in l_bulk_txn_tbl.FIRST .. l_bulk_txn_tbl.LAST LOOP
7527         l_exists := 'N';
7528         IF l_txn_exists_tbl.count > 0 THEN
7529            FOR m in l_txn_exists_tbl.FIRST .. l_txn_exists_tbl.LAST LOOP
7530               IF l_txn_exists_tbl(m) = l_bulk_txn_tbl(j).transaction_id THEN
7531                  l_exists := 'Y';
7532                  exit;
7533               END IF;
7534            END LOOP;
7535         END IF;
7536         --
7537 	IF l_exists <> 'Y' THEN
7538 	   IF x_bulk_txn_tbl.count > 0 THEN
7539 	      FOR k in x_bulk_txn_tbl.FIRST .. x_bulk_txn_tbl.LAST LOOP
7540                  IF l_bulk_txn_tbl(j).transaction_id = x_bulk_txn_tbl(k).transaction_id THEN
7541 		    l_exists := 'Y';
7542 		    exit;
7543 		 END IF;
7544               END LOOP;
7545 	   END IF;
7546 	END IF;
7547         --
7548         IF l_exists <> 'Y' THEN
7549            csi_gen_utility_pvt.put_line('Checking against csi_transactions..');
7550 	   Begin
7551 	      select 'Y'
7552 	      into l_exists
7553 	      from csi_transactions
7554 	      where transaction_id = l_bulk_txn_tbl(j).transaction_id;
7555               --
7556               l_txn_ctr := l_txn_exists_tbl.count;
7557               l_txn_ctr := l_txn_ctr + 1;
7558               l_txn_exists_tbl(l_txn_ctr) := l_bulk_txn_tbl(j).transaction_id;
7559 	   Exception
7560 	      when no_data_found then
7561 		 l_exists := 'N';
7562 	   End;
7563 	   --
7564 	   IF l_exists <> 'Y' THEN
7565 	      l_txn_ctr := x_bulk_txn_tbl.count;
7566 	      l_txn_ctr := l_txn_ctr + 1;
7567 	      x_bulk_txn_tbl(l_txn_ctr) := l_bulk_txn_tbl(j);
7568 	   END IF;
7569         END IF;
7570      END LOOP;
7571      --
7572      --
7573      csi_gen_utility_pvt.put_line('Transaction Tbl count before Bulk Insert is '
7574                                                     ||to_char(x_bulk_txn_tbl.count));
7575      Bulk_Insert
7576        ( p_inst_tbl           =>  l_bulk_inst_tbl
7577         ,p_txn_tbl            =>  x_bulk_txn_tbl
7578         ,p_inst_hist_tbl      =>  l_bulk_inst_hist_tbl
7579         ,p_version_label_tbl  =>  l_bulk_version_label_tbl
7580         ,p_ver_label_hist_tbl =>  l_bulk_ver_label_hist_tbl
7581         ,p_party_tbl          =>  l_bulk_party_tbl
7582         ,p_party_hist_tbl     =>  l_bulk_party_hist_tbl
7583         ,p_account_tbl        =>  l_bulk_acct_tbl
7584         ,p_acct_hist_tbl      =>  l_bulk_acct_hist_tbl
7585         ,p_owner_pty_acct_tbl =>  l_owner_pty_acct_tbl
7586         ,p_org_units_tbl      =>  l_bulk_org_units_tbl
7587         ,p_org_units_hist_tbl =>  l_bulk_org_units_hist_tbl
7588         ,p_pricing_tbl        =>  l_bulk_pricing_tbl
7589         ,p_pricing_hist_tbl   =>  l_bulk_pricing_hist_tbl
7590         ,p_ext_attr_values_tbl => l_bulk_ext_attrib_values_tbl
7591         ,p_ext_attr_val_hist_tbl => l_bulk_ext_attrib_val_hist_tbl
7592         ,p_asset_tbl          =>  l_bulk_asset_tbl
7593         ,p_asset_hist_tbl     =>  l_bulk_asset_hist_tbl
7594         ,x_return_status      =>  x_return_status
7595        );
7596      --
7597      IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
7598         csi_gen_utility_pvt.put_line('Error from Bulk Insert '||substr(sqlerrm,1,200));
7599         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7600      END IF;
7601      --
7602      csi_gen_utility_pvt.put_line('End of Bulk Insert...');
7603 
7604 -- Bug 14684073 by RASRAJA
7605 FOR inst_tab_row IN l_bulk_inst_tbl.FIRST .. l_bulk_inst_tbl.LAST
7606       LOOP
7607 		 -- Calling Post Customer User Hook -- added for bug 9146060 by HYONLEE
7608           BEGIN
7609 
7610              IF JTF_USR_HKS.Ok_to_execute(G_PKG_NAME, l_api_name, 'A', 'C' ) THEN
7611                csi_gen_utility_pvt.put_line('Calling  CSI_ITEM_INSTANCE_CUHK.Create_Item_Instance_Post ..');
7612                 CSI_ITEM_INSTANCE_CUHK.Create_Item_Instance_Post
7613                    (
7614                     p_api_version               => 1.0
7615                     ,p_commit                   => fnd_api.g_false
7616                     ,p_init_msg_list            => fnd_api.g_false
7617                     ,p_validation_level         => fnd_api.g_valid_level_full
7618                     ,p_instance_rec             => l_bulk_inst_tbl(inst_tab_row)
7619                     ,p_ext_attrib_values_tbl    => p_ext_attrib_values_tbl
7620                     ,p_party_tbl                => l_temp_party_tbl
7621                     ,p_account_tbl              => p_account_tbl
7622                     ,p_pricing_attrib_tbl       => p_pricing_attrib_tbl
7623                     ,p_org_assignments_tbl      => p_org_assignments_tbl
7624                     ,p_asset_assignment_tbl     => p_asset_assignment_tbl
7625                     ,p_txn_rec                  => p_txn_tbl(inst_tab_row)
7626                     ,x_return_status            => x_return_status
7627                     ,x_msg_count                => x_msg_count
7628                     ,x_msg_data                 => x_msg_data
7629               );
7630                 --
7631                 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
7632                   l_msg_index := 1;
7633                   l_msg_count := x_msg_count;
7634                   WHILE l_msg_count > 0 LOOP
7635                           x_msg_data := FND_MSG_PUB.GET
7636                                       (  l_msg_index,
7637                                          FND_API.G_FALSE );
7638                       csi_gen_utility_pvt.put_line('ERROR FROM CSI_ITEM_INSTANCE_CUHK.Create_Item_Instance_Post API ');
7639                       csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
7643                  RAISE FND_API.G_EXC_ERROR;
7640                       l_msg_index := l_msg_index + 1;
7641                       l_msg_count := l_msg_count - 1;
7642                   END LOOP;
7644                END IF;
7645                 --
7646             END IF;
7647           EXCEPTION
7648             WHEN OTHERS THEN
7649                csi_gen_utility_pvt.put_line('ERROR FROM JTF_USR_HKS.Ok_to_execute API Create Post Customer');
7650                RAISE FND_API.G_EXC_ERROR;
7651           END;
7652 	  -- Calling Post Vertical User Hook
7653      BEGIN
7654          IF JTF_USR_HKS.Ok_to_execute( G_PKG_NAME, l_api_name, 'A', 'V' )  THEN
7655            csi_gen_utility_pvt.put_line('Calling  CSI_ITEM_INSTANCE_VUHK.Create_Item_Instance_Post ..');
7656             CSI_ITEM_INSTANCE_VUHK.Create_Item_Instance_Post
7657                (
7658                 p_api_version               => 1.0
7659                 ,p_commit                   => fnd_api.g_false
7660                 ,p_init_msg_list            => fnd_api.g_false
7661                 ,p_validation_level         => fnd_api.g_valid_level_full
7662                 ,p_instance_rec             => l_bulk_inst_tbl(inst_tab_row)
7663                 ,p_ext_attrib_values_tbl    => p_ext_attrib_values_tbl
7664                 ,p_party_tbl                => l_temp_party_tbl
7665                 ,p_account_tbl              => p_account_tbl
7666                 ,p_pricing_attrib_tbl       => p_pricing_attrib_tbl
7667                 ,p_org_assignments_tbl      => p_org_assignments_tbl
7668                 ,p_asset_assignment_tbl     => p_asset_assignment_tbl
7669                 ,p_txn_rec                  => p_txn_tbl(inst_tab_row)
7670                 ,x_return_status            => x_return_status
7671                 ,x_msg_count                => x_msg_count
7672                 ,x_msg_data                 => x_msg_data
7673           );
7674 
7675           IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
7676               l_msg_index := 1;
7677               l_msg_count := x_msg_count;
7678               WHILE l_msg_count > 0 LOOP
7679                       x_msg_data := FND_MSG_PUB.GET
7680                                   (  l_msg_index,
7681                                      FND_API.G_FALSE );
7682                   csi_gen_utility_pvt.put_line('ERROR FROM CSI_ITEM_INSTANCE_VUHK.Create_Item_Instance_Post API ');
7683                   csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
7684                   l_msg_index := l_msg_index + 1;
7685                   l_msg_count := l_msg_count - 1;
7686               END LOOP;
7687             RAISE FND_API.G_EXC_ERROR;
7688           END IF;
7689             --
7690          END IF;
7691       EXCEPTION
7692         WHEN OTHERS THEN
7693            csi_gen_utility_pvt.put_line('ERROR FROM JTF_USR_HKS.Ok_to_execute API Create Post Vertical');
7694            RAISE FND_API.G_EXC_ERROR;
7695       END;
7696      -- End of POST User Hooks
7697 	 END LOOP;
7698      --End Bug 14684073 by RASRAJA
7699      -- Call Counters and Instantiate EAM Object
7700      FOR inst_row in p_instance_tbl.FIRST .. p_instance_tbl.LAST LOOP
7701         IF p_instance_tbl(inst_row).processed_flag = 'P' THEN
7702            FOR item_row in l_item_attribute_tbl.FIRST .. l_item_attribute_tbl.LAST LOOP
7703               IF p_instance_tbl(inst_row).inventory_item_id = l_item_attribute_tbl(item_row).inventory_item_id AND
7704                  p_instance_tbl(inst_row).vld_organization_id = l_item_attribute_tbl(item_row).organization_id THEN
7705                  l_serial_control := l_item_attribute_tbl(item_row).serial_number_control_code;
7706                  l_eam_item_type := l_item_attribute_tbl(item_row).eam_item_type;
7707                  exit;
7708               END IF;
7709            END LOOP;
7710            --
7711            -- Call counters if Qty is 1 and other conditions satisfy
7712            IF p_instance_tbl(inst_row).quantity = 1 THEN
7713 	      IF NOT((l_serial_control IN (1,6)) AND
7714 		     (p_instance_tbl(inst_row).location_type_code = 'INVENTORY')) THEN
7715 		 l_exists_flag := 'N';
7716 		 l_ctr_exists_flag := 'N';
7717 		 l_ctr_instantiate := 'N';
7718 		 IF l_ctr_tbl.count > 0 THEN
7719 		    FOR ctr_row in l_ctr_tbl.FIRST .. l_ctr_tbl.LAST LOOP
7720 		       IF p_instance_tbl(inst_row).inventory_item_id = l_ctr_tbl(ctr_row).inventory_item_id THEN
7721 			  l_ctr_exists_flag := l_ctr_tbl(ctr_row).ctr_template_exists;
7722 			  l_exists_flag := 'Y';
7723 			  exit;
7724 		       END IF;
7725 		    END LOOP;
7726 		    --
7727 		    IF l_ctr_exists_flag = 'Y' THEN
7728 		       l_ctr_instantiate := 'Y';
7729 		    ELSE
7730 		       l_ctr_instantiate := 'N';
7731 		    END IF;
7732 		 END IF;
7733 		 --
7734 		 IF l_exists_flag = 'N' THEN
7735 		    l_ctr_count := l_ctr_count + 1;
7736 		    l_ctr_tbl(l_ctr_count).inventory_item_id := p_instance_tbl(inst_row).inventory_item_id;
7737 		    -- R12 Project. We no longer use CS counters
7738 		    l_ctr_group_id := 0;
7739 		    Begin
7740                        SELECT COUNT(*)
7741                        INTO l_ctr_group_id
7742                        FROM csi_ctr_item_associations
7743                        WHERE inventory_item_id = p_instance_tbl(inst_row).inventory_item_id
7744                        AND ROWNUM=1;
7745 		    End;
7746 		    --
7747 		    IF l_ctr_group_id > 0 THEN
7748 		       l_ctr_tbl(l_ctr_count).ctr_template_exists := 'Y';
7749 		       l_ctr_instantiate := 'Y';
7750 		    ELSE
7751 		       -- Added code for Bug 9249563
7752 				l_base_item_id := null;
7753 				 Begin
7754 					select base_item_id
7755 					into l_base_item_id
7756 					from MTL_SYSTEM_ITEMS_B
7757 					where inventory_item_id = p_instance_tbl(inst_row).inventory_item_id
7758 					and   organization_id = p_instance_tbl(inst_row).vld_organization_id;
7759 				 Exception
7760 					when no_data_found then
7761 					   null;
7762 					when others then
7766 				 IF l_base_item_id is not null THEN
7763 					   null;
7764 				 End;
7765 				 --
7767 				   l_counter_flag := 0;
7768 				   For ctr_rec in CTR_GROUP(l_base_item_id)
7769 				   Loop
7770 					  Begin
7771 					  IF(ctr_rec.group_id is not null) THEN
7772 					    l_ctr_item_associations_rec.group_id          := ctr_rec.group_id;
7773 					  END IF;
7774 					  IF(ctr_rec.COUNTER_ID is not null) THEN
7775 					    l_ctr_item_associations_rec.COUNTER_ID := ctr_rec.COUNTER_ID;
7776 					  END IF;
7777 					  l_ctr_item_associations_rec.inventory_item_id := p_instance_tbl(inst_row).inventory_item_id;
7778 					  if(ctr_rec.associated_to_group = 'Y') then
7779 					   l_ctr_item_associations_rec.associated_to_group := ctr_rec.associated_to_group;
7780 					  end if;
7781 
7782 					   csi_counter_template_pub.create_item_association
7783 						   (p_api_version               => 1.0
7784 						   ,p_commit                    => fnd_api.g_false
7785 						   ,p_init_msg_list             => fnd_api.g_false
7786 						   ,p_validation_level          => p_validation_level
7787 						   ,p_ctr_item_associations_rec => l_ctr_item_associations_rec
7788 						   ,x_return_status             => x_return_status
7789 						   ,x_msg_count                 => x_msg_count
7790 						   ,x_msg_data                  => x_msg_data
7791 						   );
7792 						l_counter_flag    := 1;
7793 				      End;
7794 				   End Loop;
7795 
7796 				   IF l_counter_flag <> 0 THEN
7797 						l_ctr_tbl(l_ctr_count).ctr_template_exists := 'Y';
7798 						l_ctr_instantiate := 'Y';
7799 					ELSE
7800 						l_ctr_tbl(l_ctr_count).ctr_template_exists := 'N';
7801 						l_ctr_instantiate := 'N';
7802 				   END IF;
7803 				 END IF;
7804 		    END IF;
7805 		 END IF;
7806 		 --
7807 		 IF l_ctr_instantiate = 'Y' THEN
7808 		    IF nvl(l_call_counters,'N') = 'Y' THEN
7809 		       csi_counter_template_pub.autoinstantiate_counters
7810 			  ( p_api_version                => 1.0
7811 			   ,p_init_msg_list              => FND_API.G_TRUE
7812 			   ,p_commit                     => FND_API.G_FALSE
7813 			   ,x_return_status              => x_return_status
7814 			   ,x_msg_count                  => x_msg_count
7815 			   ,x_msg_data                   => x_msg_data
7816 			   ,p_source_object_id_template  => p_instance_tbl(inst_row).inventory_item_id
7817 			   ,p_source_object_id_instance  => p_instance_tbl(inst_row).instance_id
7818                            ,x_ctr_id_template            => l_ctr_id_template
7819                            ,x_ctr_id_instance            => l_ctr_id_instance
7820                            ,x_ctr_grp_id_template        => l_ctr_grp_id_template
7821                            ,x_ctr_grp_id_instance        => l_ctr_grp_id_instance
7822 			   ,p_organization_id            => p_instance_tbl(inst_row).vld_organization_id
7823 			  );
7824 
7825 			  --
7826 			  IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
7827 			     l_msg_index := 1;
7828 			     l_msg_count := x_msg_count;
7829 			     WHILE l_msg_count > 0 LOOP
7830 				x_msg_data := FND_MSG_PUB.GET
7831 					   (  l_msg_index,
7832 					      FND_API.G_FALSE        );
7833 				l_msg_index := l_msg_index + 1;
7834 				l_msg_count := l_msg_count - 1;
7835 			     END LOOP;
7836 			     l_iface_error_text := substr(x_msg_data,1,2000);
7837 			     p_instance_tbl(inst_row).processed_flag := 'E';
7838 			     l_grp_error_tbl(inst_row).error_message := l_iface_error_text;
7839 			     l_grp_error_tbl(inst_row).process_status := 'E';
7840 			     l_error_array(inst_row) := l_iface_error_text;
7841 			     l_status_array(inst_row) := 'E';
7842 			     l_inst_id_array(inst_row) := NULL;
7843 			     l_del_count := l_del_count + 1;
7844 			     l_del_inst_tbl(l_del_count) := p_instance_tbl(inst_row).instance_id;
7845 			     l_del_txn_tbl(l_del_count) := p_txn_tbl(inst_row).transaction_id;
7846 			  END IF;
7847 		    ELSE
7848 		       -- Build the PL/SQL table for Inserting into Counters Temp table
7849 		       l_counter := l_counter + 1;
7850 		       select CSI_CTR_UPLOAD_INSTANCES_S.nextval
7851 		       into l_ctr_id(l_counter) from sys.dual;
7852 		       --
7853 		       l_ctr_ins_id(l_counter) := p_instance_tbl(inst_row).instance_id;
7854 		       l_ctr_item_id(l_counter) := p_instance_tbl(inst_row).inventory_item_id;
7855 		       l_ctr_org_id(l_counter) := p_instance_tbl(inst_row).vld_organization_id;
7856 		    END IF;
7857 		 END IF; -- l_ctr_instantiate is Y
7858 	      END IF;
7859            END IF; -- Qty = 1 check for calling counters
7860            --
7861            IF csi_item_instance_vld_pvt.Check_for_EAM_Item
7862                   ( p_inventory_item_id   => p_instance_tbl(inst_row).inventory_item_id
7863                    ,p_organization_id     => p_instance_tbl(inst_row).vld_organization_id
7864                    ,p_eam_item_type       => l_eam_item_type
7865                   ) THEN
7866 	      EAM_Objectinstantiation_Pub.Instantiate_Object
7867 		  (  p_api_version             => 1.0
7868 		    ,p_init_msg_list           => fnd_api.g_true
7869 		    ,p_commit                  => fnd_api.g_false
7870 		    ,p_validation_level        => p_validation_level
7871 		    ,p_maintenance_object_id   => p_instance_tbl(inst_row).instance_id
7872 		    ,p_maintenance_object_type => 3
7873 		    ,x_return_status           => x_return_status
7874 		    ,x_msg_count               => x_msg_count
7875 		    ,x_msg_data                => x_msg_data
7876 		  );
7877 	      IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
7878 		 l_msg_index := 1;
7879 		 l_msg_count := x_msg_count;
7880 		 WHILE l_msg_count > 0 LOOP
7881 		    x_msg_data := FND_MSG_PUB.GET
7882 			       (  l_msg_index,
7883 				  FND_API.G_FALSE        );
7884 		    l_msg_index := l_msg_index + 1;
7885 		    l_msg_count := l_msg_count - 1;
7886 		 END LOOP;
7887 		 l_iface_error_text := substr(x_msg_data,1,2000);
7888 		 p_instance_tbl(inst_row).processed_flag := 'E';
7892 		 l_status_array(inst_row) := 'E';
7889 		 l_grp_error_tbl(inst_row).error_message := l_iface_error_text;
7890 		 l_grp_error_tbl(inst_row).process_status := 'E';
7891 		 l_error_array(inst_row) := l_iface_error_text;
7893 		 l_inst_id_array(inst_row) := NULL;
7894 		 l_del_count := l_del_count + 1;
7895 		 l_del_inst_tbl(l_del_count) := p_instance_tbl(inst_row).instance_id;
7896 		 l_del_txn_tbl(l_del_count) := p_txn_tbl(inst_row).transaction_id;
7897 	      END IF;
7898            END IF; -- Check for EAM Item
7899         END IF; -- Instance is Valid check
7900      END LOOP;
7901      --
7902      IF l_ctr_id.count > 0 THEN
7903 	BEGIN
7904            FORALL i in 1 .. l_ctr_id.count
7905               INSERT INTO CSI_CTR_UPLOAD_INSTANCES
7906                  (
7907                     UPLOAD_INSTANCE_ID
7908                    ,SOURCE_OBJECT_ID
7909                    ,SOURCE_OBJECT_CODE
7910                    ,ITEM_ID
7911                    ,ORG_ID
7912                    ,LAST_UPDATE_DATE
7913                    ,LAST_UPDATED_BY
7914                    ,LAST_UPDATE_LOGIN
7915                    ,CREATION_DATE
7916                    ,CREATED_BY
7917                  )
7918               VALUES
7919                  (
7920                     l_ctr_id(i)
7921                    ,l_ctr_ins_id(i)
7922                    ,'CP'
7923                    ,l_ctr_item_id(i)
7924                    ,l_ctr_org_id(i)
7925                    ,sysdate
7926                    ,l_user_id
7927                    ,l_login_id
7928                    ,sysdate
7929                    ,l_user_id
7930                  );
7931 	EXCEPTION
7932 	   WHEN OTHERS THEN
7933 	      NULL;
7934 	END;
7935      END IF;
7936      -- Call contracts
7937      csi_gen_utility_pvt.put_line('Calling contracts...');
7938      --
7939      FOR inst_row in p_instance_tbl.FIRST .. p_instance_tbl.LAST LOOP
7940         IF p_instance_tbl(inst_row).processed_flag = 'P' AND
7941            p_instance_tbl(inst_row).call_contracts <> fnd_api.g_false THEN -- honoring the call_contracts
7942            IF l_owner_pty_acct_tbl.count > 0 THEN
7943               l_owner_party_id := NULL;
7944               FOR pty_row in l_owner_pty_acct_tbl.FIRST .. l_owner_pty_acct_tbl.LAST LOOP
7945                  IF p_instance_tbl(inst_row).instance_id = l_owner_pty_acct_tbl(pty_row).instance_id THEN
7946                     l_owner_party_id := l_owner_pty_acct_tbl(pty_row).party_id;
7947                     l_vld_organization_id := l_owner_pty_acct_tbl(pty_row).vld_organization_id;
7948                     exit;
7949                  END IF;
7950               END LOOP;
7951            END IF;
7952            --
7953            IF l_owner_party_id IS NOT NULL AND
7954               l_owner_party_id <> FND_API.G_MISS_NUM AND
7955               l_owner_party_id <> l_internal_party_id THEN
7956 	      -- Call API
7957 	      l_transaction_type:= 'NEW';
7958 
7959           IF (p_instance_tbl(inst_row).call_contracts <> fnd_api.g_false AND p_instance_tbl(inst_row).call_contracts <> 'N') --added by HYONLEE on 01/19/10
7960             THEN
7961 
7962 	      csi_item_instance_pvt.Call_to_Contracts(
7963 			       p_transaction_type   =>   l_transaction_type
7964 			      ,p_instance_id        =>   p_instance_tbl(inst_row).instance_id
7965 			      ,p_new_instance_id    =>   NULL
7966 			      ,p_vld_org_id         =>   p_instance_tbl(inst_row).vld_organization_id
7967 			      ,p_quantity           =>   NULL
7968 			      ,p_party_account_id1  =>   NULL
7969 			      ,p_party_account_id2  =>   NULL
7970 			      ,p_transaction_date   =>   p_txn_tbl(inst_row).transaction_date
7971 			      ,p_source_transaction_date   =>   p_txn_tbl(inst_row).source_transaction_date
7972 			      ,p_grp_call_contracts =>   FND_API.G_TRUE
7973 			      ,p_call_from_bom_expl =>   p_call_from_bom_expl
7974 			      ,p_oks_txn_inst_tbl   =>   px_oks_txn_inst_tbl
7975 			      ,x_return_status      =>   x_return_status
7976 			      ,x_msg_count          =>   x_msg_count
7977 			      ,x_msg_data           =>   x_msg_data
7978 			       );
7979 	      IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS)
7980 	      THEN
7981 		 csi_gen_utility_pvt.put_line('Error from Call_to_contracts...');
7982 		 l_msg_index := 1;
7983 		 l_msg_count := x_msg_count;
7984 		 WHILE l_msg_count > 0 LOOP
7985 		   x_msg_data := FND_MSG_PUB.GET
7986 			       (  l_msg_index,
7987 				  FND_API.G_FALSE
7988 				);
7989 		   l_msg_index := l_msg_index + 1;
7990 		   l_msg_count := l_msg_count - 1;
7991 		 END LOOP;
7992 		 l_iface_error_text := substr(x_msg_data,1,2000);
7993 		 p_instance_tbl(inst_row).processed_flag := 'E';
7994 		 l_grp_error_tbl(inst_row).error_message := l_iface_error_text;
7995 		 l_grp_error_tbl(inst_row).process_status := 'E';
7996 		 l_error_array(inst_row) := l_iface_error_text;
7997 		 l_status_array(inst_row) := 'E';
7998 		 l_inst_id_array(inst_row) := NULL;
7999 		 l_del_count := l_del_count + 1;
8000 		 l_del_inst_tbl(l_del_count) := p_instance_tbl(inst_row).instance_id;
8001 		 l_del_txn_tbl(l_del_count) := p_txn_tbl(inst_row).transaction_id;
8002 	      ELSE
8003 		 -- Store the Transactions inorder to Update the Contracts Audit flag later
8004 		 l_upd_txn_count := l_upd_txn_count + 1;
8005 		 l_upd_txn_tbl(l_upd_txn_count) := p_txn_tbl(inst_row).transaction_id;
8006 	      END IF;
8007 	      END IF;
8008            END IF; -- Onwer party ID check
8009         END IF; -- Valid Instance check and call_contracts set to True
8010      END LOOP;
8011      --
8012      IF px_oks_txn_inst_tbl.count > 0 THEN
8013         IF l_debug_level > 1 THEN
8014            csi_gen_utility_pvt.dump_oks_txn_inst_tbl(px_oks_txn_inst_tbl);
8015            csi_gen_utility_pvt.put_line('Calling OKS Core API...');
8016         END IF;
8017 	--
8018         IF l_upd_txn_tbl.count > 0 THEN
8019            FORALL K IN l_upd_txn_tbl.FIRST .. l_upd_txn_tbl.LAST
8023         END IF;
8020               UPDATE CSI_TRANSACTIONS
8021               set contracts_invoked = 'Y'
8022               where transaction_id = l_upd_txn_tbl(K);
8024         --
8025 	OKS_IBINT_PUB.IB_interface
8026 	   (
8027 	     P_Api_Version           =>  1.0,
8028 	     P_init_msg_list         =>  p_init_msg_list,
8029 	     P_single_txn_date_flag  =>  'N',
8030 	     P_Batch_type            =>  NULL,
8031 	     P_Batch_ID              =>  NULL,
8032 	     P_OKS_Txn_Inst_tbl      =>  px_oks_txn_inst_tbl,
8033 	     x_return_status         =>  x_return_status,
8034 	     x_msg_count             =>  x_msg_count,
8035 	     x_msg_data              =>  x_msg_data
8036 	  );
8037      csi_gen_utility_pvt.put_line('Status returned from Oks_ibint_pub.IB_interface is :'||x_return_status);
8038 	IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS)
8039 	THEN
8040 	   csi_gen_utility_pvt.put_line('Error from Call_to_contracts...');
8041 	   l_msg_index := 1;
8042 	   l_msg_count := x_msg_count;
8043 	   WHILE l_msg_count > 0 LOOP
8044 	     x_msg_data := FND_MSG_PUB.GET
8045 			 (  l_msg_index,
8046 			    FND_API.G_FALSE
8047 			  );
8048 	       csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
8049 	     l_msg_index := l_msg_index + 1;
8050 	     l_msg_count := l_msg_count - 1;
8051 	   END LOOP;
8052 	   l_iface_error_text := substr(x_msg_data,1,2000);
8053            --
8054            FOR inst_row IN p_instance_tbl.FIRST .. p_instance_tbl.LAST LOOP
8055               IF p_instance_tbl.EXISTS(inst_row) THEN
8056                  p_instance_tbl(inst_row).processed_flag := 'E';
8057 		 l_grp_error_tbl(inst_row).error_message := l_iface_error_text;
8058 		 l_grp_error_tbl(inst_row).process_status := 'E';
8059 		 l_error_array(inst_row) := l_iface_error_text;
8060 		 l_status_array(inst_row) := 'E';
8061 		 l_inst_id_array(inst_row) := NULL;
8062               END IF;
8063            END LOOP;
8064            -- if OKS returns error then everthing gets rolledback
8065            p_grp_error_tbl := l_grp_error_tbl;
8066            RAISE FND_API.G_EXC_ERROR;
8067 	END IF;
8068      END IF; -- px_oks_txn_inst_tbl count
8069   END IF; -- Check for l_bulk_inst_tbl count
8070   --
8071   -- Delete the Instances failed in Counter and Contracts creation.
8072   IF l_del_inst_tbl.count > 0 THEN
8073      BEGIN
8074         FORALL j in l_del_inst_tbl.FIRST .. l_del_inst_tbl.LAST
8075            DELETE FROM CSI_ITEM_INSTANCES WHERE instance_id = l_del_inst_tbl(j);
8076         FORALL j in l_del_inst_tbl.FIRST .. l_del_inst_tbl.LAST
8077            DELETE FROM CSI_IP_ACCOUNTS WHERE instance_party_id in (SELECT instance_party_id
8078                                                                    from CSI_I_PARTIES WHERE instance_id = l_del_inst_tbl(j));
8079         FORALL j in l_del_inst_tbl.FIRST .. l_del_inst_tbl.LAST
8080            DELETE FROM CSI_I_PARTIES WHERE instance_id = l_del_inst_tbl(j);
8081         FORALL j in l_del_inst_tbl.FIRST .. l_del_inst_tbl.LAST
8082            DELETE FROM CSI_I_ORG_ASSIGNMENTS WHERE instance_id = l_del_inst_tbl(j);
8083         FORALL j in l_del_inst_tbl.FIRST .. l_del_inst_tbl.LAST
8084            DELETE FROM CSI_I_PRICING_ATTRIBS WHERE instance_id = l_del_inst_tbl(j);
8085         FORALL j in l_del_inst_tbl.FIRST .. l_del_inst_tbl.LAST
8086            DELETE FROM CSI_I_VERSION_LABELS WHERE instance_id = l_del_inst_tbl(j);
8087         FORALL j in l_del_inst_tbl.FIRST .. l_del_inst_tbl.LAST
8088            DELETE FROM CSI_IEA_VALUES WHERE instance_id = l_del_inst_tbl(j);
8089         FORALL j in l_del_inst_tbl.FIRST .. l_del_inst_tbl.LAST
8090            DELETE FROM CSI_I_ASSETS WHERE instance_id = l_del_inst_tbl(j);
8091         FORALL j in l_del_txn_tbl.FIRST .. l_del_txn_tbl.LAST
8092            DELETE FROM CSI_ITEM_INSTANCES_H WHERE transaction_id = l_del_txn_tbl(j);
8093         FORALL j in l_del_txn_tbl.FIRST .. l_del_txn_tbl.LAST
8094            DELETE FROM CSI_I_PARTIES_H WHERE transaction_id = l_del_txn_tbl(j);
8095         FORALL j in l_del_txn_tbl.FIRST .. l_del_txn_tbl.LAST
8096            DELETE FROM CSI_IP_ACCOUNTS_H WHERE transaction_id = l_del_txn_tbl(j);
8097         FORALL j in l_del_txn_tbl.FIRST .. l_del_txn_tbl.LAST
8098            DELETE FROM CSI_I_ORG_ASSIGNMENTS_H WHERE transaction_id = l_del_txn_tbl(j);
8099         FORALL j in l_del_txn_tbl.FIRST .. l_del_txn_tbl.LAST
8100            DELETE FROM CSI_I_PRICING_ATTRIBS_H WHERE transaction_id = l_del_txn_tbl(j);
8101         FORALL j in l_del_txn_tbl.FIRST .. l_del_txn_tbl.LAST
8102            DELETE FROM CSI_I_VERSION_LABELS_H WHERE transaction_id = l_del_txn_tbl(j);
8103         FORALL j in l_del_txn_tbl.FIRST .. l_del_txn_tbl.LAST
8104            DELETE FROM CSI_IEA_VALUES_H WHERE transaction_id = l_del_txn_tbl(j);
8105         FORALL j in l_del_txn_tbl.FIRST .. l_del_txn_tbl.LAST
8106            DELETE FROM CSI_I_ASSETS_H WHERE transaction_id = l_del_txn_tbl(j);
8107         FORALL j in l_del_txn_tbl.FIRST .. l_del_txn_tbl.LAST
8108            DELETE FROM CSI_TRANSACTIONS WHERE transaction_id = l_del_txn_tbl(j);
8109      END;
8110   END IF;
8111   -- Update Interface Table
8112   IF l_intf_id_array.count > 0 THEN
8113      BEGIN
8114         l_upd_stmt := 'UPDATE CSI_INSTANCE_INTERFACE
8115                      SET instance_id = :ins_id
8116                         ,error_text = :error_text
8117                         ,process_status = :status
8118                      WHERE inst_interface_id = :intf_id';
8119         l_num_of_rows := dbms_sql.open_cursor;
8120         dbms_sql.parse(l_num_of_rows,l_upd_stmt,dbms_sql.native);
8121         dbms_sql.bind_array(l_num_of_rows,':ins_id',l_inst_id_array);
8122         dbms_sql.bind_array(l_num_of_rows,':intf_id',l_intf_id_array);
8123         dbms_sql.bind_array(l_num_of_rows,':status',l_status_array);
8124         dbms_sql.bind_array(l_num_of_rows,':error_text',l_error_array);
8125         l_dummy := dbms_sql.execute(l_num_of_rows);
8126         dbms_sql.close_cursor(l_num_of_rows);
8127 
8128         l_upd_stmt := 'UPDATE CSI_I_ASSET_INTERFACE a
8129                      SET instance_id = :ins_id
8133 			 WHERE  b.instance_id = :a_ins_id
8130 		     , instance_asset_id =
8131 		       ( SELECT instance_asset_id
8132 		         FROM   csi_i_assets b
8134 			 AND    b.fa_asset_id = a.fa_asset_id
8135 			 AND    b.fa_book_type_code = a.fa_book_type_code
8136 			 AND    b.fa_location_id = a.fa_location_id
8137 			 AND    rownum = 1
8138 		        )
8139                      WHERE inst_interface_id = :intf_id';
8140         l_num_of_rows := dbms_sql.open_cursor;
8141         dbms_sql.parse(l_num_of_rows,l_upd_stmt,dbms_sql.native);
8142         dbms_sql.bind_array(l_num_of_rows,':ins_id',l_inst_id_array);
8143         dbms_sql.bind_array(l_num_of_rows,':a_ins_id',l_inst_id_array);
8144         dbms_sql.bind_array(l_num_of_rows,':intf_id',l_intf_id_array);
8145         l_dummy := dbms_sql.execute(l_num_of_rows);
8146         dbms_sql.close_cursor(l_num_of_rows);
8147 
8148      EXCEPTION
8149         WHEN OTHERS THEN
8150            NULL;
8151      END;
8152   END IF;
8153   --
8154   p_grp_error_tbl := l_grp_error_tbl;
8155   x_return_status := FND_API.G_RET_STS_SUCCESS;
8156   --
8157  END IF; --end of instance_tbl count check
8158    -- End of API body
8159    -- Standard check of p_commit.
8160    IF FND_API.To_Boolean( p_commit ) THEN
8161         COMMIT WORK;
8162    END IF;
8163    /***** srramakr commented for bug # 3304439
8164    -- Check for the profile option and disable the trace
8165    IF (l_flag = 'Y') THEN
8166         dbms_session.set_sql_trace(FALSE);
8167    END IF;
8168    -- End disable trace
8169    ****/
8170 
8171    -- Standard call to get message count and if count is  get message info.
8172    FND_MSG_PUB.Count_And_Get
8173                (p_count => x_msg_count ,
8174                  p_data  => x_msg_data
8175                 );
8176 
8177 EXCEPTION
8178    -- The following other_error exception is added for bug 3579121 (rel 11.5.9)
8179    WHEN OTHER_ERROR THEN
8180       x_return_status := FND_API.G_RET_STS_ERROR ;
8181       FND_MSG_PUB.Count_And_Get
8182        (       p_count => x_msg_count,
8183                p_data  => x_msg_data
8184         );
8185 
8186    WHEN FND_API.G_EXC_ERROR THEN
8187                 x_return_status := FND_API.G_RET_STS_ERROR ;
8188                 ROLLBACK TO create_item_instance;
8189                 FND_MSG_PUB.Count_And_Get
8190                 (       p_count => x_msg_count,
8191                         p_data  => x_msg_data
8192                 );
8193 
8194    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
8195    FND_File.Put_Line(Fnd_File.LOG,'Into unexpected exception of grp.create_item_instance');
8196    FND_File.Put_Line(Fnd_File.LOG,'SQLERRM:'||substr(SQLERRM,1,200));
8197                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
8198                 ROLLBACK TO create_item_instance;
8199                 FND_MSG_PUB.Count_And_Get
8200                 (       p_count => x_msg_count,
8201                         p_data  => x_msg_data
8202                 );
8203 
8204    WHEN OTHERS THEN
8205    FND_File.Put_Line(Fnd_File.LOG,'Into when others exception of grp.create_item_instance');
8206    FND_File.Put_Line(Fnd_File.LOG,'SQLERRM:'||substr(SQLERRM,1,200));
8207                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
8208                 ROLLBACK TO create_item_instance;
8209                 IF      FND_MSG_PUB.Check_Msg_Level
8210                         (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
8211                 THEN
8212                 FND_MSG_PUB.Add_Exc_Msg
8213                 (G_PKG_NAME,
8214                  l_api_name
8215                 );
8216                 END IF;
8217                 FND_MSG_PUB.Count_And_Get
8218                 (       p_count                 =>      x_msg_count,
8219                         p_data                  =>      x_msg_data
8220                 );
8221 
8222 END create_item_instance;
8223 
8224 /*----------------------------------------------------*/
8225 /* Procedure name: update_item_instance               */
8226 /* Description :   procedure used to update an Item   */
8227 /*                 Instance                           */
8228 /*----------------------------------------------------*/
8229 
8230 PROCEDURE update_item_instance
8231  (
8232      p_api_version           IN     NUMBER
8233     ,p_commit                IN     VARCHAR2
8234     ,p_init_msg_list         IN     VARCHAR2
8235     ,p_validation_level      IN     NUMBER
8236     ,p_instance_tbl          IN OUT NOCOPY csi_datastructures_pub.instance_tbl
8237     ,p_ext_attrib_values_tbl IN OUT NOCOPY csi_datastructures_pub.extend_attrib_values_tbl
8238     ,p_party_tbl             IN OUT NOCOPY csi_datastructures_pub.party_tbl
8239     ,p_account_tbl           IN OUT NOCOPY csi_datastructures_pub.party_account_tbl
8240     ,p_pricing_attrib_tbl    IN OUT NOCOPY csi_datastructures_pub.pricing_attribs_tbl
8241     ,p_org_assignments_tbl   IN OUT NOCOPY csi_datastructures_pub.organization_units_tbl
8242     ,p_asset_assignment_tbl  IN OUT NOCOPY csi_datastructures_pub.instance_asset_tbl
8243     ,p_txn_rec               IN OUT NOCOPY csi_datastructures_pub.transaction_rec
8244     ,x_instance_id_lst       OUT NOCOPY    csi_datastructures_pub.id_tbl
8245     ,p_grp_upd_error_tbl     OUT NOCOPY    csi_datastructures_pub.grp_upd_error_tbl
8246     ,x_return_status         OUT NOCOPY    VARCHAR2
8247     ,x_msg_count             OUT NOCOPY    NUMBER
8248     ,x_msg_data              OUT NOCOPY    VARCHAR2
8249  )
8250 
8251 IS
8252     l_api_name               CONSTANT VARCHAR2(30)     := 'UPDATE_ITEM_INSTANCE';
8253     l_api_version            CONSTANT NUMBER           := 1.0;
8254     l_debug_level            NUMBER;
8255     l_new_instance_rec       csi_datastructures_pub.instance_rec;
8256     l_temp_instance_rec      csi_datastructures_pub.instance_rec;
8257     l_old_instance_tbl       csi_datastructures_pub.instance_tbl;
8261     l_msg_data               VARCHAR2(2000);
8258     l_version_label_rec      csi_datastructures_pub.version_label_rec;
8259     l_temp_version_label_rec csi_datastructures_pub.version_label_rec;
8260     l_msg_count              NUMBER;
8262     l_msg_index              NUMBER;
8263     l_line_count             NUMBER;
8264     l_flag                   VARCHAR2(1):='N';
8265     l_transaction_type       VARCHAR2(10) := NULL;
8266     l_old_oks_cp_rec         oks_ibint_pub.cp_rec_type;
8267     l_new_oks_cp_rec         oks_ibint_pub.cp_rec_type;
8268     l_contracts_status       VARCHAR2(3);
8269     l_owner_party_id         NUMBER;
8270     l_transaction_date       DATE ;
8271     l_internal_party_id      NUMBER;
8272     l_party_id               NUMBER;
8273     l_active_end_date        DATE;
8274     l_dummy                  VARCHAR2(1);
8275     l_item_attribute_tbl     csi_item_instance_pvt.item_attribute_tbl;
8276     l_location_tbl           csi_item_instance_pvt.location_tbl;
8277     l_generic_id_tbl         csi_item_instance_pvt.generic_id_tbl;
8278     l_lookup_tbl             csi_item_instance_pvt.lookup_tbl;
8279     l_ins_count_rec          csi_item_instance_pvt.ins_count_rec;
8280     l_ou_lookup_tbl          csi_organization_unit_pvt.lookup_tbl;
8281     l_ou_count_rec           csi_organization_unit_pvt.ou_count_rec;
8282     l_ou_id_tbl              csi_organization_unit_pvt.ou_id_tbl;
8283     l_ext_id_tbl             csi_item_instance_pvt.ext_id_tbl;
8284     l_ext_count_rec          csi_item_instance_pvt.ext_count_rec;
8285     l_ext_attr_tbl           csi_item_instance_pvt.ext_attr_tbl;
8286     l_ext_cat_tbl            csi_item_instance_pvt.ext_cat_tbl;
8287     l_asset_lookup_tbl       csi_asset_pvt.lookup_tbl;
8288     l_asset_count_rec        csi_asset_pvt.asset_count_rec;
8289     l_asset_id_tbl           csi_asset_pvt.asset_id_tbl;
8290     l_asset_loc_tbl          csi_asset_pvt.asset_loc_tbl;
8291     --
8292     CURSOR instance_csr(p_ins_id IN NUMBER) is
8293     SELECT
8294 		   INSTANCE_ID
8295 		  ,INSTANCE_NUMBER
8296 		  ,EXTERNAL_REFERENCE
8297 		  ,INVENTORY_ITEM_ID
8298 		  ,INVENTORY_REVISION
8299 		  ,INV_MASTER_ORGANIZATION_ID
8300 		  ,SERIAL_NUMBER
8301 		  ,MFG_SERIAL_NUMBER_FLAG
8302 		  ,LOT_NUMBER
8303 		  ,QUANTITY
8304 		  ,UNIT_OF_MEASURE
8305 		  ,ACCOUNTING_CLASS_CODE
8306 		  ,INSTANCE_CONDITION_ID
8307 		  ,INSTANCE_STATUS_ID
8308 		  ,CUSTOMER_VIEW_FLAG
8309 		  ,MERCHANT_VIEW_FLAG
8310 		  ,SELLABLE_FLAG
8311 		  ,SYSTEM_ID
8312 		  ,INSTANCE_TYPE_CODE
8313 		  ,ACTIVE_START_DATE
8314 		  ,ACTIVE_END_DATE
8315 		  ,LOCATION_TYPE_CODE
8316 		  ,LOCATION_ID
8317 		  ,INV_ORGANIZATION_ID
8318 		  ,INV_SUBINVENTORY_NAME
8319 		  ,INV_LOCATOR_ID
8320 		  ,PA_PROJECT_ID
8321 		  ,PA_PROJECT_TASK_ID
8322 		  ,IN_TRANSIT_ORDER_LINE_ID
8323 		  ,WIP_JOB_ID
8324 		  ,PO_ORDER_LINE_ID
8325 		  ,LAST_OE_ORDER_LINE_ID
8326 		  ,LAST_OE_RMA_LINE_ID
8327 		  ,LAST_PO_PO_LINE_ID
8328 		  ,LAST_OE_PO_NUMBER
8329 		  ,LAST_WIP_JOB_ID
8330 		  ,LAST_PA_PROJECT_ID
8331 		  ,LAST_PA_TASK_ID
8332 		  ,LAST_OE_AGREEMENT_ID
8333 		  ,INSTALL_DATE
8334 		  ,MANUALLY_CREATED_FLAG
8335 		  ,RETURN_BY_DATE
8336 		  ,ACTUAL_RETURN_DATE
8337 		  ,CREATION_COMPLETE_FLAG
8338 		  ,COMPLETENESS_FLAG
8339 		  ,CONTEXT
8340 		  ,ATTRIBUTE1
8341 		  ,ATTRIBUTE2
8342 		  ,ATTRIBUTE3
8343 		  ,ATTRIBUTE4
8344 		  ,ATTRIBUTE5
8345 		  ,ATTRIBUTE6
8346 		  ,ATTRIBUTE7
8347 		  ,ATTRIBUTE8
8348 		  ,ATTRIBUTE9
8349 		  ,ATTRIBUTE10
8350 		  ,ATTRIBUTE11
8351 		  ,ATTRIBUTE12
8352 		  ,ATTRIBUTE13
8353 		  ,ATTRIBUTE14
8354 		  ,ATTRIBUTE15
8355 		  ,CREATED_BY
8356 		  ,CREATION_DATE
8357 		  ,LAST_UPDATED_BY
8358 		  ,LAST_UPDATE_DATE
8359 		  ,LAST_UPDATE_LOGIN
8360 		  ,OBJECT_VERSION_NUMBER
8361 		  ,SECURITY_GROUP_ID
8362 		  ,LAST_TXN_LINE_DETAIL_ID
8363 		  ,INSTALL_LOCATION_TYPE_CODE
8364 		  ,INSTALL_LOCATION_ID
8365 		  ,INSTANCE_USAGE_CODE
8366 		  ,OWNER_PARTY_SOURCE_TABLE
8367 		  ,OWNER_PARTY_ID
8368 		  ,OWNER_PARTY_ACCOUNT_ID
8369 		  ,LAST_VLD_ORGANIZATION_ID
8370 		  ,MIGRATED_FLAG
8371 		  ,NULL PROCESSED_FLAG
8372     from   CSI_ITEM_INSTANCES
8373     where instance_id = p_ins_id;
8374     --
8375     l_instance_csr           instance_csr%ROWTYPE;
8376     --
8377     CURSOR old_ins_csr (p_ins_id IN NUMBER) IS
8378     SELECT
8379 		   INSTANCE_ID
8380 		  ,INSTANCE_NUMBER
8381 		  ,EXTERNAL_REFERENCE
8382 		  ,INVENTORY_ITEM_ID
8383 		  ,INVENTORY_REVISION
8384 		  ,INV_MASTER_ORGANIZATION_ID
8385 		  ,SERIAL_NUMBER
8386 		  ,MFG_SERIAL_NUMBER_FLAG
8387 		  ,LOT_NUMBER
8388 		  ,QUANTITY
8389 		  ,UNIT_OF_MEASURE
8390 		  ,ACCOUNTING_CLASS_CODE
8391 		  ,INSTANCE_CONDITION_ID
8392 		  ,INSTANCE_STATUS_ID
8393 		  ,CUSTOMER_VIEW_FLAG
8394 		  ,MERCHANT_VIEW_FLAG
8395 		  ,SELLABLE_FLAG
8396 		  ,SYSTEM_ID
8397 		  ,INSTANCE_TYPE_CODE
8398 		  ,ACTIVE_START_DATE
8399 		  ,ACTIVE_END_DATE
8400 		  ,LOCATION_TYPE_CODE
8401 		  ,LOCATION_ID
8402 		  ,INV_ORGANIZATION_ID
8403 		  ,INV_SUBINVENTORY_NAME
8404 		  ,INV_LOCATOR_ID
8405 		  ,PA_PROJECT_ID
8406 		  ,PA_PROJECT_TASK_ID
8407 		  ,IN_TRANSIT_ORDER_LINE_ID
8408 		  ,WIP_JOB_ID
8409 		  ,PO_ORDER_LINE_ID
8410 		  ,LAST_OE_ORDER_LINE_ID
8411 		  ,LAST_OE_RMA_LINE_ID
8412 		  ,LAST_PO_PO_LINE_ID
8413 		  ,LAST_OE_PO_NUMBER
8414 		  ,LAST_WIP_JOB_ID
8415 		  ,LAST_PA_PROJECT_ID
8416 		  ,LAST_PA_TASK_ID
8417 		  ,LAST_OE_AGREEMENT_ID
8418 		  ,INSTALL_DATE
8419 		  ,MANUALLY_CREATED_FLAG
8420 		  ,RETURN_BY_DATE
8421 		  ,ACTUAL_RETURN_DATE
8422 		  ,CREATION_COMPLETE_FLAG
8423 		  ,COMPLETENESS_FLAG
8424 		  ,CONTEXT
8428 		  ,ATTRIBUTE4
8425 		  ,ATTRIBUTE1
8426 		  ,ATTRIBUTE2
8427 		  ,ATTRIBUTE3
8429 		  ,ATTRIBUTE5
8430 		  ,ATTRIBUTE6
8431 		  ,ATTRIBUTE7
8432 		  ,ATTRIBUTE8
8433 		  ,ATTRIBUTE9
8434 		  ,ATTRIBUTE10
8435 		  ,ATTRIBUTE11
8436 		  ,ATTRIBUTE12
8437 		  ,ATTRIBUTE13
8438 		  ,ATTRIBUTE14
8439 		  ,ATTRIBUTE15
8440 		  ,CREATED_BY
8441 		  ,CREATION_DATE
8442 		  ,LAST_UPDATED_BY
8443 		  ,LAST_UPDATE_DATE
8444 		  ,LAST_UPDATE_LOGIN
8445 		  ,OBJECT_VERSION_NUMBER
8446 		  ,SECURITY_GROUP_ID
8447 		  ,LAST_TXN_LINE_DETAIL_ID
8448 		  ,INSTALL_LOCATION_TYPE_CODE
8449 		  ,INSTALL_LOCATION_ID
8450 		  ,INSTANCE_USAGE_CODE
8451 		  ,OWNER_PARTY_SOURCE_TABLE
8452 		  ,OWNER_PARTY_ID
8453 		  ,OWNER_PARTY_ACCOUNT_ID
8454 		  ,LAST_VLD_ORGANIZATION_ID
8455 		  ,MIGRATED_FLAG
8456 		  ,NULL PROCESSED_FLAG
8457     FROM CSI_ITEM_INSTANCES
8458     WHERE instance_id = p_ins_id;
8459     l_old_ins_csr           old_ins_csr%ROWTYPE;
8460     --
8461     l_iface_error_text       VARCHAR2(2000);
8462     l_grp_upd_error_tbl      csi_datastructures_pub.grp_upd_error_tbl;
8463     l_grp_error_count        NUMBER := 0;
8464     l_order_line_id          NUMBER;
8465     --
8466     l_owner_party_tbl          csi_datastructures_pub.party_tbl;
8467     l_party_tbl                csi_datastructures_pub.party_tbl;
8468     l_contact_party_tbl        csi_datastructures_pub.party_tbl;
8469     l_owner_acct_tbl           csi_datastructures_pub.party_account_tbl;
8470     l_pty_acct_tbl             csi_datastructures_pub.party_account_tbl;
8471     --
8472     l_upd_party_tbl            csi_datastructures_pub.party_tbl;
8473     l_upd_acct_tbl             csi_datastructures_pub.party_account_tbl;
8474     l_upd_count                NUMBER := 0;
8475     --
8476     l_owner_count              NUMBER := 0;
8477     l_party_count              NUMBER := 0;
8478     l_contact_count            NUMBER := 0;
8479     l_owner_acct_count         NUMBER := 0;
8480     l_pty_acct_count           NUMBER := 0;
8481     Process_next               EXCEPTION;
8482     --
8483     l_party_slot_tbl           T_NUM; -- This will be mapped one-to-one with the l_party_tbl
8484     --                                -- It contains the p_party_tbl slot#
8485     l_pty_slot                 NUMBER := 0;
8486     --
8487     TYPE exp_rec IS RECORD
8488        ( instance_id        NUMBER,
8489          instance_status_id NUMBER,
8490          active_end_date    DATE
8491        );
8492     TYPE exp_tbl IS TABLE OF exp_rec INDEX BY BINARY_INTEGER;
8493     --
8494     l_exp_tbl               exp_tbl;
8495     l_exp_count             NUMBER := 0;
8496     --
8497     px_child_inst_tbl        csi_item_instance_grp.child_inst_tbl;
8498     l_child_exists           VARCHAR2(1);
8499     --
8500     px_oks_txn_inst_tbl      oks_ibint_pub.txn_instance_tbl;
8501     l_batch_id               NUMBER;
8502     l_batch_type             VARCHAR2(50);
8503     --
8504     SKIP_ERROR               EXCEPTION;
8505 
8506     CURSOR non_owner_csr (p_ins_pty_id NUMBER) IS
8507       SELECT ip_account_id
8508             ,active_end_date
8509             ,object_version_number
8510       from   csi_ip_accounts
8511       where  instance_party_id=p_ins_pty_id
8512       and    relationship_type_code<>'OWNER';
8513 
8514 BEGIN
8515     -- Standard Start of API savepoint
8516     SAVEPOINT       update_item_instance;
8517 
8518     -- Check for freeze_flag in csi_install_parameters is set to 'Y'
8519 
8520     csi_utility_grp.check_ib_active;
8521 
8522     -- Standard call to check for call compatibility.
8523     IF NOT FND_API.Compatible_API_Call (l_api_version,
8524 					    p_api_version,
8525 					    l_api_name       ,
8526 					    G_PKG_NAME       )
8527     THEN
8528 	    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
8529     END IF;
8530 
8531     -- Initialize message list if p_init_msg_list is set to TRUE.
8532     IF FND_API.to_Boolean( p_init_msg_list ) THEN
8533 	    FND_MSG_PUB.initialize;
8534     END IF;
8535 
8536     --  Initialize API return status to success
8537     x_return_status := FND_API.G_RET_STS_SUCCESS;
8538 
8539     -- Check the profile option debug_level for debug message reporting
8540     l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
8541 
8542     -- If debug_level = 1 then dump the procedure name
8543     IF (l_debug_level > 0) THEN
8544 	csi_gen_utility_pvt.put_line( 'update_item_instance');
8545     END IF;
8546     --
8547     /***** srramakr commented for bug # 3304439
8548     -- Check for the profile option and enable trace
8549     l_flag:=CSI_GEN_UTILITY_PVT.enable_trace(l_trace_flag => l_flag);
8550     -- End enable trace
8551     ****/
8552     IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
8553        csi_gen_utility_pvt.populate_install_param_rec;
8554     END IF;
8555     --
8556     l_internal_party_id := csi_datastructures_pub.g_install_param_rec.internal_party_id;
8557     --
8558     IF l_internal_party_id IS NULL THEN
8559        FND_MESSAGE.SET_NAME('CSI','CSI_API_UNINSTALLED_PARAMETER');
8560        FND_MSG_PUB.ADD;
8561        RAISE FND_API.G_EXC_ERROR;
8562     END IF;
8563     --
8564     l_old_instance_tbl.DELETE;
8565     IF (p_instance_tbl.count > 0) THEN
8566        FOR ins_row IN p_instance_tbl.FIRST .. p_instance_tbl.LAST
8567        LOOP
8568 	  IF p_instance_tbl.EXISTS(ins_row) THEN
8569 	     -- If the debug level = 2 then dump all the parameters values.
8570 	     IF (l_debug_level > 1) THEN
8571 		csi_gen_utility_pvt.put_line( 'update_item_instance'     ||
8572 					     p_api_version         ||'-'||
8573 					     p_commit              ||'-'||
8574 					     p_init_msg_list       ||'-'||
8575 					     p_validation_level );
8579 		csi_gen_utility_pvt.dump_organization_unit_tbl(p_org_assignments_tbl);
8576 		csi_gen_utility_pvt.dump_instance_rec(p_instance_tbl(ins_row));
8577 		csi_gen_utility_pvt.dump_party_tbl(p_party_tbl);
8578 		csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
8580 		csi_gen_utility_pvt.dump_pricing_attribs_tbl(p_pricing_attrib_tbl);
8581 		csi_gen_utility_pvt.dump_party_account_tbl(p_account_tbl);
8582 		csi_gen_utility_pvt.dump_ext_attrib_values_tbl(p_ext_attrib_values_tbl);
8583 	     END IF;
8584 	     -- Start API body
8585 	     -- This will fetch old instance data for the purpose of contracts
8586 	     OPEN   old_ins_csr (p_instance_tbl(ins_row).instance_id);
8587 	     FETCH  old_ins_csr INTO l_old_ins_csr;
8588 	     CLOSE  old_ins_csr;
8589 	     -- Following table will be used for calling contracts.
8590 	     l_old_instance_tbl(ins_row).instance_id := p_instance_tbl(ins_row).instance_id;
8591 	     l_old_instance_tbl(ins_row).active_end_date := l_old_ins_csr.active_end_date;
8592              l_old_instance_tbl(ins_row).quantity := l_old_ins_csr.quantity;
8593              l_old_instance_tbl(ins_row).install_date := l_old_ins_csr.install_date;
8594              l_old_instance_tbl(ins_row).last_oe_order_line_id := l_old_ins_csr.last_oe_order_line_id;
8595              l_old_instance_tbl(ins_row).in_transit_order_line_id := l_old_ins_csr.in_transit_order_line_id;
8596 	     --
8597 	     -- End fetching old instance data for the purpose of contracts
8598 	     --
8599 	     l_new_instance_rec := p_instance_tbl(ins_row);
8600              --
8601              -- Check whether the instance is getting expired. If so, then update the other attributes
8602              -- and then expire the instance.
8603              IF l_new_instance_rec.active_end_date IS NOT NULL AND
8604                 l_new_instance_rec.active_end_date <> FND_API.G_MISS_DATE AND
8605                 l_new_instance_rec.active_end_date < sysdate THEN
8606                 -- Store the following attributes in a PL/SQL tbl.
8607                 -- ins_row is used as the slot# so that when Update API is called again, the status of
8608                 -- p_instance_tbl can be updated directly using this ins_row.
8609                 l_exp_tbl(ins_row).instance_id := l_new_instance_rec.instance_id;
8610                 l_exp_tbl(ins_row).instance_status_id := l_new_instance_rec.instance_status_id;
8611                 l_exp_tbl(ins_row).active_end_date := l_new_instance_rec.active_end_date;
8612                 l_new_instance_rec.active_end_date := fnd_api.g_miss_date;
8613                 l_new_instance_rec.instance_status_id := fnd_api.g_miss_num;
8614              END IF;
8615              --
8616              -- If any of the attribute values are different from the DB value then call Update API.
8617 	     IF (csi_Item_Instance_Pvt.Anything_To_Update(p_instance_rec => l_new_instance_rec)) THEN
8618                 l_child_exists := 'N';
8619                 IF px_child_inst_tbl.count > 0 THEN
8620                    FOR k IN px_child_inst_tbl.FIRST .. px_child_inst_tbl.LAST LOOP
8621                       IF l_new_instance_rec.instance_id = px_child_inst_tbl(k) THEN
8622                          l_child_exists := 'Y';
8623                          exit;
8624                       END IF;
8625                    END LOOP;
8626                 END IF;
8627                 --
8628                 IF l_child_exists = 'Y' THEN -- Call update API with the New object version Number
8629                    select object_version_number
8630                    into l_new_instance_rec.object_version_number
8631                    from CSI_ITEM_INSTANCES
8632                    where instance_id = l_new_instance_rec.instance_id;
8633                 END IF;
8634 		-- Call the update_item_instance private API to update the instances
8635 		l_iface_error_text := NULL;
8636 		csi_item_instance_pvt.update_item_instance
8637 			       (
8638 				p_api_version        => p_api_version
8639 			       ,p_commit             => fnd_api.g_false
8640 			       ,p_init_msg_list      => p_init_msg_list
8641 			       ,p_validation_level   => p_validation_level
8642 			       ,p_instance_rec       => l_new_instance_rec
8643 			       ,p_txn_rec            => p_txn_rec
8644 			       ,x_instance_id_lst    => x_instance_id_lst
8645 			       ,x_return_status      => x_return_status
8646 			       ,x_msg_count          => x_msg_count
8647 			       ,x_msg_data           => x_msg_data
8648 			       ,p_item_attribute_tbl => l_item_attribute_tbl
8649 			       ,p_location_tbl       => l_location_tbl
8650 			       ,p_generic_id_tbl     => l_generic_id_tbl
8651 			       ,p_lookup_tbl         => l_lookup_tbl
8652 			       ,p_ins_count_rec      => l_ins_count_rec
8653                                ,p_oks_txn_inst_tbl   => px_oks_txn_inst_tbl
8654                                ,p_child_inst_tbl     => px_child_inst_tbl
8655 			      );
8656 
8657                 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
8658 		   csi_gen_utility_pvt.put_line( 'Error from UPDATE_ITEM_INSTANCE_PVT..');
8659 		   l_msg_index := 1;
8660 		   l_msg_count := x_msg_count;
8661 		   WHILE l_msg_count > 0 LOOP
8662 		       x_msg_data := FND_MSG_PUB.GET
8663 					     ( l_msg_index,
8664 					       FND_API.G_FALSE );
8665 		       csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
8666 		       l_msg_index := l_msg_index + 1;
8667 		       l_msg_count := l_msg_count - 1;
8668                    END LOOP;
8669 		   --  RAISE FND_API.G_EXC_ERROR;
8670                    p_instance_tbl(ins_row).processed_flag := 'E';
8671 		   l_iface_error_text := substr(x_msg_data,1,2000);
8672 		   l_grp_error_count := l_grp_error_count + 1;
8673 		   l_grp_upd_error_tbl(l_grp_error_count).instance_id := l_new_instance_rec.instance_id;
8674 		   l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'INSTANCE';
8675 		   l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8676                 ELSE
8677                    p_instance_tbl(ins_row).processed_flag := 'P';
8678                 END IF;
8679              END IF;
8680 	  END IF; -- Check Instance Tbl existance.
8684        --
8681        END LOOP;
8682        --
8683        px_child_inst_tbl.DELETE;
8685     END IF;
8686     --
8687     px_child_inst_tbl.DELETE;
8688     --
8689     IF p_party_tbl.count > 0 THEN
8690        FOR pty IN p_party_tbl.FIRST .. p_party_tbl.LAST LOOP
8691 	  IF p_party_tbl.EXISTS(pty) THEN
8692 	     IF p_party_tbl(pty).contact_flag <> 'Y' THEN
8693 		IF p_party_tbl(pty).relationship_type_code = 'OWNER' THEN
8694 		   l_owner_count := l_owner_count + 1;
8695 		   l_owner_party_tbl(l_owner_count) := p_party_tbl(pty);
8696 		   IF p_account_tbl.count > 0 THEN
8697 		      FOR acct IN p_account_tbl.FIRST .. p_account_tbl.LAST LOOP
8698 			 IF p_account_tbl.EXISTS(acct) THEN
8699 			    IF p_account_tbl(acct).parent_tbl_index = pty THEN
8700 			       l_owner_acct_count := l_owner_acct_count + 1;
8701 			       l_owner_acct_tbl(l_owner_acct_count) := p_account_tbl(acct);
8702 			       l_owner_acct_tbl(l_owner_acct_count).parent_tbl_index := l_owner_count;
8703 			       --Changes for Web ADI
8704 				   --l_owner_acct_tbl(l_owner_acct_count).call_contracts := fnd_api.g_true;
8705 					IF(Nvl(l_owner_acct_tbl(l_owner_acct_count).CALL_CONTRACTS, FND_API.G_FALSE)
8706 					= FND_API.G_FALSE) AND (p_txn_rec.transaction_type_id = 3) AND
8707 					(nvl(p_txn_rec.source_group_ref, FND_API.G_MISS_CHAR) = 'WBADI') THEN
8708 						l_owner_acct_tbl(l_owner_acct_count).call_contracts := fnd_api.g_false;
8709 					ELSE
8710 						l_owner_acct_tbl(l_owner_acct_count).call_contracts := fnd_api.g_true;
8711 					END IF;
8712 			 --Changes for Web ADI end
8713 			    END IF;
8714 			 END IF;
8715 		      END LOOP; -- Account Loop
8716 		   END IF;
8717 		ELSE -- Non-Owner Party
8718 		   l_party_count := l_party_count + 1;
8719 		   l_party_tbl(l_party_count) := p_party_tbl(pty);
8720 		   l_pty_slot := l_pty_slot +1 ;
8721 		   l_party_slot_tbl(l_pty_slot) := pty;
8722 		   IF p_account_tbl.count > 0 THEN
8723 		      FOR acct IN p_account_tbl.FIRST .. p_account_tbl.LAST LOOP
8724 			 IF p_account_tbl.EXISTS(acct) THEN
8725 			    IF p_account_tbl(acct).parent_tbl_index = pty THEN
8726 			       l_pty_acct_count := l_pty_acct_count + 1;
8727 			       l_pty_acct_tbl(l_pty_acct_count) := p_account_tbl(acct);
8728 			       l_pty_acct_tbl(l_pty_acct_count).parent_tbl_index := l_party_count;
8729 			    END IF;
8730 			 END IF;
8731 		      END LOOP; -- Account Loop
8732                    END IF;
8733 		END IF; -- Relationship Type check
8734 	     ELSE -- Contact Party
8735 		l_contact_count := l_contact_count + 1;
8736 		l_contact_party_tbl(l_contact_count) := p_party_tbl(pty);
8737 	     END IF; -- Contact flag check
8738 	  END IF;
8739        END LOOP; -- Party Loop
8740     END IF;
8741     --
8742     -- Owner Party Tbl will always have instance_party_id and hence we need to call Update Party API
8743     -- If the corresponding account entity is getting created then Update Party API hadles that.
8744     IF l_owner_party_tbl.count > 0 THEN
8745        FOR J IN l_owner_party_tbl.FIRST .. l_owner_party_tbl.LAST LOOP
8746 	  l_upd_party_tbl.DELETE;
8747 	  l_upd_acct_tbl.DELETE;
8748 	  l_upd_count := 0;
8749 	  --
8750 	  l_upd_party_tbl(1) := l_owner_party_tbl(J);
8751 	  --
8752 	  IF l_owner_acct_tbl.count > 0 THEN
8753 	     FOR K IN l_owner_acct_tbl.FIRST .. l_owner_acct_tbl.LAST LOOP
8754 		IF l_owner_acct_tbl(K).parent_tbl_index = J THEN
8755 		   l_upd_count := l_upd_count + 1;
8756 		   l_upd_acct_tbl(l_upd_count) := l_owner_acct_tbl(K);
8757                    l_upd_acct_tbl(l_upd_count).parent_tbl_index := 1; -- Party tbl always contains 1 rec
8758 		END IF;
8759 	     END LOOP;
8760 	  END IF;
8761 	  --
8762 	  -- Call Update Party API for this set
8763 	  csi_party_relationships_pub.update_inst_party_relationship
8764 	    (  p_api_version      => p_api_version
8765 	      ,p_commit           => fnd_api.g_false
8766 	      ,p_init_msg_list    => fnd_api.g_false
8767 	      ,p_validation_level => p_validation_level
8768 	      ,p_party_tbl        => l_upd_party_tbl
8769 	      ,p_party_account_tbl=> l_upd_acct_tbl
8770 	      ,p_txn_rec          => p_txn_rec
8771 	      ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
8772 	      ,x_return_status    => x_return_status
8773 	      ,x_msg_count        => x_msg_count
8774 	      ,x_msg_data         => x_msg_data
8775 	    );
8776 	  --
8777 	  IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
8778 	     l_msg_index := 1;
8779 	     l_msg_count := x_msg_count;
8780 	     WHILE l_msg_count > 0
8781 	     LOOP
8782 		x_msg_data := FND_MSG_PUB.GET
8783 				 (  l_msg_index,
8784 				    FND_API.G_FALSE       );
8785 		csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
8786 		l_msg_index := l_msg_index + 1;
8787 		l_msg_count := l_msg_count - 1;
8788 	     END LOOP;
8789 	     l_iface_error_text := substr(x_msg_data,1,2000);
8790 	     l_grp_error_count := l_grp_error_count + 1;
8791 	     l_grp_upd_error_tbl(l_grp_error_count).instance_id := l_upd_party_tbl(1).instance_id;
8792 	     l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'PARTY';
8793 	     l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8794 	  END IF;
8795        END LOOP;
8796     END IF; -- Owner Party Tbl count check
8797     --
8798     IF l_party_tbl.count > 0 THEN
8799        FOR J IN l_party_tbl.FIRST .. l_party_tbl.LAST LOOP
8800 	  l_upd_party_tbl.DELETE;
8801 	  l_upd_acct_tbl.DELETE;
8802 	  l_upd_count := 0;
8803 	  --
8804 	  l_upd_party_tbl(1) := l_party_tbl(J);
8805 	  --
8806 	  IF l_pty_acct_tbl.count > 0 THEN
8807 	     FOR K IN l_pty_acct_tbl.FIRST .. l_pty_acct_tbl.LAST LOOP
8808 		IF l_pty_acct_tbl(K).parent_tbl_index = J THEN
8809 		   l_upd_count := l_upd_count + 1;
8810 		   l_upd_acct_tbl(l_upd_count) := l_pty_acct_tbl(K);
8811                    l_upd_acct_tbl(l_upd_count).parent_tbl_index := 1; -- Party tbl always contains 1 record
8812 		END IF;
8816 	  IF l_upd_party_tbl(1).instance_party_id IS NULL OR
8813 	     END LOOP;
8814 	  END IF;
8815 	  --
8817 	     l_upd_party_tbl(1).instance_party_id = FND_API.G_MISS_NUM THEN
8818 	     -- Call Create Party API
8819 	     csi_party_relationships_pub.create_inst_party_relationship
8820 	      ( p_api_version         => p_api_version
8821 	       ,p_commit              => fnd_api.g_false
8822 	       ,p_init_msg_list       => p_init_msg_list
8823 	       ,p_validation_level    => p_validation_level
8824 	       ,p_party_tbl           => l_upd_party_tbl
8825 	       ,p_party_account_tbl   => l_upd_acct_tbl
8826 	       ,p_txn_rec             => p_txn_rec
8827 	       ,p_oks_txn_inst_tbl    => px_oks_txn_inst_tbl
8828 	       ,x_return_status       => x_return_status
8829 	       ,x_msg_count           => x_msg_count
8830 	       ,x_msg_data            => x_msg_data
8831 	     );
8832 	     --
8833 	     IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
8834 		l_msg_index := 1;
8835 		l_msg_count := x_msg_count;
8836 		WHILE l_msg_count > 0
8837 		LOOP
8838 		   x_msg_data := FND_MSG_PUB.GET
8839 				    (  l_msg_index,
8840 				       FND_API.G_FALSE       );
8841 		   csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
8842 		   l_msg_index := l_msg_index + 1;
8843 		   l_msg_count := l_msg_count - 1;
8844 		END LOOP;
8845 		l_iface_error_text := substr(x_msg_data,1,2000);
8846 		l_grp_error_count := l_grp_error_count + 1;
8847 		l_grp_upd_error_tbl(l_grp_error_count).instance_id := l_upd_party_tbl(1).instance_id;
8848 		l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'PARTY';
8849 		l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8850 	     ELSE -- Update the instance_party_id for the corresponding p_party_tbl
8851 		IF l_party_slot_tbl.count > 0 THEN
8852 			 p_party_tbl(l_party_slot_tbl(J)).instance_party_id :=
8853 						       l_upd_party_tbl(1).instance_party_id;
8854 		END IF;
8855 	     END IF;
8856 	  ELSE
8857 	     -- Call Update Party API
8858 	     csi_party_relationships_pub.update_inst_party_relationship
8859 	       (  p_api_version      => p_api_version
8860 		 ,p_commit           => fnd_api.g_false
8861 		 ,p_init_msg_list    => fnd_api.g_false
8862 		 ,p_validation_level => p_validation_level
8863 		 ,p_party_tbl        => l_upd_party_tbl
8864 		 ,p_party_account_tbl=> l_upd_acct_tbl
8865 		 ,p_txn_rec          => p_txn_rec
8866 		 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
8867 		 ,x_return_status    => x_return_status
8868 		 ,x_msg_count        => x_msg_count
8869 		 ,x_msg_data         => x_msg_data
8870 	       );
8871 	     --
8872 	     IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
8873 		l_msg_index := 1;
8874 		l_msg_count := x_msg_count;
8875 		WHILE l_msg_count > 0
8876 		LOOP
8877 		   x_msg_data := FND_MSG_PUB.GET
8878 				    (  l_msg_index,
8879 				       FND_API.G_FALSE       );
8880 		   csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
8881 		   l_msg_index := l_msg_index + 1;
8882 		   l_msg_count := l_msg_count - 1;
8883 		END LOOP;
8884 		l_iface_error_text := substr(x_msg_data,1,2000);
8885 		l_grp_error_count := l_grp_error_count + 1;
8886 		l_grp_upd_error_tbl(l_grp_error_count).instance_id := l_upd_party_tbl(1).instance_id;
8887 		l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'PARTY';
8888 		l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8889 	     END IF;
8890 	  END IF;
8891        END LOOP;
8892     END IF; -- Non-Owner Party Tbl count check
8893     --
8894     -- Call Party API for Contacts
8895     l_upd_acct_tbl.DELETE;
8896     IF l_contact_party_tbl.count > 0 THEN
8897        FOR J IN l_contact_party_tbl.FIRST .. l_contact_party_tbl.LAST LOOP
8898 	  Begin
8899 	     l_upd_party_tbl.DELETE;
8900 	     l_upd_party_tbl(1) := l_contact_party_tbl(J);
8901 	     --
8902 	     -- Get the correct contact_ip_id if not passed
8903 	     --
8904 	     IF l_contact_party_tbl(J).contact_ip_id IS NULL OR
8905 		l_contact_party_tbl(J).contact_ip_id = FND_API.G_MISS_NUM THEN
8906 		IF NVL(l_contact_party_tbl(J).contact_parent_tbl_index,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM
8907 		THEN
8908 		   IF p_party_tbl.EXISTS(l_contact_party_tbl(J).contact_parent_tbl_index) THEN
8909 		      l_contact_party_tbl(J).contact_ip_id :=
8910 			    p_party_tbl(l_contact_party_tbl(J).contact_parent_tbl_index).instance_party_id;
8911                       l_upd_party_tbl(1).contact_ip_id := l_contact_party_tbl(J).contact_ip_id;
8912 		   ELSE
8913 		      l_iface_error_text := 'Invalid contact_parent_tbl_index';
8914 		      l_grp_error_count := l_grp_error_count + 1;
8915 		      l_grp_upd_error_tbl(l_grp_error_count).instance_id := l_upd_party_tbl(1).instance_id;
8916 		      l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'PARTY';
8917 		      l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8918 		      Raise Process_next;
8919 		   END IF;
8920 		ELSE
8921 		   l_iface_error_text := 'Either Contact_parent_tbl_index or Contact_Ip_ID should be passed for Contacts';
8922 		   l_grp_error_count := l_grp_error_count + 1;
8923 		   l_grp_upd_error_tbl(l_grp_error_count).instance_id := l_upd_party_tbl(1).instance_id;
8924 		   l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'PARTY';
8925 		   l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8926 		   Raise Process_next;
8927 		END IF;
8928 	     END IF;
8929 	     --
8930 	     IF l_upd_party_tbl(1).instance_party_id IS NULL OR
8931 		l_upd_party_tbl(1).instance_party_id = FND_API.G_MISS_NUM THEN
8932 		-- Call Create Party API
8933 		csi_party_relationships_pub.create_inst_party_relationship
8934 		 ( p_api_version         => p_api_version
8935 		  ,p_commit              => fnd_api.g_false
8936 		  ,p_init_msg_list       => p_init_msg_list
8937 		  ,p_validation_level    => p_validation_level
8938 		  ,p_party_tbl           => l_upd_party_tbl
8942 		  ,x_return_status       => x_return_status
8939 		  ,p_party_account_tbl   => l_upd_acct_tbl
8940 		  ,p_txn_rec             => p_txn_rec
8941 		  ,p_oks_txn_inst_tbl    => px_oks_txn_inst_tbl
8943 		  ,x_msg_count           => x_msg_count
8944 		  ,x_msg_data            => x_msg_data
8945 		);
8946 		--
8947 		IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
8948 		   l_msg_index := 1;
8949 		   l_msg_count := x_msg_count;
8950 		   WHILE l_msg_count > 0
8951 		   LOOP
8952 		      x_msg_data := FND_MSG_PUB.GET
8953 				       (  l_msg_index,
8954 					  FND_API.G_FALSE       );
8955 		      csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
8956 		      l_msg_index := l_msg_index + 1;
8957 		      l_msg_count := l_msg_count - 1;
8958 		   END LOOP;
8959 		   l_iface_error_text := substr(x_msg_data,1,2000);
8960 		   l_grp_error_count := l_grp_error_count + 1;
8961 		   l_grp_upd_error_tbl(l_grp_error_count).instance_id := l_upd_party_tbl(1).instance_id;
8962 		   l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'PARTY';
8963 		   l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8964 		END IF;
8965 	     ELSE
8966 		-- Call Update Party API
8967 		csi_party_relationships_pub.update_inst_party_relationship
8968 		  (  p_api_version      => p_api_version
8969 		    ,p_commit           => fnd_api.g_false
8970 		    ,p_init_msg_list    => fnd_api.g_false
8971 		    ,p_validation_level => p_validation_level
8972 		    ,p_party_tbl        => l_upd_party_tbl
8973 		    ,p_party_account_tbl=> l_upd_acct_tbl
8974 		    ,p_txn_rec          => p_txn_rec
8975 		    ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
8976 		    ,x_return_status    => x_return_status
8977 		    ,x_msg_count        => x_msg_count
8978 		    ,x_msg_data         => x_msg_data
8979 		  );
8980 		--
8981 		IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
8982 		   l_msg_index := 1;
8983 		   l_msg_count := x_msg_count;
8984 		   WHILE l_msg_count > 0
8985 		   LOOP
8986 		      x_msg_data := FND_MSG_PUB.GET
8987 				       (  l_msg_index,
8988 					  FND_API.G_FALSE       );
8989 		      csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
8990 		      l_msg_index := l_msg_index + 1;
8991 		      l_msg_count := l_msg_count - 1;
8992 		   END LOOP;
8993 		   l_iface_error_text := substr(x_msg_data,1,2000);
8994 		   l_grp_error_count := l_grp_error_count + 1;
8995 		   l_grp_upd_error_tbl(l_grp_error_count).instance_id := l_upd_party_tbl(1).instance_id;
8996 		   l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'PARTY';
8997 		   l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8998 		END IF;
8999 	     END IF;
9000 	  Exception
9001 	     when Process_next then
9002 		null;
9003 	  End;
9004        END LOOP;
9005     END IF; -- l_contact_party_tbl count check
9006    -- Call update_organization_unit to associate any org. assignments
9007    -- to the item instance
9008  IF (p_org_assignments_tbl.count > 0) THEN
9009     FOR tab_row IN p_org_assignments_tbl.FIRST .. p_org_assignments_tbl.LAST
9010     LOOP
9011       l_iface_error_text := NULL;
9012       IF p_org_assignments_tbl.EXISTS(tab_row) THEN
9013         IF ((p_org_assignments_tbl(tab_row).instance_ou_id IS NULL)
9014            OR
9015            (p_org_assignments_tbl(tab_row).instance_ou_id = FND_API.G_MISS_NUM))
9016         THEN
9017             csi_organization_unit_pvt.create_organization_unit
9018              (p_api_version       => p_api_version
9019              ,p_commit            => fnd_api.g_false
9020              ,p_init_msg_list     => p_init_msg_list
9021              ,p_validation_level  => p_validation_level
9022              ,p_org_unit_rec      => p_org_assignments_tbl(tab_row)
9023              ,p_txn_rec           => p_txn_rec
9024              ,x_return_status     => x_return_status
9025              ,x_msg_count         => x_msg_count
9026              ,x_msg_data          => x_msg_data
9027              ,p_lookup_tbl        => l_ou_lookup_tbl
9028              ,p_ou_count_rec      => l_ou_count_rec
9029              ,p_ou_id_tbl         => l_ou_id_tbl
9030             );
9031          ELSE
9032             csi_organization_unit_pvt.update_organization_unit
9033              (p_api_version       => p_api_version
9034              ,p_commit            => fnd_api.g_false
9035              ,p_init_msg_list     => p_init_msg_list
9036              ,p_validation_level  => p_validation_level
9037              ,p_org_unit_rec      => p_org_assignments_tbl(tab_row)
9038              ,p_txn_rec           => p_txn_rec
9039              ,x_return_status     => x_return_status
9040              ,x_msg_count         => x_msg_count
9041              ,x_msg_data          => x_msg_data
9042              ,p_lookup_tbl        => l_ou_lookup_tbl
9043              ,p_ou_count_rec      => l_ou_count_rec
9044              ,p_ou_id_tbl         => l_ou_id_tbl
9045             );
9046        END IF;
9047        IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
9048           csi_gen_utility_pvt.put_line( ' Error from CSI_ORGANIZATION_UNIT_PVT..');
9049           l_msg_index := 1;
9050           l_msg_count := x_msg_count;
9051              WHILE l_msg_count > 0 LOOP
9052                    x_msg_data := FND_MSG_PUB.GET
9053                           (  l_msg_index,
9054                              FND_API.G_FALSE    );
9055                    csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
9056               l_msg_index := l_msg_index + 1;
9057               l_msg_count := l_msg_count - 1;
9058              END LOOP;
9059              l_iface_error_text := substr(x_msg_data,1,2000);
9060              l_grp_error_count := l_grp_error_count + 1;
9061              l_grp_upd_error_tbl(l_grp_error_count).instance_id := p_org_assignments_tbl(tab_row).instance_id;
9062              l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'ORG_ASSIGN';
9066       END IF;
9063              l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
9064              --  RAISE FND_API.G_EXC_ERROR;
9065         END IF;
9067     END LOOP;
9068   END IF;
9069 
9070    -- Call update_pricing_attribs to associate any pricing attributes
9071    -- to the item instance
9072   IF (p_pricing_attrib_tbl.count > 0) THEN
9073     FOR tab_row IN p_pricing_attrib_tbl.FIRST .. p_pricing_attrib_tbl.LAST
9074     LOOP
9075       l_iface_error_text := NULL;
9076       IF p_pricing_attrib_tbl.EXISTS(tab_row) THEN
9077         IF ((p_pricing_attrib_tbl(tab_row).pricing_attribute_id IS NULL)
9078           OR
9079            (p_pricing_attrib_tbl(tab_row).pricing_attribute_id = FND_API.G_MISS_NUM))
9080         THEN
9081                csi_pricing_attribs_pvt.create_pricing_attribs
9082                 ( p_api_version         => p_api_version
9083                  ,p_commit              => p_commit
9084                  ,p_init_msg_list       => p_init_msg_list
9085                  ,p_validation_level    => p_validation_level
9086                  ,p_pricing_attribs_rec => p_pricing_attrib_tbl(tab_row)
9087                  ,p_txn_rec             => p_txn_rec
9088                  ,x_return_status       => x_return_status
9089                  ,x_msg_count           => x_msg_count
9090                  ,x_msg_data            => x_msg_data
9091                  );
9092          ELSE
9093               csi_pricing_attribs_pvt.update_pricing_attribs
9094                ( p_api_version          => p_api_version
9095                 ,p_commit               => fnd_api.g_false
9096                 ,p_init_msg_list        => p_init_msg_list
9097                 ,p_validation_level     => p_validation_level
9098                 ,p_pricing_attribs_rec  => p_pricing_attrib_tbl(tab_row)
9099                 ,p_txn_rec              => p_txn_rec
9100                 ,x_return_status        => x_return_status
9101                 ,x_msg_count            => x_msg_count
9102                 ,x_msg_data             => x_msg_data
9103                );
9104          END IF;
9105 
9106          IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
9107            csi_gen_utility_pvt.put_line( ' Error from CSI_PRICING_ATTRIBS_PVT..');
9108            l_msg_index := 1;
9109            l_msg_count := x_msg_count;
9110                WHILE l_msg_count > 0 LOOP
9111                      x_msg_data := FND_MSG_PUB.GET
9112                               (  l_msg_index,
9113                                  FND_API.G_FALSE    );
9114                      csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
9115                      l_msg_index := l_msg_index + 1;
9116                      l_msg_count := l_msg_count - 1;
9117                END LOOP;
9118              l_iface_error_text := substr(x_msg_data,1,2000);
9119              l_grp_error_count := l_grp_error_count + 1;
9120              l_grp_upd_error_tbl(l_grp_error_count).instance_id := p_pricing_attrib_tbl(tab_row).instance_id;
9121              l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'PRICING';
9122              l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
9123              --  RAISE FND_API.G_EXC_ERROR;
9124          END IF;
9125      END IF;
9126    END LOOP;
9127  END IF;
9128 
9129 -- Call create_extended_attribs to associate any extended attributes
9130 -- to the item instance
9131  IF (p_ext_attrib_values_tbl.count > 0) THEN
9132     FOR tab_row IN p_ext_attrib_values_tbl.FIRST .. p_ext_attrib_values_tbl.LAST
9133     LOOP
9134       l_iface_error_text := NULL;
9135       IF p_ext_attrib_values_tbl.EXISTS (tab_row) THEN
9136         IF ((p_ext_attrib_values_tbl(tab_row).attribute_value_id IS NULL)
9137           OR
9138            (p_ext_attrib_values_tbl(tab_row).attribute_value_id = FND_API.G_MISS_NUM))
9139          THEN
9140             csi_item_instance_pvt.create_extended_attrib_values
9141                 ( p_api_version         => p_api_version
9142                  ,p_commit              => fnd_api.g_false
9143                  ,p_init_msg_list       => p_init_msg_list
9144                  ,p_validation_level    => p_validation_level
9145                  ,p_ext_attrib_rec      => p_ext_attrib_values_tbl(tab_row)
9146                  ,p_txn_rec             => p_txn_rec
9147                  ,x_return_status       => x_return_status
9148                  ,x_msg_count           => x_msg_count
9149                  ,x_msg_data            => x_msg_data
9150                  ,p_ext_id_tbl          => l_ext_id_tbl
9151                  ,p_ext_count_rec       => l_ext_count_rec
9152                  ,p_ext_attr_tbl        => l_ext_attr_tbl
9153                  ,p_ext_cat_tbl         => l_ext_cat_tbl
9154                 );
9155         ELSE
9156            -- call the update extended attributes api
9157            csi_item_instance_pvt.update_extended_attrib_values
9158                ( p_api_version          => p_api_version
9159                 ,p_commit               => fnd_api.g_false
9160                 ,p_init_msg_list        => p_init_msg_list
9161                 ,p_validation_level     => p_validation_level
9162                 ,p_ext_attrib_rec       => p_ext_attrib_values_tbl(tab_row)
9163                 ,p_txn_rec              => p_txn_rec
9164                 ,x_return_status        => x_return_status
9165                 ,x_msg_count            => x_msg_count
9166                 ,x_msg_data             => x_msg_data
9167                );
9168         END IF;
9169         IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
9170             csi_gen_utility_pvt.put_line( ' Error from CSI_ITEM_INSTANCE_PVT.EXTENDED_ATTRIBS..');
9171             l_msg_index := 1;
9172             l_msg_count := x_msg_count;
9173               WHILE l_msg_count > 0 LOOP
9177                     csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
9174                     x_msg_data := FND_MSG_PUB.GET
9175                               (  l_msg_index,
9176                                  FND_API.G_FALSE    );
9178                     l_msg_index := l_msg_index + 1;
9179                     l_msg_count := l_msg_count - 1;
9180               END LOOP;
9181              l_iface_error_text := substr(x_msg_data,1,2000);
9182              l_grp_error_count := l_grp_error_count + 1;
9183              l_grp_upd_error_tbl(l_grp_error_count).instance_id := p_ext_attrib_values_tbl(tab_row).instance_id;
9184              l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'EXT_ATTRIBS';
9185              l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
9186              --  RAISE FND_API.G_EXC_ERROR;
9187         END IF;
9188      END IF; -- exist if
9189    END LOOP; -- for loop
9190  END IF;
9191 
9192    -- Call create_asset_assignments to associate any assets associated
9193    -- to the item instance
9194   IF (p_asset_assignment_tbl.count > 0) THEN
9195     FOR tab_row IN p_asset_assignment_tbl.FIRST .. p_asset_assignment_tbl.LAST
9196     LOOP
9197       l_iface_error_text := NULL;
9198       IF p_asset_assignment_tbl.EXISTS(tab_row) THEN
9199         IF ((p_asset_assignment_tbl(tab_row).instance_asset_id IS NULL)
9200           OR
9201            (p_asset_assignment_tbl(tab_row).instance_asset_id = FND_API.G_MISS_NUM)) THEN
9202                csi_asset_pvt.create_instance_asset
9203                 (p_api_version          => p_api_version
9204                 ,p_commit               => fnd_api.g_false
9205                 ,p_init_msg_list        => p_init_msg_list
9206                 ,p_validation_level     => p_validation_level
9207                 ,p_instance_asset_rec   => p_asset_assignment_tbl(tab_row)
9208                 ,p_txn_rec              => p_txn_rec
9209                 ,x_return_status        => x_return_status
9210                 ,x_msg_count            => x_msg_count
9211                 ,x_msg_data             => x_msg_data
9212                 ,p_lookup_tbl           => l_asset_lookup_tbl
9213                 ,p_asset_count_rec      => l_asset_count_rec
9214                 ,p_asset_id_tbl         => l_asset_id_tbl
9215                 ,p_asset_loc_tbl        => l_asset_loc_tbl
9216                 );
9217         ELSE
9218            --call the update assets api
9219            csi_asset_pvt.update_instance_asset
9220                 (p_api_version          => p_api_version
9221                 ,p_commit               => fnd_api.g_false
9222                 ,p_init_msg_list        => p_init_msg_list
9223                 ,p_validation_level     => p_validation_level
9224                 ,p_instance_asset_rec   => p_asset_assignment_tbl(tab_row)
9225                 ,p_txn_rec              => p_txn_rec
9226                 ,x_return_status        => x_return_status
9227                 ,x_msg_count            => x_msg_count
9228                 ,x_msg_data             => x_msg_data
9229                 ,p_lookup_tbl           => l_asset_lookup_tbl
9230                 ,p_asset_count_rec      => l_asset_count_rec
9231                 ,p_asset_id_tbl         => l_asset_id_tbl
9232                 ,p_asset_loc_tbl        => l_asset_loc_tbl
9233                 );
9234         END IF;
9235         IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
9236           csi_gen_utility_pvt.put_line( ' Error from CSI_ASSET_PVT..');
9237           l_msg_index := 1;
9238           l_msg_count := x_msg_count;
9239               WHILE l_msg_count > 0 LOOP
9240                     x_msg_data := FND_MSG_PUB.GET
9241                               (  l_msg_index,
9242                                  FND_API.G_FALSE  );
9243                     csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
9244                     l_msg_index := l_msg_index + 1;
9245                     l_msg_count := l_msg_count - 1;
9246               END LOOP;
9247              l_iface_error_text := substr(x_msg_data,1,2000);
9248              l_grp_error_count := l_grp_error_count + 1;
9249              l_grp_upd_error_tbl(l_grp_error_count).instance_id := p_asset_assignment_tbl(tab_row).instance_id;
9250              l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'ASSET';
9251              l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
9252              --  RAISE FND_API.G_EXC_ERROR;
9253         END IF;
9254       END IF;
9255     END LOOP;
9256   END IF;
9257   --
9258   -- Expire the Item Instances
9259   --
9260   IF l_exp_tbl.count > 0 THEN
9261      FOR k IN l_exp_tbl.FIRST .. l_exp_tbl.LAST LOOP -- 'k' will directly map to p_instance_tbl slot#
9262 	IF l_exp_tbl.EXISTS(k) THEN
9263 	   l_new_instance_rec := l_temp_instance_rec;
9264            Begin
9265 	      select active_end_date,object_version_number
9266 	      into l_new_instance_rec.active_end_date,l_new_instance_rec.object_version_number
9267 	      from CSI_ITEM_INSTANCES
9268 	      where instance_id = l_exp_tbl(k).instance_id;
9269            Exception
9270               when no_data_found then
9271 		 p_instance_tbl(k).processed_flag := 'E';
9272 		 l_iface_error_text := 'Instance ID '||to_char(l_exp_tbl(k).instance_id)||
9273                                        ' Does not exist in Installed Base';
9274 		 l_grp_error_count := l_grp_error_count + 1;
9275 		 l_grp_upd_error_tbl(l_grp_error_count).instance_id := l_exp_tbl(k).instance_id;
9276 		 l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'INSTANCE';
9277 		 l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
9278            End;
9279 	   --
9280 	   IF l_new_instance_rec.active_end_date IS NOT NULL AND
9281 	      l_new_instance_rec.active_end_date < SYSDATE THEN
9282 	      Null; -- Instance would have got expired during parent instance expiry
9283 	   ELSE
9284 	      l_new_instance_rec.instance_id := l_exp_tbl(k).instance_id;
9288 	      -- Call the update_item_instance private API to update the instances
9285 	      l_new_instance_rec.active_end_date := l_exp_tbl(k).active_end_date;
9286 	      l_new_instance_rec.instance_status_id := l_exp_tbl(k).instance_status_id;
9287 	      --
9289 	      l_iface_error_text := NULL;
9290 	      csi_item_instance_pvt.update_item_instance
9291 			     (
9292 			      p_api_version        => p_api_version
9293 			     ,p_commit             => fnd_api.g_false
9294 			     ,p_init_msg_list      => p_init_msg_list
9295 			     ,p_validation_level   => p_validation_level
9296 			     ,p_instance_rec       => l_new_instance_rec
9297 			     ,p_txn_rec            => p_txn_rec
9298 			     ,x_instance_id_lst    => x_instance_id_lst
9299 			     ,x_return_status      => x_return_status
9300 			     ,x_msg_count          => x_msg_count
9301 			     ,x_msg_data           => x_msg_data
9302 			     ,p_item_attribute_tbl => l_item_attribute_tbl
9303 			     ,p_location_tbl       => l_location_tbl
9304 			     ,p_generic_id_tbl     => l_generic_id_tbl
9305 			     ,p_lookup_tbl         => l_lookup_tbl
9306 			     ,p_ins_count_rec      => l_ins_count_rec
9307 			     ,p_oks_txn_inst_tbl   => px_oks_txn_inst_tbl
9308 			     ,p_child_inst_tbl     => px_child_inst_tbl
9309 			    );
9310 
9311 	      IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
9312 		 csi_gen_utility_pvt.put_line( 'Error from UPDATE_ITEM_INSTANCE_PVT..');
9313 		 l_msg_index := 1;
9314 		 l_msg_count := x_msg_count;
9315 		 WHILE l_msg_count > 0 LOOP
9316 		     x_msg_data := FND_MSG_PUB.GET
9317 					   ( l_msg_index,
9318 					     FND_API.G_FALSE );
9319 		     csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
9320 		     l_msg_index := l_msg_index + 1;
9321 		     l_msg_count := l_msg_count - 1;
9322 		 END LOOP;
9323 		 --  RAISE FND_API.G_EXC_ERROR;
9324 		 p_instance_tbl(k).processed_flag := 'E';
9325 		 l_iface_error_text := substr(x_msg_data,1,2000);
9326 		 l_grp_error_count := l_grp_error_count + 1;
9327 		 l_grp_upd_error_tbl(l_grp_error_count).instance_id := l_new_instance_rec.instance_id;
9328 		 l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'INSTANCE';
9329 		 l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
9330 	      ELSE
9331 		 p_instance_tbl(k).processed_flag := 'P';
9332 	      END IF;
9333 	   END IF;
9334 	END IF;
9335      END LOOP;
9336   END IF; -- l_exp_tbl.count check
9337   --
9338    -- Call the Version label API to associate a version label for the updated record
9339    IF (p_instance_tbl.count > 0) THEN
9340       FOR ins_row IN p_instance_tbl.FIRST .. p_instance_tbl.LAST
9341       LOOP
9342          l_iface_error_text := NULL;
9343          IF p_instance_tbl.EXISTS(ins_row) AND
9344             p_instance_tbl(ins_row).processed_flag = 'P' THEN
9345             -- Added by rtalluri for Bug 2256588 on 03/26/02
9346             -- Call the Version label API to associate a version label for the updated record
9347             OPEN  instance_csr (p_instance_tbl(ins_row).instance_id);
9348             FETCH instance_csr INTO l_instance_csr;
9349             CLOSE instance_csr;
9350             --
9351             IF p_instance_tbl(ins_row).active_end_date = FND_API.G_MISS_DATE
9352             THEN
9353                l_active_end_date := l_instance_csr.active_end_date;
9354             ELSE
9355               l_active_end_date := p_instance_tbl(ins_row).active_end_date;
9356             END IF;
9357             --
9358             IF  ((l_active_end_date > SYSDATE) OR
9359                 (l_active_end_date IS NULL))
9360             THEN
9361                IF    ((p_instance_tbl(ins_row).version_label IS NOT NULL) AND
9362                      (p_instance_tbl(ins_row).version_label <> FND_API.G_MISS_CHAR))
9363                THEN
9364                -- Check if version label already exists in csi_i_version_labels
9365                -- If exists then raise an error message
9366                   BEGIN
9367                      SELECT 'x'
9368                      INTO   l_dummy
9369                      FROM   csi_i_version_labels
9370                      WHERE  instance_id = p_instance_tbl(ins_row).instance_id
9371                      AND    version_label = p_instance_tbl(ins_row).version_label
9372                      AND    ROWNUM=1;
9373                      l_iface_error_text := substr(x_msg_data,1,2000);
9374                      l_grp_error_count := l_grp_error_count + 1;
9375                      l_grp_upd_error_tbl(l_grp_error_count).instance_id := p_instance_tbl(ins_row).instance_id;
9376                      l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'VERSION_LABEL';
9377                      l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
9378                   EXCEPTION
9379                      WHEN NO_DATA_FOUND THEN
9380                         l_version_label_rec := l_temp_version_label_rec;
9381                         l_version_label_rec.instance_id           := p_instance_tbl(ins_row).instance_id;
9382                         l_version_label_rec.version_label         := p_instance_tbl(ins_row).version_label;
9383                         l_version_label_rec.description           := p_instance_tbl(ins_row).version_label_description;
9384                         l_version_label_rec.date_time_stamp       := SYSDATE;
9385                         -- calling create version label api
9386                         csi_item_instance_pvt.create_version_label
9387                           ( p_api_version         => p_api_version
9388                            ,p_commit              => p_commit
9389                            ,p_init_msg_list       => p_init_msg_list
9390                            ,p_validation_level    => p_validation_level
9391                            ,p_version_label_rec   => l_version_label_rec
9392                            ,p_txn_rec             => p_txn_rec
9393                            ,x_return_status       => x_return_status
9394                            ,x_msg_count           => x_msg_count
9398                            csi_gen_utility_pvt.put_line( ' Error from CSI_ITEM_INSTANCE_PVT.CREATE_VERSION_LABEL..');
9395                            ,x_msg_data            => x_msg_data         );
9396 
9397                         IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
9399                            l_msg_index := 1;
9400                            l_msg_count := x_msg_count;
9401                            WHILE l_msg_count > 0 LOOP
9402                                          x_msg_data := FND_MSG_PUB.GET
9403                                              (  l_msg_index,
9404                                                 FND_API.G_FALSE        );
9405                                          csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
9406                                          l_msg_index := l_msg_index + 1;
9407                                          l_msg_count := l_msg_count - 1;
9408                            END LOOP;
9409                            p_instance_tbl(ins_row).processed_flag := 'E';
9410                            l_iface_error_text := substr(x_msg_data,1,2000);
9411                            l_grp_error_count := l_grp_error_count + 1;
9412                            l_grp_upd_error_tbl(l_grp_error_count).instance_id := p_instance_tbl(ins_row).instance_id;
9413                            l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'VERSION_LABEL';
9414                            l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
9415                           --  RAISE FND_API.G_EXC_ERROR;
9416                         ELSE
9417                            p_instance_tbl(ins_row).processed_flag := 'P';
9418                         END IF;
9419                      WHEN OTHERS THEN
9420                         p_instance_tbl(ins_row).processed_flag := 'E';
9421                         l_iface_error_text := substr(x_msg_data,1,2000);
9422                         l_grp_error_count := l_grp_error_count + 1;
9423                         l_grp_upd_error_tbl(l_grp_error_count).instance_id := p_instance_tbl(ins_row).instance_id;
9424                         l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'VERSION_LABEL';
9425                         l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
9426                   END;
9427                END IF; -- p_instance_tbl(ins_row).version_label is not null
9428             END IF; -- l_active_end_date
9429             -- Calling Contracts
9430             -- Added on 02-OCT-01
9431             l_iface_error_text := NULL;
9432 	    --
9433 	    BEGIN
9434 	       SELECT cip.party_id
9435 	       INTO   l_party_id
9436 	       FROM   csi_i_parties cip
9437 	       WHERE  cip.instance_id = p_instance_tbl(ins_row).instance_id
9438 	       AND    cip.relationship_type_code = 'OWNER';
9439 	    EXCEPTION
9440 	       WHEN OTHERS THEN
9441 	          l_party_id := NULL;
9442 	    END;
9443             --
9444 		--Added for WEB ADI
9445 		IF(Nvl(p_instance_tbl(ins_row).CALL_CONTRACTS, FND_API.G_FALSE)
9446 			= FND_API.G_TRUE) AND (p_txn_rec.transaction_type_id = 3)	AND
9447 		    (nvl(p_txn_rec.source_group_ref, FND_API.G_MISS_CHAR) = 'WBADI')
9448 		  OR nvl(p_txn_rec.source_group_ref, FND_API.G_MISS_CHAR) <> 'WBADI'
9449         THEN
9450 		--End of code for WEB ADI
9451             csi_gen_utility_pvt.put_line('Checking for UPD...');
9452             IF p_instance_tbl(ins_row).quantity IS NOT NULL AND
9453                p_instance_tbl(ins_row).quantity <> FND_API.G_MISS_NUM AND
9454                p_instance_tbl(ins_row).quantity <> l_old_instance_tbl(ins_row).quantity THEN
9455                IF l_party_id IS NOT NULL AND
9456                   l_party_id <> l_internal_party_id THEN
9457                   IF p_txn_rec.transaction_type_id <> 7 THEN  -- Added for bug 3973706
9458 		     csi_item_instance_pvt.Call_to_Contracts
9459 		     ( p_transaction_type   =>   'UPD'
9460 		      ,p_instance_id        =>   p_instance_tbl(ins_row).instance_id
9461 		      ,p_new_instance_id    =>   NULL
9462 		      ,p_vld_org_id         =>   l_instance_csr.last_vld_organization_id
9463 		      ,p_quantity           =>   l_old_instance_tbl(ins_row).quantity
9464 		      ,p_party_account_id1  =>   NULL
9465 		      ,p_party_account_id2  =>   NULL
9466 		      ,p_transaction_date   =>   p_txn_rec.transaction_date -- l_transaction_date
9467 		      ,p_source_transaction_date   =>   p_txn_rec.source_transaction_date -- l_transaction_date
9468 		      ,p_grp_call_contracts =>   FND_API.G_TRUE
9469 		      ,p_order_line_id      =>   l_order_line_id
9470 		      ,p_oks_txn_inst_tbl   =>   px_oks_txn_inst_tbl
9471 		      ,x_return_status      =>   x_return_status
9472 		      ,x_msg_count          =>   x_msg_count
9473 		      ,x_msg_data           =>   x_msg_data
9474 		     );
9475 		     --
9476 		     IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
9477 		        l_msg_index := 1;
9478 		        l_msg_count := x_msg_count;
9479 		        WHILE l_msg_count > 0 LOOP
9480 		 	   x_msg_data := FND_MSG_PUB.GET
9481 				      (  l_msg_index,
9482 					 FND_API.G_FALSE
9483 				       );
9484 			   csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
9485 			   l_msg_index := l_msg_index + 1;
9486 			   l_msg_count := l_msg_count - 1;
9487 		        END LOOP;
9488 		        l_iface_error_text := substr(x_msg_data,1,2000);
9489 		        p_instance_tbl(ins_row).processed_flag := 'E';
9490 		        l_grp_error_count := l_grp_error_count + 1;
9491 		        l_grp_upd_error_tbl(l_grp_error_count).instance_id := p_instance_tbl(ins_row).instance_id;
9492 		        l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'INS_CONTRACTS';
9493 		        l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
9494 		        -- RAISE FND_API.G_EXC_ERROR;
9495 		     ELSE
9496 		        p_instance_tbl(ins_row).processed_flag := 'P';
9497 		     END IF;
9498                   END IF;
9499                END IF;
9500             END IF; -- Qty Update check
9501             --
9505                                nvl(l_old_instance_tbl(ins_row).install_date,fnd_api.g_miss_date) THEN
9502             IF p_instance_tbl(ins_row).install_date IS NOT NULL AND
9503                p_instance_tbl(ins_row).install_date <> FND_API.G_MISS_DATE AND
9504                p_instance_tbl(ins_row).install_date <>
9506                IF l_party_id IS NOT NULL AND
9507                   l_party_id <> l_internal_party_id THEN
9508                   IF p_txn_rec.transaction_type_id <> 7 THEN  -- Added for bug 3973706
9509 		     csi_item_instance_pvt.Call_to_Contracts
9510 		     ( p_transaction_type   =>   'IDC'
9511 		      ,p_instance_id        =>   p_instance_tbl(ins_row).instance_id
9512 		      ,p_new_instance_id    =>   NULL
9513 		      ,p_vld_org_id         =>   l_instance_csr.last_vld_organization_id
9514 		      ,p_quantity           =>   l_instance_csr.quantity
9515 		      ,p_party_account_id1  =>   NULL
9516 		      ,p_party_account_id2  =>   NULL
9517 		      ,p_transaction_date   =>   p_txn_rec.transaction_date -- l_transaction_date
9518 		      ,p_source_transaction_date   =>   p_txn_rec.source_transaction_date -- l_transaction_date
9519 		      ,p_grp_call_contracts =>   FND_API.G_TRUE
9520 		      ,p_oks_txn_inst_tbl   =>   px_oks_txn_inst_tbl
9521 		      ,x_return_status      =>   x_return_status
9522 		      ,x_msg_count          =>   x_msg_count
9523 		      ,x_msg_data           =>   x_msg_data
9524 		     );
9525 		     --
9526 		     IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
9527 		        l_msg_index := 1;
9528 		        l_msg_count := x_msg_count;
9529 		        WHILE l_msg_count > 0 LOOP
9530 		 	   x_msg_data := FND_MSG_PUB.GET
9531 				      (  l_msg_index,
9532 					 FND_API.G_FALSE
9533 				       );
9534 			   csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
9535 			   l_msg_index := l_msg_index + 1;
9536 			   l_msg_count := l_msg_count - 1;
9537 		        END LOOP;
9538 		        l_iface_error_text := substr(x_msg_data,1,2000);
9539 		        p_instance_tbl(ins_row).processed_flag := 'E';
9540 		        l_grp_error_count := l_grp_error_count + 1;
9541 		        l_grp_upd_error_tbl(l_grp_error_count).instance_id := p_instance_tbl(ins_row).instance_id;
9542 		        l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'INS_CONTRACTS';
9543 		        l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
9544 		        -- RAISE FND_API.G_EXC_ERROR;
9545 		     ELSE
9546 		        p_instance_tbl(ins_row).processed_flag := 'P';
9547 		     END IF;
9548                   END IF;
9549                END IF;
9550             END IF; -- Install Date Update check
9551             --
9552             IF csi_item_instance_vld_pvt.termination_status
9553                ( p_instance_status_id => l_instance_csr.instance_status_id )
9554             THEN
9555                l_transaction_type := 'TRM';
9556                l_transaction_date := l_instance_csr.active_end_date;
9557             END IF;
9558             --
9559             IF l_transaction_type IS NULL
9560             THEN
9561                IF l_old_instance_tbl(ins_row).active_end_date <= SYSDATE
9562                   AND (p_instance_tbl(ins_row).active_end_date IS NULL
9563                   OR p_instance_tbl(ins_row).active_end_date > SYSDATE )
9564                THEN
9565 
9566                   IF l_party_id IS NOT NULL AND
9567                      l_internal_party_id IS NOT NULL AND
9568                      l_party_id <> l_internal_party_id
9569                   THEN
9570                      -- End addition by sk for fixing bug 2245976
9571                      l_transaction_type := 'NEW';
9572                      l_transaction_date := l_instance_csr.active_end_date;
9573                      --
9574 	             --  While un-expiring the instance, order Line ID will passed only if it is changing
9575                      --
9576                      IF l_instance_csr.location_type_code = 'IN_TRANSIT' THEN
9577                         IF NVL(l_old_instance_tbl(ins_row).in_transit_order_line_id,FND_API.G_MISS_NUM) <>
9578                            NVL(l_instance_csr.in_transit_order_line_id,FND_API.G_MISS_NUM) THEN
9579                            l_order_line_id := l_instance_csr.in_transit_order_line_id;
9580                         ELSE
9581                            l_order_line_id := NULL;
9582                         END IF;
9583                      ELSE
9584                         IF NVL(l_old_instance_tbl(ins_row).last_oe_order_line_id,FND_API.G_MISS_NUM) <>
9585                            NVL(l_instance_csr.last_oe_order_line_id,FND_API.G_MISS_NUM) THEN
9586                            l_order_line_id := l_instance_csr.last_oe_order_line_id;
9587                         ELSE
9588                            l_order_line_id := NULL;
9589                         END IF;
9590                      END IF;
9591                   ELSE
9592                      l_transaction_type := NULL;
9593                   END IF;
9594                END IF;
9595             END IF;
9596             --
9597             IF l_transaction_type IS NOT NULL
9598             THEN
9599                csi_item_instance_pvt.Call_to_Contracts
9600                 ( p_transaction_type   =>   l_transaction_type
9601                  ,p_instance_id        =>   p_instance_tbl(ins_row).instance_id
9602                  ,p_new_instance_id    =>   NULL
9603                  ,p_vld_org_id         =>   l_instance_csr.last_vld_organization_id
9604                  ,p_quantity           =>   NULL
9605                  ,p_party_account_id1  =>   NULL
9606                  ,p_party_account_id2  =>   NULL
9607                  ,p_transaction_date   =>   p_txn_rec.transaction_date -- l_transaction_date
9608                  ,p_source_transaction_date   =>   p_txn_rec.source_transaction_date -- l_transaction_date
9609                  ,p_grp_call_contracts =>   FND_API.G_TRUE
9610                  ,p_order_line_id      =>   l_order_line_id
9611 		 ,p_oks_txn_inst_tbl   =>   px_oks_txn_inst_tbl
9615 		);
9612                  ,x_return_status      =>   x_return_status
9613                  ,x_msg_count          =>   x_msg_count
9614                  ,x_msg_data           =>   x_msg_data
9616                --
9617                IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
9618                   l_msg_index := 1;
9619                   l_msg_count := x_msg_count;
9620                   WHILE l_msg_count > 0 LOOP
9621                       x_msg_data := FND_MSG_PUB.GET
9622                                   (  l_msg_index,
9623                                      FND_API.G_FALSE
9624                                    );
9625                      csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
9626                      l_msg_index := l_msg_index + 1;
9627                      l_msg_count := l_msg_count - 1;
9628                   END LOOP;
9629                   l_iface_error_text := substr(x_msg_data,1,2000);
9630                   p_instance_tbl(ins_row).processed_flag := 'E';
9631                   l_grp_error_count := l_grp_error_count + 1;
9632                   l_grp_upd_error_tbl(l_grp_error_count).instance_id := p_instance_tbl(ins_row).instance_id;
9633                   l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'INS_CONTRACTS';
9634                   l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
9635                   -- RAISE FND_API.G_EXC_ERROR;
9636                ELSE
9637                   p_instance_tbl(ins_row).processed_flag := 'P';
9638                END IF;
9639             END IF; --l_transaction_type is not null
9640 		END IF; --Added for WEB ADI
9641        END IF; --p_instance_tbl.EXISTS(ins_row)
9642       END LOOP;
9643    END IF; --p_instance_tbl.count > 0
9644    --
9645    IF px_oks_txn_inst_tbl.count > 0 THEN
9646       IF l_debug_level > 1 THEN
9647 	 csi_gen_utility_pvt.dump_oks_txn_inst_tbl(px_oks_txn_inst_tbl);
9648 	 csi_gen_utility_pvt.put_line('Calling OKS Core API...');
9649       END IF;
9650       --
9651       IF p_txn_rec.transaction_type_id = 3
9652 	AND nvl(p_txn_rec.source_group_ref, FND_API.G_MISS_CHAR) <> 'WBADI' THEN
9653          l_batch_id := p_txn_rec.source_header_ref_id;
9654          l_batch_type := p_txn_rec.source_group_ref;
9655       ELSE
9656          l_batch_id := NULL;
9657          l_batch_type := NULL;
9658       END IF;
9659       --
9660       UPDATE CSI_TRANSACTIONS
9661       set contracts_invoked = 'Y'
9662       where transaction_id = p_txn_rec.transaction_id;
9663       --
9664       OKS_IBINT_PUB.IB_interface
9665 	 (
9666 	   P_Api_Version           =>  1.0,
9667 	   P_init_msg_list         =>  p_init_msg_list,
9668 	   P_single_txn_date_flag  =>  'N',
9669 	   P_Batch_type            =>  l_batch_type,
9670 	   P_Batch_ID              =>  l_batch_id,
9671 	   P_OKS_Txn_Inst_tbl      =>  px_oks_txn_inst_tbl,
9672 	   x_return_status         =>  x_return_status,
9673 	   x_msg_count             =>  x_msg_count,
9674 	   x_msg_data              =>  x_msg_data
9675 	);
9676 	 csi_gen_utility_pvt.put_line('Status returned from Oks_ibint_pub.IB_interface is :'||x_return_status);
9677       --
9678       IF x_return_status = 'W' THEN -- Warning from OKS
9679          -- Since OKS does not have the ability to pass the instance_id for the warning record(s),
9680          -- we are not populating the grp error tbl. We are still looping thru' the message stack
9681          -- just in case IB UI calls group API during Update.
9682          --
9683 	 l_msg_index := 1;
9684 	 l_msg_count := x_msg_count;
9685 	 WHILE l_msg_count > 0 LOOP
9686 	    x_msg_data := FND_MSG_PUB.GET
9687 		     (  l_msg_index,
9688 			FND_API.G_FALSE
9689 		      );
9690 	    csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
9691 	    l_msg_index := l_msg_index + 1;
9692 	    l_msg_count := l_msg_count - 1;
9693 	 END LOOP;
9694 	 FND_MSG_PUB.Count_And_Get
9695 	 ( p_count                 =>      x_msg_count,
9696 	   p_data                  =>      x_msg_data
9697 	 );
9698       ELSIF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
9699 	 csi_gen_utility_pvt.put_line('Error from Call_to_contracts...');
9700 	 l_msg_index := 1;
9701 	 l_msg_count := x_msg_count;
9702 	 WHILE l_msg_count > 0 LOOP
9703 	   x_msg_data := FND_MSG_PUB.GET
9704 		       (  l_msg_index,
9705 			  FND_API.G_FALSE
9706 			);
9707 	     csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
9708 	   l_msg_index := l_msg_index + 1;
9709 	   l_msg_count := l_msg_count - 1;
9710 	 END LOOP;
9711 	 l_iface_error_text := substr(x_msg_data,1,2000);
9712 	 --
9713          IF p_instance_tbl.count > 0 THEN
9714 	    FOR ins_row IN p_instance_tbl.FIRST .. p_instance_tbl.LAST LOOP
9715 	       IF p_instance_tbl.EXISTS(ins_row) THEN
9716 	          p_instance_tbl(ins_row).processed_flag := 'E';
9717                   l_grp_error_count := l_grp_error_count + 1;
9718                   l_grp_upd_error_tbl(l_grp_error_count).instance_id := p_instance_tbl(ins_row).instance_id;
9719                   l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'INS_CONTRACTS';
9720                   l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
9721                END IF;
9722             END LOOP;
9723          END IF;
9724          --
9725 	 -- if OKS returns error then everthing gets rolledback
9726          p_grp_upd_error_tbl := l_grp_upd_error_tbl;
9727 	 RAISE FND_API.G_EXC_ERROR;
9728       END IF;
9729    END IF;
9730    --
9731    p_grp_upd_error_tbl := l_grp_upd_error_tbl;
9732    --
9733    -- End of API body
9734    -- Standard check of p_commit.
9735    IF FND_API.To_Boolean( p_commit ) THEN
9736       COMMIT WORK;
9737    END IF;
9738    /***** srramakr commented for bug # 3304439
9739    -- Check for the profile option and disable the trace
9740    IF (l_flag = 'Y') THEN
9741         dbms_session.set_sql_trace(FALSE);
9742    END IF;
9746    FND_MSG_PUB.Count_And_Get
9743    -- End disable trace
9744    ****/
9745    -- Standard call to get message count and if count is  get message info.
9747          (p_count        =>      x_msg_count ,
9748           p_data         =>      x_msg_data
9749          );
9750 EXCEPTION
9751     WHEN FND_API.G_EXC_ERROR THEN
9752        ROLLBACK TO update_item_instance;
9753        x_return_status := FND_API.G_RET_STS_ERROR ;
9754        FND_MSG_PUB.Count_And_Get
9755                 (       p_count                 =>      x_msg_count,
9756                 p_data                  =>      x_msg_data
9757                 );
9758 
9759     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
9760        ROLLBACK TO update_item_instance;
9761        x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
9762        FND_MSG_PUB.Count_And_Get
9763         (       p_count                 =>      x_msg_count,
9764                 p_data                  =>      x_msg_data
9765         );
9766 
9767     WHEN OTHERS THEN
9768        ROLLBACK TO update_item_instance;
9769        x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
9770        IF FND_MSG_PUB.Check_Msg_Level
9771           (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
9772        THEN
9773           FND_MSG_PUB.Add_Exc_Msg
9774                 (       G_PKG_NAME          ,
9775                         l_api_name
9776                 );
9777        END IF;
9778        FND_MSG_PUB.Count_And_Get
9779                 (       p_count                 =>      x_msg_count,
9780                         p_data                  =>      x_msg_data
9781                 );
9782 END update_item_instance;
9783 --
9784 /*----------------------------------------------------*/
9785 /* Procedure name: expire_item_instance               */
9786 /* Description :   procedure for                      */
9787 /*                 Expiring an Item Instance          */
9788 /*----------------------------------------------------*/
9789 
9790 PROCEDURE expire_item_instance
9791  (
9792       p_api_version         IN      NUMBER
9793      ,p_commit              IN      VARCHAR2
9794      ,p_init_msg_list       IN      VARCHAR2
9795      ,p_validation_level    IN      NUMBER
9796      ,p_instance_tbl        IN      csi_datastructures_pub.instance_tbl
9797      ,p_expire_children     IN      VARCHAR2
9798      ,p_txn_rec             IN OUT NOCOPY  csi_datastructures_pub.transaction_rec
9799      ,x_instance_id_lst     OUT NOCOPY     csi_datastructures_pub.id_tbl
9800      ,p_grp_error_tbl       OUT NOCOPY     csi_datastructures_pub.grp_error_tbl
9801      ,x_return_status       OUT NOCOPY     VARCHAR2
9802      ,x_msg_count           OUT NOCOPY     NUMBER
9803      ,x_msg_data            OUT NOCOPY     VARCHAR2
9804  )
9805 IS
9806      l_api_name              CONSTANT VARCHAR2(30)     := 'EXPIRE_ITEM_INSTANCE';
9807      l_api_version           CONSTANT NUMBER                   := 1.0;
9808      l_debug_level           NUMBER;
9809      l_flag                  VARCHAR2(1);
9810      l_msg_index             NUMBER;
9811      l_msg_count             NUMBER;
9812      l_iface_error_text      VARCHAR2(2000);
9813      l_grp_error_tbl         csi_datastructures_pub.grp_error_tbl;
9814      l_instance_rec          csi_datastructures_pub.instance_rec;
9815      px_oks_txn_inst_tbl     OKS_IBINT_PUB.TXN_INSTANCE_TBL;
9816      l_batch_type            VARCHAR2(50);
9817      l_batch_id              NUMBER;
9818      --
9819 BEGIN
9820    -- Standard Start of API savepoint
9821    SAVEPOINT  expire_item_instance;
9822 
9823    -- Check for freeze_flag in csi_install_parameters is set to 'Y'
9824 
9825    csi_utility_grp.check_ib_active;
9826 
9827    -- Standard call to check for call compatibility.
9828    IF NOT FND_API.Compatible_API_Call (l_api_version,
9829 				       p_api_version,
9830 				       l_api_name   ,
9831 				       G_PKG_NAME   )
9832    THEN
9833       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9834    END IF;
9835 
9836    -- Initialize message list if p_init_msg_list is set to TRUE.
9837    IF FND_API.to_Boolean( p_init_msg_list ) THEN
9838       FND_MSG_PUB.initialize;
9839    END IF;
9840    --  Initialize API return status to success
9841    x_return_status := FND_API.G_RET_STS_SUCCESS;
9842 
9843    -- Check the profile option debug_level for debug message reporting
9844    l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
9845 
9846    -- If debug_level = 1 then dump the procedure name
9847    IF (l_debug_level > 0) THEN
9848        csi_gen_utility_pvt.put_line( 'expire_item_instance');
9849    END IF;
9850    --
9851    IF (p_instance_tbl.count > 0) THEN
9852        FOR ins_row IN p_instance_tbl.FIRST .. p_instance_tbl.LAST
9853        LOOP
9854 	  IF p_instance_tbl.EXISTS(ins_row) THEN
9855 	     -- If the debug level = 2 then dump all the parameters values.
9856 	     IF (l_debug_level > 1) THEN
9857 		 csi_gen_utility_pvt.put_line( 'expire_item_instance:'  ||
9858 						p_api_version      ||'-'||
9859 						p_commit           ||'-'||
9860 						p_init_msg_list    ||'-'||
9861 						p_validation_level      );
9862 		   -- Dump the records in the log file
9863 		   csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
9864 		   csi_gen_utility_pvt.dump_instance_rec(p_instance_tbl(ins_row));
9865 	      END IF;
9866 	      /***** srramakr commented for bug # 3304439
9867 	      -- Check for the profile option and enable trace
9868 	      l_flag:=CSI_GEN_UTILITY_PVT.enable_trace(l_trace_flag => l_flag);
9869 	      -- End enable trace
9870 	      ****/
9871 	      -- Start API body
9872 	      l_iface_error_text := NULL;
9873 	      l_grp_error_tbl(ins_row).group_inst_num := ins_row;
9874 	      l_grp_error_tbl(ins_row).process_status := 'S';
9875 	      l_grp_error_tbl(ins_row).error_message := NULL;
9876 	      l_instance_rec := p_instance_tbl(ins_row);
9877 	      l_instance_rec.grp_call_contracts := FND_API.G_TRUE;
9881 		      ,p_commit           => fnd_api.g_false
9878 	      csi_item_instance_pvt.expire_item_instance
9879 		      (
9880 		       p_api_version      => p_api_version
9882 		      ,p_init_msg_list    => p_init_msg_list
9883 		      ,p_validation_level => p_validation_level
9884 		      ,p_instance_rec     => l_instance_rec
9885 		      ,p_expire_children  => p_expire_children
9886 		      ,p_txn_rec          => p_txn_rec
9887 		      ,x_instance_id_lst  => x_instance_id_lst
9888 		      ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
9889 		      ,x_return_status    => x_return_status
9890 		      ,x_msg_count        => x_msg_count
9891 		      ,x_msg_data         => x_msg_data
9892 		      );
9893 
9894 		   IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
9895 		     l_msg_index := 1;
9896 		     l_msg_count := x_msg_count;
9897 		     WHILE l_msg_count > 0 LOOP
9898 		     x_msg_data := FND_MSG_PUB.GET
9899 					      (
9900 						l_msg_index,
9901 						FND_API.G_FALSE
9902 					      );
9903 		       csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
9904 		       l_msg_index := l_msg_index + 1;
9905 		       l_msg_count := l_msg_count - 1;
9906 		     END LOOP;
9907 		     --
9908 		     l_iface_error_text := substr(x_msg_data,1,2000);
9909 		     l_grp_error_tbl(ins_row).process_status := 'E';
9910 		     l_grp_error_tbl(ins_row).error_message := l_iface_error_text;
9911 		   END IF;
9912 		   --
9913 	    END IF;
9914 	 END LOOP;
9915       END IF;
9916       --
9917       IF px_oks_txn_inst_tbl.count > 0 THEN
9918 	 IF l_debug_level > 1 THEN
9919 	    csi_gen_utility_pvt.dump_oks_txn_inst_tbl(px_oks_txn_inst_tbl);
9920 	    csi_gen_utility_pvt.put_line('Calling OKS Core API...');
9921 	 END IF;
9922 	 --
9923 	 IF p_txn_rec.transaction_type_id = 3 THEN
9924 	    l_batch_id := p_txn_rec.source_header_ref_id;
9925 	    l_batch_type := p_txn_rec.source_group_ref;
9926 	 ELSE
9927 	    l_batch_id := NULL;
9928 	    l_batch_type := NULL;
9929 	 END IF;
9930 	 --
9931          UPDATE CSI_TRANSACTIONS
9932          set contracts_invoked = 'Y'
9933          where transaction_id = p_txn_rec.transaction_id;
9934          --
9935 	 OKS_IBINT_PUB.IB_interface
9936 	    (
9937 	      P_Api_Version           =>  1.0,
9938 	      P_init_msg_list         =>  p_init_msg_list,
9939 	      P_single_txn_date_flag  =>  'N',
9940 	      P_Batch_type            =>  l_batch_type,
9941 	      P_Batch_ID              =>  l_batch_id,
9942 	      P_OKS_Txn_Inst_tbl      =>  px_oks_txn_inst_tbl,
9943 	      x_return_status         =>  x_return_status,
9944 	      x_msg_count             =>  x_msg_count,
9945 	      x_msg_data              =>  x_msg_data
9946 	   );
9947 	 csi_gen_utility_pvt.put_line('Status returned from Oks_ibint_pub.IB_interface is :'||x_return_status);
9948 	 --
9949 	 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS)
9950 	 THEN
9951 	    csi_gen_utility_pvt.put_line('Error from Call_to_contracts...');
9952 	    l_msg_index := 1;
9953 	    l_msg_count := x_msg_count;
9954 	    WHILE l_msg_count > 0 LOOP
9955 	      x_msg_data := FND_MSG_PUB.GET
9956 			  (  l_msg_index,
9957 			     FND_API.G_FALSE
9958 			   );
9959 		csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
9960 	      l_msg_index := l_msg_index + 1;
9961 	      l_msg_count := l_msg_count - 1;
9962 	    END LOOP;
9963 	    l_iface_error_text := substr(x_msg_data,1,2000);
9964 	    --
9965 	    FOR ins_row IN p_instance_tbl.FIRST .. p_instance_tbl.LAST LOOP
9966 	       IF p_instance_tbl.EXISTS(ins_row) THEN
9967 		  l_grp_error_tbl(ins_row).process_status := 'E';
9968 		  l_grp_error_tbl(ins_row).error_message := l_iface_error_text;
9969 	       END IF;
9970 	    END LOOP;
9971 	    -- if OKS returns error then everthing gets rolledback
9972 	    p_grp_error_tbl := l_grp_error_tbl;
9973 	    RAISE FND_API.G_EXC_ERROR;
9974 	 END IF;
9975       END IF;
9976       --
9977       p_grp_error_tbl := l_grp_error_tbl;
9978       -- End of API body
9979       -- Standard check of p_commit.
9980       IF FND_API.To_Boolean( p_commit ) THEN
9981          COMMIT WORK;
9982       END IF;
9983 
9984       /***** srramakr commented for bug # 3304439
9985       -- Check for the profile option and disable the trace
9986       IF (l_flag = 'Y') THEN
9987           dbms_session.set_sql_trace(FALSE);
9988       END IF;
9989       -- End disable trace
9990       ****/
9991       -- Standard call to get message count and if count is  get message info.
9992       FND_MSG_PUB.Count_And_Get
9993                 (p_count        =>      x_msg_count ,
9994                  p_data         =>      x_msg_data   );
9995 
9996 EXCEPTION
9997         WHEN FND_API.G_EXC_ERROR THEN
9998                 ROLLBACK TO expire_item_instance;
9999                 x_return_status := FND_API.G_RET_STS_ERROR ;
10000                 FND_MSG_PUB.Count_And_Get
10001                 (       p_count                 =>      x_msg_count,
10002                         p_data                  =>      x_msg_data
10003                 );
10004 
10005         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
10006                 ROLLBACK TO expire_item_instance;
10007                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
10008                 FND_MSG_PUB.Count_And_Get
10009                 (  p_count     =>      x_msg_count,
10010                    p_data      =>      x_msg_data  );
10011 
10012         WHEN OTHERS THEN
10013                 ROLLBACK TO expire_item_instance;
10014                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
10015                 IF FND_MSG_PUB.Check_Msg_Level
10019                     ( G_PKG_NAME, l_api_name );
10016                      (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
10017                 THEN
10018                    FND_MSG_PUB.Add_Exc_Msg
10020                 END IF;
10021                 FND_MSG_PUB.Count_And_Get
10022                 (  p_count    =>      x_msg_count,
10023                    p_data     =>      x_msg_data  );
10024 
10025 END  expire_item_instance;
10026 --
10027 /**********************************************************
10028 ** This Procedure gets all the parents traversing up     **
10029 ** for a given child(subject) with the relationship type **
10030 ** COMPONENT-OF. It stops traversing when the top-most   **
10031 ** is reached or the relationship is broken.             **
10032 ***********************************************************/
10033 
10034 PROCEDURE Get_All_Parents
10035   (
10036     p_api_version      IN  NUMBER,
10037     p_commit           IN  VARCHAR2,
10038     p_init_msg_list    IN  VARCHAR2,
10039     p_validation_level IN  NUMBER,
10040     p_subject_id       IN  NUMBER,
10041     x_rel_tbl          OUT NOCOPY csi_datastructures_pub.ii_relationship_tbl,
10042     x_return_status    OUT NOCOPY VARCHAR2,
10043     x_msg_count        OUT NOCOPY NUMBER,
10044     x_msg_data         OUT NOCOPY VARCHAR2
10045   ) IS
10046    l_api_version       CONSTANT NUMBER := 1.0;
10047    l_api_name          CONSTANT VARCHAR2(30) := 'GET_ALL_PARENTS';
10048    l_ctr               NUMBER := 0;
10049    l_object_id         NUMBER;
10050    l_subject_id        NUMBER;
10051    l_exists            VARCHAR2(1);
10052    l_relationship_id   NUMBER;
10053    l_rel_type_code     VARCHAR2(30) := 'COMPONENT-OF';
10054 BEGIN
10055    -- Check for freeze_flag in csi_install_parameters is set to 'Y'
10056    csi_utility_grp.check_ib_active;
10057    -- Standard call to check for call compatibility.
10058    IF NOT FND_API.Compatible_API_Call (l_api_version,
10059 				       p_api_version,
10060 				       l_api_name,
10061 				       G_PKG_NAME
10062 				     )
10063    THEN
10064       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10065    END IF;
10066    -- Initialize message list if p_init_msg_list is set to TRUE.
10067    IF FND_API.to_Boolean( p_init_msg_list ) THEN
10068       FND_MSG_PUB.initialize;
10069    END IF;
10070    --  Initialize API return status to success
10071    x_return_status := FND_API.G_RET_STS_SUCCESS;
10072    --
10073    IF p_subject_id IS NULL OR p_subject_id = FND_API.G_MISS_NUM THEN
10074       fnd_message.set_name('CSI', 'CSI_INVALID_PARAMETERS');
10075       fnd_msg_pub.add;
10076       x_return_status := fnd_api.g_ret_sts_error;
10077       RAISE fnd_api.g_exc_error;
10078    END IF;
10079    --
10080    l_subject_id := p_subject_id;
10081    --
10082    csi_gen_utility_pvt.put_line('Given Subject ID is '||to_char(l_subject_id));
10083    --
10084    LOOP
10085       Begin
10086 	 select relationship_id,object_id
10087 	 into l_relationship_id,l_object_id
10088 	 from CSI_II_RELATIONSHIPS
10089 	 where subject_id = l_subject_id
10090 	 and   relationship_type_code = l_rel_type_code
10091 	 and   ((active_end_date is null) or (active_end_date > sysdate));
10092 	 --
10093 	 l_ctr := l_ctr + 1;
10094 	 x_rel_tbl(l_ctr).subject_id := l_subject_id;
10095 	 x_rel_tbl(l_ctr).object_id := l_object_id;
10096 	 x_rel_tbl(l_ctr).relationship_id := l_relationship_id;
10097 	 x_rel_tbl(l_ctr).relationship_type_code := l_rel_type_code;
10098 	 --
10099          -- Just in case a cycle exists because of bad data the following check will break
10100          -- the loop.
10101 	 l_exists := 'N';
10102 	 IF x_rel_tbl.count > 0 THEN
10103 	    FOR j in x_rel_tbl.FIRST .. x_rel_tbl.LAST Loop
10104 	       IF l_object_id = x_rel_tbl(j).subject_id THEN
10105 		  l_exists := 'Y';
10106 		  exit;
10107 	       END IF;
10108 	    End Loop;
10109 	 END IF;
10110 	 --
10111 	 IF l_exists = 'Y' THEN
10112 	    exit;
10113 	 END IF;
10114 	 --
10115 	 l_subject_id := l_object_id;
10116       Exception
10117 	 when no_data_found then
10118 	    exit;
10119       End;
10120    END LOOP;
10121    -- End of API body
10122   -- Standard call to get message count and if count is  get message info.
10123   FND_MSG_PUB.Count_And_Get
10124        (p_count        =>      x_msg_count ,
10125 	p_data         =>      x_msg_data
10126        );
10127 EXCEPTION
10128    WHEN FND_API.G_EXC_ERROR THEN
10129       x_return_status := FND_API.G_RET_STS_ERROR ;
10130       FND_MSG_PUB.Count_And_Get
10131 	  ( p_count                 =>      x_msg_count,
10132 	    p_data                  =>      x_msg_data
10133 	  );
10134    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
10135       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
10136       FND_MSG_PUB.Count_And_Get
10137 	  ( p_count                 =>      x_msg_count,
10138 	    p_data                  =>      x_msg_data
10139 	  );
10140 
10141    WHEN OTHERS THEN
10142       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
10143       csi_gen_utility_pvt.put_line('Others Error   '||substr(sqlerrm,1,250));
10144       IF FND_MSG_PUB.Check_Msg_Level
10145 		(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
10146       THEN
10147 	 FND_MSG_PUB.Add_Exc_Msg
10148 	   ( G_PKG_NAME          ,
10149 	     l_api_name
10150 	   );
10151       END IF;
10152       FND_MSG_PUB.Count_And_Get
10153 	 ( p_count                 =>      x_msg_count,
10154 	   p_data                  =>      x_msg_data
10155 	 );
10156 END Get_All_Parents;
10157 --
10158 PROCEDURE Get_And_Build_Instance_Details
10159    (p_instance_id            IN         NUMBER
10160    ,p_txn_rec                IN OUT NOCOPY csi_datastructures_pub.transaction_rec
10161    ,p_instance_rec           OUT NOCOPY csi_datastructures_pub.instance_rec
10165    ,p_pricing_attribs_tbl    OUT NOCOPY csi_datastructures_pub.pricing_attribs_tbl
10162    ,p_party_tbl              OUT NOCOPY csi_datastructures_pub.party_tbl
10163    ,p_party_account_tbl      OUT NOCOPY csi_datastructures_pub.party_account_tbl
10164    ,p_org_units_tbl          OUT NOCOPY csi_datastructures_pub.organization_units_tbl
10166    ,p_ext_attrib_values_tbl  OUT NOCOPY csi_datastructures_pub.extend_attrib_values_tbl
10167    ,p_instance_asset_tbl     OUT NOCOPY csi_datastructures_pub.instance_asset_tbl
10168    ,x_return_status          OUT NOCOPY VARCHAR2
10169    ,x_msg_count              OUT NOCOPY NUMBER
10170    ,x_msg_data               OUT NOCOPY VARCHAR2
10171   ) IS
10172    --
10173    l_api_name           VARCHAR2(30) := 'Get_And_Build_Instance_Details';
10174    l_instance_rec       csi_datastructures_pub.instance_header_rec;
10175    p_party_header_tbl   CSI_DATASTRUCTURES_PUB.PARTY_HEADER_TBL;
10176    p_account_header_tbl CSI_DATASTRUCTURES_PUB.PARTY_ACCOUNT_HEADER_TBL;
10177    p_org_header_tbl     CSI_DATASTRUCTURES_PUB.ORG_UNITS_HEADER_TBL;
10178    p_pricing_attrib_tbl CSI_DATASTRUCTURES_PUB.PRICING_ATTRIBS_TBL;
10179    p_ext_attrib_tbl     CSI_DATASTRUCTURES_PUB.EXTEND_ATTRIB_VALUES_TBL;
10180    p_ext_attrib_def_tbl CSI_DATASTRUCTURES_PUB.EXTEND_ATTRIB_TBL;
10181    p_asset_header_tbl   CSI_DATASTRUCTURES_PUB.INSTANCE_ASSET_HEADER_TBL;
10182    l_party_tbl          csi_datastructures_pub.party_tbl;
10183    --
10184    l_ctr                NUMBER;
10185    l_found              BOOLEAN;
10186    l_msg_index          NUMBER;
10187    l_msg_count          NUMBER;
10188    --
10189 BEGIN
10190    x_return_status := FND_API.G_RET_STS_SUCCESS;
10191    IF p_instance_id IS NULL OR
10192       p_instance_id = FND_API.G_MISS_NUM THEN
10193       RETURN;
10194    END IF;
10195    --
10196    SAVEPOINT Get_And_Build_Instance_Details;
10197    --
10198    l_instance_rec.instance_id := p_instance_id;
10199    csi_item_instance_pub.get_item_instance_details
10200     (
10201        p_api_version           => 1.0,
10202        p_commit                => fnd_api.g_false,
10203        p_init_msg_list         => fnd_api.g_true,
10204        p_validation_level      => fnd_api.g_valid_level_full,
10205        p_instance_rec          => l_instance_rec,
10206        p_get_parties           => fnd_api.g_true,
10207        p_party_header_tbl      => p_party_header_tbl,
10208        p_get_accounts          => fnd_api.g_true,
10209        p_account_header_tbl    => p_account_header_tbl,
10210        p_get_org_assignments   => fnd_api.g_true,
10211        p_org_header_tbl        => p_org_header_tbl,
10212        p_get_pricing_attribs   => fnd_api.g_false, -- No need to get for children
10213        p_pricing_attrib_tbl    => p_pricing_attrib_tbl,
10214        p_get_ext_attribs       => fnd_api.g_false, -- No need to get for children
10215        p_ext_attrib_tbl        => p_ext_attrib_tbl,
10216        p_ext_attrib_def_tbl    => p_ext_attrib_def_tbl,
10217        p_get_asset_assignments => fnd_api.g_false, -- No need to get for children
10218        p_asset_header_tbl      => p_asset_header_tbl,
10219        p_resolve_id_columns    => fnd_api.g_false,
10220        p_time_stamp            => fnd_api.g_miss_date,
10221        x_return_status         => x_return_status,
10222        x_msg_count             => x_msg_count,
10223        x_msg_data              => x_msg_data
10224    );
10225    --
10226    IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10227       l_msg_index := 1;
10228       l_msg_count := x_msg_count;
10229       WHILE l_msg_count > 0 LOOP
10230 	       x_msg_data := FND_MSG_PUB.GET
10231 			   (  l_msg_index,
10232 			      FND_API.G_FALSE );
10233 	   l_msg_index := l_msg_index + 1;
10234 	   l_msg_count := l_msg_count - 1;
10235       END LOOP;
10236       csi_gen_utility_pvt.put_line('Error from Get Instance Details...');
10237       RAISE FND_API.G_EXC_ERROR;
10238    END IF;
10239    --
10240    p_instance_rec.instance_id             := l_instance_rec.instance_id;
10241    p_instance_rec.instance_number         := l_instance_rec.instance_number;
10242    p_instance_rec.external_reference      := l_instance_rec.external_reference;
10243    p_instance_rec.inventory_item_id       := l_instance_rec.inventory_item_id;
10244    p_instance_rec.vld_organization_id     := l_instance_rec.vld_organization_id;
10245    p_instance_rec.inventory_revision      := l_instance_rec.inventory_revision;
10246    p_instance_rec.inv_master_organization_id      := l_instance_rec.inv_master_organization_id;
10247    p_instance_rec.serial_number           := l_instance_rec.serial_number;
10248    p_instance_rec.mfg_serial_number_flag  := l_instance_rec.mfg_serial_number_flag;
10249    p_instance_rec.lot_number              := l_instance_rec.lot_number;
10250    p_instance_rec.quantity                := l_instance_rec.quantity;
10251    p_instance_rec.unit_of_measure         := l_instance_rec.unit_of_measure;
10252    p_instance_rec.accounting_class_code   := l_instance_rec.accounting_class_code;
10253    p_instance_rec.instance_condition_id   := l_instance_rec.instance_condition_id;
10254    p_instance_rec.instance_status_id      := l_instance_rec.instance_status_id;
10255    p_instance_rec.customer_view_flag      := l_instance_rec.customer_view_flag;
10256    p_instance_rec.merchant_view_flag      := l_instance_rec.merchant_view_flag;
10257    p_instance_rec.sellable_flag           := l_instance_rec.sellable_flag;
10258    p_instance_rec.system_id               := l_instance_rec.system_id;
10259    p_instance_rec.instance_type_code      := l_instance_rec.instance_type_code;
10260    p_instance_rec.active_start_date       := l_instance_rec.active_start_date;
10261    p_instance_rec.active_end_date         := l_instance_rec.active_end_date;
10262    p_instance_rec.location_type_code      := l_instance_rec.location_type_code;
10263    p_instance_rec.location_id             := l_instance_rec.location_id;
10264    p_instance_rec.inv_organization_id     := l_instance_rec.inv_organization_id;
10265    p_instance_rec.inv_subinventory_name   := l_instance_rec.inv_subinventory_name;
10269    p_instance_rec.in_transit_order_line_id        := l_instance_rec.in_transit_order_line_id;
10266    p_instance_rec.inv_locator_id          := l_instance_rec.inv_locator_id;
10267    p_instance_rec.pa_project_id           := l_instance_rec.pa_project_id;
10268    p_instance_rec.pa_project_task_id      := l_instance_rec.pa_project_task_id;
10270    p_instance_rec.wip_job_id              := l_instance_rec.wip_job_id;
10271    p_instance_rec.po_order_line_id        := l_instance_rec.po_order_line_id;
10272    p_instance_rec.last_oe_order_line_id   := l_instance_rec.last_oe_order_line_id;
10273    p_instance_rec.last_oe_rma_line_id     := l_instance_rec.last_oe_rma_line_id;
10274    p_instance_rec.last_po_po_line_id      := l_instance_rec.last_po_po_line_id;
10275    p_instance_rec.last_oe_po_number       := l_instance_rec.last_oe_po_number;
10276    p_instance_rec.last_wip_job_id         := l_instance_rec.last_wip_job_id;
10277    p_instance_rec.last_pa_project_id      := l_instance_rec.last_pa_project_id;
10278    p_instance_rec.last_pa_task_id         := l_instance_rec.last_pa_task_id;
10279    p_instance_rec.last_oe_agreement_id    := l_instance_rec.last_oe_agreement_id;
10280    p_instance_rec.install_date            := l_instance_rec.install_date;
10281    p_instance_rec.manually_created_flag   := l_instance_rec.manually_created_flag;
10282    p_instance_rec.return_by_date          := l_instance_rec.return_by_date;
10283    p_instance_rec.actual_return_date      := l_instance_rec.actual_return_date;
10284    p_instance_rec.creation_complete_flag  := l_instance_rec.creation_complete_flag;
10285    p_instance_rec.completeness_flag       := l_instance_rec.completeness_flag;
10286    p_instance_rec.context         := l_instance_rec.context;
10287    p_instance_rec.attribute1      := l_instance_rec.attribute1;
10288    p_instance_rec.attribute2      := l_instance_rec.attribute2;
10289    p_instance_rec.attribute3      := l_instance_rec.attribute3;
10290    p_instance_rec.attribute4      := l_instance_rec.attribute4;
10291    p_instance_rec.attribute5      := l_instance_rec.attribute5;
10292    p_instance_rec.attribute6      := l_instance_rec.attribute6;
10293    p_instance_rec.attribute7      := l_instance_rec.attribute7;
10294    p_instance_rec.attribute8      := l_instance_rec.attribute8;
10295    p_instance_rec.attribute9      := l_instance_rec.attribute9;
10296    p_instance_rec.attribute10     := l_instance_rec.attribute10;
10297    p_instance_rec.attribute11     := l_instance_rec.attribute11;
10298    p_instance_rec.attribute12     := l_instance_rec.attribute12;
10299    p_instance_rec.attribute13     := l_instance_rec.attribute13;
10300    p_instance_rec.attribute14     := l_instance_rec.attribute14;
10301    p_instance_rec.attribute15     := l_instance_rec.attribute15;
10302    p_instance_rec.object_version_number   := l_instance_rec.object_version_number;
10303    p_instance_rec.last_txn_line_detail_id         := l_instance_rec.last_txn_line_detail_id;
10304    p_instance_rec.install_location_type_code      := l_instance_rec.install_location_type_code;
10305    p_instance_rec.install_location_id     := l_instance_rec.install_location_id;
10306    p_instance_rec.instance_usage_code     := l_instance_rec.instance_usage_code;
10307    p_instance_rec.config_inst_hdr_id      := l_instance_rec.config_inst_hdr_id;
10308    p_instance_rec.config_inst_rev_num     := l_instance_rec.config_inst_rev_num;
10309    p_instance_rec.config_inst_item_id     := l_instance_rec.config_inst_item_id;
10310    p_instance_rec.config_valid_status     := l_instance_rec.config_valid_status;
10311    p_instance_rec.instance_description    := l_instance_rec.instance_description;
10312 
10313    p_instance_rec.network_asset_flag        := l_instance_rec.network_asset_flag;
10314    p_instance_rec.maintainable_flag         := l_instance_rec.maintainable_flag;
10315    p_instance_rec.asset_criticality_code    := l_instance_rec.asset_criticality_code;
10316    p_instance_rec.category_id               := l_instance_rec.category_id ;
10317    p_instance_rec.equipment_gen_object_id   := l_instance_rec.equipment_gen_object_id ;
10318    p_instance_rec.instantiation_flag        := l_instance_rec.instantiation_flag;
10319    p_instance_rec.operational_log_flag      := l_instance_rec.operational_log_flag ;
10320    p_instance_rec.supplier_warranty_exp_date:= l_instance_rec.supplier_warranty_exp_date ;
10321    p_instance_rec.attribute16               := l_instance_rec.attribute16     ;
10322    p_instance_rec.attribute17               := l_instance_rec.attribute17     ;
10323    p_instance_rec.attribute18               := l_instance_rec.attribute18     ;
10324    p_instance_rec.attribute19               := l_instance_rec.attribute19     ;
10325    p_instance_rec.attribute20               := l_instance_rec.attribute20     ;
10326    p_instance_rec.attribute21               := l_instance_rec.attribute21     ;
10327    p_instance_rec.attribute22               := l_instance_rec.attribute22     ;
10328    p_instance_rec.attribute23               := l_instance_rec.attribute23     ;
10329    p_instance_rec.attribute24               := l_instance_rec.attribute24     ;
10330    p_instance_rec.attribute25               := l_instance_rec.attribute25     ;
10331    p_instance_rec.attribute26               := l_instance_rec.attribute26     ;
10332    p_instance_rec.attribute27               := l_instance_rec.attribute27     ;
10333    p_instance_rec.attribute28               := l_instance_rec.attribute28     ;
10334    p_instance_rec.attribute29               := l_instance_rec.attribute29     ;
10335    p_instance_rec.attribute30               := l_instance_rec.attribute30     ;
10336    --
10337    p_instance_rec.purchase_unit_price       := l_instance_rec.purchase_unit_price;
10338    p_instance_rec.purchase_currency_code    := l_instance_rec.purchase_currency_code;
10339    p_instance_rec.payables_unit_price       := l_instance_rec.payables_unit_price;
10340    p_instance_rec.payables_currency_code    := l_instance_rec.payables_currency_code;
10341    p_instance_rec.sales_unit_price          := l_instance_rec.sales_unit_price;
10342    p_instance_rec.sales_currency_code       := l_instance_rec.sales_currency_code;
10343    p_instance_rec.operational_status_code   := l_instance_rec.operational_status_code;
10344    --
10345    -- Build Party Table
10349       FOR i in p_party_header_tbl.FIRST .. p_party_header_tbl.LAST LOOP
10346    csi_gen_utility_pvt.put_line('Building party tbl..');
10347    IF p_party_header_tbl.count > 0 THEN
10348       l_ctr := l_party_tbl.count;
10350          IF nvl(p_party_header_tbl(i).active_end_date,FND_API.G_MISS_DATE) = FND_API.G_MISS_DATE OR
10351             p_party_header_tbl(i).active_end_date > sysdate THEN
10352 	    l_ctr := l_ctr + 1;
10353 	    --
10354 	    l_party_tbl(l_ctr).instance_party_id     := p_party_header_tbl(i).instance_party_id;
10355 	    l_party_tbl(l_ctr).instance_id   := p_party_header_tbl(i).instance_id;
10356 	    l_party_tbl(l_ctr).party_source_table    := p_party_header_tbl(i).party_source_table;
10357 	    l_party_tbl(l_ctr).party_id      := p_party_header_tbl(i).party_id;
10358 	    l_party_tbl(l_ctr).relationship_type_code        := p_party_header_tbl(i).relationship_type_code;
10359 	    l_party_tbl(l_ctr).contact_flag          := p_party_header_tbl(i).contact_flag;
10360 	    l_party_tbl(l_ctr).contact_ip_id         := p_party_header_tbl(i).contact_ip_id;
10361 	    l_party_tbl(l_ctr).active_start_date     := p_party_header_tbl(i).active_start_date;
10362 	    l_party_tbl(l_ctr).active_end_date       := p_party_header_tbl(i).active_end_date;
10363 	    l_party_tbl(l_ctr).context       := p_party_header_tbl(i).context;
10364 	    l_party_tbl(l_ctr).attribute1    := p_party_header_tbl(i).attribute1;
10365 	    l_party_tbl(l_ctr).attribute2    := p_party_header_tbl(i).attribute2;
10366 	    l_party_tbl(l_ctr).attribute3    := p_party_header_tbl(i).attribute3;
10367 	    l_party_tbl(l_ctr).attribute4    := p_party_header_tbl(i).attribute4;
10368 	    l_party_tbl(l_ctr).attribute5    := p_party_header_tbl(i).attribute5;
10369 	    l_party_tbl(l_ctr).attribute6    := p_party_header_tbl(i).attribute6;
10370 	    l_party_tbl(l_ctr).attribute7    := p_party_header_tbl(i).attribute7;
10371 	    l_party_tbl(l_ctr).attribute8    := p_party_header_tbl(i).attribute8;
10372 	    l_party_tbl(l_ctr).attribute9    := p_party_header_tbl(i).attribute9;
10373 	    l_party_tbl(l_ctr).attribute10   := p_party_header_tbl(i).attribute10;
10374 	    l_party_tbl(l_ctr).attribute11   := p_party_header_tbl(i).attribute11;
10375 	    l_party_tbl(l_ctr).attribute12   := p_party_header_tbl(i).attribute12;
10376 	    l_party_tbl(l_ctr).attribute13   := p_party_header_tbl(i).attribute13;
10377 	    l_party_tbl(l_ctr).attribute14   := p_party_header_tbl(i).attribute14;
10378 	    l_party_tbl(l_ctr).attribute15   := p_party_header_tbl(i).attribute15;
10379 	    l_party_tbl(l_ctr).object_version_number         := p_party_header_tbl(i).object_version_number;
10380 	    l_party_tbl(l_ctr).primary_flag          := p_party_header_tbl(i).primary_flag;
10381 	    l_party_tbl(l_ctr).preferred_flag        := p_party_header_tbl(i).preferred_flag;
10382 	    l_party_tbl(l_ctr).parent_tbl_index := 1;
10383          END IF;
10384       END LOOP;
10385       --
10386       -- Following loop cannot be moved inside since contact record could come before the parent party
10387       --
10388       -- The reason for having l_party_tbl and later assigning qualifying records to p_party_tbl is
10389       -- we want to pass back p_party_tbl to the caller without any gaps in the slot#. Moreover, the
10390       -- same set is copied when the BOM is exploded and multiple instances are created.
10391       -- During that phase, we have to ignore the gaps which will potentially impact the underlying acct tbl
10392       --
10393       -- Scan thru' l_party_tbl and get all non-contact party records first
10394       --
10395       l_ctr := p_party_tbl.count;
10396       --
10397       IF l_party_tbl.count > 0 THEN
10398 	 FOR i in l_party_tbl.FIRST .. l_party_tbl.LAST LOOP
10399 	    IF l_party_tbl.EXISTS(i) THEN
10400 	       IF nvl(l_party_tbl(i).contact_flag,'N') = 'N' THEN
10401 		  l_ctr := l_ctr + 1;
10402 		  p_party_tbl(l_ctr) := l_party_tbl(i);
10403 		  l_party_tbl.DELETE(i); -- Just to reduce the table size
10404 	       END IF;
10405 	    END IF;
10406 	 END LOOP;
10407       END IF;
10408       --
10409       -- Append this with the contact party record after populating the contact_parent_tbl index
10410       -- Now, l_party_tbl will be left with only contact party records
10411       --
10412       l_ctr := p_party_tbl.count;
10413       --
10414       IF l_party_tbl.count > 0 THEN
10415 	 FOR i in l_party_tbl.FIRST .. l_party_tbl.LAST LOOP
10416 	    IF l_party_tbl.EXISTS(i) THEN
10417 	       IF l_party_tbl(i).contact_flag = 'Y' THEN -- Verify if parent party exists in p_party_tbl
10418 		  l_found := FALSE;
10419 		  FOR j in p_party_tbl.FIRST .. p_party_tbl.LAST LOOP
10420 		     IF l_party_tbl(i).contact_ip_id = p_party_tbl(j).instance_party_id THEN
10421 			l_party_tbl(i).contact_parent_tbl_index := j;
10422 			l_ctr := l_ctr + 1;
10423 			p_party_tbl(l_ctr) := l_party_tbl(i);
10424 			exit;
10425 		     END IF;
10426 		  END LOOP;
10427 	       END IF;
10428 	    END IF;
10429 	 END LOOP;
10430       END IF;
10431    END IF;
10432    --
10433    -- Build Account Table from Account Header Table
10434    csi_gen_utility_pvt.put_line('Building Account tbl..');
10435    IF p_account_header_tbl.count > 0 AND
10436       p_party_tbl.count > 0 THEN
10437       l_ctr := p_party_account_tbl.count;
10438       FOR i in p_account_header_tbl.FIRST .. p_account_header_tbl.LAST LOOP
10439          IF nvl(p_account_header_tbl(i).active_end_date,FND_API.G_MISS_DATE) = FND_API.G_MISS_DATE OR
10440             p_account_header_tbl(i).active_end_date > sysdate THEN
10441             l_found := FALSE;
10442             --
10443 	    FOR j in p_party_tbl.FIRST .. p_party_tbl.LAST LOOP
10444 	       IF p_party_tbl(j).instance_party_id = p_account_header_tbl(i).instance_party_id THEN
10445 	          l_ctr := l_ctr + 1;
10446 		  p_party_account_tbl(l_ctr).parent_tbl_index := j;
10447                   l_found := TRUE; -- Corresponding party record found
10448 		  exit;
10449 	       END IF;
10450 	    END LOOP;
10451 	    --
10452             IF l_found = TRUE THEN
10456 	       p_party_account_tbl(l_ctr).party_account_id := p_account_header_tbl(i).party_account_id;
10453                -- l_ctr would have got incremented while setting l_found to TRUE
10454 	       p_party_account_tbl(l_ctr).ip_account_id :=    p_account_header_tbl(i).ip_account_id;
10455 	       p_party_account_tbl(l_ctr).instance_party_id := p_account_header_tbl(i).instance_party_id;
10457 	       p_party_account_tbl(l_ctr).relationship_type_code := p_account_header_tbl(i).relationship_type_code;
10458 	       p_party_account_tbl(l_ctr).bill_to_address :=  p_account_header_tbl(i).bill_to_address;
10459 	       p_party_account_tbl(l_ctr).ship_to_address :=  p_account_header_tbl(i).ship_to_address;
10460 	       p_party_account_tbl(l_ctr).active_start_date := p_account_header_tbl(i).active_start_date;
10461 	       p_party_account_tbl(l_ctr).active_end_date :=  p_account_header_tbl(i).active_end_date;
10462 	       p_party_account_tbl(l_ctr).context :=  p_account_header_tbl(i).context;
10463 	       p_party_account_tbl(l_ctr).attribute1 :=       p_account_header_tbl(i).attribute1;
10464 	       p_party_account_tbl(l_ctr).attribute2 :=       p_account_header_tbl(i).attribute2;
10465 	       p_party_account_tbl(l_ctr).attribute3 :=       p_account_header_tbl(i).attribute3;
10466 	       p_party_account_tbl(l_ctr).attribute4 :=       p_account_header_tbl(i).attribute4;
10467 	       p_party_account_tbl(l_ctr).attribute5 :=       p_account_header_tbl(i).attribute5;
10468 	       p_party_account_tbl(l_ctr).attribute6 :=       p_account_header_tbl(i).attribute6;
10469 	       p_party_account_tbl(l_ctr).attribute7 :=       p_account_header_tbl(i).attribute7;
10470 	       p_party_account_tbl(l_ctr).attribute8 :=       p_account_header_tbl(i).attribute8;
10471 	       p_party_account_tbl(l_ctr).attribute9 :=       p_account_header_tbl(i).attribute9;
10472 	       p_party_account_tbl(l_ctr).attribute10 :=      p_account_header_tbl(i).attribute10;
10473 	       p_party_account_tbl(l_ctr).attribute11 :=      p_account_header_tbl(i).attribute11;
10474 	       p_party_account_tbl(l_ctr).attribute12 :=      p_account_header_tbl(i).attribute12;
10475 	       p_party_account_tbl(l_ctr).attribute13 :=      p_account_header_tbl(i).attribute13;
10476 	       p_party_account_tbl(l_ctr).attribute14 :=      p_account_header_tbl(i).attribute14;
10477 	       p_party_account_tbl(l_ctr).attribute15 :=      p_account_header_tbl(i).attribute15;
10478 	       p_party_account_tbl(l_ctr).object_version_number :=    p_account_header_tbl(i).object_version_number;
10479             END IF;
10480          END IF; -- Active Account record
10481       END LOOP;
10482    END IF;
10483    --
10484    csi_gen_utility_pvt.put_line('Building Org Assignments tbl..');
10485    -- Build org Assignments table
10486    IF p_org_header_tbl.count > 0 THEN
10487       l_ctr := p_org_units_tbl.count;
10488       FOR i in p_org_header_tbl.FIRST .. p_org_header_tbl.LAST LOOP
10489          IF nvl(p_org_header_tbl(i).active_end_date,FND_API.G_MISS_DATE) = FND_API.G_MISS_DATE OR
10490             p_org_header_tbl(i).active_end_date > sysdate THEN
10491 	    l_ctr := l_ctr + 1;
10492 	    --
10493 	    p_org_units_tbl(l_ctr).instance_ou_id :=       p_org_header_tbl(i).instance_ou_id;
10494 	    p_org_units_tbl(l_ctr).instance_id :=  p_org_header_tbl(i).instance_id;
10495 	    p_org_units_tbl(l_ctr).operating_unit_id :=    p_org_header_tbl(i).operating_unit_id;
10496 	    p_org_units_tbl(l_ctr).relationship_type_code := p_org_header_tbl(i).relationship_type_code;
10497 	    p_org_units_tbl(l_ctr).active_start_date :=    p_org_header_tbl(i).active_start_date;
10498 	    p_org_units_tbl(l_ctr).active_end_date :=      p_org_header_tbl(i).active_end_date;
10499 	    p_org_units_tbl(l_ctr).context :=      p_org_header_tbl(i).context;
10500 	    p_org_units_tbl(l_ctr).attribute1 :=   p_org_header_tbl(i).attribute1;
10501 	    p_org_units_tbl(l_ctr).attribute2 :=   p_org_header_tbl(i).attribute2;
10502 	    p_org_units_tbl(l_ctr).attribute3 :=   p_org_header_tbl(i).attribute3;
10503 	    p_org_units_tbl(l_ctr).attribute4 :=   p_org_header_tbl(i).attribute4;
10504 	    p_org_units_tbl(l_ctr).attribute5 :=   p_org_header_tbl(i).attribute5;
10505 	    p_org_units_tbl(l_ctr).attribute6 :=   p_org_header_tbl(i).attribute6;
10506 	    p_org_units_tbl(l_ctr).attribute7 :=   p_org_header_tbl(i).attribute7;
10507 	    p_org_units_tbl(l_ctr).attribute8 :=   p_org_header_tbl(i).attribute8;
10508 	    p_org_units_tbl(l_ctr).attribute9 :=   p_org_header_tbl(i).attribute9;
10509 	    p_org_units_tbl(l_ctr).attribute10 :=  p_org_header_tbl(i).attribute10;
10510 	    p_org_units_tbl(l_ctr).attribute11 :=  p_org_header_tbl(i).attribute11;
10511 	    p_org_units_tbl(l_ctr).attribute12 :=  p_org_header_tbl(i).attribute12;
10512 	    p_org_units_tbl(l_ctr).attribute13 :=  p_org_header_tbl(i).attribute13;
10513 	    p_org_units_tbl(l_ctr).attribute14 :=  p_org_header_tbl(i).attribute14;
10514 	    p_org_units_tbl(l_ctr).attribute15 :=  p_org_header_tbl(i).attribute15;
10515 	    p_org_units_tbl(l_ctr).object_version_number := p_org_header_tbl(i).object_version_number;
10516 	    p_org_units_tbl(l_ctr).parent_tbl_index := 1;
10517          END IF;
10518       END LOOP;
10519    END IF;
10520    -- Build Pricing Attrib Table
10521    csi_gen_utility_pvt.put_line('Building Pricing tbl..');
10522    IF p_pricing_attrib_tbl.count > 0 THEN
10523       l_ctr := p_pricing_attribs_tbl.count;
10524       FOR i in p_pricing_attrib_tbl.FIRST .. p_pricing_attrib_tbl.LAST LOOP
10525          IF nvl(p_pricing_attrib_tbl(i).active_end_date,FND_API.G_MISS_DATE) = FND_API.G_MISS_DATE OR
10526             p_pricing_attrib_tbl(i).active_end_date > sysdate THEN
10527 	    l_ctr := l_ctr + 1;
10528 	    p_pricing_attribs_tbl(l_ctr) := p_pricing_attrib_tbl(i);
10529 	    p_pricing_attribs_tbl(l_ctr).parent_tbl_index := 1;
10530          END IF;
10531       END LOOP;
10532    END IF;
10533    -- Build Extended Attributes Table
10534    csi_gen_utility_pvt.put_line('Building Ext Attribs tbl..');
10535    IF p_ext_attrib_tbl.count > 0 THEN
10536       l_ctr := p_ext_attrib_values_tbl.count;
10537       FOR i in p_ext_attrib_tbl.FIRST .. p_ext_attrib_tbl.LAST LOOP
10538          IF nvl(p_ext_attrib_tbl(i).active_end_date,FND_API.G_MISS_DATE) = FND_API.G_MISS_DATE OR
10542 	    p_ext_attrib_values_tbl(l_ctr).parent_tbl_index := 1;
10539             p_ext_attrib_tbl(i).active_end_date > sysdate THEN
10540 	    l_ctr := l_ctr + 1;
10541 	    p_ext_attrib_values_tbl(l_ctr) := p_ext_attrib_tbl(i);
10543          END IF;
10544       END LOOP;
10545    END IF;
10546    -- Build Instance Asset Table
10547    csi_gen_utility_pvt.put_line('Building Instance Asset tbl..');
10548    IF p_asset_header_tbl.count > 0 THEN
10549       l_ctr := p_instance_asset_tbl.count;
10550       FOR i in p_asset_header_tbl.FIRST .. p_asset_header_tbl.LAST LOOP
10551          IF nvl(p_asset_header_tbl(i).active_end_date,FND_API.G_MISS_DATE) = FND_API.G_MISS_DATE OR
10552             p_asset_header_tbl(i).active_end_date > sysdate THEN
10553 	    l_ctr := l_ctr + 1;
10554 	    --
10555 	    p_instance_asset_tbl(l_ctr).instance_asset_id := p_asset_header_tbl(i).instance_asset_id;
10556 	    p_instance_asset_tbl(l_ctr).instance_id :=     p_asset_header_tbl(i).instance_id;
10557 	    p_instance_asset_tbl(l_ctr).fa_asset_id :=     p_asset_header_tbl(i).fa_asset_id;
10558 	    p_instance_asset_tbl(l_ctr).fa_book_type_code := p_asset_header_tbl(i).fa_book_type_code;
10559 	    p_instance_asset_tbl(l_ctr).fa_location_id :=  p_asset_header_tbl(i).fa_location_id;
10560 	    p_instance_asset_tbl(l_ctr).asset_quantity :=  p_asset_header_tbl(i).asset_quantity;
10561 	    p_instance_asset_tbl(l_ctr).update_status :=   p_asset_header_tbl(i).update_status;
10562 	    p_instance_asset_tbl(l_ctr).active_start_date := p_asset_header_tbl(i).active_start_date;
10563 	    p_instance_asset_tbl(l_ctr).active_end_date := p_asset_header_tbl(i).active_end_date;
10564 	    p_instance_asset_tbl(l_ctr).object_version_number := p_asset_header_tbl(i).object_version_number;
10565 	    p_instance_asset_tbl(l_ctr).parent_tbl_index := 1;
10566          END IF;
10567       END LOOP;
10568    END IF;
10569 EXCEPTION
10570     WHEN FND_API.G_EXC_ERROR THEN
10571             ROLLBACK TO Get_And_Build_Instance_Details;
10572             x_return_status := FND_API.G_RET_STS_ERROR ;
10573             FND_MSG_PUB.Count_And_Get
10574                 (  p_count               =>      x_msg_count,
10575                     p_data                =>      x_msg_data
10576                  );
10577       WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
10578             ROLLBACK TO Get_And_Build_Instance_Details;
10579             x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
10580             FND_MSG_PUB.Count_And_Get
10581                 (  p_count               =>      x_msg_count,
10582                     p_data                =>      x_msg_data
10583                  );
10584       WHEN OTHERS THEN
10585             ROLLBACK TO  Get_And_Build_Instance_Details;
10586             x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
10587               IF       FND_MSG_PUB.Check_Msg_Level
10588                   (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
10589             THEN
10590                     FND_MSG_PUB.Add_Exc_Msg
10591                     (      G_PKG_NAME            ,
10592                           l_api_name
10593                      );
10594             END IF;
10595             FND_MSG_PUB.Count_And_Get
10596                 (  p_count               =>      x_msg_count,
10597                     p_data                =>      x_msg_data
10598                 );
10599 END Get_And_Build_Instance_Details;
10600 --
10601 /*---------------------------------------------------------*/
10602 /* Procedure name:  Explode_Bom                            */
10603 /* Description :    This procudure explodes the BOM and    */
10604 /*                  creates instances and relationships    */
10605 /* Author      :    Srinivasan Ramakrishnan                */
10606 /*---------------------------------------------------------*/
10607 PROCEDURE Explode_Bom
10608  (
10609    p_api_version            IN     NUMBER
10610   ,p_commit                 IN     VARCHAR2
10611   ,p_init_msg_list          IN     VARCHAR2
10612   ,p_validation_level       IN     NUMBER
10613   ,p_source_instance_tbl    IN     csi_datastructures_pub.instance_tbl
10614   ,p_explosion_level        IN     NUMBER
10615   ,p_txn_rec                IN OUT NOCOPY csi_datastructures_pub.transaction_rec
10616   ,x_return_status          OUT    NOCOPY VARCHAR2
10617   ,x_msg_count              OUT    NOCOPY NUMBER
10618   ,x_msg_data               OUT    NOCOPY VARCHAR2
10619  )
10620 IS
10621    --
10622    l_api_name                    CONSTANT VARCHAR2(30) := 'explode_bom';
10623    l_api_version                 CONSTANT NUMBER      := 1.0;
10624    l_debug_level                 NUMBER;
10625    l_msg_index                   NUMBER;
10626    l_msg_count                   NUMBER;
10627    x_ins_tbl                     csi_datastructures_pub.instance_tbl;
10628    x_rel_tbl                     csi_datastructures_pub.ii_relationship_tbl;
10629    l_ins_tbl                     csi_datastructures_pub.instance_tbl;
10630    l_rel_ctr                     NUMBER := 0;
10631    x_new_ins_tbl                 csi_datastructures_pub.instance_tbl;
10632    l_rel_tbl                     csi_datastructures_pub.ii_relationship_tbl;
10633    p_instance_rec                csi_datastructures_pub.instance_rec;
10634    l_prev_item                   NUMBER := -9999;
10635    x_msg_index_out               NUMBER;
10636    --
10637    p_party_tbl                   csi_datastructures_pub.party_tbl;
10638    p_party_account_tbl           csi_datastructures_pub.party_account_tbl;
10639    p_org_units_tbl               csi_datastructures_pub.organization_units_tbl;
10640    p_pricing_attribs_tbl         csi_datastructures_pub.pricing_attribs_tbl;
10641    p_ext_attrib_values_tbl       csi_datastructures_pub.extend_attrib_values_tbl;
10642    p_instance_asset_tbl          csi_datastructures_pub.instance_asset_tbl;
10643    l_version_label               VARCHAR2(240);
10644    l_ver_label_desc              VARCHAR2(240);
10645    --
10646    p_grp_error_tbl               csi_datastructures_pub.grp_error_tbl;
10647    p_txn_tbl                     csi_datastructures_pub.transaction_tbl;
10651    l_grp_party_tbl               csi_datastructures_pub.party_tbl;
10648    l_grp_ins_tbl                 csi_datastructures_pub.instance_tbl;
10649    l_grp_ctr                     NUMBER := 0;
10650    l_grp_rel_tbl                 csi_datastructures_pub.ii_relationship_tbl;
10652    l_grp_account_tbl             csi_datastructures_pub.party_account_tbl;
10653    l_grp_org_units_tbl           csi_datastructures_pub.organization_units_tbl;
10654    l_grp_pricing_attribs_tbl     csi_datastructures_pub.pricing_attribs_tbl;
10655    l_grp_ext_attrib_values_tbl   csi_datastructures_pub.extend_attrib_values_tbl;
10656    l_grp_instance_asset_tbl      csi_datastructures_pub.instance_asset_tbl;
10657    l_party_ctr                   NUMBER;
10658    l_ctr                         NUMBER;
10659    l_bom_expl_org_flag                   VARCHAR2(3);
10660    --
10661 BEGIN
10662     -- Standard Start of API savepoint
10663     SAVEPOINT      explode_bom;
10664     -- Standard call to check for call compatibility.
10665     IF NOT FND_API.Compatible_API_Call (l_api_version,
10666                                         p_api_version,
10667                                         l_api_name ,
10668                                         G_PKG_NAME)
10669     THEN
10670        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10671     END IF;
10672     -- Initialize message list if p_init_msg_list is set to TRUE.
10673     IF FND_API.to_Boolean( p_init_msg_list ) THEN
10674        FND_MSG_PUB.initialize;
10675     END IF;
10676     --  Initialize API return status to success
10677     x_return_status := FND_API.G_RET_STS_SUCCESS;
10678     -- Check the profile option debug_level for debug message reporting
10679     l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
10680     -- If debug_level = 1 then dump the procedure name
10681     IF (l_debug_level > 0) THEN
10682         csi_gen_utility_pvt.put_line( 'explode_bom (Group)');
10683     END IF;
10684     -- Start API body
10685     -- Bug 10285807
10686     -- Fetch profile CSI_BOM_EXPLOSION_ORG
10687     -- If Y => Shipping/Warehouse Org will be used for BOM child component
10688     -- validation and creation
10689     -- If N => Item validation Org will be used for BOM child component
10690     -- validation and creation
10691     l_bom_expl_org_flag := nvl(FND_PROFILE.VALUE('CSI_BOM_EXPLOSION_ORG'), 'N');
10692     csi_gen_utility_pvt.put_line('Group Explode BOM - l_bom_expl_org_flag - ' || l_bom_expl_org_flag);
10693 
10694     IF p_source_instance_tbl.count > 0 THEN
10695        FOR src_rec in  p_source_instance_tbl.FIRST ..  p_source_instance_tbl.LAST LOOP
10696           IF p_source_instance_tbl.EXISTS(src_rec) THEN
10697 	     -- Verify instance quantity
10698 	     IF ((p_source_instance_tbl(src_rec).QUANTITY IS NULL)
10699 		   OR (p_source_instance_tbl(src_rec).QUANTITY = FND_API.G_MISS_NUM )
10700 		   OR (p_source_instance_tbl(src_rec).QUANTITY <> 1)) THEN
10701 		FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_QUANTITY');
10702 		FND_MESSAGE.SET_TOKEN('QUANTITY',p_source_instance_tbl(src_rec).QUANTITY);
10703 		FND_MSG_PUB.Add;
10704 		RAISE FND_API.G_EXC_ERROR;
10705 	     END IF;
10706 	     --
10707 	     IF (p_source_instance_tbl(src_rec).instance_id IS NULL) OR
10708 		(p_source_instance_tbl(src_rec).instance_id = FND_API.G_MISS_NUM) THEN
10709 		FND_MESSAGE.SET_NAME('CSI','CSI_API_INSTANCE_ID_NULL');
10710 		FND_MSG_PUB.Add;
10711 		RAISE FND_API.G_EXC_ERROR;
10712 	     END IF;
10713 	     --
10714 	     -- Verify if configruation has been exploded before
10715 	     IF (csi_Item_Instance_Vld_pvt.Is_config_exploded
10716 		( p_source_instance_tbl(src_rec).INSTANCE_ID)) THEN
10717 		csi_gen_utility_pvt.put_line('Configuration already Exploded');
10718 		RAISE FND_API.G_EXC_ERROR;
10719 	     END IF;
10720              --
10721              IF l_prev_item = -9999 OR
10722                 l_prev_item <> p_source_instance_tbl(src_rec).inventory_item_id THEN
10723                 l_prev_item := p_source_instance_tbl(src_rec).inventory_item_id;
10724                 -- Call Explode BOM
10725 		csi_item_instance_pvt.Explode_Bom
10726 		 (
10727 		   p_api_version            => 1.0
10728 		  ,p_commit                 => p_commit
10729 		  ,p_init_msg_list          => p_init_msg_list
10730 		  ,p_validation_level       => p_validation_level
10731 		  ,p_source_instance_rec    => p_source_instance_tbl(src_rec)
10732 		  ,p_explosion_level        => p_explosion_level
10733 		  ,p_item_tbl               => x_ins_tbl
10734 		  ,p_item_relation_tbl      => x_rel_tbl
10735 		  ,p_create_instance        => FND_API.G_FALSE -- Since we just need the output
10736 		  ,p_txn_rec                => p_txn_rec
10737 		  ,x_return_status          => x_return_status
10738 		  ,x_msg_count              => x_msg_count
10739 		  ,x_msg_data               => x_msg_data
10740 		 );
10741 		 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
10742 		    csi_gen_utility_pvt.put_line('Error in Explode_BOM Regular Routine..');
10743 		     FOR i in 1..x_msg_Count LOOP
10744 		       FND_MSG_PUB.Get(p_msg_index     => i,
10745 				       p_encoded       => 'F',
10746 				       p_data          => x_msg_data,
10747 				       p_msg_index_out => x_msg_index_out );
10748 		       csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
10749 		    End LOOP;
10750 		    RAISE FND_API.G_EXC_ERROR;
10751 		END IF;
10752              END IF;
10753              --
10754 	     -- Get the instance and other entities info
10755              IF x_ins_tbl.count > 0 THEN
10756 		csi_gen_utility_pvt.put_line('Calling Get_And_Build_Instance_Details...');
10757 		Get_And_Build_Instance_Details
10758 		   (p_instance_id            => p_source_instance_tbl(src_rec).instance_id
10759 		   ,p_txn_rec                => p_txn_rec
10760 		   ,p_instance_rec           => p_instance_rec
10761 		   ,p_party_tbl              => p_party_tbl
10762 		   ,p_party_account_tbl      => p_party_account_tbl
10763 		   ,p_org_units_tbl          => p_org_units_tbl
10767 		   ,x_return_status          => x_return_status
10764 		   ,p_pricing_attribs_tbl    => p_pricing_attribs_tbl
10765 		   ,p_ext_attrib_values_tbl  => p_ext_attrib_values_tbl
10766 		   ,p_instance_asset_tbl     => p_instance_asset_tbl
10768 		   ,x_msg_count              => x_msg_count
10769 		   ,x_msg_data               => x_msg_data
10770 		  );
10771 		IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10772 		   l_msg_index := 1;
10773 		   l_msg_count := x_msg_count;
10774 		   WHILE l_msg_count > 0 LOOP
10775 			   x_msg_data := FND_MSG_PUB.GET
10776 				       (  l_msg_index,
10777 					  FND_API.G_FALSE );
10778 		       l_msg_index := l_msg_index + 1;
10779 		       l_msg_count := l_msg_count - 1;
10780 		   END LOOP;
10781 		   csi_gen_utility_pvt.put_line('Error from Get_And_Build_Instance_Details...');
10782 		   RAISE FND_API.G_EXC_ERROR;
10783                 ELSE
10784                    csi_gen_utility_pvt.put_line('Count After Get_And_Build_Instance_Details...');
10785                    csi_gen_utility_pvt.put_line('p_party_tbl Count is '||to_char(p_party_tbl.count));
10786                    csi_gen_utility_pvt.put_line('p_party_account_tbl Count is '||to_char(p_party_account_tbl.count));
10787                    csi_gen_utility_pvt.put_line('p_org_units_tbl Count is '||to_char(p_org_units_tbl.count));
10788                    csi_gen_utility_pvt.put_line('p_pricing_attribs_tbl Count is '||to_char(p_pricing_attribs_tbl.count));
10789                    csi_gen_utility_pvt.put_line('p_ext_attrib_values_tbl Count is '||to_char(p_ext_attrib_values_tbl.count));
10790                    csi_gen_utility_pvt.put_line('p_instance_asset_tbl Count is '||to_char(p_instance_asset_tbl.count));
10791 		END IF;
10792 		--
10793 		l_version_label := null;
10794 		l_ver_label_desc := null;
10795 		Begin
10796 		   select version_label,description
10797 		   into l_version_label,l_ver_label_desc
10798 		   from CSI_I_VERSION_LABELS
10799 		   where instance_id = p_source_instance_tbl(src_rec).instance_id
10800 		   and   rownum < 2;
10801 		Exception
10802 		   when no_data_found then
10803 		      null;
10804 	        End;
10805              END IF; -- x_ins_tbl count
10806              --
10807 	     l_ins_tbl.DELETE;
10808 	     l_rel_tbl.DELETE;
10809              l_party_ctr := p_party_tbl.count;
10810 	     l_ins_tbl := x_ins_tbl;
10811 	     l_rel_tbl := x_rel_tbl;
10812 	     IF l_ins_tbl.count > 0 THEN
10813 		For ins_tab in l_ins_tbl.FIRST .. l_ins_tbl.LAST
10814 		Loop
10815                    l_grp_ctr := l_grp_ctr + 1;
10816                    l_grp_ins_tbl(l_grp_ctr) := p_instance_rec;
10817                    select CSI_ITEM_INSTANCES_S.nextval
10818                    into l_grp_ins_tbl(l_grp_ctr).instance_id
10819                    from dual;
10820                    --
10821 
10822            csi_gen_utility_pvt.put_line('Current vld org id '||l_grp_ins_tbl(l_grp_ctr).vld_organization_id);
10823            csi_gen_utility_pvt.put_line('Warehouse org id from BOM '||l_ins_tbl(ins_tab).vld_organization_id);
10824 
10825                    l_grp_ins_tbl(l_grp_ctr).instance_number := l_grp_ins_tbl(l_grp_ctr).instance_id;
10826                    l_grp_ins_tbl(l_grp_ctr).external_reference := fnd_api.g_miss_char;
10827                    l_grp_ins_tbl(l_grp_ctr).object_version_number := fnd_api.g_miss_num;
10828                    l_grp_ins_tbl(l_grp_ctr).inventory_item_id := l_ins_tbl(ins_tab).inventory_item_id;
10829            -- Bug 10285807
10830            -- If Shipping org is enabled, then assign shipping org id from BOM to
10831            -- instance creation PLS table
10832            IF NVL(l_bom_expl_org_flag,'N') = 'Y' THEN
10833             l_grp_ins_tbl(l_grp_ctr).vld_organization_id := l_ins_tbl(ins_tab).vld_organization_id;
10834            END IF;
10835                    l_grp_ins_tbl(l_grp_ctr).inventory_revision := fnd_api.g_miss_char;
10836                    l_grp_ins_tbl(l_grp_ctr).quantity := l_ins_tbl(ins_tab).quantity;
10837                    l_grp_ins_tbl(l_grp_ctr).mfg_serial_number_flag := 'N';
10838                    l_grp_ins_tbl(l_grp_ctr).unit_of_measure := l_ins_tbl(ins_tab).unit_of_measure;
10839                    l_grp_ins_tbl(l_grp_ctr).lot_number := NULL;
10840                    l_grp_ins_tbl(l_grp_ctr).serial_number := NULL;
10841                    l_grp_ins_tbl(l_grp_ctr).creation_complete_flag := fnd_api.g_miss_char;
10842                    l_grp_ins_tbl(l_grp_ctr).completeness_flag := fnd_api.g_miss_char;
10843                    l_grp_ins_tbl(l_grp_ctr).version_label := l_version_label;
10844                    l_grp_ins_tbl(l_grp_ctr).version_label_description := l_ver_label_desc;
10845 		   --
10846 		   -- On success Populate the relationship_tbl with the new instance_id
10847 		   IF l_rel_tbl.count > 0 THEN
10848 		      For rel_tab in l_rel_tbl.FIRST .. l_rel_tbl.LAST
10849 		      Loop
10850 			 IF l_rel_tbl(rel_tab).object_id = 0 THEN -- Top Most
10851 			    l_rel_tbl(rel_tab).object_id := p_source_instance_tbl(src_rec).instance_id;
10852 			 END IF;
10853 			 --
10854 			 IF l_rel_tbl(rel_tab).subject_id = ins_tab THEN
10855 			    l_rel_tbl(rel_tab).subject_id := l_grp_ins_tbl(l_grp_ctr).instance_id;
10856 			 END IF;
10857 			 --
10858 			 IF l_rel_tbl(rel_tab).object_id = ins_tab THEN
10859 			    l_rel_tbl(rel_tab).object_id := l_grp_ins_tbl(l_grp_ctr).instance_id;
10860 			 END IF;
10861 		      End Loop;
10862 		   END IF;
10863                    --
10864                    -- One Txn per Instance for calling Group API
10865                    -- We pass the same txn id for all the txns. Group API will insert only distinct values.
10866                    p_txn_tbl(l_grp_ctr) := p_txn_rec;
10867                   -- p_txn_tbl(l_grp_ctr).transaction_id := fnd_api.g_miss_num;
10868                   -- p_txn_tbl(l_grp_ctr).object_version_number := fnd_api.g_miss_num;
10869                    --
10870                    -- Build Party Tbl
10871 		   l_ctr := l_grp_party_tbl.count;
10872 		   IF p_party_tbl.count > 0 THEN
10873 		      FOR j in p_party_tbl.FIRST .. p_party_tbl.LAST LOOP
10877 			 l_grp_party_tbl(l_ctr).instance_id := l_grp_ins_tbl(l_grp_ctr).instance_id;
10874 			 l_ctr := l_ctr + 1;
10875 			 l_grp_party_tbl(l_ctr) := p_party_tbl(j);
10876 			 l_grp_party_tbl(l_ctr).instance_party_id := fnd_api.g_miss_num;
10878 			 l_grp_party_tbl(l_ctr).object_version_number := fnd_api.g_miss_num;
10879 			 l_grp_party_tbl(l_ctr).parent_tbl_index := l_grp_ctr;
10880 			 l_grp_party_tbl(l_ctr).contact_ip_id := fnd_api.g_miss_num;
10881 			 IF l_grp_ctr > 1 THEN
10882 			    IF p_party_tbl(j).contact_flag = 'Y' THEN
10883 			       l_grp_party_tbl(l_ctr).contact_parent_tbl_index :=
10884 				  p_party_tbl(j).contact_parent_tbl_index + ((l_grp_ctr-1) * l_party_ctr);
10885 			    END IF;
10886 			 END IF;
10887 		      END LOOP;
10888 		   END IF;
10889 		   --
10890                    -- Build Account Tbl
10891 		   l_ctr := l_grp_account_tbl.count;
10892 		   IF p_party_account_tbl.count > 0 THEN
10893 		      FOR j in p_party_account_tbl.FIRST .. p_party_account_tbl.LAST LOOP
10894 			 l_ctr := l_ctr + 1;
10895 			 l_grp_account_tbl(l_ctr) := p_party_account_tbl(j);
10896 			 l_grp_account_tbl(l_ctr).ip_account_id := fnd_api.g_miss_num;
10897 			 l_grp_account_tbl(l_ctr).instance_party_id := fnd_api.g_miss_num;
10898 			 l_grp_account_tbl(l_ctr).object_version_number := fnd_api.g_miss_num;
10899 			 IF l_grp_ctr > 1 THEN
10900 			    l_grp_account_tbl(l_ctr).parent_tbl_index :=
10901 				  p_party_account_tbl(j).parent_tbl_index + ((l_grp_ctr-1) * l_party_ctr);
10902 			 END IF;
10903 		      END LOOP;
10904 		   END IF;
10905 		   --
10906 		   l_ctr := l_grp_org_units_tbl.count;
10907 		   IF p_org_units_tbl.count > 0 THEN
10908 		      FOR j in p_org_units_tbl.FIRST .. p_org_units_tbl.LAST LOOP
10909 			 l_ctr := l_ctr + 1;
10910 			 l_grp_org_units_tbl(l_ctr) := p_org_units_tbl(j);
10911 			 l_grp_org_units_tbl(l_ctr).parent_tbl_index := l_grp_ctr;
10912 			 l_grp_org_units_tbl(l_ctr).instance_id := l_grp_ins_tbl(l_grp_ctr).instance_id;
10913 			 l_grp_org_units_tbl(l_ctr).instance_ou_id := fnd_api.g_miss_num;
10914 			 l_grp_org_units_tbl(l_ctr).object_version_number := fnd_api.g_miss_num;
10915 		      END LOOP;
10916 		   END IF;
10917 		   --
10918 		   l_ctr := l_grp_pricing_attribs_tbl.count;
10919 		   IF p_pricing_attribs_tbl.count > 0 THEN
10920 		      FOR j in p_pricing_attribs_tbl.FIRST .. p_pricing_attribs_tbl.LAST LOOP
10921 			 l_ctr := l_ctr + 1;
10922 			 l_grp_pricing_attribs_tbl(l_ctr) := p_pricing_attribs_tbl(j);
10923 			 l_grp_pricing_attribs_tbl(l_ctr).parent_tbl_index := l_grp_ctr;
10924 			 l_grp_pricing_attribs_tbl(l_ctr).instance_id := l_grp_ins_tbl(l_grp_ctr).instance_id;
10925 			 l_grp_pricing_attribs_tbl(l_ctr).pricing_attribute_id := fnd_api.g_miss_num;
10926 			 l_grp_pricing_attribs_tbl(l_ctr).object_version_number := fnd_api.g_miss_num;
10927 		      END LOOP;
10928 		   END IF;
10929 		   --
10930 		   l_ctr := l_grp_ext_attrib_values_tbl.count;
10931 		   IF p_ext_attrib_values_tbl.count > 0 THEN
10932 		      FOR j in p_ext_attrib_values_tbl.FIRST .. p_ext_attrib_values_tbl.LAST LOOP
10933 			 l_ctr := l_ctr + 1;
10934 			 l_grp_ext_attrib_values_tbl(l_ctr) := p_ext_attrib_values_tbl(j);
10935 			 l_grp_ext_attrib_values_tbl(l_ctr).parent_tbl_index := l_grp_ctr;
10936 			 l_grp_ext_attrib_values_tbl(l_ctr).attribute_value_id := fnd_api.g_miss_num;
10937 			 l_grp_ext_attrib_values_tbl(l_ctr).instance_id := l_grp_ins_tbl(l_grp_ctr).instance_id;
10938 			 l_grp_ext_attrib_values_tbl(l_ctr).object_version_number := fnd_api.g_miss_num;
10939 		      END LOOP;
10940 		   END IF;
10941 		   --
10942 		   l_ctr := l_grp_instance_asset_tbl.count;
10943 		   IF p_instance_asset_tbl.count > 0 THEN
10944 		      FOR j in p_instance_asset_tbl.FIRST .. p_instance_asset_tbl.LAST LOOP
10945 			 l_ctr := l_ctr + 1;
10946 			 l_grp_instance_asset_tbl(l_ctr) := p_instance_asset_tbl(j);
10947 			 l_grp_instance_asset_tbl(l_ctr).parent_tbl_index := l_grp_ctr;
10948 			 l_grp_instance_asset_tbl(l_ctr).instance_id := l_grp_ins_tbl(l_grp_ctr).instance_id;
10949 			 l_grp_instance_asset_tbl(l_ctr).object_version_number := fnd_api.g_miss_num;
10950 			 l_grp_instance_asset_tbl(l_ctr).instance_asset_id := fnd_api.g_miss_num;
10951                       END LOOP;
10952                    END IF;
10953 		End Loop; -- l_ins_tbl (components) loop
10954 		--
10955                 -- At the end of this loop all the relationship records
10956                 -- will have the right subject and object
10957                 -- Add the l_rel_tbl into l_grp_rel_tbl
10958 		IF l_rel_tbl.count > 0 THEN
10959                    l_rel_ctr := l_grp_rel_tbl.count;
10960                    FOR rel_rec in l_rel_tbl.FIRST .. l_rel_tbl.LAST LOOP
10961                       l_rel_ctr := l_rel_ctr + 1;
10962                       l_grp_rel_tbl(l_rel_ctr).object_id := l_rel_tbl(rel_rec).object_id;
10963                       l_grp_rel_tbl(l_rel_ctr).subject_id := l_rel_tbl(rel_rec).subject_id;
10964                       l_grp_rel_tbl(l_rel_ctr).relationship_type_code := 'COMPONENT-OF';
10965                    END LOOP;
10966 		END IF;
10967 	     END IF; -- End of l_ins_tbl_count
10968           END IF; -- p_source_instance_tbl exists
10969        END LOOP; -- p_source_instance_tbl loop
10970     END IF; -- p_src_instance_tbl count
10971     --
10972     -- Call Create Item Instance Group API
10973     csi_gen_utility_pvt.put_line('Instance count is '||to_char(l_grp_ins_tbl.count));
10974     csi_gen_utility_pvt.put_line('Party count is '||to_char(l_grp_party_tbl.count));
10975     csi_gen_utility_pvt.put_line('Account count is '||to_char(l_grp_account_tbl.count));
10976     csi_gen_utility_pvt.put_line('Pricing count is '||to_char(l_grp_pricing_attribs_tbl.count));
10977     csi_gen_utility_pvt.put_line('Ext Attribs count is '||to_char(l_grp_ext_attrib_values_tbl.count));
10978     csi_gen_utility_pvt.put_line('Org Units count is '||to_char(l_grp_org_units_tbl.count));
10979     csi_gen_utility_pvt.put_line('Asset count is '||to_char(l_grp_instance_asset_tbl.count));
10980     csi_gen_utility_pvt.put_line('Transaction count is '||to_char(p_txn_tbl.count));
10981     --
10985 	,p_init_msg_list         => p_init_msg_list
10982     csi_item_instance_grp.create_item_instance
10983        ( p_api_version           => 1.0
10984 	,p_commit                => p_commit
10986 	,p_validation_level      => p_validation_level
10987 	,p_instance_tbl          => l_grp_ins_tbl
10988 	,p_ext_attrib_values_tbl => l_grp_ext_attrib_values_tbl
10989 	,p_party_tbl             => l_grp_party_tbl
10990 	,p_account_tbl           => l_grp_account_tbl
10991 	,p_pricing_attrib_tbl    => l_grp_pricing_attribs_tbl
10992 	,p_org_assignments_tbl   => l_grp_org_units_tbl
10993 	,p_asset_assignment_tbl  => l_grp_instance_asset_tbl
10994 	,p_txn_tbl               => p_txn_tbl
10995         ,p_call_from_bom_expl    => fnd_api.g_true
10996 	,p_grp_error_tbl         => p_grp_error_tbl
10997 	,x_return_status         => x_return_status
10998 	,x_msg_count             => x_msg_count
10999 	,x_msg_data              => x_msg_data
11000       );
11001       --
11002       IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
11003 	 csi_gen_utility_pvt.put_line('Error from Group Create_item_instance..');
11004 	  FOR i in 1..x_msg_Count LOOP
11005 	    FND_MSG_PUB.Get(p_msg_index     => i,
11006 			    p_encoded       => 'F',
11007 			    p_data          => x_msg_data,
11008 			    p_msg_index_out => x_msg_index_out );
11009 	    csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
11010 	 End LOOP;
11011 	 RAISE FND_API.G_EXC_ERROR;
11012      END IF;
11013     --
11014     csi_gen_utility_pvt.put_line('Relationship Count is '||to_char(l_grp_rel_tbl.count));
11015     IF l_grp_rel_tbl.count > 0 THEN
11016        csi_gen_utility_pvt.put_line('Calling Create Relationship PUB...');
11017        csi_ii_relationships_pub.create_relationship
11018 	   (
11019 	     p_api_version         => 1.0,
11020 	     p_commit              => fnd_api.g_false,
11021 	     p_init_msg_list       => fnd_api.g_true,
11022 	     p_validation_level    => fnd_api.g_valid_level_full,
11023 	     p_relationship_tbl    => l_grp_rel_tbl,
11024 	     p_txn_rec             => p_txn_rec,
11025 	     x_return_status       => x_return_status,
11026 	     x_msg_count           => x_msg_count,
11027 	     x_msg_data            => x_msg_data
11028 	   );
11029          csi_gen_utility_pvt.put_line('End of Create Relationship...');
11030 	 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
11031 	    csi_gen_utility_pvt.put_line('Error while trying to Create II Relationships..');
11032 	     FOR i in 1..x_msg_Count LOOP
11033 	       FND_MSG_PUB.Get(p_msg_index     => i,
11034 			       p_encoded       => 'F',
11035 			       p_data          => x_msg_data,
11036 			       p_msg_index_out => x_msg_index_out );
11037 	       csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
11038 	    End LOOP;
11039 	    RAISE FND_API.G_EXC_ERROR;
11040 	END IF;
11041     END IF;
11042     -- End of API body
11043     -- Standard check of p_commit
11044     IF FND_API.To_Boolean( p_commit ) THEN
11045        COMMIT WORK;
11046     END IF;
11047     -- Standard call to get message count and if count is  get message info.
11048     FND_MSG_PUB.Count_And_Get
11049         ( p_count       =>       x_msg_count ,
11050           p_data       =>       x_msg_data
11051         );
11052 EXCEPTION
11053     WHEN FND_API.G_EXC_ERROR THEN
11054             ROLLBACK TO explode_bom;
11055             x_return_status := FND_API.G_RET_STS_ERROR ;
11056             FND_MSG_PUB.Count_And_Get
11057                 (  p_count               =>      x_msg_count,
11058                     p_data                =>      x_msg_data
11059                  );
11060       WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
11061             ROLLBACK TO explode_bom;
11062             x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
11063             FND_MSG_PUB.Count_And_Get
11064                 (  p_count               =>      x_msg_count,
11065                     p_data                =>      x_msg_data
11066                  );
11067       WHEN OTHERS THEN
11068             ROLLBACK TO  explode_bom;
11069             x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
11070               IF       FND_MSG_PUB.Check_Msg_Level
11071                   (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
11072             THEN
11073                     FND_MSG_PUB.Add_Exc_Msg
11074                     (      G_PKG_NAME            ,
11075                           l_api_name
11076                      );
11077             END IF;
11078             FND_MSG_PUB.Count_And_Get
11079                 (  p_count               =>      x_msg_count,
11080                     p_data                =>      x_msg_data
11081                 );
11082 END Explode_Bom;
11083 --
11084 PROCEDURE lock_item_instances
11085  (
11086      p_api_version           IN   NUMBER
11087     ,p_commit                IN   VARCHAR2 := fnd_api.g_false
11088     ,p_init_msg_list         IN   VARCHAR2 := fnd_api.g_false
11089     ,p_validation_level      IN   NUMBER := fnd_api.g_valid_level_full
11090     ,px_config_tbl           IN   OUT NOCOPY csi_cz_int.config_tbl
11091    -- ,p_txn_rec               IN   OUT NOCOPY csi_datastructures_pub.transaction_rec
11092     ,x_return_status         OUT  NOCOPY VARCHAR2
11093     ,x_msg_count             OUT  NOCOPY NUMBER
11094     ,x_msg_data              OUT  NOCOPY VARCHAR2
11095  )
11096 AS
11097 l_api_name         CONSTANT VARCHAR2(30)   := 'LOCK_ITEM_INSTANCES';
11098 l_api_version      CONSTANT NUMBER         := 1.0;
11099 l_csi_debug_level  NUMBER;
11100 l_msg_data         VARCHAR2(2000);
11101 l_msg_index        NUMBER;
11102 l_msg_count        NUMBER;
11103 BEGIN
11104 
11105   SAVEPOINT    csi_lock_item_grp;
11106 
11107 
11108         -- Check for freeze_flag in csi_install_parameters is set to 'Y'
11109 
11110      csi_utility_grp.check_ib_active;
11111 
11112         -- Standard call to check for call compatibility.
11116                                                 g_pkg_name              )
11113         IF NOT FND_API.Compatible_API_Call (    l_api_version           ,
11114                                                 p_api_version           ,
11115                                                 l_api_name              ,
11117         THEN
11118                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11119         END IF;
11120 
11121         -- Initialize message list if p_init_msg_list is set to TRUE.
11122         IF FND_API.to_Boolean( p_init_msg_list ) THEN
11123                 FND_MSG_PUB.initialize;
11124         END IF;
11125 
11126         --  Initialize API return status to success
11127         x_return_status := FND_API.G_RET_STS_SUCCESS;
11128 
11129         -- Check the profile option CSI_DEBUG_LEVEL for debug message reporting
11130         l_csi_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
11131 
11132         -- If CSI_DEBUG_LEVEL = 1 then dump the procedure name
11133         IF (l_csi_debug_level > 0) THEN
11134             csi_gen_utility_pvt.put_line( 'lock_item_instances');
11135         END IF;
11136 
11137 
11138         -- If the debug level = 2 then dump all the parameters values.
11139         IF (l_csi_debug_level > 1) THEN
11140                csi_gen_utility_pvt.put_line( 'lock_item_instances'||
11141                                                    p_api_version           ||'-'||
11142                                                    p_commit                ||'-'||
11143                                                    p_init_msg_list         ||'-'||
11144                                                    p_validation_level            );
11145                -- Dump the records in the log file
11146               -- csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
11147         END IF;
11148 
11149        csi_item_instance_pvt.lock_item_instances
11150          (p_api_version      => p_api_version
11151          ,p_commit           => fnd_api.g_false
11152          ,p_init_msg_list    => p_init_msg_list
11153          ,p_validation_level => p_validation_level
11154          ,px_config_tbl      => px_config_tbl
11155        --  ,p_txn_rec          => p_txn_rec
11156          ,x_return_status    => x_return_status
11157          ,x_msg_count        => x_msg_count
11158          ,x_msg_data         => x_msg_data
11159          );
11160       IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
11161           l_msg_index := 1;
11162           l_msg_count := x_msg_count;
11163           WHILE l_msg_count > 0 LOOP
11164                 x_msg_data := FND_MSG_PUB.GET
11165                       (  l_msg_index,
11166                          FND_API.G_FALSE );
11167               csi_gen_utility_pvt.put_line('Error while locking item instances..');
11168               csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
11169               l_msg_index := l_msg_index + 1;
11170               l_msg_count := l_msg_count - 1;
11171           END LOOP;
11172          RAISE FND_API.G_EXC_ERROR;
11173        END IF;
11174 
11175         IF FND_API.To_Boolean( p_commit ) THEN
11176             COMMIT WORK;
11177         END IF;
11178 
11179         -- Standard call to get message count and if count is  get message info.
11180         FND_MSG_PUB.Count_And_Get
11181                 (p_count        =>      x_msg_count ,
11182                  p_data         =>      x_msg_data   );
11183 
11184 EXCEPTION
11185         WHEN FND_API.G_EXC_ERROR THEN
11186                 ROLLBACK TO csi_lock_item_grp;
11187                 x_return_status := FND_API.G_RET_STS_ERROR ;
11188                 FND_MSG_PUB.Count_And_Get
11189                 (       p_count   =>      x_msg_count,
11190                         p_data    =>      x_msg_data    );
11191         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
11192                 ROLLBACK TO csi_lock_item_grp;
11193                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
11194                 FND_MSG_PUB.Count_And_Get
11195                 ( p_count     =>      x_msg_count,
11196                   p_data      =>      x_msg_data  );
11197         WHEN OTHERS THEN
11198                 ROLLBACK TO csi_lock_item_grp;
11199                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
11200                 IF FND_MSG_PUB.Check_Msg_Level
11201                      (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
11202                 THEN
11203                    FND_MSG_PUB.Add_Exc_Msg
11204                     ( g_pkg_name, l_api_name );
11205                 END IF;
11206                 FND_MSG_PUB.Count_And_Get
11207                 (  p_count   =>      x_msg_count,
11208                    p_data    =>      x_msg_data   );
11209 END lock_item_instances;
11210 
11211 PROCEDURE unlock_item_instances
11212  (
11213      p_api_version           IN   NUMBER
11214     ,p_commit                IN   VARCHAR2
11215     ,p_init_msg_list         IN   VARCHAR2
11216     ,p_validation_level      IN   NUMBER
11217     ,p_config_tbl            IN   csi_cz_int.config_tbl
11218    -- ,p_txn_rec               IN   OUT NOCOPY csi_datastructures_pub.transaction_rec
11219     ,x_return_status         OUT  NOCOPY VARCHAR2
11220     ,x_msg_count             OUT  NOCOPY NUMBER
11221     ,x_msg_data              OUT  NOCOPY VARCHAR2
11222  )
11223 AS
11224 l_api_name         CONSTANT VARCHAR2(30)   := 'UNLOCK_ITEM_INSTANCES';
11225 l_api_version      CONSTANT NUMBER         := 1.0;
11226 l_csi_debug_level  NUMBER;
11227 l_msg_data         VARCHAR2(2000);
11228 l_msg_index        NUMBER;
11229 l_msg_count        NUMBER;
11230 BEGIN
11231 
11232   SAVEPOINT csi_unlock_item_grp;
11233 
11234         -- Check for freeze_flag in csi_install_parameters is set to 'Y'
11235 
11236      csi_utility_grp.check_ib_active;
11237 
11238         -- Standard call to check for call compatibility.
11239         IF NOT FND_API.Compatible_API_Call (    l_api_version           ,
11240                                                 p_api_version           ,
11241                                                 l_api_name              ,
11242                                                 g_pkg_name              )
11243         THEN
11244                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
11245         END IF;
11246 
11247         -- Initialize message list if p_init_msg_list is set to TRUE.
11248         IF FND_API.to_Boolean( p_init_msg_list ) THEN
11249                 FND_MSG_PUB.initialize;
11250         END IF;
11251 
11252         --  Initialize API return status to success
11253         x_return_status := FND_API.G_RET_STS_SUCCESS;
11254 
11255         -- Check the profile option CSI_DEBUG_LEVEL for debug message reporting
11256         l_csi_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
11257 
11258         -- If CSI_DEBUG_LEVEL = 1 then dump the procedure name
11259         IF (l_csi_debug_level > 0) THEN
11260             csi_gen_utility_pvt.put_line( 'unlock_item_instances');
11261         END IF;
11262 
11263 
11264         -- If the debug level = 2 then dump all the parameters values.
11265         IF (l_csi_debug_level > 1) THEN
11266                csi_gen_utility_pvt.put_line( 'unlock_item_instances'||
11267                                                    p_api_version           ||'-'||
11268                                                    p_commit                ||'-'||
11269                                                    p_init_msg_list         ||'-'||
11270                                                    p_validation_level            );
11271                -- Dump the records in the log file
11272               -- csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
11273         END IF;
11274 
11275 
11276        csi_item_instance_pvt.unlock_item_instances
11277          (p_api_version      => p_api_version
11278          ,p_commit           => fnd_api.g_false
11279          ,p_init_msg_list    => p_init_msg_list
11280          ,p_validation_level => p_validation_level
11281          ,p_config_tbl       => p_config_tbl
11282          ,p_unlock_all       => fnd_api.g_false
11283         -- ,p_txn_rec          => p_txn_rec
11284          ,x_return_status    => x_return_status
11285          ,x_msg_count        => x_msg_count
11286          ,x_msg_data         => x_msg_data
11287          );
11288       IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
11289           l_msg_index := 1;
11290           l_msg_count := x_msg_count;
11291           WHILE l_msg_count > 0 LOOP
11292                 x_msg_data := FND_MSG_PUB.GET
11293                       (  l_msg_index,
11294                          FND_API.G_FALSE );
11295               csi_gen_utility_pvt.put_line('Error while unlocking item instances..');
11296               csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
11297               l_msg_index := l_msg_index + 1;
11298               l_msg_count := l_msg_count - 1;
11299           END LOOP;
11300          RAISE FND_API.G_EXC_ERROR;
11301        END IF;
11302 
11303 
11304         IF FND_API.To_Boolean( p_commit ) THEN
11305             COMMIT WORK;
11306         END IF;
11307 
11308         -- Standard call to get message count and if count is  get message info.
11309         FND_MSG_PUB.Count_And_Get
11310                 (p_count        =>      x_msg_count ,
11311                  p_data         =>      x_msg_data   );
11312 
11313 EXCEPTION
11314         WHEN FND_API.G_EXC_ERROR THEN
11315                 ROLLBACK TO csi_unlock_item_grp;
11316                 x_return_status := FND_API.G_RET_STS_ERROR ;
11317                 FND_MSG_PUB.Count_And_Get
11318                 (       p_count   =>      x_msg_count,
11319                         p_data    =>      x_msg_data    );
11320         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
11321                 ROLLBACK TO csi_unlock_item_grp;
11322                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
11323                 FND_MSG_PUB.Count_And_Get
11324                 ( p_count     =>      x_msg_count,
11325                   p_data      =>      x_msg_data  );
11326         WHEN OTHERS THEN
11327                 ROLLBACK TO csi_unlock_item_grp;
11328                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
11329                 IF FND_MSG_PUB.Check_Msg_Level
11330                      (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
11331                 THEN
11332                    FND_MSG_PUB.Add_Exc_Msg
11333                     ( g_pkg_name, l_api_name );
11334                 END IF;
11335                 FND_MSG_PUB.Count_And_Get
11336                 (  p_count   =>      x_msg_count,
11337                    p_data    =>      x_msg_data   );
11338 END unlock_item_instances;
11339 
11340 FUNCTION check_item_instance_lock
11341 (    p_instance_id         IN  NUMBER ,
11342      p_config_inst_hdr_id  IN  NUMBER ,
11343      p_config_inst_item_id IN  NUMBER ,
11344      p_config_inst_rev_num IN  NUMBER
11345 ) RETURN BOOLEAN IS
11346  l_return_value  BOOLEAN := TRUE;
11347  l_lock_id       NUMBER;
11348  l_lock_status   NUMBER :=0;
11349 BEGIN
11350  l_return_value:= csi_item_instance_pvt.check_item_instance_lock
11351                                       ( p_instance_id         => p_instance_id
11352                                        ,p_config_inst_hdr_id  => p_config_inst_hdr_id
11353                                        ,p_config_inst_item_id => p_config_inst_item_id
11354                                        ,p_config_inst_rev_num => p_config_inst_rev_num
11355                                        );
11356 
11357  RETURN l_return_value;
11358 END check_item_instance_lock;
11359 
11360 END CSI_ITEM_INSTANCE_GRP;