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.24 2008/04/30 10:21:50 jgootyag 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    ) RETURN BOOLEAN IS
108    --
109    l_serial_type        NUMBER;
110    l_temp               VARCHAR2(1);
111    l_base_item_id       NUMBER;
112    l_return_value       BOOLEAN;
113    l_count              NUMBER;
114    --
115 BEGIN
116    l_return_value := TRUE;
117    --
118    BEGIN
119       SELECT serial_number_type -- serial number uniqueness control
120       INTO   l_serial_type
121       FROM   mtl_parameters
122       WHERE  organization_id = p_instance_rec.vld_organization_id;
123    EXCEPTION
124       WHEN no_data_found THEN
125          l_return_value  := FALSE;
126          fnd_message.set_name('CSI','CSI_NO_ORG_SET');
127          fnd_message.set_token('ORGANIZATION_ID',p_instance_rec.vld_organization_id);
128          fnd_msg_pub.add;
129          RETURN l_return_value;
130    END;
131    --
132    l_temp := NULL;
133    --
134    IF l_serial_type = 1 THEN
135       l_base_item_id := NULL;
136       Begin
137          select base_item_id
138          into l_base_item_id
139          from MTL_SYSTEM_ITEMS_B
140          where inventory_item_id = p_instance_rec.inventory_item_id
141          and   organization_id = p_instance_rec.vld_organization_id;
142       Exception
143          when no_data_found then
144             l_return_value  := FALSE;
145             FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ITEM');
146             FND_MESSAGE.SET_TOKEN('INVENTORY_ITEM_ID',p_instance_rec.inventory_item_id);
147             FND_MESSAGE.SET_TOKEN('INVENTORY_ORGANIZATION_ID',p_instance_rec.vld_organization_id);
148             FND_MSG_PUB.Add;
149             RETURN l_return_value;
150       End;
151       --
152       FOR j IN p_instance_tbl.FIRST .. p_instance_tbl.LAST LOOP
153          IF p_instance_tbl.EXISTS(j) THEN
154             IF p_instance_tbl(j).interface_id <> p_instance_rec.interface_id THEN -- ignoring the current
155                IF p_instance_tbl(j).serial_number = p_instance_rec.serial_number AND
156                   nvl(p_instance_tbl(j).processed_flag,'N') <> 'E' THEN
157                   IF p_instance_tbl(j).inventory_item_id = p_instance_rec.inventory_item_id THEN
158                      l_temp := '1'; -- Fundamental uniqueness violated
159                      exit;
160                   ELSE -- Uniqueness within Model
161                      l_count := 0;
162                      IF l_base_item_id IS NOT NULL THEN
163                         Begin
164                            select 1
165                            into l_count
166                            from dual
167                            where exists (select 'x' from mtl_system_items_b msi
168                                          where msi.base_item_id = l_base_item_id
169                                          and   msi.inventory_item_id = p_instance_tbl(j).inventory_item_id);
170                         Exception
171                            when no_data_found then
172                               l_count := 0;
173                            when too_many_rows then
174                               l_count := 1;
175                         End;
176                         IF nvl(l_count,0) > 0 THEN
177                            l_temp := '4';
178                            exit;
179                         END IF;
180                      END IF; -- Base Model exists
181                   END IF;
182                END IF; -- Same srl# check
183             END IF; -- current check
184          END IF; -- exists
185       END LOOP;
186       --
187       IF nvl(l_temp,'0') = '1' THEN
188          l_return_value  := FALSE;
189          fnd_message.set_name('CSI','CSI_SER_CASE1');
190          fnd_message.set_token('SERIAL_NUMBER',p_instance_rec.serial_number);
191          fnd_msg_pub.add;
192          RETURN l_return_value;
193       ELSIF nvl(l_temp,'0') = '4' THEN
194          l_return_value  := FALSE;
195          fnd_message.set_name('CSI','CSI_SER_CASE4');
196          fnd_message.set_token('SERIAL_NUMBER',p_instance_rec.serial_number);
197          fnd_msg_pub.add;
198          RETURN l_return_value;
199       END IF;
200    END IF; -- Serial Type 1
201    --
202    IF l_serial_type = 4 THEN
203       FOR j IN p_instance_tbl.FIRST .. p_instance_tbl.LAST LOOP
204          IF p_instance_tbl.EXISTS(j) THEN
205             IF p_instance_rec.inventory_item_id = p_instance_tbl(j).inventory_item_id AND
206                p_instance_rec.serial_number = p_instance_tbl(j).serial_number AND
207                nvl(p_instance_tbl(j).processed_flag,'N') <> 'E' AND
208                p_instance_rec.interface_id <> p_instance_tbl(j).interface_id THEN
209                l_temp := 'x';
210                exit;
211             END IF;
212          END IF;
213       END LOOP;
214       IF l_temp IS NOT NULL THEN
215          l_return_value  := FALSE;
216          fnd_message.set_name('CSI','CSI_SER_CASE1');
217          fnd_message.set_token('SERIAL_NUMBER',p_instance_rec.serial_number);
218          fnd_msg_pub.add;
219          RETURN l_return_value;
220       END IF;
221    END IF; -- serial_type 4
222    --
223    IF l_serial_type = 2 THEN
224       FOR j IN p_instance_tbl.FIRST .. p_instance_tbl.LAST LOOP
225          IF p_instance_tbl.EXISTS(j) THEN
226             IF p_instance_rec.serial_number = p_instance_tbl(j).serial_number AND
227                p_instance_rec.vld_organization_id = p_instance_tbl(j).vld_organization_id AND
228                nvl(p_instance_tbl(j).processed_flag,'N') <> 'E' AND
229                p_instance_rec.interface_id <> p_instance_tbl(j).interface_id THEN
230                l_temp := 'x';
231                exit;
232             END IF;
233          END IF;
234       END LOOP;
235       IF l_temp IS NOT NULL THEN
236          l_return_value  := FALSE;
237          fnd_message.set_name('CSI','CSI_SER_CASE2');
238          fnd_message.set_token('SERIAL_NUMBER',p_instance_rec.serial_number);
239          fnd_msg_pub.add;
240          RETURN l_return_value;
241       END IF;
242       --
243       -- Also check if it has been already defined as
244       -- unique serial number accross organizations i.e entire system
245       BEGIN
246          SELECT 'x'
247          INTO   l_temp
248          FROM   mtl_serial_numbers s,
249                 mtl_parameters p
250          WHERE  s.current_organization_id = p.organization_id
251          AND    s.serial_number = p_instance_rec.serial_number
252          AND    p.serial_number_type = 3
253          AND    ROWNUM = 1;
254          IF l_temp IS NOT NULL THEN
255             l_return_value  := FALSE;
256             fnd_message.set_name('CSI','CSI_SER_CASE21');
257             fnd_message.set_token('SERIAL_NUMBER',p_instance_rec.serial_number);
258             fnd_msg_pub.add;
259             RETURN l_return_value;
260          END IF;
261       EXCEPTION
262          WHEN OTHERS THEN
263             l_return_value  := TRUE;
264       END;
265    END IF; -- serial_type 2
266    --
267    IF l_serial_type = 3 THEN
268       FOR j IN p_instance_tbl.FIRST .. p_instance_tbl.LAST LOOP
269          IF p_instance_tbl.EXISTS(j) THEN
270             IF p_instance_rec.serial_number = p_instance_tbl(j).serial_number AND
271                nvl(p_instance_tbl(j).processed_flag,'N') <> 'E' AND
272                p_instance_rec.interface_id <> p_instance_tbl(j).interface_id THEN
273                l_temp := 'x';
274                exit;
275             END IF;
276          END IF;
277       END LOOP;
278       IF l_temp IS NOT NULL THEN
279          l_return_value  := FALSE;
280          fnd_message.set_name('CSI','CSI_SER_CASE3');
281          fnd_message.set_token('SERIAL_NUMBER',p_instance_rec.serial_number);
282          fnd_msg_pub.add;
283          RETURN l_return_value;
284       END IF;
285    END IF; -- serial_type 3
286    --
287    RETURN l_return_value;
288 END Valid_Serial_Number;
289 --
290 FUNCTION Check_Inst_Party_Rules
291    (
292      p_party_tbl         IN csi_datastructures_pub.party_tbl
293     ,p_party_rec         IN csi_datastructures_pub.party_rec
294     ,p_start_date        IN DATE  -- Instance start date
295     ,p_end_date          IN DATE  -- Instance end date
296    ) RETURN BOOLEAN IS
297    --
298    l_party_rec         csi_datastructures_pub.party_rec := p_party_rec;
299    l_party_tbl         csi_datastructures_pub.party_tbl := p_party_tbl;
300    l_count             NUMBER := 0;
301    l_primary_pty_count NUMBER := 0;
302    l_primary_con_count NUMBER := 0;
303    l_return_status BOOLEAN;
304 BEGIN
305    l_return_status := TRUE;
306    --
307    IF l_party_rec.active_end_date IS NOT NULL AND
308       l_party_rec.active_end_date <> FND_API.G_MISS_DATE THEN
309       IF l_party_rec.active_start_date > l_party_rec.active_end_date THEN
310          l_return_status  := FALSE;
311          FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_PTY_START_DATE');
312          FND_MESSAGE.SET_TOKEN('ACTIVE_START_DATE',l_party_rec.active_start_date);
313          FND_MSG_PUB.ADD;
314          RETURN l_return_status;
315       END IF;
316       --
317       IF ( (l_party_rec.active_end_date < SYSDATE) OR
318            (p_end_date IS NOT NULL AND l_party_rec.active_end_date > p_end_date) ) THEN
319          l_return_status  := FALSE;
320          FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_PTY_END_DATE');
321          FND_MESSAGE.SET_TOKEN('ACTIVE_END_DATE',l_party_rec.active_end_date);
322          FND_MSG_PUB.ADD;
323          RETURN l_return_status;
324       END IF;
325    END IF;
326    --
327    IF ( (l_party_rec.active_start_date < p_start_date) OR
328         (p_end_date IS NOT NULL AND p_end_date <> FND_API.G_MISS_DATE AND l_party_rec.active_start_date > p_end_date) ) THEN
329          l_return_status  := FALSE;
330          FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_PTY_START_DATE');
331          FND_MESSAGE.SET_TOKEN('ACTIVE_START_DATE',l_party_rec.active_start_date);
332          FND_MSG_PUB.ADD;
333          RETURN l_return_status;
334    END IF;
335    IF l_party_tbl.count < 2 THEN
336       l_return_status := TRUE;
337       RETURN l_return_status;
338    END IF;
339    --
340    IF l_party_rec.contact_flag IS NULL OR
341       l_party_rec.contact_flag = FND_API.G_MISS_CHAR THEN
342       l_party_rec.contact_flag := 'N';
343    END IF;
344    --
345    IF l_party_rec.contact_ip_id IS NULL OR
346       l_party_rec.contact_ip_id = FND_API.G_MISS_NUM THEN
347       l_party_rec.contact_ip_id := -9999;
348    END IF;
349    --
350    IF l_party_rec.PREFERRED_FLAG = 'Y' THEN
351       IF l_party_rec.CONTACT_FLAG <> 'Y' THEN
352          IF l_party_rec.PARTY_SOURCE_TABLE NOT IN ('GROUP','TEAM') THEN
353             l_return_status := FALSE;
354             FND_MESSAGE.SET_NAME('CSI','CSI_PREFERRED_PTY_TYPE');
355             FND_MESSAGE.SET_TOKEN('PARTY_TYPE',l_party_rec.PARTY_SOURCE_TABLE);
356             FND_MESSAGE.SET_TOKEN('INSTANCE_ID',l_party_rec.INSTANCE_ID);
357             FND_MSG_PUB.ADD;
358             RETURN l_return_status;
359          END IF;
360       END IF;
361    END IF;
362    --
363    FOR pty_row in l_party_tbl.FIRST .. l_party_tbl.LAST LOOP
364       IF l_party_tbl(pty_row).contact_flag IS NULL OR
365          l_party_tbl(pty_row).contact_flag = FND_API.G_MISS_CHAR THEN
366          l_party_tbl(pty_row).contact_flag := 'N';
367       END IF;
368       --
369       IF l_party_tbl(pty_row).contact_ip_id IS NULL OR
370          l_party_tbl(pty_row).contact_ip_id = FND_API.G_MISS_NUM THEN
371          l_party_tbl(pty_row).contact_ip_id := -9999;
372       END IF;
373       --
374       IF l_party_tbl(pty_row).party_source_table = l_party_rec.party_source_table AND
375          l_party_tbl(pty_row).party_id = l_party_rec.party_id AND
376          l_party_tbl(pty_row).relationship_type_code = l_party_rec.relationship_type_code AND
377          l_party_tbl(pty_row).contact_flag = l_party_rec.contact_flag AND
378          l_party_tbl(pty_row).contact_parent_tbl_index = l_party_rec.contact_parent_tbl_index THEN
379          l_count := l_count + 1;
380       END IF;
381       --
382       IF l_party_rec.primary_flag = 'Y' THEN
383          IF l_party_rec.contact_flag <> 'Y' THEN
384             IF l_party_rec.party_source_table NOT IN ('GROUP','TEAM') THEN
385                l_return_status := FALSE;
386                FND_MESSAGE.SET_NAME('CSI','CSI_PRIMARY_PTY_TYPE');
387                FND_MESSAGE.SET_TOKEN('PARTY_TYPE',l_party_rec.PARTY_SOURCE_TABLE);
388                FND_MESSAGE.SET_TOKEN('INSTANCE_ID',l_party_rec.INSTANCE_ID);
389                FND_MSG_PUB.ADD;
390                exit;
391             ELSE
392               -- Check for Primary Party
393               IF l_party_tbl(pty_row).primary_flag = 'Y' AND
394                  l_party_tbl(pty_row).contact_flag <>'Y' AND
395                  l_party_tbl(pty_row).relationship_type_code = l_party_rec.relationship_type_code THEN
396                  l_primary_pty_count := l_primary_pty_count + 1;
397               END IF;
398             END IF;
399          ELSE
400             -- check for Primary contact party
401             IF l_party_tbl(pty_row).primary_flag = 'Y' AND
402                l_party_tbl(pty_row).contact_flag = 'Y' AND
403                l_party_tbl(pty_row).contact_parent_tbl_index = l_party_rec.contact_parent_tbl_index AND
404                l_party_tbl(pty_row).relationship_type_code = l_party_rec.relationship_type_code THEN
405                l_primary_con_count := l_primary_con_count + 1;
406             END IF;
407          END IF;
408       END IF;
409    END LOOP;
410    --
411    IF l_count > 1 THEN
412       l_return_status := FALSE;
413       FND_MESSAGE.SET_NAME('CSI','CSI_API_MANY_PTY_REL_COM_EXIST');
414       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);
415       FND_MSG_PUB.ADD;
416       RETURN l_return_status;
417    END IF;
418    --
419    IF l_primary_pty_count > 1 OR
420       l_primary_con_count > 1 THEN
421       l_return_status := FALSE;
422       FND_MESSAGE.SET_NAME('CSI','CSI_API_PRIMARY_PTY_EXISTS');
423       FND_MESSAGE.SET_TOKEN('INSTANCE_ID',l_party_rec.INSTANCE_ID);
424       FND_MESSAGE.SET_TOKEN('RELATIONSHIP_TYPE',l_party_rec.relationship_type_code);
425       FND_MSG_PUB.ADD;
426       RETURN l_return_status;
427    END IF;
428    --
429    RETURN l_return_status;
430 END Check_Inst_Party_Rules;
431 --
432 FUNCTION Check_Party_Acct_Rules
433    (
434      p_account_tbl           IN csi_datastructures_pub.party_account_tbl
435     ,p_account_rec           IN csi_datastructures_pub.party_account_rec
436     ,p_pty_src_table         IN VARCHAR2
437     ,p_party_id              IN NUMBER
438     ,p_acct_id_tbl           IN OUT NOCOPY  csi_party_relationships_pvt.acct_id_tbl
439     ,p_start_date            IN DATE -- Instance Party Start Date
440     ,p_end_date              IN DATE -- Instance Party End Date
441    ) RETURN BOOLEAN IS
442    --
443    l_return_status       BOOLEAN;
444    l_count               NUMBER := 0;
445    l_rel_count           NUMBER := 0;
446    l_exists              VARCHAR2(1);
447    l_exists_flag         VARCHAR2(1);
448    l_valid_flag          VARCHAR2(1);
449    l_ctr                 NUMBER;
450 BEGIN
451    l_return_status := TRUE;
452    --
453    IF p_account_rec.active_end_date IS NOT NULL AND
454       p_account_rec.active_end_date <> FND_API.G_MISS_DATE THEN
455       IF p_account_rec.active_start_date > p_account_rec.active_end_date THEN
456          l_return_status := FALSE;
457          FND_MESSAGE.SET_NAME('CSI','CSI_API_INV_ACCT_START_DATE');
458          FND_MESSAGE.SET_TOKEN('ACTIVE_START_DATE',p_account_rec.active_start_date);
459          FND_MSG_PUB.ADD;
460          RETURN l_return_status;
461       END IF;
462       --
463       IF ( (p_account_rec.active_end_date < SYSDATE) OR
464            (p_end_date IS NOT NULL AND p_account_rec.active_end_date > p_end_date) ) THEN
465          l_return_status  := FALSE;
466          FND_MESSAGE.SET_NAME('CSI','CSI_API_INV_ACCT_END_DATE');
467          FND_MESSAGE.SET_TOKEN('ACTIVE_END_DATE',p_account_rec.active_end_date);
468          FND_MSG_PUB.ADD;
469          RETURN l_return_status;
470       END IF;
471    END IF;
472    --
473    IF ( (p_account_rec.active_start_date < p_start_date) OR
474         (p_end_date IS NOT NULL AND p_end_date <> FND_API.G_MISS_DATE AND p_account_rec.active_start_date > p_end_date) ) THEN
475       l_return_status := FALSE;
476       FND_MESSAGE.SET_NAME('CSI','CSI_API_INV_ACCT_START_DATE');
477       FND_MESSAGE.SET_TOKEN('ACTIVE_START_DATE',p_account_rec.active_start_date);
478       FND_MSG_PUB.ADD;
479       RETURN l_return_status;
480    END IF;
481    --
482  /****  IF p_pty_src_table = 'HZ_PARTIES' AND
483       p_account_rec.relationship_type_code = 'OWNER' THEN
484       Begin
485          select 'x'
486          into l_exists
487          from HZ_PARTIES hzp
488              ,HZ_CUST_ACCOUNTS hzc
489          where hzc.cust_account_id = p_account_rec.party_account_id
490          and   hzc.party_id = p_party_id
491          and   hzc.party_id = hzp.party_id;
492       Exception
493          when others then
494             l_return_status := FALSE;
495             FND_MESSAGE.SET_NAME('CSI','CSI_API_PTY_ACCT_HZ_PTY');
496             FND_MESSAGE.SET_TOKEN('PARTY_ACCOUNT_ID',p_account_rec.party_account_id);
497             FND_MESSAGE.SET_TOKEN('PARTY_ID',p_party_id);
498             RETURN l_return_status;
499       End;
500    ELSE
501       Begin
502          select 'x'
503          into l_exists
504          from HZ_CUST_ACCOUNTS hzc
505          where hzc.cust_account_id = p_account_rec.party_account_id;
506       Exception
507          when others then
508             l_return_status := FALSE;
509             FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_PTY_ACCT_ID');
510             FND_MESSAGE.SET_TOKEN('PARTY_ACCOUNT_ID',p_account_rec.party_account_id);
511             RETURN l_return_status;
512       End;
513    END IF;   ***/
514    --
515    l_exists_flag := 'N';
516    l_valid_flag := 'Y';
517    IF p_account_rec.party_account_id IS NOT NULL AND
518       p_account_rec.party_account_id <> FND_API.G_MISS_NUM THEN
519       IF p_acct_id_tbl.count > 0 THEN
520          FOR acct_row in p_acct_id_tbl.FIRST .. p_acct_id_tbl.LAST LOOP
521             IF p_acct_id_tbl(acct_row).account_id = p_account_rec.party_account_id THEN
522                l_valid_flag := p_acct_id_tbl(acct_row).valid_flag;
523                l_exists_flag := 'Y';
524                exit;
525             END IF;
526          END LOOP;
527          --
528          IF l_valid_flag <> 'Y' THEN
529             l_return_status := FALSE;
530             FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_PTY_ACCT_ID');
531             FND_MESSAGE.SET_TOKEN('PARTY_ACCOUNT_ID',p_account_rec.party_account_id);
532             FND_MSG_PUB.ADD;
533             RETURN l_return_status;
534          END IF;
535       END IF;
536       --
537       IF l_exists_flag <> 'Y' THEN
538          l_ctr := p_acct_id_tbl.count + 1;
539          p_acct_id_tbl(l_ctr).account_id := p_account_rec.party_account_id;
540 	 Begin
541 	    select 'x'
542 	    into l_exists
543 	    from HZ_CUST_ACCOUNTS hzc
544 	    where hzc.cust_account_id = p_account_rec.party_account_id;
545             p_acct_id_tbl(l_ctr).valid_flag := 'Y';
546 	 Exception
547 	    when others then
548                p_acct_id_tbl(l_ctr).valid_flag := 'N';
549 	       l_return_status := FALSE;
550 	       FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_PTY_ACCT_ID');
551 	       FND_MESSAGE.SET_TOKEN('PARTY_ACCOUNT_ID',p_account_rec.party_account_id);
552                FND_MSG_PUB.ADD;
553 	       RETURN l_return_status;
554 	 End;
555       END IF;
556    END IF;
557    --
558    IF p_account_tbl.count < 2 THEN
559       l_return_status := TRUE;
560       RETURN l_return_status;
561    END IF;
562    --
563    FOR acct_row in p_account_tbl.FIRST .. p_account_tbl.LAST LOOP
564       IF p_account_tbl(acct_row).party_account_id = p_account_rec.party_account_id AND
565          p_account_tbl(acct_row).relationship_type_code = p_account_rec.relationship_type_code THEN
566          l_count := l_count + 1;
567       END IF;
568       --
569       IF p_account_tbl(acct_row).relationship_type_code = p_account_rec.relationship_type_code THEN
570          l_rel_count := l_rel_count + 1;
571       END IF;
572    END LOOP;
573    --
574    IF l_count > 1 THEN
575       l_return_status := FALSE;
576       FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_PARTY_ACCT_COM');
577       FND_MESSAGE.SET_TOKEN('ACCT_COMBINATION',to_char(p_account_rec.instance_party_id) ||', '
578                       ||to_char(p_account_rec.party_account_id) ||','||p_account_rec.relationship_type_code);
579       FND_MSG_PUB.ADD;
580       RETURN l_return_status;
581    END IF;
582    --
583    IF l_rel_count > 1 THEN
584       l_return_status := FALSE;
585       FND_MESSAGE.SET_NAME('CSI','CSI_API_DUP_ACCT_TYPE');
586       FND_MESSAGE.SET_TOKEN('RELATIONSHIP_TYPE_CODE',p_account_rec.relationship_type_code);
587       FND_MSG_PUB.ADD;
588       RETURN l_return_status;
589    END IF;
590    --
591    RETURN l_return_status;
592 END Check_Party_Acct_Rules;
593 --
594 FUNCTION Check_Org_Rules
595    ( p_org_units_tbl  IN csi_datastructures_pub.organization_units_tbl
596     ,p_org_units_rec  IN csi_datastructures_pub.organization_units_rec
597     ,p_start_date     IN DATE
598     ,p_end_date       IN DATE
599    ) RETURN BOOLEAN IS
600    --
601    l_count               NUMBER := 0;
602    l_return_status       BOOLEAN;
603 BEGIN
604    l_return_status := TRUE;
605    --
606    IF p_org_units_rec.active_end_date IS NOT NULL AND
607       p_org_units_rec.active_end_date <> FND_API.G_MISS_DATE THEN
608       IF p_org_units_rec.active_start_date > p_org_units_rec.active_end_date THEN
609          l_return_status := FALSE;
610          FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_ORG_START_DATE');
611          FND_MESSAGE.SET_TOKEN('START_DATE',p_org_units_rec.active_start_date);
612          FND_MSG_PUB.ADD;
613          RETURN l_return_status;
614       END IF;
615       --
616       IF ( (p_org_units_rec.active_end_date < SYSDATE) OR
617            (p_end_date IS NOT NULL AND p_org_units_rec.active_end_date > p_end_date) ) THEN
618          l_return_status  := FALSE;
619          FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_ORG_END_DATE');
620          FND_MESSAGE.SET_TOKEN('END_DATE',p_org_units_rec.active_end_date);
621          FND_MSG_PUB.ADD;
622          RETURN l_return_status;
623       END IF;
624    END IF;
625    --
626    IF ( (p_org_units_rec.active_start_date < p_start_date) OR
627         (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
628       l_return_status := FALSE;
629       FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_ORG_START_DATE');
630       FND_MESSAGE.SET_TOKEN('START_DATE',p_org_units_rec.active_start_date);
631       FND_MSG_PUB.ADD;
632       RETURN l_return_status;
633    END IF;
634    --
635    IF p_org_units_tbl.count < 2 THEN
636       l_return_status := TRUE;
637       RETURN l_return_status;
638    END IF;
639    --
640    FOR org_row in p_org_units_tbl.FIRST .. p_org_units_tbl.LAST LOOP
641       IF p_org_units_tbl(org_row).relationship_type_code = p_org_units_rec.relationship_type_code THEN
642          l_count := l_count + 1;
643       END IF;
644    END LOOP;
645    --
646    IF l_count > 1 THEN
647       l_return_status := FALSE;
648       FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_ALTERNATE_PK');
649       FND_MESSAGE.SET_TOKEN('ALTERNATE_PK',to_char(p_org_units_rec.instance_id)||'  '||p_org_units_rec.relationship_type_code);
650       FND_MSG_PUB.ADD;
651       RETURN l_return_status;
652    END IF;
653    --
654    RETURN l_return_status;
655 END Check_Org_Rules;
656 --
657 FUNCTION Check_Pricing_Rules
658    (
659      p_pricing_rec    IN csi_datastructures_pub.pricing_attribs_rec
660     ,p_start_date     IN DATE
661     ,p_end_date       IN DATE
662    ) RETURN BOOLEAN IS
663    --
664    l_return_status       BOOLEAN;
665 BEGIN
666    l_return_status := TRUE;
667    --
668    IF p_pricing_rec.active_end_date IS NOT NULL AND
669       p_pricing_rec.active_end_date <> FND_API.G_MISS_DATE THEN
670       IF p_pricing_rec.active_start_date > p_pricing_rec.active_end_date THEN
671          l_return_status := FALSE;
672          FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_PRI_START_DATE');
673          FND_MESSAGE.SET_TOKEN('START_DATE',p_pricing_rec.active_start_date);
674          FND_MSG_PUB.ADD;
675          RETURN l_return_status;
676       END IF;
677       --
678       IF ( (p_pricing_rec.active_end_date < SYSDATE) OR
679            (p_end_date IS NOT NULL AND p_pricing_rec.active_end_date > p_end_date) ) THEN
680          l_return_status  := FALSE;
681          FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_PRI_END_DATE');
682          FND_MESSAGE.SET_TOKEN('END_DATE',p_pricing_rec.active_end_date);
683          FND_MSG_PUB.ADD;
684          RETURN l_return_status;
685       END IF;
686    END IF;
687    --
688    IF ( (p_pricing_rec.active_start_date < p_start_date) OR
689         (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
690       l_return_status := FALSE;
691       FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_PRI_START_DATE');
692       FND_MESSAGE.SET_TOKEN('START_DATE',p_pricing_rec.active_start_date);
693       FND_MSG_PUB.ADD;
694       RETURN l_return_status;
695    END IF;
696    --
697    RETURN l_return_status;
698 END Check_Pricing_Rules;
699 --
700 FUNCTION Check_Ext_Rules
701    (
702      p_ext_tbl       IN csi_datastructures_pub.extend_attrib_values_tbl
703     ,p_ext_rec       IN csi_datastructures_pub.extend_attrib_values_rec
704     ,p_start_date     IN DATE
705     ,p_end_date       IN DATE
706    ) RETURN BOOLEAN IS
707    --
708    l_count               NUMBER := 0;
709    l_return_status       BOOLEAN;
710 BEGIN
711    l_return_status := TRUE;
712    --
713    IF p_ext_rec.active_end_date IS NOT NULL AND
714       p_ext_rec.active_end_date <> FND_API.G_MISS_DATE THEN
715       IF p_ext_rec.active_start_date > p_ext_rec.active_end_date THEN
716          l_return_status := FALSE;
717          FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_EXT_START_DATE');
718          FND_MESSAGE.SET_TOKEN('START_DATE',p_ext_rec.active_start_date);
719          FND_MSG_PUB.ADD;
720          RETURN l_return_status;
721       END IF;
722       --
723       IF ( (p_ext_rec.active_end_date < SYSDATE) OR
724            (p_end_date IS NOT NULL AND p_ext_rec.active_end_date > p_end_date) ) THEN
725          l_return_status  := FALSE;
726          FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_EXT_END_DATE');
727          FND_MESSAGE.SET_TOKEN('END_DATE',p_ext_rec.active_end_date);
728          FND_MSG_PUB.ADD;
729          RETURN l_return_status;
730       END IF;
731    END IF;
732    --
733    IF ( (p_ext_rec.active_start_date < p_start_date) OR
734         (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
735       l_return_status := FALSE;
736       FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_EXT_START_DATE');
737       FND_MESSAGE.SET_TOKEN('START_DATE',p_ext_rec.active_start_date);
738       FND_MSG_PUB.ADD;
739       RETURN l_return_status;
740    END IF;
741    --
742    IF p_ext_tbl.count < 2 THEN
743       l_return_status := TRUE;
744       RETURN l_return_status;
745    END IF;
746    --
747    FOR ext_row in p_ext_tbl.FIRST .. p_ext_tbl.LAST LOOP
748       IF p_ext_tbl(ext_row).attribute_id = p_ext_rec.attribute_id THEN
749          l_count := l_count + 1;
750       END IF;
751    END LOOP;
752    --
753    IF l_count > 1 THEN
754       l_return_status := FALSE;
755       FND_MESSAGE.SET_NAME('CSI','CSI_EXT_INVALID_ALTERNATE_PK');
756       FND_MESSAGE.SET_TOKEN('ALTERNATE_PK',to_char(p_ext_rec.instance_id)||','||to_char(p_ext_rec.attribute_id));
757       FND_MSG_PUB.ADD;
758       RETURN l_return_status;
759    END IF;
760    --
761    RETURN l_return_status;
762 END Check_Ext_Rules;
763 --
764 FUNCTION Check_Asset_Rules
765    (
766      p_asset_rec    IN csi_datastructures_pub.instance_asset_rec
767     ,p_start_date   IN DATE
768     ,p_end_date     IN DATE
769    ) RETURN BOOLEAN IS
770    --
771    l_return_status       BOOLEAN;
772 BEGIN
773    l_return_status := TRUE;
774    --
775    IF p_asset_rec.active_end_date IS NOT NULL AND
776       p_asset_rec.active_end_date <> FND_API.G_MISS_DATE THEN
777       IF p_asset_rec.active_start_date > p_asset_rec.active_end_date THEN
778          l_return_status := FALSE;
779          FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_AST_START_DATE');
780          FND_MESSAGE.SET_TOKEN('START_DATE',p_asset_rec.active_start_date);
781          FND_MSG_PUB.ADD;
782          RETURN l_return_status;
783       END IF;
784       --
785       IF ( (p_asset_rec.active_end_date < SYSDATE) OR
786            (p_end_date IS NOT NULL AND p_asset_rec.active_end_date > p_end_date) ) THEN
787          l_return_status  := FALSE;
788          FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_AST_END_DATE');
789          FND_MESSAGE.SET_TOKEN('END_DATE',p_asset_rec.active_end_date);
790          FND_MSG_PUB.ADD;
791          RETURN l_return_status;
792       END IF;
793    END IF;
794    --
795    IF ( (p_asset_rec.active_start_date < p_start_date) OR
796         (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
797       l_return_status := FALSE;
798       FND_MESSAGE.SET_NAME('CSI','CSI_API_INVAL_AST_START_DATE');
799       FND_MESSAGE.SET_TOKEN('START_DATE',p_asset_rec.active_start_date);
800       FND_MSG_PUB.ADD;
801       RETURN l_return_status;
802    END IF;
803    --
804    RETURN l_return_status;
805 END Check_Asset_Rules;
806 --
807 PROCEDURE Build_Instance_History
808   (
809     p_inst_hist_tbl  IN OUT NOCOPY  csi_datastructures_pub.instance_history_tbl
810    ,p_inst_rec       IN     csi_datastructures_pub.instance_rec
811    ,p_txn_id         IN     NUMBER
812   ) IS
813   --
814   l_count NUMBER;
815   l_hist_id NUMBER;
816 BEGIN
817    l_count := p_inst_hist_tbl.count + 1;
818    select CSI_ITEM_INSTANCES_H_S.nextval
819    into l_hist_id
820    from sys.dual;
821    p_inst_hist_tbl(l_count).instance_id := p_inst_rec.instance_id;
822    p_inst_hist_tbl(l_count).instance_history_id := l_hist_id;
823    p_inst_hist_tbl(l_count).transaction_id := p_txn_id;
824    p_inst_hist_tbl(l_count).old_instance_number := null;
825    p_inst_hist_tbl(l_count).new_instance_number := p_inst_rec.instance_number;
826    p_inst_hist_tbl(l_count).old_external_reference := null;
827    p_inst_hist_tbl(l_count).new_external_reference := p_inst_rec.external_reference;
828    p_inst_hist_tbl(l_count).old_inventory_item_id := null;
829    p_inst_hist_tbl(l_count).new_inventory_item_id := p_inst_rec.inventory_item_id;
830    p_inst_hist_tbl(l_count).old_inventory_revision := null;
831    p_inst_hist_tbl(l_count).new_inventory_revision := p_inst_rec.inventory_revision;
832    p_inst_hist_tbl(l_count).old_inv_master_org_id := null;
833    p_inst_hist_tbl(l_count).new_inv_master_org_id := p_inst_rec.inv_master_organization_id;
834    p_inst_hist_tbl(l_count).old_serial_number := null;
835    p_inst_hist_tbl(l_count).new_serial_number  := p_inst_rec.serial_number;
836    p_inst_hist_tbl(l_count).old_mfg_serial_number_flag := null;
837    p_inst_hist_tbl(l_count).new_mfg_serial_number_flag := p_inst_rec.mfg_serial_number_flag ;
838    p_inst_hist_tbl(l_count).old_lot_number := null;
839    p_inst_hist_tbl(l_count).new_lot_number := p_inst_rec.lot_number;
840    p_inst_hist_tbl(l_count).old_quantity := null;
841    p_inst_hist_tbl(l_count).new_quantity := p_inst_rec.quantity;
842    p_inst_hist_tbl(l_count).old_unit_of_measure := null;
843    p_inst_hist_tbl(l_count).new_unit_of_measure := p_inst_rec.unit_of_measure;
844    p_inst_hist_tbl(l_count).old_accounting_class_code := null;
845    p_inst_hist_tbl(l_count).new_accounting_class_code := p_inst_rec.accounting_class_code;
846    p_inst_hist_tbl(l_count).old_instance_condition_id := null;
847    p_inst_hist_tbl(l_count).new_instance_condition_id := p_inst_rec.instance_condition_id;
848    p_inst_hist_tbl(l_count).old_instance_status_id := null;
849    p_inst_hist_tbl(l_count).new_instance_status_id := p_inst_rec.instance_status_id;
850    p_inst_hist_tbl(l_count).old_customer_view_flag := null;
851    p_inst_hist_tbl(l_count).new_customer_view_flag := p_inst_rec.customer_view_flag;
852    p_inst_hist_tbl(l_count).old_merchant_view_flag := null;
853    p_inst_hist_tbl(l_count).new_merchant_view_flag := p_inst_rec.merchant_view_flag;
854    p_inst_hist_tbl(l_count).old_sellable_flag := null;
855    p_inst_hist_tbl(l_count).new_sellable_flag := p_inst_rec.sellable_flag ;
856    p_inst_hist_tbl(l_count).old_system_id := null;
857    p_inst_hist_tbl(l_count).new_system_id := p_inst_rec.system_id;
858    p_inst_hist_tbl(l_count).old_instance_type_code := null;
859    p_inst_hist_tbl(l_count).new_instance_type_code := p_inst_rec.instance_type_code;
860    p_inst_hist_tbl(l_count).old_active_start_date := null;
861    p_inst_hist_tbl(l_count).new_active_start_date := p_inst_rec.active_start_date;
862    p_inst_hist_tbl(l_count).old_active_end_date := null;
863    p_inst_hist_tbl(l_count).new_active_end_date := p_inst_rec.active_end_date;
864    p_inst_hist_tbl(l_count).old_location_type_code := null;
865    p_inst_hist_tbl(l_count).new_location_type_code := p_inst_rec.location_type_code;
866    p_inst_hist_tbl(l_count).old_location_id := null;
867    p_inst_hist_tbl(l_count).new_location_id := p_inst_rec.location_id;
868    p_inst_hist_tbl(l_count).old_inv_organization_id := null;
869    p_inst_hist_tbl(l_count).new_inv_organization_id := p_inst_rec.inv_organization_id;
870    p_inst_hist_tbl(l_count).old_inv_subinventory_name := null;
871    p_inst_hist_tbl(l_count).new_inv_subinventory_name := p_inst_rec.inv_subinventory_name;
872    p_inst_hist_tbl(l_count).old_inv_locator_id := null;
873    p_inst_hist_tbl(l_count).new_inv_locator_id := p_inst_rec.inv_locator_id;
874    p_inst_hist_tbl(l_count).old_pa_project_id := null;
875    p_inst_hist_tbl(l_count).new_pa_project_id := p_inst_rec.pa_project_id;
876    p_inst_hist_tbl(l_count).old_pa_project_task_id := null;
877    p_inst_hist_tbl(l_count).new_pa_project_task_id := p_inst_rec.pa_project_task_id;
878    p_inst_hist_tbl(l_count).old_in_transit_order_line_id := null;
879    p_inst_hist_tbl(l_count).new_in_transit_order_line_id := p_inst_rec.in_transit_order_line_id;
880    p_inst_hist_tbl(l_count).old_wip_job_id := null;
881    p_inst_hist_tbl(l_count).new_wip_job_id := p_inst_rec.wip_job_id;
882    p_inst_hist_tbl(l_count).old_po_order_line_id := null;
883    p_inst_hist_tbl(l_count).new_po_order_line_id := p_inst_rec.po_order_line_id;
884    p_inst_hist_tbl(l_count).old_completeness_flag := null;
885    p_inst_hist_tbl(l_count).new_completeness_flag := p_inst_rec.completeness_flag;
886    p_inst_hist_tbl(l_count).old_context := null;
887    p_inst_hist_tbl(l_count).new_context := p_inst_rec.context;
888    p_inst_hist_tbl(l_count).old_attribute1 := null;
889    p_inst_hist_tbl(l_count).new_attribute1 := p_inst_rec.attribute1;
890    p_inst_hist_tbl(l_count).old_attribute2 := null;
891    p_inst_hist_tbl(l_count).new_attribute2 := p_inst_rec.attribute2;
892    p_inst_hist_tbl(l_count).old_attribute3 := null;
893    p_inst_hist_tbl(l_count).new_attribute3 := p_inst_rec.attribute3;
894    p_inst_hist_tbl(l_count).old_attribute4 := null;
895    p_inst_hist_tbl(l_count).new_attribute4 := p_inst_rec.attribute4;
896    p_inst_hist_tbl(l_count).old_attribute5 := null;
897    p_inst_hist_tbl(l_count).new_attribute5 := p_inst_rec.attribute5;
898    p_inst_hist_tbl(l_count).old_attribute6 := null;
899    p_inst_hist_tbl(l_count).new_attribute6 := p_inst_rec.attribute6;
900    p_inst_hist_tbl(l_count).old_attribute7 := null;
901    p_inst_hist_tbl(l_count).new_attribute7 := p_inst_rec.attribute7;
902    p_inst_hist_tbl(l_count).old_attribute8 := null;
903    p_inst_hist_tbl(l_count).new_attribute8 := p_inst_rec.attribute8;
904    p_inst_hist_tbl(l_count).old_attribute9 := null;
905    p_inst_hist_tbl(l_count).new_attribute9 := p_inst_rec.attribute9;
906    p_inst_hist_tbl(l_count).old_attribute10 := null;
907    p_inst_hist_tbl(l_count).new_attribute10 := p_inst_rec.attribute10;
908    p_inst_hist_tbl(l_count).old_attribute11 := null;
909    p_inst_hist_tbl(l_count).new_attribute11 := p_inst_rec.attribute11;
910    p_inst_hist_tbl(l_count).old_attribute12 := null;
911    p_inst_hist_tbl(l_count).new_attribute12 := p_inst_rec.attribute12;
912    p_inst_hist_tbl(l_count).old_attribute13 := null;
913    p_inst_hist_tbl(l_count).new_attribute13 := p_inst_rec.attribute13;
914    p_inst_hist_tbl(l_count).old_attribute14 := null;
915    p_inst_hist_tbl(l_count).new_attribute14 := p_inst_rec.attribute14;
916    p_inst_hist_tbl(l_count).old_attribute15 := null;
917    p_inst_hist_tbl(l_count).new_attribute15 := p_inst_rec.attribute15;
918    p_inst_hist_tbl(l_count).old_install_location_type_code := null;
919    p_inst_hist_tbl(l_count).new_install_location_type_code := p_inst_rec.install_location_type_code;
920    p_inst_hist_tbl(l_count).old_install_location_id := null;
921    p_inst_hist_tbl(l_count).new_install_location_id := p_inst_rec.install_location_id;
922    p_inst_hist_tbl(l_count).old_instance_usage_code := null;
923    p_inst_hist_tbl(l_count).new_instance_usage_code := p_inst_rec.instance_usage_code;
924    p_inst_hist_tbl(l_count).old_last_vld_organization_id := null;
925    p_inst_hist_tbl(l_count).new_last_vld_organization_id := p_inst_rec.vld_organization_id;
926    p_inst_hist_tbl(l_count).old_config_inst_rev_num := null;
927    p_inst_hist_tbl(l_count).new_config_inst_rev_num := p_inst_rec.config_inst_rev_num;
928    p_inst_hist_tbl(l_count).old_config_valid_status := null;
929    p_inst_hist_tbl(l_count).new_config_valid_status := p_inst_rec.config_valid_status;
930    p_inst_hist_tbl(l_count).old_instance_description := null;
931    p_inst_hist_tbl(l_count).new_instance_description := p_inst_rec.instance_description;
932    p_inst_hist_tbl(l_count).old_last_oe_agreement_id := null;
933    p_inst_hist_tbl(l_count).new_last_oe_agreement_id := p_inst_rec.last_oe_agreement_id;
934    p_inst_hist_tbl(l_count).old_install_date := null;
935    p_inst_hist_tbl(l_count).new_install_date := p_inst_rec.install_date;
936    p_inst_hist_tbl(l_count).old_return_by_date := null;
937    p_inst_hist_tbl(l_count).new_return_by_date := p_inst_rec.return_by_date;
938    p_inst_hist_tbl(l_count).old_actual_return_date := null;
939    p_inst_hist_tbl(l_count).new_actual_return_date := p_inst_rec.actual_return_date;
940    p_inst_hist_tbl(l_count).old_last_oe_order_line_id := null;
941    p_inst_hist_tbl(l_count).new_last_oe_order_line_id := p_inst_rec.last_oe_order_line_id;
942    p_inst_hist_tbl(l_count).old_last_oe_rma_line_id := null;
943    p_inst_hist_tbl(l_count).new_last_oe_rma_line_id := p_inst_rec.last_oe_rma_line_id;
944    p_inst_hist_tbl(l_count).old_last_wip_job_id := null;
945    p_inst_hist_tbl(l_count).new_last_wip_job_id := p_inst_rec.last_wip_job_id;
946    p_inst_hist_tbl(l_count).old_last_po_po_line_id := null;
947    p_inst_hist_tbl(l_count).new_last_po_po_line_id := p_inst_rec.last_po_po_line_id;
948    p_inst_hist_tbl(l_count).old_last_pa_project_id := null;
949    p_inst_hist_tbl(l_count).new_last_pa_project_id := p_inst_rec.last_pa_project_id;
950    p_inst_hist_tbl(l_count).old_last_pa_task_id := null;
951    p_inst_hist_tbl(l_count).new_last_pa_task_id := p_inst_rec.last_pa_task_id;
952    p_inst_hist_tbl(l_count).old_last_txn_line_detail_id := null;
953    p_inst_hist_tbl(l_count).new_last_txn_line_detail_id := p_inst_rec.last_txn_line_detail_id;
954    p_inst_hist_tbl(l_count).old_last_oe_po_number := null;
955    p_inst_hist_tbl(l_count).new_last_oe_po_number := p_inst_rec.last_oe_po_number;
956 
957    p_inst_hist_tbl(l_count).old_network_asset_flag       := null;
958    p_inst_hist_tbl(l_count).new_network_asset_flag       := p_inst_rec.network_asset_flag;
959    p_inst_hist_tbl(l_count).old_maintainable_flag        := null;
960    p_inst_hist_tbl(l_count).new_maintainable_flag        := p_inst_rec.maintainable_flag;
961    p_inst_hist_tbl(l_count).old_asset_criticality_code   := null;
962    p_inst_hist_tbl(l_count).new_asset_criticality_code   := p_inst_rec.asset_criticality_code;
963    p_inst_hist_tbl(l_count).old_category_id              := null;
964    p_inst_hist_tbl(l_count).new_category_id              := p_inst_rec.category_id ;
965    p_inst_hist_tbl(l_count).old_equipment_gen_object_id  := null;
966    p_inst_hist_tbl(l_count).new_equipment_gen_object_id  := p_inst_rec.equipment_gen_object_id ;
967    p_inst_hist_tbl(l_count).old_instantiation_flag       := null;
968    p_inst_hist_tbl(l_count).new_instantiation_flag       := p_inst_rec.instantiation_flag;
969    p_inst_hist_tbl(l_count).old_operational_log_flag     := null;
970    p_inst_hist_tbl(l_count).new_operational_log_flag     := p_inst_rec.operational_log_flag ;
971    p_inst_hist_tbl(l_count).old_supplier_warranty_exp_date := null;
972    p_inst_hist_tbl(l_count).new_supplier_warranty_exp_date := p_inst_rec.supplier_warranty_exp_date ;
973    p_inst_hist_tbl(l_count).old_attribute16              := null;
974    p_inst_hist_tbl(l_count).new_attribute16              := p_inst_rec.attribute16;
975    p_inst_hist_tbl(l_count).old_attribute17              := null;
976    p_inst_hist_tbl(l_count).new_attribute17              := p_inst_rec.attribute17;
977    p_inst_hist_tbl(l_count).old_attribute18              := null;
978    p_inst_hist_tbl(l_count).new_attribute18              := p_inst_rec.attribute18;
979    p_inst_hist_tbl(l_count).old_attribute19              := null;
980    p_inst_hist_tbl(l_count).new_attribute19              := p_inst_rec.attribute19;
981    p_inst_hist_tbl(l_count).old_attribute20              := null;
982    p_inst_hist_tbl(l_count).new_attribute20              := p_inst_rec.attribute20;
983    p_inst_hist_tbl(l_count).old_attribute21              := null;
984    p_inst_hist_tbl(l_count).new_attribute21              := p_inst_rec.attribute21;
985    p_inst_hist_tbl(l_count).old_attribute22              := null;
986    p_inst_hist_tbl(l_count).new_attribute22              := p_inst_rec.attribute22;
987    p_inst_hist_tbl(l_count).old_attribute23              := null;
988    p_inst_hist_tbl(l_count).new_attribute23              := p_inst_rec.attribute23;
989    p_inst_hist_tbl(l_count).old_attribute24              := null;
990    p_inst_hist_tbl(l_count).new_attribute24              := p_inst_rec.attribute24;
991    p_inst_hist_tbl(l_count).old_attribute25              := null;
992    p_inst_hist_tbl(l_count).new_attribute25              := p_inst_rec.attribute25;
993    p_inst_hist_tbl(l_count).old_attribute26              := null;
994    p_inst_hist_tbl(l_count).new_attribute26              := p_inst_rec.attribute26;
995    p_inst_hist_tbl(l_count).old_attribute27              := null;
996    p_inst_hist_tbl(l_count).new_attribute27              := p_inst_rec.attribute27;
997    p_inst_hist_tbl(l_count).old_attribute28              := null;
998    p_inst_hist_tbl(l_count).new_attribute28              := p_inst_rec.attribute28;
999    p_inst_hist_tbl(l_count).old_attribute29              := null;
1000    p_inst_hist_tbl(l_count).new_attribute29              := p_inst_rec.attribute29;
1001    p_inst_hist_tbl(l_count).old_attribute30              := null;
1002    p_inst_hist_tbl(l_count).new_attribute30              := p_inst_rec.attribute30;
1003    --
1004    p_inst_hist_tbl(l_count).old_payables_currency_code   := null;
1005    p_inst_hist_tbl(l_count).new_payables_currency_code   := p_inst_rec.payables_currency_code;
1006    p_inst_hist_tbl(l_count).old_purchase_unit_price      := null;
1007    p_inst_hist_tbl(l_count).new_purchase_unit_price      := p_inst_rec.purchase_unit_price;
1008    p_inst_hist_tbl(l_count).old_purchase_currency_code   := null;
1009    p_inst_hist_tbl(l_count).new_purchase_currency_code   := p_inst_rec.purchase_currency_code;
1010    p_inst_hist_tbl(l_count).old_payables_unit_price      := null;
1011    p_inst_hist_tbl(l_count).new_payables_unit_price      := p_inst_rec.payables_unit_price;
1012    p_inst_hist_tbl(l_count).old_sales_unit_price         := null;
1013    p_inst_hist_tbl(l_count).new_sales_unit_price         := p_inst_rec.sales_unit_price;
1014    p_inst_hist_tbl(l_count).old_sales_currency_code      := null;
1015    p_inst_hist_tbl(l_count).new_sales_currency_code      := p_inst_rec.sales_currency_code;
1016    p_inst_hist_tbl(l_count).old_operational_status_code  := null;
1017    p_inst_hist_tbl(l_count).new_operational_status_code  := p_inst_rec.operational_status_code;
1018 
1019 END Build_Instance_History;
1020 --
1021 PROCEDURE Build_Ver_Label_History
1022    (
1023      p_ver_label_history_tbl    IN OUT NOCOPY  csi_datastructures_pub.version_label_history_tbl
1024     ,p_version_label_rec        IN     csi_datastructures_pub.version_label_rec
1025     ,p_txn_id                   IN     NUMBER
1026    ) IS
1027   --
1028   l_count NUMBER;
1029   l_hist_id NUMBER;
1030 BEGIN
1031    l_count := p_ver_label_history_tbl.count + 1;
1032    select CSI_I_VERSION_LABELS_H_S.nextval
1033    into l_hist_id
1034    from sys.dual;
1035    --
1036    p_ver_label_history_tbl(l_count).VERSION_LABEL_HISTORY_ID	 := l_hist_id;
1037    p_ver_label_history_tbl(l_count).VERSION_LABEL_ID	 := p_version_label_rec.VERSION_LABEL_ID;
1038    p_ver_label_history_tbl(l_count).TRANSACTION_ID	 := p_txn_id;
1039    p_ver_label_history_tbl(l_count).OLD_VERSION_LABEL	 := NULL;
1040    p_ver_label_history_tbl(l_count).NEW_VERSION_LABEL	 := p_version_label_rec.VERSION_LABEL;
1041    p_ver_label_history_tbl(l_count).OLD_DESCRIPTION	 := NULL;
1042    p_ver_label_history_tbl(l_count).NEW_DESCRIPTION	 := p_version_label_rec.DESCRIPTION;
1043    p_ver_label_history_tbl(l_count).OLD_DATE_TIME_STAMP	 := NULL;
1044    p_ver_label_history_tbl(l_count).NEW_DATE_TIME_STAMP	 := p_version_label_rec.DATE_TIME_STAMP;
1045    p_ver_label_history_tbl(l_count).OLD_ACTIVE_START_DATE	 := NULL;
1046    p_ver_label_history_tbl(l_count).NEW_ACTIVE_START_DATE	 := p_version_label_rec.ACTIVE_START_DATE;
1047    p_ver_label_history_tbl(l_count).OLD_ACTIVE_END_DATE	 := NULL;
1048    p_ver_label_history_tbl(l_count).NEW_ACTIVE_END_DATE	 := p_version_label_rec.ACTIVE_END_DATE;
1049    p_ver_label_history_tbl(l_count).OLD_CONTEXT	 := NULL;
1050    p_ver_label_history_tbl(l_count).NEW_CONTEXT	 := p_version_label_rec.CONTEXT;
1051    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE1	 := NULL;
1052    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE1	 := p_version_label_rec.ATTRIBUTE1;
1053    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE2	 := NULL;
1054    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE2	 := p_version_label_rec.ATTRIBUTE2;
1055    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE3	 := NULL;
1056    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE3	 := p_version_label_rec.ATTRIBUTE3;
1057    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE4	 := NULL;
1058    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE4	 := p_version_label_rec.ATTRIBUTE4;
1059    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE5	 := NULL;
1060    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE5	 := p_version_label_rec.ATTRIBUTE5;
1061    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE6	 := NULL;
1062    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE6	 := p_version_label_rec.ATTRIBUTE6;
1063    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE7	 := NULL;
1064    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE7	 := p_version_label_rec.ATTRIBUTE7;
1065    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE8	 := NULL;
1066    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE8	 := p_version_label_rec.ATTRIBUTE8;
1067    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE9	 := NULL;
1068    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE9	 := p_version_label_rec.ATTRIBUTE9;
1069    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE10	 := NULL;
1070    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE10	 := p_version_label_rec.ATTRIBUTE10;
1071    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE11	 := NULL;
1072    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE11	 := p_version_label_rec.ATTRIBUTE11;
1073    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE12	 := NULL;
1074    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE12	 := p_version_label_rec.ATTRIBUTE12;
1075    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE13	 := NULL;
1076    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE13	 := p_version_label_rec.ATTRIBUTE13;
1077    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE14	 := NULL;
1078    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE14	 := p_version_label_rec.ATTRIBUTE14;
1079    p_ver_label_history_tbl(l_count).OLD_ATTRIBUTE15	 := NULL;
1080    p_ver_label_history_tbl(l_count).NEW_ATTRIBUTE15	 := p_version_label_rec.ATTRIBUTE15;
1081 END Build_Ver_Label_History;
1082 --
1083 PROCEDURE Build_Party_History
1084     ( p_party_hist_tbl     IN OUT NOCOPY  csi_datastructures_pub.party_history_tbl
1085      ,p_party_rec          IN     csi_datastructures_pub.party_rec
1086      ,p_txn_id             IN     NUMBER
1087     ) IS
1088     l_count    NUMBER;
1089     l_hist_id  NUMBER;
1090 BEGIN
1091    l_count := p_party_hist_tbl.count + 1;
1092    select CSI_I_PARTIES_H_S.nextval
1093    into l_hist_id
1094    from sys.dual;
1095    --
1096    p_party_hist_tbl(l_count).INSTANCE_PARTY_HISTORY_ID := l_hist_id;
1097    p_party_hist_tbl(l_count).INSTANCE_PARTY_ID := p_party_rec.INSTANCE_PARTY_ID;
1098    p_party_hist_tbl(l_count).TRANSACTION_ID := p_txn_id;
1099    p_party_hist_tbl(l_count).OLD_PARTY_SOURCE_TABLE := NULL;
1100    p_party_hist_tbl(l_count).NEW_PARTY_SOURCE_TABLE := p_party_rec.PARTY_SOURCE_TABLE;
1101    p_party_hist_tbl(l_count).OLD_PARTY_ID := NULL;
1102    p_party_hist_tbl(l_count).NEW_PARTY_ID := p_party_rec.PARTY_ID;
1103    p_party_hist_tbl(l_count).OLD_RELATIONSHIP_TYPE_CODE := NULL;
1104    p_party_hist_tbl(l_count).NEW_RELATIONSHIP_TYPE_CODE := p_party_rec.RELATIONSHIP_TYPE_CODE;
1105    p_party_hist_tbl(l_count).OLD_CONTACT_FLAG := NULL;
1106    p_party_hist_tbl(l_count).NEW_CONTACT_FLAG := p_party_rec.CONTACT_FLAG;
1107    p_party_hist_tbl(l_count).OLD_CONTACT_IP_ID := NULL;
1108    p_party_hist_tbl(l_count).NEW_CONTACT_IP_ID := p_party_rec.CONTACT_IP_ID;
1109    p_party_hist_tbl(l_count).OLD_ACTIVE_START_DATE := NULL;
1110    p_party_hist_tbl(l_count).NEW_ACTIVE_START_DATE := p_party_rec.ACTIVE_START_DATE;
1111    p_party_hist_tbl(l_count).OLD_ACTIVE_END_DATE := NULL;
1112    p_party_hist_tbl(l_count).NEW_ACTIVE_END_DATE := p_party_rec.ACTIVE_END_DATE;
1113    p_party_hist_tbl(l_count).OLD_CONTEXT := NULL;
1114    p_party_hist_tbl(l_count).NEW_CONTEXT := p_party_rec.CONTEXT;
1115    p_party_hist_tbl(l_count).OLD_ATTRIBUTE1 := NULL;
1116    p_party_hist_tbl(l_count).NEW_ATTRIBUTE1 := p_party_rec.ATTRIBUTE1;
1117    p_party_hist_tbl(l_count).OLD_ATTRIBUTE2 := NULL;
1118    p_party_hist_tbl(l_count).NEW_ATTRIBUTE2 := p_party_rec.ATTRIBUTE2;
1119    p_party_hist_tbl(l_count).OLD_ATTRIBUTE3 := NULL;
1120    p_party_hist_tbl(l_count).NEW_ATTRIBUTE3 := p_party_rec.ATTRIBUTE3;
1121    p_party_hist_tbl(l_count).OLD_ATTRIBUTE4 := NULL;
1122    p_party_hist_tbl(l_count).NEW_ATTRIBUTE4 := p_party_rec.ATTRIBUTE4;
1123    p_party_hist_tbl(l_count).OLD_ATTRIBUTE5 := NULL;
1124    p_party_hist_tbl(l_count).NEW_ATTRIBUTE5 := p_party_rec.ATTRIBUTE5;
1125    p_party_hist_tbl(l_count).OLD_ATTRIBUTE6 := NULL;
1126    p_party_hist_tbl(l_count).NEW_ATTRIBUTE6 := p_party_rec.ATTRIBUTE6;
1127    p_party_hist_tbl(l_count).OLD_ATTRIBUTE7 := NULL;
1128    p_party_hist_tbl(l_count).NEW_ATTRIBUTE7 := p_party_rec.ATTRIBUTE7;
1129    p_party_hist_tbl(l_count).OLD_ATTRIBUTE8 := NULL;
1130    p_party_hist_tbl(l_count).NEW_ATTRIBUTE8 := p_party_rec.ATTRIBUTE8;
1131    p_party_hist_tbl(l_count).OLD_ATTRIBUTE9 := NULL;
1132    p_party_hist_tbl(l_count).NEW_ATTRIBUTE9 := p_party_rec.ATTRIBUTE9;
1133    p_party_hist_tbl(l_count).OLD_ATTRIBUTE10 := NULL;
1134    p_party_hist_tbl(l_count).NEW_ATTRIBUTE10 := p_party_rec.ATTRIBUTE10;
1135    p_party_hist_tbl(l_count).OLD_ATTRIBUTE11 := NULL;
1136    p_party_hist_tbl(l_count).NEW_ATTRIBUTE11 := p_party_rec.ATTRIBUTE11;
1137    p_party_hist_tbl(l_count).OLD_ATTRIBUTE12 := NULL;
1138    p_party_hist_tbl(l_count).NEW_ATTRIBUTE12 := p_party_rec.ATTRIBUTE12;
1139    p_party_hist_tbl(l_count).OLD_ATTRIBUTE13 := NULL;
1140    p_party_hist_tbl(l_count).NEW_ATTRIBUTE13 := p_party_rec.ATTRIBUTE13;
1141    p_party_hist_tbl(l_count).OLD_ATTRIBUTE14 := NULL;
1142    p_party_hist_tbl(l_count).NEW_ATTRIBUTE14 := p_party_rec.ATTRIBUTE14;
1143    p_party_hist_tbl(l_count).OLD_ATTRIBUTE15 := NULL;
1144    p_party_hist_tbl(l_count).NEW_ATTRIBUTE15 := p_party_rec.ATTRIBUTE15;
1145    p_party_hist_tbl(l_count).OLD_PRIMARY_FLAG := NULL;
1146    p_party_hist_tbl(l_count).NEW_PRIMARY_FLAG := p_party_rec.PRIMARY_FLAG;
1147    p_party_hist_tbl(l_count).OLD_PREFERRED_FLAG := NULL;
1148    p_party_hist_tbl(l_count).NEW_PREFERRED_FLAG := p_party_rec.PREFERRED_FLAG;
1149 END Build_Party_History;
1150 --
1151 PROCEDURE Build_Account_History
1152     ( p_acct_hist_tbl      IN OUT NOCOPY  csi_datastructures_pub.account_history_tbl
1153      ,p_acct_rec           IN     csi_datastructures_pub.party_account_rec
1154      ,p_txn_id             IN     NUMBER
1155     ) IS
1156 --
1157    l_count    NUMBER;
1158    l_hist_id  NUMBER;
1159 BEGIN
1160    l_count := p_acct_hist_tbl.count + 1;
1161    select CSI_IP_ACCOUNTS_H_S.nextval
1162    into l_hist_id
1163    from sys.dual;
1164    --
1165    p_acct_hist_tbl(l_count).IP_ACCOUNT_HISTORY_ID := l_hist_id;
1166    p_acct_hist_tbl(l_count).IP_ACCOUNT_ID := p_acct_rec.IP_ACCOUNT_ID;
1167    p_acct_hist_tbl(l_count).TRANSACTION_ID := p_txn_id;
1168    p_acct_hist_tbl(l_count).OLD_PARTY_ACCOUNT_ID := NULL;
1169    p_acct_hist_tbl(l_count).NEW_PARTY_ACCOUNT_ID := p_acct_rec.PARTY_ACCOUNT_ID;
1170    p_acct_hist_tbl(l_count).OLD_RELATIONSHIP_TYPE_CODE := NULL;
1171    p_acct_hist_tbl(l_count).NEW_RELATIONSHIP_TYPE_CODE := p_acct_rec.RELATIONSHIP_TYPE_CODE;
1172    p_acct_hist_tbl(l_count).OLD_ACTIVE_START_DATE := NULL;
1173    p_acct_hist_tbl(l_count).NEW_ACTIVE_START_DATE := p_acct_rec.ACTIVE_START_DATE;
1174    p_acct_hist_tbl(l_count).OLD_ACTIVE_END_DATE := NULL;
1175    p_acct_hist_tbl(l_count).NEW_ACTIVE_END_DATE := p_acct_rec.ACTIVE_END_DATE;
1176    p_acct_hist_tbl(l_count).OLD_CONTEXT := NULL;
1177    p_acct_hist_tbl(l_count).NEW_CONTEXT := p_acct_rec.CONTEXT;
1178    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE1 := NULL;
1179    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE1 := p_acct_rec.ATTRIBUTE1;
1180    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE2 := NULL;
1181    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE2 := p_acct_rec.ATTRIBUTE2;
1182    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE3 := NULL;
1183    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE3 := p_acct_rec.ATTRIBUTE3;
1184    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE4 := NULL;
1185    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE4 := p_acct_rec.ATTRIBUTE4;
1186    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE5 := NULL;
1187    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE5 := p_acct_rec.ATTRIBUTE5;
1188    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE6 := NULL;
1189    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE6 := p_acct_rec.ATTRIBUTE6;
1190    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE7 := NULL;
1191    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE7 := p_acct_rec.ATTRIBUTE7;
1192    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE8 := NULL;
1193    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE8 := p_acct_rec.ATTRIBUTE8;
1194    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE9 := NULL;
1195    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE9 := p_acct_rec.ATTRIBUTE9;
1196    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE10 := NULL;
1197    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE10 := p_acct_rec.ATTRIBUTE10;
1198    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE11 := NULL;
1199    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE11 := p_acct_rec.ATTRIBUTE11;
1200    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE12 := NULL;
1201    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE12 := p_acct_rec.ATTRIBUTE12;
1202    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE13 := NULL;
1203    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE13 := p_acct_rec.ATTRIBUTE13;
1204    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE14 := NULL;
1205    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE14 := p_acct_rec.ATTRIBUTE14;
1206    p_acct_hist_tbl(l_count).OLD_ATTRIBUTE15 := NULL;
1207    p_acct_hist_tbl(l_count).NEW_ATTRIBUTE15 := p_acct_rec.ATTRIBUTE15;
1208    p_acct_hist_tbl(l_count).OLD_BILL_TO_ADDRESS := NULL;
1209    p_acct_hist_tbl(l_count).NEW_BILL_TO_ADDRESS := p_acct_rec.BILL_TO_ADDRESS;
1210    p_acct_hist_tbl(l_count).OLD_SHIP_TO_ADDRESS := NULL;
1211    p_acct_hist_tbl(l_count).NEW_SHIP_TO_ADDRESS := p_acct_rec.SHIP_TO_ADDRESS;
1212 END Build_Account_History;
1213 --
1214 PROCEDURE Build_Org_History
1215   (
1216     p_org_hist_tbl  IN OUT NOCOPY  csi_datastructures_pub.org_units_history_tbl
1217    ,p_org_rec       IN     csi_datastructures_pub.organization_units_rec
1218    ,p_txn_id        IN     NUMBER
1219   ) IS
1220   --
1221   l_count NUMBER;
1222   l_hist_id NUMBER;
1223 BEGIN
1224    l_count := p_org_hist_tbl.count + 1;
1225    select CSI_I_ORG_ASSIGNMENTS_H_S.nextval
1226    into l_hist_id
1227    from sys.dual;
1228 
1229    p_org_hist_tbl(l_count).instance_ou_history_id      := l_hist_id;
1230    p_org_hist_tbl(l_count).instance_ou_id              := p_org_rec.instance_ou_id;
1231    p_org_hist_tbl(l_count).transaction_id              := p_txn_id;
1232    p_org_hist_tbl(l_count).old_operating_unit_id       := NULL;
1233    p_org_hist_tbl(l_count).new_operating_unit_id       := p_org_rec.operating_unit_id;
1234    p_org_hist_tbl(l_count).old_relationship_type_code  := NULL;
1235    p_org_hist_tbl(l_count).new_relationship_type_code  := p_org_rec.relationship_type_code;
1236    p_org_hist_tbl(l_count).old_active_start_date       := NULL;
1237    p_org_hist_tbl(l_count).new_active_start_date       := p_org_rec.active_start_date;
1238    p_org_hist_tbl(l_count).old_active_end_date         := NULL;
1239    p_org_hist_tbl(l_count).new_active_end_date         := p_org_rec.active_end_date;
1240    p_org_hist_tbl(l_count).old_context                 := NULL;
1241    p_org_hist_tbl(l_count).new_context                 := p_org_rec.context;
1242    p_org_hist_tbl(l_count).old_attribute1              := NULL;
1243    p_org_hist_tbl(l_count).new_attribute1              := p_org_rec.attribute1;
1244    p_org_hist_tbl(l_count).old_attribute2              := NULL;
1245    p_org_hist_tbl(l_count).new_attribute2              := p_org_rec.attribute2;
1246    p_org_hist_tbl(l_count).old_attribute3              := NULL;
1247    p_org_hist_tbl(l_count).new_attribute3              := p_org_rec.attribute3;
1248    p_org_hist_tbl(l_count).old_attribute4              := NULL;
1249    p_org_hist_tbl(l_count).new_attribute4              := p_org_rec.attribute4;
1250    p_org_hist_tbl(l_count).old_attribute5              := NULL;
1251    p_org_hist_tbl(l_count).new_attribute5              := p_org_rec.attribute5;
1252    p_org_hist_tbl(l_count).old_attribute6              := NULL;
1253    p_org_hist_tbl(l_count).new_attribute6              := p_org_rec.attribute6;
1254    p_org_hist_tbl(l_count).old_attribute7              := NULL;
1255    p_org_hist_tbl(l_count).new_attribute7              := p_org_rec.attribute7;
1256    p_org_hist_tbl(l_count).old_attribute8              := NULL;
1257    p_org_hist_tbl(l_count).new_attribute8              := p_org_rec.attribute8;
1258    p_org_hist_tbl(l_count).old_attribute9              := NULL;
1259    p_org_hist_tbl(l_count).new_attribute9              := p_org_rec.attribute9;
1260    p_org_hist_tbl(l_count).old_attribute10             := NULL;
1261    p_org_hist_tbl(l_count).new_attribute10             := p_org_rec.attribute10;
1262    p_org_hist_tbl(l_count).old_attribute11             := NULL;
1263    p_org_hist_tbl(l_count).new_attribute11             := p_org_rec.attribute11;
1264    p_org_hist_tbl(l_count).old_attribute12             := NULL;
1265    p_org_hist_tbl(l_count).new_attribute12             := p_org_rec.attribute12;
1266    p_org_hist_tbl(l_count).old_attribute13             := NULL;
1267    p_org_hist_tbl(l_count).new_attribute13             := p_org_rec.attribute13;
1268    p_org_hist_tbl(l_count).old_attribute14             := NULL;
1269    p_org_hist_tbl(l_count).new_attribute14             := p_org_rec.attribute14;
1270    p_org_hist_tbl(l_count).old_attribute15             := NULL;
1271    p_org_hist_tbl(l_count).new_attribute15             := p_org_rec.attribute15;
1272 END Build_Org_History;
1273 --
1274 PROCEDURE Build_Pricing_History
1275   (
1276     p_pricing_hist_tbl  IN OUT NOCOPY  csi_datastructures_pub.pricing_history_tbl
1277    ,p_pricing_rec       IN     csi_datastructures_pub.pricing_attribs_rec
1278    ,p_txn_id            IN     NUMBER
1279   ) IS
1280   --
1281   l_count NUMBER;
1282   l_hist_id NUMBER;
1283 BEGIN
1284    l_count := p_pricing_hist_tbl.count + 1;
1285    select CSI_I_PRICING_ATTRIBS_H_S.nextval
1286    into l_hist_id
1287    from sys.dual;
1288 
1289    p_pricing_hist_tbl(l_count).PRICE_ATTRIB_HISTORY_ID         := l_hist_id;
1290    p_pricing_hist_tbl(l_count).PRICING_ATTRIBUTE_ID            := p_pricing_rec.pricing_attribute_id;
1291    p_pricing_hist_tbl(l_count).TRANSACTION_ID                  := p_txn_id;
1292    p_pricing_hist_tbl(l_count).OLD_PRICING_CONTEXT             := NULL;
1293    p_pricing_hist_tbl(l_count).NEW_PRICING_CONTEXT             := p_pricing_rec.pricing_context;
1294    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE1          := NULL;
1295    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE1          := p_pricing_rec.pricing_attribute1;
1296    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE2          := NULL;
1297    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE2          := p_pricing_rec.pricing_attribute2;
1298    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE3          := NULL;
1299    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE3          := p_pricing_rec.pricing_attribute3;
1300    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE4          := NULL;
1301    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE4          := p_pricing_rec.pricing_attribute4;
1302    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE5          := NULL;
1303    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE5          := p_pricing_rec.pricing_attribute5;
1304    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE6          := NULL;
1305    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE6          := p_pricing_rec.pricing_attribute6;
1306    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE7          := NULL;
1307    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE7          := p_pricing_rec.pricing_attribute7;
1308    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE8          := NULL;
1309    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE8          := p_pricing_rec.pricing_attribute8;
1310    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE9          := NULL;
1311    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE9          := p_pricing_rec.pricing_attribute9;
1312    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE10         := NULL;
1313    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE10         := p_pricing_rec.pricing_attribute10;
1314    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE11         := NULL;
1315    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE11         := p_pricing_rec.pricing_attribute11;
1316    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE12         := NULL;
1317    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE12         := p_pricing_rec.pricing_attribute12;
1318    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE13         := NULL;
1319    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE13         := p_pricing_rec.pricing_attribute13;
1320    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE14         := NULL;
1321    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE14         := p_pricing_rec.pricing_attribute14;
1322    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE15         := NULL;
1323    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE15         := p_pricing_rec.pricing_attribute15;
1324    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE16         := NULL;
1325    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE16         := p_pricing_rec.pricing_attribute16;
1326    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE17         := NULL;
1327    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE17         := p_pricing_rec.pricing_attribute17;
1328    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE18         := NULL;
1329    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE18         := p_pricing_rec.pricing_attribute18;
1330    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE19         := NULL;
1331    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE19         := p_pricing_rec.pricing_attribute19;
1332    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE20         := NULL;
1333    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE20         := p_pricing_rec.pricing_attribute20;
1334    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE21         := NULL;
1335    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE21         := p_pricing_rec.pricing_attribute21;
1336    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE22         := NULL;
1337    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE22         := p_pricing_rec.pricing_attribute22;
1338    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE23         := NULL;
1339    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE23         := p_pricing_rec.pricing_attribute23;
1340    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE24         := NULL;
1341    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE24         := p_pricing_rec.pricing_attribute24;
1342    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE25         := NULL;
1343    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE25         := p_pricing_rec.pricing_attribute25;
1344    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE26         := NULL;
1345    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE26         := p_pricing_rec.pricing_attribute26;
1346    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE27         := NULL;
1347    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE27         := p_pricing_rec.pricing_attribute27;
1348    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE28         := NULL;
1349    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE28         := p_pricing_rec.pricing_attribute28;
1350    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE29         := NULL;
1351    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE29         := p_pricing_rec.pricing_attribute29;
1352    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE30         := NULL;
1353    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE30         := p_pricing_rec.pricing_attribute30;
1354    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE31         := NULL;
1355    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE31         := p_pricing_rec.pricing_attribute31;
1356    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE32         := NULL;
1357    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE32         := p_pricing_rec.pricing_attribute32;
1358    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE33         := NULL;
1359    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE33         := p_pricing_rec.pricing_attribute33;
1360    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE34         := NULL;
1361    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE34         := p_pricing_rec.pricing_attribute34;
1362    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE35         := NULL;
1363    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE35         := p_pricing_rec.pricing_attribute35;
1364    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE36         := NULL;
1365    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE36         := p_pricing_rec.pricing_attribute36;
1366    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE37         := NULL;
1367    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE37         := p_pricing_rec.pricing_attribute37;
1368    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE38         := NULL;
1369    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE38         := p_pricing_rec.pricing_attribute38;
1370    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE39         := NULL;
1371    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE39         := p_pricing_rec.pricing_attribute39;
1372    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE40         := NULL;
1373    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE40         := p_pricing_rec.pricing_attribute40;
1374    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE41         := NULL;
1375    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE41         := p_pricing_rec.pricing_attribute41;
1376    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE42         := NULL;
1377    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE42         := p_pricing_rec.pricing_attribute42;
1378    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE43         := NULL;
1379    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE43         := p_pricing_rec.pricing_attribute43;
1380    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE44         := NULL;
1381    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE44         := p_pricing_rec.pricing_attribute44;
1382    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE45         := NULL;
1383    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE45         := p_pricing_rec.pricing_attribute45;
1384    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE46         := NULL;
1385    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE46         := p_pricing_rec.pricing_attribute46;
1386    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE47         := NULL;
1387    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE47         := p_pricing_rec.pricing_attribute47;
1388    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE48         := NULL;
1389    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE48         := p_pricing_rec.pricing_attribute48;
1390    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE49         := NULL;
1391    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE49         := p_pricing_rec.pricing_attribute49;
1392    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE50         := NULL;
1393    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE50         := p_pricing_rec.pricing_attribute50;
1394    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE51         := NULL;
1395    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE51         := p_pricing_rec.pricing_attribute51;
1396    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE52         := NULL;
1397    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE52         := p_pricing_rec.pricing_attribute52;
1398    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE53         := NULL;
1399    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE53         := p_pricing_rec.pricing_attribute53;
1400    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE54         := NULL;
1401    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE54         := p_pricing_rec.pricing_attribute54;
1402    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE55         := NULL;
1403    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE55         := p_pricing_rec.pricing_attribute55;
1404    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE56         := NULL;
1405    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE56         := p_pricing_rec.pricing_attribute56;
1406    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE57         := NULL;
1407    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE57         := p_pricing_rec.pricing_attribute57;
1408    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE58         := NULL;
1409    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE58         := p_pricing_rec.pricing_attribute58;
1410    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE59         := NULL;
1411    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE59         := p_pricing_rec.pricing_attribute59;
1412    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE60         := NULL;
1413    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE60         := p_pricing_rec.pricing_attribute60;
1414    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE61         := NULL;
1415    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE61         := p_pricing_rec.pricing_attribute61;
1416    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE62         := NULL;
1417    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE62         := p_pricing_rec.pricing_attribute62;
1418    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE63         := NULL;
1419    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE63         := p_pricing_rec.pricing_attribute63;
1420    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE64         := NULL;
1421    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE64         := p_pricing_rec.pricing_attribute64;
1422    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE65         := NULL;
1423    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE65         := p_pricing_rec.pricing_attribute65;
1424    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE66         := NULL;
1425    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE66         := p_pricing_rec.pricing_attribute66;
1426    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE67         := NULL;
1427    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE67         := p_pricing_rec.pricing_attribute67;
1428    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE68         := NULL;
1429    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE68         := p_pricing_rec.pricing_attribute68;
1430    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE69         := NULL;
1431    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE69         := p_pricing_rec.pricing_attribute69;
1432    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE70         := NULL;
1433    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE70         := p_pricing_rec.pricing_attribute70;
1434    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE71         := NULL;
1435    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE71         := p_pricing_rec.pricing_attribute71;
1436    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE72         := NULL;
1437    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE72         := p_pricing_rec.pricing_attribute72;
1438    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE73         := NULL;
1439    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE73         := p_pricing_rec.pricing_attribute73;
1440    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE74         := NULL;
1441    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE74         := p_pricing_rec.pricing_attribute74;
1442    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE75         := NULL;
1443    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE75         := p_pricing_rec.pricing_attribute75;
1444    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE76         := NULL;
1445    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE76         := p_pricing_rec.pricing_attribute76;
1446    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE77         := NULL;
1447    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE77         := p_pricing_rec.pricing_attribute77;
1448    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE78         := NULL;
1449    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE78         := p_pricing_rec.pricing_attribute78;
1450    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE79         := NULL;
1451    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE79         := p_pricing_rec.pricing_attribute79;
1452    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE80         := NULL;
1453    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE80         := p_pricing_rec.pricing_attribute80;
1454    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE81         := NULL;
1455    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE81         := p_pricing_rec.pricing_attribute81;
1456    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE82         := NULL;
1457    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE82         := p_pricing_rec.pricing_attribute82;
1458    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE83         := NULL;
1459    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE83         := p_pricing_rec.pricing_attribute83;
1460    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE84         := NULL;
1461    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE84         := p_pricing_rec.pricing_attribute84;
1462    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE85         := NULL;
1463    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE85         := p_pricing_rec.pricing_attribute85;
1464    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE86         := NULL;
1465    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE86         := p_pricing_rec.pricing_attribute86;
1466    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE87         := NULL;
1467    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE87         := p_pricing_rec.pricing_attribute87;
1468    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE88         := NULL;
1469    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE88         := p_pricing_rec.pricing_attribute88;
1470    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE89         := NULL;
1471    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE89         := p_pricing_rec.pricing_attribute89;
1472    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE90         := NULL;
1473    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE90         := p_pricing_rec.pricing_attribute90;
1474    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE91         := NULL;
1475    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE91         := p_pricing_rec.pricing_attribute91;
1476    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE92         := NULL;
1477    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE92         := p_pricing_rec.pricing_attribute92;
1478    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE93         := NULL;
1479    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE93         := p_pricing_rec.pricing_attribute93;
1480    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE94         := NULL;
1481    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE94         := p_pricing_rec.pricing_attribute94;
1482    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE95         := NULL;
1483    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE95         := p_pricing_rec.pricing_attribute95;
1484    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE96         := NULL;
1485    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE96         := p_pricing_rec.pricing_attribute96;
1486    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE97         := NULL;
1487    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE97         := p_pricing_rec.pricing_attribute97;
1488    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE98         := NULL;
1489    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE98         := p_pricing_rec.pricing_attribute98;
1490    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE99         := NULL;
1491    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE99         := p_pricing_rec.pricing_attribute99;
1492    p_pricing_hist_tbl(l_count).OLD_PRICING_ATTRIBUTE100        := NULL;
1493    p_pricing_hist_tbl(l_count).NEW_PRICING_ATTRIBUTE100        := p_pricing_rec.pricing_attribute100;
1494    p_pricing_hist_tbl(l_count).OLD_ACTIVE_START_DATE           := NULL;
1495    p_pricing_hist_tbl(l_count).NEW_ACTIVE_START_DATE           :=  p_pricing_rec.active_start_date;
1496    p_pricing_hist_tbl(l_count).OLD_ACTIVE_END_DATE             := NULL;
1497    p_pricing_hist_tbl(l_count).NEW_ACTIVE_END_DATE             :=  p_pricing_rec.active_end_date;
1498    p_pricing_hist_tbl(l_count).OLD_CONTEXT                     := NULL;
1499    p_pricing_hist_tbl(l_count).NEW_CONTEXT                     := p_pricing_rec.context;
1500    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE1                  := NULL;
1501    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE1                  := p_pricing_rec.ATTRIBUTE1;
1502    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE2                  := NULL;
1503    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE2                  := p_pricing_rec.ATTRIBUTE2;
1504    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE3                  := NULL;
1505    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE3                  := p_pricing_rec.ATTRIBUTE3;
1506    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE4                  := NULL;
1507    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE4                  := p_pricing_rec.ATTRIBUTE4;
1508    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE5                  := NULL;
1509    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE5                  := p_pricing_rec.ATTRIBUTE5;
1510    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE6                  := NULL;
1511    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE6                  := p_pricing_rec.ATTRIBUTE6;
1512    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE7                  := NULL;
1513    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE7                  := p_pricing_rec.ATTRIBUTE7;
1514    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE8                  := NULL;
1515    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE8                  := p_pricing_rec.ATTRIBUTE8;
1516    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE9                  := NULL;
1517    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE9                  := p_pricing_rec.ATTRIBUTE9;
1518    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE10                 := NULL;
1519    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE10                 := p_pricing_rec.ATTRIBUTE10;
1520    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE11                 := NULL;
1521    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE11                 := p_pricing_rec.ATTRIBUTE11;
1522    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE12                 := NULL;
1523    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE12                 := p_pricing_rec.ATTRIBUTE12;
1524    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE13                 := NULL;
1525    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE13                 := p_pricing_rec.ATTRIBUTE13;
1526    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE14                 := NULL;
1527    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE14                 := p_pricing_rec.ATTRIBUTE14;
1528    p_pricing_hist_tbl(l_count).OLD_ATTRIBUTE15                 := NULL;
1529    p_pricing_hist_tbl(l_count).NEW_ATTRIBUTE15                 := p_pricing_rec.ATTRIBUTE15;
1530 END Build_Pricing_History;
1531 --
1532 PROCEDURE Build_Ext_Attr_History
1533   (
1534     p_ext_attr_hist_tbl IN OUT NOCOPY  csi_datastructures_pub.ext_attrib_val_history_tbl
1535    ,p_ext_attr_rec      IN     csi_datastructures_pub.extend_attrib_values_rec
1536    ,p_txn_id            IN     NUMBER
1537   ) IS
1538   --
1539   l_count NUMBER;
1540   l_hist_id NUMBER;
1541 BEGIN
1542    l_count := p_ext_attr_hist_tbl.count + 1;
1543    select CSI_IEA_VALUES_H_S.nextval
1544    into l_hist_id
1545    from sys.dual;
1546 
1547    p_ext_attr_hist_tbl(l_count).attribute_value_history_id := l_hist_id;
1548    p_ext_attr_hist_tbl(l_count).attribute_value_id := p_ext_attr_rec.attribute_value_id;
1549    p_ext_attr_hist_tbl(l_count).transaction_id := p_txn_id;
1550    p_ext_attr_hist_tbl(l_count).old_attribute_value   := NULL;
1551    p_ext_attr_hist_tbl(l_count).new_attribute_value   := p_ext_attr_rec.attribute_value;
1552    p_ext_attr_hist_tbl(l_count).old_active_start_date := NULL;
1553    p_ext_attr_hist_tbl(l_count).new_active_start_date := p_ext_attr_rec.active_start_date;
1554    p_ext_attr_hist_tbl(l_count).old_active_end_date   := NULL;
1555    p_ext_attr_hist_tbl(l_count).new_active_end_date := p_ext_attr_rec.active_end_date;
1556    p_ext_attr_hist_tbl(l_count).old_context           := NULL;
1557    p_ext_attr_hist_tbl(l_count).new_context           := p_ext_attr_rec.context;
1558    p_ext_attr_hist_tbl(l_count).old_attribute1        := NULL;
1559    p_ext_attr_hist_tbl(l_count).new_attribute1        := p_ext_attr_rec.attribute1;
1560    p_ext_attr_hist_tbl(l_count).old_attribute2        := NULL;
1561    p_ext_attr_hist_tbl(l_count).new_attribute2        := p_ext_attr_rec.attribute2;
1562    p_ext_attr_hist_tbl(l_count).old_attribute3        := NULL;
1563    p_ext_attr_hist_tbl(l_count).new_attribute3        := p_ext_attr_rec.attribute3;
1564    p_ext_attr_hist_tbl(l_count).old_attribute4        := NULL;
1565    p_ext_attr_hist_tbl(l_count).new_attribute4        := p_ext_attr_rec.attribute4;
1566    p_ext_attr_hist_tbl(l_count).old_attribute5        := NULL;
1567    p_ext_attr_hist_tbl(l_count).new_attribute5        := p_ext_attr_rec.attribute5;
1568    p_ext_attr_hist_tbl(l_count).old_attribute6        := NULL;
1569    p_ext_attr_hist_tbl(l_count).new_attribute6        := p_ext_attr_rec.attribute6;
1570    p_ext_attr_hist_tbl(l_count).old_attribute7        := NULL;
1571    p_ext_attr_hist_tbl(l_count).new_attribute7        := p_ext_attr_rec.attribute7;
1572    p_ext_attr_hist_tbl(l_count).old_attribute8        := NULL;
1573    p_ext_attr_hist_tbl(l_count).new_attribute8        := p_ext_attr_rec.attribute8;
1574    p_ext_attr_hist_tbl(l_count).old_attribute9        := NULL;
1575    p_ext_attr_hist_tbl(l_count).new_attribute9        := p_ext_attr_rec.attribute9;
1576    p_ext_attr_hist_tbl(l_count).old_attribute10       := NULL;
1577    p_ext_attr_hist_tbl(l_count).new_attribute10       := p_ext_attr_rec.attribute10;
1578    p_ext_attr_hist_tbl(l_count).old_attribute11       := NULL;
1579    p_ext_attr_hist_tbl(l_count).new_attribute11       := p_ext_attr_rec.attribute11;
1580    p_ext_attr_hist_tbl(l_count).old_attribute12       := NULL;
1581    p_ext_attr_hist_tbl(l_count).new_attribute12       := p_ext_attr_rec.attribute12;
1582    p_ext_attr_hist_tbl(l_count).old_attribute13       := NULL;
1583    p_ext_attr_hist_tbl(l_count).new_attribute13       := p_ext_attr_rec.attribute13;
1584    p_ext_attr_hist_tbl(l_count).old_attribute14       := NULL;
1585    p_ext_attr_hist_tbl(l_count).new_attribute14       := p_ext_attr_rec.attribute14;
1586    p_ext_attr_hist_tbl(l_count).old_attribute15       := NULL;
1587    p_ext_attr_hist_tbl(l_count).new_attribute15       := p_ext_attr_rec.attribute15;
1588    p_ext_attr_hist_tbl(l_count).attribute_code        := p_ext_attr_rec.attribute_code;
1589 
1590 END Build_Ext_Attr_History;
1591 --
1592 PROCEDURE Build_Asset_History
1593   (
1594     p_asset_hist_tbl IN OUT NOCOPY  csi_datastructures_pub.ins_asset_history_tbl
1595    ,p_asset_rec      IN     csi_datastructures_pub.instance_asset_rec
1596    ,p_txn_id         IN     NUMBER
1597   ) IS
1598   --
1599   l_count NUMBER;
1600   l_hist_id NUMBER;
1601 BEGIN
1602    l_count := p_asset_hist_tbl.count + 1;
1603    select CSI_I_ASSETS_H_S.nextval
1604    into l_hist_id
1605    from sys.dual;
1606 
1607    p_asset_hist_tbl(l_count).instance_asset_history_id := l_hist_id;
1608    p_asset_hist_tbl(l_count).transaction_id            := p_txn_id;
1609    p_asset_hist_tbl(l_count).instance_asset_id         := p_asset_rec.instance_asset_id;
1610    p_asset_hist_tbl(l_count).old_instance_id           := NULL;
1611    p_asset_hist_tbl(l_count).new_instance_id           := p_asset_rec.instance_id;
1612    p_asset_hist_tbl(l_count).old_fa_asset_id           := NULL;
1613    p_asset_hist_tbl(l_count).new_fa_asset_id           := p_asset_rec.fa_asset_id;
1614    p_asset_hist_tbl(l_count).old_fa_book_type_code     := NULL;
1615    p_asset_hist_tbl(l_count).new_fa_book_type_code     := p_asset_rec.fa_book_type_code;
1616    p_asset_hist_tbl(l_count).old_fa_location_id        := NULL;
1617    p_asset_hist_tbl(l_count).new_fa_location_id        := p_asset_rec.fa_location_id;
1618    p_asset_hist_tbl(l_count).old_asset_quantity        := NULL;
1619    p_asset_hist_tbl(l_count).new_asset_quantity        := p_asset_rec.asset_quantity;
1620    p_asset_hist_tbl(l_count).old_update_status         := NULL;
1621    p_asset_hist_tbl(l_count).new_update_status         := p_asset_rec.update_status;
1622    p_asset_hist_tbl(l_count).old_active_start_date     := NULL;
1623    p_asset_hist_tbl(l_count).new_active_start_date     := p_asset_rec.active_start_date;
1624    p_asset_hist_tbl(l_count).old_active_end_date       := NULL;
1625    p_asset_hist_tbl(l_count).new_active_end_date       := p_asset_rec.active_end_date;
1626 
1627 END Build_Asset_History;
1628 --
1629 PROCEDURE Build_Inst_Rec_of_Table
1630    (
1631      p_inst_tbl           IN      csi_datastructures_pub.instance_tbl
1632     ,p_inst_rec_tab       IN OUT NOCOPY   csi_item_instance_grp.instance_rec_tab
1633    ) IS
1634 BEGIN
1635    FOR i in p_inst_tbl.FIRST .. p_inst_tbl.LAST LOOP
1636       p_inst_rec_tab.INSTANCE_ID(i)           :=	p_inst_tbl(i).INSTANCE_ID;
1637       p_inst_rec_tab.instance_number(i)       :=	p_inst_tbl(i).instance_number;
1638       p_inst_rec_tab.external_reference(i)       :=	p_inst_tbl(i).external_reference;
1639       p_inst_rec_tab.inventory_item_id(i)       :=	p_inst_tbl(i).inventory_item_id;
1640       p_inst_rec_tab.vld_organization_id(i)       :=	p_inst_tbl(i).vld_organization_id;
1641       p_inst_rec_tab.inventory_revision(i)       :=	p_inst_tbl(i).inventory_revision;
1642       p_inst_rec_tab.inv_master_organization_id(i)       :=	p_inst_tbl(i).inv_master_organization_id;
1643       p_inst_rec_tab.serial_number(i)       :=	p_inst_tbl(i).serial_number;
1644       p_inst_rec_tab.mfg_serial_number_flag(i)       :=	p_inst_tbl(i).mfg_serial_number_flag;
1645       p_inst_rec_tab.lot_number(i)       :=	p_inst_tbl(i).lot_number;
1646       p_inst_rec_tab.quantity(i)       :=	p_inst_tbl(i).quantity;
1647       p_inst_rec_tab.unit_of_measure(i)       :=	p_inst_tbl(i).unit_of_measure;
1648       p_inst_rec_tab.accounting_class_code(i)       :=	p_inst_tbl(i).accounting_class_code;
1649       p_inst_rec_tab.instance_condition_id(i)       :=	p_inst_tbl(i).instance_condition_id;
1650       p_inst_rec_tab.instance_status_id(i)       :=	p_inst_tbl(i).instance_status_id;
1651       p_inst_rec_tab.customer_view_flag(i)       :=	p_inst_tbl(i).customer_view_flag;
1652       p_inst_rec_tab.merchant_view_flag(i)       :=	p_inst_tbl(i).merchant_view_flag;
1653       p_inst_rec_tab.sellable_flag(i)       :=	p_inst_tbl(i).sellable_flag;
1654       p_inst_rec_tab.system_id(i)       :=	p_inst_tbl(i).system_id;
1655       p_inst_rec_tab.instance_type_code(i)       :=	p_inst_tbl(i).instance_type_code;
1656       p_inst_rec_tab.active_start_date(i)       :=	p_inst_tbl(i).active_start_date;
1657       p_inst_rec_tab.active_end_date(i)       :=	p_inst_tbl(i).active_end_date;
1658       p_inst_rec_tab.location_type_code(i)       :=	p_inst_tbl(i).location_type_code;
1659       p_inst_rec_tab.location_id(i)       :=	p_inst_tbl(i).location_id;
1660       p_inst_rec_tab.inv_organization_id(i)       :=	p_inst_tbl(i).inv_organization_id;
1661       p_inst_rec_tab.inv_subinventory_name(i)       :=	p_inst_tbl(i).inv_subinventory_name;
1662       p_inst_rec_tab.inv_locator_id(i)       :=	p_inst_tbl(i).inv_locator_id;
1663       p_inst_rec_tab.pa_project_id(i)       :=	p_inst_tbl(i).pa_project_id;
1664       p_inst_rec_tab.pa_project_task_id(i)       :=	p_inst_tbl(i).pa_project_task_id;
1665       p_inst_rec_tab.in_transit_order_line_id(i)       :=	p_inst_tbl(i).in_transit_order_line_id;
1666       p_inst_rec_tab.wip_job_id(i)       :=	p_inst_tbl(i).wip_job_id;
1667       p_inst_rec_tab.po_order_line_id(i)       :=	p_inst_tbl(i).po_order_line_id;
1668       p_inst_rec_tab.last_oe_order_line_id(i)       :=	p_inst_tbl(i).last_oe_order_line_id;
1669       p_inst_rec_tab.last_oe_rma_line_id(i)       :=	p_inst_tbl(i).last_oe_rma_line_id;
1670       p_inst_rec_tab.last_po_po_line_id(i)       :=	p_inst_tbl(i).last_po_po_line_id;
1671       p_inst_rec_tab.last_oe_po_number(i)       :=	p_inst_tbl(i).last_oe_po_number;
1672       p_inst_rec_tab.last_wip_job_id(i)       :=	p_inst_tbl(i).last_wip_job_id;
1673       p_inst_rec_tab.last_pa_project_id(i)       :=	p_inst_tbl(i).last_pa_project_id;
1674       p_inst_rec_tab.last_pa_task_id(i)       :=	p_inst_tbl(i).last_pa_task_id;
1675       p_inst_rec_tab.last_oe_agreement_id(i)       :=	p_inst_tbl(i).last_oe_agreement_id;
1676       p_inst_rec_tab.install_date(i)       :=	p_inst_tbl(i).install_date;
1677       p_inst_rec_tab.manually_created_flag(i)       :=	p_inst_tbl(i).manually_created_flag;
1678       p_inst_rec_tab.return_by_date(i)       :=	p_inst_tbl(i).return_by_date;
1679       p_inst_rec_tab.actual_return_date(i)       :=	p_inst_tbl(i).actual_return_date;
1680       p_inst_rec_tab.creation_complete_flag(i)       :=	p_inst_tbl(i).creation_complete_flag;
1681       p_inst_rec_tab.completeness_flag(i)       :=	p_inst_tbl(i).completeness_flag;
1682       p_inst_rec_tab.version_label(i)       :=	p_inst_tbl(i).version_label;
1683       p_inst_rec_tab.version_label_description(i)       :=	p_inst_tbl(i).version_label_description;
1684       p_inst_rec_tab.context(i)       :=	p_inst_tbl(i).context;
1685       p_inst_rec_tab.attribute1(i)       :=	p_inst_tbl(i).attribute1;
1686       p_inst_rec_tab.attribute2(i)       :=	p_inst_tbl(i).attribute2;
1687       p_inst_rec_tab.attribute3(i)       :=	p_inst_tbl(i).attribute3;
1688       p_inst_rec_tab.attribute4(i)       :=	p_inst_tbl(i).attribute4;
1689       p_inst_rec_tab.attribute5(i)       :=	p_inst_tbl(i).attribute5;
1690       p_inst_rec_tab.attribute6(i)       :=	p_inst_tbl(i).attribute6;
1691       p_inst_rec_tab.attribute7(i)       :=	p_inst_tbl(i).attribute7;
1692       p_inst_rec_tab.attribute8(i)       :=	p_inst_tbl(i).attribute8;
1693       p_inst_rec_tab.attribute9(i)       :=	p_inst_tbl(i).attribute9;
1694       p_inst_rec_tab.attribute10(i)       :=	p_inst_tbl(i).attribute10;
1695       p_inst_rec_tab.attribute11(i)       :=	p_inst_tbl(i).attribute11;
1696       p_inst_rec_tab.attribute12(i)       :=	p_inst_tbl(i).attribute12;
1697       p_inst_rec_tab.attribute13(i)       :=	p_inst_tbl(i).attribute13;
1698       p_inst_rec_tab.attribute14(i)       :=	p_inst_tbl(i).attribute14;
1699       p_inst_rec_tab.attribute15(i)       :=	p_inst_tbl(i).attribute15;
1700       p_inst_rec_tab.object_version_number(i)       :=	p_inst_tbl(i).object_version_number;
1701       p_inst_rec_tab.last_txn_line_detail_id(i)       :=	p_inst_tbl(i).last_txn_line_detail_id;
1702       p_inst_rec_tab.install_location_type_code(i)       :=	p_inst_tbl(i).install_location_type_code;
1703       p_inst_rec_tab.install_location_id(i)       :=	p_inst_tbl(i).install_location_id;
1704       p_inst_rec_tab.instance_usage_code(i)       :=	p_inst_tbl(i).instance_usage_code;
1705       p_inst_rec_tab.check_for_instance_expiry(i)       :=	p_inst_tbl(i).check_for_instance_expiry;
1706       p_inst_rec_tab.call_contracts(i)       :=	p_inst_tbl(i).call_contracts;
1707       p_inst_rec_tab.grp_call_contracts(i)       :=	p_inst_tbl(i).grp_call_contracts;
1708       p_inst_rec_tab.config_inst_hdr_id(i)       :=	p_inst_tbl(i).config_inst_hdr_id;
1709       p_inst_rec_tab.config_inst_rev_num(i)       :=	p_inst_tbl(i).config_inst_rev_num;
1710       p_inst_rec_tab.config_inst_item_id(i)       :=	p_inst_tbl(i).config_inst_item_id;
1711       p_inst_rec_tab.config_valid_status(i)       :=	p_inst_tbl(i).config_valid_status;
1712       p_inst_rec_tab.instance_description(i)       :=	p_inst_tbl(i).instance_description;
1713 
1714       p_inst_rec_tab.network_asset_flag(i)       := p_inst_tbl(i).network_asset_flag;
1715       p_inst_rec_tab.maintainable_flag(i)        := p_inst_tbl(i).maintainable_flag;
1716       p_inst_rec_tab.asset_criticality_code(i)   := p_inst_tbl(i).asset_criticality_code;
1717       p_inst_rec_tab.category_id(i)              := p_inst_tbl(i).category_id ;
1718       p_inst_rec_tab.equipment_gen_object_id(i)  := p_inst_tbl(i).equipment_gen_object_id ;
1719       p_inst_rec_tab.instantiation_flag(i)       := p_inst_tbl(i).instantiation_flag;
1720       p_inst_rec_tab.operational_log_flag(i)     := p_inst_tbl(i).operational_log_flag ;
1721       p_inst_rec_tab.supplier_warranty_exp_date(i) := p_inst_tbl(i).supplier_warranty_exp_date ;
1722       p_inst_rec_tab.attribute16(i)               := p_inst_tbl(i).attribute16;
1723       p_inst_rec_tab.attribute17(i)               := p_inst_tbl(i).attribute17;
1724       p_inst_rec_tab.attribute18(i)               := p_inst_tbl(i).attribute18;
1725       p_inst_rec_tab.attribute19(i)               := p_inst_tbl(i).attribute19;
1726       p_inst_rec_tab.attribute20(i)               := p_inst_tbl(i).attribute20;
1727       p_inst_rec_tab.attribute21(i)               := p_inst_tbl(i).attribute21;
1728       p_inst_rec_tab.attribute22(i)               := p_inst_tbl(i).attribute22;
1729       p_inst_rec_tab.attribute23(i)               := p_inst_tbl(i).attribute23;
1730       p_inst_rec_tab.attribute24(i)               := p_inst_tbl(i).attribute24;
1731       p_inst_rec_tab.attribute25(i)               := p_inst_tbl(i).attribute25;
1732       p_inst_rec_tab.attribute26(i)               := p_inst_tbl(i).attribute26;
1733       p_inst_rec_tab.attribute27(i)               := p_inst_tbl(i).attribute27;
1734       p_inst_rec_tab.attribute28(i)               := p_inst_tbl(i).attribute28;
1735       p_inst_rec_tab.attribute29(i)               := p_inst_tbl(i).attribute29;
1736       p_inst_rec_tab.attribute30(i)               := p_inst_tbl(i).attribute30;
1737 
1738       p_inst_rec_tab.purchase_unit_price(i)       := p_inst_tbl(i).purchase_unit_price;
1739       p_inst_rec_tab.purchase_currency_code(i)    := p_inst_tbl(i).purchase_currency_code;
1740       p_inst_rec_tab.payables_unit_price(i)       := p_inst_tbl(i).payables_unit_price;
1741       p_inst_rec_tab.payables_currency_code(i)    := p_inst_tbl(i).payables_currency_code;
1742       p_inst_rec_tab.sales_unit_price(i)          := p_inst_tbl(i).sales_unit_price;
1743       p_inst_rec_tab.sales_currency_code(i)       := p_inst_tbl(i).sales_currency_code;
1744       p_inst_rec_tab.operational_status_code(i)   := p_inst_tbl(i).operational_status_code;
1745 
1746    END LOOP;
1747 END Build_Inst_Rec_of_Table;
1748 --
1749 PROCEDURE Build_Inst_Hist_Rec_of_Table
1750   ( p_inst_hist_tbl       IN     csi_datastructures_pub.instance_history_tbl
1751    ,p_inst_hist_rec_tab   IN OUT NOCOPY  csi_item_instance_grp.instance_history_rec_tab
1752   ) IS
1753 BEGIN
1754    FOR i in p_inst_hist_tbl.FIRST .. p_inst_hist_tbl.LAST LOOP
1755       p_inst_hist_rec_tab.instance_id(i)	   :=  p_inst_hist_tbl(i).instance_id;
1756       p_inst_hist_rec_tab.old_instance_number(i)	   :=  p_inst_hist_tbl(i).old_instance_number;
1757       p_inst_hist_rec_tab.new_instance_number(i)	   :=  p_inst_hist_tbl(i).new_instance_number;
1758       p_inst_hist_rec_tab.old_external_reference(i)	   :=  p_inst_hist_tbl(i).old_external_reference;
1759       p_inst_hist_rec_tab.new_external_reference(i)	   :=  p_inst_hist_tbl(i).new_external_reference;
1760       p_inst_hist_rec_tab.old_inventory_item_id(i)	   :=  p_inst_hist_tbl(i).old_inventory_item_id;
1761       p_inst_hist_rec_tab.new_inventory_item_id(i)	   :=  p_inst_hist_tbl(i).new_inventory_item_id;
1762       p_inst_hist_rec_tab.old_inventory_revision(i)	   :=  p_inst_hist_tbl(i).old_inventory_revision;
1763       p_inst_hist_rec_tab.new_inventory_revision(i)	   :=  p_inst_hist_tbl(i).new_inventory_revision;
1764       p_inst_hist_rec_tab.old_inv_master_org_id(i)	   :=  p_inst_hist_tbl(i).old_inv_master_org_id;
1765       p_inst_hist_rec_tab.new_inv_master_org_id(i)	   :=  p_inst_hist_tbl(i).new_inv_master_org_id;
1766       p_inst_hist_rec_tab.old_serial_number(i)	   :=  p_inst_hist_tbl(i).old_serial_number;
1767       p_inst_hist_rec_tab.new_serial_number(i)	   :=  p_inst_hist_tbl(i).new_serial_number;
1768       p_inst_hist_rec_tab.old_mfg_serial_number_flag(i)   :=  p_inst_hist_tbl(i).old_mfg_serial_number_flag;
1769       p_inst_hist_rec_tab.new_mfg_serial_number_flag(i)   :=  p_inst_hist_tbl(i).new_mfg_serial_number_flag;
1770       p_inst_hist_rec_tab.old_lot_number(i)	   :=  p_inst_hist_tbl(i).old_lot_number;
1771       p_inst_hist_rec_tab.new_lot_number(i)	   :=  p_inst_hist_tbl(i).new_lot_number;
1772       p_inst_hist_rec_tab.old_quantity(i)	   :=  p_inst_hist_tbl(i).old_quantity;
1773       p_inst_hist_rec_tab.new_quantity(i)	   :=  p_inst_hist_tbl(i).new_quantity;
1774       p_inst_hist_rec_tab.old_unit_of_measure_name(i)	   :=  p_inst_hist_tbl(i).old_unit_of_measure_name;
1775       p_inst_hist_rec_tab.new_unit_of_measure_name(i)	   :=  p_inst_hist_tbl(i).new_unit_of_measure_name;
1776       p_inst_hist_rec_tab.old_unit_of_measure(i)	   :=  p_inst_hist_tbl(i).old_unit_of_measure;
1777       p_inst_hist_rec_tab.new_unit_of_measure(i)	   :=  p_inst_hist_tbl(i).new_unit_of_measure;
1778       p_inst_hist_rec_tab.old_accounting_class(i)	   :=  p_inst_hist_tbl(i).old_accounting_class;
1779       p_inst_hist_rec_tab.new_accounting_class(i)	   :=  p_inst_hist_tbl(i).new_accounting_class;
1780       p_inst_hist_rec_tab.old_accounting_class_code(i)   :=  p_inst_hist_tbl(i).old_accounting_class_code;
1781       p_inst_hist_rec_tab.new_accounting_class_code(i)   :=  p_inst_hist_tbl(i).new_accounting_class_code;
1782       p_inst_hist_rec_tab.old_instance_condition(i)	   :=  p_inst_hist_tbl(i).old_instance_condition;
1783       p_inst_hist_rec_tab.new_instance_condition(i)	   :=  p_inst_hist_tbl(i).new_instance_condition;
1784       p_inst_hist_rec_tab.old_instance_condition_id(i)   :=  p_inst_hist_tbl(i).old_instance_condition_id;
1785       p_inst_hist_rec_tab.new_instance_condition_id(i)   :=  p_inst_hist_tbl(i).new_instance_condition_id;
1786       p_inst_hist_rec_tab.old_instance_status(i)	   :=  p_inst_hist_tbl(i).old_instance_status;
1787       p_inst_hist_rec_tab.new_instance_status(i)	   :=  p_inst_hist_tbl(i).new_instance_status;
1788       p_inst_hist_rec_tab.old_instance_status_id(i)	   :=  p_inst_hist_tbl(i).old_instance_status_id;
1789       p_inst_hist_rec_tab.new_instance_status_id(i)	   :=  p_inst_hist_tbl(i).new_instance_status_id;
1790       p_inst_hist_rec_tab.old_customer_view_flag(i)	   :=  p_inst_hist_tbl(i).old_customer_view_flag;
1791       p_inst_hist_rec_tab.new_customer_view_flag(i)	   :=  p_inst_hist_tbl(i).new_customer_view_flag;
1792       p_inst_hist_rec_tab.old_merchant_view_flag(i)	   :=  p_inst_hist_tbl(i).old_merchant_view_flag;
1793       p_inst_hist_rec_tab.new_merchant_view_flag(i)	   :=  p_inst_hist_tbl(i).new_merchant_view_flag;
1794       p_inst_hist_rec_tab.old_sellable_flag(i)	   :=  p_inst_hist_tbl(i).old_sellable_flag;
1795       p_inst_hist_rec_tab.new_sellable_flag(i)	   :=  p_inst_hist_tbl(i).new_sellable_flag;
1796       p_inst_hist_rec_tab.old_system_id(i)	   :=  p_inst_hist_tbl(i).old_system_id;
1797       p_inst_hist_rec_tab.new_system_id(i)	   :=  p_inst_hist_tbl(i).new_system_id;
1798       p_inst_hist_rec_tab.old_system_name(i)	   :=  p_inst_hist_tbl(i).old_system_name;
1799       p_inst_hist_rec_tab.new_system_name(i)	   :=  p_inst_hist_tbl(i).new_system_name;
1800       p_inst_hist_rec_tab.old_instance_type_code(i)	   :=  p_inst_hist_tbl(i).old_instance_type_code;
1801       p_inst_hist_rec_tab.new_instance_type_code(i)	   :=  p_inst_hist_tbl(i).new_instance_type_code;
1802       p_inst_hist_rec_tab.old_instance_type_name(i)	   :=  p_inst_hist_tbl(i).old_instance_type_name;
1803       p_inst_hist_rec_tab.new_instance_type_name(i)	   :=  p_inst_hist_tbl(i).new_instance_type_name;
1804       p_inst_hist_rec_tab.old_active_start_date(i)	   :=  p_inst_hist_tbl(i).old_active_start_date;
1805       p_inst_hist_rec_tab.new_active_start_date(i)	   :=  p_inst_hist_tbl(i).new_active_start_date;
1806       p_inst_hist_rec_tab.old_active_end_date(i)	   :=  p_inst_hist_tbl(i).old_active_end_date;
1807       p_inst_hist_rec_tab.new_active_end_date(i)	   :=  p_inst_hist_tbl(i).new_active_end_date;
1808       p_inst_hist_rec_tab.old_location_type_code(i)	   :=  p_inst_hist_tbl(i).old_location_type_code;
1809       p_inst_hist_rec_tab.new_location_type_code(i)	   :=  p_inst_hist_tbl(i).new_location_type_code;
1810       p_inst_hist_rec_tab.old_location_id(i)	   :=  p_inst_hist_tbl(i).old_location_id;
1811       p_inst_hist_rec_tab.new_location_id(i)	   :=  p_inst_hist_tbl(i).new_location_id;
1812       p_inst_hist_rec_tab.old_inv_organization_id(i)	   :=  p_inst_hist_tbl(i).old_inv_organization_id;
1813       p_inst_hist_rec_tab.new_inv_organization_id(i)	   :=  p_inst_hist_tbl(i).new_inv_organization_id;
1814       p_inst_hist_rec_tab.old_inv_organization_name(i)   :=  p_inst_hist_tbl(i).old_inv_organization_name;
1815       p_inst_hist_rec_tab.new_inv_organization_name(i)   :=  p_inst_hist_tbl(i).new_inv_organization_name;
1816       p_inst_hist_rec_tab.old_inv_subinventory_name(i)   :=  p_inst_hist_tbl(i).old_inv_subinventory_name;
1817       p_inst_hist_rec_tab.new_inv_subinventory_name(i)   :=  p_inst_hist_tbl(i).new_inv_subinventory_name;
1818       p_inst_hist_rec_tab.old_inv_locator_id(i)	   :=  p_inst_hist_tbl(i).old_inv_locator_id;
1819       p_inst_hist_rec_tab.new_inv_locator_id(i)	   :=  p_inst_hist_tbl(i).new_inv_locator_id;
1820       p_inst_hist_rec_tab.old_pa_project_id(i)	   :=  p_inst_hist_tbl(i).old_pa_project_id;
1821       p_inst_hist_rec_tab.new_pa_project_id(i)	   :=  p_inst_hist_tbl(i).new_pa_project_id;
1822       p_inst_hist_rec_tab.old_pa_project_task_id(i)	   :=  p_inst_hist_tbl(i).old_pa_project_task_id;
1823       p_inst_hist_rec_tab.new_pa_project_task_id(i)	   :=  p_inst_hist_tbl(i).new_pa_project_task_id;
1824       p_inst_hist_rec_tab.old_pa_project_name(i)	   :=  p_inst_hist_tbl(i).old_pa_project_name;
1825       p_inst_hist_rec_tab.new_pa_project_name(i)	   :=  p_inst_hist_tbl(i).new_pa_project_name;
1826       p_inst_hist_rec_tab.old_pa_project_number(i)	   :=  p_inst_hist_tbl(i).old_pa_project_number;
1827       p_inst_hist_rec_tab.new_pa_project_number(i)	   :=  p_inst_hist_tbl(i).new_pa_project_number;
1828       p_inst_hist_rec_tab.old_pa_task_name(i)	   :=  p_inst_hist_tbl(i).old_pa_task_name;
1829       p_inst_hist_rec_tab.new_pa_task_name(i)	   :=  p_inst_hist_tbl(i).new_pa_task_name;
1830       p_inst_hist_rec_tab.old_pa_task_number(i)	   :=  p_inst_hist_tbl(i).old_pa_task_number;
1831       p_inst_hist_rec_tab.new_pa_task_number(i)	   :=  p_inst_hist_tbl(i).new_pa_task_number;
1832       p_inst_hist_rec_tab.old_in_transit_order_line_id(i) := p_inst_hist_tbl(i).old_in_transit_order_line_id;
1833       p_inst_hist_rec_tab.new_in_transit_order_line_id(i) := p_inst_hist_tbl(i).new_in_transit_order_line_id;
1834       p_inst_hist_rec_tab.old_in_transit_order_line_num(i) := p_inst_hist_tbl(i).old_in_transit_order_line_num;
1835       p_inst_hist_rec_tab.new_in_transit_order_line_num(i) := p_inst_hist_tbl(i).new_in_transit_order_line_num;
1836       p_inst_hist_rec_tab.old_in_transit_order_number(i)  :=  p_inst_hist_tbl(i).old_in_transit_order_number;
1837       p_inst_hist_rec_tab.new_in_transit_order_number(i)  :=  p_inst_hist_tbl(i).new_in_transit_order_number;
1838       p_inst_hist_rec_tab.old_wip_job_id(i)	   :=  p_inst_hist_tbl(i).old_wip_job_id;
1839       p_inst_hist_rec_tab.new_wip_job_id(i)	   :=  p_inst_hist_tbl(i).new_wip_job_id;
1840       p_inst_hist_rec_tab.old_wip_entity_name(i)   :=  p_inst_hist_tbl(i).old_wip_entity_name;
1841       p_inst_hist_rec_tab.new_wip_entity_name(i)   :=  p_inst_hist_tbl(i).new_wip_entity_name;
1842       p_inst_hist_rec_tab.old_po_order_line_id(i)   :=  p_inst_hist_tbl(i).old_po_order_line_id;
1843       p_inst_hist_rec_tab.new_po_order_line_id(i) :=  p_inst_hist_tbl(i).new_po_order_line_id;
1844       p_inst_hist_rec_tab.old_last_oe_order_line_id(i)   :=  p_inst_hist_tbl(i).old_last_oe_order_line_id;
1845       p_inst_hist_rec_tab.new_last_oe_order_line_id(i)   :=  p_inst_hist_tbl(i).new_last_oe_order_line_id;
1846       p_inst_hist_rec_tab.old_last_oe_rma_line_id(i)	   :=  p_inst_hist_tbl(i).old_last_oe_rma_line_id;
1847       p_inst_hist_rec_tab.new_last_oe_rma_line_id(i)	   :=  p_inst_hist_tbl(i).new_last_oe_rma_line_id;
1848       p_inst_hist_rec_tab.old_last_po_po_line_id(i)	   :=  p_inst_hist_tbl(i).old_last_po_po_line_id;
1849       p_inst_hist_rec_tab.new_last_po_po_line_id(i)	   :=  p_inst_hist_tbl(i).new_last_po_po_line_id;
1850       p_inst_hist_rec_tab.old_last_oe_po_number(i)	   :=  p_inst_hist_tbl(i).old_last_oe_po_number;
1851       p_inst_hist_rec_tab.new_last_oe_po_number(i)	   :=  p_inst_hist_tbl(i).new_last_oe_po_number;
1852       p_inst_hist_rec_tab.old_last_wip_job_id(i)	   :=  p_inst_hist_tbl(i).old_last_wip_job_id;
1853       p_inst_hist_rec_tab.new_last_wip_job_id(i)	   :=  p_inst_hist_tbl(i).new_last_wip_job_id;
1854       p_inst_hist_rec_tab.old_last_pa_project_id(i)	   :=  p_inst_hist_tbl(i).old_last_pa_project_id;
1855       p_inst_hist_rec_tab.new_last_pa_project_id(i)	   :=  p_inst_hist_tbl(i).new_last_pa_project_id;
1856       p_inst_hist_rec_tab.old_last_pa_task_id(i)	   :=  p_inst_hist_tbl(i).old_last_pa_task_id;
1857       p_inst_hist_rec_tab.new_last_pa_task_id(i)	   :=  p_inst_hist_tbl(i).new_last_pa_task_id;
1858       p_inst_hist_rec_tab.old_last_oe_agreement_id(i)	   :=  p_inst_hist_tbl(i).old_last_oe_agreement_id;
1859       p_inst_hist_rec_tab.new_last_oe_agreement_id(i)	   :=  p_inst_hist_tbl(i).new_last_oe_agreement_id;
1860       p_inst_hist_rec_tab.old_install_date(i)	   :=  p_inst_hist_tbl(i).old_install_date;
1861       p_inst_hist_rec_tab.new_install_date(i)	   :=  p_inst_hist_tbl(i).new_install_date;
1862       p_inst_hist_rec_tab.old_manually_created_flag(i)   :=  p_inst_hist_tbl(i).old_manually_created_flag;
1863       p_inst_hist_rec_tab.new_manually_created_flag(i)   :=  p_inst_hist_tbl(i).new_manually_created_flag;
1864       p_inst_hist_rec_tab.old_return_by_date(i)	   :=  p_inst_hist_tbl(i).old_return_by_date;
1865       p_inst_hist_rec_tab.new_return_by_date(i)	   :=  p_inst_hist_tbl(i).new_return_by_date;
1866       p_inst_hist_rec_tab.old_actual_return_date(i)	   :=  p_inst_hist_tbl(i).old_actual_return_date;
1867       p_inst_hist_rec_tab.new_actual_return_date(i)	   :=  p_inst_hist_tbl(i).new_actual_return_date;
1868       p_inst_hist_rec_tab.old_creation_complete_flag(i)  :=  p_inst_hist_tbl(i).old_creation_complete_flag;
1869       p_inst_hist_rec_tab.new_creation_complete_flag(i)   :=  p_inst_hist_tbl(i).new_creation_complete_flag;
1870       p_inst_hist_rec_tab.old_completeness_flag(i)	   :=  p_inst_hist_tbl(i).old_completeness_flag;
1871       p_inst_hist_rec_tab.new_completeness_flag(i)	   :=  p_inst_hist_tbl(i).new_completeness_flag;
1872       p_inst_hist_rec_tab.old_context(i)	   :=  p_inst_hist_tbl(i).old_context;
1873       p_inst_hist_rec_tab.new_context(i)	   :=  p_inst_hist_tbl(i).new_context;
1874       p_inst_hist_rec_tab.old_attribute1(i)	   :=  p_inst_hist_tbl(i).old_attribute1;
1875       p_inst_hist_rec_tab.new_attribute1(i)	   :=  p_inst_hist_tbl(i).new_attribute1;
1876       p_inst_hist_rec_tab.old_attribute2(i)	   :=  p_inst_hist_tbl(i).old_attribute2;
1877       p_inst_hist_rec_tab.new_attribute2(i)	   :=  p_inst_hist_tbl(i).new_attribute2;
1878       p_inst_hist_rec_tab.old_attribute3(i)	   :=  p_inst_hist_tbl(i).old_attribute3;
1879       p_inst_hist_rec_tab.new_attribute3(i)	   :=  p_inst_hist_tbl(i).new_attribute3;
1880       p_inst_hist_rec_tab.old_attribute4(i)	   :=  p_inst_hist_tbl(i).old_attribute4;
1881       p_inst_hist_rec_tab.new_attribute4(i)	   :=  p_inst_hist_tbl(i).new_attribute4;
1882       p_inst_hist_rec_tab.old_attribute5(i)	   :=  p_inst_hist_tbl(i).old_attribute5;
1883       p_inst_hist_rec_tab.new_attribute5(i)	   :=  p_inst_hist_tbl(i).new_attribute5;
1884       p_inst_hist_rec_tab.old_attribute6(i)	   :=  p_inst_hist_tbl(i).old_attribute6;
1885       p_inst_hist_rec_tab.new_attribute6(i)	   :=  p_inst_hist_tbl(i).new_attribute6;
1886       p_inst_hist_rec_tab.old_attribute7(i)	   :=  p_inst_hist_tbl(i).old_attribute7;
1887       p_inst_hist_rec_tab.new_attribute7(i)	   :=  p_inst_hist_tbl(i).new_attribute7;
1888       p_inst_hist_rec_tab.old_attribute8(i)	   :=  p_inst_hist_tbl(i).old_attribute8;
1889       p_inst_hist_rec_tab.new_attribute8(i)	   :=  p_inst_hist_tbl(i).new_attribute8;
1890       p_inst_hist_rec_tab.old_attribute9(i)	   :=  p_inst_hist_tbl(i).old_attribute9;
1891       p_inst_hist_rec_tab.new_attribute9(i)	   :=  p_inst_hist_tbl(i).new_attribute9;
1892       p_inst_hist_rec_tab.old_attribute10(i)	   :=  p_inst_hist_tbl(i).old_attribute10;
1893       p_inst_hist_rec_tab.new_attribute10(i)	   :=  p_inst_hist_tbl(i).new_attribute10;
1894       p_inst_hist_rec_tab.old_attribute11(i)	   :=  p_inst_hist_tbl(i).old_attribute11;
1895       p_inst_hist_rec_tab.new_attribute11(i)	   :=  p_inst_hist_tbl(i).new_attribute11;
1896       p_inst_hist_rec_tab.old_attribute12(i)	   :=  p_inst_hist_tbl(i).old_attribute12;
1897       p_inst_hist_rec_tab.new_attribute12(i)	   :=  p_inst_hist_tbl(i).new_attribute12;
1898       p_inst_hist_rec_tab.old_attribute13(i)	   :=  p_inst_hist_tbl(i).old_attribute13;
1899       p_inst_hist_rec_tab.new_attribute13(i)	   :=  p_inst_hist_tbl(i).new_attribute13;
1900       p_inst_hist_rec_tab.old_attribute14(i)	   :=  p_inst_hist_tbl(i).old_attribute14;
1901       p_inst_hist_rec_tab.new_attribute14(i)	   :=  p_inst_hist_tbl(i).new_attribute14;
1902       p_inst_hist_rec_tab.old_attribute15(i)	   :=  p_inst_hist_tbl(i).old_attribute15;
1903       p_inst_hist_rec_tab.new_attribute15(i)	   :=  p_inst_hist_tbl(i).new_attribute15;
1904       p_inst_hist_rec_tab.old_last_txn_line_detail_id(i)   :=  p_inst_hist_tbl(i).old_last_txn_line_detail_id;
1905       p_inst_hist_rec_tab.new_last_txn_line_detail_id(i)   :=  p_inst_hist_tbl(i).new_last_txn_line_detail_id;
1906       p_inst_hist_rec_tab.old_install_location_type_code(i) :=  p_inst_hist_tbl(i).old_install_location_type_code;
1907       p_inst_hist_rec_tab.new_install_location_type_code(i) :=  p_inst_hist_tbl(i).new_install_location_type_code;
1908       p_inst_hist_rec_tab.old_install_location_id(i)	   :=  p_inst_hist_tbl(i).old_install_location_id;
1909       p_inst_hist_rec_tab.new_install_location_id(i)	   :=  p_inst_hist_tbl(i).new_install_location_id;
1910       p_inst_hist_rec_tab.old_instance_usage_code(i)	   :=  p_inst_hist_tbl(i).old_instance_usage_code;
1911       p_inst_hist_rec_tab.new_instance_usage_code(i)	   :=  p_inst_hist_tbl(i).new_instance_usage_code;
1912       p_inst_hist_rec_tab.old_current_loc_address1(i)	   :=  p_inst_hist_tbl(i).old_current_loc_address1;
1913       p_inst_hist_rec_tab.new_current_loc_address1(i)	   :=  p_inst_hist_tbl(i).new_current_loc_address1;
1914       p_inst_hist_rec_tab.old_current_loc_address2(i)	   :=  p_inst_hist_tbl(i).old_current_loc_address2;
1915       p_inst_hist_rec_tab.new_current_loc_address2(i)	   :=  p_inst_hist_tbl(i).new_current_loc_address2;
1916       p_inst_hist_rec_tab.old_current_loc_address3(i)	   :=  p_inst_hist_tbl(i).old_current_loc_address3;
1917       p_inst_hist_rec_tab.new_current_loc_address3(i)	   :=  p_inst_hist_tbl(i).new_current_loc_address3;
1918       p_inst_hist_rec_tab.old_current_loc_address4(i)	   :=  p_inst_hist_tbl(i).old_current_loc_address4;
1919       p_inst_hist_rec_tab.new_current_loc_address4(i)	   :=  p_inst_hist_tbl(i).new_current_loc_address4;
1920       p_inst_hist_rec_tab.old_current_loc_city(i)	   :=  p_inst_hist_tbl(i).old_current_loc_city;
1921       p_inst_hist_rec_tab.new_current_loc_city(i)	   :=  p_inst_hist_tbl(i).new_current_loc_city;
1922       p_inst_hist_rec_tab.old_current_loc_postal_code(i)  :=  p_inst_hist_tbl(i).old_current_loc_postal_code;
1923       p_inst_hist_rec_tab.new_current_loc_postal_code(i)  :=  p_inst_hist_tbl(i).new_current_loc_postal_code;
1924       p_inst_hist_rec_tab.old_current_loc_country(i)	   :=  p_inst_hist_tbl(i).old_current_loc_country;
1925       p_inst_hist_rec_tab.new_current_loc_country(i)	   :=  p_inst_hist_tbl(i).new_current_loc_country;
1926       p_inst_hist_rec_tab.old_sales_order_number(i)	   :=  p_inst_hist_tbl(i).old_sales_order_number;
1927       p_inst_hist_rec_tab.new_sales_order_number(i)	   :=  p_inst_hist_tbl(i).new_sales_order_number;
1928       p_inst_hist_rec_tab.old_sales_order_line_number(i)  :=  p_inst_hist_tbl(i).old_sales_order_line_number;
1929       p_inst_hist_rec_tab.new_sales_order_line_number(i)  :=  p_inst_hist_tbl(i).new_sales_order_line_number;
1930       p_inst_hist_rec_tab.old_sales_order_date(i)	   :=  p_inst_hist_tbl(i).old_sales_order_date;
1931       p_inst_hist_rec_tab.new_sales_order_date(i)	   :=  p_inst_hist_tbl(i).new_sales_order_date;
1932       p_inst_hist_rec_tab.old_purchase_order_number(i)   :=  p_inst_hist_tbl(i).old_purchase_order_number;
1933       p_inst_hist_rec_tab.new_purchase_order_number(i)   :=  p_inst_hist_tbl(i).new_purchase_order_number;
1934       p_inst_hist_rec_tab.old_instance_usage_name(i)	   :=  p_inst_hist_tbl(i).old_instance_usage_name;
1935       p_inst_hist_rec_tab.new_instance_usage_name(i)	   :=  p_inst_hist_tbl(i).new_instance_usage_name;
1936       p_inst_hist_rec_tab.old_current_loc_state(i)	   :=  p_inst_hist_tbl(i).old_current_loc_state;
1937       p_inst_hist_rec_tab.new_current_loc_state(i)	   :=  p_inst_hist_tbl(i).new_current_loc_state;
1938       p_inst_hist_rec_tab.old_install_loc_address1(i)	   :=  p_inst_hist_tbl(i).old_install_loc_address1;
1939       p_inst_hist_rec_tab.new_install_loc_address1(i)	   :=  p_inst_hist_tbl(i).new_install_loc_address1;
1940       p_inst_hist_rec_tab.old_install_loc_address2(i)	   :=  p_inst_hist_tbl(i).old_install_loc_address2;
1941       p_inst_hist_rec_tab.new_install_loc_address2(i)	   :=  p_inst_hist_tbl(i).new_install_loc_address2;
1942       p_inst_hist_rec_tab.old_install_loc_address3(i)	   :=  p_inst_hist_tbl(i).old_install_loc_address3;
1943       p_inst_hist_rec_tab.new_install_loc_address3(i)	   :=  p_inst_hist_tbl(i).new_install_loc_address3;
1944       p_inst_hist_rec_tab.old_install_loc_address4(i)	   :=  p_inst_hist_tbl(i).old_install_loc_address4;
1945       p_inst_hist_rec_tab.new_install_loc_address4(i)	   :=  p_inst_hist_tbl(i).new_install_loc_address4;
1946       p_inst_hist_rec_tab.old_install_loc_city(i)	   :=  p_inst_hist_tbl(i).old_install_loc_city;
1947       p_inst_hist_rec_tab.new_install_loc_city(i)	   :=  p_inst_hist_tbl(i).new_install_loc_city;
1948       p_inst_hist_rec_tab.old_install_loc_state(i)	   :=  p_inst_hist_tbl(i).old_install_loc_state;
1949       p_inst_hist_rec_tab.new_install_loc_state(i)	   :=  p_inst_hist_tbl(i).new_install_loc_state;
1950       p_inst_hist_rec_tab.old_install_loc_postal_code(i) :=  p_inst_hist_tbl(i).old_install_loc_postal_code;
1951       p_inst_hist_rec_tab.new_install_loc_postal_code(i) :=  p_inst_hist_tbl(i).new_install_loc_postal_code;
1952       p_inst_hist_rec_tab.old_install_loc_country(i)	   :=  p_inst_hist_tbl(i).old_install_loc_country;
1953       p_inst_hist_rec_tab.new_install_loc_country(i)	   :=  p_inst_hist_tbl(i).new_install_loc_country;
1954       p_inst_hist_rec_tab.old_config_inst_rev_num(i)	   :=  p_inst_hist_tbl(i).old_config_inst_rev_num;
1955       p_inst_hist_rec_tab.new_config_inst_rev_num(i)	   :=  p_inst_hist_tbl(i).new_config_inst_rev_num;
1956       p_inst_hist_rec_tab.old_config_valid_status(i)	   :=  p_inst_hist_tbl(i).old_config_valid_status;
1957       p_inst_hist_rec_tab.new_config_valid_status(i)	   :=  p_inst_hist_tbl(i).new_config_valid_status;
1958       p_inst_hist_rec_tab.old_instance_description(i)	   :=  p_inst_hist_tbl(i).old_instance_description;
1959       p_inst_hist_rec_tab.new_instance_description(i)	   :=  p_inst_hist_tbl(i).new_instance_description;
1960       p_inst_hist_rec_tab.instance_history_id(i)	   :=  p_inst_hist_tbl(i).instance_history_id;
1961       p_inst_hist_rec_tab.transaction_id(i)	           :=  p_inst_hist_tbl(i).transaction_id;
1962       p_inst_hist_rec_tab.old_last_vld_organization_id(i)  :=  p_inst_hist_tbl(i).old_last_vld_organization_id;
1963       p_inst_hist_rec_tab.new_last_vld_organization_id(i)  :=  p_inst_hist_tbl(i).new_last_vld_organization_id;
1964 
1965       p_inst_hist_rec_tab.old_network_asset_flag(i)       := p_inst_hist_tbl(i).old_network_asset_flag;
1966       p_inst_hist_rec_tab.new_network_asset_flag(i)       := p_inst_hist_tbl(i).new_network_asset_flag;
1967       p_inst_hist_rec_tab.old_maintainable_flag(i)        := p_inst_hist_tbl(i).old_maintainable_flag;
1968       p_inst_hist_rec_tab.new_maintainable_flag(i)        := p_inst_hist_tbl(i).new_maintainable_flag;
1969       p_inst_hist_rec_tab.old_asset_criticality_code(i)   := p_inst_hist_tbl(i).old_asset_criticality_code;
1970       p_inst_hist_rec_tab.new_asset_criticality_code(i)   := p_inst_hist_tbl(i).new_asset_criticality_code;
1971       p_inst_hist_rec_tab.old_category_id(i)              := p_inst_hist_tbl(i).old_category_id ;
1972       p_inst_hist_rec_tab.new_category_id(i)              := p_inst_hist_tbl(i).new_category_id ;
1973       p_inst_hist_rec_tab.old_equipment_gen_object_id(i)  := p_inst_hist_tbl(i).old_equipment_gen_object_id ;
1974       p_inst_hist_rec_tab.new_equipment_gen_object_id(i)  := p_inst_hist_tbl(i).new_equipment_gen_object_id ;
1975       p_inst_hist_rec_tab.old_instantiation_flag(i)       := p_inst_hist_tbl(i).old_instantiation_flag;
1976       p_inst_hist_rec_tab.new_instantiation_flag(i)       := p_inst_hist_tbl(i).new_instantiation_flag;
1977       p_inst_hist_rec_tab.old_operational_log_flag(i)     := p_inst_hist_tbl(i).old_operational_log_flag ;
1978       p_inst_hist_rec_tab.new_operational_log_flag(i)     := p_inst_hist_tbl(i).new_operational_log_flag ;
1979       p_inst_hist_rec_tab.old_supplier_warranty_exp_date(i) := p_inst_hist_tbl(i).old_supplier_warranty_exp_date ;
1980       p_inst_hist_rec_tab.new_supplier_warranty_exp_date(i) := p_inst_hist_tbl(i).new_supplier_warranty_exp_date ;
1981       p_inst_hist_rec_tab.old_attribute16(i) := p_inst_hist_tbl(i).old_attribute16           ;
1982       p_inst_hist_rec_tab.new_attribute16(i) := p_inst_hist_tbl(i).new_attribute16           ;
1983       p_inst_hist_rec_tab.old_attribute17(i) := p_inst_hist_tbl(i).old_attribute17           ;
1984       p_inst_hist_rec_tab.new_attribute17(i) := p_inst_hist_tbl(i).new_attribute17           ;
1985       p_inst_hist_rec_tab.old_attribute18(i) := p_inst_hist_tbl(i).old_attribute18           ;
1986       p_inst_hist_rec_tab.new_attribute18(i) := p_inst_hist_tbl(i).new_attribute18           ;
1987       p_inst_hist_rec_tab.old_attribute19(i) := p_inst_hist_tbl(i).old_attribute19           ;
1988       p_inst_hist_rec_tab.new_attribute19(i) := p_inst_hist_tbl(i).new_attribute19           ;
1989       p_inst_hist_rec_tab.old_attribute20(i) := p_inst_hist_tbl(i).old_attribute20           ;
1990       p_inst_hist_rec_tab.new_attribute20(i) := p_inst_hist_tbl(i).new_attribute20           ;
1991       p_inst_hist_rec_tab.old_attribute21(i) := p_inst_hist_tbl(i).old_attribute21           ;
1992       p_inst_hist_rec_tab.new_attribute21(i) := p_inst_hist_tbl(i).new_attribute21           ;
1993       p_inst_hist_rec_tab.old_attribute22(i) := p_inst_hist_tbl(i).old_attribute22           ;
1994       p_inst_hist_rec_tab.new_attribute22(i) := p_inst_hist_tbl(i).new_attribute22           ;
1995       p_inst_hist_rec_tab.old_attribute23(i) := p_inst_hist_tbl(i).old_attribute23           ;
1996       p_inst_hist_rec_tab.new_attribute23(i) := p_inst_hist_tbl(i).new_attribute23           ;
1997       p_inst_hist_rec_tab.old_attribute24(i) := p_inst_hist_tbl(i).old_attribute24           ;
1998       p_inst_hist_rec_tab.new_attribute24(i) := p_inst_hist_tbl(i).new_attribute24           ;
1999       p_inst_hist_rec_tab.old_attribute25(i) := p_inst_hist_tbl(i).old_attribute25           ;
2000       p_inst_hist_rec_tab.new_attribute25(i) := p_inst_hist_tbl(i).new_attribute25           ;
2001       p_inst_hist_rec_tab.old_attribute26(i) := p_inst_hist_tbl(i).old_attribute26           ;
2002       p_inst_hist_rec_tab.new_attribute26(i) := p_inst_hist_tbl(i).new_attribute26           ;
2003       p_inst_hist_rec_tab.old_attribute27(i) := p_inst_hist_tbl(i).old_attribute27           ;
2004       p_inst_hist_rec_tab.new_attribute27(i) := p_inst_hist_tbl(i).new_attribute27           ;
2005       p_inst_hist_rec_tab.old_attribute28(i) := p_inst_hist_tbl(i).old_attribute28           ;
2006       p_inst_hist_rec_tab.new_attribute28(i) := p_inst_hist_tbl(i).new_attribute28           ;
2007       p_inst_hist_rec_tab.old_attribute29(i) := p_inst_hist_tbl(i).old_attribute29           ;
2008       p_inst_hist_rec_tab.new_attribute29(i) := p_inst_hist_tbl(i).new_attribute29           ;
2009       p_inst_hist_rec_tab.old_attribute30(i) := p_inst_hist_tbl(i).old_attribute30           ;
2010       p_inst_hist_rec_tab.new_attribute30(i) := p_inst_hist_tbl(i).new_attribute30           ;
2011 
2012       p_inst_hist_rec_tab.old_payables_currency_code(i)   := p_inst_hist_tbl(i).old_payables_currency_code;
2013       p_inst_hist_rec_tab.new_payables_currency_code(i)   := p_inst_hist_tbl(i).new_payables_currency_code;
2014       p_inst_hist_rec_tab.old_purchase_unit_price(i)      := p_inst_hist_tbl(i).old_purchase_unit_price;
2015       p_inst_hist_rec_tab.new_purchase_unit_price(i)      := p_inst_hist_tbl(i).new_purchase_unit_price;
2016       p_inst_hist_rec_tab.old_purchase_currency_code(i)   := p_inst_hist_tbl(i).old_purchase_currency_code;
2017       p_inst_hist_rec_tab.new_purchase_currency_code(i)   := p_inst_hist_tbl(i).new_purchase_currency_code;
2018       p_inst_hist_rec_tab.old_payables_unit_price(i)      := p_inst_hist_tbl(i).old_payables_unit_price;
2019       p_inst_hist_rec_tab.new_payables_unit_price(i)      := p_inst_hist_tbl(i).new_payables_unit_price;
2020       p_inst_hist_rec_tab.old_sales_unit_price(i)         := p_inst_hist_tbl(i).old_sales_unit_price;
2021       p_inst_hist_rec_tab.new_sales_unit_price(i)         := p_inst_hist_tbl(i).new_sales_unit_price;
2022       p_inst_hist_rec_tab.old_sales_currency_code(i)      := p_inst_hist_tbl(i).old_sales_currency_code;
2023       p_inst_hist_rec_tab.new_sales_currency_code(i)      := p_inst_hist_tbl(i).new_sales_currency_code;
2024       p_inst_hist_rec_tab.old_operational_status_code(i)  := p_inst_hist_tbl(i).old_operational_status_code;
2025       p_inst_hist_rec_tab.new_operational_status_code(i)  := p_inst_hist_tbl(i).new_operational_status_code;
2026 
2027    END LOOP;
2028 END Build_Inst_Hist_Rec_of_Table;
2029 --
2030 PROCEDURE Build_Ver_Label_Rec_of_Table
2031    (
2032      p_version_label_tbl     IN     csi_datastructures_pub.version_label_tbl
2033     ,p_version_label_rec_tab IN OUT NOCOPY  csi_item_instance_grp.version_label_rec_tab
2034    ) IS
2035 BEGIN
2036    FOR i in p_version_label_tbl.FIRST .. p_version_label_tbl.LAST LOOP
2037       p_version_label_rec_tab.version_label_id(i)	:= p_version_label_tbl(i).version_label_id;
2038       p_version_label_rec_tab.instance_id(i)	:= p_version_label_tbl(i).instance_id;
2039       p_version_label_rec_tab.version_label(i)	:= p_version_label_tbl(i).version_label;
2040       p_version_label_rec_tab.description(i)	:= p_version_label_tbl(i).description;
2041       p_version_label_rec_tab.date_time_stamp(i)	:= p_version_label_tbl(i).date_time_stamp;
2042       p_version_label_rec_tab.active_start_date(i)	:= p_version_label_tbl(i).active_start_date;
2043       p_version_label_rec_tab.active_end_date(i)	:= p_version_label_tbl(i).active_end_date;
2044       p_version_label_rec_tab.context(i)	:= p_version_label_tbl(i).context;
2045       p_version_label_rec_tab.attribute1(i)	:= p_version_label_tbl(i).attribute1;
2046       p_version_label_rec_tab.attribute2(i)	:= p_version_label_tbl(i).attribute2;
2047       p_version_label_rec_tab.attribute3(i)	:= p_version_label_tbl(i).attribute3;
2048       p_version_label_rec_tab.attribute4(i)	:= p_version_label_tbl(i).attribute4;
2049       p_version_label_rec_tab.attribute5(i)	:= p_version_label_tbl(i).attribute5;
2050       p_version_label_rec_tab.attribute6(i)	:= p_version_label_tbl(i).attribute6;
2051       p_version_label_rec_tab.attribute7(i)	:= p_version_label_tbl(i).attribute7;
2052       p_version_label_rec_tab.attribute8(i)	:= p_version_label_tbl(i).attribute8;
2053       p_version_label_rec_tab.attribute9(i)	:= p_version_label_tbl(i).attribute9;
2054       p_version_label_rec_tab.attribute10(i)	:= p_version_label_tbl(i).attribute10;
2055       p_version_label_rec_tab.attribute11(i)	:= p_version_label_tbl(i).attribute11;
2056       p_version_label_rec_tab.attribute12(i)	:= p_version_label_tbl(i).attribute12;
2057       p_version_label_rec_tab.attribute13(i)	:= p_version_label_tbl(i).attribute13;
2058       p_version_label_rec_tab.attribute14(i)	:= p_version_label_tbl(i).attribute14;
2059       p_version_label_rec_tab.attribute15(i)	:= p_version_label_tbl(i).attribute15;
2060       p_version_label_rec_tab.object_version_number(i)	:= p_version_label_tbl(i).object_version_number;
2061    END LOOP;
2062 END Build_Ver_Label_Rec_of_Table;
2063 --
2064 PROCEDURE Build_Ver_Lbl_Hist_Rec_Table
2065    (
2066      p_ver_label_hist_tbl     IN   csi_datastructures_pub.version_label_history_tbl
2067     ,p_ver_label_hist_rec_tab IN OUT NOCOPY  csi_item_instance_grp.ver_label_history_rec_tab
2068    ) IS
2069 BEGIN
2070    FOR i in p_ver_label_hist_tbl.FIRST .. p_ver_label_hist_tbl.LAST LOOP
2071       p_ver_label_hist_rec_tab.VERSION_LABEL_HISTORY_ID(i):= p_ver_label_hist_tbl(i).VERSION_LABEL_HISTORY_ID;
2072       p_ver_label_hist_rec_tab.VERSION_LABEL_ID(i)	:= p_ver_label_hist_tbl(i).VERSION_LABEL_ID;
2073       p_ver_label_hist_rec_tab.TRANSACTION_ID(i)	:= p_ver_label_hist_tbl(i).TRANSACTION_ID;
2074       p_ver_label_hist_rec_tab.OLD_VERSION_LABEL(i)	:= p_ver_label_hist_tbl(i).OLD_VERSION_LABEL;
2075       p_ver_label_hist_rec_tab.NEW_VERSION_LABEL(i)	:= p_ver_label_hist_tbl(i).NEW_VERSION_LABEL;
2076       p_ver_label_hist_rec_tab.OLD_DESCRIPTION(i)	:= p_ver_label_hist_tbl(i).OLD_DESCRIPTION;
2077       p_ver_label_hist_rec_tab.NEW_DESCRIPTION(i)	:= p_ver_label_hist_tbl(i).NEW_DESCRIPTION;
2078       p_ver_label_hist_rec_tab.OLD_DATE_TIME_STAMP(i)	:= p_ver_label_hist_tbl(i).OLD_DATE_TIME_STAMP;
2079       p_ver_label_hist_rec_tab.NEW_DATE_TIME_STAMP(i)	:= p_ver_label_hist_tbl(i).NEW_DATE_TIME_STAMP;
2080       p_ver_label_hist_rec_tab.OLD_ACTIVE_START_DATE(i)	:= p_ver_label_hist_tbl(i).OLD_ACTIVE_START_DATE;
2081       p_ver_label_hist_rec_tab.NEW_ACTIVE_START_DATE(i)	:= p_ver_label_hist_tbl(i).NEW_ACTIVE_START_DATE;
2082       p_ver_label_hist_rec_tab.OLD_ACTIVE_END_DATE(i)	:= p_ver_label_hist_tbl(i).OLD_ACTIVE_END_DATE;
2083       p_ver_label_hist_rec_tab.NEW_ACTIVE_END_DATE(i)	:= p_ver_label_hist_tbl(i).NEW_ACTIVE_END_DATE;
2084       p_ver_label_hist_rec_tab.OLD_CONTEXT(i)	:= p_ver_label_hist_tbl(i).OLD_CONTEXT;
2085       p_ver_label_hist_rec_tab.NEW_CONTEXT(i)	:= p_ver_label_hist_tbl(i).NEW_CONTEXT;
2086       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE1(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE1;
2087       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE1(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE1;
2088       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE2(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE2;
2089       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE2(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE2;
2090       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE3(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE3;
2091       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE3(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE3;
2092       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE4(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE4;
2093       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE4(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE4;
2094       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE5(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE5;
2095       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE5(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE5;
2096       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE6(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE6;
2097       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE6(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE6;
2098       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE7(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE7;
2099       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE7(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE7;
2100       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE8(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE8;
2101       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE8(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE8;
2102       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE9(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE9;
2103       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE9(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE9;
2104       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE10(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE10;
2105       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE10(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE10;
2106       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE11(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE11;
2107       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE11(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE11;
2108       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE12(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE12;
2109       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE12(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE12;
2110       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE13(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE13;
2111       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE13(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE13;
2112       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE14(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE14;
2113       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE14(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE14;
2114       p_ver_label_hist_rec_tab.OLD_ATTRIBUTE15(i)	:= p_ver_label_hist_tbl(i).OLD_ATTRIBUTE15;
2115       p_ver_label_hist_rec_tab.NEW_ATTRIBUTE15(i)	:= p_ver_label_hist_tbl(i).NEW_ATTRIBUTE15;
2116       p_ver_label_hist_rec_tab.FULL_DUMP_FLAG(i)	:= p_ver_label_hist_tbl(i).FULL_DUMP_FLAG;
2117       p_ver_label_hist_rec_tab.OBJECT_VERSION_NUMBER(i)	:= p_ver_label_hist_tbl(i).OBJECT_VERSION_NUMBER;
2118       p_ver_label_hist_rec_tab.INSTANCE_ID(i)	:= p_ver_label_hist_tbl(i).INSTANCE_ID;
2119    END LOOP;
2120 END Build_Ver_Lbl_Hist_Rec_Table;
2121 --
2122 PROCEDURE Build_Party_Rec_of_Table
2123    ( p_party_tbl          IN   csi_datastructures_pub.party_tbl
2124     ,p_party_rec_tab      IN OUT NOCOPY  csi_item_instance_grp.party_rec_tab
2125    ) IS
2126 BEGIN
2127    FOR i in p_party_tbl.FIRST .. p_party_tbl.LAST LOOP
2128       p_party_rec_tab.instance_party_id(i)	  := p_party_tbl(i).instance_party_id;
2129       p_party_rec_tab.instance_id(i)	  := p_party_tbl(i).instance_id;
2130       p_party_rec_tab.party_source_table(i)	  := p_party_tbl(i).party_source_table;
2131       p_party_rec_tab.party_id(i)	  := p_party_tbl(i).party_id;
2132       p_party_rec_tab.relationship_type_code(i)	  := p_party_tbl(i).relationship_type_code;
2133       p_party_rec_tab.contact_flag(i)	  := p_party_tbl(i).contact_flag;
2134       p_party_rec_tab.contact_ip_id(i)	  := p_party_tbl(i).contact_ip_id;
2135       p_party_rec_tab.active_start_date(i)	  := p_party_tbl(i).active_start_date;
2136       p_party_rec_tab.active_end_date(i)	  := p_party_tbl(i).active_end_date;
2137       p_party_rec_tab.context(i)	  := p_party_tbl(i).context;
2138       p_party_rec_tab.attribute1(i)	  := p_party_tbl(i).attribute1;
2139       p_party_rec_tab.attribute2(i)	  := p_party_tbl(i).attribute2;
2140       p_party_rec_tab.attribute3(i)	  := p_party_tbl(i).attribute3;
2141       p_party_rec_tab.attribute4(i)	  := p_party_tbl(i).attribute4;
2142       p_party_rec_tab.attribute5(i)	  := p_party_tbl(i).attribute5;
2143       p_party_rec_tab.attribute6(i)	  := p_party_tbl(i).attribute6;
2144       p_party_rec_tab.attribute7(i)	  := p_party_tbl(i).attribute7;
2145       p_party_rec_tab.attribute8(i)	  := p_party_tbl(i).attribute8;
2146       p_party_rec_tab.attribute9(i)	  := p_party_tbl(i).attribute9;
2147       p_party_rec_tab.attribute10(i)	  := p_party_tbl(i).attribute10;
2148       p_party_rec_tab.attribute11(i)	  := p_party_tbl(i).attribute11;
2149       p_party_rec_tab.attribute12(i)	  := p_party_tbl(i).attribute12;
2150       p_party_rec_tab.attribute13(i)	  := p_party_tbl(i).attribute13;
2151       p_party_rec_tab.attribute14(i)	  := p_party_tbl(i).attribute14;
2152       p_party_rec_tab.attribute15(i)	  := p_party_tbl(i).attribute15;
2153       p_party_rec_tab.object_version_number(i)	  := p_party_tbl(i).object_version_number;
2154       p_party_rec_tab.primary_flag(i)	  := p_party_tbl(i).primary_flag;
2155       p_party_rec_tab.preferred_flag(i)	  := p_party_tbl(i).preferred_flag;
2156       p_party_rec_tab.parent_tbl_index(i)	  := p_party_tbl(i).parent_tbl_index;
2157       p_party_rec_tab.call_contracts(i)	  := p_party_tbl(i).call_contracts;
2158       p_party_rec_tab.contact_parent_tbl_index(i)	  := p_party_tbl(i).contact_parent_tbl_index;
2159    END LOOP;
2160 END Build_Party_Rec_of_Table;
2161 --
2162 PROCEDURE Build_Party_Hist_Rec_of_Table
2163    ( p_party_hist_tbl        IN      csi_datastructures_pub.party_history_tbl
2164     ,p_party_hist_rec_tab    IN OUT NOCOPY   csi_item_instance_grp.party_history_rec_tab
2165    ) IS
2166 BEGIN
2167    FOR i in p_party_hist_tbl.FIRST .. p_party_hist_tbl.LAST LOOP
2168       p_party_hist_rec_tab.INSTANCE_PARTY_HISTORY_ID(i)	   :=  p_party_hist_tbl(i).INSTANCE_PARTY_HISTORY_ID;
2169       p_party_hist_rec_tab.INSTANCE_PARTY_ID(i)	   :=  p_party_hist_tbl(i).INSTANCE_PARTY_ID;
2170       p_party_hist_rec_tab.TRANSACTION_ID(i)	   :=  p_party_hist_tbl(i).TRANSACTION_ID;
2171       p_party_hist_rec_tab.OLD_PARTY_SOURCE_TABLE(i)	   :=  p_party_hist_tbl(i).OLD_PARTY_SOURCE_TABLE;
2172       p_party_hist_rec_tab.NEW_PARTY_SOURCE_TABLE(i)	   :=  p_party_hist_tbl(i).NEW_PARTY_SOURCE_TABLE;
2173       p_party_hist_rec_tab.OLD_PARTY_ID(i)	   :=  p_party_hist_tbl(i).OLD_PARTY_ID;
2174       p_party_hist_rec_tab.NEW_PARTY_ID(i)	   :=  p_party_hist_tbl(i).NEW_PARTY_ID;
2175       p_party_hist_rec_tab.OLD_RELATIONSHIP_TYPE_CODE(i) :=  p_party_hist_tbl(i).OLD_RELATIONSHIP_TYPE_CODE;
2176       p_party_hist_rec_tab.NEW_RELATIONSHIP_TYPE_CODE(i) :=  p_party_hist_tbl(i).NEW_RELATIONSHIP_TYPE_CODE;
2177       p_party_hist_rec_tab.OLD_CONTACT_FLAG(i)	   :=  p_party_hist_tbl(i).OLD_CONTACT_FLAG;
2178       p_party_hist_rec_tab.NEW_CONTACT_FLAG(i)	   :=  p_party_hist_tbl(i).NEW_CONTACT_FLAG;
2179       p_party_hist_rec_tab.OLD_CONTACT_IP_ID(i)	   :=  p_party_hist_tbl(i).OLD_CONTACT_IP_ID;
2180       p_party_hist_rec_tab.NEW_CONTACT_IP_ID(i)	   :=  p_party_hist_tbl(i).NEW_CONTACT_IP_ID;
2181       p_party_hist_rec_tab.OLD_ACTIVE_START_DATE(i)	   :=  p_party_hist_tbl(i).OLD_ACTIVE_START_DATE;
2182       p_party_hist_rec_tab.NEW_ACTIVE_START_DATE(i)	   :=  p_party_hist_tbl(i).NEW_ACTIVE_START_DATE;
2183       p_party_hist_rec_tab.OLD_ACTIVE_END_DATE(i)	   :=  p_party_hist_tbl(i).OLD_ACTIVE_END_DATE;
2184       p_party_hist_rec_tab.NEW_ACTIVE_END_DATE(i)	   :=  p_party_hist_tbl(i).NEW_ACTIVE_END_DATE;
2185       p_party_hist_rec_tab.OLD_CONTEXT(i)	   :=  p_party_hist_tbl(i).OLD_CONTEXT;
2186       p_party_hist_rec_tab.NEW_CONTEXT(i)	   :=  p_party_hist_tbl(i).NEW_CONTEXT;
2187       p_party_hist_rec_tab.OLD_ATTRIBUTE1(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE1;
2188       p_party_hist_rec_tab.NEW_ATTRIBUTE1(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE1;
2189       p_party_hist_rec_tab.OLD_ATTRIBUTE2(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE2;
2190       p_party_hist_rec_tab.NEW_ATTRIBUTE2(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE2;
2191       p_party_hist_rec_tab.OLD_ATTRIBUTE3(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE3;
2192       p_party_hist_rec_tab.NEW_ATTRIBUTE3(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE3;
2193       p_party_hist_rec_tab.OLD_ATTRIBUTE4(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE4;
2194       p_party_hist_rec_tab.NEW_ATTRIBUTE4(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE4;
2195       p_party_hist_rec_tab.OLD_ATTRIBUTE5(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE5;
2196       p_party_hist_rec_tab.NEW_ATTRIBUTE5(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE5;
2197       p_party_hist_rec_tab.OLD_ATTRIBUTE6(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE6;
2198       p_party_hist_rec_tab.NEW_ATTRIBUTE6(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE6;
2199       p_party_hist_rec_tab.OLD_ATTRIBUTE7(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE7;
2200       p_party_hist_rec_tab.NEW_ATTRIBUTE7(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE7;
2201       p_party_hist_rec_tab.OLD_ATTRIBUTE8(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE8;
2202       p_party_hist_rec_tab.NEW_ATTRIBUTE8(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE8;
2203       p_party_hist_rec_tab.OLD_ATTRIBUTE9(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE9;
2204       p_party_hist_rec_tab.NEW_ATTRIBUTE9(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE9;
2205       p_party_hist_rec_tab.OLD_ATTRIBUTE10(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE10;
2206       p_party_hist_rec_tab.NEW_ATTRIBUTE10(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE10;
2207       p_party_hist_rec_tab.OLD_ATTRIBUTE11(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE11;
2208       p_party_hist_rec_tab.NEW_ATTRIBUTE11(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE11;
2209       p_party_hist_rec_tab.OLD_ATTRIBUTE12(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE12;
2210       p_party_hist_rec_tab.NEW_ATTRIBUTE12(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE12;
2211       p_party_hist_rec_tab.OLD_ATTRIBUTE13(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE13;
2212       p_party_hist_rec_tab.NEW_ATTRIBUTE13(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE13;
2213       p_party_hist_rec_tab.OLD_ATTRIBUTE14(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE14;
2214       p_party_hist_rec_tab.NEW_ATTRIBUTE14(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE14;
2215       p_party_hist_rec_tab.OLD_ATTRIBUTE15(i)	   :=  p_party_hist_tbl(i).OLD_ATTRIBUTE15;
2216       p_party_hist_rec_tab.NEW_ATTRIBUTE15(i)	   :=  p_party_hist_tbl(i).NEW_ATTRIBUTE15;
2217       p_party_hist_rec_tab.FULL_DUMP_FLAG(i)	   :=  p_party_hist_tbl(i).FULL_DUMP_FLAG;
2218       p_party_hist_rec_tab.OBJECT_VERSION_NUMBER(i)	   :=  p_party_hist_tbl(i).OBJECT_VERSION_NUMBER;
2219       p_party_hist_rec_tab.OLD_PREFERRED_FLAG(i)	   :=  p_party_hist_tbl(i).OLD_PREFERRED_FLAG;
2220       p_party_hist_rec_tab.NEW_PREFERRED_FLAG(i)	   :=  p_party_hist_tbl(i).NEW_PREFERRED_FLAG;
2221       p_party_hist_rec_tab.OLD_PRIMARY_FLAG(i)	   :=  p_party_hist_tbl(i).OLD_PRIMARY_FLAG;
2222       p_party_hist_rec_tab.NEW_PRIMARY_FLAG(i)	   :=  p_party_hist_tbl(i).NEW_PRIMARY_FLAG;
2223       p_party_hist_rec_tab.old_party_number(i)	   :=  p_party_hist_tbl(i).old_party_number;
2224       p_party_hist_rec_tab.old_party_name(i)	   :=  p_party_hist_tbl(i).old_party_name;
2225       p_party_hist_rec_tab.old_party_type(i)	   :=  p_party_hist_tbl(i).old_party_type;
2226       p_party_hist_rec_tab.old_contact_party_number(i)	   :=  p_party_hist_tbl(i).old_contact_party_number;
2227       p_party_hist_rec_tab.old_contact_party_name(i)	   :=  p_party_hist_tbl(i).old_contact_party_name;
2228       p_party_hist_rec_tab.old_contact_party_type(i)	   :=  p_party_hist_tbl(i).old_contact_party_type;
2229       p_party_hist_rec_tab.old_contact_address1(i)	   :=  p_party_hist_tbl(i).old_contact_address1;
2230       p_party_hist_rec_tab.old_contact_address2(i)	   :=  p_party_hist_tbl(i).old_contact_address2;
2231       p_party_hist_rec_tab.old_contact_address3(i)	   :=  p_party_hist_tbl(i).old_contact_address3;
2232       p_party_hist_rec_tab.old_contact_address4(i)	   :=  p_party_hist_tbl(i).old_contact_address4;
2233       p_party_hist_rec_tab.old_contact_city(i)	   :=  p_party_hist_tbl(i).old_contact_city;
2234       p_party_hist_rec_tab.old_contact_state(i)	   :=  p_party_hist_tbl(i).old_contact_state;
2235       p_party_hist_rec_tab.old_contact_postal_code(i)	   :=  p_party_hist_tbl(i).old_contact_postal_code;
2236       p_party_hist_rec_tab.old_contact_country(i)	   :=  p_party_hist_tbl(i).old_contact_country;
2237       p_party_hist_rec_tab.old_contact_work_phone_num(i)  :=  p_party_hist_tbl(i).old_contact_work_phone_num;
2238       p_party_hist_rec_tab.old_contact_email_address(i)	   :=  p_party_hist_tbl(i).old_contact_email_address;
2239       p_party_hist_rec_tab.new_party_number(i)	   :=  p_party_hist_tbl(i).new_party_number;
2240       p_party_hist_rec_tab.new_party_name(i)	   :=  p_party_hist_tbl(i).new_party_name;
2241       p_party_hist_rec_tab.new_party_type(i)	   :=  p_party_hist_tbl(i).new_party_type;
2242       p_party_hist_rec_tab.new_contact_party_number(i)	   :=  p_party_hist_tbl(i).new_contact_party_number;
2243       p_party_hist_rec_tab.new_contact_party_name(i)	   :=  p_party_hist_tbl(i).new_contact_party_name;
2244       p_party_hist_rec_tab.new_contact_party_type(i)	   :=  p_party_hist_tbl(i).new_contact_party_type;
2245       p_party_hist_rec_tab.new_contact_address1(i)	   :=  p_party_hist_tbl(i).new_contact_address1;
2246       p_party_hist_rec_tab.new_contact_address2(i)	   :=  p_party_hist_tbl(i).new_contact_address2;
2247       p_party_hist_rec_tab.new_contact_address3(i)	   :=  p_party_hist_tbl(i).new_contact_address3;
2248       p_party_hist_rec_tab.new_contact_address4(i)	   :=  p_party_hist_tbl(i).new_contact_address4;
2249       p_party_hist_rec_tab.new_contact_city(i)	   :=  p_party_hist_tbl(i).new_contact_city;
2250       p_party_hist_rec_tab.new_contact_state(i)	   :=  p_party_hist_tbl(i).new_contact_state;
2251       p_party_hist_rec_tab.new_contact_postal_code(i)	   :=  p_party_hist_tbl(i).new_contact_postal_code;
2252       p_party_hist_rec_tab.new_contact_country(i)	   :=  p_party_hist_tbl(i).new_contact_country;
2253       p_party_hist_rec_tab.new_contact_work_phone_num(i)  :=  p_party_hist_tbl(i).new_contact_work_phone_num;
2254       p_party_hist_rec_tab.new_contact_email_address(i)	   :=  p_party_hist_tbl(i).new_contact_email_address;
2255       p_party_hist_rec_tab.INSTANCE_ID(i)	   :=  p_party_hist_tbl(i).INSTANCE_ID;
2256    END LOOP;
2257 END Build_Party_Hist_Rec_of_Table;
2258 --
2259 PROCEDURE Build_Acct_Rec_of_Table
2260    (
2261      p_account_tbl        IN     csi_datastructures_pub.party_account_tbl
2262     ,p_account_rec_tab    IN OUT NOCOPY  csi_item_instance_grp.account_rec_tab
2263    ) IS
2264 BEGIN
2265    FOR i in p_account_tbl.FIRST .. p_account_tbl.LAST LOOP
2266       p_account_rec_tab.ip_account_id(i)	 := p_account_tbl(i).ip_account_id;
2267       p_account_rec_tab.parent_tbl_index(i)	 := p_account_tbl(i).parent_tbl_index;
2268       p_account_rec_tab.instance_party_id(i)	 := p_account_tbl(i).instance_party_id;
2269       p_account_rec_tab.party_account_id(i)	 := p_account_tbl(i).party_account_id;
2270       p_account_rec_tab.relationship_type_code(i)	 := p_account_tbl(i).relationship_type_code;
2271       p_account_rec_tab.bill_to_address(i)	 := p_account_tbl(i).bill_to_address;
2272       p_account_rec_tab.ship_to_address(i)	 := p_account_tbl(i).ship_to_address;
2273       p_account_rec_tab.active_start_date(i)	 := p_account_tbl(i).active_start_date;
2274       p_account_rec_tab.active_end_date(i)	 := p_account_tbl(i).active_end_date;
2275       p_account_rec_tab.context(i)	 := p_account_tbl(i).context;
2276       p_account_rec_tab.attribute1(i)	 := p_account_tbl(i).attribute1;
2277       p_account_rec_tab.attribute2(i)	 := p_account_tbl(i).attribute2;
2278       p_account_rec_tab.attribute3(i)	 := p_account_tbl(i).attribute3;
2279       p_account_rec_tab.attribute4(i)	 := p_account_tbl(i).attribute4;
2280       p_account_rec_tab.attribute5(i)	 := p_account_tbl(i).attribute5;
2281       p_account_rec_tab.attribute6(i)	 := p_account_tbl(i).attribute6;
2282       p_account_rec_tab.attribute7(i)	 := p_account_tbl(i).attribute7;
2283       p_account_rec_tab.attribute8(i)	 := p_account_tbl(i).attribute8;
2284       p_account_rec_tab.attribute9(i)	 := p_account_tbl(i).attribute9;
2285       p_account_rec_tab.attribute10(i)	 := p_account_tbl(i).attribute10;
2286       p_account_rec_tab.attribute11(i)	 := p_account_tbl(i).attribute11;
2287       p_account_rec_tab.attribute12(i)	 := p_account_tbl(i).attribute12;
2288       p_account_rec_tab.attribute13(i)	 := p_account_tbl(i).attribute13;
2289       p_account_rec_tab.attribute14(i)	 := p_account_tbl(i).attribute14;
2290       p_account_rec_tab.attribute15(i)	 := p_account_tbl(i).attribute15;
2291       p_account_rec_tab.object_version_number(i)	 := p_account_tbl(i).object_version_number;
2292       p_account_rec_tab.call_contracts(i)	 := p_account_tbl(i).call_contracts;
2293       p_account_rec_tab.vld_organization_id(i)	 := p_account_tbl(i).vld_organization_id;
2294       p_account_rec_tab.expire_flag(i)	 := p_account_tbl(i).expire_flag;
2295       p_account_rec_tab.grp_call_contracts(i)	 := p_account_tbl(i).grp_call_contracts;
2296    END LOOP;
2297 END Build_Acct_Rec_of_Table;
2298 --
2299 PROCEDURE Build_Acct_Hist_Rec_of_Table
2300    (
2301      p_acct_hist_tbl      IN     csi_datastructures_pub.account_history_tbl
2302     ,p_acct_hist_rec_tab  IN OUT NOCOPY  csi_item_instance_grp.account_history_rec_tab
2303    ) IS
2304 BEGIN
2305    FOR i in p_acct_hist_tbl.FIRST .. p_acct_hist_tbl.LAST LOOP
2306       p_acct_hist_rec_tab.IP_ACCOUNT_HISTORY_ID(i)	 := p_acct_hist_tbl(i).IP_ACCOUNT_HISTORY_ID;
2307       p_acct_hist_rec_tab.IP_ACCOUNT_ID(i)	 := p_acct_hist_tbl(i).IP_ACCOUNT_ID;
2308       p_acct_hist_rec_tab.TRANSACTION_ID(i)	 := p_acct_hist_tbl(i).TRANSACTION_ID;
2309       p_acct_hist_rec_tab.OLD_PARTY_ACCOUNT_ID(i)	 := p_acct_hist_tbl(i).OLD_PARTY_ACCOUNT_ID;
2310       p_acct_hist_rec_tab.NEW_PARTY_ACCOUNT_ID(i)	 := p_acct_hist_tbl(i).NEW_PARTY_ACCOUNT_ID;
2311       p_acct_hist_rec_tab.OLD_RELATIONSHIP_TYPE_CODE(i)	 := p_acct_hist_tbl(i).OLD_RELATIONSHIP_TYPE_CODE;
2312       p_acct_hist_rec_tab.NEW_RELATIONSHIP_TYPE_CODE(i)	 := p_acct_hist_tbl(i).NEW_RELATIONSHIP_TYPE_CODE;
2313       p_acct_hist_rec_tab.OLD_ACTIVE_START_DATE(i)	 := p_acct_hist_tbl(i).OLD_ACTIVE_START_DATE;
2314       p_acct_hist_rec_tab.NEW_ACTIVE_START_DATE(i)	 := p_acct_hist_tbl(i).NEW_ACTIVE_START_DATE;
2315       p_acct_hist_rec_tab.OLD_ACTIVE_END_DATE(i)	 := p_acct_hist_tbl(i).OLD_ACTIVE_END_DATE;
2316       p_acct_hist_rec_tab.NEW_ACTIVE_END_DATE(i)	 := p_acct_hist_tbl(i).NEW_ACTIVE_END_DATE;
2317       p_acct_hist_rec_tab.OLD_CONTEXT(i)	 := p_acct_hist_tbl(i).OLD_CONTEXT;
2318       p_acct_hist_rec_tab.NEW_CONTEXT(i)	 := p_acct_hist_tbl(i).NEW_CONTEXT;
2319       p_acct_hist_rec_tab.OLD_ATTRIBUTE1(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE1;
2320       p_acct_hist_rec_tab.NEW_ATTRIBUTE1(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE1;
2321       p_acct_hist_rec_tab.OLD_ATTRIBUTE2(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE2;
2322       p_acct_hist_rec_tab.NEW_ATTRIBUTE2(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE2;
2323       p_acct_hist_rec_tab.OLD_ATTRIBUTE3(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE3;
2324       p_acct_hist_rec_tab.NEW_ATTRIBUTE3(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE3;
2325       p_acct_hist_rec_tab.OLD_ATTRIBUTE4(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE4;
2326       p_acct_hist_rec_tab.NEW_ATTRIBUTE4(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE4;
2327       p_acct_hist_rec_tab.OLD_ATTRIBUTE5(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE5;
2328       p_acct_hist_rec_tab.NEW_ATTRIBUTE5(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE5;
2329       p_acct_hist_rec_tab.OLD_ATTRIBUTE6(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE6;
2330       p_acct_hist_rec_tab.NEW_ATTRIBUTE6(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE6;
2331       p_acct_hist_rec_tab.OLD_ATTRIBUTE7(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE7;
2332       p_acct_hist_rec_tab.NEW_ATTRIBUTE7(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE7;
2333       p_acct_hist_rec_tab.OLD_ATTRIBUTE8(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE8;
2334       p_acct_hist_rec_tab.NEW_ATTRIBUTE8(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE8;
2335       p_acct_hist_rec_tab.OLD_ATTRIBUTE9(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE9;
2336       p_acct_hist_rec_tab.NEW_ATTRIBUTE9(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE9;
2337       p_acct_hist_rec_tab.OLD_ATTRIBUTE10(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE10;
2338       p_acct_hist_rec_tab.NEW_ATTRIBUTE10(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE10;
2339       p_acct_hist_rec_tab.OLD_ATTRIBUTE11(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE11;
2340       p_acct_hist_rec_tab.NEW_ATTRIBUTE11(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE11;
2341       p_acct_hist_rec_tab.OLD_ATTRIBUTE12(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE12;
2342       p_acct_hist_rec_tab.NEW_ATTRIBUTE12(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE12;
2343       p_acct_hist_rec_tab.OLD_ATTRIBUTE13(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE13;
2344       p_acct_hist_rec_tab.NEW_ATTRIBUTE13(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE13;
2345       p_acct_hist_rec_tab.OLD_ATTRIBUTE14(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE14;
2346       p_acct_hist_rec_tab.NEW_ATTRIBUTE14(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE14;
2347       p_acct_hist_rec_tab.OLD_ATTRIBUTE15(i)	 := p_acct_hist_tbl(i).OLD_ATTRIBUTE15;
2348       p_acct_hist_rec_tab.NEW_ATTRIBUTE15(i)	 := p_acct_hist_tbl(i).NEW_ATTRIBUTE15;
2349       p_acct_hist_rec_tab.FULL_DUMP_FLAG(i)	 := p_acct_hist_tbl(i).FULL_DUMP_FLAG;
2350       p_acct_hist_rec_tab.OBJECT_VERSION_NUMBER(i)	 := p_acct_hist_tbl(i).OBJECT_VERSION_NUMBER;
2351       p_acct_hist_rec_tab.OLD_BILL_TO_ADDRESS(i)	 := p_acct_hist_tbl(i).OLD_BILL_TO_ADDRESS;
2352       p_acct_hist_rec_tab.NEW_BILL_TO_ADDRESS(i)	 := p_acct_hist_tbl(i).NEW_BILL_TO_ADDRESS;
2353       p_acct_hist_rec_tab.OLD_SHIP_TO_ADDRESS(i)	 := p_acct_hist_tbl(i).OLD_SHIP_TO_ADDRESS;
2354       p_acct_hist_rec_tab.NEW_SHIP_TO_ADDRESS(i)	 := p_acct_hist_tbl(i).NEW_SHIP_TO_ADDRESS;
2355       p_acct_hist_rec_tab.old_party_account_number(i)	 := p_acct_hist_tbl(i).old_party_account_number;
2356       p_acct_hist_rec_tab.old_party_account_name(i)	 := p_acct_hist_tbl(i).old_party_account_name;
2357       p_acct_hist_rec_tab.old_bill_to_location(i)	 := p_acct_hist_tbl(i).old_bill_to_location;
2358       p_acct_hist_rec_tab.old_ship_to_location(i)	 := p_acct_hist_tbl(i).old_ship_to_location;
2359       p_acct_hist_rec_tab.new_party_account_number(i)	 := p_acct_hist_tbl(i).new_party_account_number;
2360       p_acct_hist_rec_tab.new_party_account_name(i)	 := p_acct_hist_tbl(i).new_party_account_name;
2361       p_acct_hist_rec_tab.new_bill_to_location(i)	 := p_acct_hist_tbl(i).new_bill_to_location;
2362       p_acct_hist_rec_tab.new_ship_to_location(i)	 := p_acct_hist_tbl(i).new_ship_to_location;
2363       p_acct_hist_rec_tab.INSTANCE_ID(i)	 := p_acct_hist_tbl(i).INSTANCE_ID;
2364    END LOOP;
2365 END Build_Acct_Hist_Rec_of_Table;
2366 --
2367 PROCEDURE Build_Owner_Pty_Acct_Rec_Table
2368    (
2369      p_owner_pty_acct_tbl     IN     csi_item_instance_pvt.owner_pty_acct_tbl
2370     ,p_owner_pty_acct_rec_tab IN OUT NOCOPY  csi_item_instance_pvt.owner_pty_acct_rec_tab
2371    ) IS
2372 BEGIN
2373    FOR i in p_owner_pty_acct_tbl.FIRST .. p_owner_pty_acct_tbl.LAST LOOP
2374       p_owner_pty_acct_rec_tab.instance_id(i) := p_owner_pty_acct_tbl(i).instance_id;
2375       p_owner_pty_acct_rec_tab.party_source_table(i) := p_owner_pty_acct_tbl(i).party_source_table;
2376       p_owner_pty_acct_rec_tab.party_id(i) := p_owner_pty_acct_tbl(i).party_id;
2377       p_owner_pty_acct_rec_tab.account_id(i) := p_owner_pty_acct_tbl(i).account_id;
2378    END LOOP;
2379 END Build_Owner_Pty_Acct_Rec_Table;
2380 --
2381 PROCEDURE Build_Txn_Rec_of_Table
2382    (
2383      p_txn_tbl        IN     csi_datastructures_pub.transaction_tbl
2384     ,p_txn_rec_tab    IN OUT NOCOPY  csi_item_instance_grp.transaction_rec_tab
2385    ) IS
2386 BEGIN
2387    FOR i in p_txn_tbl.FIRST .. p_txn_tbl.LAST LOOP
2388       p_txn_rec_tab.TRANSACTION_ID(i)	 := p_txn_tbl(i).TRANSACTION_ID;
2389       p_txn_rec_tab.TRANSACTION_DATE(i)	 := p_txn_tbl(i).TRANSACTION_DATE;
2390       p_txn_rec_tab.SOURCE_TRANSACTION_DATE(i)	 := p_txn_tbl(i).SOURCE_TRANSACTION_DATE;
2391       p_txn_rec_tab.TRANSACTION_TYPE_ID(i)	 := p_txn_tbl(i).TRANSACTION_TYPE_ID;
2392       p_txn_rec_tab.TXN_SUB_TYPE_ID(i)	 := p_txn_tbl(i).TXN_SUB_TYPE_ID;
2393       p_txn_rec_tab.SOURCE_GROUP_REF_ID(i)	 := p_txn_tbl(i).SOURCE_GROUP_REF_ID;
2394       p_txn_rec_tab.SOURCE_GROUP_REF(i)	 := p_txn_tbl(i).SOURCE_GROUP_REF;
2395       p_txn_rec_tab.SOURCE_HEADER_REF_ID(i)	 := p_txn_tbl(i).SOURCE_HEADER_REF_ID;
2396       p_txn_rec_tab.SOURCE_HEADER_REF(i)	 := p_txn_tbl(i).SOURCE_HEADER_REF;
2397       p_txn_rec_tab.SOURCE_LINE_REF_ID(i)	 := p_txn_tbl(i).SOURCE_LINE_REF_ID;
2398       p_txn_rec_tab.SOURCE_LINE_REF(i)	 := p_txn_tbl(i).SOURCE_LINE_REF;
2399       p_txn_rec_tab.SOURCE_DIST_REF_ID1(i)	 := p_txn_tbl(i).SOURCE_DIST_REF_ID1;
2400       p_txn_rec_tab.SOURCE_DIST_REF_ID2(i)	 := p_txn_tbl(i).SOURCE_DIST_REF_ID2;
2401       p_txn_rec_tab.INV_MATERIAL_TRANSACTION_ID(i)	 := p_txn_tbl(i).INV_MATERIAL_TRANSACTION_ID;
2402       p_txn_rec_tab.TRANSACTION_QUANTITY(i)	 := p_txn_tbl(i).TRANSACTION_QUANTITY;
2403       p_txn_rec_tab.TRANSACTION_UOM_CODE(i)	 := p_txn_tbl(i).TRANSACTION_UOM_CODE;
2404       p_txn_rec_tab.TRANSACTED_BY(i)	 := p_txn_tbl(i).TRANSACTED_BY;
2405       p_txn_rec_tab.TRANSACTION_STATUS_CODE(i)	 := p_txn_tbl(i).TRANSACTION_STATUS_CODE;
2406       p_txn_rec_tab.TRANSACTION_ACTION_CODE(i)	 := p_txn_tbl(i).TRANSACTION_ACTION_CODE;
2407       p_txn_rec_tab.MESSAGE_ID(i)	 := p_txn_tbl(i).MESSAGE_ID;
2408       p_txn_rec_tab.CONTEXT(i)	 := p_txn_tbl(i).CONTEXT;
2409       p_txn_rec_tab.ATTRIBUTE1(i)	 := p_txn_tbl(i).ATTRIBUTE1;
2410       p_txn_rec_tab.ATTRIBUTE2(i)	 := p_txn_tbl(i).ATTRIBUTE2;
2411       p_txn_rec_tab.ATTRIBUTE3(i)	 := p_txn_tbl(i).ATTRIBUTE3;
2412       p_txn_rec_tab.ATTRIBUTE4(i)	 := p_txn_tbl(i).ATTRIBUTE4;
2413       p_txn_rec_tab.ATTRIBUTE5(i)	 := p_txn_tbl(i).ATTRIBUTE5;
2414       p_txn_rec_tab.ATTRIBUTE6(i)	 := p_txn_tbl(i).ATTRIBUTE6;
2415       p_txn_rec_tab.ATTRIBUTE7(i)	 := p_txn_tbl(i).ATTRIBUTE7;
2416       p_txn_rec_tab.ATTRIBUTE8(i)	 := p_txn_tbl(i).ATTRIBUTE8;
2417       p_txn_rec_tab.ATTRIBUTE9(i)	 := p_txn_tbl(i).ATTRIBUTE9;
2418       p_txn_rec_tab.ATTRIBUTE10(i)	 := p_txn_tbl(i).ATTRIBUTE10;
2419       p_txn_rec_tab.ATTRIBUTE11(i)	 := p_txn_tbl(i).ATTRIBUTE11;
2420       p_txn_rec_tab.ATTRIBUTE12(i)	 := p_txn_tbl(i).ATTRIBUTE12;
2421       p_txn_rec_tab.ATTRIBUTE13(i)	 := p_txn_tbl(i).ATTRIBUTE13;
2422       p_txn_rec_tab.ATTRIBUTE14(i)	 := p_txn_tbl(i).ATTRIBUTE14;
2423       p_txn_rec_tab.ATTRIBUTE15(i)	 := p_txn_tbl(i).ATTRIBUTE15;
2424       p_txn_rec_tab.OBJECT_VERSION_NUMBER(i)	 := p_txn_tbl(i).OBJECT_VERSION_NUMBER;
2425       p_txn_rec_tab.SPLIT_REASON_CODE(i)	 := p_txn_tbl(i).SPLIT_REASON_CODE;
2426       p_txn_rec_tab.GL_INTERFACE_STATUS_CODE(i)	 := p_txn_tbl(i).GL_INTERFACE_STATUS_CODE;
2427    END LOOP;
2428 END Build_Txn_Rec_of_Table;
2429 --
2430 PROCEDURE Build_Org_Rec_of_Table
2431    (
2432      p_org_tbl                 IN      csi_datastructures_pub.organization_units_tbl
2433     ,p_org_units_rec_tab       IN OUT NOCOPY   csi_item_instance_grp.org_units_rec_tab
2434    ) IS
2435 BEGIN
2436    FOR i in p_org_tbl.FIRST .. p_org_tbl.LAST LOOP
2437      p_org_units_rec_tab.instance_ou_id(i)          := p_org_tbl(i).instance_ou_id;
2438      p_org_units_rec_tab.instance_id(i)	            := p_org_tbl(i).instance_id;
2439      p_org_units_rec_tab.operating_unit_id(i)       := p_org_tbl(i).operating_unit_id;
2440      p_org_units_rec_tab.relationship_type_code(i)  := p_org_tbl(i).relationship_type_code;
2441      p_org_units_rec_tab.active_start_date(i)       := p_org_tbl(i).active_start_date;
2442      p_org_units_rec_tab.active_end_date(i)         := p_org_tbl(i).active_end_date;
2443      p_org_units_rec_tab.context(i)	            := p_org_tbl(i).context;
2444      p_org_units_rec_tab.attribute1(i)	            := p_org_tbl(i).attribute1;
2445      p_org_units_rec_tab.attribute2(i)	            := p_org_tbl(i).attribute2;
2446      p_org_units_rec_tab.attribute3(i)	            := p_org_tbl(i).attribute3;
2447      p_org_units_rec_tab.attribute4(i)	            := p_org_tbl(i).attribute4;
2448      p_org_units_rec_tab.attribute5(i)	            := p_org_tbl(i).attribute5;
2449      p_org_units_rec_tab.attribute6(i)	            := p_org_tbl(i).attribute6;
2450      p_org_units_rec_tab.attribute7(i)	            := p_org_tbl(i).attribute7;
2451      p_org_units_rec_tab.attribute8(i)	            := p_org_tbl(i).attribute8;
2452      p_org_units_rec_tab.attribute9(i)	            := p_org_tbl(i).attribute9;
2453      p_org_units_rec_tab.attribute10(i)	            := p_org_tbl(i).attribute10;
2454      p_org_units_rec_tab.attribute11(i)	            := p_org_tbl(i).attribute11;
2455      p_org_units_rec_tab.attribute12(i)	            := p_org_tbl(i).attribute12;
2456      p_org_units_rec_tab.attribute13(i)	            := p_org_tbl(i).attribute13;
2457      p_org_units_rec_tab.attribute14(i)	            := p_org_tbl(i).attribute14;
2458      p_org_units_rec_tab.attribute15(i)	            := p_org_tbl(i).attribute15;
2459      p_org_units_rec_tab.object_version_number(i)   := p_org_tbl(i).object_version_number;
2460      p_org_units_rec_tab.parent_tbl_index(i)	    := p_org_tbl(i).parent_tbl_index;
2461    END LOOP;
2462 END Build_Org_Rec_of_Table;
2463 --
2464 PROCEDURE Build_Org_Hist_Rec_of_Table
2465   ( p_org_hist_tbl       IN     csi_datastructures_pub.org_units_history_tbl
2466    ,p_org_hist_rec_tab   IN OUT NOCOPY  csi_item_instance_grp.org_units_history_rec_tab
2467   ) IS
2468 BEGIN
2469    FOR i in p_org_hist_tbl.FIRST .. p_org_hist_tbl.LAST LOOP
2470        p_org_hist_rec_tab.INSTANCE_OU_HISTORY_ID(i)	:= p_org_hist_tbl(i).INSTANCE_OU_HISTORY_ID;
2471        p_org_hist_rec_tab.INSTANCE_OU_ID(i)	        := p_org_hist_tbl(i).INSTANCE_OU_ID;
2472        p_org_hist_rec_tab.TRANSACTION_ID(i)	        := p_org_hist_tbl(i).TRANSACTION_ID;
2473        p_org_hist_rec_tab.OLD_OPERATING_UNIT_ID(i)	:= p_org_hist_tbl(i).OLD_OPERATING_UNIT_ID;
2474        p_org_hist_rec_tab.NEW_OPERATING_UNIT_ID(i)	:= p_org_hist_tbl(i).NEW_OPERATING_UNIT_ID;
2475        p_org_hist_rec_tab.OLD_RELATIONSHIP_TYPE_CODE(i)	:= p_org_hist_tbl(i).OLD_RELATIONSHIP_TYPE_CODE;
2476        p_org_hist_rec_tab.NEW_RELATIONSHIP_TYPE_CODE(i)	:= p_org_hist_tbl(i).NEW_RELATIONSHIP_TYPE_CODE;
2477        p_org_hist_rec_tab.OLD_ACTIVE_START_DATE(i)	:= p_org_hist_tbl(i).OLD_ACTIVE_START_DATE;
2478        p_org_hist_rec_tab.NEW_ACTIVE_START_DATE(i)	:= p_org_hist_tbl(i).NEW_ACTIVE_START_DATE;
2479        p_org_hist_rec_tab.OLD_ACTIVE_END_DATE(i)	:= p_org_hist_tbl(i).OLD_ACTIVE_END_DATE;
2480        p_org_hist_rec_tab.NEW_ACTIVE_END_DATE(i)	:= p_org_hist_tbl(i).NEW_ACTIVE_END_DATE;
2481        p_org_hist_rec_tab.OLD_CONTEXT(i)	        := p_org_hist_tbl(i).OLD_CONTEXT;
2482        p_org_hist_rec_tab.NEW_CONTEXT(i)	        := p_org_hist_tbl(i).NEW_CONTEXT;
2483        p_org_hist_rec_tab.OLD_ATTRIBUTE1(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE1;
2484        p_org_hist_rec_tab.NEW_ATTRIBUTE1(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE1;
2485        p_org_hist_rec_tab.OLD_ATTRIBUTE2(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE2;
2486        p_org_hist_rec_tab.NEW_ATTRIBUTE2(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE2;
2487        p_org_hist_rec_tab.OLD_ATTRIBUTE3(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE3;
2488        p_org_hist_rec_tab.NEW_ATTRIBUTE3(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE3;
2489        p_org_hist_rec_tab.OLD_ATTRIBUTE4(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE4;
2490        p_org_hist_rec_tab.NEW_ATTRIBUTE4(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE4;
2491        p_org_hist_rec_tab.OLD_ATTRIBUTE5(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE5;
2492        p_org_hist_rec_tab.NEW_ATTRIBUTE5(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE5;
2493        p_org_hist_rec_tab.OLD_ATTRIBUTE6(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE6;
2494        p_org_hist_rec_tab.NEW_ATTRIBUTE6(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE6;
2495        p_org_hist_rec_tab.OLD_ATTRIBUTE7(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE7;
2496        p_org_hist_rec_tab.NEW_ATTRIBUTE7(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE7;
2497        p_org_hist_rec_tab.OLD_ATTRIBUTE8(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE8;
2498        p_org_hist_rec_tab.NEW_ATTRIBUTE8(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE8;
2499        p_org_hist_rec_tab.OLD_ATTRIBUTE9(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE9;
2500        p_org_hist_rec_tab.NEW_ATTRIBUTE9(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE9;
2501        p_org_hist_rec_tab.OLD_ATTRIBUTE10(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE10;
2502        p_org_hist_rec_tab.NEW_ATTRIBUTE10(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE10;
2503        p_org_hist_rec_tab.OLD_ATTRIBUTE11(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE11;
2504        p_org_hist_rec_tab.NEW_ATTRIBUTE11(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE11;
2505        p_org_hist_rec_tab.OLD_ATTRIBUTE12(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE12;
2506        p_org_hist_rec_tab.NEW_ATTRIBUTE12(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE12;
2507        p_org_hist_rec_tab.OLD_ATTRIBUTE13(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE13;
2508        p_org_hist_rec_tab.NEW_ATTRIBUTE13(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE13;
2509        p_org_hist_rec_tab.OLD_ATTRIBUTE14(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE14;
2510        p_org_hist_rec_tab.NEW_ATTRIBUTE14(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE14;
2511        p_org_hist_rec_tab.OLD_ATTRIBUTE15(i)	        := p_org_hist_tbl(i).OLD_ATTRIBUTE15;
2512        p_org_hist_rec_tab.NEW_ATTRIBUTE15(i)	        := p_org_hist_tbl(i).NEW_ATTRIBUTE15;
2513        p_org_hist_rec_tab.FULL_DUMP_FLAG(i)	        := p_org_hist_tbl(i).FULL_DUMP_FLAG;
2514        p_org_hist_rec_tab.OBJECT_VERSION_NUMBER(i)	:= p_org_hist_tbl(i).OBJECT_VERSION_NUMBER;
2515        p_org_hist_rec_tab.new_operating_unit_name(i)	:= p_org_hist_tbl(i).new_operating_unit_name;
2516        p_org_hist_rec_tab.old_operating_unit_name(i)	:= p_org_hist_tbl(i).old_operating_unit_name;
2517        p_org_hist_rec_tab.INSTANCE_ID(i)	        := p_org_hist_tbl(i).INSTANCE_ID;
2518 
2519    END LOOP;
2520 END Build_Org_Hist_Rec_of_Table;
2521 --
2522 PROCEDURE Build_pricing_Rec_of_Table
2523    (
2524      p_pricing_tbl           IN      csi_datastructures_pub.pricing_attribs_tbl
2525     ,p_pricing_rec_tab       IN OUT NOCOPY   csi_item_instance_grp.pricing_attribs_rec_tab
2526    ) IS
2527 BEGIN
2528    FOR i in p_pricing_tbl.FIRST .. p_pricing_tbl.LAST LOOP
2529        p_pricing_rec_tab.pricing_attribute_id(i)    := p_pricing_tbl(i).pricing_attribute_id;
2530        p_pricing_rec_tab.instance_id(i)	            := p_pricing_tbl(i).instance_id;
2531        p_pricing_rec_tab.active_start_date(i)	    := p_pricing_tbl(i).active_start_date;
2532        p_pricing_rec_tab.active_end_date(i)	        := p_pricing_tbl(i).active_end_date;
2533        p_pricing_rec_tab.pricing_context(i)	        := p_pricing_tbl(i).pricing_context;
2534        p_pricing_rec_tab.pricing_attribute1(i)	    := p_pricing_tbl(i).pricing_attribute1;
2535        p_pricing_rec_tab.pricing_attribute2(i)	    := p_pricing_tbl(i).pricing_attribute2;
2536        p_pricing_rec_tab.pricing_attribute3(i)	    := p_pricing_tbl(i).pricing_attribute3;
2537        p_pricing_rec_tab.pricing_attribute4(i)	    := p_pricing_tbl(i).pricing_attribute4;
2538        p_pricing_rec_tab.pricing_attribute5(i)	    := p_pricing_tbl(i).pricing_attribute5;
2539        p_pricing_rec_tab.pricing_attribute6(i)	    := p_pricing_tbl(i).pricing_attribute6;
2540        p_pricing_rec_tab.pricing_attribute7(i)	    := p_pricing_tbl(i).pricing_attribute7;
2541        p_pricing_rec_tab.pricing_attribute8(i) 	    := p_pricing_tbl(i).pricing_attribute8;
2542        p_pricing_rec_tab.pricing_attribute9(i)	    := p_pricing_tbl(i).pricing_attribute9;
2543        p_pricing_rec_tab.pricing_attribute10(i)	    := p_pricing_tbl(i).pricing_attribute10;
2544        p_pricing_rec_tab.pricing_attribute11(i)	    := p_pricing_tbl(i).pricing_attribute11;
2545        p_pricing_rec_tab.pricing_attribute12(i)	    := p_pricing_tbl(i).pricing_attribute12;
2546        p_pricing_rec_tab.pricing_attribute13(i)	    := p_pricing_tbl(i).pricing_attribute13;
2547        p_pricing_rec_tab.pricing_attribute14(i)	    := p_pricing_tbl(i).pricing_attribute14;
2548        p_pricing_rec_tab.pricing_attribute15(i)	    := p_pricing_tbl(i).pricing_attribute15;
2549        p_pricing_rec_tab.pricing_attribute16(i)	    := p_pricing_tbl(i).pricing_attribute16;
2550        p_pricing_rec_tab.pricing_attribute17(i)	    := p_pricing_tbl(i).pricing_attribute17;
2551        p_pricing_rec_tab.pricing_attribute18(i)	    := p_pricing_tbl(i).pricing_attribute18;
2552        p_pricing_rec_tab.pricing_attribute19(i)	    := p_pricing_tbl(i).pricing_attribute19;
2553        p_pricing_rec_tab.pricing_attribute20(i)	    := p_pricing_tbl(i).pricing_attribute20;
2554        p_pricing_rec_tab.pricing_attribute21(i)	    := p_pricing_tbl(i).pricing_attribute21;
2555        p_pricing_rec_tab.pricing_attribute22(i)	    := p_pricing_tbl(i).pricing_attribute22;
2556        p_pricing_rec_tab.pricing_attribute23(i)	    := p_pricing_tbl(i).pricing_attribute23;
2557        p_pricing_rec_tab.pricing_attribute24(i)	    := p_pricing_tbl(i).pricing_attribute24;
2558        p_pricing_rec_tab.pricing_attribute25(i)	    := p_pricing_tbl(i).pricing_attribute25;
2559        p_pricing_rec_tab.pricing_attribute26(i)	    := p_pricing_tbl(i).pricing_attribute26;
2560        p_pricing_rec_tab.pricing_attribute27(i)	    := p_pricing_tbl(i).pricing_attribute27;
2561        p_pricing_rec_tab.pricing_attribute28(i)	    := p_pricing_tbl(i).pricing_attribute28;
2562        p_pricing_rec_tab.pricing_attribute29(i)	    := p_pricing_tbl(i).pricing_attribute29;
2563        p_pricing_rec_tab.pricing_attribute30(i)	    := p_pricing_tbl(i).pricing_attribute30;
2564        p_pricing_rec_tab.pricing_attribute31(i)	    := p_pricing_tbl(i).pricing_attribute31;
2565        p_pricing_rec_tab.pricing_attribute32(i)	    := p_pricing_tbl(i).pricing_attribute32;
2566        p_pricing_rec_tab.pricing_attribute33(i)     := p_pricing_tbl(i).pricing_attribute33;
2567        p_pricing_rec_tab.pricing_attribute34(i)	    := p_pricing_tbl(i).pricing_attribute34;
2568        p_pricing_rec_tab.pricing_attribute35(i)	    := p_pricing_tbl(i).pricing_attribute35;
2569        p_pricing_rec_tab.pricing_attribute36(i)	    := p_pricing_tbl(i).pricing_attribute36;
2570        p_pricing_rec_tab.pricing_attribute37(i)	    := p_pricing_tbl(i).pricing_attribute37;
2571        p_pricing_rec_tab.pricing_attribute38(i)	    := p_pricing_tbl(i).pricing_attribute38;
2572        p_pricing_rec_tab.pricing_attribute39(i)	    := p_pricing_tbl(i).pricing_attribute39;
2573        p_pricing_rec_tab.pricing_attribute40(i)	    := p_pricing_tbl(i).pricing_attribute40;
2574        p_pricing_rec_tab.pricing_attribute41(i)	    := p_pricing_tbl(i).pricing_attribute41;
2575        p_pricing_rec_tab.pricing_attribute42(i)	    := p_pricing_tbl(i).pricing_attribute42;
2576        p_pricing_rec_tab.pricing_attribute43(i)     := p_pricing_tbl(i).pricing_attribute43;
2577        p_pricing_rec_tab.pricing_attribute44(i)	    := p_pricing_tbl(i).pricing_attribute44;
2578        p_pricing_rec_tab.pricing_attribute45(i)	    := p_pricing_tbl(i).pricing_attribute45;
2579        p_pricing_rec_tab.pricing_attribute46(i)	    := p_pricing_tbl(i).pricing_attribute46;
2580        p_pricing_rec_tab.pricing_attribute47(i)	    := p_pricing_tbl(i).pricing_attribute47;
2581        p_pricing_rec_tab.pricing_attribute48(i)	    := p_pricing_tbl(i).pricing_attribute48;
2582        p_pricing_rec_tab.pricing_attribute49(i)	    := p_pricing_tbl(i).pricing_attribute49;
2583        p_pricing_rec_tab.pricing_attribute50(i)	    := p_pricing_tbl(i).pricing_attribute50;
2584        p_pricing_rec_tab.pricing_attribute51(i)	    := p_pricing_tbl(i).pricing_attribute51;
2585        p_pricing_rec_tab.pricing_attribute52(i)	    := p_pricing_tbl(i).pricing_attribute52;
2586        p_pricing_rec_tab.pricing_attribute53(i)	    := p_pricing_tbl(i).pricing_attribute53;
2587        p_pricing_rec_tab.pricing_attribute54(i)	    := p_pricing_tbl(i).pricing_attribute54;
2588        p_pricing_rec_tab.pricing_attribute55(i)	    := p_pricing_tbl(i).pricing_attribute55;
2589        p_pricing_rec_tab.pricing_attribute56(i)	    := p_pricing_tbl(i).pricing_attribute56;
2590        p_pricing_rec_tab.pricing_attribute57(i)	    := p_pricing_tbl(i).pricing_attribute57;
2591        p_pricing_rec_tab.pricing_attribute58(i)	    := p_pricing_tbl(i).pricing_attribute58;
2592        p_pricing_rec_tab.pricing_attribute59(i)	    := p_pricing_tbl(i).pricing_attribute59;
2593        p_pricing_rec_tab.pricing_attribute60(i)	    := p_pricing_tbl(i).pricing_attribute60;
2594        p_pricing_rec_tab.pricing_attribute61(i)	    := p_pricing_tbl(i).pricing_attribute61;
2595        p_pricing_rec_tab.pricing_attribute62(i)	    := p_pricing_tbl(i).pricing_attribute62;
2596        p_pricing_rec_tab.pricing_attribute63(i)	    := p_pricing_tbl(i).pricing_attribute63;
2597        p_pricing_rec_tab.pricing_attribute64(i)	    := p_pricing_tbl(i).pricing_attribute64;
2598        p_pricing_rec_tab.pricing_attribute65(i)	    := p_pricing_tbl(i).pricing_attribute65;
2599        p_pricing_rec_tab.pricing_attribute66(i)	    := p_pricing_tbl(i).pricing_attribute66;
2600        p_pricing_rec_tab.pricing_attribute67(i)	    := p_pricing_tbl(i).pricing_attribute67;
2601        p_pricing_rec_tab.pricing_attribute68(i)	    := p_pricing_tbl(i).pricing_attribute68;
2602        p_pricing_rec_tab.pricing_attribute69(i)	    := p_pricing_tbl(i).pricing_attribute69;
2603        p_pricing_rec_tab.pricing_attribute70(i)	    := p_pricing_tbl(i).pricing_attribute70;
2604        p_pricing_rec_tab.pricing_attribute71(i)	    := p_pricing_tbl(i).pricing_attribute71;
2605        p_pricing_rec_tab.pricing_attribute72(i)	    := p_pricing_tbl(i).pricing_attribute72;
2606        p_pricing_rec_tab.pricing_attribute73(i)	    := p_pricing_tbl(i).pricing_attribute73;
2607        p_pricing_rec_tab.pricing_attribute74(i)	    := p_pricing_tbl(i).pricing_attribute74;
2608        p_pricing_rec_tab.pricing_attribute75(i)	    := p_pricing_tbl(i).pricing_attribute75;
2609        p_pricing_rec_tab.pricing_attribute76(i)	    := p_pricing_tbl(i).pricing_attribute76;
2610        p_pricing_rec_tab.pricing_attribute77(i)	    := p_pricing_tbl(i).pricing_attribute77;
2611        p_pricing_rec_tab.pricing_attribute78(i)	    := p_pricing_tbl(i).pricing_attribute78;
2612        p_pricing_rec_tab.pricing_attribute79(i)	    := p_pricing_tbl(i).pricing_attribute79;
2613        p_pricing_rec_tab.pricing_attribute80(i)	    := p_pricing_tbl(i).pricing_attribute80;
2614        p_pricing_rec_tab.pricing_attribute81(i)	    := p_pricing_tbl(i).pricing_attribute81;
2615        p_pricing_rec_tab.pricing_attribute82(i)	    := p_pricing_tbl(i).pricing_attribute82;
2616        p_pricing_rec_tab.pricing_attribute83(i)	    := p_pricing_tbl(i).pricing_attribute83;
2617        p_pricing_rec_tab.pricing_attribute84(i)	    := p_pricing_tbl(i).pricing_attribute84;
2618        p_pricing_rec_tab.pricing_attribute85(i)	    := p_pricing_tbl(i).pricing_attribute85;
2619        p_pricing_rec_tab.pricing_attribute86(i)	    := p_pricing_tbl(i).pricing_attribute86;
2620        p_pricing_rec_tab.pricing_attribute87(i)	    := p_pricing_tbl(i).pricing_attribute87;
2621        p_pricing_rec_tab.pricing_attribute88(i)	    := p_pricing_tbl(i).pricing_attribute88;
2622        p_pricing_rec_tab.pricing_attribute89(i)	    := p_pricing_tbl(i).pricing_attribute89;
2623        p_pricing_rec_tab.pricing_attribute90(i)	    := p_pricing_tbl(i).pricing_attribute90;
2624        p_pricing_rec_tab.pricing_attribute91(i)	    := p_pricing_tbl(i).pricing_attribute91;
2625        p_pricing_rec_tab.pricing_attribute92(i)	    := p_pricing_tbl(i).pricing_attribute92;
2626        p_pricing_rec_tab.pricing_attribute93(i)	    := p_pricing_tbl(i).pricing_attribute93;
2627        p_pricing_rec_tab.pricing_attribute94(i)	    := p_pricing_tbl(i).pricing_attribute94;
2628        p_pricing_rec_tab.pricing_attribute95(i)	    := p_pricing_tbl(i).pricing_attribute95;
2629        p_pricing_rec_tab.pricing_attribute96(i)	    := p_pricing_tbl(i).pricing_attribute96;
2630        p_pricing_rec_tab.pricing_attribute97(i)	    := p_pricing_tbl(i).pricing_attribute97;
2631        p_pricing_rec_tab.pricing_attribute98(i)	    := p_pricing_tbl(i).pricing_attribute98;
2632        p_pricing_rec_tab.pricing_attribute99(i)	    := p_pricing_tbl(i).pricing_attribute99;
2633        p_pricing_rec_tab.pricing_attribute100(i)    := p_pricing_tbl(i).pricing_attribute100;
2634        p_pricing_rec_tab.context(i)	                := p_pricing_tbl(i).context;
2635        p_pricing_rec_tab.attribute1(i)	            := p_pricing_tbl(i).attribute1;
2636        p_pricing_rec_tab.attribute2(i)	            := p_pricing_tbl(i).attribute2;
2637        p_pricing_rec_tab.attribute3(i)	            := p_pricing_tbl(i).attribute3;
2638        p_pricing_rec_tab.attribute4(i)	            := p_pricing_tbl(i).attribute4;
2639        p_pricing_rec_tab.attribute5(i)	            := p_pricing_tbl(i).attribute5;
2640        p_pricing_rec_tab.attribute6(i)	            := p_pricing_tbl(i).attribute6;
2641        p_pricing_rec_tab.attribute7(i)	            := p_pricing_tbl(i).attribute7;
2642        p_pricing_rec_tab.attribute8(i)	            := p_pricing_tbl(i).attribute8;
2643        p_pricing_rec_tab.attribute9(i)	            := p_pricing_tbl(i).attribute9;
2644        p_pricing_rec_tab.attribute10(i)	            := p_pricing_tbl(i).attribute10;
2645        p_pricing_rec_tab.attribute11(i)	            := p_pricing_tbl(i).attribute11;
2646        p_pricing_rec_tab.attribute12(i)	            := p_pricing_tbl(i).attribute12;
2647        p_pricing_rec_tab.attribute13(i)	            := p_pricing_tbl(i).attribute13;
2648        p_pricing_rec_tab.attribute14(i)	            := p_pricing_tbl(i).attribute14;
2649        p_pricing_rec_tab.attribute15(i)	            := p_pricing_tbl(i).attribute15;
2650        p_pricing_rec_tab.object_version_number(i)   := p_pricing_tbl(i).object_version_number;
2651        p_pricing_rec_tab.parent_tbl_index(i)	    := p_pricing_tbl(i).parent_tbl_index;
2652    END LOOP;
2653 END Build_pricing_Rec_of_Table;
2654 --
2655 PROCEDURE Build_pricing_Hist_Rec_Table
2656   ( p_pricing_hist_tbl       IN     csi_datastructures_pub.pricing_history_tbl
2657    ,p_pricing_hist_rec_tab   IN OUT NOCOPY  csi_item_instance_grp.pricing_attribs_hist_rec_tab
2658   ) IS
2659 BEGIN
2660    FOR i in p_pricing_hist_tbl.FIRST .. p_pricing_hist_tbl.LAST LOOP
2661       p_pricing_hist_rec_tab.PRICE_ATTRIB_HISTORY_ID(i):= p_pricing_hist_tbl(i).PRICE_ATTRIB_HISTORY_ID;
2662       p_pricing_hist_rec_tab.PRICING_ATTRIBUTE_ID(i):= p_pricing_hist_tbl(i).PRICING_ATTRIBUTE_ID;
2663       p_pricing_hist_rec_tab.TRANSACTION_ID(i)         := p_pricing_hist_tbl(i).TRANSACTION_ID;
2664       p_pricing_hist_rec_tab.OLD_PRICING_CONTEXT(i):= p_pricing_hist_tbl(i).OLD_PRICING_CONTEXT;
2665       p_pricing_hist_rec_tab.NEW_PRICING_CONTEXT(i):= p_pricing_hist_tbl(i).NEW_PRICING_CONTEXT;
2666       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE1(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE1;
2667       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE1(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE1;
2668       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE2(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE2;
2669       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE2(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE2;
2670       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE3(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE3;
2671       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE3(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE3;
2672       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE4(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE4;
2673       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE4(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE4;
2674       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE5(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE5;
2675       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE5(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE5;
2676       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE6(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE6;
2677       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE6(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE6;
2678       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE7(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE7;
2679       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE7(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE7;
2680       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE8(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE8;
2681       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE8(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE8;
2682       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE9(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE9;
2683       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE9(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE9;
2684       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE10(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE10;
2685       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE10(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE10;
2686       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE11(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE11;
2687       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE11(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE11;
2688       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE12(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE12;
2689       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE12(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE12;
2690       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE13(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE13;
2691       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE13(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE13;
2692       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE14(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE14;
2693       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE14(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE14;
2694       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE15(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE15;
2695       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE15(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE15;
2696       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE16(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE16;
2697       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE16(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE16;
2698       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE17(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE17;
2699       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE17(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE17;
2700       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE18(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE18;
2701       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE18(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE18;
2702       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE19(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE19;
2703       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE19(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE19;
2704       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE20(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE20;
2705       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE20(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE20;
2706       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE21(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE21;
2707       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE21(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE21;
2708       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE22(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE22;
2709       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE22(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE22;
2710       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE23(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE23;
2711       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE23(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE23;
2712       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE24(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE24;
2713       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE24(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE24;
2714       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE25(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE25;
2715       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE25(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE25;
2716       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE26(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE26;
2717       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE26(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE26;
2718       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE27(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE27;
2719       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE27(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE27;
2720       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE28(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE28;
2721       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE28(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE28;
2722       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE29(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE29;
2723       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE29(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE29;
2724       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE30(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE30;
2725       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE30(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE30;
2726       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE31(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE31;
2727       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE31(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE31;
2728       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE32(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE32;
2729       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE32(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE32;
2730       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE33(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE33;
2731       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE33(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE33;
2732       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE34(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE34;
2733       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE34(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE34;
2734       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE35(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE35;
2735       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE35(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE35;
2736       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE36(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE36;
2737       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE36(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE36;
2738       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE37(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE37;
2739       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE37(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE37;
2740       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE38(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE38;
2741       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE38(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE38;
2742       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE39(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE39;
2743       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE39(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE39;
2744       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE40(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE40;
2745       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE40(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE40;
2746       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE41(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE41;
2747       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE41(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE41;
2748       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE42(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE42;
2749       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE42(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE42;
2750       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE43(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE43;
2751       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE43(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE43;
2752       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE44(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE44;
2753       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE44(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE44;
2754       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE45(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE45;
2755       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE45(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE45;
2756       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE46(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE46;
2757       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE46(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE46;
2758       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE47(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE47;
2759       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE47(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE47;
2760       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE48(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE48;
2761       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE48(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE48;
2762       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE49(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE49;
2763       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE49(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE49;
2764       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE50(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE50;
2765       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE50(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE50;
2766       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE51(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE51;
2767       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE51(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE51;
2768       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE52(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE52;
2769       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE52(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE52;
2770       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE53(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE53;
2771       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE53(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE53;
2772       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE54(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE54;
2773       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE54(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE54;
2774       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE55(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE55;
2775       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE55(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE55;
2776       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE56(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE56;
2777       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE56(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE56;
2778       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE57(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE57;
2779       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE57(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE57;
2780       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE58(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE58;
2781       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE58(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE58;
2782       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE59(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE59;
2783       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE59(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE59;
2784       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE60(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE60;
2785       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE60(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE60;
2786       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE61(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE61;
2787       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE61(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE61;
2788       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE62(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE62;
2789       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE62(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE62;
2790       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE63(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE63;
2791       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE63(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE63;
2792       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE64(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE64;
2793       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE64(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE64;
2794       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE65(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE65;
2795       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE65(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE65;
2796       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE66(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE66;
2797       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE66(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE66;
2798       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE67(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE67;
2799       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE67(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE67;
2800       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE68(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE68;
2801       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE68(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE68;
2802       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE69(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE69;
2803       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE69(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE69;
2804       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE70(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE70;
2805       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE70(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE70;
2806       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE71(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE71;
2807       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE71(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE71;
2808       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE72(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE72;
2809       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE72(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE72;
2810       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE73(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE73;
2811       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE73(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE73;
2812       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE74(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE74;
2813       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE74(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE74;
2814       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE75(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE75;
2815       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE75(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE75;
2816       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE76(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE76;
2817       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE76(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE76;
2818       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE77(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE77;
2819       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE77(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE77;
2820       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE78(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE78;
2821       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE78(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE78;
2822       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE79(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE79;
2823       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE79(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE79;
2824       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE80(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE80;
2825       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE80(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE80;
2826       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE81(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE81;
2827       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE81(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE81;
2828       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE82(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE82;
2829       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE82(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE82;
2830       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE83(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE83;
2831       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE83(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE83;
2832       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE84(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE84;
2833       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE84(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE84;
2834       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE85(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE85;
2835       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE85(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE85;
2836       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE86(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE86;
2837       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE86(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE86;
2838       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE87(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE87;
2839       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE87(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE87;
2840       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE88(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE88;
2841       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE88(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE88;
2842       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE89(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE89;
2843       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE89(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE89;
2844       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE90(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE90;
2845       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE90(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE90;
2846       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE91(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE91;
2847       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE91(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE91;
2848       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE92(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE92;
2849       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE92(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE92;
2850       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE93(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE93;
2851       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE93(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE93;
2852       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE94(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE94;
2853       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE94(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE94;
2854       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE95(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE95;
2855       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE95(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE95;
2856       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE96(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE96;
2857       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE96(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE96;
2858       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE97(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE97;
2859       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE97(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE97;
2860       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE98(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE98;
2861       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE98(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE98;
2862       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE99(i):= p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE99;
2863       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE99(i):= p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE99;
2864       p_pricing_hist_rec_tab.OLD_PRICING_ATTRIBUTE100(i)  := p_pricing_hist_tbl(i).OLD_PRICING_ATTRIBUTE100;
2865       p_pricing_hist_rec_tab.NEW_PRICING_ATTRIBUTE100(i)  := p_pricing_hist_tbl(i).NEW_PRICING_ATTRIBUTE100;
2866       p_pricing_hist_rec_tab.OLD_ACTIVE_START_DATE(i):= p_pricing_hist_tbl(i).OLD_ACTIVE_START_DATE;
2867       p_pricing_hist_rec_tab.NEW_ACTIVE_START_DATE(i):= p_pricing_hist_tbl(i).NEW_ACTIVE_START_DATE;
2868       p_pricing_hist_rec_tab.OLD_ACTIVE_END_DATE(i):= p_pricing_hist_tbl(i).OLD_ACTIVE_END_DATE;
2869       p_pricing_hist_rec_tab.NEW_ACTIVE_END_DATE(i):= p_pricing_hist_tbl(i).NEW_ACTIVE_END_DATE;
2870       p_pricing_hist_rec_tab.OLD_CONTEXT(i)	        := p_pricing_hist_tbl(i).OLD_CONTEXT;
2871       p_pricing_hist_rec_tab.NEW_CONTEXT(i)	        := p_pricing_hist_tbl(i).NEW_CONTEXT;
2872       p_pricing_hist_rec_tab.OLD_ATTRIBUTE1(i)	        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE1;
2873       p_pricing_hist_rec_tab.NEW_ATTRIBUTE1(i)        := p_pricing_hist_tbl(i).NEW_ATTRIBUTE1;
2874       p_pricing_hist_rec_tab.OLD_ATTRIBUTE2(i)        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE2;
2875       p_pricing_hist_rec_tab.NEW_ATTRIBUTE2(i)        := p_pricing_hist_tbl(i).NEW_ATTRIBUTE2;
2876       p_pricing_hist_rec_tab.OLD_ATTRIBUTE3(i)        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE3;
2877       p_pricing_hist_rec_tab.NEW_ATTRIBUTE3(i)	        := p_pricing_hist_tbl(i).NEW_ATTRIBUTE3;
2878       p_pricing_hist_rec_tab.OLD_ATTRIBUTE4(i)	        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE4;
2879       p_pricing_hist_rec_tab.NEW_ATTRIBUTE4(i)        := p_pricing_hist_tbl(i).NEW_ATTRIBUTE4;
2880       p_pricing_hist_rec_tab.OLD_ATTRIBUTE5(i)        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE5;
2881       p_pricing_hist_rec_tab.NEW_ATTRIBUTE5(i)        := p_pricing_hist_tbl(i).NEW_ATTRIBUTE5;
2882       p_pricing_hist_rec_tab.OLD_ATTRIBUTE6(i)	        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE6;
2883       p_pricing_hist_rec_tab.NEW_ATTRIBUTE6(i)        := p_pricing_hist_tbl(i).NEW_ATTRIBUTE6;
2884       p_pricing_hist_rec_tab.OLD_ATTRIBUTE7(i)        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE7;
2885       p_pricing_hist_rec_tab.NEW_ATTRIBUTE7(i)	        := p_pricing_hist_tbl(i).NEW_ATTRIBUTE7;
2886       p_pricing_hist_rec_tab.OLD_ATTRIBUTE8(i)	        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE8;
2887       p_pricing_hist_rec_tab.NEW_ATTRIBUTE8(i)        := p_pricing_hist_tbl(i).NEW_ATTRIBUTE8;
2888       p_pricing_hist_rec_tab.OLD_ATTRIBUTE9(i)        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE9;
2889       p_pricing_hist_rec_tab.NEW_ATTRIBUTE9(i)        := p_pricing_hist_tbl(i).NEW_ATTRIBUTE9;
2890       p_pricing_hist_rec_tab.OLD_ATTRIBUTE10(i)        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE10;
2891       p_pricing_hist_rec_tab.NEW_ATTRIBUTE10(i)	    := p_pricing_hist_tbl(i).NEW_ATTRIBUTE10;
2892       p_pricing_hist_rec_tab.OLD_ATTRIBUTE11(i)        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE11;
2893       p_pricing_hist_rec_tab.NEW_ATTRIBUTE11(i)	    := p_pricing_hist_tbl(i).NEW_ATTRIBUTE11;
2894       p_pricing_hist_rec_tab.OLD_ATTRIBUTE12(i)        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE12;
2895       p_pricing_hist_rec_tab.NEW_ATTRIBUTE12(i)        := p_pricing_hist_tbl(i).NEW_ATTRIBUTE12;
2896       p_pricing_hist_rec_tab.OLD_ATTRIBUTE13(i)        := p_pricing_hist_tbl(i).OLD_ATTRIBUTE13;
2897       p_pricing_hist_rec_tab.NEW_ATTRIBUTE13(i)        := p_pricing_hist_tbl(i).NEW_ATTRIBUTE13;
2898       p_pricing_hist_rec_tab.OLD_ATTRIBUTE14(i)	    := p_pricing_hist_tbl(i).OLD_ATTRIBUTE14;
2899       p_pricing_hist_rec_tab.NEW_ATTRIBUTE14(i)	    := p_pricing_hist_tbl(i).NEW_ATTRIBUTE14;
2900       p_pricing_hist_rec_tab.OLD_ATTRIBUTE15(i)	    := p_pricing_hist_tbl(i).OLD_ATTRIBUTE15;
2901       p_pricing_hist_rec_tab.NEW_ATTRIBUTE15(i)	    := p_pricing_hist_tbl(i).NEW_ATTRIBUTE15;
2902       p_pricing_hist_rec_tab.FULL_DUMP_FLAG(i)        := p_pricing_hist_tbl(i).FULL_DUMP_FLAG;
2903    END LOOP;
2904 END Build_pricing_Hist_Rec_Table;
2905 --
2906 PROCEDURE Build_Ext_Attr_Rec_Table
2907    (
2908      p_ext_attr_tbl     IN     csi_datastructures_pub.extend_attrib_values_tbl
2909     ,p_ext_attr_rec_tab IN OUT NOCOPY  csi_item_instance_grp.extend_attrib_values_rec_tab
2910    ) IS
2911 
2912 BEGIN
2913    FOR i in p_ext_attr_tbl.FIRST .. p_ext_attr_tbl.LAST LOOP
2914 
2915      p_ext_attr_rec_tab.attribute_value_id(i)      :=  p_ext_attr_tbl(i).attribute_value_id;
2916      p_ext_attr_rec_tab.instance_id(i)             :=  p_ext_attr_tbl(i).instance_id;
2917      p_ext_attr_rec_tab.attribute_id(i)            :=  p_ext_attr_tbl(i).attribute_id;
2918      p_ext_attr_rec_tab.attribute_code(i)          :=  p_ext_attr_tbl(i).attribute_code;
2919      p_ext_attr_rec_tab.attribute_value(i)         :=  p_ext_attr_tbl(i).attribute_value;
2920      p_ext_attr_rec_tab.active_start_date(i)       :=  p_ext_attr_tbl(i).active_start_date;
2921      p_ext_attr_rec_tab.active_end_date(i)         :=  p_ext_attr_tbl(i).active_end_date;
2922      p_ext_attr_rec_tab.context(i)                 :=  p_ext_attr_tbl(i).context;
2923      p_ext_attr_rec_tab.attribute1(i)              :=  p_ext_attr_tbl(i).attribute1;
2924      p_ext_attr_rec_tab.attribute2 (i)             :=  p_ext_attr_tbl(i).attribute2;
2925      p_ext_attr_rec_tab.attribute3(i)              :=  p_ext_attr_tbl(i).attribute3;
2926      p_ext_attr_rec_tab.attribute4(i)              :=  p_ext_attr_tbl(i).attribute4;
2927      p_ext_attr_rec_tab.attribute5(i)              :=  p_ext_attr_tbl(i).attribute5;
2928      p_ext_attr_rec_tab.attribute6(i)              :=  p_ext_attr_tbl(i).attribute6;
2929      p_ext_attr_rec_tab.attribute7(i)              :=  p_ext_attr_tbl(i).attribute7;
2930      p_ext_attr_rec_tab.attribute8(i)              :=  p_ext_attr_tbl(i).attribute8;
2931      p_ext_attr_rec_tab.attribute9(i)              :=  p_ext_attr_tbl(i).attribute9;
2932      p_ext_attr_rec_tab.attribute10(i)             :=  p_ext_attr_tbl(i).attribute10;
2933      p_ext_attr_rec_tab.attribute11(i)             :=  p_ext_attr_tbl(i).attribute11;
2934      p_ext_attr_rec_tab.attribute12(i)             :=  p_ext_attr_tbl(i).attribute12;
2935      p_ext_attr_rec_tab.attribute13(i)             :=  p_ext_attr_tbl(i).attribute13;
2936      p_ext_attr_rec_tab.attribute14(i)             :=  p_ext_attr_tbl(i).attribute14;
2937      p_ext_attr_rec_tab.attribute15(i)             :=  p_ext_attr_tbl(i).attribute15;
2938      p_ext_attr_rec_tab.object_version_number(i)   :=  p_ext_attr_tbl(i).object_version_number;
2939      p_ext_attr_rec_tab.parent_tbl_index(i)        :=  p_ext_attr_tbl(i).parent_tbl_index;
2940 
2941    END LOOP;
2942 END Build_Ext_Attr_Rec_Table;
2943 --
2944 PROCEDURE Build_Ext_Attr_Hist_Rec_Table
2945    (
2946      p_ext_attr_hist_tbl  IN  csi_datastructures_pub.ext_attrib_val_history_tbl
2947     ,p_ext_attr_hist_rec_tab IN OUT NOCOPY  csi_item_instance_grp.ext_attrib_val_hist_rec_tab
2948    ) IS
2949 BEGIN
2950    FOR i in p_ext_attr_hist_tbl.FIRST .. p_ext_attr_hist_tbl.LAST LOOP
2951 
2952       p_ext_attr_hist_rec_tab.attribute_value_history_id(i) := p_ext_attr_hist_tbl(i).attribute_value_history_id;
2953       p_ext_attr_hist_rec_tab.attribute_value_id(i)       := p_ext_attr_hist_tbl(i).attribute_value_id;
2954       p_ext_attr_hist_rec_tab.transaction_id(i)           := p_ext_attr_hist_tbl(i).transaction_id;
2955       p_ext_attr_hist_rec_tab.old_attribute_value(i)      := p_ext_attr_hist_tbl(i).old_attribute_value;
2956       p_ext_attr_hist_rec_tab.new_attribute_value(i)      := p_ext_attr_hist_tbl(i).new_attribute_value;
2957       p_ext_attr_hist_rec_tab.old_active_start_date(i)    := p_ext_attr_hist_tbl(i).old_active_start_date;
2958       p_ext_attr_hist_rec_tab.new_active_start_date(i)    := p_ext_attr_hist_tbl(i).new_active_start_date;
2959       p_ext_attr_hist_rec_tab.old_active_end_date(i)      := p_ext_attr_hist_tbl(i).old_active_end_date;
2960       p_ext_attr_hist_rec_tab.new_active_end_date(i)      := p_ext_attr_hist_tbl(i).new_active_end_date;
2961       p_ext_attr_hist_rec_tab.old_context(i)              := p_ext_attr_hist_tbl(i).old_context;
2962       p_ext_attr_hist_rec_tab.new_context(i)              := p_ext_attr_hist_tbl(i).new_context;
2963       p_ext_attr_hist_rec_tab.old_attribute1(i)           := p_ext_attr_hist_tbl(i).old_attribute1;
2964       p_ext_attr_hist_rec_tab.new_attribute1(i)           := p_ext_attr_hist_tbl(i).new_attribute1;
2965       p_ext_attr_hist_rec_tab.old_attribute2(i)           := p_ext_attr_hist_tbl(i).old_attribute2;
2966       p_ext_attr_hist_rec_tab.new_attribute2(i)           := p_ext_attr_hist_tbl(i).new_attribute2;
2967       p_ext_attr_hist_rec_tab.old_attribute3(i)           := p_ext_attr_hist_tbl(i).old_attribute3;
2968       p_ext_attr_hist_rec_tab.new_attribute3(i)           := p_ext_attr_hist_tbl(i).new_attribute3;
2969       p_ext_attr_hist_rec_tab.old_attribute4(i)           := p_ext_attr_hist_tbl(i).old_attribute4;
2970       p_ext_attr_hist_rec_tab.new_attribute4(i)           := p_ext_attr_hist_tbl(i).new_attribute4;
2971       p_ext_attr_hist_rec_tab.old_attribute5(i)           := p_ext_attr_hist_tbl(i).old_attribute5;
2972       p_ext_attr_hist_rec_tab.new_attribute5(i)           := p_ext_attr_hist_tbl(i).new_attribute5;
2973       p_ext_attr_hist_rec_tab.old_attribute6(i)           := p_ext_attr_hist_tbl(i).old_attribute6;
2974       p_ext_attr_hist_rec_tab.new_attribute6(i)           := p_ext_attr_hist_tbl(i).new_attribute6;
2975       p_ext_attr_hist_rec_tab.old_attribute7(i)           := p_ext_attr_hist_tbl(i).old_attribute7;
2976       p_ext_attr_hist_rec_tab.new_attribute7(i)           := p_ext_attr_hist_tbl(i).new_attribute7;
2977       p_ext_attr_hist_rec_tab.old_attribute8(i)           := p_ext_attr_hist_tbl(i).old_attribute8;
2978       p_ext_attr_hist_rec_tab.new_attribute8(i)           := p_ext_attr_hist_tbl(i).new_attribute8;
2979       p_ext_attr_hist_rec_tab.old_attribute9(i)           := p_ext_attr_hist_tbl(i).old_attribute9;
2980       p_ext_attr_hist_rec_tab.new_attribute9(i)           := p_ext_attr_hist_tbl(i).new_attribute9;
2981       p_ext_attr_hist_rec_tab.old_attribute10(i)          := p_ext_attr_hist_tbl(i).old_attribute10;
2982       p_ext_attr_hist_rec_tab.new_attribute10(i)          := p_ext_attr_hist_tbl(i).new_attribute10;
2983       p_ext_attr_hist_rec_tab.old_attribute11(i)          := p_ext_attr_hist_tbl(i).old_attribute11;
2984       p_ext_attr_hist_rec_tab.new_attribute11(i)          := p_ext_attr_hist_tbl(i).new_attribute11;
2985       p_ext_attr_hist_rec_tab.old_attribute12(i)          := p_ext_attr_hist_tbl(i).old_attribute12;
2986       p_ext_attr_hist_rec_tab.new_attribute12(i)          := p_ext_attr_hist_tbl(i).new_attribute12;
2987       p_ext_attr_hist_rec_tab.old_attribute13(i)          := p_ext_attr_hist_tbl(i).old_attribute13;
2988       p_ext_attr_hist_rec_tab.new_attribute13(i)          := p_ext_attr_hist_tbl(i).new_attribute13;
2989       p_ext_attr_hist_rec_tab.old_attribute14(i)          := p_ext_attr_hist_tbl(i).old_attribute14;
2990       p_ext_attr_hist_rec_tab.new_attribute14(i)          := p_ext_attr_hist_tbl(i).new_attribute14;
2991       p_ext_attr_hist_rec_tab.old_attribute15(i)          := p_ext_attr_hist_tbl(i).old_attribute15;
2992       p_ext_attr_hist_rec_tab.new_attribute15(i)          := p_ext_attr_hist_tbl(i).new_attribute15;
2993       p_ext_attr_hist_rec_tab.instance_id(i)              := p_ext_attr_hist_tbl(i).instance_id;
2994       p_ext_attr_hist_rec_tab.attribute_code(i)           := p_ext_attr_hist_tbl(i).attribute_code;
2995 
2996    END LOOP;
2997 END Build_Ext_Attr_Hist_Rec_Table;
2998 --
2999 PROCEDURE Build_Asset_Rec_Table
3000    (
3001      p_asset_tbl     IN     csi_datastructures_pub.instance_asset_tbl
3002     ,p_asset_rec_tab IN OUT NOCOPY  csi_item_instance_grp.instance_asset_rec_tab
3003    ) IS
3004 
3005 BEGIN
3006    FOR i in p_asset_tbl.FIRST .. p_asset_tbl.LAST LOOP
3007 
3008      p_asset_rec_tab.instance_asset_id(i)          := p_asset_tbl(i).instance_asset_id;
3009      p_asset_rec_tab.instance_id(i)                := p_asset_tbl(i).instance_id;
3010      p_asset_rec_tab.fa_asset_id(i)                := p_asset_tbl(i).fa_asset_id;
3011      p_asset_rec_tab.fa_book_type_code(i)          := p_asset_tbl(i).fa_book_type_code;
3012      p_asset_rec_tab.fa_location_id(i)             := p_asset_tbl(i).fa_location_id;
3013      p_asset_rec_tab.asset_quantity(i)             := p_asset_tbl(i).asset_quantity;
3014      p_asset_rec_tab.update_status(i)              := p_asset_tbl(i).update_status;
3015      p_asset_rec_tab.active_start_date(i)          := p_asset_tbl(i).active_start_date;
3016      p_asset_rec_tab.active_end_date(i)            := p_asset_tbl(i).active_end_date;
3017      p_asset_rec_tab.object_version_number(i)      := p_asset_tbl(i).object_version_number;
3018      p_asset_rec_tab.check_for_instance_expiry(i)  := p_asset_tbl(i).check_for_instance_expiry;
3019      p_asset_rec_tab.parent_tbl_index(i)           := p_asset_tbl(i).parent_tbl_index;
3020      p_asset_rec_tab.fa_sync_flag(i)               := p_asset_tbl(i).fa_sync_flag;
3021 
3022    END LOOP;
3023 END Build_Asset_Rec_Table;
3024 --
3025 PROCEDURE Build_Asset_Hist_Rec_Table
3026    (
3027      p_asset_hist_tbl  IN  csi_datastructures_pub.ins_asset_history_tbl
3028     ,p_asset_hist_rec_tab IN OUT NOCOPY  csi_item_instance_grp.ins_asset_history_rec_tab
3029    ) IS
3030 BEGIN
3031    FOR i in p_asset_hist_tbl.FIRST .. p_asset_hist_tbl.LAST LOOP
3032 
3033      p_asset_hist_rec_tab.instance_asset_history_id(i)    := p_asset_hist_tbl(i).instance_asset_history_id;
3034      p_asset_hist_rec_tab.transaction_id(i)               := p_asset_hist_tbl(i).transaction_id;
3035      p_asset_hist_rec_tab.instance_asset_id(i)            := p_asset_hist_tbl(i).instance_asset_id;
3036      p_asset_hist_rec_tab.old_instance_id(i)              := p_asset_hist_tbl(i).old_instance_id;
3037      p_asset_hist_rec_tab.new_instance_id(i)              := p_asset_hist_tbl(i).new_instance_id;
3038      p_asset_hist_rec_tab.old_fa_asset_id(i)              := p_asset_hist_tbl(i).old_fa_asset_id;
3039      p_asset_hist_rec_tab.new_fa_asset_id(i)              := p_asset_hist_tbl(i).new_fa_asset_id;
3040      p_asset_hist_rec_tab.old_fa_book_type_code(i)        := p_asset_hist_tbl(i).old_fa_book_type_code;
3041      p_asset_hist_rec_tab.new_fa_book_type_code(i)        := p_asset_hist_tbl(i).new_fa_book_type_code;
3042      p_asset_hist_rec_tab.old_fa_location_id(i)           := p_asset_hist_tbl(i).old_fa_location_id;
3043      p_asset_hist_rec_tab.new_fa_location_id(i)           := p_asset_hist_tbl(i).new_fa_location_id;
3044      p_asset_hist_rec_tab.old_asset_quantity(i)           := p_asset_hist_tbl(i).old_asset_quantity;
3045      p_asset_hist_rec_tab.new_asset_quantity(i)           := p_asset_hist_tbl(i).new_asset_quantity;
3046      p_asset_hist_rec_tab.old_update_status(i)            := p_asset_hist_tbl(i).old_update_status;
3047      p_asset_hist_rec_tab.new_update_status(i)            := p_asset_hist_tbl(i).new_update_status;
3048      p_asset_hist_rec_tab.old_active_start_date(i)        := p_asset_hist_tbl(i).old_active_start_date;
3049      p_asset_hist_rec_tab.new_active_start_date(i)        := p_asset_hist_tbl(i).new_active_start_date;
3050      p_asset_hist_rec_tab.old_active_end_date(i)          := p_asset_hist_tbl(i).old_active_end_date;
3051      p_asset_hist_rec_tab.new_active_end_date(i)          := p_asset_hist_tbl(i).new_active_end_date;
3052      p_asset_hist_rec_tab.old_asset_number(i)             := p_asset_hist_tbl(i).old_asset_number;
3053      p_asset_hist_rec_tab.new_asset_number(i)             := p_asset_hist_tbl(i).new_asset_number;
3054      p_asset_hist_rec_tab.old_serial_number(i)            := p_asset_hist_tbl(i).old_serial_number;
3055      p_asset_hist_rec_tab.new_serial_number(i)            := p_asset_hist_tbl(i).new_serial_number;
3056      p_asset_hist_rec_tab.old_tag_number(i)               := p_asset_hist_tbl(i).old_tag_number;
3057      p_asset_hist_rec_tab.new_tag_number(i)               := p_asset_hist_tbl(i).new_tag_number;
3058      p_asset_hist_rec_tab.old_category(i)                 := p_asset_hist_tbl(i).old_category;
3059      p_asset_hist_rec_tab.new_category(i)                 := p_asset_hist_tbl(i).new_category;
3060      p_asset_hist_rec_tab.old_fa_location_segment1(i)     := p_asset_hist_tbl(i).old_fa_location_segment1;
3061      p_asset_hist_rec_tab.new_fa_location_segment1(i)     := p_asset_hist_tbl(i).new_fa_location_segment1;
3062      p_asset_hist_rec_tab.old_fa_location_segment2(i)     := p_asset_hist_tbl(i).old_fa_location_segment2;
3063      p_asset_hist_rec_tab.new_fa_location_segment2(i)     := p_asset_hist_tbl(i).new_fa_location_segment2;
3064      p_asset_hist_rec_tab.old_fa_location_segment3(i)     := p_asset_hist_tbl(i).old_fa_location_segment3;
3065      p_asset_hist_rec_tab.new_fa_location_segment3(i)     := p_asset_hist_tbl(i).new_fa_location_segment3;
3066      p_asset_hist_rec_tab.old_fa_location_segment4(i)     := p_asset_hist_tbl(i).old_fa_location_segment4;
3067      p_asset_hist_rec_tab.new_fa_location_segment4(i)     := p_asset_hist_tbl(i).new_fa_location_segment4;
3068      p_asset_hist_rec_tab.old_fa_location_segment5(i)     := p_asset_hist_tbl(i).old_fa_location_segment5;
3069      p_asset_hist_rec_tab.new_fa_location_segment5(i)     := p_asset_hist_tbl(i).new_fa_location_segment5;
3070      p_asset_hist_rec_tab.old_fa_location_segment6(i)     := p_asset_hist_tbl(i).old_fa_location_segment6;
3071      p_asset_hist_rec_tab.new_fa_location_segment6(i)     := p_asset_hist_tbl(i).new_fa_location_segment6;
3072      p_asset_hist_rec_tab.old_fa_location_segment7(i)     := p_asset_hist_tbl(i).old_fa_location_segment7;
3073      p_asset_hist_rec_tab.new_fa_location_segment7(i)     := p_asset_hist_tbl(i).new_fa_location_segment7;
3074      p_asset_hist_rec_tab.old_date_placed_in_service(i)   := p_asset_hist_tbl(i).old_date_placed_in_service;
3075      p_asset_hist_rec_tab.new_date_placed_in_service(i)   := p_asset_hist_tbl(i).new_date_placed_in_service;
3076      p_asset_hist_rec_tab.old_description(i)              := p_asset_hist_tbl(i).old_description;
3077      p_asset_hist_rec_tab.new_description(i)              := p_asset_hist_tbl(i).new_description;
3078      p_asset_hist_rec_tab.old_employee_name(i)            := p_asset_hist_tbl(i).old_employee_name;
3079      p_asset_hist_rec_tab.new_employee_name(i)            := p_asset_hist_tbl(i).new_employee_name;
3080      p_asset_hist_rec_tab.old_expense_account_number(i)   := p_asset_hist_tbl(i).old_expense_account_number;
3081      p_asset_hist_rec_tab.new_expense_account_number(i)   := p_asset_hist_tbl(i).new_expense_account_number;
3082      p_asset_hist_rec_tab.instance_id(i)                  := p_asset_hist_tbl(i).instance_id;
3083      p_asset_hist_rec_tab.old_fa_sync_flag(i)             := p_asset_hist_tbl(i).old_fa_sync_flag;
3084      p_asset_hist_rec_tab.new_fa_sync_flag(i)             := p_asset_hist_tbl(i).new_fa_sync_flag;
3085 
3086    END LOOP;
3087 END Build_Asset_Hist_Rec_Table;
3088 --
3089 PROCEDURE Bulk_Insert
3090    (
3091      p_inst_tbl           IN  csi_datastructures_pub.instance_tbl
3092     ,p_txn_tbl            IN  csi_datastructures_pub.transaction_tbl
3093     ,p_inst_hist_tbl      IN  csi_datastructures_pub.instance_history_tbl
3094     ,p_version_label_tbl  IN  csi_datastructures_pub.version_label_tbl
3095     ,p_ver_label_hist_tbl IN  csi_datastructures_pub.version_label_history_tbl
3096     ,p_party_tbl          IN  csi_datastructures_pub.party_tbl
3097     ,p_party_hist_tbl     IN  csi_datastructures_pub.party_history_tbl
3098     ,p_account_tbl        IN  csi_datastructures_pub.party_account_tbl
3099     ,p_acct_hist_tbl      IN  csi_datastructures_pub.account_history_tbl
3100     ,p_owner_pty_acct_tbl IN  csi_item_instance_pvt.owner_pty_acct_tbl
3101     ,p_org_units_tbl      IN  csi_datastructures_pub.organization_units_tbl
3102     ,p_org_units_hist_tbl IN  csi_datastructures_pub.org_units_history_tbl
3103     ,p_pricing_tbl        IN  csi_datastructures_pub.pricing_attribs_tbl
3104     ,p_pricing_hist_tbl   IN  csi_datastructures_pub.pricing_history_tbl
3105     ,p_ext_attr_values_tbl IN csi_datastructures_pub.extend_attrib_values_tbl
3106     ,p_ext_attr_val_hist_tbl IN csi_datastructures_pub.ext_attrib_val_history_tbl
3107     ,p_asset_tbl          IN  csi_datastructures_pub.instance_asset_tbl
3108     ,p_asset_hist_tbl     IN  csi_datastructures_pub.ins_asset_history_tbl
3109     ,x_return_status      OUT NOCOPY VARCHAR2
3110    ) IS
3111    --
3112    l_inst_rec_tab                csi_item_instance_grp.instance_rec_tab;
3113    l_inst_hist_rec_tab           csi_item_instance_grp.instance_history_rec_tab;
3114    l_version_label_rec_tab       csi_item_instance_grp.version_label_rec_tab;
3115    l_ver_label_hist_rec_tab      csi_item_instance_grp.ver_label_history_rec_tab;
3116    l_party_rec_tab               csi_item_instance_grp.party_rec_tab;
3117    l_party_hist_rec_tab          csi_item_instance_grp.party_history_rec_tab;
3118    l_account_rec_tab             csi_item_instance_grp.account_rec_tab;
3119    l_acct_hist_rec_tab           csi_item_instance_grp.account_history_rec_tab;
3120    l_txn_rec_tab                 csi_item_instance_grp.transaction_rec_tab;
3121    l_owner_pty_acct_rec_tab      csi_item_instance_pvt.owner_pty_acct_rec_tab;
3122    l_ext_attr_rec_tab            csi_item_instance_grp.extend_attrib_values_rec_tab;
3123    l_ext_attr_hist_rec_tab       csi_item_instance_grp.ext_attrib_val_hist_rec_tab;
3124    l_asset_rec_tab               csi_item_instance_grp.instance_asset_rec_tab;
3125    l_asset_hist_rec_tab          csi_item_instance_grp.ins_asset_history_rec_tab;
3126    l_org_units_rec_tab           csi_item_instance_grp.org_units_rec_tab;
3127    l_org_hist_rec_tab            csi_item_instance_grp.org_units_history_rec_tab;
3128    l_pricing_rec_tab             csi_item_instance_grp.pricing_attribs_rec_tab;
3129    l_pricing_hist_rec_tab        csi_item_instance_grp.pricing_attribs_hist_rec_tab;
3130    --
3131    l_user_id      NUMBER := FND_GLOBAL.USER_ID;
3132    l_login_id     NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
3133    l_ctr          NUMBER;
3134 BEGIN
3135    SAVEPOINT Bulk_Insert;
3136    --
3137    x_return_status := FND_API.G_RET_STS_SUCCESS;
3138    --
3139    IF p_inst_tbl.count > 0 THEN
3140       Build_Inst_Rec_of_Table
3141          ( p_inst_tbl  => p_inst_tbl
3142           ,p_inst_rec_tab => l_inst_rec_tab
3143          );
3144       --
3145       l_ctr := l_inst_rec_tab.instance_id.count;
3146       FORALL i in 1 .. l_ctr
3147          INSERT INTO CSI_ITEM_INSTANCES(
3148          INSTANCE_ID,
3149          INSTANCE_NUMBER,
3150          EXTERNAL_REFERENCE,
3151          INVENTORY_ITEM_ID,
3152          INVENTORY_REVISION,
3153          INV_MASTER_ORGANIZATION_ID,
3154          SERIAL_NUMBER,
3155          MFG_SERIAL_NUMBER_FLAG,
3156          LOT_NUMBER,
3157          QUANTITY,
3158          UNIT_OF_MEASURE,
3159          ACCOUNTING_CLASS_CODE,
3160          INSTANCE_CONDITION_ID,
3161          INSTANCE_STATUS_ID,
3162          CUSTOMER_VIEW_FLAG,
3163          MERCHANT_VIEW_FLAG,
3164          SELLABLE_FLAG,
3165          SYSTEM_ID,
3166          INSTANCE_TYPE_CODE,
3167          ACTIVE_START_DATE,
3168          ACTIVE_END_DATE,
3169          LOCATION_TYPE_CODE,
3170          LOCATION_ID,
3171          INV_ORGANIZATION_ID,
3172          INV_SUBINVENTORY_NAME,
3173          INV_LOCATOR_ID,
3174          PA_PROJECT_ID,
3175          PA_PROJECT_TASK_ID,
3176          IN_TRANSIT_ORDER_LINE_ID,
3177          WIP_JOB_ID,
3178          PO_ORDER_LINE_ID,
3179          LAST_OE_ORDER_LINE_ID,
3180          LAST_OE_RMA_LINE_ID,
3181          LAST_PO_PO_LINE_ID,
3182          LAST_OE_PO_NUMBER,
3183          LAST_WIP_JOB_ID,
3184          LAST_PA_PROJECT_ID,
3185          LAST_PA_TASK_ID,
3186          LAST_OE_AGREEMENT_ID,
3187          INSTALL_DATE,
3188          MANUALLY_CREATED_FLAG,
3189          RETURN_BY_DATE,
3190          ACTUAL_RETURN_DATE,
3191          CREATION_COMPLETE_FLAG,
3192          COMPLETENESS_FLAG,
3193          CONTEXT,
3194 	 ATTRIBUTE1,
3195 	 ATTRIBUTE2,
3196 	 ATTRIBUTE3,
3197 	 ATTRIBUTE4,
3198 	 ATTRIBUTE5,
3199 	 ATTRIBUTE6,
3200 	 ATTRIBUTE7,
3201 	 ATTRIBUTE8,
3202 	 ATTRIBUTE9,
3203 	 ATTRIBUTE10,
3204 	 ATTRIBUTE11,
3205 	 ATTRIBUTE12,
3206 	 ATTRIBUTE13,
3207 	 ATTRIBUTE14,
3208 	 ATTRIBUTE15,
3209 	 CREATED_BY,
3210 	 CREATION_DATE,
3211 	 LAST_UPDATED_BY,
3212 	 LAST_UPDATE_DATE,
3213 	 LAST_UPDATE_LOGIN,
3214 	 OBJECT_VERSION_NUMBER,
3215 	 LAST_TXN_LINE_DETAIL_ID,
3216 	 INSTALL_LOCATION_TYPE_CODE,
3217 	 INSTALL_LOCATION_ID,
3218 	 INSTANCE_USAGE_CODE,
3219          LAST_VLD_ORGANIZATION_ID,
3220          CONFIG_INST_HDR_ID,
3221          CONFIG_INST_REV_NUM,
3222          CONFIG_INST_ITEM_ID,
3223          CONFIG_VALID_STATUS,
3224          INSTANCE_DESCRIPTION,
3225          NETWORK_ASSET_FLAG,
3226          MAINTAINABLE_FLAG ,
3227          ASSET_CRITICALITY_CODE,
3228          CATEGORY_ID           ,
3229          EQUIPMENT_GEN_OBJECT_ID,
3230          INSTANTIATION_FLAG     ,
3231          OPERATIONAL_LOG_FLAG   ,
3232          SUPPLIER_WARRANTY_EXP_DATE,
3233          ATTRIBUTE16 ,
3234          ATTRIBUTE17 ,
3235          ATTRIBUTE18 ,
3236          ATTRIBUTE19 ,
3237          ATTRIBUTE20 ,
3238          ATTRIBUTE21 ,
3239          ATTRIBUTE22 ,
3240          ATTRIBUTE23 ,
3241          ATTRIBUTE24 ,
3242          ATTRIBUTE25 ,
3243          ATTRIBUTE26 ,
3244          ATTRIBUTE27 ,
3245          ATTRIBUTE28 ,
3246          ATTRIBUTE29 ,
3247          ATTRIBUTE30 ,
3248 	 PURCHASE_UNIT_PRICE ,
3249 	 PURCHASE_CURRENCY_CODE ,
3250 	 PAYABLES_UNIT_PRICE ,
3251 	 PAYABLES_CURRENCY_CODE ,
3252 	 SALES_UNIT_PRICE ,
3253 	 SALES_CURRENCY_CODE ,
3254 	 OPERATIONAL_STATUS_CODE
3255          ) VALUES(
3256           l_inst_rec_tab.INSTANCE_ID(i),
3257 	  decode( l_inst_rec_tab.INSTANCE_NUMBER(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.INSTANCE_NUMBER(i)),
3258 	  decode( l_inst_rec_tab.EXTERNAL_REFERENCE(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.EXTERNAL_REFERENCE(i)),
3259 	  decode( l_inst_rec_tab.INVENTORY_ITEM_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.INVENTORY_ITEM_ID(i)),
3260 	  decode( l_inst_rec_tab.INVENTORY_REVISION(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.INVENTORY_REVISION(i)),
3261 	  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)),
3262 	  decode( l_inst_rec_tab.SERIAL_NUMBER(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.SERIAL_NUMBER(i)),
3263 	  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)),
3264 	  decode( l_inst_rec_tab.LOT_NUMBER(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.LOT_NUMBER(i)),
3265 	  decode( l_inst_rec_tab.QUANTITY(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.QUANTITY(i)),
3266 	  decode( l_inst_rec_tab.UNIT_OF_MEASURE(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.UNIT_OF_MEASURE(i)),
3267 	  decode( l_inst_rec_tab.ACCOUNTING_CLASS_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ACCOUNTING_CLASS_CODE(i)),
3268 	  decode( l_inst_rec_tab.INSTANCE_CONDITION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.INSTANCE_CONDITION_ID(i)),
3269 	  decode( l_inst_rec_tab.INSTANCE_STATUS_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.INSTANCE_STATUS_ID(i)),
3270 	  decode( l_inst_rec_tab.CUSTOMER_VIEW_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.CUSTOMER_VIEW_FLAG(i)),
3271 	  decode( l_inst_rec_tab.MERCHANT_VIEW_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.MERCHANT_VIEW_FLAG(i)),
3272 	  decode( l_inst_rec_tab.SELLABLE_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.SELLABLE_FLAG(i)),
3273 	  decode( l_inst_rec_tab.SYSTEM_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.SYSTEM_ID(i)),
3274 	  decode( l_inst_rec_tab.INSTANCE_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.INSTANCE_TYPE_CODE(i)),
3275 	  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)),
3276 	  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)),
3277 	  decode( l_inst_rec_tab.LOCATION_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.LOCATION_TYPE_CODE(i)),
3278 	  decode( l_inst_rec_tab.LOCATION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.LOCATION_ID(i)),
3279 	  decode( l_inst_rec_tab.INV_ORGANIZATION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.INV_ORGANIZATION_ID(i)),
3280 	  decode( l_inst_rec_tab.INV_SUBINVENTORY_NAME(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.INV_SUBINVENTORY_NAME(i)),
3281 	  decode( l_inst_rec_tab.INV_LOCATOR_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.INV_LOCATOR_ID(i)),
3282 	  decode( l_inst_rec_tab.PA_PROJECT_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.PA_PROJECT_ID(i)),
3283 	  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)),
3284 	  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)),
3285 	  decode( l_inst_rec_tab.WIP_JOB_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.WIP_JOB_ID(i)),
3286 	  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)),
3287 	  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)),
3288 	  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)),
3289 	  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)),
3290 	  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)),
3291 	  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)),
3292 	  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)),
3293 	  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)),
3294 	  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)),
3295 	  decode( l_inst_rec_tab.INSTALL_DATE(i), FND_API.G_MISS_DATE, TO_DATE(NULL), l_inst_rec_tab.INSTALL_DATE(i)),
3296 	  decode( l_inst_rec_tab.MANUALLY_CREATED_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.MANUALLY_CREATED_FLAG(i)),
3297 	  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)),
3298 	  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)),
3299 	  decode( l_inst_rec_tab.CREATION_COMPLETE_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.CREATION_COMPLETE_FLAG(i)),
3300 	  decode( l_inst_rec_tab.COMPLETENESS_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.COMPLETENESS_FLAG(i)),
3301 	  decode( l_inst_rec_tab.CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.CONTEXT(i)),
3302 	  decode( l_inst_rec_tab.ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE1(i)),
3303 	  decode( l_inst_rec_tab.ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE2(i)),
3304 	  decode( l_inst_rec_tab.ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE3(i)),
3305 	  decode( l_inst_rec_tab.ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE4(i)),
3306 	  decode( l_inst_rec_tab.ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE5(i)),
3307 	  decode( l_inst_rec_tab.ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE6(i)),
3308 	  decode( l_inst_rec_tab.ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE7(i)),
3309 	  decode( l_inst_rec_tab.ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE8(i)),
3310 	  decode( l_inst_rec_tab.ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE9(i)),
3311 	  decode( l_inst_rec_tab.ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE10(i)),
3312 	  decode( l_inst_rec_tab.ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE11(i)),
3313 	  decode( l_inst_rec_tab.ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE12(i)),
3314 	  decode( l_inst_rec_tab.ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE13(i)),
3315 	  decode( l_inst_rec_tab.ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE14(i)),
3316 	  decode( l_inst_rec_tab.ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE15(i)),
3317 	  l_user_id,
3318 	  SYSDATE,
3319 	  l_user_id,
3320 	  SYSDATE,
3321 	  l_login_id,
3322 	  1,
3323 	  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)),
3324 	  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)),
3325 	  decode( l_inst_rec_tab.INSTALL_LOCATION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.INSTALL_LOCATION_ID(i)),
3326 	  decode( l_inst_rec_tab.INSTANCE_USAGE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.INSTANCE_USAGE_CODE(i)),
3327 	  decode( l_inst_rec_tab.vld_organization_id(i), FND_API.G_MISS_NUM, NULL, l_inst_rec_tab.vld_organization_id(i)),
3328           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)),
3329           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)),
3330           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)),
3331           decode( l_inst_rec_tab.CONFIG_VALID_STATUS(i), FND_API.G_MISS_CHAR, NULL,l_inst_rec_tab.CONFIG_VALID_STATUS(i)),
3332           decode( l_inst_rec_tab.INSTANCE_DESCRIPTION(i), FND_API.G_MISS_CHAR, NULL,l_inst_rec_tab.INSTANCE_DESCRIPTION(i)),
3333           decode( l_inst_rec_tab.NETWORK_ASSET_FLAG(i), FND_API.G_MISS_CHAR, NULL,l_inst_rec_tab.NETWORK_ASSET_FLAG(i)),
3334           decode( l_inst_rec_tab.MAINTAINABLE_FLAG(i), FND_API.G_MISS_CHAR, NULL,l_inst_rec_tab.MAINTAINABLE_FLAG(i)),
3335           decode( l_inst_rec_tab.ASSET_CRITICALITY_CODE(i), FND_API.G_MISS_CHAR, NULL,l_inst_rec_tab.ASSET_CRITICALITY_CODE(i)),
3336           decode( l_inst_rec_tab.CATEGORY_ID(i), FND_API.G_MISS_NUM, NULL,l_inst_rec_tab.CATEGORY_ID(i)),
3337           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)),
3338           decode( l_inst_rec_tab.INSTANTIATION_FLAG(i), FND_API.G_MISS_CHAR, NULL,l_inst_rec_tab.INSTANTIATION_FLAG(i)),
3339           decode( l_inst_rec_tab.OPERATIONAL_LOG_FLAG(i), FND_API.G_MISS_CHAR, NULL,l_inst_rec_tab.OPERATIONAL_LOG_FLAG(i)),
3340           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)),
3341 	  decode( l_inst_rec_tab.ATTRIBUTE16(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE16(i)),
3342 	  decode( l_inst_rec_tab.ATTRIBUTE17(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE17(i)),
3343 	  decode( l_inst_rec_tab.ATTRIBUTE18(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE18(i)),
3344 	  decode( l_inst_rec_tab.ATTRIBUTE19(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE19(i)),
3345 	  decode( l_inst_rec_tab.ATTRIBUTE20(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE20(i)),
3346 	  decode( l_inst_rec_tab.ATTRIBUTE21(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE21(i)),
3347 	  decode( l_inst_rec_tab.ATTRIBUTE22(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE22(i)),
3348 	  decode( l_inst_rec_tab.ATTRIBUTE23(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE23(i)),
3349 	  decode( l_inst_rec_tab.ATTRIBUTE24(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE24(i)),
3350 	  decode( l_inst_rec_tab.ATTRIBUTE25(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE25(i)),
3351 	  decode( l_inst_rec_tab.ATTRIBUTE26(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE26(i)),
3352 	  decode( l_inst_rec_tab.ATTRIBUTE27(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE27(i)),
3353 	  decode( l_inst_rec_tab.ATTRIBUTE28(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE28(i)),
3354 	  decode( l_inst_rec_tab.ATTRIBUTE29(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE29(i)),
3355 	  decode( l_inst_rec_tab.ATTRIBUTE30(i), FND_API.G_MISS_CHAR, NULL, l_inst_rec_tab.ATTRIBUTE30(i)),
3356 	  decode( l_inst_rec_tab.PURCHASE_UNIT_PRICE(i),FND_API.G_MISS_NUM, NULL,l_inst_rec_tab.PURCHASE_UNIT_PRICE(i)),
3357 	  decode( l_inst_rec_tab.PURCHASE_CURRENCY_CODE(i),FND_API.G_MISS_CHAR, NULL,l_inst_rec_tab.PURCHASE_CURRENCY_CODE(i)),
3358 	 decode( l_inst_rec_tab.PAYABLES_UNIT_PRICE(i),FND_API.G_MISS_NUM, NULL,l_inst_rec_tab.PAYABLES_UNIT_PRICE(i)),
3359 	 decode( l_inst_rec_tab.PAYABLES_CURRENCY_CODE(i),FND_API.G_MISS_CHAR, NULL,l_inst_rec_tab.PAYABLES_CURRENCY_CODE(i)),
3360 	 decode(l_inst_rec_tab.SALES_UNIT_PRICE(i),FND_API.G_MISS_NUM, NULL,l_inst_rec_tab.SALES_UNIT_PRICE(i)),
3361 	 decode( l_inst_rec_tab.SALES_CURRENCY_CODE(i),FND_API.G_MISS_CHAR, NULL,l_inst_rec_tab.SALES_CURRENCY_CODE(i)),
3362 	 decode( l_inst_rec_tab.OPERATIONAL_STATUS_CODE(i),FND_API.G_MISS_CHAR, NULL,l_inst_rec_tab.OPERATIONAL_STATUS_CODE(i))
3363          );
3364    END IF;
3365    --
3366    IF p_txn_tbl.count > 0 THEN
3367       Build_Txn_Rec_of_Table
3368         (
3369           p_txn_tbl     => p_txn_tbl
3370          ,p_txn_rec_tab => l_txn_rec_tab
3371         );
3372       --
3373       l_ctr := l_txn_rec_tab.transaction_id.count;
3374       --
3375       FORALL i in 1 .. l_ctr
3376          INSERT INTO CSI_TRANSACTIONS(
3377 	    transaction_id,
3378 	    transaction_date,
3379 	    source_transaction_date,
3380 	    transaction_type_id,
3381 	    txn_sub_type_id,
3382 	    source_group_ref_id,
3383 	    source_group_ref,
3384 	    source_header_ref_id,
3385 	    source_header_ref,
3386 	    source_line_ref_id,
3387 	    source_line_ref,
3388 	    source_dist_ref_id1,
3389 	    source_dist_ref_id2,
3390 	    inv_material_transaction_id,
3391 	    transaction_quantity,
3392 	    transaction_uom_code,
3393 	    transacted_by,
3394 	    transaction_status_code,
3395 	    transaction_action_code,
3396 	    message_id,
3397 	    context,
3398 	    attribute1,
3399 	    attribute2,
3400 	    attribute3,
3401 	    attribute4,
3402 	    attribute5,
3403 	    attribute6,
3404 	    attribute7,
3405 	    attribute8,
3406 	    attribute9,
3407 	    attribute10,
3408 	    attribute11,
3409 	    attribute12,
3410 	    attribute13,
3411 	    attribute14,
3412 	    attribute15,
3413 	    created_by,
3414 	    creation_date,
3415 	    last_updated_by,
3416 	    last_update_date,
3417 	    last_update_login,
3418 	    object_version_number,
3419 	    split_reason_code,
3420             gl_interface_status_code
3421 	   ) VALUES (
3422 	    l_txn_rec_tab.transaction_id(i),
3423 	    decode( l_txn_rec_tab.transaction_date(i), fnd_api.g_miss_date, to_date(null), l_txn_rec_tab.transaction_date(i)),
3424 	    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)),
3425 	    decode( l_txn_rec_tab.transaction_type_id(i), fnd_api.g_miss_num, null, l_txn_rec_tab.transaction_type_id(i)),
3426 	    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)),
3427 	    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)),
3428 	    decode( l_txn_rec_tab.source_group_ref(i), fnd_api.g_miss_char, null, l_txn_rec_tab.source_group_ref(i)),
3429 	    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)),
3430 	    decode( l_txn_rec_tab.source_header_ref(i), fnd_api.g_miss_char, null, l_txn_rec_tab.source_header_ref(i)),
3431 	    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)),
3432 	    decode( l_txn_rec_tab.source_line_ref(i), fnd_api.g_miss_char, null, l_txn_rec_tab.source_line_ref(i)),
3433 	    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)),
3434 	    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)),
3435 	    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)),
3436 	    decode( l_txn_rec_tab.transaction_quantity(i), fnd_api.g_miss_num, null, l_txn_rec_tab.transaction_quantity(i)),
3437 	    decode( l_txn_rec_tab.transaction_uom_code(i), fnd_api.g_miss_char, null, l_txn_rec_tab.transaction_uom_code(i)),
3438 	    decode( l_txn_rec_tab.transacted_by(i), fnd_api.g_miss_num, null, l_txn_rec_tab.transacted_by(i)),
3439 	    decode( l_txn_rec_tab.transaction_status_code(i), fnd_api.g_miss_char, null, l_txn_rec_tab.transaction_status_code(i)),
3440 	    decode( l_txn_rec_tab.transaction_action_code(i), fnd_api.g_miss_char, null, l_txn_rec_tab.transaction_action_code(i)),
3441 	    decode( l_txn_rec_tab.message_id(i), fnd_api.g_miss_num, null, l_txn_rec_tab.message_id(i)),
3442 	    decode( l_txn_rec_tab.context(i), fnd_api.g_miss_char, null, l_txn_rec_tab.context(i)),
3443 	    decode( l_txn_rec_tab.attribute1(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute1(i)),
3444 	    decode( l_txn_rec_tab.attribute2(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute2(i)),
3445 	    decode( l_txn_rec_tab.attribute3(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute3(i)),
3446 	    decode( l_txn_rec_tab.attribute4(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute4(i)),
3447 	    decode( l_txn_rec_tab.attribute5(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute5(i)),
3448 	    decode( l_txn_rec_tab.attribute6(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute6(i)),
3449 	    decode( l_txn_rec_tab.attribute7(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute7(i)),
3450 	    decode( l_txn_rec_tab.attribute8(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute8(i)),
3451 	    decode( l_txn_rec_tab.attribute9(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute9(i)),
3452 	    decode( l_txn_rec_tab.attribute10(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute10(i)),
3453 	    decode( l_txn_rec_tab.attribute11(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute11(i)),
3454 	    decode( l_txn_rec_tab.attribute12(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute12(i)),
3455 	    decode( l_txn_rec_tab.attribute13(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute13(i)),
3456 	    decode( l_txn_rec_tab.attribute14(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute14(i)),
3457 	    decode( l_txn_rec_tab.attribute15(i), fnd_api.g_miss_char, null, l_txn_rec_tab.attribute15(i)),
3458 	    l_user_id,
3459 	    SYSDATE,
3460 	    l_user_id,
3461 	    SYSDATE,
3462 	    l_login_id,
3463 	    1,
3464 	    decode( l_txn_rec_tab.split_reason_code(i), fnd_api.g_miss_char, null, l_txn_rec_tab.split_reason_code(i)),
3465 	    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))
3466 	    );
3467    END IF;
3468    --
3469    IF p_inst_hist_tbl.count > 0 THEN
3470       Build_Inst_Hist_Rec_of_Table
3471        ( p_inst_hist_tbl     => p_inst_hist_tbl
3472         ,p_inst_hist_rec_tab => l_inst_hist_rec_tab
3473        );
3474       --
3475       l_ctr := l_inst_hist_rec_tab.instance_history_id.count;
3476       --
3477       FORALL i in 1 .. l_ctr
3478          INSERT INTO CSI_ITEM_INSTANCES_H(
3479 		 INSTANCE_HISTORY_ID,
3480 		 INSTANCE_ID,
3481 		 TRANSACTION_ID,
3482 		 OLD_INSTANCE_NUMBER,
3483 		 NEW_INSTANCE_NUMBER,
3484 		 OLD_EXTERNAL_REFERENCE,
3485 		 NEW_EXTERNAL_REFERENCE,
3486 		 OLD_INVENTORY_ITEM_ID,
3487 		 NEW_INVENTORY_ITEM_ID,
3488 		 OLD_INVENTORY_REVISION,
3489 		 NEW_INVENTORY_REVISION,
3490 		 OLD_INV_MASTER_ORGANIZATION_ID,
3491 		 NEW_INV_MASTER_ORGANIZATION_ID,
3492 		 OLD_SERIAL_NUMBER,
3493 		 NEW_SERIAL_NUMBER ,
3494 		 OLD_MFG_SERIAL_NUMBER_FLAG,
3495 		 NEW_MFG_SERIAL_NUMBER_FLAG,
3496 		 OLD_LOT_NUMBER,
3497 		 NEW_LOT_NUMBER,
3498 		 OLD_QUANTITY,
3499 		 NEW_QUANTITY,
3500 		 OLD_UNIT_OF_MEASURE,
3501 		 NEW_UNIT_OF_MEASURE,
3502 		 OLD_ACCOUNTING_CLASS_CODE,
3503 		 NEW_ACCOUNTING_CLASS_CODE,
3504 		 OLD_INSTANCE_CONDITION_ID,
3505 		 NEW_INSTANCE_CONDITION_ID,
3506 		 OLD_INSTANCE_STATUS_ID,
3507 		 NEW_INSTANCE_STATUS_ID,
3508 		 OLD_CUSTOMER_VIEW_FLAG,
3509 		 NEW_CUSTOMER_VIEW_FLAG,
3510 		 OLD_MERCHANT_VIEW_FLAG,
3511 		 NEW_MERCHANT_VIEW_FLAG,
3512 		 OLD_SELLABLE_FLAG,
3513 		 NEW_SELLABLE_FLAG,
3514 		 OLD_SYSTEM_ID,
3515 		 NEW_SYSTEM_ID,
3516 		 OLD_INSTANCE_TYPE_CODE,
3517 		 NEW_INSTANCE_TYPE_CODE,
3518 		 OLD_ACTIVE_START_DATE,
3519 		 NEW_ACTIVE_START_DATE,
3520 		 OLD_ACTIVE_END_DATE,
3521 		 NEW_ACTIVE_END_DATE,
3522 		 OLD_LOCATION_TYPE_CODE,
3523 		 NEW_LOCATION_TYPE_CODE,
3524 		 OLD_LOCATION_ID,
3525 		 NEW_LOCATION_ID,
3526 		 OLD_INV_ORGANIZATION_ID,
3527 		 NEW_INV_ORGANIZATION_ID,
3528 		 OLD_INV_SUBINVENTORY_NAME,
3529 		 NEW_INV_SUBINVENTORY_NAME,
3530 		 OLD_INV_LOCATOR_ID,
3531 		 NEW_INV_LOCATOR_ID,
3532 		 OLD_PA_PROJECT_ID,
3533 		 NEW_PA_PROJECT_ID,
3534 		 OLD_PA_PROJECT_TASK_ID,
3535 		 NEW_PA_PROJECT_TASK_ID,
3536 		 OLD_IN_TRANSIT_ORDER_LINE_ID,
3537 		 NEW_IN_TRANSIT_ORDER_LINE_ID,
3538 		 OLD_WIP_JOB_ID,
3539 		 NEW_WIP_JOB_ID,
3540 		 OLD_PO_ORDER_LINE_ID,
3541 		 NEW_PO_ORDER_LINE_ID,
3542 		 OLD_COMPLETENESS_FLAG,
3543 		 NEW_COMPLETENESS_FLAG,
3544 		 FULL_DUMP_FLAG,
3545 		 OLD_CONTEXT,
3546 		 NEW_CONTEXT,
3547 		 OLD_ATTRIBUTE1,
3548 		 NEW_ATTRIBUTE1,
3549 		 OLD_ATTRIBUTE2,
3550 		 NEW_ATTRIBUTE2,
3551 		 OLD_ATTRIBUTE3,
3552 		 NEW_ATTRIBUTE3,
3553 		 OLD_ATTRIBUTE4,
3554 		 NEW_ATTRIBUTE4,
3555 		 OLD_ATTRIBUTE5,
3556 		 NEW_ATTRIBUTE5,
3557 		 OLD_ATTRIBUTE6,
3558 		 NEW_ATTRIBUTE6,
3559 		 OLD_ATTRIBUTE7,
3560 		 NEW_ATTRIBUTE7,
3561 		 OLD_ATTRIBUTE8,
3562 		 NEW_ATTRIBUTE8,
3563 		 OLD_ATTRIBUTE9,
3564 		 NEW_ATTRIBUTE9,
3565 		 OLD_ATTRIBUTE10,
3566 		 NEW_ATTRIBUTE10,
3567 		 OLD_ATTRIBUTE11,
3568 		 NEW_ATTRIBUTE11,
3569 		 OLD_ATTRIBUTE12,
3570 		 NEW_ATTRIBUTE12,
3571 		 OLD_ATTRIBUTE13,
3572 		 NEW_ATTRIBUTE13,
3573 		 OLD_ATTRIBUTE14,
3574 		 NEW_ATTRIBUTE14,
3575 		 OLD_ATTRIBUTE15,
3576 		 NEW_ATTRIBUTE15,
3577 		 CREATED_BY,
3578 		 CREATION_DATE,
3579 		 LAST_UPDATED_BY,
3580 		 LAST_UPDATE_DATE,
3581 		 LAST_UPDATE_LOGIN,
3582 		 OBJECT_VERSION_NUMBER,
3583 		 OLD_INST_LOC_TYPE_CODE,
3584 		 NEW_INST_LOC_TYPE_CODE,
3585 		 OLD_INST_LOC_ID,
3586 		 NEW_INST_LOC_ID,
3587 		 OLD_INST_USAGE_CODE,
3588 		 NEW_INST_USAGE_CODE,
3589 		 OLD_last_vld_organization_id,
3590 		 NEW_last_vld_organization_id,
3591 		 OLD_CONFIG_INST_REV_NUM   ,
3592 		 NEW_CONFIG_INST_REV_NUM   ,
3593 		 OLD_CONFIG_VALID_STATUS   ,
3594 		 NEW_CONFIG_VALID_STATUS   ,
3595 		 OLD_INSTANCE_DESCRIPTION  ,
3596 		 NEW_INSTANCE_DESCRIPTION  ,
3597                  OLD_OE_AGREEMENT_ID ,
3598                  NEW_OE_AGREEMENT_ID ,
3599                  OLD_INSTALL_DATE ,
3600 		 NEW_INSTALL_DATE ,
3601 		 OLD_RETURN_BY_DATE ,
3602 		 NEW_RETURN_BY_DATE ,
3603 		 OLD_ACTUAL_RETURN_DATE ,
3604 		 NEW_ACTUAL_RETURN_DATE ,
3605 		 OLD_LAST_OE_ORDER_LINE_ID ,
3606 		 NEW_LAST_OE_ORDER_LINE_ID ,
3607 		 OLD_LAST_OE_RMA_LINE_ID ,
3608 		 NEW_LAST_OE_RMA_LINE_ID ,
3609 		 OLD_LAST_WIP_JOB_ID ,
3610 		 NEW_LAST_WIP_JOB_ID ,
3611 		 OLD_LAST_PO_PO_LINE_ID ,
3612 		 NEW_LAST_PO_PO_LINE_ID ,
3613 		 OLD_LAST_PA_PROJECT_ID ,
3614 		 NEW_LAST_PA_PROJECT_ID ,
3615 		 OLD_LAST_PA_TASK_ID ,
3616 		 NEW_LAST_PA_TASK_ID ,
3617 		 OLD_LAST_TXN_LINE_DETAIL_ID ,
3618 		 NEW_LAST_TXN_LINE_DETAIL_ID ,
3619 		 OLD_LAST_OE_PO_NUMBER ,
3620 		 NEW_LAST_OE_PO_NUMBER,
3621 
3622 		 OLD_NETWORK_ASSET_FLAG,
3623 		 NEW_NETWORK_ASSET_FLAG,
3624 		 OLD_MAINTAINABLE_FLAG,
3625 		 NEW_MAINTAINABLE_FLAG,
3626 		 OLD_ASSET_CRITICALITY_CODE,
3627 		 NEW_ASSET_CRITICALITY_CODE,
3628 		 OLD_CATEGORY_ID          ,
3629 		 NEW_CATEGORY_ID          ,
3630 		 OLD_EQUIPMENT_GEN_OBJECT_ID,
3631 		 NEW_EQUIPMENT_GEN_OBJECT_ID,
3632 		 OLD_INSTANTIATION_FLAG     ,
3633 		 NEW_INSTANTIATION_FLAG     ,
3634 		 OLD_OPERATIONAL_LOG_FLAG   ,
3635 		 NEW_OPERATIONAL_LOG_FLAG   ,
3636 		 OLD_SUPPLIER_WARRANTY_EXP_DATE,
3637 		 NEW_SUPPLIER_WARRANTY_EXP_DATE,
3638 		 OLD_ATTRIBUTE16,
3639 		 NEW_ATTRIBUTE16,
3640 		 OLD_ATTRIBUTE17,
3641 		 NEW_ATTRIBUTE17,
3642 		 OLD_ATTRIBUTE18,
3643 		 NEW_ATTRIBUTE18,
3644 		 OLD_ATTRIBUTE19,
3645 		 NEW_ATTRIBUTE19,
3646 		 OLD_ATTRIBUTE20,
3647 		 NEW_ATTRIBUTE20,
3648 		 OLD_ATTRIBUTE21,
3649 		 NEW_ATTRIBUTE21,
3650 		 OLD_ATTRIBUTE22,
3651 		 NEW_ATTRIBUTE22,
3652 		 OLD_ATTRIBUTE23,
3653 		 NEW_ATTRIBUTE23,
3654 		 OLD_ATTRIBUTE24,
3655 		 NEW_ATTRIBUTE24,
3656 		 OLD_ATTRIBUTE25,
3657 		 NEW_ATTRIBUTE25,
3658 		 OLD_ATTRIBUTE26,
3659 		 NEW_ATTRIBUTE26,
3660 		 OLD_ATTRIBUTE27,
3661 		 NEW_ATTRIBUTE27,
3662 		 OLD_ATTRIBUTE28,
3663 		 NEW_ATTRIBUTE28,
3664 		 OLD_ATTRIBUTE29,
3665 		 NEW_ATTRIBUTE29,
3666 		 OLD_ATTRIBUTE30,
3667 		 NEW_ATTRIBUTE30,
3668                  OLD_PAYABLES_CURRENCY_CODE,
3669                  NEW_PAYABLES_CURRENCY_CODE,
3670                  OLD_PURCHASE_UNIT_PRICE,
3671                  NEW_PURCHASE_UNIT_PRICE,
3672                  OLD_PURCHASE_CURRENCY_CODE,
3673                  NEW_PURCHASE_CURRENCY_CODE,
3674                  OLD_PAYABLES_UNIT_PRICE,
3675                  NEW_PAYABLES_UNIT_PRICE,
3676                  OLD_SALES_UNIT_PRICE,
3677                  NEW_SALES_UNIT_PRICE,
3678                  OLD_SALES_CURRENCY_CODE,
3679                  NEW_SALES_CURRENCY_CODE,
3680                  OLD_OPERATIONAL_STATUS_CODE,
3681                  NEW_OPERATIONAL_STATUS_CODE
3682                 )
3683 		 VALUES (
3684 		 l_inst_hist_rec_tab.INSTANCE_HISTORY_ID(i),
3685 		 decode( l_inst_hist_rec_tab.INSTANCE_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.INSTANCE_ID(i)),
3686 		 decode( l_inst_hist_rec_tab.TRANSACTION_ID(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.TRANSACTION_ID(i)),
3687 		 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)),
3688 		 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)),
3689 		 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)),
3690 		 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)),
3691 		 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)),
3692 		 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)),
3693 		 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)),
3694 		 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)),
3695 		 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)),
3696 		 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)),
3697 		 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)),
3698 		 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)),
3699 		 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)),
3700 		 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)),
3701 		 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)),
3702 		 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)),
3703 		 decode( l_inst_hist_rec_tab.OLD_QUANTITY(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.OLD_QUANTITY(i)),
3704 		 decode( l_inst_hist_rec_tab.NEW_QUANTITY(i), FND_API.G_MISS_NUM, NULL, l_inst_hist_rec_tab.NEW_QUANTITY(i)),
3705 		 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)),
3706 		 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)),
3707 		 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)),
3708 		 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)),
3709 		 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)),
3710 		 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)),
3711 		 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)),
3712 		 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)),
3713 		 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)),
3714 		 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)),
3715 		 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)),
3716 		 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)),
3717 		 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)),
3718 		 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)),
3719 		 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)),
3720 		 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)),
3721 		 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)),
3722 		 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)),
3723 		 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)),
3724 		 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)),
3725 		 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)),
3726 		 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)),
3727 		 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)),
3728 		 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)),
3729 		 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)),
3730 		 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)),
3731 		 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)),
3732 		 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)),
3733 		 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)),
3734 		 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)),
3735 		 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)),
3736 		 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)),
3737 		 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)),
3738 		 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)),
3739 		 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)),
3740 		 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)),
3741 		 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)),
3742 		 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)),
3743 		 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)),
3744 		 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)),
3745 		 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)),
3746 		 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)),
3747 		 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)),
3748 		 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)),
3749 		 'N',
3750 		 decode( l_inst_hist_rec_tab.OLD_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_CONTEXT(i)),
3751 		 decode( l_inst_hist_rec_tab.NEW_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_CONTEXT(i)),
3752 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE1(i)),
3753 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE1(i)),
3754 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE2(i)),
3755 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE2(i)),
3756 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE3(i)),
3757 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE3(i)),
3758 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE4(i)),
3759 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE4(i)),
3760 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE5(i)),
3761 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE5(i)),
3762 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE6(i)),
3763 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE6(i)),
3764 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE7(i)),
3765 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE7(i)),
3766 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE8(i)),
3767 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE8(i)),
3768 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE9(i)),
3769 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE9(i)),
3770 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE10(i)),
3771 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE10(i)),
3772 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE11(i)),
3773 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE11(i)),
3774 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE12(i)),
3775 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE12(i)),
3776 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE13(i)),
3777 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE13(i)),
3778 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE14(i)),
3779 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE14(i)),
3780 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE15(i)),
3781 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE15(i)),
3782 		 l_user_id,
3783 		 SYSDATE,
3784 		 l_user_id,
3785 		 SYSDATE,
3786 		 l_login_id,
3787 		 1,
3788 		 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)),
3789 		 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)),
3790 		 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)),
3791 		 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)),
3792 		 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)),
3793 		 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)),
3794 		 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)),
3795 		 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)),
3796 		 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)),
3797 		 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)),
3798 		 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)),
3799 		 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)),
3800 		 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)),
3801 		 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)),
3802                  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)),
3803                  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)),
3804                  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)) ,
3805 		 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)) ,
3806 		 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)),
3807 		 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)),
3808 		 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)),
3809 		 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)),
3810 		 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)),
3811 		 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)),
3812 		 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)),
3813 		 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)),
3814 		 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)),
3815 		 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)),
3816 		 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)),
3817 		 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)),
3818 		 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)),
3819 		 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)),
3820 		 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)),
3821 		 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)),
3822 		 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)),
3823 		 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)),
3824 		 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)),
3825 		 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)),
3826 		 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)),
3827 		 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)),
3828 		 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)),
3829 		 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)),
3830 		 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)),
3831 		 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)),
3832 		 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)),
3833 		 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)),
3834 		 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)),
3835 		 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)),
3836 		 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)),
3837 		 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)),
3838 		 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)),
3839 		 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)),
3840 		 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)),
3841 		 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)),
3842 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE16(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE16(i)),
3843 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE16(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE16(i)),
3844 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE17(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE17(i)),
3845 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE17(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE17(i)),
3846 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE18(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE18(i)),
3847 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE18(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE18(i)),
3848 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE19(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE19(i)),
3849 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE19(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE19(i)),
3850 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE20(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE20(i)),
3851 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE20(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE20(i)),
3852 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE21(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE21(i)),
3853 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE21(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE21(i)),
3854 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE22(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE22(i)),
3855 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE22(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE22(i)),
3856 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE23(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE23(i)),
3857 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE23(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE23(i)),
3858 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE24(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE24(i)),
3859 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE24(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE24(i)),
3860 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE25(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE25(i)),
3861 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE25(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE25(i)),
3862 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE26(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE26(i)),
3863 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE26(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE26(i)),
3864 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE27(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE27(i)),
3865 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE27(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE27(i)),
3866 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE28(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE28(i)),
3867 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE28(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE28(i)),
3868 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE29(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE29(i)),
3869 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE29(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE29(i)),
3870 		 decode( l_inst_hist_rec_tab.OLD_ATTRIBUTE30(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.OLD_ATTRIBUTE30(i)),
3871 		 decode( l_inst_hist_rec_tab.NEW_ATTRIBUTE30(i), FND_API.G_MISS_CHAR, NULL, l_inst_hist_rec_tab.NEW_ATTRIBUTE30(i)),
3872                  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)),
3873                  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)),
3874                  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)),
3875                  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)),
3876                  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)),
3877                  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)),
3878                  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)),
3879                  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)),
3880                  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)),
3881                  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)),
3882                  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)),
3883                  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)),
3884                  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)),
3885                  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))
3886 		 );
3887    END IF;
3888    --
3889    IF p_version_label_tbl.count > 0 THEN
3890       Build_Ver_Label_Rec_of_Table
3891          (
3892            p_version_label_tbl     => p_version_label_tbl
3893           ,p_version_label_rec_tab => l_version_label_rec_tab
3894          );
3895       --
3896       l_ctr := l_version_label_rec_tab.version_label_id.count;
3897       --
3898          FORALL i in 1 .. l_ctr
3899 	    INSERT INTO CSI_I_VERSION_LABELS(
3900 		    VERSION_LABEL_ID,
3901 		    INSTANCE_ID,
3902 		    VERSION_LABEL,
3903 		    DATE_TIME_STAMP,
3904 		    DESCRIPTION,
3905 		    ACTIVE_START_DATE,
3906 		    ACTIVE_END_DATE,
3907 		    CONTEXT,
3908 		    ATTRIBUTE1,
3909 		    ATTRIBUTE2,
3910 		    ATTRIBUTE3,
3911 		    ATTRIBUTE4,
3912 		    ATTRIBUTE5,
3913 		    ATTRIBUTE6,
3914 		    ATTRIBUTE7,
3915 		    ATTRIBUTE8,
3916 		    ATTRIBUTE9,
3917 		    ATTRIBUTE10,
3918 		    ATTRIBUTE11,
3919 		    ATTRIBUTE12,
3920 		    ATTRIBUTE13,
3921 		    ATTRIBUTE14,
3922 		    ATTRIBUTE15,
3923 		    CREATED_BY,
3924 		    CREATION_DATE,
3925 		    LAST_UPDATED_BY,
3926 		    LAST_UPDATE_DATE,
3927 		    LAST_UPDATE_LOGIN,
3928 		    OBJECT_VERSION_NUMBER
3929 		   ) VALUES (
3930 		    l_version_label_rec_tab.VERSION_LABEL_ID(i),
3931 		    decode( l_version_label_rec_tab.INSTANCE_ID(i), FND_API.G_MISS_NUM, NULL, l_version_label_rec_tab.INSTANCE_ID(i)),
3932 		    decode( l_version_label_rec_tab.VERSION_LABEL(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.VERSION_LABEL(i)),
3933 		    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)),
3934 		    decode( l_version_label_rec_tab.DESCRIPTION(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.DESCRIPTION(i)),
3935 		    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)),
3936 		    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)),
3937 		    decode( l_version_label_rec_tab.CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.CONTEXT(i)),
3938 		    decode( l_version_label_rec_tab.ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE1(i)),
3939 		    decode( l_version_label_rec_tab.ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE2(i)),
3940 		    decode( l_version_label_rec_tab.ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE3(i)),
3941 		    decode( l_version_label_rec_tab.ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE4(i)),
3942 		    decode( l_version_label_rec_tab.ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE5(i)),
3943 		    decode( l_version_label_rec_tab.ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE6(i)),
3944 		    decode( l_version_label_rec_tab.ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE7(i)),
3945 		    decode( l_version_label_rec_tab.ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE8(i)),
3946 		    decode( l_version_label_rec_tab.ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE9(i)),
3947 		    decode( l_version_label_rec_tab.ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE10(i)),
3948 		    decode( l_version_label_rec_tab.ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE11(i)),
3949 		    decode( l_version_label_rec_tab.ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE12(i)),
3950 		    decode( l_version_label_rec_tab.ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE13(i)),
3951 		    decode( l_version_label_rec_tab.ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE14(i)),
3952 		    decode( l_version_label_rec_tab.ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_version_label_rec_tab.ATTRIBUTE15(i)),
3953 		    l_user_id,
3954 		    SYSDATE,
3955 		    l_user_id,
3956 		    SYSDATE,
3957 		    l_login_id,
3958 		    1
3959                  );
3960    END IF;
3961    --
3962    IF p_ver_label_hist_tbl.count > 0 THEN
3963       Build_Ver_Lbl_Hist_Rec_Table
3964          (
3965            p_ver_label_hist_tbl     => p_ver_label_hist_tbl
3966           ,p_ver_label_hist_rec_tab => l_ver_label_hist_rec_tab
3967          );
3968       --
3969       l_ctr := l_ver_label_hist_rec_tab.version_label_history_id.count;
3970       --
3971          FORALL i in 1 .. l_ctr
3972 	    INSERT INTO CSI_I_VERSION_LABELS_H(
3973 		    VERSION_LABEL_HISTORY_ID,
3974 		    VERSION_LABEL_ID,
3975 		    TRANSACTION_ID,
3976 		    OLD_VERSION_LABEL,
3977 		    NEW_VERSION_LABEL,
3978 		    OLD_DESCRIPTION,
3979 		    NEW_DESCRIPTION,
3980 		    OLD_DATE_TIME_STAMP,
3981 		    NEW_DATE_TIME_STAMP,
3982 		    OLD_ACTIVE_START_DATE,
3983 		    NEW_ACTIVE_START_DATE,
3984 		    OLD_ACTIVE_END_DATE,
3985 		    NEW_ACTIVE_END_DATE,
3986 		    OLD_CONTEXT,
3987 		    NEW_CONTEXT,
3988 		    OLD_ATTRIBUTE1,
3989 		    NEW_ATTRIBUTE1,
3990 		    OLD_ATTRIBUTE2,
3991 		    NEW_ATTRIBUTE2,
3992 		    OLD_ATTRIBUTE3,
3993 		    NEW_ATTRIBUTE3,
3994 		    OLD_ATTRIBUTE4,
3995 		    NEW_ATTRIBUTE4,
3996 		    OLD_ATTRIBUTE5,
3997 		    NEW_ATTRIBUTE5,
3998 		    OLD_ATTRIBUTE6,
3999 		    NEW_ATTRIBUTE6,
4000 		    OLD_ATTRIBUTE7,
4001 		    NEW_ATTRIBUTE7,
4002 		    OLD_ATTRIBUTE8,
4003 		    NEW_ATTRIBUTE8,
4004 		    OLD_ATTRIBUTE9,
4005 		    NEW_ATTRIBUTE9,
4006 		    OLD_ATTRIBUTE10,
4007 		    NEW_ATTRIBUTE10,
4008 		    OLD_ATTRIBUTE11,
4009 		    NEW_ATTRIBUTE11,
4010 		    OLD_ATTRIBUTE12,
4011 		    NEW_ATTRIBUTE12,
4012 		    OLD_ATTRIBUTE13,
4013 		    NEW_ATTRIBUTE13,
4014 		    OLD_ATTRIBUTE14,
4015 		    NEW_ATTRIBUTE14,
4016 		    OLD_ATTRIBUTE15,
4017 		    NEW_ATTRIBUTE15,
4018 		    FULL_DUMP_FLAG,
4019 		    CREATED_BY,
4020 		    CREATION_DATE,
4021 		    LAST_UPDATED_BY,
4022 		    LAST_UPDATE_DATE,
4023 		    LAST_UPDATE_LOGIN,
4024 		    OBJECT_VERSION_NUMBER
4025 		   ) VALUES (
4026 		    l_ver_label_hist_rec_tab.VERSION_LABEL_HISTORY_ID(i),
4027 		    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)),
4028 		    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)),
4029 		    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)),
4030 		    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)),
4031 		    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)),
4032 		    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)),
4033 		    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)),
4034 		    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)),
4035 		    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)),
4036 		    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)),
4037 		    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)),
4038 		    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)),
4039 		    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)),
4040 		    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)),
4041 		    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)),
4042 		    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)),
4043 		    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)),
4044 		    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)),
4045 		    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)),
4046 		    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)),
4047 		    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)),
4048 		    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)),
4049 		    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)),
4050 		    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)),
4051 		    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)),
4052 		    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)),
4053 		    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)),
4054 		    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)),
4055 		    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)),
4056 		    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)),
4057 		    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)),
4058 		    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)),
4059 		    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)),
4060 		    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)),
4061 		    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)),
4062 		    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)),
4063 		    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)),
4064 		    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)),
4065 		    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)),
4066 		    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)),
4067 		    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)),
4068 		    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)),
4069 		    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)),
4070 		    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)),
4071 		    'N',
4072 		    l_user_id,
4073 		    SYSDATE,
4074 		    l_user_id,
4075 		    SYSDATE,
4076 		    l_login_id,
4077 		    1
4078                   );
4079    END IF;
4080    --
4081    IF p_party_tbl.count > 0 THEN
4082       Build_Party_Rec_of_Table
4083         ( p_party_tbl    => p_party_tbl
4084          ,p_party_rec_tab => l_party_rec_tab
4085         );
4086       --
4087       l_ctr := l_party_rec_tab.instance_party_id.count;
4088       --
4089         FORALL i in 1 .. l_ctr
4090          INSERT INTO CSI_I_PARTIES(
4091 	 INSTANCE_PARTY_ID,
4092 	 INSTANCE_ID,
4093 	 PARTY_SOURCE_TABLE,
4094 	 PARTY_ID,
4095 	 RELATIONSHIP_TYPE_CODE,
4096 	 CONTACT_FLAG,
4097 	 CONTACT_IP_ID,
4098 	 ACTIVE_START_DATE,
4099 	 ACTIVE_END_DATE,
4100 	 CONTEXT,
4101 	 ATTRIBUTE1,
4102 	 ATTRIBUTE2,
4103 	 ATTRIBUTE3,
4104 	 ATTRIBUTE4,
4105 	 ATTRIBUTE5,
4106 	 ATTRIBUTE6,
4107 	 ATTRIBUTE7,
4108 	 ATTRIBUTE8,
4109 	 ATTRIBUTE9,
4110 	 ATTRIBUTE10,
4111 	 ATTRIBUTE11,
4112 	 ATTRIBUTE12,
4113 	 ATTRIBUTE13,
4114 	 ATTRIBUTE14,
4115 	 ATTRIBUTE15,
4116 	 CREATED_BY,
4117 	 CREATION_DATE,
4118 	 LAST_UPDATED_BY,
4119 	 LAST_UPDATE_DATE,
4120 	 LAST_UPDATE_LOGIN,
4121 	 OBJECT_VERSION_NUMBER,
4122 	 PRIMARY_FLAG,
4123 	 PREFERRED_FLAG
4124 	 ) VALUES (
4125 	 l_party_rec_tab.INSTANCE_PARTY_ID(i),
4126 	 decode( l_party_rec_tab.INSTANCE_ID(i), FND_API.G_MISS_NUM, NULL, l_party_rec_tab.INSTANCE_ID(i)),
4127 	 decode( l_party_rec_tab.PARTY_SOURCE_TABLE(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.PARTY_SOURCE_TABLE(i)),
4128 	 decode( l_party_rec_tab.PARTY_ID(i), FND_API.G_MISS_NUM, NULL, l_party_rec_tab.PARTY_ID(i)),
4129 	 decode( l_party_rec_tab.RELATIONSHIP_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.RELATIONSHIP_TYPE_CODE(i)),
4130 	 decode( l_party_rec_tab.CONTACT_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.CONTACT_FLAG(i)),
4131 	 decode( l_party_rec_tab.CONTACT_IP_ID(i), FND_API.G_MISS_NUM, NULL, l_party_rec_tab.CONTACT_IP_ID(i)),
4132 	 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)),
4133 	 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)),
4134 	 decode( l_party_rec_tab.CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.CONTEXT(i)),
4135 	 decode( l_party_rec_tab.ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE1(i)),
4136 	 decode( l_party_rec_tab.ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE2(i)),
4137 	 decode( l_party_rec_tab.ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE3(i)),
4138 	 decode( l_party_rec_tab.ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE4(i)),
4139 	 decode( l_party_rec_tab.ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE5(i)),
4140 	 decode( l_party_rec_tab.ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE6(i)),
4141 	 decode( l_party_rec_tab.ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE7(i)),
4142 	 decode( l_party_rec_tab.ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE8(i)),
4143 	 decode( l_party_rec_tab.ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE9(i)),
4144 	 decode( l_party_rec_tab.ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE10(i)),
4145 	 decode( l_party_rec_tab.ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE11(i)),
4146 	 decode( l_party_rec_tab.ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE12(i)),
4147 	 decode( l_party_rec_tab.ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE13(i)),
4148 	 decode( l_party_rec_tab.ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE14(i)),
4149 	 decode( l_party_rec_tab.ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.ATTRIBUTE15(i)),
4150 	 l_user_id,
4151 	 SYSDATE,
4152 	 l_user_id,
4153 	 SYSDATE,
4154 	 l_login_id,
4155 	 1,
4156 	 decode(l_party_rec_tab.PRIMARY_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.PRIMARY_FLAG(i)),
4157 	 decode( l_party_rec_tab.PREFERRED_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_party_rec_tab.PREFERRED_FLAG(i)));
4158          --
4159    END IF;
4160    --
4161    IF p_party_hist_tbl.count > 0 THEN
4162          Build_Party_Hist_Rec_of_Table
4163             ( p_party_hist_tbl     => p_party_hist_tbl
4164              ,p_party_hist_rec_tab => l_party_hist_rec_tab
4165             );
4166          --
4167          l_ctr := l_party_hist_rec_tab.instance_party_history_id.count;
4168          --
4169          FORALL i in 1 .. l_ctr
4170 	   INSERT INTO CSI_I_PARTIES_H(
4171 		 INSTANCE_PARTY_HISTORY_ID,
4172 		 INSTANCE_PARTY_ID,
4173 		 TRANSACTION_ID,
4174 		 OLD_PARTY_SOURCE_TABLE,
4175 		 NEW_PARTY_SOURCE_TABLE,
4176 		 OLD_PARTY_ID,
4177 		 NEW_PARTY_ID,
4178 		 OLD_RELATIONSHIP_TYPE_CODE,
4179 		 NEW_RELATIONSHIP_TYPE_CODE,
4180 		 OLD_CONTACT_FLAG,
4181 		 NEW_CONTACT_FLAG,
4182 		 OLD_CONTACT_IP_ID,
4183 		 NEW_CONTACT_IP_ID,
4184 		 OLD_ACTIVE_START_DATE,
4185 		 NEW_ACTIVE_START_DATE,
4186 		 OLD_ACTIVE_END_DATE,
4187 		 NEW_ACTIVE_END_DATE,
4188 		 OLD_CONTEXT,
4189 		 NEW_CONTEXT,
4190 		 OLD_ATTRIBUTE1,
4191 		 NEW_ATTRIBUTE1,
4192 		 OLD_ATTRIBUTE2,
4193 		 NEW_ATTRIBUTE2,
4194 		 OLD_ATTRIBUTE3,
4195 		 NEW_ATTRIBUTE3,
4196 		 OLD_ATTRIBUTE4,
4197 		 NEW_ATTRIBUTE4,
4198 		 OLD_ATTRIBUTE5,
4199 		 NEW_ATTRIBUTE5,
4200 		 OLD_ATTRIBUTE6,
4201 		 NEW_ATTRIBUTE6,
4202 		 OLD_ATTRIBUTE7,
4203 		 NEW_ATTRIBUTE7,
4204 		 OLD_ATTRIBUTE8,
4205 		 NEW_ATTRIBUTE8,
4206 		 OLD_ATTRIBUTE9,
4207 		 NEW_ATTRIBUTE9,
4208 		 OLD_ATTRIBUTE10,
4209 		 NEW_ATTRIBUTE10,
4210 		 OLD_ATTRIBUTE11,
4211 		 NEW_ATTRIBUTE11,
4212 		 OLD_ATTRIBUTE12,
4213 		 NEW_ATTRIBUTE12,
4214 		 OLD_ATTRIBUTE13,
4215 		 NEW_ATTRIBUTE13,
4216 		 OLD_ATTRIBUTE14,
4217 		 NEW_ATTRIBUTE14,
4218 		 OLD_ATTRIBUTE15,
4219 		 NEW_ATTRIBUTE15,
4220 		 FULL_DUMP_FLAG,
4221 		 CREATED_BY,
4222 		 CREATION_DATE,
4223 		 LAST_UPDATED_BY,
4224 		 LAST_UPDATE_DATE,
4225 		 LAST_UPDATE_LOGIN,
4226 		 OBJECT_VERSION_NUMBER,
4227 		 OLD_PRIMARY_FLAG,
4228 		 NEW_PRIMARY_FLAG,
4229 		 OLD_PREFERRED_FLAG,
4230 		 NEW_PREFERRED_FLAG
4231 		) VALUES (
4232 		 l_party_hist_rec_tab.INSTANCE_PARTY_HISTORY_ID(i),
4233 		 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)),
4234 		 decode( l_party_hist_rec_tab.TRANSACTION_ID(i), FND_API.G_MISS_NUM, NULL, l_party_hist_rec_tab.TRANSACTION_ID(i)),
4235 		 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)),
4236 		 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)),
4237 		 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)),
4238 		 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)),
4239 		 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)),
4240 		 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)),
4241 		 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)),
4242 		 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)),
4243 		 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)),
4244 		 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)),
4245 		 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)),
4246 		 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)),
4247 		 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)),
4248 		 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)),
4249 		 decode( l_party_hist_rec_tab.OLD_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_CONTEXT(i)),
4250 		 decode( l_party_hist_rec_tab.NEW_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_CONTEXT(i)),
4251 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE1(i)),
4252 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE1(i)),
4253 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE2(i)),
4254 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE2(i)),
4255 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE3(i)),
4256 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE3(i)),
4257 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE4(i)),
4258 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE4(i)),
4259 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE5(i)),
4260 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE5(i)),
4261 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE6(i)),
4262 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE6(i)),
4263 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE7(i)),
4264 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE7(i)),
4265 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE8(i)),
4266 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE8(i)),
4267 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE9(i)),
4268 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE9(i)),
4269 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE10(i)),
4270 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE10(i)),
4271 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE11(i)),
4272 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE11(i)),
4273 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE12(i)),
4274 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE12(i)),
4275 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE13(i)),
4276 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE13(i)),
4277 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE14(i)),
4278 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE14(i)),
4279 		 decode( l_party_hist_rec_tab.OLD_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.OLD_ATTRIBUTE15(i)),
4280 		 decode( l_party_hist_rec_tab.NEW_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_party_hist_rec_tab.NEW_ATTRIBUTE15(i)),
4281 		 'N',
4282 		 l_user_id,
4283 		 SYSDATE,
4284 		 l_user_id,
4285 		 SYSDATE,
4286 		 l_login_id,
4287 		 1,
4288 		 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)),
4289 		 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)),
4290 		 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)),
4291 		 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))
4292             );
4293    END IF;
4294    --
4295    IF p_account_tbl.count > 0 THEN
4296          Build_Acct_Rec_of_Table
4297             ( p_account_tbl       => p_account_tbl
4298              ,p_account_rec_tab   => l_account_rec_tab
4299             );
4300          --
4301          l_ctr := l_account_rec_tab.ip_account_id.count;
4302          --
4303          FORALL i in 1 .. l_ctr
4304 	    INSERT INTO CSI_IP_ACCOUNTS(
4305 		 IP_ACCOUNT_ID,
4306 		 INSTANCE_PARTY_ID,
4307 		 PARTY_ACCOUNT_ID,
4308 		 RELATIONSHIP_TYPE_CODE,
4309 		 ACTIVE_START_DATE,
4310 		 ACTIVE_END_DATE,
4311 		 CONTEXT,
4312 		 ATTRIBUTE1,
4313 		 ATTRIBUTE2,
4314 		 ATTRIBUTE3,
4315 		 ATTRIBUTE4,
4316 		 ATTRIBUTE5,
4317 		 ATTRIBUTE6,
4318 		 ATTRIBUTE7,
4319 		 ATTRIBUTE8,
4320 		 ATTRIBUTE9,
4321 		 ATTRIBUTE10,
4322 		 ATTRIBUTE11,
4323 		 ATTRIBUTE12,
4324 		 ATTRIBUTE13,
4325 		 ATTRIBUTE14,
4326 		 ATTRIBUTE15,
4327 		 CREATED_BY,
4328 		 CREATION_DATE,
4329 		 LAST_UPDATED_BY,
4330 		 LAST_UPDATE_DATE,
4331 		 LAST_UPDATE_LOGIN,
4332 		 OBJECT_VERSION_NUMBER,
4333 		 BILL_TO_ADDRESS,
4334 		 SHIP_TO_ADDRESS
4335 		) VALUES (
4336 		 l_account_rec_tab.IP_ACCOUNT_ID(i),
4337 		 decode( l_account_rec_tab.INSTANCE_PARTY_ID(i), FND_API.G_MISS_NUM, NULL, l_account_rec_tab.INSTANCE_PARTY_ID(i)),
4338 		 decode( l_account_rec_tab.PARTY_ACCOUNT_ID(i), FND_API.G_MISS_NUM, NULL, l_account_rec_tab.PARTY_ACCOUNT_ID(i)),
4339 		 decode( l_account_rec_tab.RELATIONSHIP_TYPE_CODE(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.RELATIONSHIP_TYPE_CODE(i)),
4340 		 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)),
4341 		 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)),
4342 		 decode( l_account_rec_tab.CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.CONTEXT(i)),
4343 		 decode( l_account_rec_tab.ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE1(i)),
4344 		 decode( l_account_rec_tab.ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE2(i)),
4345 		 decode( l_account_rec_tab.ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE3(i)),
4346 		 decode( l_account_rec_tab.ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE4(i)),
4347 		 decode( l_account_rec_tab.ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE5(i)),
4348 		 decode( l_account_rec_tab.ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE6(i)),
4349 		 decode( l_account_rec_tab.ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE7(i)),
4350 		 decode( l_account_rec_tab.ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE8(i)),
4351 		 decode( l_account_rec_tab.ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE9(i)),
4352 		 decode( l_account_rec_tab.ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE10(i)),
4353 		 decode( l_account_rec_tab.ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE11(i)),
4354 		 decode( l_account_rec_tab.ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE12(i)),
4355 		 decode( l_account_rec_tab.ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE13(i)),
4356 		 decode( l_account_rec_tab.ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE14(i)),
4357 		 decode( l_account_rec_tab.ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_account_rec_tab.ATTRIBUTE15(i)),
4358 		 l_user_id,
4359 		 SYSDATE,
4360 		  l_user_id,
4361 		 SYSDATE,
4362 		 l_login_id,
4363 		 1,
4364 		 decode( l_account_rec_tab.BILL_TO_ADDRESS(i), FND_API.G_MISS_NUM, NULL, l_account_rec_tab.BILL_TO_ADDRESS(i)),
4365 		 decode( l_account_rec_tab.SHIP_TO_ADDRESS(i), FND_API.G_MISS_NUM, NULL, l_account_rec_tab.SHIP_TO_ADDRESS(i))
4366               );
4367    END IF;
4368    --
4369    IF p_owner_pty_acct_tbl.count > 0 THEN
4370          Build_Owner_Pty_Acct_Rec_Table
4371             (
4372               p_owner_pty_acct_tbl     => p_owner_pty_acct_tbl
4373              ,p_owner_pty_acct_rec_tab => l_owner_pty_acct_rec_tab
4374             );
4375          --
4376          l_ctr := l_owner_pty_acct_rec_tab.instance_id.count;
4377          --
4378          FORALL i in 1 .. l_ctr
4379          UPDATE CSI_ITEM_INSTANCES
4380          SET owner_party_id = l_owner_pty_acct_rec_tab.party_id(i)
4381             ,owner_party_source_table = l_owner_pty_acct_rec_tab.party_source_table(i)
4382             ,owner_party_account_id = l_owner_pty_acct_rec_tab.account_id(i)
4383          WHERE instance_id = l_owner_pty_acct_rec_tab.instance_id(i);
4384    END IF;
4385    --
4386    IF p_acct_hist_tbl.count > 0 THEN
4387          Build_Acct_Hist_Rec_of_Table
4388            ( p_acct_hist_tbl      => p_acct_hist_tbl
4389             ,p_acct_hist_rec_tab  => l_acct_hist_rec_tab
4390            );
4391          --
4392          l_ctr := l_acct_hist_rec_tab.ip_account_history_id.count;
4393          --
4394          FORALL i in 1 .. l_ctr
4395 	    INSERT INTO CSI_IP_ACCOUNTS_H(
4396 		 IP_ACCOUNT_HISTORY_ID,
4397 		 IP_ACCOUNT_ID,
4398 		 TRANSACTION_ID,
4399 		 OLD_PARTY_ACCOUNT_ID,
4400 		 NEW_PARTY_ACCOUNT_ID,
4401 		 OLD_RELATIONSHIP_TYPE_CODE,
4402 		 NEW_RELATIONSHIP_TYPE_CODE,
4403 		 OLD_ACTIVE_START_DATE,
4404 		 NEW_ACTIVE_START_DATE,
4405 		 OLD_ACTIVE_END_DATE,
4406 		 NEW_ACTIVE_END_DATE,
4407 		 OLD_CONTEXT,
4408 		 NEW_CONTEXT,
4409 		 OLD_ATTRIBUTE1,
4410 		 NEW_ATTRIBUTE1,
4411 		 OLD_ATTRIBUTE2,
4412 		 NEW_ATTRIBUTE2,
4413 		 OLD_ATTRIBUTE3,
4414 		 NEW_ATTRIBUTE3,
4415 		 OLD_ATTRIBUTE4,
4416 		 NEW_ATTRIBUTE4,
4417 		 OLD_ATTRIBUTE5,
4418 		 NEW_ATTRIBUTE5,
4419 		 OLD_ATTRIBUTE6,
4420 		 NEW_ATTRIBUTE6,
4421 		 OLD_ATTRIBUTE7,
4422 		 NEW_ATTRIBUTE7,
4423 		 OLD_ATTRIBUTE8,
4424 		 NEW_ATTRIBUTE8,
4425 		 OLD_ATTRIBUTE9,
4426 		 NEW_ATTRIBUTE9,
4427 		 OLD_ATTRIBUTE10,
4428 		 NEW_ATTRIBUTE10,
4429 		 OLD_ATTRIBUTE11,
4430 		 NEW_ATTRIBUTE11,
4431 		 OLD_ATTRIBUTE12,
4432 		 NEW_ATTRIBUTE12,
4433 		 OLD_ATTRIBUTE13,
4434 		 NEW_ATTRIBUTE13,
4435 		 OLD_ATTRIBUTE14,
4436 		 NEW_ATTRIBUTE14,
4437 		 OLD_ATTRIBUTE15,
4438 		 NEW_ATTRIBUTE15,
4439 		 FULL_DUMP_FLAG,
4440 		 CREATED_BY,
4441 		 CREATION_DATE,
4442 		 LAST_UPDATED_BY,
4443 		 LAST_UPDATE_DATE,
4444 		 LAST_UPDATE_LOGIN,
4445 		 OBJECT_VERSION_NUMBER,
4446 		 OLD_BILL_TO_ADDRESS,
4447 		 NEW_BILL_TO_ADDRESS,
4448 		 OLD_SHIP_TO_ADDRESS,
4449 		 NEW_SHIP_TO_ADDRESS
4450 		) VALUES (
4451 		 l_acct_hist_rec_tab.IP_ACCOUNT_HISTORY_ID(i),
4452 		 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)),
4453 		 decode( l_acct_hist_rec_tab.TRANSACTION_ID(i), FND_API.G_MISS_NUM, NULL, l_acct_hist_rec_tab.TRANSACTION_ID(i)),
4454 		 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)),
4455 		 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)),
4456 		 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)),
4457 		 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)),
4458 		 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)),
4459 		 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)),
4460 		 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)),
4461 		 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)),
4462 		 decode( l_acct_hist_rec_tab.OLD_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_CONTEXT(i)),
4463 		 decode( l_acct_hist_rec_tab.NEW_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_CONTEXT(i)),
4464 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE1(i)),
4465 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE1(i)),
4466 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE2(i)),
4467 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE2(i)),
4468 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE3(i)),
4469 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE3(i)),
4470 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE4(i)),
4471 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE4(i)),
4472 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE5(i)),
4473 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE5(i)),
4474 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE6(i)),
4475 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE6(i)),
4476 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE7(i)),
4477 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE7(i)),
4478 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE8(i)),
4479 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE8(i)),
4480 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE9(i)),
4481 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE9(i)),
4482 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE10(i)),
4483 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE10(i)),
4484 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE11(i)),
4485 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE11(i)),
4486 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE12(i)),
4487 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE12(i)),
4488 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE13(i)),
4489 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE13(i)),
4490 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE14(i)),
4491 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE14(i)),
4492 		 decode( l_acct_hist_rec_tab.OLD_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.OLD_ATTRIBUTE15(i)),
4493 		 decode( l_acct_hist_rec_tab.NEW_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_acct_hist_rec_tab.NEW_ATTRIBUTE15(i)),
4494 		 'N',
4495 		 l_user_id,
4496 		 SYSDATE,
4497 		 l_user_id,
4498 		 SYSDATE,
4499 		 l_login_id,
4500 		 1,
4501 		 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)),
4502 		 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)),
4503 		 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)),
4504 		 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))
4505              );
4506    END IF;
4507    --
4508    IF p_org_units_tbl.count > 0 THEN
4509          Build_Org_Rec_of_Table
4510             (
4511               p_org_tbl           => p_org_units_tbl
4512              ,p_org_units_rec_tab => l_org_units_rec_tab
4513             );
4514          --
4515          l_ctr := l_org_units_rec_tab.instance_ou_id.count;
4516          --
4517 	 FORALL i in 1 .. l_ctr
4518 	  INSERT INTO CSI_I_ORG_ASSIGNMENTS(
4519 	     INSTANCE_OU_ID,
4520 	     INSTANCE_ID,
4521 	     OPERATING_UNIT_ID,
4522 	     RELATIONSHIP_TYPE_CODE,
4523 	     ACTIVE_START_DATE,
4524 	     ACTIVE_END_DATE,
4525 	     CONTEXT,
4526 	     ATTRIBUTE1,
4527 	     ATTRIBUTE2,
4528 	     ATTRIBUTE3,
4529 	     ATTRIBUTE4,
4530 	     ATTRIBUTE5,
4531 	     ATTRIBUTE6,
4532 	     ATTRIBUTE7,
4533 	     ATTRIBUTE8,
4534 	     ATTRIBUTE9,
4535 	     ATTRIBUTE10,
4536 	     ATTRIBUTE11,
4537 	     ATTRIBUTE12,
4538 	     ATTRIBUTE13,
4539 	     ATTRIBUTE14,
4540 	     ATTRIBUTE15,
4541 	     CREATED_BY,
4542 	     CREATION_DATE,
4543 	     LAST_UPDATED_BY,
4544 	     LAST_UPDATE_DATE,
4545 	     LAST_UPDATE_LOGIN,
4546 	     OBJECT_VERSION_NUMBER
4547 	    ) VALUES (
4548 	     l_org_units_rec_tab.INSTANCE_OU_ID(i),
4549 	     decode( l_org_units_rec_tab.INSTANCE_ID(i), FND_API.G_MISS_NUM, NULL, l_org_units_rec_tab.INSTANCE_ID(i)),
4550 	     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)),
4551 	     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)),
4552 	     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)),
4553 	     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)),
4554 	     decode( l_org_units_rec_tab.CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.CONTEXT(i)),
4555 	     decode( l_org_units_rec_tab.ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE1(i)),
4556 	     decode( l_org_units_rec_tab.ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE2(i)),
4557 	     decode( l_org_units_rec_tab.ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE3(i)),
4558 	     decode( l_org_units_rec_tab.ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE4(i)),
4559 	     decode( l_org_units_rec_tab.ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE5(i)),
4560 	     decode( l_org_units_rec_tab.ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE6(i)),
4561 	     decode( l_org_units_rec_tab.ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE7(i)),
4562 	     decode( l_org_units_rec_tab.ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE8(i)),
4563 	     decode( l_org_units_rec_tab.ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE9(i)),
4564 	     decode( l_org_units_rec_tab.ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE10(i)),
4565 	     decode( l_org_units_rec_tab.ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE11(i)),
4566 	     decode( l_org_units_rec_tab.ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE12(i)),
4567 	     decode( l_org_units_rec_tab.ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE13(i)),
4568 	     decode( l_org_units_rec_tab.ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE14(i)),
4569 	     decode( l_org_units_rec_tab.ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_org_units_rec_tab.ATTRIBUTE15(i)),
4570 	     l_user_id,
4571 	     SYSDATE,
4572 	     l_user_id,
4573 	     SYSDATE,
4574 	     l_login_id,
4575 	     1);
4576    END IF;
4577    --
4578    IF p_org_units_hist_tbl.count > 0 THEN
4579          Build_Org_Hist_Rec_of_Table
4580             (
4581               p_org_hist_tbl         => p_org_units_hist_tbl
4582              ,p_org_hist_rec_tab     => l_org_hist_rec_tab
4583             );
4584          --
4585          l_ctr := l_org_hist_rec_tab.instance_ou_history_id.count;
4586          --
4587 	 FORALL i in 1 .. l_ctr
4588 	 INSERT INTO CSI_I_ORG_ASSIGNMENTS_H(
4589 	    INSTANCE_OU_HISTORY_ID,
4590 	    INSTANCE_OU_ID,
4591 	    TRANSACTION_ID,
4592 	    OLD_OPERATING_UNIT_ID,
4593 	    NEW_OPERATING_UNIT_ID,
4594 	    OLD_RELATIONSHIP_TYPE_CODE,
4595 	    NEW_RELATIONSHIP_TYPE_CODE,
4596 	    OLD_ACTIVE_START_DATE,
4597 	    NEW_ACTIVE_START_DATE,
4598 	    OLD_ACTIVE_END_DATE,
4599 	    NEW_ACTIVE_END_DATE,
4600 	    OLD_CONTEXT,
4601 	    NEW_CONTEXT,
4602 	    OLD_ATTRIBUTE1,
4603 	    NEW_ATTRIBUTE1,
4604 	    OLD_ATTRIBUTE2,
4605 	    NEW_ATTRIBUTE2,
4606 	    OLD_ATTRIBUTE3,
4607 	    NEW_ATTRIBUTE3,
4608 	    OLD_ATTRIBUTE4,
4609 	    NEW_ATTRIBUTE4,
4610 	    OLD_ATTRIBUTE5,
4611 	    NEW_ATTRIBUTE5,
4612 	    OLD_ATTRIBUTE6,
4613 	    NEW_ATTRIBUTE6,
4614 	    OLD_ATTRIBUTE7,
4615 	    NEW_ATTRIBUTE7,
4616 	    OLD_ATTRIBUTE8,
4617 	    NEW_ATTRIBUTE8,
4618 	    OLD_ATTRIBUTE9,
4619 	    NEW_ATTRIBUTE9,
4620 	    OLD_ATTRIBUTE10,
4621 	    NEW_ATTRIBUTE10,
4622 	    OLD_ATTRIBUTE11,
4623 	    NEW_ATTRIBUTE11,
4624 	    OLD_ATTRIBUTE12,
4625 	    NEW_ATTRIBUTE12,
4626 	    OLD_ATTRIBUTE13,
4627 	    NEW_ATTRIBUTE13,
4628 	    OLD_ATTRIBUTE14,
4629 	    NEW_ATTRIBUTE14,
4630 	    OLD_ATTRIBUTE15,
4631 	    NEW_ATTRIBUTE15,
4632 	    FULL_DUMP_FLAG,
4633 	    CREATED_BY,
4634 	    CREATION_DATE,
4635 	    LAST_UPDATED_BY,
4636 	    LAST_UPDATE_DATE,
4637 	    LAST_UPDATE_LOGIN,
4638 	    OBJECT_VERSION_NUMBER
4639 	    ) VALUES (
4640 	    l_org_hist_rec_tab.INSTANCE_OU_HISTORY_ID(i),
4641 	    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)),
4642 	    decode( l_org_hist_rec_tab.TRANSACTION_ID(i), FND_API.G_MISS_NUM, NULL, l_org_hist_rec_tab.TRANSACTION_ID(i)),
4643 	    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)),
4644 	    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)),
4645 	    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)),
4646 	    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)),
4647 	    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)),
4648 	    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)),
4649 	    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)),
4650 	    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)),
4651 	    decode( l_org_hist_rec_tab.OLD_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_CONTEXT(i)),
4652 	    decode( l_org_hist_rec_tab.NEW_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_CONTEXT(i)),
4653 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE1(i)),
4654 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE1(i)),
4655 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE2(i)),
4656 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE2(i)),
4657 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE3(i)),
4658 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE3(i)),
4659 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE4(i)),
4660 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE4(i)),
4661 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE5(i)),
4662 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE5(i)),
4663 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE6(i)),
4664 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE6(i)),
4665 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE7(i)),
4666 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE7(i)),
4667 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE8(i)),
4668 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE8(i)),
4669 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE9(i)),
4670 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE9(i)),
4671 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE10(i)),
4672 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE10(i)),
4673 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE11(i)),
4674 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE11(i)),
4675 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE12(i)),
4676 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE12(i)),
4677 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE13(i)),
4678 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE13(i)),
4679 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE14(i)),
4680 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE14(i)),
4681 	    decode( l_org_hist_rec_tab.OLD_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.OLD_ATTRIBUTE15(i)),
4682 	    decode( l_org_hist_rec_tab.NEW_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_org_hist_rec_tab.NEW_ATTRIBUTE15(i)),
4683 	    'N',
4684 	    l_user_id,
4685 	    SYSDATE,
4686 	    l_user_id,
4687 	    SYSDATE,
4688 	    l_login_id,
4689 	    1);
4690    END IF;
4691    --
4692    IF p_pricing_tbl.count > 0 THEN
4693       Build_pricing_Rec_of_Table
4694         (
4695           p_pricing_tbl       => p_pricing_tbl
4696          ,p_pricing_rec_tab   => l_pricing_rec_tab
4697         );
4698       --
4699       l_ctr := l_pricing_rec_tab.pricing_attribute_id.count;
4700       --
4701       FORALL i in 1 .. l_ctr
4702        INSERT INTO CSI_I_PRICING_ATTRIBS(
4703 	  PRICING_ATTRIBUTE_ID,
4704 	  INSTANCE_ID,
4705 	  ACTIVE_START_DATE,
4706 	  ACTIVE_END_DATE,
4707 	  CONTEXT,
4708 	  ATTRIBUTE1,
4709 	  ATTRIBUTE2,
4710 	  ATTRIBUTE3,
4711 	  ATTRIBUTE4,
4712 	  ATTRIBUTE5,
4713 	  ATTRIBUTE6,
4714 	  ATTRIBUTE7,
4715 	  ATTRIBUTE8,
4716 	  ATTRIBUTE9,
4717 	  ATTRIBUTE10,
4718 	  ATTRIBUTE11,
4719 	  ATTRIBUTE12,
4720 	  ATTRIBUTE13,
4721 	  ATTRIBUTE14,
4722 	  ATTRIBUTE15,
4723 	  CREATED_BY,
4724 	  CREATION_DATE,
4725 	  LAST_UPDATED_BY,
4726 	  LAST_UPDATE_DATE,
4727 	  LAST_UPDATE_LOGIN,
4728 	  OBJECT_VERSION_NUMBER,
4729 	  PRICING_CONTEXT,
4730 	  PRICING_ATTRIBUTE1,
4731 	  PRICING_ATTRIBUTE2,
4732 	  PRICING_ATTRIBUTE3,
4733 	  PRICING_ATTRIBUTE4,
4734 	  PRICING_ATTRIBUTE5,
4735 	  PRICING_ATTRIBUTE6,
4736 	  PRICING_ATTRIBUTE7,
4737 	  PRICING_ATTRIBUTE8,
4738 	  PRICING_ATTRIBUTE9,
4739 	  PRICING_ATTRIBUTE10,
4740 	  PRICING_ATTRIBUTE11,
4741 	  PRICING_ATTRIBUTE12,
4742 	  PRICING_ATTRIBUTE13,
4743 	  PRICING_ATTRIBUTE14,
4744 	  PRICING_ATTRIBUTE15,
4745 	  PRICING_ATTRIBUTE16,
4746 	  PRICING_ATTRIBUTE17,
4747 	  PRICING_ATTRIBUTE18,
4748 	  PRICING_ATTRIBUTE19,
4749 	  PRICING_ATTRIBUTE20,
4750 	  PRICING_ATTRIBUTE21,
4751 	  PRICING_ATTRIBUTE22,
4752 	  PRICING_ATTRIBUTE23,
4753 	  PRICING_ATTRIBUTE24,
4754 	  PRICING_ATTRIBUTE25,
4755 	  PRICING_ATTRIBUTE26,
4756 	  PRICING_ATTRIBUTE27,
4757 	  PRICING_ATTRIBUTE28,
4758 	  PRICING_ATTRIBUTE29,
4759 	  PRICING_ATTRIBUTE30,
4760 	  PRICING_ATTRIBUTE31,
4761 	  PRICING_ATTRIBUTE32,
4762 	  PRICING_ATTRIBUTE33,
4763 	  PRICING_ATTRIBUTE34,
4764 	  PRICING_ATTRIBUTE35,
4765 	  PRICING_ATTRIBUTE36,
4766 	  PRICING_ATTRIBUTE37,
4767 	  PRICING_ATTRIBUTE38,
4768 	  PRICING_ATTRIBUTE39,
4769 	  PRICING_ATTRIBUTE40,
4770 	  PRICING_ATTRIBUTE41,
4771 	  PRICING_ATTRIBUTE42,
4772 	  PRICING_ATTRIBUTE43,
4773 	  PRICING_ATTRIBUTE44,
4774 	  PRICING_ATTRIBUTE45,
4775 	  PRICING_ATTRIBUTE46,
4776 	  PRICING_ATTRIBUTE47,
4777 	  PRICING_ATTRIBUTE48,
4778 	  PRICING_ATTRIBUTE49,
4779 	  PRICING_ATTRIBUTE50,
4780 	  PRICING_ATTRIBUTE51,
4781 	  PRICING_ATTRIBUTE52,
4782 	  PRICING_ATTRIBUTE53,
4783 	  PRICING_ATTRIBUTE54,
4784 	  PRICING_ATTRIBUTE55,
4785 	  PRICING_ATTRIBUTE56,
4786 	  PRICING_ATTRIBUTE57,
4787 	  PRICING_ATTRIBUTE58,
4788 	  PRICING_ATTRIBUTE59,
4789 	  PRICING_ATTRIBUTE60,
4790 	  PRICING_ATTRIBUTE61,
4791 	  PRICING_ATTRIBUTE62,
4792 	  PRICING_ATTRIBUTE63,
4793 	  PRICING_ATTRIBUTE64,
4794 	  PRICING_ATTRIBUTE65,
4795 	  PRICING_ATTRIBUTE66,
4796 	  PRICING_ATTRIBUTE67,
4797 	  PRICING_ATTRIBUTE68,
4798 	  PRICING_ATTRIBUTE69,
4799 	  PRICING_ATTRIBUTE70,
4800 	  PRICING_ATTRIBUTE71,
4801 	  PRICING_ATTRIBUTE72,
4802 	  PRICING_ATTRIBUTE73,
4803 	  PRICING_ATTRIBUTE74,
4804 	  PRICING_ATTRIBUTE75,
4805 	  PRICING_ATTRIBUTE76,
4806 	  PRICING_ATTRIBUTE77,
4807 	  PRICING_ATTRIBUTE78,
4808 	  PRICING_ATTRIBUTE79,
4809 	  PRICING_ATTRIBUTE80,
4810 	  PRICING_ATTRIBUTE81,
4811 	  PRICING_ATTRIBUTE82,
4812 	  PRICING_ATTRIBUTE83,
4813 	  PRICING_ATTRIBUTE84,
4814 	  PRICING_ATTRIBUTE85,
4815 	  PRICING_ATTRIBUTE86,
4816 	  PRICING_ATTRIBUTE87,
4817 	  PRICING_ATTRIBUTE88,
4818 	  PRICING_ATTRIBUTE89,
4819 	  PRICING_ATTRIBUTE90,
4820 	  PRICING_ATTRIBUTE91,
4821 	  PRICING_ATTRIBUTE92,
4822 	  PRICING_ATTRIBUTE93,
4823 	  PRICING_ATTRIBUTE94,
4824 	  PRICING_ATTRIBUTE95,
4825 	  PRICING_ATTRIBUTE96,
4826 	  PRICING_ATTRIBUTE97,
4827 	  PRICING_ATTRIBUTE98,
4828 	  PRICING_ATTRIBUTE99,
4829 	  PRICING_ATTRIBUTE100
4830 	 ) VALUES (
4831 	  l_pricing_rec_tab.PRICING_ATTRIBUTE_ID(i),
4832 	  decode( l_pricing_rec_tab.INSTANCE_ID(i), FND_API.G_MISS_NUM, NULL, l_pricing_rec_tab.INSTANCE_ID(i)),
4833 	  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)),
4834 	  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)),
4835 	  decode( l_pricing_rec_tab.CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.CONTEXT(i)),
4836 	  decode( l_pricing_rec_tab.ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE1(i)),
4837 	  decode( l_pricing_rec_tab.ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE2(i)),
4838 	  decode( l_pricing_rec_tab.ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE3(i)),
4839 	  decode( l_pricing_rec_tab.ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE4(i)),
4840 	  decode( l_pricing_rec_tab.ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE5(i)),
4841 	  decode( l_pricing_rec_tab.ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE6(i)),
4842 	  decode( l_pricing_rec_tab.ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE7(i)),
4843 	  decode( l_pricing_rec_tab.ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE8(i)),
4844 	  decode( l_pricing_rec_tab.ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE9(i)),
4845 	  decode( l_pricing_rec_tab.ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE10(i)),
4846 	  decode( l_pricing_rec_tab.ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE11(i)),
4847 	  decode( l_pricing_rec_tab.ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE12(i)),
4848 	  decode( l_pricing_rec_tab.ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE13(i)),
4849 	  decode( l_pricing_rec_tab.ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE14(i)),
4850 	  decode( l_pricing_rec_tab.ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.ATTRIBUTE15(i)),
4851 	  l_user_id,
4852 	  SYSDATE,
4853 	  l_user_id,
4854 	  SYSDATE,
4855 	  l_login_id,
4856 	  1,
4857 	  decode( l_pricing_rec_tab.PRICING_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_CONTEXT(i)),
4858 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE1(i)),
4859 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE2(i)),
4860 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE3(i)),
4861 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE4(i)),
4862 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE5(i)),
4863 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE6(i)),
4864 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE7(i)),
4865 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE8(i)),
4866 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE9(i)),
4867 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE10(i)),
4868 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE11(i)),
4869 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE12(i)),
4870 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE13(i)),
4871 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE14(i)),
4872 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE15(i)),
4873 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE16(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE16(i)),
4874 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE17(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE17(i)),
4875 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE18(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE18(i)),
4876 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE19(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE19(i)),
4877 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE20(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE20(i)),
4878 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE21(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE21(i)),
4879 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE22(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE22(i)),
4880 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE23(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE23(i)),
4881 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE24(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE24(i)),
4882 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE25(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE25(i)),
4883 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE26(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE26(i)),
4884 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE27(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE27(i)),
4885 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE28(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE28(i)),
4886 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE29(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE29(i)),
4887 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE30(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE30(i)),
4888 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE31(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE31(i)),
4889 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE32(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE32(i)),
4890 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE33(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE33(i)),
4891 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE34(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE34(i)),
4892 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE35(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE35(i)),
4893 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE36(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE36(i)),
4894 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE37(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE37(i)),
4895 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE38(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE38(i)),
4896 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE39(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE39(i)),
4897 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE40(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE40(i)),
4898 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE41(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE41(i)),
4899 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE42(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE42(i)),
4900 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE43(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE43(i)),
4901 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE44(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE44(i)),
4902 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE45(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE45(i)),
4903 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE46(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE46(i)),
4904 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE47(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE47(i)),
4905 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE48(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE48(i)),
4906 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE49(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE49(i)),
4907 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE50(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE50(i)),
4908 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE51(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE51(i)),
4909 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE52(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE52(i)),
4910 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE53(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE53(i)),
4911 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE54(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE54(i)),
4912 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE55(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE55(i)),
4913 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE56(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE56(i)),
4914 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE57(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE57(i)),
4915 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE58(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE58(i)),
4916 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE59(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE59(i)),
4917 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE60(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE60(i)),
4918 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE61(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE61(i)),
4919 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE62(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE62(i)),
4920 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE63(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE63(i)),
4921 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE64(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE64(i)),
4922 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE65(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE65(i)),
4923 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE66(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE66(i)),
4924 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE67(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE67(i)),
4925 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE68(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE68(i)),
4926 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE69(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE69(i)),
4927 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE70(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE70(i)),
4928 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE71(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE71(i)),
4929 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE72(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE72(i)),
4930 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE73(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE73(i)),
4931 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE74(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE74(i)),
4932 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE75(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE75(i)),
4933 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE76(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE76(i)),
4934 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE77(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE77(i)),
4935 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE78(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE78(i)),
4936 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE79(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE79(i)),
4937 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE80(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE80(i)),
4938 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE81(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE81(i)),
4939 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE82(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE82(i)),
4940 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE83(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE83(i)),
4941 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE84(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE84(i)),
4942 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE85(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE85(i)),
4943 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE86(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE86(i)),
4944 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE87(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE87(i)),
4945 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE88(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE88(i)),
4946 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE89(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE89(i)),
4947 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE90(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE90(i)),
4948 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE91(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE91(i)),
4949 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE92(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE92(i)),
4950 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE93(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE93(i)),
4951 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE94(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE94(i)),
4952 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE95(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE95(i)),
4953 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE96(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE96(i)),
4954 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE97(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE97(i)),
4955 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE98(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE98(i)),
4956 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE99(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE99(i)),
4957 	  decode( l_pricing_rec_tab.PRICING_ATTRIBUTE100(i), FND_API.G_MISS_CHAR, NULL, l_pricing_rec_tab.PRICING_ATTRIBUTE100(i))
4958 	  );
4959    END IF;
4960    --
4961    IF p_pricing_hist_tbl.count > 0 THEN
4962          Build_pricing_Hist_Rec_Table
4963             (
4964               p_pricing_hist_tbl       => p_pricing_hist_tbl
4965              ,p_pricing_hist_rec_tab   => l_pricing_hist_rec_tab
4966             );
4967          --
4968          l_ctr := l_pricing_hist_rec_tab.price_attrib_history_id.count;
4969          --
4970 	 FORALL i in 1 .. l_ctr
4971 	  INSERT INTO CSI_I_PRICING_ATTRIBS_H(
4972 	    PRICE_ATTRIB_HISTORY_ID,
4973 	    PRICING_ATTRIBUTE_ID,
4974 	    TRANSACTION_ID,
4975 	    OLD_PRICING_CONTEXT,
4976 	    NEW_PRICING_CONTEXT,
4977 	    OLD_PRICING_ATTRIBUTE1,
4978 	    NEW_PRICING_ATTRIBUTE1,
4979 	    OLD_PRICING_ATTRIBUTE2,
4980 	    NEW_PRICING_ATTRIBUTE2,
4981 	    OLD_PRICING_ATTRIBUTE3,
4982 	    NEW_PRICING_ATTRIBUTE3,
4983 	    OLD_PRICING_ATTRIBUTE4,
4984 	    NEW_PRICING_ATTRIBUTE4,
4985 	    OLD_PRICING_ATTRIBUTE5,
4986 	    NEW_PRICING_ATTRIBUTE5,
4987 	    OLD_PRICING_ATTRIBUTE6,
4988 	    NEW_PRICING_ATTRIBUTE6,
4989 	    OLD_PRICING_ATTRIBUTE7,
4990 	    NEW_PRICING_ATTRIBUTE7,
4991 	    OLD_PRICING_ATTRIBUTE8,
4992 	    NEW_PRICING_ATTRIBUTE8,
4993 	    OLD_PRICING_ATTRIBUTE9,
4994 	    NEW_PRICING_ATTRIBUTE9,
4995 	    OLD_PRICING_ATTRIBUTE10,
4996 	    NEW_PRICING_ATTRIBUTE10,
4997 	    OLD_PRICING_ATTRIBUTE11,
4998 	    NEW_PRICING_ATTRIBUTE11,
4999 	    OLD_PRICING_ATTRIBUTE12,
5000 	    NEW_PRICING_ATTRIBUTE12,
5001 	    OLD_PRICING_ATTRIBUTE13,
5002 	    NEW_PRICING_ATTRIBUTE13,
5003 	    OLD_PRICING_ATTRIBUTE14,
5004 	    NEW_PRICING_ATTRIBUTE14,
5005 	    OLD_PRICING_ATTRIBUTE15,
5006 	    NEW_PRICING_ATTRIBUTE15,
5007 	    OLD_PRICING_ATTRIBUTE16,
5008 	    NEW_PRICING_ATTRIBUTE16,
5009 	    OLD_PRICING_ATTRIBUTE17,
5010 	    NEW_PRICING_ATTRIBUTE17,
5011 	    OLD_PRICING_ATTRIBUTE18,
5012 	    NEW_PRICING_ATTRIBUTE18,
5013 	    OLD_PRICING_ATTRIBUTE19,
5014 	    NEW_PRICING_ATTRIBUTE19,
5015 	    OLD_PRICING_ATTRIBUTE20,
5016 	    NEW_PRICING_ATTRIBUTE20,
5017 	    OLD_PRICING_ATTRIBUTE21,
5018 	    NEW_PRICING_ATTRIBUTE21,
5019 	    OLD_PRICING_ATTRIBUTE22,
5020 	    NEW_PRICING_ATTRIBUTE22,
5021 	    OLD_PRICING_ATTRIBUTE23,
5022 	    NEW_PRICING_ATTRIBUTE23,
5023 	    OLD_PRICING_ATTRIBUTE24,
5024 	    NEW_PRICING_ATTRIBUTE24,
5025 	    NEW_PRICING_ATTRIBUTE25,
5026 	    OLD_PRICING_ATTRIBUTE25,
5027 	    OLD_PRICING_ATTRIBUTE26,
5028 	    NEW_PRICING_ATTRIBUTE26,
5029 	    OLD_PRICING_ATTRIBUTE27,
5030 	    NEW_PRICING_ATTRIBUTE27,
5031 	    OLD_PRICING_ATTRIBUTE28,
5032 	    NEW_PRICING_ATTRIBUTE28,
5033 	    OLD_PRICING_ATTRIBUTE29,
5034 	    NEW_PRICING_ATTRIBUTE29,
5035 	    OLD_PRICING_ATTRIBUTE30,
5036 	    NEW_PRICING_ATTRIBUTE30,
5037 	    OLD_PRICING_ATTRIBUTE31,
5038 	    NEW_PRICING_ATTRIBUTE31,
5039 	    OLD_PRICING_ATTRIBUTE32,
5040 	    NEW_PRICING_ATTRIBUTE32,
5041 	    OLD_PRICING_ATTRIBUTE33,
5042 	    NEW_PRICING_ATTRIBUTE33,
5043 	    OLD_PRICING_ATTRIBUTE34,
5044 	    NEW_PRICING_ATTRIBUTE34,
5045 	    OLD_PRICING_ATTRIBUTE35,
5046 	    NEW_PRICING_ATTRIBUTE35,
5047 	    OLD_PRICING_ATTRIBUTE36,
5048 	    NEW_PRICING_ATTRIBUTE36,
5049 	    OLD_PRICING_ATTRIBUTE37,
5050 	    NEW_PRICING_ATTRIBUTE37,
5051 	    OLD_PRICING_ATTRIBUTE38,
5052 	    NEW_PRICING_ATTRIBUTE38,
5053 	    OLD_PRICING_ATTRIBUTE39,
5054 	    NEW_PRICING_ATTRIBUTE39,
5055 	    OLD_PRICING_ATTRIBUTE40,
5056 	    NEW_PRICING_ATTRIBUTE40,
5057 	    OLD_PRICING_ATTRIBUTE41,
5058 	    NEW_PRICING_ATTRIBUTE41,
5059 	    OLD_PRICING_ATTRIBUTE42,
5060 	    NEW_PRICING_ATTRIBUTE42,
5061 	    OLD_PRICING_ATTRIBUTE43,
5062 	    NEW_PRICING_ATTRIBUTE43,
5063 	    OLD_PRICING_ATTRIBUTE44,
5064 	    NEW_PRICING_ATTRIBUTE44,
5065 	    OLD_PRICING_ATTRIBUTE45,
5066 	    NEW_PRICING_ATTRIBUTE45,
5067 	    OLD_PRICING_ATTRIBUTE46,
5068 	    NEW_PRICING_ATTRIBUTE46,
5069 	    OLD_PRICING_ATTRIBUTE47,
5070 	    NEW_PRICING_ATTRIBUTE47,
5071 	    OLD_PRICING_ATTRIBUTE48,
5072 	    NEW_PRICING_ATTRIBUTE48,
5073 	    OLD_PRICING_ATTRIBUTE49,
5074 	    NEW_PRICING_ATTRIBUTE49,
5075 	    OLD_PRICING_ATTRIBUTE50,
5076 	    NEW_PRICING_ATTRIBUTE50,
5077 	    OLD_PRICING_ATTRIBUTE51,
5078 	    NEW_PRICING_ATTRIBUTE51,
5079 	    OLD_PRICING_ATTRIBUTE52,
5080 	    NEW_PRICING_ATTRIBUTE52,
5081 	    OLD_PRICING_ATTRIBUTE53,
5082 	    NEW_PRICING_ATTRIBUTE53,
5083 	    OLD_PRICING_ATTRIBUTE54,
5084 	    NEW_PRICING_ATTRIBUTE54,
5085 	    OLD_PRICING_ATTRIBUTE55,
5086 	    NEW_PRICING_ATTRIBUTE55,
5087 	    OLD_PRICING_ATTRIBUTE56,
5088 	    NEW_PRICING_ATTRIBUTE56,
5089 	    OLD_PRICING_ATTRIBUTE57,
5090 	    NEW_PRICING_ATTRIBUTE57,
5091 	    OLD_PRICING_ATTRIBUTE58,
5092 	    NEW_PRICING_ATTRIBUTE58,
5093 	    OLD_PRICING_ATTRIBUTE59,
5094 	    NEW_PRICING_ATTRIBUTE59,
5095 	    OLD_PRICING_ATTRIBUTE60,
5096 	    NEW_PRICING_ATTRIBUTE60,
5097 	    OLD_PRICING_ATTRIBUTE61,
5098 	    NEW_PRICING_ATTRIBUTE61,
5099 	    OLD_PRICING_ATTRIBUTE62,
5100 	    NEW_PRICING_ATTRIBUTE62,
5101 	    OLD_PRICING_ATTRIBUTE63,
5102 	    NEW_PRICING_ATTRIBUTE63,
5103 	    OLD_PRICING_ATTRIBUTE64,
5104 	    NEW_PRICING_ATTRIBUTE64,
5105 	    OLD_PRICING_ATTRIBUTE65,
5106 	    NEW_PRICING_ATTRIBUTE65,
5107 	    OLD_PRICING_ATTRIBUTE66,
5108 	    NEW_PRICING_ATTRIBUTE66,
5109 	    OLD_PRICING_ATTRIBUTE67,
5110 	    NEW_PRICING_ATTRIBUTE67,
5111 	    OLD_PRICING_ATTRIBUTE68,
5112 	    NEW_PRICING_ATTRIBUTE68,
5113 	    OLD_PRICING_ATTRIBUTE69,
5114 	    NEW_PRICING_ATTRIBUTE69,
5115 	    OLD_PRICING_ATTRIBUTE70,
5116 	    NEW_PRICING_ATTRIBUTE70,
5117 	    OLD_PRICING_ATTRIBUTE71,
5118 	    NEW_PRICING_ATTRIBUTE71,
5119 	    OLD_PRICING_ATTRIBUTE72,
5120 	    NEW_PRICING_ATTRIBUTE72,
5121 	    OLD_PRICING_ATTRIBUTE73,
5122 	    NEW_PRICING_ATTRIBUTE73,
5123 	    OLD_PRICING_ATTRIBUTE74,
5124 	    NEW_PRICING_ATTRIBUTE74,
5125 	    OLD_PRICING_ATTRIBUTE75,
5126 	    NEW_PRICING_ATTRIBUTE75,
5127 	    OLD_PRICING_ATTRIBUTE76,
5128 	    NEW_PRICING_ATTRIBUTE76,
5129 	    OLD_PRICING_ATTRIBUTE77,
5130 	    NEW_PRICING_ATTRIBUTE77,
5131 	    OLD_PRICING_ATTRIBUTE78,
5132 	    NEW_PRICING_ATTRIBUTE78,
5133 	    OLD_PRICING_ATTRIBUTE79,
5134 	    NEW_PRICING_ATTRIBUTE79,
5135 	    OLD_PRICING_ATTRIBUTE80,
5136 	    NEW_PRICING_ATTRIBUTE80,
5137 	    OLD_PRICING_ATTRIBUTE81,
5138 	    NEW_PRICING_ATTRIBUTE81,
5139 	    OLD_PRICING_ATTRIBUTE82,
5140 	    NEW_PRICING_ATTRIBUTE82,
5141 	    OLD_PRICING_ATTRIBUTE83,
5142 	    NEW_PRICING_ATTRIBUTE83,
5143 	    OLD_PRICING_ATTRIBUTE84,
5144 	    NEW_PRICING_ATTRIBUTE84,
5145 	    OLD_PRICING_ATTRIBUTE85,
5146 	    NEW_PRICING_ATTRIBUTE85,
5147 	    OLD_PRICING_ATTRIBUTE86,
5148 	    NEW_PRICING_ATTRIBUTE86,
5149 	    OLD_PRICING_ATTRIBUTE87,
5150 	    NEW_PRICING_ATTRIBUTE87,
5151 	    OLD_PRICING_ATTRIBUTE88,
5152 	    NEW_PRICING_ATTRIBUTE88,
5153 	    OLD_PRICING_ATTRIBUTE89,
5154 	    NEW_PRICING_ATTRIBUTE89,
5155 	    OLD_PRICING_ATTRIBUTE90,
5156 	    NEW_PRICING_ATTRIBUTE90,
5157 	    OLD_PRICING_ATTRIBUTE91,
5158 	    NEW_PRICING_ATTRIBUTE91,
5159 	    OLD_PRICING_ATTRIBUTE92,
5160 	    NEW_PRICING_ATTRIBUTE92,
5161 	    OLD_PRICING_ATTRIBUTE93,
5162 	    NEW_PRICING_ATTRIBUTE93,
5163 	    OLD_PRICING_ATTRIBUTE94,
5164 	    NEW_PRICING_ATTRIBUTE94,
5165 	    OLD_PRICING_ATTRIBUTE95,
5166 	    NEW_PRICING_ATTRIBUTE95,
5167 	    OLD_PRICING_ATTRIBUTE96,
5168 	    NEW_PRICING_ATTRIBUTE96,
5169 	    OLD_PRICING_ATTRIBUTE97,
5170 	    NEW_PRICING_ATTRIBUTE97,
5171 	    OLD_PRICING_ATTRIBUTE98,
5172 	    NEW_PRICING_ATTRIBUTE98,
5173 	    OLD_PRICING_ATTRIBUTE99,
5174 	    NEW_PRICING_ATTRIBUTE99,
5175 	    OLD_PRICING_ATTRIBUTE100,
5176 	    NEW_PRICING_ATTRIBUTE100,
5177 	    OLD_ACTIVE_START_DATE,
5178 	    NEW_ACTIVE_START_DATE,
5179 	    OLD_ACTIVE_END_DATE,
5180 	    NEW_ACTIVE_END_DATE,
5181 	    OLD_CONTEXT,
5182 	    NEW_CONTEXT,
5183 	    OLD_ATTRIBUTE1,
5184 	    NEW_ATTRIBUTE1,
5185 	    OLD_ATTRIBUTE2,
5186 	    NEW_ATTRIBUTE2,
5187 	    OLD_ATTRIBUTE3,
5188 	    NEW_ATTRIBUTE3,
5189 	    OLD_ATTRIBUTE4,
5190 	    NEW_ATTRIBUTE4,
5191 	    OLD_ATTRIBUTE5,
5192 	    NEW_ATTRIBUTE5,
5193 	    OLD_ATTRIBUTE6,
5194 	    NEW_ATTRIBUTE6,
5195 	    OLD_ATTRIBUTE7,
5196 	    NEW_ATTRIBUTE7,
5197 	    OLD_ATTRIBUTE8,
5198 	    NEW_ATTRIBUTE8,
5199 	    OLD_ATTRIBUTE9,
5200 	    NEW_ATTRIBUTE9,
5201 	    OLD_ATTRIBUTE10,
5202 	    NEW_ATTRIBUTE10,
5203 	    OLD_ATTRIBUTE11,
5204 	    NEW_ATTRIBUTE11,
5205 	    OLD_ATTRIBUTE12,
5206 	    NEW_ATTRIBUTE12,
5207 	    OLD_ATTRIBUTE13,
5208 	    NEW_ATTRIBUTE13,
5209 	    OLD_ATTRIBUTE14,
5210 	    NEW_ATTRIBUTE14,
5211 	    OLD_ATTRIBUTE15,
5212 	    NEW_ATTRIBUTE15,
5213 	    FULL_DUMP_FLAG,
5214 	    CREATED_BY,
5215 	    CREATION_DATE,
5216 	    LAST_UPDATED_BY,
5217 	    LAST_UPDATE_DATE,
5218 	    LAST_UPDATE_LOGIN,
5219 	    OBJECT_VERSION_NUMBER
5220 	   ) VALUES (
5221 	    l_pricing_hist_rec_tab.PRICE_ATTRIB_HISTORY_ID(i),
5222 	    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)),
5223 	    decode( l_pricing_hist_rec_tab.TRANSACTION_ID(i), FND_API.G_MISS_NUM, NULL, l_pricing_hist_rec_tab.TRANSACTION_ID(i)),
5224 	    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)),
5225 	    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)),
5226 	    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)),
5227 	    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)),
5228 	    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)),
5229 	    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)),
5230 	    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)),
5231 	    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)),
5232 	    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)),
5233 	    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)),
5234 	    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)),
5235 	    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)),
5236 	    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)),
5237 	    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)),
5238 	    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)),
5239 	    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)),
5240 	    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)),
5241 	    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)),
5242 	    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)),
5243 	    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)),
5244 	    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)),
5245 	    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)),
5246 	    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)),
5247 	    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)),
5248 	    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)),
5249 	    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)),
5250 	    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)),
5251 	    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)),
5252 	    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)),
5253 	    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)),
5254 	    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)),
5255 	    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)),
5256 	    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)),
5257 	    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)),
5258 	    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)),
5259 	    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)),
5260 	    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)),
5261 	    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)),
5262 	    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)),
5263 	    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)),
5264 	    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)),
5265 	    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)),
5266 	    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)),
5267 	    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)),
5268 	    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)),
5269 	    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)),
5270 	    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)),
5271 	    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)),
5272 	    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)),
5273 	    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)),
5274 	    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)),
5275 	    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)),
5276 	    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)),
5277 	    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)),
5278 	    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)),
5279 	    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)),
5280 	    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)),
5281 	    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)),
5282 	    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)),
5283 	    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)),
5284 	    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)),
5285 	    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)),
5286 	    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)),
5287 	    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)),
5288 	    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)),
5289 	    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)),
5290 	    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)),
5291 	    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)),
5292 	    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)),
5293 	    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)),
5294 	    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)),
5295 	    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)),
5296 	    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)),
5297 	    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)),
5298 	    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)),
5299 	    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)),
5300 	    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)),
5301 	    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)),
5302 	    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)),
5303 	    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)),
5304 	    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)),
5305 	    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)),
5306 	    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)),
5307 	    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)),
5308 	    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)),
5309 	    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)),
5310 	    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)),
5311 	    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)),
5312 	    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)),
5313 	    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)),
5314 	    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)),
5315 	    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)),
5316 	    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)),
5317 	    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)),
5318 	    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)),
5319 	    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)),
5320 	    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)),
5321 	    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)),
5322 	    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)),
5323 	    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)),
5324 	    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)),
5325 	    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)),
5326 	    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)),
5327 	    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)),
5328 	    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)),
5329 	    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)),
5330 	    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)),
5331 	    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)),
5332 	    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)),
5333 	    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)),
5334 	    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)),
5335 	    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)),
5336 	    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)),
5337 	    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)),
5338 	    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)),
5339 	    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)),
5340 	    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)),
5341 	    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)),
5342 	    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)),
5343 	    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)),
5344 	    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)),
5345 	    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)),
5346 	    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)),
5347 	    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)),
5348 	    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)),
5349 	    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)),
5350 	    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)),
5351 	    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)),
5352 	    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)),
5353 	    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)),
5354 	    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)),
5355 	    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)),
5356 	    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)),
5357 	    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)),
5358 	    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)),
5359 	    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)),
5360 	    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)),
5361 	    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)),
5362 	    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)),
5363 	    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)),
5364 	    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)),
5365 	    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)),
5366 	    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)),
5367 	    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)),
5368 	    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)),
5369 	    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)),
5370 	    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)),
5371 	    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)),
5372 	    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)),
5373 	    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)),
5374 	    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)),
5375 	    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)),
5376 	    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)),
5377 	    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)),
5378 	    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)),
5379 	    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)),
5380 	    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)),
5381 	    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)),
5382 	    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)),
5383 	    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)),
5384 	    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)),
5385 	    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)),
5386 	    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)),
5387 	    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)),
5388 	    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)),
5389 	    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)),
5390 	    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)),
5391 	    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)),
5392 	    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)),
5393 	    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)),
5394 	    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)),
5395 	    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)),
5396 	    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)),
5397 	    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)),
5398 	    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)),
5399 	    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)),
5400 	    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)),
5401 	    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)),
5402 	    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)),
5403 	    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)),
5404 	    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)),
5405 	    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)),
5406 	    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)),
5407 	    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)),
5408 	    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)),
5409 	    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)),
5410 	    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)),
5411 	    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)),
5412 	    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)),
5413 	    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)),
5414 	    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)),
5415 	    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)),
5416 	    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)),
5417 	    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)),
5418 	    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)),
5419 	    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)),
5420 	    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)),
5421 	    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)),
5422 	    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)),
5423 	    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)),
5424 	    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)),
5425 	    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)),
5426 	    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)),
5427 	    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)),
5428 	    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)),
5429 	    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)),
5430 	    decode( l_pricing_hist_rec_tab.OLD_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_CONTEXT(i)),
5431 	    decode( l_pricing_hist_rec_tab.NEW_CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_CONTEXT(i)),
5432 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE1(i)),
5433 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE1(i)),
5434 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE2(i)),
5435 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE2(i)),
5436 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE3(i)),
5437 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE3(i)),
5438 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE4(i)),
5439 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE4(i)),
5440 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE5(i)),
5441 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE5(i)),
5442 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE6(i)),
5443 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE6(i)),
5444 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE7(i)),
5445 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE7(i)),
5446 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE8(i)),
5447 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE8(i)),
5448 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE9(i)),
5449 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE9(i)),
5450 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE10(i)),
5451 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE10(i)),
5452 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE11(i)),
5453 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE11(i)),
5454 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE12(i)),
5455 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE12(i)),
5456 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE13(i)),
5457 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE13(i)),
5458 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE14(i)),
5459 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE14(i)),
5460 	    decode( l_pricing_hist_rec_tab.OLD_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.OLD_ATTRIBUTE15(i)),
5461 	    decode( l_pricing_hist_rec_tab.NEW_ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_pricing_hist_rec_tab.NEW_ATTRIBUTE15(i)),
5462 	    'N',
5463 	    l_user_id,
5464 	    SYSDATE,
5465 	    l_user_id,
5466 	    SYSDATE,
5467 	    l_login_id,
5468 	    1
5469 	   );
5470    END IF;
5471    IF p_ext_attr_values_tbl.count > 0 THEN
5472          Build_Ext_Attr_Rec_Table
5473             (
5474               p_ext_attr_tbl     => p_ext_attr_values_tbl
5475              ,p_ext_attr_rec_tab => l_ext_attr_rec_tab
5476             );
5477          --
5478          l_ctr := l_ext_attr_rec_tab.attribute_value_id.count;
5479          --
5480          FORALL i in 1 .. l_ctr
5481             INSERT INTO CSI_IEA_VALUES(
5482               ATTRIBUTE_VALUE_ID,
5483               ATTRIBUTE_ID,
5484               INSTANCE_ID,
5485               ATTRIBUTE_VALUE,
5486               ACTIVE_START_DATE,
5487               ACTIVE_END_DATE,
5488               CONTEXT,
5489               ATTRIBUTE1,
5490               ATTRIBUTE2,
5491               ATTRIBUTE3,
5492               ATTRIBUTE4,
5493               ATTRIBUTE5,
5494               ATTRIBUTE6,
5495               ATTRIBUTE7,
5496               ATTRIBUTE8,
5497               ATTRIBUTE9,
5498               ATTRIBUTE10,
5499               ATTRIBUTE11,
5500               ATTRIBUTE12,
5501               ATTRIBUTE13,
5502               ATTRIBUTE14,
5503               ATTRIBUTE15,
5504               CREATED_BY,
5505               CREATION_DATE,
5506               LAST_UPDATED_BY,
5507               LAST_UPDATE_DATE,
5508               LAST_UPDATE_LOGIN,
5509               OBJECT_VERSION_NUMBER
5510               ) VALUES (
5511               l_ext_attr_rec_tab.ATTRIBUTE_VALUE_ID(i),
5512               decode( l_ext_attr_rec_tab.ATTRIBUTE_ID(i), FND_API.G_MISS_NUM, NULL, l_ext_attr_rec_tab.ATTRIBUTE_ID(i)),
5513               decode( l_ext_attr_rec_tab.INSTANCE_ID(i), FND_API.G_MISS_NUM, NULL, l_ext_attr_rec_tab.INSTANCE_ID(i)),
5514               decode( l_ext_attr_rec_tab.ATTRIBUTE_VALUE(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE_VALUE(i)),
5515               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)),
5516               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)),
5517               decode( l_ext_attr_rec_tab.CONTEXT(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.CONTEXT(i)),
5518               decode( l_ext_attr_rec_tab.ATTRIBUTE1(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE1(i)),
5519               decode( l_ext_attr_rec_tab.ATTRIBUTE2(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE2(i)),
5520               decode( l_ext_attr_rec_tab.ATTRIBUTE3(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE3(i)),
5521               decode( l_ext_attr_rec_tab.ATTRIBUTE4(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE4(i)),
5522               decode( l_ext_attr_rec_tab.ATTRIBUTE5(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE5(i)),
5523               decode( l_ext_attr_rec_tab.ATTRIBUTE6(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE6(i)),
5524               decode( l_ext_attr_rec_tab.ATTRIBUTE7(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE7(i)),
5525               decode( l_ext_attr_rec_tab.ATTRIBUTE8(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE8(i)),
5526               decode( l_ext_attr_rec_tab.ATTRIBUTE9(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE9(i)),
5527               decode( l_ext_attr_rec_tab.ATTRIBUTE10(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE10(i)),
5528               decode( l_ext_attr_rec_tab.ATTRIBUTE11(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE11(i)),
5529               decode( l_ext_attr_rec_tab.ATTRIBUTE12(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE12(i)),
5530               decode( l_ext_attr_rec_tab.ATTRIBUTE13(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE13(i)),
5531               decode( l_ext_attr_rec_tab.ATTRIBUTE14(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE14(i)),
5532               decode( l_ext_attr_rec_tab.ATTRIBUTE15(i), FND_API.G_MISS_CHAR, NULL, l_ext_attr_rec_tab.ATTRIBUTE15(i)),
5533               l_user_id,
5534               SYSDATE,
5535               l_user_id,
5536               SYSDATE,
5537               l_login_id,
5538               1
5539               );
5540    END IF;
5541    --
5542    IF p_ext_attr_val_hist_tbl.count > 0 THEN
5543          Build_Ext_Attr_Hist_Rec_Table
5544             (
5545               p_ext_attr_hist_tbl      =>  p_ext_attr_val_hist_tbl
5546              ,p_ext_attr_hist_rec_tab  =>  l_ext_attr_hist_rec_tab
5547             );
5548          --
5549          l_ctr := l_ext_attr_hist_rec_tab.attribute_value_history_id.count;
5550          --
5551          FORALL i in 1 .. l_ctr
5552             INSERT INTO CSI_IEA_VALUES_H(
5553               ATTRIBUTE_VALUE_HISTORY_ID,
5554               ATTRIBUTE_VALUE_ID,
5555               TRANSACTION_ID,
5556               OLD_ATTRIBUTE_VALUE,
5557               NEW_ATTRIBUTE_VALUE,
5558               OLD_ACTIVE_START_DATE,
5559               NEW_ACTIVE_START_DATE,
5560               OLD_ACTIVE_END_DATE,
5561               NEW_ACTIVE_END_DATE,
5562               OLD_CONTEXT,
5563               NEW_CONTEXT,
5564               OLD_ATTRIBUTE1,
5565               NEW_ATTRIBUTE1,
5566               OLD_ATTRIBUTE2,
5567               NEW_ATTRIBUTE2,
5568               OLD_ATTRIBUTE3,
5569               NEW_ATTRIBUTE3,
5570               OLD_ATTRIBUTE4,
5571               NEW_ATTRIBUTE4,
5572               OLD_ATTRIBUTE5,
5573               NEW_ATTRIBUTE5,
5574               OLD_ATTRIBUTE6,
5575               NEW_ATTRIBUTE6,
5576               OLD_ATTRIBUTE7,
5577               NEW_ATTRIBUTE7,
5578               OLD_ATTRIBUTE8,
5579               NEW_ATTRIBUTE8,
5580               OLD_ATTRIBUTE9,
5581               NEW_ATTRIBUTE9,
5582               OLD_ATTRIBUTE10,
5583               NEW_ATTRIBUTE10,
5584               OLD_ATTRIBUTE11,
5585               NEW_ATTRIBUTE11,
5586               OLD_ATTRIBUTE12,
5587               NEW_ATTRIBUTE12,
5588               OLD_ATTRIBUTE13,
5589               NEW_ATTRIBUTE13,
5590               OLD_ATTRIBUTE14,
5591               NEW_ATTRIBUTE14,
5592               OLD_ATTRIBUTE15,
5593               NEW_ATTRIBUTE15,
5594               FULL_DUMP_FLAG,
5595               CREATED_BY,
5596               CREATION_DATE,
5597               LAST_UPDATED_BY,
5598               LAST_UPDATE_DATE,
5599               LAST_UPDATE_LOGIN,
5600               OBJECT_VERSION_NUMBER
5601               ) VALUES (
5602               l_ext_attr_hist_rec_tab.ATTRIBUTE_VALUE_HISTORY_ID(i),
5603               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)),
5604               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)),
5605               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)),
5606               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)),
5607               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)),
5608               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)),
5609               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)),
5610               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)),
5611               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)),
5612               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)),
5613               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)),
5614               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)),
5615               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)),
5616               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)),
5617               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)),
5618               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)),
5619               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)),
5620               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)),
5621               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)),
5622               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)),
5623               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)),
5624               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)),
5625               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)),
5626               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)),
5627               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)),
5628               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)),
5629               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)),
5630               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)),
5631               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)),
5632               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)),
5633               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)),
5634               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)),
5635               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)),
5636               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)),
5637               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)),
5638               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)),
5639               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)),
5640               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)),
5641               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)),
5642               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)),
5643               'N',
5644               l_user_id,
5645               SYSDATE,
5646               l_user_id,
5647               SYSDATE,
5648               l_login_id,
5649               1
5650               );
5651    END IF;
5652    --
5653    IF p_asset_tbl.count > 0 THEN
5654          Build_Asset_Rec_Table
5655             (
5656               p_asset_tbl     => p_asset_tbl
5657              ,p_asset_rec_tab => l_asset_rec_tab
5658             );
5659          --
5660          l_ctr := l_asset_rec_tab.instance_asset_id.count;
5661          --
5662          FORALL i in 1 .. l_ctr
5663           INSERT INTO CSI_I_ASSETS(
5664            INSTANCE_ASSET_ID,
5665            INSTANCE_ID,
5666            FA_ASSET_ID,
5667            FA_BOOK_TYPE_CODE,
5668            FA_LOCATION_ID,
5669            ASSET_QUANTITY,
5670            UPDATE_STATUS,
5671            ACTIVE_START_DATE,
5672            ACTIVE_END_DATE,
5673            CREATED_BY,
5674            CREATION_DATE,
5675            LAST_UPDATED_BY,
5676            LAST_UPDATE_DATE,
5677            LAST_UPDATE_LOGIN,
5678            OBJECT_VERSION_NUMBER,
5679            FA_SYNC_FLAG
5680            ) VALUES (
5681            l_asset_rec_tab.INSTANCE_ASSET_ID(i),
5682            decode( l_asset_rec_tab.INSTANCE_ID(i), FND_API.G_MISS_NUM, NULL, l_asset_rec_tab.INSTANCE_ID(i)),
5683            decode( l_asset_rec_tab.FA_ASSET_ID(i), FND_API.G_MISS_NUM, NULL, l_asset_rec_tab.FA_ASSET_ID(i)),
5684            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)),
5685            decode( l_asset_rec_tab.FA_LOCATION_ID(i), FND_API.G_MISS_NUM, NULL, l_asset_rec_tab.FA_LOCATION_ID(i)),
5686            decode( l_asset_rec_tab.ASSET_QUANTITY(i), FND_API.G_MISS_NUM, NULL, l_asset_rec_tab.ASSET_QUANTITY(i)),
5687            decode( l_asset_rec_tab.UPDATE_STATUS(i), FND_API.G_MISS_CHAR, NULL, l_asset_rec_tab.UPDATE_STATUS(i)),
5688            decode( l_asset_rec_tab.ACTIVE_START_DATE(i), FND_API.G_MISS_DATE, NULL, l_asset_rec_tab.ACTIVE_START_DATE(i)),
5689            decode( l_asset_rec_tab.ACTIVE_END_DATE(i), FND_API.G_MISS_DATE, NULL, l_asset_rec_tab.ACTIVE_END_DATE(i)),
5690            l_user_id,
5691            SYSDATE,
5692            l_user_id,
5693            SYSDATE,
5694            l_login_id,
5695            1,
5696            decode( l_asset_rec_tab.FA_SYNC_FLAG(i), FND_API.G_MISS_CHAR, NULL, l_asset_rec_tab.FA_SYNC_FLAG(i))
5697            );
5698    END IF;
5699    --
5700    IF p_asset_hist_tbl.count > 0 THEN
5701          Build_Asset_Hist_Rec_Table
5702             (
5703               p_asset_hist_tbl      => p_asset_hist_tbl
5704              ,p_asset_hist_rec_tab  => l_asset_hist_rec_tab
5705             );
5706          --
5707          l_ctr := l_asset_hist_rec_tab.instance_asset_history_id.count;
5708          --
5709          FORALL i in 1 .. l_ctr
5710           INSERT INTO CSI_I_ASSETS_H(
5711            INSTANCE_ASSET_HISTORY_ID,
5712            INSTANCE_ASSET_ID,
5713            TRANSACTION_ID,
5714            OLD_INSTANCE_ID,
5715            NEW_INSTANCE_ID,
5716            OLD_FA_ASSET_ID,
5717            NEW_FA_ASSET_ID,
5718            OLD_ASSET_QUANTITY,
5719            NEW_ASSET_QUANTITY,
5720            OLD_FA_BOOK_TYPE_CODE,
5721            NEW_FA_BOOK_TYPE_CODE,
5722            OLD_FA_LOCATION_ID,
5723            NEW_FA_LOCATION_ID,
5724            OLD_UPDATE_STATUS,
5725            NEW_UPDATE_STATUS,
5726            OLD_ACTIVE_START_DATE,
5727            NEW_ACTIVE_START_DATE,
5728            OLD_ACTIVE_END_DATE,
5729            NEW_ACTIVE_END_DATE,
5730            FULL_DUMP_FLAG,
5731            CREATED_BY,
5732            CREATION_DATE,
5733            LAST_UPDATED_BY,
5734            LAST_UPDATE_DATE,
5735            LAST_UPDATE_LOGIN,
5736            OBJECT_VERSION_NUMBER,
5737            OLD_FA_SYNC_FLAG,
5738            NEW_FA_SYNC_FLAG
5739            ) VALUES (
5740            l_asset_hist_rec_tab.INSTANCE_ASSET_HISTORY_ID(i),
5741            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)),
5742            decode( l_asset_hist_rec_tab.TRANSACTION_ID(i), FND_API.G_MISS_NUM, NULL, l_asset_hist_rec_tab.TRANSACTION_ID(i)),
5743            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)),
5744            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)),
5745            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)),
5746            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)),
5747            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)),
5748            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)),
5749            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)),
5750            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)),
5751            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)),
5752            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)),
5753            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)),
5754            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)),
5755            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)),
5756            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)),
5757            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)),
5758            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)),
5759            'N',
5760            l_user_id,
5761            SYSDATE,
5762            l_user_id,
5763            SYSDATE,
5764            l_login_id,
5765            1,
5766            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)),
5767            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))
5768            );
5769    END IF;
5770    --
5771 EXCEPTION
5772    WHEN OTHERS THEN
5773       FND_File.Put_Line(Fnd_File.LOG,'Into when others of bulk_insert');
5774       FND_File.Put_Line(Fnd_File.LOG,'SQLERRM:'||substr(SQLERRM,1,200));
5775       csi_gen_utility_pvt.put_line('SQLERRM:'||substr(SQLERRM,1,200));
5776       ROLLBACK TO Bulk_Insert;
5777       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5778 END Bulk_Insert;
5779 --
5780 --
5781 /*----------------------------------------------------*/
5782 /* procedure name: create_item_instance               */
5783 /* description :   procedure used to                  */
5784 /*                 create item instances              */
5785 /*----------------------------------------------------*/
5786 
5787 PROCEDURE create_item_instance
5788  (
5789      p_api_version           IN     NUMBER
5790     ,p_commit                IN     VARCHAR2
5791     ,p_init_msg_list         IN     VARCHAR2
5792     ,p_validation_level      IN     NUMBER
5793     ,p_instance_tbl          IN OUT NOCOPY csi_datastructures_pub.instance_tbl
5794     ,p_ext_attrib_values_tbl IN OUT NOCOPY csi_datastructures_pub.extend_attrib_values_tbl
5795     ,p_party_tbl             IN OUT NOCOPY csi_datastructures_pub.party_tbl
5796     ,p_account_tbl           IN OUT NOCOPY csi_datastructures_pub.party_account_tbl
5797     ,p_pricing_attrib_tbl    IN OUT NOCOPY csi_datastructures_pub.pricing_attribs_tbl
5798     ,p_org_assignments_tbl   IN OUT NOCOPY csi_datastructures_pub.organization_units_tbl
5799     ,p_asset_assignment_tbl  IN OUT NOCOPY csi_datastructures_pub.instance_asset_tbl
5800     ,p_txn_tbl               IN OUT NOCOPY csi_datastructures_pub.transaction_tbl
5801     ,p_call_from_bom_expl    IN     VARCHAR2
5802     ,p_grp_error_tbl         OUT NOCOPY    csi_datastructures_pub.grp_error_tbl
5803     ,x_return_status         OUT NOCOPY    VARCHAR2
5804     ,x_msg_count             OUT NOCOPY    NUMBER
5805     ,x_msg_data              OUT NOCOPY    VARCHAR2
5806  )
5807 IS
5808     l_api_name                      CONSTANT VARCHAR2(30)   := 'CREATE_ITEM_INSTANCE';
5809     l_api_version                   CONSTANT NUMBER         := 1.0;
5810     l_debug_level                   NUMBER;
5811     l_flag                          VARCHAR2(1)             := 'N';
5812     l_serial_control                NUMBER;
5813     l_msg_data                      VARCHAR2(2000);
5814     l_msg_index                     NUMBER;
5815     l_msg_count                     NUMBER;
5816     l_transaction_type              VARCHAR2(10);
5817     l_contracts_status              VARCHAR2(3);
5818     l_account_id                    NUMBER;
5819     l_party_id                      NUMBER;
5820     l_party_src_tbl                 VARCHAR2(30);
5821     l_version_label                 VARCHAR2(30) := FND_PROFILE.VALUE('CSI_DEFAULT_VERSION_LABEL');
5822     l_temp_party_tbl                csi_datastructures_pub.party_tbl;
5823     l_temp_account_tbl              csi_datastructures_pub.party_account_tbl;
5824     l_temp_org_tbl                  csi_datastructures_pub.organization_units_tbl;
5825     l_temp_asset_tbl                csi_datastructures_pub.instance_asset_tbl;
5826     l_temp_ext_tbl                  csi_datastructures_pub.extend_attrib_values_tbl;
5827     l_build_party_tbl               csi_datastructures_pub.party_tbl;
5828     l_build_account_tbl             csi_datastructures_pub.party_account_tbl;
5829     l_build_org_tbl                 csi_datastructures_pub.organization_units_tbl;
5830     l_build_asset_tbl               csi_datastructures_pub.instance_asset_tbl;
5831     l_build_ext_tbl                 csi_datastructures_pub.extend_attrib_values_tbl;
5832     l_build_pricing_tbl             csi_datastructures_pub.pricing_attribs_tbl;
5833     l_build_ctr                     NUMBER := 0;
5834     l_party_count                   NUMBER;
5835     l_account_count                 NUMBER;
5836     l_org_count                     NUMBER;
5837     l_asset_count                   NUMBER;
5838     l_ext_count                     NUMBER;
5839     l_iface_id                      NUMBER;
5840     l_iface_error_text              VARCHAR2(2000);
5841     l_item_attribute_tbl            csi_item_instance_pvt.item_attribute_tbl;
5842     l_location_tbl                  csi_item_instance_pvt.location_tbl;
5843     l_generic_id_tbl                csi_item_instance_pvt.generic_id_tbl;
5844     l_lookup_tbl                    csi_item_instance_pvt.lookup_tbl;
5845     l_ins_count_rec                 csi_item_instance_pvt.ins_count_rec;
5846     l_internal_party_id             NUMBER;
5847     l_party_has_correct_acct        BOOLEAN := FALSE;
5848     l_party_source_tbl              csi_party_relationships_pvt.party_source_tbl;
5849     l_party_id_tbl                  csi_party_relationships_pvt.party_id_tbl;
5850     l_contact_tbl                   csi_party_relationships_pvt.contact_tbl;
5851     l_party_rel_type_tbl            csi_party_relationships_pvt.party_rel_type_tbl;
5852     l_party_count_rec               csi_party_relationships_pvt.party_count_rec;
5853     l_inst_party_tbl                csi_party_relationships_pvt.inst_party_tbl;
5854     l_acct_rel_type_tbl             csi_party_relationships_pvt.acct_rel_type_tbl;
5855     l_site_use_tbl                  csi_party_relationships_pvt.site_use_tbl;
5856     l_account_count_rec             csi_party_relationships_pvt.account_count_rec;
5857     l_acct_id_tbl                   csi_party_relationships_pvt.acct_id_tbl;
5858     l_grp_error_tbl                 csi_datastructures_pub.grp_error_tbl;
5859     l_ou_lookup_tbl                 csi_organization_unit_pvt.lookup_tbl;
5860     l_ou_count_rec                  csi_organization_unit_pvt.ou_count_rec;
5861     l_ou_id_tbl                     csi_organization_unit_pvt.ou_id_tbl;
5862     l_ext_id_tbl                    csi_item_instance_pvt.ext_id_tbl;
5863     l_ext_count_rec                 csi_item_instance_pvt.ext_count_rec;
5864     l_ext_attr_tbl                  csi_item_instance_pvt.ext_attr_tbl;
5865     l_ext_cat_tbl                   csi_item_instance_pvt.ext_cat_tbl;
5866     l_asset_lookup_tbl              csi_asset_pvt.lookup_tbl;
5867     l_asset_count_rec               csi_asset_pvt.asset_count_rec;
5868     l_asset_id_tbl                  csi_asset_pvt.asset_id_tbl;
5869     l_asset_loc_tbl                 csi_asset_pvt.asset_loc_tbl;
5870     --
5871     l_bulk_inst_tbl                 csi_datastructures_pub.instance_tbl;
5872     l_bulk_version_label_tbl        csi_datastructures_pub.version_label_tbl;
5873     l_bulk_ver_label_hist_tbl       csi_datastructures_pub.version_label_history_tbl;
5874     l_bulk_inst_hist_tbl            csi_datastructures_pub.instance_history_tbl;
5875     l_bulk_party_tbl                csi_datastructures_pub.party_tbl;
5876     l_bulk_party_hist_tbl           csi_datastructures_pub.party_history_tbl;
5877     l_bulk_acct_tbl                 csi_datastructures_pub.party_account_tbl;
5878     l_bulk_acct_hist_tbl            csi_datastructures_pub.account_history_tbl;
5879     l_bulk_txn_tbl                  csi_datastructures_pub.transaction_tbl;
5880     x_bulk_txn_tbl                  csi_datastructures_pub.transaction_tbl;
5881     l_owner_pty_acct_tbl            csi_item_instance_pvt.owner_pty_acct_tbl;
5882     l_bulk_org_units_tbl            csi_datastructures_pub.organization_units_tbl;
5883     l_bulk_org_units_hist_tbl       csi_datastructures_pub.org_units_history_tbl;
5884     l_bulk_pricing_tbl              csi_datastructures_pub.pricing_attribs_tbl;
5885     l_bulk_pricing_hist_tbl         csi_datastructures_pub.pricing_history_tbl;
5886     l_bulk_ext_attrib_values_tbl    csi_datastructures_pub.extend_attrib_values_tbl;
5887     l_bulk_ext_attrib_val_hist_tbl  csi_datastructures_pub.ext_attrib_val_history_tbl;
5888     l_bulk_asset_tbl                csi_datastructures_pub.instance_asset_tbl;
5889     l_bulk_asset_hist_tbl           csi_datastructures_pub.ins_asset_history_tbl;
5890     --
5891     l_bulk_inst_count               NUMBER := 0;
5892     l_bulk_pty_count                NUMBER := 0;
5893     l_bulk_acct_count               NUMBER := 0;
5894     l_bulk_org_count                NUMBER := 0;
5895     l_bulk_pricing_count            NUMBER := 0;
5896     l_bulk_ext_count                NUMBER := 0;
5897     l_bulk_asset_count              NUMBER := 0;
5898     l_owner_count                   NUMBER := 0;
5899     --
5900     l_txn_exists_tbl                dbms_sql.Number_Table;
5901     l_intf_id_array                 dbms_sql.Number_Table;
5902     l_inst_id_array                 dbms_sql.Number_Table;
5903     l_status_array                  dbms_sql.Varchar2_Table;
5904     l_error_array                   dbms_sql.Varchar2_Table;
5905     l_num_of_rows                   NUMBER;
5906     l_upd_stmt                      VARCHAR2(2000);
5907     l_dummy                         NUMBER;
5908     l_instance_status               VARCHAR2(50) := FND_PROFILE.VALUE('CSI_DEFAULT_INSTANCE_STATUS');
5909     l_status_id                     NUMBER;
5910     l_owner_party_id                NUMBER;
5911     l_vld_organization_id           NUMBER;
5912     l_location_id                   NUMBER;
5913     --
5914     TYPE NUMLIST IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
5915     l_del_inst_tbl                  NUMLIST;
5916     l_del_txn_tbl                   NUMLIST;
5917     l_del_count                     NUMBER := 0;
5918     --
5919     l_error_count                   NUMBER := 0;
5920     --
5921     TYPE CTR_REC IS RECORD
5922        (
5923          inventory_item_id     NUMBER
5924         ,ctr_template_exists   VARCHAR2(1)
5925        );
5926     TYPE CTR_TBL IS TABLE OF CTR_REC INDEX BY BINARY_INTEGER;
5927     --
5928     TYPE CONTACT_PARTY_REC IS RECORD
5929        (
5930          party_id         NUMBER
5931         ,contact_party_id NUMBER
5932         ,valid_flag       VARCHAR2(1)
5933        );
5934     TYPE CONTACT_PARTY_TBL IS TABLE OF CONTACT_PARTY_REC INDEX BY BINARY_INTEGER;
5935     --
5936     l_ctr_id                        dbms_sql.Number_Table;
5937     l_ctr_ins_id                    dbms_sql.Number_Table;
5938     l_ctr_item_id                   dbms_sql.Number_Table;
5939     l_ctr_org_id                    dbms_sql.Number_Table;
5940     l_counter                       NUMBER := 0;
5941     l_contact_party_tbl             CONTACT_PARTY_TBL;
5942     l_contact_party_count           NUMBER := 0;
5943     l_ctr_tbl                       CTR_TBL;
5944     l_ctr_count                     NUMBER := 0;
5945     l_exists_flag                   VARCHAR2(1);
5946     l_exists                        VARCHAR2(1);
5947     l_txn_ctr                       NUMBER;
5948     l_valid_flag                    VARCHAR2(1);
5949     l_ctr_exists_flag               VARCHAR2(1);
5950     l_ctr_instantiate               VARCHAR2(1);
5951     l_call_counters                 VARCHAR2(1) := FND_PROFILE.VALUE('CSI_COUNTERS_ENABLED');
5952     l_ctr_grp_id_template           NUMBER;
5953     l_ctr_grp_id_instance           NUMBER;
5954     l_ctr_id_template               csi_counter_template_pub.ctr_template_autoinst_tbl;
5955     l_ctr_id_instance               csi_counter_template_pub.counter_autoinstantiate_tbl;
5956     l_user_id                       NUMBER := FND_GLOBAL.USER_ID;
5957     l_login_id                      NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
5958     l_upd_txn_count                 NUMBER := 0;
5959     l_upd_txn_tbl                   dbms_sql.Number_Table;
5960     l_serial_control_code           number;
5961     --
5962     PROCESS_NEXT                    EXCEPTION;
5963     SKIP_ERROR                      EXCEPTION;
5964     OTHER_ERROR                     EXCEPTION; -- Added for bug 3579121(rel 11.5.9)
5965 
5966     CURSOR instance_csr (p_ins_id IN NUMBER) IS
5967     SELECT  *
5968     FROM    csi_item_instances
5969     WHERE   instance_id = p_ins_id;
5970     --
5971     l_instance_csr    instance_csr%ROWTYPE;
5972     --
5973     px_oks_txn_inst_tbl            oks_ibint_pub.txn_instance_tbl;
5974     l_ctr_group_id                 NUMBER;
5975     l_eam_item_type                NUMBER;
5976     --
5977 BEGIN
5978 
5979      -- Standard Start of API savepoint
5980      -- SAVEPOINT  create_item_instance;
5981 
5982      -- Check for freeze_flag in csi_install_parameters is set to 'Y'
5983      csi_utility_grp.check_ib_active;
5984 
5985      -- Standard call to check for call compatibility.
5986      IF NOT FND_API.Compatible_API_Call (l_api_version,
5987                                          p_api_version,
5988                                          l_api_name   ,
5989                                          G_PKG_NAME   )
5990      THEN
5991           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5992      END IF;
5993 
5994      -- Initialize message list if p_init_msg_list is set to TRUE.
5995      IF FND_API.to_Boolean( p_init_msg_list ) THEN
5996         FND_MSG_PUB.initialize;
5997      END IF;
5998 
5999      -- Initialize API return status to success
6000      x_return_status := FND_API.G_RET_STS_SUCCESS;
6001 
6002      -- Check the profile option debug_level for debug message reporting
6003      l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
6004 
6005      -- If debug_level = 1 then dump the procedure name
6006      IF (l_debug_level > 0) THEN
6007         csi_gen_utility_pvt.put_line( 'create_item_instance');
6008      END IF;
6009 
6010      -- If the debug level = 2 then dump all the parameters values.
6011      IF (l_debug_level > 1) THEN
6012 
6013             csi_gen_utility_pvt.put_line( 'create_item_instance' ||
6014                                           p_api_version         ||'-'||
6015                                           p_commit              ||'-'||
6016                                           p_init_msg_list       ||'-'||
6017                                           p_validation_level );
6018      END IF;
6019 
6020      /***** srramakr commented for bug # 3304439
6021      -- Check for the profile option and enable trace
6022              l_flag:=CSI_GEN_UTILITY_PVT.enable_trace(l_trace_flag => l_flag);
6023      -- End enable trace
6024      ****/
6025 
6026     -- Start API body
6027     l_ext_count_rec.ext_count := 0;
6028     -- Create an item instance after validating all the instance attributes.
6029     -- API also validates that exactly one owner is being created for the
6030     -- item instance
6031     -- Grab the internal party id from csi_installed paramters
6032     IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
6033        csi_gen_utility_pvt.populate_install_param_rec;
6034     END IF;
6035     --
6036     l_internal_party_id := csi_datastructures_pub.g_install_param_rec.internal_party_id;
6037     --
6038     IF l_internal_party_id IS NULL THEN
6039        FND_MESSAGE.SET_NAME('CSI','CSI_API_UNINSTALLED_PARAMETER');
6040        FND_MSG_PUB.ADD;
6041        RAISE OTHER_ERROR;
6042     END IF;
6043     --
6044     BEGIN
6045 	SELECT instance_status_id
6046 	INTO   l_status_id
6047 	FROM   csi_instance_statuses
6048 	WHERE  name = l_instance_status;
6049 	--
6050     EXCEPTION
6051 	WHEN OTHERS THEN
6052 	   FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_STATUS_ID');
6053 	   FND_MESSAGE.SET_TOKEN('INSTANCE_STATUS',l_instance_status);
6054 	   FND_MSG_PUB.Add;
6055 	  -- RAISE FND_API.G_EXC_ERROR;
6056        RAISE OTHER_ERROR; -- Added for bug 3579121 (rel 11.5.9)
6057     END;
6058     --
6059     IF (p_instance_tbl.count > 0) THEN
6060       FOR inst_tab_row IN p_instance_tbl.FIRST .. p_instance_tbl.LAST
6061       LOOP
6062       BEGIN
6063        IF p_instance_tbl.EXISTS(inst_tab_row) THEN
6064           FND_MSG_PUB.initialize;
6065           csi_gen_utility_pvt.dump_instance_rec(p_instance_tbl(inst_tab_row));
6066 
6067           -- Standard Start of API savepoint
6068           SAVEPOINT create_item_instance;
6069           l_iface_id := p_instance_tbl(inst_tab_row).interface_id;
6070           l_iface_error_text := NULL;
6071           l_intf_id_array(inst_tab_row) := p_instance_tbl(inst_tab_row).interface_id;
6072           l_grp_error_tbl(inst_tab_row).group_inst_num := inst_tab_row;
6073           --
6074           l_build_party_tbl.DELETE;
6075           l_build_account_tbl.DELETE;
6076           l_build_org_tbl.DELETE;
6077           l_build_pricing_tbl.DELETE;
6078           l_build_ext_tbl.DELETE;
6079           l_build_asset_tbl.DELETE;
6080           --
6081           IF NOT p_txn_tbl.EXISTS(inst_tab_row) THEN
6082              l_iface_error_text := 'Unable to find the corresponding Transaction record';
6083              RAISE SKIP_ERROR;
6084           END IF;
6085           --
6086           --dump the operating units table associated to the instance
6087          IF l_debug_level > 0 THEN
6088 	    IF p_org_assignments_tbl.count > 0 THEN
6089 	       FOR tab_row IN p_org_assignments_tbl.FIRST .. p_org_assignments_tbl.LAST
6090 	       LOOP
6091 		  IF p_org_assignments_tbl.EXISTS(tab_row) THEN
6092 		     IF p_org_assignments_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
6093 			csi_gen_utility_pvt.dump_organization_unit_rec(p_org_assignments_tbl(tab_row));
6094 		     END IF;
6095 		  END IF;
6096 	       END LOOP;
6097 	    END IF;
6098 	    --dump the pricing attributes table associated to the instance
6099 	    IF p_pricing_attrib_tbl.count > 0 THEN
6100 	      FOR tab_row IN p_pricing_attrib_tbl.FIRST .. p_pricing_attrib_tbl.LAST
6101 	      LOOP
6102 	       IF p_pricing_attrib_tbl.EXISTS(tab_row) THEN
6103 		IF p_pricing_attrib_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
6104 		   csi_gen_utility_pvt.dump_pricing_attribs_rec(p_pricing_attrib_tbl(tab_row));
6105 		END IF;
6106 	       END IF;
6107 	      END LOOP;
6108 	    END IF;
6109 	    --dump the extended attributes table associated to the instance
6110 	    IF p_ext_attrib_values_tbl.count > 0 THEN
6111 	      FOR tab_row IN p_ext_attrib_values_tbl.FIRST .. p_ext_attrib_values_tbl.LAST
6112 	      LOOP
6113 	       IF p_ext_attrib_values_tbl.EXISTS(tab_row) THEN
6114 		IF p_ext_attrib_values_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
6115 		   csi_gen_utility_pvt.dump_ext_attrib_values_rec(p_ext_attrib_values_tbl(tab_row));
6116 		END IF;
6117 	       END IF;
6118 	      END LOOP;
6119 	    END IF;
6120 	    --dump the assets table associated to the instance
6121 	    IF (p_asset_assignment_tbl.count > 0) THEN
6122 	      FOR tab_row IN p_asset_assignment_tbl.FIRST .. p_asset_assignment_tbl.LAST
6123 	      LOOP
6124 		IF p_asset_assignment_tbl.EXISTS(tab_row) THEN
6125 		 IF p_asset_assignment_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
6126 		    csi_gen_utility_pvt.dump_instance_asset_rec(p_asset_assignment_tbl(tab_row));
6127 		 END IF;
6128 		END IF;
6129 	      END LOOP;
6130 	    END IF;
6131 
6132 	    --dump the parties and corresponding accounts table that are associated to an instance
6133 	    IF (p_party_tbl.count > 0) THEN
6134 	      FOR tab_row IN p_party_tbl.FIRST .. p_party_tbl.LAST
6135 	      LOOP
6136 		IF p_party_tbl.EXISTS(tab_row) THEN
6137 		   IF p_party_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
6138 		      csi_gen_utility_pvt.dump_party_rec(p_party_tbl(tab_row));
6139 		      IF p_account_tbl.count > 0 THEN
6140 			 FOR acct_tab_row in p_account_tbl.FIRST .. p_account_tbl.LAST
6141 			 LOOP
6142 			    IF p_account_tbl.EXISTS(acct_tab_row) THEN
6143 			       IF p_account_tbl(acct_tab_row).parent_tbl_index = tab_row THEN
6144 				  csi_gen_utility_pvt.dump_party_account_rec(p_account_tbl(acct_tab_row));
6145 			       END IF;
6146 			    END IF;
6147 			 END LOOP;
6148 		      END IF;
6149 		    END IF;
6150 		 END IF;
6151 	      END LOOP;
6152 	    END IF;
6153         END IF; -- dump if l_debug_level > 0
6154          --
6155        ELSE
6156           RAISE PROCESS_NEXT;
6157        END IF; --p_instance_tbl.EXISTS(inst_tab_row)
6158        -- Compress the Party Tbl and pass it to the Create API.
6159        l_temp_party_tbl.DELETE;
6160        l_party_count := 0;
6161        --
6162        IF (p_party_tbl.count > 0) THEN
6163            FOR tab_row IN p_party_tbl.FIRST .. p_party_tbl.LAST
6164            LOOP
6165               IF p_party_tbl.EXISTS(tab_row) THEN
6166                  IF p_party_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
6167                     l_party_count := l_party_count + 1;
6168                     l_temp_party_tbl(l_party_count) := p_party_tbl(tab_row);
6169                  END IF;
6170               END IF;
6171            END LOOP;
6172        END IF;
6173          --
6174          -- Compress Asset Tbl and pass it to the Create API.
6175          l_asset_count := 0;
6176          l_temp_asset_tbl.DELETE;
6177          IF (p_asset_assignment_tbl.count > 0) THEN
6178             FOR tab_row IN p_asset_assignment_tbl.FIRST .. p_asset_assignment_tbl.LAST
6179             LOOP
6180                IF p_asset_assignment_tbl.EXISTS(tab_row) THEN
6181                   IF p_asset_assignment_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
6182                      l_asset_count := l_asset_count + 1;
6183                      l_temp_asset_tbl(l_asset_count) := p_asset_assignment_tbl(tab_row);
6184                   END IF;
6185                END IF;
6186             END LOOP;
6187          END IF;
6188          --
6189          IF p_instance_tbl(inst_tab_row).instance_status_id IS NULL OR
6190             p_instance_tbl(inst_tab_row).instance_status_id = FND_API.G_MISS_NUM THEN
6191             p_instance_tbl(inst_tab_row).instance_status_id := l_status_id;
6192          END IF;
6193          --
6194          -- If version label is null, then we need read the the default value from the profile option
6195          IF ((p_instance_tbl(inst_tab_row).version_label IS NULL) OR
6196              (p_instance_tbl(inst_tab_row).version_label = FND_API.G_MISS_CHAR)) THEN
6197              IF l_version_label IS NULL THEN
6198                 FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_VERSION_LABEL');
6199                 FND_MSG_PUB.ADD;
6200                 l_msg_index := 1;
6201                 FND_MSG_PUB.Count_And_Get
6202                     (p_count  =>  x_msg_count,
6203                      p_data   =>  x_msg_data
6204                     );
6205                 l_msg_count := x_msg_count;
6206                 WHILE l_msg_count > 0 LOOP
6207                    x_msg_data := FND_MSG_PUB.GET
6208 		     (  l_msg_index,
6209 			FND_API.G_FALSE );
6210 		   csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
6211 		   l_msg_index := l_msg_index + 1;
6212 		   l_msg_count := l_msg_count - 1;
6213                 END LOOP;
6214 		l_iface_error_text := substr(x_msg_data,1,2000);
6215 		RAISE SKIP_ERROR;
6216              ELSE
6217                 p_instance_tbl(inst_tab_row).version_label := l_version_label;
6218              END IF;
6219          END IF;
6220          --
6221          IF p_instance_tbl(inst_tab_row).vld_organization_id IS NULL OR
6222             p_instance_tbl(inst_tab_row).vld_organization_id = FND_API.G_MISS_NUM THEN
6223             p_instance_tbl(inst_tab_row).vld_organization_id :=
6224                                        p_instance_tbl(inst_tab_row).inv_master_organization_id;
6225          END IF;
6226          -- Validate Serial uniqueness within this batch
6227          IF p_instance_tbl(inst_tab_row).serial_number IS NOT NULL AND
6228             p_instance_tbl(inst_tab_row).serial_number <> FND_API.G_MISS_CHAR AND
6229             p_instance_tbl(inst_tab_row).vld_organization_id IS NOT NULL AND
6230             p_instance_tbl(inst_tab_row).vld_organization_id <> FND_API.G_MISS_NUM AND
6231             p_instance_tbl(inst_tab_row).inventory_item_id IS NOT NULL AND
6232             p_instance_tbl(inst_tab_row).inventory_item_id <> FND_API.G_MISS_NUM THEN
6233             IF NOT Valid_Serial_Number
6234                 ( p_instance_rec   =>  p_instance_tbl(inst_tab_row),
6235                   p_instance_tbl   =>  p_instance_tbl) THEN
6236                l_msg_index := 1;
6237                FND_MSG_PUB.Count_And_Get
6238                     (p_count  =>  x_msg_count,
6239                      p_data   =>  x_msg_data
6240                     );
6241                l_msg_count := x_msg_count;
6242                WHILE l_msg_count > 0 LOOP
6243                      x_msg_data := FND_MSG_PUB.GET
6244                        (  l_msg_index,
6245                           FND_API.G_FALSE );
6246                       csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
6247                      l_msg_index := l_msg_index + 1;
6248                      l_msg_count := l_msg_count - 1;
6249                END LOOP;
6250                l_iface_error_text := substr(x_msg_data,1,2000);
6251 	       RAISE SKIP_ERROR;
6252             END IF;
6253          END IF;
6254          --
6255          -- Validate Lot uniqueness within this batch
6256          IF p_instance_tbl(inst_tab_row).lot_number IS NOT NULL AND
6257             p_instance_tbl(inst_tab_row).lot_number <> FND_API.G_MISS_CHAR AND
6258             p_instance_tbl(inst_tab_row).vld_organization_id IS NOT NULL AND
6259             p_instance_tbl(inst_tab_row).vld_organization_id <> FND_API.G_MISS_NUM AND
6260             p_instance_tbl(inst_tab_row).inventory_item_id IS NOT NULL AND
6261             p_instance_tbl(inst_tab_row).inventory_item_id <> FND_API.G_MISS_NUM THEN
6262             IF NOT Valid_Lot_Number
6263                 ( p_instance_rec   =>  p_instance_tbl(inst_tab_row),
6264                   p_instance_tbl   =>  p_instance_tbl) THEN
6265                l_msg_index := 1;
6266                FND_MSG_PUB.Count_And_Get
6267                     (p_count  =>  x_msg_count,
6268                      p_data   =>  x_msg_data
6269                     );
6270                l_msg_count := x_msg_count;
6271                WHILE l_msg_count > 0 LOOP
6272                      x_msg_data := FND_MSG_PUB.GET
6273                        (  l_msg_index,
6274                           FND_API.G_FALSE );
6275                       csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
6276                      l_msg_index := l_msg_index + 1;
6277                      l_msg_count := l_msg_count - 1;
6278                END LOOP;
6279                l_iface_error_text := substr(x_msg_data,1,2000);
6280 	       RAISE SKIP_ERROR;
6281             END IF;
6282          END IF;
6283          --
6284 
6285       SELECT eam_item_type,
6286              serial_number_control_code
6287       INTO   l_eam_item_type,
6288              l_serial_control_code
6289       FROM   mtl_system_items
6290       WHERE  inventory_item_id = p_instance_tbl(inst_tab_row).inventory_item_id
6291       AND    organization_id   = p_instance_tbl(inst_tab_row).vld_organization_id;
6292 
6293       IF l_eam_item_type in (1, 3) AND l_serial_control_code <> 1 THEN
6294          p_instance_tbl(inst_tab_row).instance_condition_id := 1;
6295       END IF;
6296 
6297 
6298          csi_item_instance_pvt.create_item_instance
6299            (
6300             p_api_version        => p_api_version
6301            ,p_commit             => fnd_api.g_false
6302            ,p_init_msg_list      => p_init_msg_list
6303            ,p_validation_level   => p_validation_level
6304            ,p_instance_rec       => p_instance_tbl(inst_tab_row)
6305            ,p_txn_rec            => p_txn_tbl(inst_tab_row)
6306            ,p_party_tbl          => l_temp_party_tbl
6307            ,p_asset_tbl          => l_temp_asset_tbl
6308            ,x_return_status      => x_return_status
6309            ,x_msg_count          => x_msg_count
6310            ,x_msg_data           => x_msg_data
6311            ,p_item_attribute_tbl => l_item_attribute_tbl
6312            ,p_location_tbl       => l_location_tbl
6313            ,p_generic_id_tbl     => l_generic_id_tbl
6314            ,p_lookup_tbl         => l_lookup_tbl
6315            ,p_ins_count_rec      => l_ins_count_rec
6316            ,p_called_from_grp    => fnd_api.g_true
6317            ,p_internal_party_id  => l_internal_party_id
6318            );
6319          IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
6320             csi_gen_utility_pvt.put_line( ' Error from CSI_ITEM_INSTANCE_PVT.. ');
6321             l_msg_index := 1;
6322             l_msg_count := x_msg_count;
6323             WHILE l_msg_count > 0 LOOP
6324                    x_msg_data := FND_MSG_PUB.GET
6325                        (  l_msg_index,
6326                           FND_API.G_FALSE );
6327                       csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
6328                      l_msg_index := l_msg_index + 1;
6329                      l_msg_count := l_msg_count - 1;
6330             END LOOP;
6331             l_iface_error_text := substr(x_msg_data,1,2000);
6332             RAISE SKIP_ERROR;
6333          END IF;
6334          -- Call the create_party_relationship API to create instance-to-party
6335          -- relationships.
6336          IF ((p_instance_tbl(inst_tab_row).instance_id IS NOT NULL) AND
6337              (p_instance_tbl(inst_tab_row).instance_id <> FND_API.G_MISS_NUM)) THEN
6338             IF (p_party_tbl.count > 0) THEN
6339                FOR tab_row IN p_party_tbl.FIRST .. p_party_tbl.LAST
6340                LOOP
6341                   IF p_party_tbl.EXISTS(tab_row) THEN
6342                     IF p_party_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
6343                        p_party_tbl(tab_row).instance_id := p_instance_tbl(inst_tab_row).instance_id;
6344                        IF ((p_party_tbl(tab_row).active_start_date IS NULL) OR
6345                            (p_party_tbl(tab_row).active_start_date = FND_API.G_MISS_DATE)) THEN
6346                             p_party_tbl(tab_row).active_start_date := p_instance_tbl(inst_tab_row).active_start_date;
6347                        END IF;
6348                        IF ((p_party_tbl(tab_row).party_source_table = 'HZ_PARTIES') AND
6349                            (p_party_tbl(tab_row).party_id <> l_internal_party_id) AND
6350                            (p_party_tbl(tab_row).relationship_type_code = 'OWNER')) THEN
6351                            l_party_has_correct_acct := FALSE;
6352                           IF p_account_tbl.COUNT > 0 THEN
6353                              FOR l_acct_row IN  p_account_tbl.FIRST..p_account_tbl.LAST
6354                              LOOP
6355                              -- Check if the party and its accounts are mapped
6356 			     --Commenting for bug 7010294
6357 			      --  IF ((p_account_tbl(l_acct_row).parent_tbl_index = tab_row) AND
6358                                IF (p_account_tbl(l_acct_row).relationship_type_code = 'OWNER') THEN
6359 			            l_party_has_correct_acct := TRUE;
6360                                     exit;
6361                                 END IF;
6362                              END LOOP;
6363                           END IF;
6364                           -- Raise an exception if external parties don't have an owner account
6365                           IF NOT l_party_has_correct_acct THEN
6366                              l_iface_error_text := 'Invalid OWNER Party Account for Party ID '
6367                                                           ||to_char(p_party_tbl(tab_row).party_id);
6368                              csi_gen_utility_pvt.put_line(l_iface_error_text);
6369                              RAISE SKIP_ERROR;
6370                           END IF;
6371                        END IF; -- Party source table is HZ_PARITES and External OWNER Party check
6372                        --
6373                        -- Use l_temp_party_tbl which belongs to the current instance and validate the
6374                        -- Instance-Party business rules.
6375                        IF p_party_tbl(tab_row).contact_flag = 'Y' THEN
6376                           IF p_party_tbl(tab_row).contact_parent_tbl_index IS NULL OR
6377                              p_party_tbl(tab_row).contact_parent_tbl_index = FND_API.G_MISS_NUM THEN
6378                              l_iface_error_text := 'Contact_parent_tbl_index should be passed for contacts';
6379                              csi_gen_utility_pvt.put_line(l_iface_error_text);
6380                              RAISE SKIP_ERROR;
6381                           END IF;
6382                           --
6383                           IF p_party_tbl(tab_row).contact_parent_tbl_index = tab_row THEN
6384                              l_iface_error_text := 'Contact Party cannot be a contact of itself ';
6385                              csi_gen_utility_pvt.put_line(l_iface_error_text);
6386                              RAISE SKIP_ERROR;
6387                           END IF;
6388                           --
6389                           IF NOT p_party_tbl.EXISTS((p_party_tbl(tab_row).contact_parent_tbl_index)) THEN
6390                              l_iface_error_text := 'Contact_parent_tbl_index passed is not valid ';
6391                              csi_gen_utility_pvt.put_line(l_iface_error_text);
6392                              RAISE SKIP_ERROR;
6393                           ELSE
6394                              -- Check if the contact_party and the current party belong to the same instance
6395                              IF p_party_tbl((p_party_tbl(tab_row).contact_parent_tbl_index)).parent_tbl_index <>
6396                                 p_party_tbl(tab_row).parent_tbl_index THEN
6397                                 l_iface_error_text := 'Contact Party and the Current Party should belong to the same Instance';
6398                                 csi_gen_utility_pvt.put_line(l_iface_error_text);
6399                                 RAISE SKIP_ERROR;
6400                              END IF;
6401                              l_party_id := p_party_tbl((p_party_tbl(tab_row).contact_parent_tbl_index)).party_id;
6402                              l_party_src_tbl := p_party_tbl((p_party_tbl(tab_row).contact_parent_tbl_index)).party_source_table;
6403                           END IF;
6404                           -- check whether the contact_party_id is related to the parent party_id
6405                           IF p_party_tbl(tab_row).party_source_table = 'HZ_PARTIES' AND
6406                              l_party_src_tbl = 'HZ_PARTIES' THEN
6407                              l_exists_flag := 'N';
6408                              l_valid_flag := 'Y';
6409                              IF l_contact_party_tbl.count > 0 THEN
6410                                 FOR con_pty_row in l_contact_party_tbl.FIRST .. l_contact_party_tbl.LAST LOOP
6411                                    IF p_party_tbl(tab_row).party_id = l_contact_party_tbl(con_pty_row).contact_party_id AND
6412                                       l_party_id = l_contact_party_tbl(con_pty_row).party_id THEN
6413                                       l_exists_flag := 'Y';
6414                                       l_valid_flag := l_contact_party_tbl(con_pty_row).valid_flag;
6415                                       exit;
6416                                    END IF;
6417                                 END LOOP;
6418                                 --
6419                                 IF l_valid_flag <> 'Y' THEN
6420                                    l_iface_error_text := 'Invalid Contact Party ID '||to_char(p_party_tbl(tab_row).party_id)
6421                                                           ||' for party ID '||to_char(l_party_id);
6422                                    csi_gen_utility_pvt.put_line(l_iface_error_text);
6423                                    RAISE SKIP_ERROR;
6424                                 END IF;
6425                              END IF;
6426                              --
6427                              IF l_exists_flag <> 'Y' THEN
6428                                 l_contact_party_count := l_contact_party_count + 1;
6429                                 l_contact_party_tbl(l_contact_party_count).contact_party_id := p_party_tbl(tab_row).party_id;
6430                                 l_contact_party_tbl(l_contact_party_count).party_id := l_party_id;
6431                                 l_contact_party_tbl(l_contact_party_count).valid_flag := 'Y';
6432                              END IF;
6433                           END IF; -- Both party source tables are 'HZ_PARTIES' check
6434                        END IF; -- contact_flag check
6435                        --
6436                        IF NOT ( Check_Inst_Party_Rules
6437                                    ( p_party_tbl  => l_temp_party_tbl
6438                                     ,p_party_rec  => p_party_tbl(tab_row)
6439                                     ,p_start_date => p_instance_tbl(inst_tab_row).active_start_date
6440                                     ,p_end_date   => p_instance_tbl(inst_tab_row).active_end_date
6441                                    ) ) THEN
6442 		          l_msg_index := 1;
6443                           FND_MSG_PUB.Count_And_Get
6444                                 (p_count  =>  x_msg_count,
6445                                  p_data   =>  x_msg_data
6446                                 );
6447 			  l_msg_count := x_msg_count;
6448 			  WHILE l_msg_count > 0 LOOP
6449 			      x_msg_data := FND_MSG_PUB.GET
6450 				  (  l_msg_index,
6451 			             FND_API.G_FALSE    );
6452 			      csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
6453 			      l_msg_index := l_msg_index + 1;
6454 			      l_msg_count := l_msg_count - 1;
6455 			  END LOOP;
6456 			  l_iface_error_text := substr(x_msg_data,1,2000);
6457 			  RAISE SKIP_ERROR;
6458                        END IF;
6459                        --
6460                        -- Call Private package to validate and create party relationship
6461 		       csi_party_relationships_pvt.create_inst_party_relationship
6462 		       ( p_api_version      => p_api_version
6463 		        ,p_commit           => fnd_api.g_false
6464 		        ,p_init_msg_list    => p_init_msg_list
6465 		        ,p_validation_level => p_validation_level
6466 		        ,p_party_rec        => p_party_tbl(tab_row)
6467 		        ,p_txn_rec          => p_txn_tbl(inst_tab_row)
6468 		        ,x_return_status    => x_return_status
6469 		        ,x_msg_count        => x_msg_count
6470 		        ,x_msg_data         => x_msg_data
6471 		        ,p_party_source_tbl => l_party_source_tbl
6472 		        ,p_party_id_tbl     => l_party_id_tbl
6473 		        ,p_contact_tbl      => l_contact_tbl
6474 		        ,p_party_rel_type_tbl => l_party_rel_type_tbl
6475 		        ,p_party_count_rec  => l_party_count_rec
6476                         ,p_called_from_grp  => fnd_api.g_true
6477                        ) ;
6478 
6479 		       IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
6480 		          l_msg_index := 1;
6481 	  	  	  l_msg_count := x_msg_count;
6482 			  WHILE l_msg_count > 0 LOOP
6483 			        x_msg_data := FND_MSG_PUB.GET
6484 			  	  (  l_msg_index,
6485 				     FND_API.G_FALSE    );
6486 			     csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
6487 			     l_msg_index := l_msg_index + 1;
6488 			     l_msg_count := l_msg_count - 1;
6489 			  END LOOP;
6490 			  l_iface_error_text := substr(x_msg_data,1,2000);
6491 			  RAISE SKIP_ERROR;
6492 		       ELSE
6493 			  l_build_ctr := l_build_party_tbl.count + 1;
6494 			  l_build_party_tbl(l_build_ctr) := p_party_tbl(tab_row);
6495 		       END IF;
6496                        --
6497                        -- Traverse the account tbl and create the accounts
6498                        l_temp_account_tbl.DELETE;
6499                        l_account_count := 0;
6500                        IF p_account_tbl.count > 0 THEN
6501                           FOR l_acct_row IN p_account_tbl.FIRST .. p_account_tbl.LAST
6502                           LOOP
6503                              IF p_account_tbl.EXISTS(l_acct_row) THEN
6504                                 IF p_account_tbl(l_acct_row).parent_tbl_index = tab_row THEN
6505                                    p_account_tbl(l_acct_row).instance_party_id :=
6506                                                       p_party_tbl(tab_row).instance_party_id;
6507                                    p_account_tbl(l_acct_row).call_contracts := fnd_api.g_false;
6508                                    p_account_tbl(l_acct_row).vld_organization_id :=
6509                                                       p_instance_tbl(inst_tab_row).vld_organization_id;
6510                                    IF p_account_tbl(l_acct_row).active_start_date IS NULL OR
6511                                       p_account_tbl(l_acct_row).active_start_date = fnd_api.g_miss_date
6512                                    THEN
6513                                       p_account_tbl(l_acct_row).active_start_date :=
6514 				   	        p_party_tbl(tab_row).active_start_date;
6515                                    END IF;
6516                                    --
6517                                    IF p_account_tbl(l_acct_row).relationship_type_code = 'OWNER' AND
6518                                       p_party_tbl(tab_row).relationship_type_code <> 'OWNER' THEN
6519                                       l_iface_error_text := 'OWNER Account Requires OWNER PARTY ';
6520                                       csi_gen_utility_pvt.put_line(l_iface_error_text);
6521                                       RAISE SKIP_ERROR;
6522                                    END IF;
6523                                    --
6524                                    l_account_count := l_account_count + 1;
6525                                    l_temp_account_tbl(l_account_count) := p_account_tbl(l_acct_row);
6526                                    -- Check Party Account Business rules
6527                                    IF NOT ( Check_Party_Acct_Rules
6528                                      ( p_account_tbl     =>  l_temp_account_tbl
6529                                       ,p_account_rec     =>  p_account_tbl(l_acct_row)
6530                                       ,p_pty_src_table   =>  p_party_tbl(tab_row).party_source_table
6531                                       ,p_party_id        =>  p_party_tbl(tab_row).party_id
6532                                       ,p_acct_id_tbl     =>  l_acct_id_tbl
6533                                       ,p_start_date      =>  p_party_tbl(tab_row).active_start_date
6534                                       ,p_end_date        =>  p_party_tbl(tab_row).active_end_date
6535                                      ) ) THEN
6536                                      l_msg_index := 1;
6537                                      FND_MSG_PUB.Count_And_Get
6538                                        (p_count  =>  x_msg_count,
6539                                         p_data   =>  x_msg_data
6540                                        );
6541                                      l_msg_count := x_msg_count;
6542                                      WHILE l_msg_count > 0 LOOP
6543                                         x_msg_data := FND_MSG_PUB.GET(
6544                                                               l_msg_index,
6545                                                               FND_API.G_FALSE );
6546                                         csi_gen_utility_pvt.put_line( 'message data = '||x_msg_data);
6547                                         l_msg_index := l_msg_index + 1;
6548                                         l_msg_count := l_msg_count - 1;
6549                                      END LOOP;
6550                                      l_iface_error_text := substr(x_msg_data,1,2000);
6551                                      RAISE SKIP_ERROR;
6552                                   END IF;
6553                                   -- Call Private package to validate and create party accounts
6554               		          csi_party_relationships_pvt.create_inst_party_account
6555                                     ( p_api_version         => p_api_version
6556                                      ,p_commit              => fnd_api.g_false
6557                                      ,p_init_msg_list       => p_init_msg_list
6558                                      ,p_validation_level      => p_validation_level
6559                                      ,p_party_account_rec     => p_account_tbl(l_acct_row)
6560                                      ,p_txn_rec             => p_txn_tbl(inst_tab_row)
6561                                      ,x_return_status       => x_return_status
6562                                      ,x_msg_count           => x_msg_count
6563                                      ,x_msg_data            => x_msg_data
6564                                      ,p_inst_party_tbl      => l_inst_party_tbl
6565                                      ,p_acct_rel_type_tbl   => l_acct_rel_type_tbl
6566                                      ,p_site_use_tbl        => l_site_use_tbl
6567                                      ,p_account_count_rec   => l_account_count_rec
6568                                      ,p_called_from_grp     => fnd_api.g_true
6569                                      ,p_oks_txn_inst_tbl    => px_oks_txn_inst_tbl
6570                                     );
6571 
6572                                   IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
6573                                      l_msg_index := 1;
6574                                      l_msg_count := x_msg_count;
6575                                      WHILE l_msg_count > 0 LOOP
6576                                         x_msg_data := FND_MSG_PUB.GET(
6577                                         l_msg_index,
6578                                         FND_API.G_FALSE );
6579                                         csi_gen_utility_pvt.put_line( 'message data = '||x_msg_data);
6580                                         l_msg_index := l_msg_index + 1;
6581                                         l_msg_count := l_msg_count - 1;
6582                                      END LOOP;
6583                                      l_iface_error_text := substr(x_msg_data,1,2000);
6584                                      RAISE SKIP_ERROR;
6585 				  ELSE
6586 				     l_build_ctr := l_build_account_tbl.count + 1;
6587 				     l_build_account_tbl(l_build_ctr) := p_account_tbl(l_acct_row);
6588                                   END IF;
6589                                END IF; -- If this account belongs to the current Party
6590                            END IF; -- Account record exists
6591                         END LOOP; -- Account Loop
6592                      END IF; -- Account Tbl count
6593                   END IF; -- If this party belong to the current instance
6594                END IF; -- Party record exists
6595             END LOOP; -- Party Loop
6596           END IF; -- Party Tbl count
6597        END IF; -- Instance ID exists
6598        --
6599        -- Call create_organization_unit API to create instance-
6600        -- to-organization units associations
6601        --
6602        l_temp_org_tbl.DELETE;
6603        l_org_count := 0;
6604        IF ((p_instance_tbl(inst_tab_row).instance_id IS NOT NULL) AND
6605            (p_instance_tbl(inst_tab_row).instance_id <> FND_API.G_MISS_NUM)) THEN
6606            IF (p_org_assignments_tbl.count > 0) THEN
6607               FOR tab_row IN p_org_assignments_tbl.FIRST .. p_org_assignments_tbl.LAST
6608               LOOP
6609                 IF p_org_assignments_tbl.EXISTS(tab_row) THEN
6610                    IF p_org_assignments_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
6611                       p_org_assignments_tbl(tab_row).instance_id := p_instance_tbl(inst_tab_row).instance_id;
6612                       IF p_org_assignments_tbl(tab_row).active_start_date IS NULL OR
6613                          p_org_assignments_tbl(tab_row).active_start_date = FND_API.G_MISS_DATE THEN
6614                          p_org_assignments_tbl(tab_row).active_start_date := SYSDATE;
6615                       END IF;
6616                       l_org_count := l_org_count + 1;
6617                       l_temp_org_tbl(l_org_count) := p_org_assignments_tbl(tab_row);
6618                       IF NOT ( Check_Org_Rules
6619                                   ( p_org_units_tbl => l_temp_org_tbl
6620                                    ,p_org_units_rec => p_org_assignments_tbl(tab_row)
6621                                    ,p_start_date => p_instance_tbl(inst_tab_row).active_start_date
6622                                    ,p_end_date   => p_instance_tbl(inst_tab_row).active_end_date
6623                                   ) ) THEN
6624                          l_msg_index := 1;
6625                          FND_MSG_PUB.Count_And_Get
6626                               (p_count  =>  x_msg_count,
6627                                p_data   =>  x_msg_data
6628                               );
6629                          l_msg_count := x_msg_count;
6630                          WHILE l_msg_count > 0 LOOP
6631                                x_msg_data := FND_MSG_PUB.GET
6632                                     (  l_msg_index,
6633                                        FND_API.G_FALSE        );
6634                                 csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
6635                                 l_msg_index := l_msg_index + 1;
6636                                 l_msg_count := l_msg_count - 1;
6637                          END LOOP;
6638                          l_iface_error_text := substr(x_msg_data,1,2000);
6639                          RAISE SKIP_ERROR;
6640                       END IF;
6641                       --
6642                       csi_organization_unit_pvt.create_organization_unit
6643                       (
6644                         p_api_version      => p_api_version
6645                        ,p_commit           => fnd_api.g_false
6646                        ,p_init_msg_list    => p_init_msg_list
6647                        ,p_validation_level => p_validation_level
6648                        ,p_org_unit_rec     => p_org_assignments_tbl(tab_row)
6649                        ,p_txn_rec          => p_txn_tbl(inst_tab_row)
6650                        ,x_return_status    => x_return_status
6651                        ,x_msg_count        => x_msg_count
6652                        ,x_msg_data         => x_msg_data
6653                        ,p_lookup_tbl       => l_ou_lookup_tbl
6654                        ,p_ou_count_rec     => l_ou_count_rec
6655                        ,p_ou_id_tbl        => l_ou_id_tbl
6656                        ,p_called_from_grp  => fnd_api.g_true
6657                       );
6658 
6659                       IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
6660                           csi_gen_utility_pvt.put_line( ' Error from CSI_ORGANIZATION_UNIT_PVT..');
6661                           l_msg_index := 1;
6662                           l_msg_count := x_msg_count;
6663                           WHILE l_msg_count > 0 LOOP
6664                                 x_msg_data := FND_MSG_PUB.GET
6665                                     (  l_msg_index,
6666                                        FND_API.G_FALSE        );
6667                                 csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
6668                                 l_msg_index := l_msg_index + 1;
6669                                 l_msg_count := l_msg_count - 1;
6670                           END LOOP;
6671                           l_iface_error_text := substr(x_msg_data,1,2000);
6672                           RAISE SKIP_ERROR;
6673 		       ELSE
6674 		          l_build_ctr := l_build_org_tbl.count + 1;
6675 		          l_build_org_tbl(l_build_ctr) := p_org_assignments_tbl(tab_row);
6676                        END IF;
6677                    END IF; -- Org assignment for the current instance
6678                 END IF; -- Org assignments row EXISTS
6679              END LOOP;
6680           END IF; --p_org_assignments_tbl.count > 0
6681        END IF;
6682 
6683        -- Call create_pricing_attribs to associate any pricing attributes
6684        -- to the item instance
6685        IF ((p_instance_tbl(inst_tab_row).instance_id IS NOT NULL) AND
6686            (p_instance_tbl(inst_tab_row).instance_id <> FND_API.G_MISS_NUM)) THEN
6687            IF (p_pricing_attrib_tbl.count > 0) THEN
6688               FOR tab_row IN p_pricing_attrib_tbl.FIRST .. p_pricing_attrib_tbl.LAST
6689               LOOP
6690                 IF p_pricing_attrib_tbl.EXISTS(tab_row) THEN
6691                    IF p_pricing_attrib_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
6692                       p_pricing_attrib_tbl(tab_row).instance_id := p_instance_tbl(inst_tab_row).instance_id;
6693                       IF p_pricing_attrib_tbl(tab_row).active_start_date IS NULL OR
6694                          p_pricing_attrib_tbl(tab_row).active_start_date = FND_API.G_MISS_DATE THEN
6695                          p_pricing_attrib_tbl(tab_row).active_start_date := SYSDATE;
6696                       END IF;
6697                       --
6698                       IF NOT ( Check_Pricing_Rules
6699                                   ( p_pricing_rec   => p_pricing_attrib_tbl(tab_row)
6700                                    ,p_start_date    => p_instance_tbl(inst_tab_row).active_start_date
6701                                    ,p_end_date      => p_instance_tbl(inst_tab_row).active_end_date
6702                                   ) ) THEN
6703                          l_msg_index := 1;
6704                          FND_MSG_PUB.Count_And_Get
6705                               (p_count  =>  x_msg_count,
6706                                p_data   =>  x_msg_data
6707                               );
6708                          l_msg_count := x_msg_count;
6709                          WHILE l_msg_count > 0 LOOP
6710                                 x_msg_data := FND_MSG_PUB.GET
6711                                     (  l_msg_index,
6712                                        FND_API.G_FALSE        );
6713                                 csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
6714                                 l_msg_index := l_msg_index + 1;
6715                                 l_msg_count := l_msg_count - 1;
6716                          END LOOP;
6717                          l_iface_error_text := substr(x_msg_data,1,2000);
6718                          RAISE SKIP_ERROR;
6719                       END IF;
6720                       --
6721                       csi_pricing_attribs_pvt.create_pricing_attribs
6722                       (
6723                         p_api_version         => p_api_version
6724                        ,p_commit              => fnd_api.g_false
6725                        ,p_init_msg_list       => p_init_msg_list
6726                        ,p_validation_level    => p_validation_level
6727                        ,p_pricing_attribs_rec => p_pricing_attrib_tbl(tab_row)
6728                        ,p_txn_rec             => p_txn_tbl(inst_tab_row)
6729                        ,x_return_status       => x_return_status
6730                        ,x_msg_count           => x_msg_count
6731                        ,x_msg_data            => x_msg_data
6732                        ,p_called_from_grp     => fnd_api.g_true
6733                       );
6734 
6735                       IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
6736                           csi_gen_utility_pvt.put_line( ' Error from CSI_PRICING_ATTRIBS_PUB..');
6737                           l_msg_index := 1;
6738                           l_msg_count := x_msg_count;
6739                           WHILE l_msg_count > 0 LOOP
6740                                 x_msg_data := FND_MSG_PUB.GET
6741                                     (  l_msg_index,
6742                                        FND_API.G_FALSE        );
6743                                 csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
6744                                 l_msg_index := l_msg_index + 1;
6745                                 l_msg_count := l_msg_count - 1;
6746                           END LOOP;
6747                           l_iface_error_text := substr(x_msg_data,1,2000);
6748                           RAISE SKIP_ERROR;
6749 		       ELSE
6750 		          l_build_ctr := l_build_pricing_tbl.count + 1;
6751 		          l_build_pricing_tbl(l_build_ctr) := p_pricing_attrib_tbl(tab_row);
6752                       END IF;
6753                    END IF; -- Pricing for the current instance
6754                 END IF; -- Pricing row EXISTS.
6755               END LOOP;
6756            END IF; --p_pricing_attrib_tbl.count > 0
6757        END IF;
6758 
6759        -- Call create_extended_attribs to associate any extended attributes
6760        -- to the item instance
6761        l_temp_ext_tbl.DELETE;
6762        l_ext_count := 0;
6763        IF ((p_instance_tbl(inst_tab_row).instance_id IS NOT NULL) AND
6764            (p_instance_tbl(inst_tab_row).instance_id <> FND_API.G_MISS_NUM)) THEN
6765            IF (p_ext_attrib_values_tbl.count > 0) THEN
6766                FOR tab_row IN p_ext_attrib_values_tbl.FIRST .. p_ext_attrib_values_tbl.LAST
6767                LOOP
6768                  IF p_ext_attrib_values_tbl.EXISTS(tab_row) THEN
6769                     IF p_ext_attrib_values_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
6770                        p_ext_attrib_values_tbl(tab_row).instance_id := p_instance_tbl(inst_tab_row).instance_id;
6771                        IF p_ext_attrib_values_tbl(tab_row).active_start_date IS NULL OR
6772                           p_ext_attrib_values_tbl(tab_row).active_start_date = FND_API.G_MISS_DATE THEN
6773                           p_ext_attrib_values_tbl(tab_row).active_start_date := SYSDATE;
6774                        END IF;
6775                        --
6776                        l_ext_count_rec.ext_count := l_ext_count_rec.ext_count + 1;
6777                        l_ext_id_tbl(l_ext_count_rec.ext_count).instance_id := p_instance_tbl(inst_tab_row).instance_id;
6778                        l_ext_id_tbl(l_ext_count_rec.ext_count).inv_item_id := p_instance_tbl(inst_tab_row).inventory_item_id;
6779                        l_ext_id_tbl(l_ext_count_rec.ext_count).inv_mast_org_id := p_instance_tbl(inst_tab_row).inv_master_organization_id;
6780                        l_ext_id_tbl(l_ext_count_rec.ext_count).valid_flag := 'Y';
6781                        --
6782                        l_ext_count := l_ext_count + 1;
6783                        l_temp_ext_tbl(l_ext_count) := p_ext_attrib_values_tbl(tab_row);
6784                        --
6785                        IF NOT ( Check_Ext_Rules
6786                                     ( p_ext_tbl        => l_temp_ext_tbl
6787                                      ,p_ext_rec        => p_ext_attrib_values_tbl(tab_row)
6788                                      ,p_start_date     => p_instance_tbl(inst_tab_row).active_start_date
6789                                      ,p_end_date       => p_instance_tbl(inst_tab_row).active_end_date
6790                                   ) ) THEN
6791                           l_msg_index := 1;
6792                           FND_MSG_PUB.Count_And_Get
6793                               (p_count  =>  x_msg_count,
6794                                p_data   =>  x_msg_data
6795                               );
6796                           l_msg_count := x_msg_count;
6797                           WHILE l_msg_count > 0 LOOP
6798                               x_msg_data := FND_MSG_PUB.GET
6799                                          (  l_msg_index,
6800                                             FND_API.G_FALSE        );
6801                                      csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
6802                                      l_msg_index := l_msg_index + 1;
6803                                      l_msg_count := l_msg_count - 1;
6804                           END LOOP;
6805                           l_iface_error_text := substr(x_msg_data,1,2000);
6806                           RAISE SKIP_ERROR;
6807                        END IF;
6808                        --
6809                        csi_item_instance_pvt.create_extended_attrib_values
6810                        (
6811                          p_api_version         => p_api_version
6812                         ,p_commit              => fnd_api.g_false
6813                         ,p_init_msg_list       => p_init_msg_list
6814                         ,p_validation_level    => p_validation_level
6815                         ,p_ext_attrib_rec      => p_ext_attrib_values_tbl(tab_row)
6816                         ,p_txn_rec             => p_txn_tbl(inst_tab_row)
6817                         ,x_return_status       => x_return_status
6818                         ,x_msg_count           => x_msg_count
6819                         ,x_msg_data            => x_msg_data
6820                         ,p_ext_id_tbl          => l_ext_id_tbl
6821                         ,p_ext_count_rec       => l_ext_count_rec
6822                         ,p_ext_attr_tbl        => l_ext_attr_tbl
6823                         ,p_ext_cat_tbl         => l_ext_cat_tbl
6824                         ,p_called_from_grp     => fnd_api.g_true
6825                        );
6826 
6827                        IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
6828                            csi_gen_utility_pvt.put_line( ' Error from CSI_EXTENDED_ATTRIBS_PUB..');
6829                            l_msg_index := 1;
6830                            l_msg_count := x_msg_count;
6831                            WHILE l_msg_count > 0 LOOP
6832                                x_msg_data := FND_MSG_PUB.GET
6833                                          (  l_msg_index,
6834                                             FND_API.G_FALSE        );
6835                                      csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
6836                                      l_msg_index := l_msg_index + 1;
6837                                      l_msg_count := l_msg_count - 1;
6838                            END LOOP;
6839                            l_iface_error_text := substr(x_msg_data,1,2000);
6840                            RAISE SKIP_ERROR;
6841 		        ELSE
6842 		           l_build_ctr := l_build_ext_tbl.count + 1;
6843 		           l_build_ext_tbl(l_build_ctr) := p_ext_attrib_values_tbl(tab_row);
6844                        END IF;
6845                     END IF; -- Ext attribs for the current instance
6846                  END IF; -- Ext attribs EXISTS.
6847                 END LOOP;
6848            END IF; --p_ext_attrib_values_tbl.count > 0
6849        END IF;
6850 
6851        -- Call create_asset_assignments to associate any assets associated
6852        -- to the item instance
6853        IF ((p_instance_tbl(inst_tab_row).instance_id IS NOT NULL) AND
6854            (p_instance_tbl(inst_tab_row).instance_id <> FND_API.G_MISS_NUM)) THEN
6855            IF (p_asset_assignment_tbl.count > 0) THEN
6856                FOR tab_row IN p_asset_assignment_tbl.FIRST .. p_asset_assignment_tbl.LAST
6857                LOOP
6858                  IF p_asset_assignment_tbl.EXISTS(tab_row) THEN
6859                     IF p_asset_assignment_tbl(tab_row).parent_tbl_index = inst_tab_row THEN
6860                        p_asset_assignment_tbl(tab_row).instance_id := p_instance_tbl(inst_tab_row).instance_id;
6861                        IF p_asset_assignment_tbl(tab_row).active_start_date IS NULL OR
6862                           p_asset_assignment_tbl(tab_row).active_start_date = FND_API.G_MISS_DATE THEN
6863                           p_asset_assignment_tbl(tab_row).active_start_date := SYSDATE;
6864                        END IF;
6865                        --
6866                        IF NOT ( Check_Asset_Rules
6867                                    ( p_asset_rec       => p_asset_assignment_tbl(tab_row)
6868                                     ,p_start_date     => p_instance_tbl(inst_tab_row).active_start_date
6869                                     ,p_end_date       => p_instance_tbl(inst_tab_row).active_end_date
6870                                   ) ) THEN
6871                           l_msg_index := 1;
6872                           FND_MSG_PUB.Count_And_Get
6873                               (p_count  =>  x_msg_count,
6874                                p_data   =>  x_msg_data
6875                               );
6876                           l_msg_count := x_msg_count;
6877                           WHILE l_msg_count > 0 LOOP
6878                                      x_msg_data := FND_MSG_PUB.GET
6879                                          (  l_msg_index,
6880                                             FND_API.G_FALSE        );
6881                                      csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
6882                                      l_msg_index := l_msg_index + 1;
6883                                      l_msg_count := l_msg_count - 1;
6884                           END LOOP;
6885                           l_iface_error_text := substr(x_msg_data,1,2000);
6886                           RAISE SKIP_ERROR;
6887                        END IF;
6888                        --
6889                        -- Asset Open Interface should have this validation as False
6890                        --
6891                        -- Since the item instance is not yet created, the set_fa_sync_flag routine
6892                        -- that looks at csi_item_instances cannot be used directly. Hence calling the
6893                        -- same with the location_id.
6894                        --
6895                        IF p_asset_assignment_tbl(tab_row).fa_sync_validation_reqd = fnd_api.g_true THEN
6896                           IF p_instance_tbl(inst_tab_row).location_type_code = 'HZ_PARTY_SITES' THEN
6897                              Begin
6898                                 select location_id
6899                                 into l_location_id
6900                                 from HZ_PARTY_SITES
6901                                 where party_site_id = p_instance_tbl(inst_tab_row).location_id;
6902                              Exception
6903                                 when no_data_found then
6904                                    l_location_id := null;
6905                              End;
6906                           ELSE
6907                              l_location_id := p_instance_tbl(inst_tab_row).location_id;
6908                           END IF;
6909                           -- Pass this Location ID to Set_Sync_Flag and validate against CSI_A_LOCATIONS
6910                           IF l_location_id IS NOT NULL THEN
6911 			     csi_asset_pvt.set_fa_sync_flag (
6912 			       px_instance_asset_rec => p_asset_assignment_tbl(tab_row),
6913 			       p_location_id         => l_location_id,
6914 			       x_return_status       => x_return_status,
6915 			       x_error_msg           => x_msg_data);
6916                           END IF;
6917                           --
6918                           -- The above routine just tries to set the FA Sync Flag. It doesn't retun any error
6919                        END IF; -- Validation_reqd check
6920                        --
6921                        csi_asset_pvt.create_instance_asset
6922                        (
6923                          p_api_version         => p_api_version
6924                         ,p_commit              => fnd_api.g_false
6925                         ,p_init_msg_list       => p_init_msg_list
6926                         ,p_instance_asset_rec  => p_asset_assignment_tbl(tab_row)
6927                         ,p_txn_rec             => p_txn_tbl(inst_tab_row)
6928                         ,x_return_status       => x_return_status
6929                         ,x_msg_count           => x_msg_count
6930                         ,x_msg_data            => x_msg_data
6931                         ,p_lookup_tbl          => l_asset_lookup_tbl
6932                         ,p_asset_count_rec     => l_asset_count_rec
6933                         ,p_asset_id_tbl        => l_asset_id_tbl
6934                         ,p_asset_loc_tbl       => l_asset_loc_tbl
6935                         ,p_called_from_grp     => fnd_api.g_true
6936                        );
6937 
6938                        IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
6939                            csi_gen_utility_pvt.put_line( ' Error from CSI_ASSET_PVT..');
6940                            l_msg_index := 1;
6941                            l_msg_count := x_msg_count;
6942                            WHILE l_msg_count > 0 LOOP
6943                               x_msg_data := FND_MSG_PUB.GET
6944                                          (  l_msg_index,
6945                                             FND_API.G_FALSE        );
6946                               csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
6947                               l_msg_index := l_msg_index + 1;
6948                               l_msg_count := l_msg_count - 1;
6949                            END LOOP;
6950                            l_iface_error_text := substr(x_msg_data,1,2000);
6951                            RAISE SKIP_ERROR;
6952 		        ELSE
6953 		           l_build_ctr := l_build_asset_tbl.count + 1;
6954 		           l_build_asset_tbl(l_build_ctr) := p_asset_assignment_tbl(tab_row);
6955                         END IF;
6956                     END IF; -- Asset for the current instance
6957                  END IF; -- Asset row EXISTS.
6958                 END LOOP;
6959            END IF; --p_asset_assignment_tbl.count > 0
6960        END IF;
6961        --
6962        -- Version Label tbl will be directly buil from Instance tbl
6963        --
6964        -- Call to contracts will be made after Bulk Insert
6965        --
6966        -- Update the Interface Table with PROCESSED status.
6967        p_instance_tbl(inst_tab_row).processed_flag := 'P'; -- Processed
6968        l_grp_error_tbl(inst_tab_row).process_status := 'S'; -- Success
6969        l_grp_error_tbl(inst_tab_row).error_message := NULL;
6970        l_error_array(inst_tab_row) := NULL;
6971        l_status_array(inst_tab_row) := 'P';
6972        l_inst_id_array(inst_tab_row) := p_instance_tbl(inst_tab_row).instance_id;
6973 
6974        --
6975        l_bulk_inst_count := l_bulk_inst_count + 1;
6976        l_bulk_inst_tbl(l_bulk_inst_count) := p_instance_tbl(inst_tab_row);
6977        IF p_txn_tbl(inst_tab_row).transaction_id IS NULL OR
6978           p_txn_tbl(inst_tab_row).transaction_id = FND_API.G_MISS_NUM THEN
6979           select CSI_TRANSACTIONS_S.nextval
6980           into p_txn_tbl(inst_tab_row).transaction_id
6981           from sys.dual;
6982        END IF;
6983        --
6984        l_bulk_txn_tbl(l_bulk_inst_count) := p_txn_tbl(inst_tab_row);
6985        --
6986        select CSI_I_VERSION_LABELS_S.nextval
6987        into l_bulk_version_label_tbl(l_bulk_inst_count).version_label_id
6988        from sys.dual;
6989        --
6990        l_bulk_version_label_tbl(l_bulk_inst_count).version_label := p_instance_tbl(inst_tab_row).version_label;
6991        l_bulk_version_label_tbl(l_bulk_inst_count).active_start_date := p_instance_tbl(inst_tab_row).active_start_date;
6992        l_bulk_version_label_tbl(l_bulk_inst_count).date_time_stamp := SYSDATE;
6993        l_bulk_version_label_tbl(l_bulk_inst_count).instance_id := p_instance_tbl(inst_tab_row).instance_id;
6994        l_bulk_version_label_tbl(l_bulk_inst_count).description := p_instance_tbl(inst_tab_row).version_label_description;
6995        --
6996        Build_Instance_History
6997           ( p_inst_hist_tbl => l_bulk_inst_hist_tbl
6998            ,p_inst_rec => l_bulk_inst_tbl(l_bulk_inst_count)
6999            ,p_txn_id => l_bulk_txn_tbl(l_bulk_inst_count).transaction_id
7000           );
7001        --
7002        Build_Ver_Label_History
7003           (
7004             p_ver_label_history_tbl => l_bulk_ver_label_hist_tbl
7005            ,p_version_label_rec     => l_bulk_version_label_tbl(l_bulk_inst_count)
7006            ,p_txn_id                => l_bulk_txn_tbl(l_bulk_inst_count).transaction_id
7007           );
7008        --
7009        IF l_build_party_tbl.count > 0 THEN
7010           FOR pty_row in l_build_party_tbl.FIRST .. l_build_party_tbl.LAST LOOP
7011              IF l_build_party_tbl(pty_row).contact_flag = 'Y' THEN
7012                 l_build_party_tbl(pty_row).contact_ip_id :=
7013                        p_party_tbl(l_build_party_tbl(pty_row).contact_parent_tbl_index).instance_party_id;
7014                 FOR src_pty in  p_party_tbl.FIRST .. p_party_tbl.LAST LOOP
7015                    IF p_party_tbl(src_pty).instance_party_id = l_build_party_tbl(pty_row).instance_party_id
7016                    THEN
7017                       p_party_tbl(src_pty).contact_ip_id := l_build_party_tbl(pty_row).contact_ip_id;
7018                       EXIT;
7019                    END IF;
7020                 END LOOP;
7021              END IF;
7022              l_bulk_pty_count := l_bulk_pty_count + 1;
7023              l_bulk_party_tbl(l_bulk_pty_count) := l_build_party_tbl(pty_row);
7024              --
7025              IF l_build_party_tbl(pty_row).relationship_type_code = 'OWNER' THEN
7026                 l_owner_count := l_owner_count + 1;
7027                 l_owner_pty_acct_tbl(l_owner_count).instance_id := l_build_party_tbl(pty_row).instance_id;
7028                 l_owner_pty_acct_tbl(l_owner_count).party_source_table :=
7029                                   l_build_party_tbl(pty_row).party_source_table;
7030                 l_owner_pty_acct_tbl(l_owner_count).party_id := l_build_party_tbl(pty_row).party_id;
7031                 l_owner_pty_acct_tbl(l_owner_count).account_id := NULL;
7032                 l_owner_pty_acct_tbl(l_owner_count).vld_organization_id :=
7033                                            p_instance_tbl(inst_tab_row).vld_organization_id;
7034              END IF;
7035              --
7036              Build_Party_History
7037                 ( p_party_hist_tbl => l_bulk_party_hist_tbl
7038                  ,p_party_rec => l_bulk_party_tbl(l_bulk_pty_count)
7039                  ,p_txn_id => l_bulk_txn_tbl(l_bulk_inst_count).transaction_id
7040                 );
7041           END LOOP;
7042        END IF;
7043        --
7044        IF l_build_account_tbl.count > 0 THEN
7045           FOR acct_row in l_build_account_tbl.FIRST .. l_build_account_tbl.LAST LOOP
7046              l_bulk_acct_count := l_bulk_acct_count + 1;
7047              l_bulk_acct_tbl(l_bulk_acct_count) := l_build_account_tbl(acct_row);
7048              --
7049              IF l_build_account_tbl(acct_row).relationship_type_code = 'OWNER' THEN
7050                 l_owner_pty_acct_tbl(l_owner_count).account_id :=
7051                            l_build_account_tbl(acct_row).party_account_id;
7052              END IF;
7053              --
7054              Build_Account_History
7055                 ( p_acct_hist_tbl => l_bulk_acct_hist_tbl
7056                  ,p_acct_rec => l_bulk_acct_tbl(l_bulk_acct_count)
7057                  ,p_txn_id => l_bulk_txn_tbl(l_bulk_inst_count).transaction_id
7058                 );
7059           END LOOP; -- Account Loop
7060        END IF; -- Account_tbl count check
7061        --
7062        IF l_build_org_tbl.count > 0 THEN
7063           FOR org_row in l_build_org_tbl.FIRST .. l_build_org_tbl.LAST LOOP
7064              l_bulk_org_count := l_bulk_org_count + 1;
7065              l_bulk_org_units_tbl(l_bulk_org_count) := l_build_org_tbl(org_row);
7066              --
7067              Build_Org_History
7068                ( p_org_hist_tbl    => l_bulk_org_units_hist_tbl
7069                 ,p_org_rec         => l_bulk_org_units_tbl(l_bulk_org_count)
7070                 ,p_txn_id          => l_bulk_txn_tbl(l_bulk_inst_count).transaction_id
7071                );
7072           END LOOP;
7073        END IF;
7074        --
7075        IF l_build_pricing_tbl.count > 0 THEN
7076           FOR pricing_row in l_build_pricing_tbl.FIRST .. l_build_pricing_tbl.LAST LOOP
7077              l_bulk_pricing_count := l_bulk_pricing_count + 1;
7078              l_bulk_pricing_tbl(l_bulk_pricing_count) := l_build_pricing_tbl(pricing_row);
7079              --
7080              Build_Pricing_History
7081                (
7082                  p_pricing_hist_tbl  => l_bulk_pricing_hist_tbl
7083                 ,p_pricing_rec       => l_bulk_pricing_tbl(l_bulk_pricing_count)
7084                 ,p_txn_id            => l_bulk_txn_tbl(l_bulk_inst_count).transaction_id
7085                );
7086           END LOOP;
7087        END IF;
7088        --
7089        IF l_build_ext_tbl.count > 0 THEN
7090           FOR ext_row in l_build_ext_tbl.FIRST .. l_build_ext_tbl.LAST LOOP
7091              l_bulk_ext_count := l_bulk_ext_count + 1;
7092              l_bulk_ext_attrib_values_tbl(l_bulk_ext_count) := l_build_ext_tbl(ext_row);
7093              -- Build History
7094              Build_Ext_Attr_History
7095                 ( p_ext_attr_hist_tbl => l_bulk_ext_attrib_val_hist_tbl
7096                  ,p_ext_attr_rec    => l_bulk_ext_attrib_values_tbl(l_bulk_ext_count)
7097                  ,p_txn_id => l_bulk_txn_tbl(l_bulk_inst_count).transaction_id
7098                 );
7099           END LOOP;
7100        END IF;
7101        --
7102        IF l_build_asset_tbl.count > 0 THEN
7103           FOR asset_row in l_build_asset_tbl.FIRST .. l_build_asset_tbl.LAST LOOP
7104              l_bulk_asset_count := l_bulk_asset_count + 1;
7105              l_bulk_asset_tbl(l_bulk_asset_count) := l_build_asset_tbl(asset_row);
7106              -- Build History
7107              Build_Asset_History
7108                 ( p_asset_hist_tbl   => l_bulk_asset_hist_tbl
7109                  ,p_asset_rec        => l_bulk_asset_tbl(l_bulk_asset_count)
7110                  ,p_txn_id => l_bulk_txn_tbl(l_bulk_inst_count).transaction_id
7111                 );
7112           END LOOP;
7113        END IF;
7114        --
7115     EXCEPTION
7116       WHEN PROCESS_NEXT THEN
7117          NULL;
7118       WHEN SKIP_ERROR THEN
7119            ROLLBACK TO create_item_instance;
7120            p_instance_tbl(inst_tab_row).processed_flag := 'E'; -- Error
7121            l_grp_error_tbl(inst_tab_row).process_status := 'E';
7122            l_grp_error_tbl(inst_tab_row).error_message := l_iface_error_text;
7123            l_error_array(inst_tab_row) := l_iface_error_text;
7124            l_status_array(inst_tab_row) := 'E';
7125            l_inst_id_array(inst_tab_row) := NULL;
7126     END;
7127   END LOOP; --instance_tbl
7128   --
7129   l_temp_party_tbl.DELETE;
7130   l_temp_account_tbl.DELETE;
7131   l_temp_org_tbl.DELETE;
7132   l_temp_asset_tbl.DELETE;
7133   l_temp_ext_tbl.DELETE;
7134   x_return_status := FND_API.G_RET_STS_SUCCESS;
7135   --
7136   --  l_txn_exists_tbl contains those transactions exist in CSI_TRANSACTIONS
7137   --  x_bulk_txn_tbl contains the transactions that need to be inserted in CSI_TRANSACTIONS
7138   IF l_bulk_inst_tbl.count > 0 THEN
7139      -- Loop thru' the l_bulk_txn_tbl and eliminate duplicate txn id's.
7140      FOR j in l_bulk_txn_tbl.FIRST .. l_bulk_txn_tbl.LAST LOOP
7141         l_exists := 'N';
7142         IF l_txn_exists_tbl.count > 0 THEN
7143            FOR m in l_txn_exists_tbl.FIRST .. l_txn_exists_tbl.LAST LOOP
7144               IF l_txn_exists_tbl(m) = l_bulk_txn_tbl(j).transaction_id THEN
7145                  l_exists := 'Y';
7146                  exit;
7147               END IF;
7148            END LOOP;
7149         END IF;
7150         --
7151 	IF l_exists <> 'Y' THEN
7152 	   IF x_bulk_txn_tbl.count > 0 THEN
7153 	      FOR k in x_bulk_txn_tbl.FIRST .. x_bulk_txn_tbl.LAST LOOP
7154                  IF l_bulk_txn_tbl(j).transaction_id = x_bulk_txn_tbl(k).transaction_id THEN
7155 		    l_exists := 'Y';
7156 		    exit;
7157 		 END IF;
7158               END LOOP;
7159 	   END IF;
7160 	END IF;
7161         --
7162         IF l_exists <> 'Y' THEN
7163            csi_gen_utility_pvt.put_line('Checking against csi_transactions..');
7164 	   Begin
7165 	      select 'Y'
7166 	      into l_exists
7167 	      from csi_transactions
7168 	      where transaction_id = l_bulk_txn_tbl(j).transaction_id;
7169               --
7170               l_txn_ctr := l_txn_exists_tbl.count;
7171               l_txn_ctr := l_txn_ctr + 1;
7172               l_txn_exists_tbl(l_txn_ctr) := l_bulk_txn_tbl(j).transaction_id;
7173 	   Exception
7174 	      when no_data_found then
7175 		 l_exists := 'N';
7176 	   End;
7177 	   --
7178 	   IF l_exists <> 'Y' THEN
7179 	      l_txn_ctr := x_bulk_txn_tbl.count;
7180 	      l_txn_ctr := l_txn_ctr + 1;
7181 	      x_bulk_txn_tbl(l_txn_ctr) := l_bulk_txn_tbl(j);
7182 	   END IF;
7183         END IF;
7184      END LOOP;
7185      --
7186      --
7187      csi_gen_utility_pvt.put_line('Transaction Tbl count before Bulk Insert is '
7188                                                     ||to_char(x_bulk_txn_tbl.count));
7189      Bulk_Insert
7190        ( p_inst_tbl           =>  l_bulk_inst_tbl
7191         ,p_txn_tbl            =>  x_bulk_txn_tbl
7192         ,p_inst_hist_tbl      =>  l_bulk_inst_hist_tbl
7193         ,p_version_label_tbl  =>  l_bulk_version_label_tbl
7194         ,p_ver_label_hist_tbl =>  l_bulk_ver_label_hist_tbl
7195         ,p_party_tbl          =>  l_bulk_party_tbl
7196         ,p_party_hist_tbl     =>  l_bulk_party_hist_tbl
7197         ,p_account_tbl        =>  l_bulk_acct_tbl
7198         ,p_acct_hist_tbl      =>  l_bulk_acct_hist_tbl
7199         ,p_owner_pty_acct_tbl =>  l_owner_pty_acct_tbl
7200         ,p_org_units_tbl      =>  l_bulk_org_units_tbl
7201         ,p_org_units_hist_tbl =>  l_bulk_org_units_hist_tbl
7202         ,p_pricing_tbl        =>  l_bulk_pricing_tbl
7203         ,p_pricing_hist_tbl   =>  l_bulk_pricing_hist_tbl
7204         ,p_ext_attr_values_tbl => l_bulk_ext_attrib_values_tbl
7205         ,p_ext_attr_val_hist_tbl => l_bulk_ext_attrib_val_hist_tbl
7206         ,p_asset_tbl          =>  l_bulk_asset_tbl
7207         ,p_asset_hist_tbl     =>  l_bulk_asset_hist_tbl
7208         ,x_return_status      =>  x_return_status
7209        );
7210      --
7211      IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
7212         csi_gen_utility_pvt.put_line('Error from Bulk Insert '||substr(sqlerrm,1,200));
7213         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7214      END IF;
7215      --
7216      csi_gen_utility_pvt.put_line('End of Bulk Insert...');
7217      --
7218      -- Call Counters and Instantiate EAM Object
7219      FOR inst_row in p_instance_tbl.FIRST .. p_instance_tbl.LAST LOOP
7220         IF p_instance_tbl(inst_row).processed_flag = 'P' THEN
7221            FOR item_row in l_item_attribute_tbl.FIRST .. l_item_attribute_tbl.LAST LOOP
7222               IF p_instance_tbl(inst_row).inventory_item_id = l_item_attribute_tbl(item_row).inventory_item_id AND
7223                  p_instance_tbl(inst_row).vld_organization_id = l_item_attribute_tbl(item_row).organization_id THEN
7224                  l_serial_control := l_item_attribute_tbl(item_row).serial_number_control_code;
7225                  l_eam_item_type := l_item_attribute_tbl(item_row).eam_item_type;
7226                  exit;
7227               END IF;
7228            END LOOP;
7229            --
7230            -- Call counters if Qty is 1 and other conditions satisfy
7231            IF p_instance_tbl(inst_row).quantity = 1 THEN
7232 	      IF NOT((l_serial_control IN (1,6)) AND
7233 		     (p_instance_tbl(inst_row).location_type_code = 'INVENTORY')) THEN
7234 		 l_exists_flag := 'N';
7235 		 l_ctr_exists_flag := 'N';
7236 		 l_ctr_instantiate := 'N';
7237 		 IF l_ctr_tbl.count > 0 THEN
7238 		    FOR ctr_row in l_ctr_tbl.FIRST .. l_ctr_tbl.LAST LOOP
7239 		       IF p_instance_tbl(inst_row).inventory_item_id = l_ctr_tbl(ctr_row).inventory_item_id THEN
7240 			  l_ctr_exists_flag := l_ctr_tbl(ctr_row).ctr_template_exists;
7241 			  l_exists_flag := 'Y';
7242 			  exit;
7243 		       END IF;
7244 		    END LOOP;
7245 		    --
7246 		    IF l_ctr_exists_flag = 'Y' THEN
7247 		       l_ctr_instantiate := 'Y';
7248 		    ELSE
7249 		       l_ctr_instantiate := 'N';
7250 		    END IF;
7251 		 END IF;
7252 		 --
7253 		 IF l_exists_flag = 'N' THEN
7254 		    l_ctr_count := l_ctr_count + 1;
7255 		    l_ctr_tbl(l_ctr_count).inventory_item_id := p_instance_tbl(inst_row).inventory_item_id;
7256 		    -- R12 Project. We no longer use CS counters
7257 		    l_ctr_group_id := 0;
7258 		    Begin
7259                        SELECT COUNT(*)
7260                        INTO l_ctr_group_id
7261                        FROM csi_ctr_item_associations
7262                        WHERE inventory_item_id = p_instance_tbl(inst_row).inventory_item_id
7263                        AND ROWNUM=1;
7264 		    End;
7265 		    --
7266 		    IF l_ctr_group_id > 0 THEN
7267 		       l_ctr_tbl(l_ctr_count).ctr_template_exists := 'Y';
7268 		       l_ctr_instantiate := 'Y';
7269 		    ELSE
7270 		       l_ctr_tbl(l_ctr_count).ctr_template_exists := 'N';
7271 		       l_ctr_instantiate := 'N';
7272 		    END IF;
7273 		 END IF;
7274 		 --
7275 		 IF l_ctr_instantiate = 'Y' THEN
7276 		    IF nvl(l_call_counters,'N') = 'Y' THEN
7277 		       csi_counter_template_pub.autoinstantiate_counters
7278 			  ( p_api_version                => 1.0
7279 			   ,p_init_msg_list              => FND_API.G_TRUE
7280 			   ,p_commit                     => FND_API.G_FALSE
7281 			   ,x_return_status              => x_return_status
7282 			   ,x_msg_count                  => x_msg_count
7283 			   ,x_msg_data                   => x_msg_data
7284 			   ,p_source_object_id_template  => p_instance_tbl(inst_row).inventory_item_id
7285 			   ,p_source_object_id_instance  => p_instance_tbl(inst_row).instance_id
7286                            ,x_ctr_id_template            => l_ctr_id_template
7287                            ,x_ctr_id_instance            => l_ctr_id_instance
7288                            ,x_ctr_grp_id_template        => l_ctr_grp_id_template
7289                            ,x_ctr_grp_id_instance        => l_ctr_grp_id_instance
7290 			   ,p_organization_id            => p_instance_tbl(inst_row).vld_organization_id
7291 			  );
7292 
7293 			  --
7294 			  IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
7295 			     l_msg_index := 1;
7296 			     l_msg_count := x_msg_count;
7297 			     WHILE l_msg_count > 0 LOOP
7298 				x_msg_data := FND_MSG_PUB.GET
7299 					   (  l_msg_index,
7300 					      FND_API.G_FALSE        );
7301 				l_msg_index := l_msg_index + 1;
7302 				l_msg_count := l_msg_count - 1;
7303 			     END LOOP;
7304 			     l_iface_error_text := substr(x_msg_data,1,2000);
7305 			     p_instance_tbl(inst_row).processed_flag := 'E';
7306 			     l_grp_error_tbl(inst_row).error_message := l_iface_error_text;
7307 			     l_grp_error_tbl(inst_row).process_status := 'E';
7308 			     l_error_array(inst_row) := l_iface_error_text;
7309 			     l_status_array(inst_row) := 'E';
7310 			     l_inst_id_array(inst_row) := NULL;
7311 			     l_del_count := l_del_count + 1;
7312 			     l_del_inst_tbl(l_del_count) := p_instance_tbl(inst_row).instance_id;
7313 			     l_del_txn_tbl(l_del_count) := p_txn_tbl(inst_row).transaction_id;
7314 			  END IF;
7315 		    ELSE
7316 		       -- Build the PL/SQL table for Inserting into Counters Temp table
7317 		       l_counter := l_counter + 1;
7318 		       select CSI_CTR_UPLOAD_INSTANCES_S.nextval
7319 		       into l_ctr_id(l_counter) from sys.dual;
7320 		       --
7321 		       l_ctr_ins_id(l_counter) := p_instance_tbl(inst_row).instance_id;
7322 		       l_ctr_item_id(l_counter) := p_instance_tbl(inst_row).inventory_item_id;
7323 		       l_ctr_org_id(l_counter) := p_instance_tbl(inst_row).vld_organization_id;
7324 		    END IF;
7325 		 END IF; -- l_ctr_instantiate is Y
7326 	      END IF;
7327            END IF; -- Qty = 1 check for calling counters
7328            --
7329            IF csi_item_instance_vld_pvt.Check_for_EAM_Item
7330                   ( p_inventory_item_id   => p_instance_tbl(inst_row).inventory_item_id
7331                    ,p_organization_id     => p_instance_tbl(inst_row).vld_organization_id
7332                    ,p_eam_item_type       => l_eam_item_type
7333                   ) THEN
7334 	      EAM_Objectinstantiation_Pub.Instantiate_Object
7335 		  (  p_api_version             => 1.0
7336 		    ,p_init_msg_list           => fnd_api.g_true
7337 		    ,p_commit                  => fnd_api.g_false
7338 		    ,p_validation_level        => p_validation_level
7339 		    ,p_maintenance_object_id   => p_instance_tbl(inst_row).instance_id
7340 		    ,p_maintenance_object_type => 3
7341 		    ,x_return_status           => x_return_status
7342 		    ,x_msg_count               => x_msg_count
7343 		    ,x_msg_data                => x_msg_data
7344 		  );
7345 	      IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
7346 		 l_msg_index := 1;
7347 		 l_msg_count := x_msg_count;
7348 		 WHILE l_msg_count > 0 LOOP
7349 		    x_msg_data := FND_MSG_PUB.GET
7350 			       (  l_msg_index,
7351 				  FND_API.G_FALSE        );
7352 		    l_msg_index := l_msg_index + 1;
7353 		    l_msg_count := l_msg_count - 1;
7354 		 END LOOP;
7355 		 l_iface_error_text := substr(x_msg_data,1,2000);
7356 		 p_instance_tbl(inst_row).processed_flag := 'E';
7357 		 l_grp_error_tbl(inst_row).error_message := l_iface_error_text;
7358 		 l_grp_error_tbl(inst_row).process_status := 'E';
7359 		 l_error_array(inst_row) := l_iface_error_text;
7360 		 l_status_array(inst_row) := 'E';
7361 		 l_inst_id_array(inst_row) := NULL;
7362 		 l_del_count := l_del_count + 1;
7363 		 l_del_inst_tbl(l_del_count) := p_instance_tbl(inst_row).instance_id;
7364 		 l_del_txn_tbl(l_del_count) := p_txn_tbl(inst_row).transaction_id;
7365 	      END IF;
7366            END IF; -- Check for EAM Item
7367         END IF; -- Instance is Valid check
7368      END LOOP;
7369      --
7370      IF l_ctr_id.count > 0 THEN
7371 	BEGIN
7372            FORALL i in 1 .. l_ctr_id.count
7373               INSERT INTO CSI_CTR_UPLOAD_INSTANCES
7374                  (
7375                     UPLOAD_INSTANCE_ID
7376                    ,SOURCE_OBJECT_ID
7377                    ,SOURCE_OBJECT_CODE
7378                    ,ITEM_ID
7379                    ,ORG_ID
7380                    ,LAST_UPDATE_DATE
7381                    ,LAST_UPDATED_BY
7382                    ,LAST_UPDATE_LOGIN
7383                    ,CREATION_DATE
7384                    ,CREATED_BY
7385                  )
7386               VALUES
7387                  (
7388                     l_ctr_id(i)
7389                    ,l_ctr_ins_id(i)
7390                    ,'CP'
7391                    ,l_ctr_item_id(i)
7392                    ,l_ctr_org_id(i)
7393                    ,sysdate
7394                    ,l_user_id
7395                    ,l_login_id
7396                    ,sysdate
7397                    ,l_user_id
7398                  );
7399 	EXCEPTION
7400 	   WHEN OTHERS THEN
7401 	      NULL;
7402 	END;
7403      END IF;
7404      -- Call contracts
7405      csi_gen_utility_pvt.put_line('Calling contracts...');
7406      --
7407      FOR inst_row in p_instance_tbl.FIRST .. p_instance_tbl.LAST LOOP
7408         IF p_instance_tbl(inst_row).processed_flag = 'P' AND
7409            p_instance_tbl(inst_row).call_contracts <> fnd_api.g_false THEN -- honoring the call_contracts
7410            IF l_owner_pty_acct_tbl.count > 0 THEN
7411               l_owner_party_id := NULL;
7412               FOR pty_row in l_owner_pty_acct_tbl.FIRST .. l_owner_pty_acct_tbl.LAST LOOP
7413                  IF p_instance_tbl(inst_row).instance_id = l_owner_pty_acct_tbl(pty_row).instance_id THEN
7414                     l_owner_party_id := l_owner_pty_acct_tbl(pty_row).party_id;
7415                     l_vld_organization_id := l_owner_pty_acct_tbl(pty_row).vld_organization_id;
7416                     exit;
7417                  END IF;
7418               END LOOP;
7419            END IF;
7420            --
7421            IF l_owner_party_id IS NOT NULL AND
7422               l_owner_party_id <> FND_API.G_MISS_NUM AND
7423               l_owner_party_id <> l_internal_party_id THEN
7424 	      -- Call API
7425 	      l_transaction_type:= 'NEW';
7426 	      csi_item_instance_pvt.Call_to_Contracts(
7427 			       p_transaction_type   =>   l_transaction_type
7428 			      ,p_instance_id        =>   p_instance_tbl(inst_row).instance_id
7429 			      ,p_new_instance_id    =>   NULL
7430 			      ,p_vld_org_id         =>   p_instance_tbl(inst_row).vld_organization_id
7431 			      ,p_quantity           =>   NULL
7432 			      ,p_party_account_id1  =>   NULL
7433 			      ,p_party_account_id2  =>   NULL
7434 			      ,p_transaction_date   =>   p_txn_tbl(inst_row).transaction_date
7435 			      ,p_source_transaction_date   =>   p_txn_tbl(inst_row).source_transaction_date
7436 			      ,p_grp_call_contracts =>   FND_API.G_TRUE
7437 			      ,p_call_from_bom_expl =>   p_call_from_bom_expl
7438 			      ,p_oks_txn_inst_tbl   =>   px_oks_txn_inst_tbl
7439 			      ,x_return_status      =>   x_return_status
7440 			      ,x_msg_count          =>   x_msg_count
7441 			      ,x_msg_data           =>   x_msg_data
7442 			       );
7443 	      IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS)
7444 	      THEN
7445 		 csi_gen_utility_pvt.put_line('Error from Call_to_contracts...');
7446 		 l_msg_index := 1;
7447 		 l_msg_count := x_msg_count;
7448 		 WHILE l_msg_count > 0 LOOP
7449 		   x_msg_data := FND_MSG_PUB.GET
7450 			       (  l_msg_index,
7451 				  FND_API.G_FALSE
7452 				);
7453 		   l_msg_index := l_msg_index + 1;
7454 		   l_msg_count := l_msg_count - 1;
7455 		 END LOOP;
7456 		 l_iface_error_text := substr(x_msg_data,1,2000);
7457 		 p_instance_tbl(inst_row).processed_flag := 'E';
7458 		 l_grp_error_tbl(inst_row).error_message := l_iface_error_text;
7459 		 l_grp_error_tbl(inst_row).process_status := 'E';
7460 		 l_error_array(inst_row) := l_iface_error_text;
7461 		 l_status_array(inst_row) := 'E';
7462 		 l_inst_id_array(inst_row) := NULL;
7463 		 l_del_count := l_del_count + 1;
7464 		 l_del_inst_tbl(l_del_count) := p_instance_tbl(inst_row).instance_id;
7465 		 l_del_txn_tbl(l_del_count) := p_txn_tbl(inst_row).transaction_id;
7466 	      ELSE
7467 		 -- Store the Transactions inorder to Update the Contracts Audit flag later
7468 		 l_upd_txn_count := l_upd_txn_count + 1;
7469 		 l_upd_txn_tbl(l_upd_txn_count) := p_txn_tbl(inst_row).transaction_id;
7470 	      END IF;
7471            END IF; -- Onwer party ID check
7472         END IF; -- Valid Instance check and call_contracts set to True
7473      END LOOP;
7474      --
7475      IF px_oks_txn_inst_tbl.count > 0 THEN
7476         IF l_debug_level > 1 THEN
7477            csi_gen_utility_pvt.dump_oks_txn_inst_tbl(px_oks_txn_inst_tbl);
7478            csi_gen_utility_pvt.put_line('Calling OKS Core API...');
7479         END IF;
7480 	--
7481         IF l_upd_txn_tbl.count > 0 THEN
7482            FORALL K IN l_upd_txn_tbl.FIRST .. l_upd_txn_tbl.LAST
7483               UPDATE CSI_TRANSACTIONS
7484               set contracts_invoked = 'Y'
7485               where transaction_id = l_upd_txn_tbl(K);
7486         END IF;
7487         --
7488 	OKS_IBINT_PUB.IB_interface
7489 	   (
7490 	     P_Api_Version           =>  1.0,
7491 	     P_init_msg_list         =>  p_init_msg_list,
7492 	     P_single_txn_date_flag  =>  'N',
7493 	     P_Batch_type            =>  NULL,
7494 	     P_Batch_ID              =>  NULL,
7495 	     P_OKS_Txn_Inst_tbl      =>  px_oks_txn_inst_tbl,
7496 	     x_return_status         =>  x_return_status,
7497 	     x_msg_count             =>  x_msg_count,
7498 	     x_msg_data              =>  x_msg_data
7499 	  );
7500      csi_gen_utility_pvt.put_line('Status returned from Oks_ibint_pub.IB_interface is :'||x_return_status);
7501 	IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS)
7502 	THEN
7503 	   csi_gen_utility_pvt.put_line('Error from Call_to_contracts...');
7504 	   l_msg_index := 1;
7505 	   l_msg_count := x_msg_count;
7506 	   WHILE l_msg_count > 0 LOOP
7507 	     x_msg_data := FND_MSG_PUB.GET
7508 			 (  l_msg_index,
7509 			    FND_API.G_FALSE
7510 			  );
7511 	       csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
7512 	     l_msg_index := l_msg_index + 1;
7513 	     l_msg_count := l_msg_count - 1;
7514 	   END LOOP;
7515 	   l_iface_error_text := substr(x_msg_data,1,2000);
7516            --
7517            FOR inst_row IN p_instance_tbl.FIRST .. p_instance_tbl.LAST LOOP
7518               IF p_instance_tbl.EXISTS(inst_row) THEN
7519                  p_instance_tbl(inst_row).processed_flag := 'E';
7520 		 l_grp_error_tbl(inst_row).error_message := l_iface_error_text;
7521 		 l_grp_error_tbl(inst_row).process_status := 'E';
7522 		 l_error_array(inst_row) := l_iface_error_text;
7523 		 l_status_array(inst_row) := 'E';
7524 		 l_inst_id_array(inst_row) := NULL;
7525               END IF;
7526            END LOOP;
7527            -- if OKS returns error then everthing gets rolledback
7528            p_grp_error_tbl := l_grp_error_tbl;
7529            RAISE FND_API.G_EXC_ERROR;
7530 	END IF;
7531      END IF; -- px_oks_txn_inst_tbl count
7532   END IF; -- Check for l_bulk_inst_tbl count
7533   --
7534   -- Delete the Instances failed in Counter and Contracts creation.
7535   IF l_del_inst_tbl.count > 0 THEN
7536      BEGIN
7537         FORALL j in l_del_inst_tbl.FIRST .. l_del_inst_tbl.LAST
7538            DELETE FROM CSI_ITEM_INSTANCES WHERE instance_id = l_del_inst_tbl(j);
7539         FORALL j in l_del_inst_tbl.FIRST .. l_del_inst_tbl.LAST
7540            DELETE FROM CSI_IP_ACCOUNTS WHERE instance_party_id in (SELECT instance_party_id
7541                                                                    from CSI_I_PARTIES WHERE instance_id = l_del_inst_tbl(j));
7542         FORALL j in l_del_inst_tbl.FIRST .. l_del_inst_tbl.LAST
7543            DELETE FROM CSI_I_PARTIES WHERE instance_id = l_del_inst_tbl(j);
7544         FORALL j in l_del_inst_tbl.FIRST .. l_del_inst_tbl.LAST
7545            DELETE FROM CSI_I_ORG_ASSIGNMENTS WHERE instance_id = l_del_inst_tbl(j);
7546         FORALL j in l_del_inst_tbl.FIRST .. l_del_inst_tbl.LAST
7547            DELETE FROM CSI_I_PRICING_ATTRIBS WHERE instance_id = l_del_inst_tbl(j);
7548         FORALL j in l_del_inst_tbl.FIRST .. l_del_inst_tbl.LAST
7549            DELETE FROM CSI_I_VERSION_LABELS WHERE instance_id = l_del_inst_tbl(j);
7550         FORALL j in l_del_inst_tbl.FIRST .. l_del_inst_tbl.LAST
7551            DELETE FROM CSI_IEA_VALUES WHERE instance_id = l_del_inst_tbl(j);
7552         FORALL j in l_del_inst_tbl.FIRST .. l_del_inst_tbl.LAST
7553            DELETE FROM CSI_I_ASSETS WHERE instance_id = l_del_inst_tbl(j);
7554         FORALL j in l_del_txn_tbl.FIRST .. l_del_txn_tbl.LAST
7555            DELETE FROM CSI_ITEM_INSTANCES_H WHERE transaction_id = l_del_txn_tbl(j);
7556         FORALL j in l_del_txn_tbl.FIRST .. l_del_txn_tbl.LAST
7557            DELETE FROM CSI_I_PARTIES_H WHERE transaction_id = l_del_txn_tbl(j);
7558         FORALL j in l_del_txn_tbl.FIRST .. l_del_txn_tbl.LAST
7559            DELETE FROM CSI_IP_ACCOUNTS_H WHERE transaction_id = l_del_txn_tbl(j);
7560         FORALL j in l_del_txn_tbl.FIRST .. l_del_txn_tbl.LAST
7561            DELETE FROM CSI_I_ORG_ASSIGNMENTS_H WHERE transaction_id = l_del_txn_tbl(j);
7562         FORALL j in l_del_txn_tbl.FIRST .. l_del_txn_tbl.LAST
7563            DELETE FROM CSI_I_PRICING_ATTRIBS_H WHERE transaction_id = l_del_txn_tbl(j);
7564         FORALL j in l_del_txn_tbl.FIRST .. l_del_txn_tbl.LAST
7565            DELETE FROM CSI_I_VERSION_LABELS_H WHERE transaction_id = l_del_txn_tbl(j);
7566         FORALL j in l_del_txn_tbl.FIRST .. l_del_txn_tbl.LAST
7567            DELETE FROM CSI_IEA_VALUES_H WHERE transaction_id = l_del_txn_tbl(j);
7568         FORALL j in l_del_txn_tbl.FIRST .. l_del_txn_tbl.LAST
7569            DELETE FROM CSI_I_ASSETS_H WHERE transaction_id = l_del_txn_tbl(j);
7570         FORALL j in l_del_txn_tbl.FIRST .. l_del_txn_tbl.LAST
7571            DELETE FROM CSI_TRANSACTIONS WHERE transaction_id = l_del_txn_tbl(j);
7572      END;
7573   END IF;
7574   -- Update Interface Table
7575   IF l_intf_id_array.count > 0 THEN
7576      BEGIN
7577         l_upd_stmt := 'UPDATE CSI_INSTANCE_INTERFACE
7578                      SET instance_id = :ins_id
7579                         ,error_text = :error_text
7580                         ,process_status = :status
7581                      WHERE inst_interface_id = :intf_id';
7582         l_num_of_rows := dbms_sql.open_cursor;
7583         dbms_sql.parse(l_num_of_rows,l_upd_stmt,dbms_sql.native);
7584         dbms_sql.bind_array(l_num_of_rows,':ins_id',l_inst_id_array);
7585         dbms_sql.bind_array(l_num_of_rows,':intf_id',l_intf_id_array);
7586         dbms_sql.bind_array(l_num_of_rows,':status',l_status_array);
7587         dbms_sql.bind_array(l_num_of_rows,':error_text',l_error_array);
7588         l_dummy := dbms_sql.execute(l_num_of_rows);
7589         dbms_sql.close_cursor(l_num_of_rows);
7590 
7591         l_upd_stmt := 'UPDATE CSI_I_ASSET_INTERFACE a
7592                      SET instance_id = :ins_id
7593 		     , instance_asset_id =
7594 		       ( SELECT instance_asset_id
7595 		         FROM   csi_i_assets b
7596 			 WHERE  b.instance_id = :a_ins_id
7597 			 AND    b.fa_asset_id = a.fa_asset_id
7598 			 AND    b.fa_book_type_code = a.fa_book_type_code
7599 			 AND    b.fa_location_id = a.fa_location_id
7600 			 AND    rownum = 1
7601 		        )
7602                      WHERE inst_interface_id = :intf_id';
7603         l_num_of_rows := dbms_sql.open_cursor;
7604         dbms_sql.parse(l_num_of_rows,l_upd_stmt,dbms_sql.native);
7605         dbms_sql.bind_array(l_num_of_rows,':ins_id',l_inst_id_array);
7606         dbms_sql.bind_array(l_num_of_rows,':a_ins_id',l_inst_id_array);
7607         dbms_sql.bind_array(l_num_of_rows,':intf_id',l_intf_id_array);
7608         l_dummy := dbms_sql.execute(l_num_of_rows);
7609         dbms_sql.close_cursor(l_num_of_rows);
7610 
7611      EXCEPTION
7612         WHEN OTHERS THEN
7613            NULL;
7614      END;
7615   END IF;
7616   --
7617   p_grp_error_tbl := l_grp_error_tbl;
7618   x_return_status := FND_API.G_RET_STS_SUCCESS;
7619   --
7620  END IF; --end of instance_tbl count check
7621    -- End of API body
7622    -- Standard check of p_commit.
7623    IF FND_API.To_Boolean( p_commit ) THEN
7624         COMMIT WORK;
7625    END IF;
7626    /***** srramakr commented for bug # 3304439
7627    -- Check for the profile option and disable the trace
7628    IF (l_flag = 'Y') THEN
7629         dbms_session.set_sql_trace(FALSE);
7630    END IF;
7631    -- End disable trace
7632    ****/
7633 
7634    -- Standard call to get message count and if count is  get message info.
7635    FND_MSG_PUB.Count_And_Get
7636                (p_count => x_msg_count ,
7637                  p_data  => x_msg_data
7638                 );
7639 
7640 EXCEPTION
7641    -- The following other_error exception is added for bug 3579121 (rel 11.5.9)
7642    WHEN OTHER_ERROR THEN
7643       x_return_status := FND_API.G_RET_STS_ERROR ;
7644       FND_MSG_PUB.Count_And_Get
7645        (       p_count => x_msg_count,
7646                p_data  => x_msg_data
7647         );
7648 
7649    WHEN FND_API.G_EXC_ERROR THEN
7650                 x_return_status := FND_API.G_RET_STS_ERROR ;
7651                 ROLLBACK TO create_item_instance;
7652                 FND_MSG_PUB.Count_And_Get
7653                 (       p_count => x_msg_count,
7654                         p_data  => x_msg_data
7655                 );
7656 
7657    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
7658    FND_File.Put_Line(Fnd_File.LOG,'Into unexpected exception of grp.create_item_instance');
7659    FND_File.Put_Line(Fnd_File.LOG,'SQLERRM:'||substr(SQLERRM,1,200));
7660                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
7661                 ROLLBACK TO create_item_instance;
7662                 FND_MSG_PUB.Count_And_Get
7663                 (       p_count => x_msg_count,
7664                         p_data  => x_msg_data
7665                 );
7666 
7667    WHEN OTHERS THEN
7668    FND_File.Put_Line(Fnd_File.LOG,'Into when others exception of grp.create_item_instance');
7669    FND_File.Put_Line(Fnd_File.LOG,'SQLERRM:'||substr(SQLERRM,1,200));
7670                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
7671                 ROLLBACK TO create_item_instance;
7672                 IF      FND_MSG_PUB.Check_Msg_Level
7673                         (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
7674                 THEN
7675                 FND_MSG_PUB.Add_Exc_Msg
7676                 (G_PKG_NAME,
7677                  l_api_name
7678                 );
7679                 END IF;
7680                 FND_MSG_PUB.Count_And_Get
7681                 (       p_count                 =>      x_msg_count,
7682                         p_data                  =>      x_msg_data
7683                 );
7684 
7685 END create_item_instance;
7686 
7687 /*----------------------------------------------------*/
7688 /* Procedure name: update_item_instance               */
7689 /* Description :   procedure used to update an Item   */
7690 /*                 Instance                           */
7691 /*----------------------------------------------------*/
7692 
7693 PROCEDURE update_item_instance
7694  (
7695      p_api_version           IN     NUMBER
7696     ,p_commit                IN     VARCHAR2
7697     ,p_init_msg_list         IN     VARCHAR2
7698     ,p_validation_level      IN     NUMBER
7699     ,p_instance_tbl          IN OUT NOCOPY csi_datastructures_pub.instance_tbl
7700     ,p_ext_attrib_values_tbl IN OUT NOCOPY csi_datastructures_pub.extend_attrib_values_tbl
7701     ,p_party_tbl             IN OUT NOCOPY csi_datastructures_pub.party_tbl
7702     ,p_account_tbl           IN OUT NOCOPY csi_datastructures_pub.party_account_tbl
7703     ,p_pricing_attrib_tbl    IN OUT NOCOPY csi_datastructures_pub.pricing_attribs_tbl
7704     ,p_org_assignments_tbl   IN OUT NOCOPY csi_datastructures_pub.organization_units_tbl
7705     ,p_asset_assignment_tbl  IN OUT NOCOPY csi_datastructures_pub.instance_asset_tbl
7706     ,p_txn_rec               IN OUT NOCOPY csi_datastructures_pub.transaction_rec
7707     ,x_instance_id_lst       OUT NOCOPY    csi_datastructures_pub.id_tbl
7708     ,p_grp_upd_error_tbl     OUT NOCOPY    csi_datastructures_pub.grp_upd_error_tbl
7709     ,x_return_status         OUT NOCOPY    VARCHAR2
7710     ,x_msg_count             OUT NOCOPY    NUMBER
7711     ,x_msg_data              OUT NOCOPY    VARCHAR2
7712  )
7713 
7714 IS
7715     l_api_name               CONSTANT VARCHAR2(30)     := 'UPDATE_ITEM_INSTANCE';
7716     l_api_version            CONSTANT NUMBER           := 1.0;
7717     l_debug_level            NUMBER;
7718     l_new_instance_rec       csi_datastructures_pub.instance_rec;
7719     l_temp_instance_rec      csi_datastructures_pub.instance_rec;
7720     l_old_instance_tbl       csi_datastructures_pub.instance_tbl;
7721     l_version_label_rec      csi_datastructures_pub.version_label_rec;
7722     l_temp_version_label_rec csi_datastructures_pub.version_label_rec;
7723     l_msg_count              NUMBER;
7724     l_msg_data               VARCHAR2(2000);
7725     l_msg_index              NUMBER;
7726     l_line_count             NUMBER;
7727     l_flag                   VARCHAR2(1):='N';
7728     l_transaction_type       VARCHAR2(10) := NULL;
7729     l_old_oks_cp_rec         oks_ibint_pub.cp_rec_type;
7730     l_new_oks_cp_rec         oks_ibint_pub.cp_rec_type;
7731     l_contracts_status       VARCHAR2(3);
7732     l_owner_party_id         NUMBER;
7733     l_transaction_date       DATE ;
7734     l_internal_party_id      NUMBER;
7735     l_party_id               NUMBER;
7736     l_active_end_date        DATE;
7737     l_dummy                  VARCHAR2(1);
7738     l_item_attribute_tbl     csi_item_instance_pvt.item_attribute_tbl;
7739     l_location_tbl           csi_item_instance_pvt.location_tbl;
7740     l_generic_id_tbl         csi_item_instance_pvt.generic_id_tbl;
7741     l_lookup_tbl             csi_item_instance_pvt.lookup_tbl;
7742     l_ins_count_rec          csi_item_instance_pvt.ins_count_rec;
7743     l_ou_lookup_tbl          csi_organization_unit_pvt.lookup_tbl;
7744     l_ou_count_rec           csi_organization_unit_pvt.ou_count_rec;
7745     l_ou_id_tbl              csi_organization_unit_pvt.ou_id_tbl;
7746     l_ext_id_tbl             csi_item_instance_pvt.ext_id_tbl;
7747     l_ext_count_rec          csi_item_instance_pvt.ext_count_rec;
7748     l_ext_attr_tbl           csi_item_instance_pvt.ext_attr_tbl;
7749     l_ext_cat_tbl            csi_item_instance_pvt.ext_cat_tbl;
7750     l_asset_lookup_tbl       csi_asset_pvt.lookup_tbl;
7751     l_asset_count_rec        csi_asset_pvt.asset_count_rec;
7752     l_asset_id_tbl           csi_asset_pvt.asset_id_tbl;
7753     l_asset_loc_tbl          csi_asset_pvt.asset_loc_tbl;
7754     --
7755     CURSOR instance_csr(p_ins_id IN NUMBER) is
7756     SELECT
7757 		   INSTANCE_ID
7758 		  ,INSTANCE_NUMBER
7759 		  ,EXTERNAL_REFERENCE
7760 		  ,INVENTORY_ITEM_ID
7761 		  ,INVENTORY_REVISION
7762 		  ,INV_MASTER_ORGANIZATION_ID
7763 		  ,SERIAL_NUMBER
7764 		  ,MFG_SERIAL_NUMBER_FLAG
7765 		  ,LOT_NUMBER
7766 		  ,QUANTITY
7767 		  ,UNIT_OF_MEASURE
7768 		  ,ACCOUNTING_CLASS_CODE
7769 		  ,INSTANCE_CONDITION_ID
7770 		  ,INSTANCE_STATUS_ID
7771 		  ,CUSTOMER_VIEW_FLAG
7772 		  ,MERCHANT_VIEW_FLAG
7773 		  ,SELLABLE_FLAG
7774 		  ,SYSTEM_ID
7775 		  ,INSTANCE_TYPE_CODE
7776 		  ,ACTIVE_START_DATE
7777 		  ,ACTIVE_END_DATE
7778 		  ,LOCATION_TYPE_CODE
7779 		  ,LOCATION_ID
7780 		  ,INV_ORGANIZATION_ID
7781 		  ,INV_SUBINVENTORY_NAME
7782 		  ,INV_LOCATOR_ID
7783 		  ,PA_PROJECT_ID
7784 		  ,PA_PROJECT_TASK_ID
7785 		  ,IN_TRANSIT_ORDER_LINE_ID
7786 		  ,WIP_JOB_ID
7787 		  ,PO_ORDER_LINE_ID
7788 		  ,LAST_OE_ORDER_LINE_ID
7789 		  ,LAST_OE_RMA_LINE_ID
7790 		  ,LAST_PO_PO_LINE_ID
7791 		  ,LAST_OE_PO_NUMBER
7792 		  ,LAST_WIP_JOB_ID
7793 		  ,LAST_PA_PROJECT_ID
7794 		  ,LAST_PA_TASK_ID
7795 		  ,LAST_OE_AGREEMENT_ID
7796 		  ,INSTALL_DATE
7797 		  ,MANUALLY_CREATED_FLAG
7798 		  ,RETURN_BY_DATE
7799 		  ,ACTUAL_RETURN_DATE
7800 		  ,CREATION_COMPLETE_FLAG
7801 		  ,COMPLETENESS_FLAG
7802 		  ,CONTEXT
7803 		  ,ATTRIBUTE1
7804 		  ,ATTRIBUTE2
7805 		  ,ATTRIBUTE3
7806 		  ,ATTRIBUTE4
7807 		  ,ATTRIBUTE5
7808 		  ,ATTRIBUTE6
7809 		  ,ATTRIBUTE7
7810 		  ,ATTRIBUTE8
7811 		  ,ATTRIBUTE9
7812 		  ,ATTRIBUTE10
7813 		  ,ATTRIBUTE11
7814 		  ,ATTRIBUTE12
7815 		  ,ATTRIBUTE13
7816 		  ,ATTRIBUTE14
7817 		  ,ATTRIBUTE15
7818 		  ,CREATED_BY
7819 		  ,CREATION_DATE
7820 		  ,LAST_UPDATED_BY
7821 		  ,LAST_UPDATE_DATE
7822 		  ,LAST_UPDATE_LOGIN
7823 		  ,OBJECT_VERSION_NUMBER
7824 		  ,SECURITY_GROUP_ID
7825 		  ,LAST_TXN_LINE_DETAIL_ID
7826 		  ,INSTALL_LOCATION_TYPE_CODE
7827 		  ,INSTALL_LOCATION_ID
7828 		  ,INSTANCE_USAGE_CODE
7829 		  ,OWNER_PARTY_SOURCE_TABLE
7830 		  ,OWNER_PARTY_ID
7831 		  ,OWNER_PARTY_ACCOUNT_ID
7832 		  ,LAST_VLD_ORGANIZATION_ID
7833 		  ,MIGRATED_FLAG
7834 		  ,NULL PROCESSED_FLAG
7835     from   CSI_ITEM_INSTANCES
7836     where instance_id = p_ins_id;
7837     --
7838     l_instance_csr           instance_csr%ROWTYPE;
7839     --
7840     CURSOR old_ins_csr (p_ins_id IN NUMBER) IS
7841     SELECT
7842 		   INSTANCE_ID
7843 		  ,INSTANCE_NUMBER
7844 		  ,EXTERNAL_REFERENCE
7845 		  ,INVENTORY_ITEM_ID
7846 		  ,INVENTORY_REVISION
7847 		  ,INV_MASTER_ORGANIZATION_ID
7848 		  ,SERIAL_NUMBER
7849 		  ,MFG_SERIAL_NUMBER_FLAG
7850 		  ,LOT_NUMBER
7851 		  ,QUANTITY
7852 		  ,UNIT_OF_MEASURE
7853 		  ,ACCOUNTING_CLASS_CODE
7854 		  ,INSTANCE_CONDITION_ID
7855 		  ,INSTANCE_STATUS_ID
7856 		  ,CUSTOMER_VIEW_FLAG
7857 		  ,MERCHANT_VIEW_FLAG
7858 		  ,SELLABLE_FLAG
7859 		  ,SYSTEM_ID
7860 		  ,INSTANCE_TYPE_CODE
7861 		  ,ACTIVE_START_DATE
7862 		  ,ACTIVE_END_DATE
7863 		  ,LOCATION_TYPE_CODE
7864 		  ,LOCATION_ID
7865 		  ,INV_ORGANIZATION_ID
7866 		  ,INV_SUBINVENTORY_NAME
7867 		  ,INV_LOCATOR_ID
7868 		  ,PA_PROJECT_ID
7869 		  ,PA_PROJECT_TASK_ID
7870 		  ,IN_TRANSIT_ORDER_LINE_ID
7871 		  ,WIP_JOB_ID
7872 		  ,PO_ORDER_LINE_ID
7873 		  ,LAST_OE_ORDER_LINE_ID
7874 		  ,LAST_OE_RMA_LINE_ID
7875 		  ,LAST_PO_PO_LINE_ID
7876 		  ,LAST_OE_PO_NUMBER
7877 		  ,LAST_WIP_JOB_ID
7878 		  ,LAST_PA_PROJECT_ID
7879 		  ,LAST_PA_TASK_ID
7880 		  ,LAST_OE_AGREEMENT_ID
7881 		  ,INSTALL_DATE
7882 		  ,MANUALLY_CREATED_FLAG
7883 		  ,RETURN_BY_DATE
7884 		  ,ACTUAL_RETURN_DATE
7885 		  ,CREATION_COMPLETE_FLAG
7886 		  ,COMPLETENESS_FLAG
7887 		  ,CONTEXT
7888 		  ,ATTRIBUTE1
7889 		  ,ATTRIBUTE2
7890 		  ,ATTRIBUTE3
7891 		  ,ATTRIBUTE4
7892 		  ,ATTRIBUTE5
7893 		  ,ATTRIBUTE6
7894 		  ,ATTRIBUTE7
7895 		  ,ATTRIBUTE8
7896 		  ,ATTRIBUTE9
7897 		  ,ATTRIBUTE10
7898 		  ,ATTRIBUTE11
7899 		  ,ATTRIBUTE12
7900 		  ,ATTRIBUTE13
7901 		  ,ATTRIBUTE14
7902 		  ,ATTRIBUTE15
7903 		  ,CREATED_BY
7904 		  ,CREATION_DATE
7905 		  ,LAST_UPDATED_BY
7906 		  ,LAST_UPDATE_DATE
7907 		  ,LAST_UPDATE_LOGIN
7908 		  ,OBJECT_VERSION_NUMBER
7909 		  ,SECURITY_GROUP_ID
7910 		  ,LAST_TXN_LINE_DETAIL_ID
7911 		  ,INSTALL_LOCATION_TYPE_CODE
7912 		  ,INSTALL_LOCATION_ID
7913 		  ,INSTANCE_USAGE_CODE
7914 		  ,OWNER_PARTY_SOURCE_TABLE
7915 		  ,OWNER_PARTY_ID
7916 		  ,OWNER_PARTY_ACCOUNT_ID
7917 		  ,LAST_VLD_ORGANIZATION_ID
7918 		  ,MIGRATED_FLAG
7919 		  ,NULL PROCESSED_FLAG
7920     FROM CSI_ITEM_INSTANCES
7921     WHERE instance_id = p_ins_id;
7922     l_old_ins_csr           old_ins_csr%ROWTYPE;
7923     --
7924     l_iface_error_text       VARCHAR2(2000);
7925     l_grp_upd_error_tbl      csi_datastructures_pub.grp_upd_error_tbl;
7926     l_grp_error_count        NUMBER := 0;
7927     l_order_line_id          NUMBER;
7928     --
7929     l_owner_party_tbl          csi_datastructures_pub.party_tbl;
7930     l_party_tbl                csi_datastructures_pub.party_tbl;
7931     l_contact_party_tbl        csi_datastructures_pub.party_tbl;
7932     l_owner_acct_tbl           csi_datastructures_pub.party_account_tbl;
7933     l_pty_acct_tbl             csi_datastructures_pub.party_account_tbl;
7934     --
7935     l_upd_party_tbl            csi_datastructures_pub.party_tbl;
7936     l_upd_acct_tbl             csi_datastructures_pub.party_account_tbl;
7937     l_upd_count                NUMBER := 0;
7938     --
7939     l_owner_count              NUMBER := 0;
7940     l_party_count              NUMBER := 0;
7941     l_contact_count            NUMBER := 0;
7942     l_owner_acct_count         NUMBER := 0;
7943     l_pty_acct_count           NUMBER := 0;
7944     Process_next               EXCEPTION;
7945     --
7946     l_party_slot_tbl           T_NUM; -- This will be mapped one-to-one with the l_party_tbl
7947     --                                -- It contains the p_party_tbl slot#
7948     l_pty_slot                 NUMBER := 0;
7949     --
7950     TYPE exp_rec IS RECORD
7951        ( instance_id        NUMBER,
7952          instance_status_id NUMBER,
7953          active_end_date    DATE
7954        );
7955     TYPE exp_tbl IS TABLE OF exp_rec INDEX BY BINARY_INTEGER;
7956     --
7957     l_exp_tbl               exp_tbl;
7958     l_exp_count             NUMBER := 0;
7959     --
7960     px_child_inst_tbl        csi_item_instance_grp.child_inst_tbl;
7961     l_child_exists           VARCHAR2(1);
7962     --
7963     px_oks_txn_inst_tbl      oks_ibint_pub.txn_instance_tbl;
7964     l_batch_id               NUMBER;
7965     l_batch_type             VARCHAR2(50);
7966     --
7967     SKIP_ERROR               EXCEPTION;
7968 
7969     CURSOR non_owner_csr (p_ins_pty_id NUMBER) IS
7970       SELECT ip_account_id
7971             ,active_end_date
7972             ,object_version_number
7973       from   csi_ip_accounts
7974       where  instance_party_id=p_ins_pty_id
7975       and    relationship_type_code<>'OWNER';
7976 
7977 BEGIN
7978     -- Standard Start of API savepoint
7979     SAVEPOINT       update_item_instance;
7980 
7981     -- Check for freeze_flag in csi_install_parameters is set to 'Y'
7982 
7983     csi_utility_grp.check_ib_active;
7984 
7985     -- Standard call to check for call compatibility.
7986     IF NOT FND_API.Compatible_API_Call (l_api_version,
7987 					    p_api_version,
7988 					    l_api_name       ,
7989 					    G_PKG_NAME       )
7990     THEN
7991 	    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7992     END IF;
7993 
7994     -- Initialize message list if p_init_msg_list is set to TRUE.
7995     IF FND_API.to_Boolean( p_init_msg_list ) THEN
7996 	    FND_MSG_PUB.initialize;
7997     END IF;
7998 
7999     --  Initialize API return status to success
8000     x_return_status := FND_API.G_RET_STS_SUCCESS;
8001 
8002     -- Check the profile option debug_level for debug message reporting
8003     l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
8004 
8005     -- If debug_level = 1 then dump the procedure name
8006     IF (l_debug_level > 0) THEN
8007 	csi_gen_utility_pvt.put_line( 'update_item_instance');
8008     END IF;
8009     --
8010     /***** srramakr commented for bug # 3304439
8011     -- Check for the profile option and enable trace
8012     l_flag:=CSI_GEN_UTILITY_PVT.enable_trace(l_trace_flag => l_flag);
8013     -- End enable trace
8014     ****/
8015     IF csi_datastructures_pub.g_install_param_rec.fetch_flag IS NULL THEN
8016        csi_gen_utility_pvt.populate_install_param_rec;
8017     END IF;
8018     --
8019     l_internal_party_id := csi_datastructures_pub.g_install_param_rec.internal_party_id;
8020     --
8021     IF l_internal_party_id IS NULL THEN
8022        FND_MESSAGE.SET_NAME('CSI','CSI_API_UNINSTALLED_PARAMETER');
8023        FND_MSG_PUB.ADD;
8024        RAISE FND_API.G_EXC_ERROR;
8025     END IF;
8026     --
8027     l_old_instance_tbl.DELETE;
8028     IF (p_instance_tbl.count > 0) THEN
8029        FOR ins_row IN p_instance_tbl.FIRST .. p_instance_tbl.LAST
8030        LOOP
8031 	  IF p_instance_tbl.EXISTS(ins_row) THEN
8032 	     -- If the debug level = 2 then dump all the parameters values.
8033 	     IF (l_debug_level > 1) THEN
8034 		csi_gen_utility_pvt.put_line( 'update_item_instance'     ||
8035 					     p_api_version         ||'-'||
8036 					     p_commit              ||'-'||
8037 					     p_init_msg_list       ||'-'||
8038 					     p_validation_level );
8039 		csi_gen_utility_pvt.dump_instance_rec(p_instance_tbl(ins_row));
8040 		csi_gen_utility_pvt.dump_party_tbl(p_party_tbl);
8041 		csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
8042 		csi_gen_utility_pvt.dump_organization_unit_tbl(p_org_assignments_tbl);
8043 		csi_gen_utility_pvt.dump_pricing_attribs_tbl(p_pricing_attrib_tbl);
8044 		csi_gen_utility_pvt.dump_party_account_tbl(p_account_tbl);
8045 		csi_gen_utility_pvt.dump_ext_attrib_values_tbl(p_ext_attrib_values_tbl);
8046 	     END IF;
8047 	     -- Start API body
8048 	     -- This will fetch old instance data for the purpose of contracts
8049 	     OPEN   old_ins_csr (p_instance_tbl(ins_row).instance_id);
8050 	     FETCH  old_ins_csr INTO l_old_ins_csr;
8051 	     CLOSE  old_ins_csr;
8052 	     -- Following table will be used for calling contracts.
8053 	     l_old_instance_tbl(ins_row).instance_id := p_instance_tbl(ins_row).instance_id;
8054 	     l_old_instance_tbl(ins_row).active_end_date := l_old_ins_csr.active_end_date;
8055              l_old_instance_tbl(ins_row).quantity := l_old_ins_csr.quantity;
8056              l_old_instance_tbl(ins_row).install_date := l_old_ins_csr.install_date;
8057              l_old_instance_tbl(ins_row).last_oe_order_line_id := l_old_ins_csr.last_oe_order_line_id;
8058              l_old_instance_tbl(ins_row).in_transit_order_line_id := l_old_ins_csr.in_transit_order_line_id;
8059 	     --
8060 	     -- End fetching old instance data for the purpose of contracts
8061 	     --
8062 	     l_new_instance_rec := p_instance_tbl(ins_row);
8063              --
8064              -- Check whether the instance is getting expired. If so, then update the other attributes
8065              -- and then expire the instance.
8066              IF l_new_instance_rec.active_end_date IS NOT NULL AND
8067                 l_new_instance_rec.active_end_date <> FND_API.G_MISS_DATE AND
8068                 l_new_instance_rec.active_end_date < sysdate THEN
8069                 -- Store the following attributes in a PL/SQL tbl.
8070                 -- ins_row is used as the slot# so that when Update API is called again, the status of
8071                 -- p_instance_tbl can be updated directly using this ins_row.
8072                 l_exp_tbl(ins_row).instance_id := l_new_instance_rec.instance_id;
8073                 l_exp_tbl(ins_row).instance_status_id := l_new_instance_rec.instance_status_id;
8074                 l_exp_tbl(ins_row).active_end_date := l_new_instance_rec.active_end_date;
8075                 l_new_instance_rec.active_end_date := fnd_api.g_miss_date;
8076                 l_new_instance_rec.instance_status_id := fnd_api.g_miss_num;
8077              END IF;
8078              --
8079              -- If any of the attribute values are different from the DB value then call Update API.
8080 	     IF (csi_Item_Instance_Pvt.Anything_To_Update(p_instance_rec => l_new_instance_rec)) THEN
8081                 l_child_exists := 'N';
8082                 IF px_child_inst_tbl.count > 0 THEN
8083                    FOR k IN px_child_inst_tbl.FIRST .. px_child_inst_tbl.LAST LOOP
8084                       IF l_new_instance_rec.instance_id = px_child_inst_tbl(k) THEN
8085                          l_child_exists := 'Y';
8086                          exit;
8087                       END IF;
8088                    END LOOP;
8089                 END IF;
8090                 --
8091                 IF l_child_exists = 'Y' THEN -- Call update API with the New object version Number
8092                    select object_version_number
8093                    into l_new_instance_rec.object_version_number
8094                    from CSI_ITEM_INSTANCES
8095                    where instance_id = l_new_instance_rec.instance_id;
8096                 END IF;
8097 		-- Call the update_item_instance private API to update the instances
8098 		l_iface_error_text := NULL;
8099 		csi_item_instance_pvt.update_item_instance
8100 			       (
8101 				p_api_version        => p_api_version
8102 			       ,p_commit             => fnd_api.g_false
8103 			       ,p_init_msg_list      => p_init_msg_list
8104 			       ,p_validation_level   => p_validation_level
8105 			       ,p_instance_rec       => l_new_instance_rec
8106 			       ,p_txn_rec            => p_txn_rec
8107 			       ,x_instance_id_lst    => x_instance_id_lst
8108 			       ,x_return_status      => x_return_status
8109 			       ,x_msg_count          => x_msg_count
8110 			       ,x_msg_data           => x_msg_data
8111 			       ,p_item_attribute_tbl => l_item_attribute_tbl
8112 			       ,p_location_tbl       => l_location_tbl
8113 			       ,p_generic_id_tbl     => l_generic_id_tbl
8114 			       ,p_lookup_tbl         => l_lookup_tbl
8115 			       ,p_ins_count_rec      => l_ins_count_rec
8116                                ,p_oks_txn_inst_tbl   => px_oks_txn_inst_tbl
8117                                ,p_child_inst_tbl     => px_child_inst_tbl
8118 			      );
8119 
8120                 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
8121 		   csi_gen_utility_pvt.put_line( 'Error from UPDATE_ITEM_INSTANCE_PVT..');
8122 		   l_msg_index := 1;
8123 		   l_msg_count := x_msg_count;
8124 		   WHILE l_msg_count > 0 LOOP
8125 		       x_msg_data := FND_MSG_PUB.GET
8126 					     ( l_msg_index,
8127 					       FND_API.G_FALSE );
8128 		       csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
8129 		       l_msg_index := l_msg_index + 1;
8130 		       l_msg_count := l_msg_count - 1;
8131                    END LOOP;
8132 		   --  RAISE FND_API.G_EXC_ERROR;
8133                    p_instance_tbl(ins_row).processed_flag := 'E';
8134 		   l_iface_error_text := substr(x_msg_data,1,2000);
8135 		   l_grp_error_count := l_grp_error_count + 1;
8136 		   l_grp_upd_error_tbl(l_grp_error_count).instance_id := l_new_instance_rec.instance_id;
8137 		   l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'INSTANCE';
8138 		   l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8139                 ELSE
8140                    p_instance_tbl(ins_row).processed_flag := 'P';
8141                 END IF;
8142              END IF;
8143 	  END IF; -- Check Instance Tbl existance.
8144        END LOOP;
8145        --
8146        px_child_inst_tbl.DELETE;
8147        --
8148     END IF;
8149     --
8150     px_child_inst_tbl.DELETE;
8151     --
8152     IF p_party_tbl.count > 0 THEN
8153        FOR pty IN p_party_tbl.FIRST .. p_party_tbl.LAST LOOP
8154 	  IF p_party_tbl.EXISTS(pty) THEN
8155 	     IF p_party_tbl(pty).contact_flag <> 'Y' THEN
8156 		IF p_party_tbl(pty).relationship_type_code = 'OWNER' THEN
8157 		   l_owner_count := l_owner_count + 1;
8158 		   l_owner_party_tbl(l_owner_count) := p_party_tbl(pty);
8159 		   IF p_account_tbl.count > 0 THEN
8160 		      FOR acct IN p_account_tbl.FIRST .. p_account_tbl.LAST LOOP
8161 			 IF p_account_tbl.EXISTS(acct) THEN
8162 			    IF p_account_tbl(acct).parent_tbl_index = pty THEN
8163 			       l_owner_acct_count := l_owner_acct_count + 1;
8164 			       l_owner_acct_tbl(l_owner_acct_count) := p_account_tbl(acct);
8165 			       l_owner_acct_tbl(l_owner_acct_count).parent_tbl_index := l_owner_count;
8166 			       l_owner_acct_tbl(l_owner_acct_count).call_contracts := fnd_api.g_true;
8167 			    END IF;
8168 			 END IF;
8169 		      END LOOP; -- Account Loop
8170 		   END IF;
8171 		ELSE -- Non-Owner Party
8172 		   l_party_count := l_party_count + 1;
8173 		   l_party_tbl(l_party_count) := p_party_tbl(pty);
8174 		   l_pty_slot := l_pty_slot +1 ;
8175 		   l_party_slot_tbl(l_pty_slot) := pty;
8176 		   IF p_account_tbl.count > 0 THEN
8177 		      FOR acct IN p_account_tbl.FIRST .. p_account_tbl.LAST LOOP
8178 			 IF p_account_tbl.EXISTS(acct) THEN
8179 			    IF p_account_tbl(acct).parent_tbl_index = pty THEN
8180 			       l_pty_acct_count := l_pty_acct_count + 1;
8181 			       l_pty_acct_tbl(l_pty_acct_count) := p_account_tbl(acct);
8182 			       l_pty_acct_tbl(l_pty_acct_count).parent_tbl_index := l_party_count;
8183 			    END IF;
8184 			 END IF;
8185 		      END LOOP; -- Account Loop
8186                    END IF;
8187 		END IF; -- Relationship Type check
8188 	     ELSE -- Contact Party
8189 		l_contact_count := l_contact_count + 1;
8190 		l_contact_party_tbl(l_contact_count) := p_party_tbl(pty);
8191 	     END IF; -- Contact flag check
8192 	  END IF;
8193        END LOOP; -- Party Loop
8194     END IF;
8195     --
8196     -- Owner Party Tbl will always have instance_party_id and hence we need to call Update Party API
8197     -- If the corresponding account entity is getting created then Update Party API hadles that.
8198     IF l_owner_party_tbl.count > 0 THEN
8199        FOR J IN l_owner_party_tbl.FIRST .. l_owner_party_tbl.LAST LOOP
8200 	  l_upd_party_tbl.DELETE;
8201 	  l_upd_acct_tbl.DELETE;
8202 	  l_upd_count := 0;
8203 	  --
8204 	  l_upd_party_tbl(1) := l_owner_party_tbl(J);
8205 	  --
8206 	  IF l_owner_acct_tbl.count > 0 THEN
8207 	     FOR K IN l_owner_acct_tbl.FIRST .. l_owner_acct_tbl.LAST LOOP
8208 		IF l_owner_acct_tbl(K).parent_tbl_index = J THEN
8209 		   l_upd_count := l_upd_count + 1;
8210 		   l_upd_acct_tbl(l_upd_count) := l_owner_acct_tbl(K);
8211                    l_upd_acct_tbl(l_upd_count).parent_tbl_index := 1; -- Party tbl always contains 1 rec
8212 		END IF;
8213 	     END LOOP;
8214 	  END IF;
8215 	  --
8216 	  -- Call Update Party API for this set
8217 	  csi_party_relationships_pub.update_inst_party_relationship
8218 	    (  p_api_version      => p_api_version
8219 	      ,p_commit           => fnd_api.g_false
8220 	      ,p_init_msg_list    => fnd_api.g_false
8221 	      ,p_validation_level => p_validation_level
8222 	      ,p_party_tbl        => l_upd_party_tbl
8223 	      ,p_party_account_tbl=> l_upd_acct_tbl
8224 	      ,p_txn_rec          => p_txn_rec
8225 	      ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
8226 	      ,x_return_status    => x_return_status
8227 	      ,x_msg_count        => x_msg_count
8228 	      ,x_msg_data         => x_msg_data
8229 	    );
8230 	  --
8231 	  IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
8232 	     l_msg_index := 1;
8233 	     l_msg_count := x_msg_count;
8234 	     WHILE l_msg_count > 0
8235 	     LOOP
8236 		x_msg_data := FND_MSG_PUB.GET
8237 				 (  l_msg_index,
8238 				    FND_API.G_FALSE       );
8239 		csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
8240 		l_msg_index := l_msg_index + 1;
8241 		l_msg_count := l_msg_count - 1;
8242 	     END LOOP;
8243 	     l_iface_error_text := substr(x_msg_data,1,2000);
8244 	     l_grp_error_count := l_grp_error_count + 1;
8245 	     l_grp_upd_error_tbl(l_grp_error_count).instance_id := l_upd_party_tbl(1).instance_id;
8246 	     l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'PARTY';
8247 	     l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8248 	  END IF;
8249        END LOOP;
8250     END IF; -- Owner Party Tbl count check
8251     --
8252     IF l_party_tbl.count > 0 THEN
8253        FOR J IN l_party_tbl.FIRST .. l_party_tbl.LAST LOOP
8254 	  l_upd_party_tbl.DELETE;
8255 	  l_upd_acct_tbl.DELETE;
8256 	  l_upd_count := 0;
8257 	  --
8258 	  l_upd_party_tbl(1) := l_party_tbl(J);
8259 	  --
8260 	  IF l_pty_acct_tbl.count > 0 THEN
8261 	     FOR K IN l_pty_acct_tbl.FIRST .. l_pty_acct_tbl.LAST LOOP
8262 		IF l_pty_acct_tbl(K).parent_tbl_index = J THEN
8263 		   l_upd_count := l_upd_count + 1;
8264 		   l_upd_acct_tbl(l_upd_count) := l_pty_acct_tbl(K);
8265                    l_upd_acct_tbl(l_upd_count).parent_tbl_index := 1; -- Party tbl always contains 1 record
8266 		END IF;
8267 	     END LOOP;
8268 	  END IF;
8269 	  --
8270 	  IF l_upd_party_tbl(1).instance_party_id IS NULL OR
8271 	     l_upd_party_tbl(1).instance_party_id = FND_API.G_MISS_NUM THEN
8272 	     -- Call Create Party API
8273 	     csi_party_relationships_pub.create_inst_party_relationship
8274 	      ( p_api_version         => p_api_version
8275 	       ,p_commit              => fnd_api.g_false
8276 	       ,p_init_msg_list       => p_init_msg_list
8277 	       ,p_validation_level    => p_validation_level
8278 	       ,p_party_tbl           => l_upd_party_tbl
8279 	       ,p_party_account_tbl   => l_upd_acct_tbl
8280 	       ,p_txn_rec             => p_txn_rec
8281 	       ,p_oks_txn_inst_tbl    => px_oks_txn_inst_tbl
8282 	       ,x_return_status       => x_return_status
8283 	       ,x_msg_count           => x_msg_count
8284 	       ,x_msg_data            => x_msg_data
8285 	     );
8286 	     --
8287 	     IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
8288 		l_msg_index := 1;
8289 		l_msg_count := x_msg_count;
8290 		WHILE l_msg_count > 0
8291 		LOOP
8292 		   x_msg_data := FND_MSG_PUB.GET
8293 				    (  l_msg_index,
8294 				       FND_API.G_FALSE       );
8295 		   csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
8296 		   l_msg_index := l_msg_index + 1;
8297 		   l_msg_count := l_msg_count - 1;
8298 		END LOOP;
8299 		l_iface_error_text := substr(x_msg_data,1,2000);
8300 		l_grp_error_count := l_grp_error_count + 1;
8301 		l_grp_upd_error_tbl(l_grp_error_count).instance_id := l_upd_party_tbl(1).instance_id;
8302 		l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'PARTY';
8303 		l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8304 	     ELSE -- Update the instance_party_id for the corresponding p_party_tbl
8305 		IF l_party_slot_tbl.count > 0 THEN
8306 			 p_party_tbl(l_party_slot_tbl(J)).instance_party_id :=
8307 						       l_upd_party_tbl(1).instance_party_id;
8308 		END IF;
8309 	     END IF;
8310 	  ELSE
8311 	     -- Call Update Party API
8312 	     csi_party_relationships_pub.update_inst_party_relationship
8313 	       (  p_api_version      => p_api_version
8314 		 ,p_commit           => fnd_api.g_false
8315 		 ,p_init_msg_list    => fnd_api.g_false
8316 		 ,p_validation_level => p_validation_level
8317 		 ,p_party_tbl        => l_upd_party_tbl
8318 		 ,p_party_account_tbl=> l_upd_acct_tbl
8319 		 ,p_txn_rec          => p_txn_rec
8320 		 ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
8321 		 ,x_return_status    => x_return_status
8322 		 ,x_msg_count        => x_msg_count
8323 		 ,x_msg_data         => x_msg_data
8324 	       );
8325 	     --
8326 	     IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
8327 		l_msg_index := 1;
8328 		l_msg_count := x_msg_count;
8329 		WHILE l_msg_count > 0
8330 		LOOP
8331 		   x_msg_data := FND_MSG_PUB.GET
8332 				    (  l_msg_index,
8333 				       FND_API.G_FALSE       );
8334 		   csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
8335 		   l_msg_index := l_msg_index + 1;
8336 		   l_msg_count := l_msg_count - 1;
8337 		END LOOP;
8338 		l_iface_error_text := substr(x_msg_data,1,2000);
8339 		l_grp_error_count := l_grp_error_count + 1;
8340 		l_grp_upd_error_tbl(l_grp_error_count).instance_id := l_upd_party_tbl(1).instance_id;
8341 		l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'PARTY';
8342 		l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8343 	     END IF;
8344 	  END IF;
8345        END LOOP;
8346     END IF; -- Non-Owner Party Tbl count check
8347     --
8348     -- Call Party API for Contacts
8349     l_upd_acct_tbl.DELETE;
8350     IF l_contact_party_tbl.count > 0 THEN
8351        FOR J IN l_contact_party_tbl.FIRST .. l_contact_party_tbl.LAST LOOP
8352 	  Begin
8353 	     l_upd_party_tbl.DELETE;
8354 	     l_upd_party_tbl(1) := l_contact_party_tbl(J);
8355 	     --
8356 	     -- Get the correct contact_ip_id if not passed
8357 	     --
8358 	     IF l_contact_party_tbl(J).contact_ip_id IS NULL OR
8359 		l_contact_party_tbl(J).contact_ip_id = FND_API.G_MISS_NUM THEN
8360 		IF NVL(l_contact_party_tbl(J).contact_parent_tbl_index,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM
8361 		THEN
8362 		   IF p_party_tbl.EXISTS(l_contact_party_tbl(J).contact_parent_tbl_index) THEN
8363 		      l_contact_party_tbl(J).contact_ip_id :=
8364 			    p_party_tbl(l_contact_party_tbl(J).contact_parent_tbl_index).instance_party_id;
8365                       l_upd_party_tbl(1).contact_ip_id := l_contact_party_tbl(J).contact_ip_id;
8366 		   ELSE
8367 		      l_iface_error_text := 'Invalid contact_parent_tbl_index';
8368 		      l_grp_error_count := l_grp_error_count + 1;
8369 		      l_grp_upd_error_tbl(l_grp_error_count).instance_id := l_upd_party_tbl(1).instance_id;
8370 		      l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'PARTY';
8371 		      l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8372 		      Raise Process_next;
8373 		   END IF;
8374 		ELSE
8375 		   l_iface_error_text := 'Either Contact_parent_tbl_index or Contact_Ip_ID should be passed for Contacts';
8376 		   l_grp_error_count := l_grp_error_count + 1;
8377 		   l_grp_upd_error_tbl(l_grp_error_count).instance_id := l_upd_party_tbl(1).instance_id;
8378 		   l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'PARTY';
8379 		   l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8380 		   Raise Process_next;
8381 		END IF;
8382 	     END IF;
8383 	     --
8384 	     IF l_upd_party_tbl(1).instance_party_id IS NULL OR
8385 		l_upd_party_tbl(1).instance_party_id = FND_API.G_MISS_NUM THEN
8386 		-- Call Create Party API
8387 		csi_party_relationships_pub.create_inst_party_relationship
8388 		 ( p_api_version         => p_api_version
8389 		  ,p_commit              => fnd_api.g_false
8390 		  ,p_init_msg_list       => p_init_msg_list
8391 		  ,p_validation_level    => p_validation_level
8392 		  ,p_party_tbl           => l_upd_party_tbl
8393 		  ,p_party_account_tbl   => l_upd_acct_tbl
8394 		  ,p_txn_rec             => p_txn_rec
8395 		  ,p_oks_txn_inst_tbl    => px_oks_txn_inst_tbl
8396 		  ,x_return_status       => x_return_status
8397 		  ,x_msg_count           => x_msg_count
8398 		  ,x_msg_data            => x_msg_data
8399 		);
8400 		--
8401 		IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
8402 		   l_msg_index := 1;
8403 		   l_msg_count := x_msg_count;
8404 		   WHILE l_msg_count > 0
8405 		   LOOP
8406 		      x_msg_data := FND_MSG_PUB.GET
8407 				       (  l_msg_index,
8408 					  FND_API.G_FALSE       );
8409 		      csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
8410 		      l_msg_index := l_msg_index + 1;
8411 		      l_msg_count := l_msg_count - 1;
8412 		   END LOOP;
8413 		   l_iface_error_text := substr(x_msg_data,1,2000);
8414 		   l_grp_error_count := l_grp_error_count + 1;
8415 		   l_grp_upd_error_tbl(l_grp_error_count).instance_id := l_upd_party_tbl(1).instance_id;
8416 		   l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'PARTY';
8417 		   l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8418 		END IF;
8419 	     ELSE
8420 		-- Call Update Party API
8421 		csi_party_relationships_pub.update_inst_party_relationship
8422 		  (  p_api_version      => p_api_version
8423 		    ,p_commit           => fnd_api.g_false
8424 		    ,p_init_msg_list    => fnd_api.g_false
8425 		    ,p_validation_level => p_validation_level
8426 		    ,p_party_tbl        => l_upd_party_tbl
8427 		    ,p_party_account_tbl=> l_upd_acct_tbl
8428 		    ,p_txn_rec          => p_txn_rec
8429 		    ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
8430 		    ,x_return_status    => x_return_status
8431 		    ,x_msg_count        => x_msg_count
8432 		    ,x_msg_data         => x_msg_data
8433 		  );
8434 		--
8435 		IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
8436 		   l_msg_index := 1;
8437 		   l_msg_count := x_msg_count;
8438 		   WHILE l_msg_count > 0
8439 		   LOOP
8440 		      x_msg_data := FND_MSG_PUB.GET
8441 				       (  l_msg_index,
8442 					  FND_API.G_FALSE       );
8443 		      csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
8444 		      l_msg_index := l_msg_index + 1;
8445 		      l_msg_count := l_msg_count - 1;
8446 		   END LOOP;
8447 		   l_iface_error_text := substr(x_msg_data,1,2000);
8448 		   l_grp_error_count := l_grp_error_count + 1;
8449 		   l_grp_upd_error_tbl(l_grp_error_count).instance_id := l_upd_party_tbl(1).instance_id;
8450 		   l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'PARTY';
8451 		   l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8452 		END IF;
8453 	     END IF;
8454 	  Exception
8455 	     when Process_next then
8456 		null;
8457 	  End;
8458        END LOOP;
8459     END IF; -- l_contact_party_tbl count check
8460    -- Call update_organization_unit to associate any org. assignments
8461    -- to the item instance
8462  IF (p_org_assignments_tbl.count > 0) THEN
8463     FOR tab_row IN p_org_assignments_tbl.FIRST .. p_org_assignments_tbl.LAST
8464     LOOP
8465       l_iface_error_text := NULL;
8466       IF p_org_assignments_tbl.EXISTS(tab_row) THEN
8467         IF ((p_org_assignments_tbl(tab_row).instance_ou_id IS NULL)
8468            OR
8469            (p_org_assignments_tbl(tab_row).instance_ou_id = FND_API.G_MISS_NUM))
8470         THEN
8471             csi_organization_unit_pvt.create_organization_unit
8472              (p_api_version       => p_api_version
8473              ,p_commit            => fnd_api.g_false
8474              ,p_init_msg_list     => p_init_msg_list
8475              ,p_validation_level  => p_validation_level
8476              ,p_org_unit_rec      => p_org_assignments_tbl(tab_row)
8477              ,p_txn_rec           => p_txn_rec
8478              ,x_return_status     => x_return_status
8479              ,x_msg_count         => x_msg_count
8480              ,x_msg_data          => x_msg_data
8481              ,p_lookup_tbl        => l_ou_lookup_tbl
8482              ,p_ou_count_rec      => l_ou_count_rec
8483              ,p_ou_id_tbl         => l_ou_id_tbl
8484             );
8485          ELSE
8486             csi_organization_unit_pvt.update_organization_unit
8487              (p_api_version       => p_api_version
8488              ,p_commit            => fnd_api.g_false
8489              ,p_init_msg_list     => p_init_msg_list
8490              ,p_validation_level  => p_validation_level
8491              ,p_org_unit_rec      => p_org_assignments_tbl(tab_row)
8492              ,p_txn_rec           => p_txn_rec
8493              ,x_return_status     => x_return_status
8494              ,x_msg_count         => x_msg_count
8495              ,x_msg_data          => x_msg_data
8496              ,p_lookup_tbl        => l_ou_lookup_tbl
8497              ,p_ou_count_rec      => l_ou_count_rec
8498              ,p_ou_id_tbl         => l_ou_id_tbl
8499             );
8500        END IF;
8501        IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
8502           csi_gen_utility_pvt.put_line( ' Error from CSI_ORGANIZATION_UNIT_PVT..');
8503           l_msg_index := 1;
8504           l_msg_count := x_msg_count;
8505              WHILE l_msg_count > 0 LOOP
8506                    x_msg_data := FND_MSG_PUB.GET
8507                           (  l_msg_index,
8508                              FND_API.G_FALSE    );
8509                    csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
8510               l_msg_index := l_msg_index + 1;
8511               l_msg_count := l_msg_count - 1;
8512              END LOOP;
8513              l_iface_error_text := substr(x_msg_data,1,2000);
8514              l_grp_error_count := l_grp_error_count + 1;
8515              l_grp_upd_error_tbl(l_grp_error_count).instance_id := p_org_assignments_tbl(tab_row).instance_id;
8516              l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'ORG_ASSIGN';
8517              l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8518              --  RAISE FND_API.G_EXC_ERROR;
8519         END IF;
8520       END IF;
8521     END LOOP;
8522   END IF;
8523 
8524    -- Call update_pricing_attribs to associate any pricing attributes
8525    -- to the item instance
8526   IF (p_pricing_attrib_tbl.count > 0) THEN
8527     FOR tab_row IN p_pricing_attrib_tbl.FIRST .. p_pricing_attrib_tbl.LAST
8528     LOOP
8529       l_iface_error_text := NULL;
8530       IF p_pricing_attrib_tbl.EXISTS(tab_row) THEN
8531         IF ((p_pricing_attrib_tbl(tab_row).pricing_attribute_id IS NULL)
8532           OR
8533            (p_pricing_attrib_tbl(tab_row).pricing_attribute_id = FND_API.G_MISS_NUM))
8534         THEN
8535                csi_pricing_attribs_pvt.create_pricing_attribs
8536                 ( p_api_version         => p_api_version
8537                  ,p_commit              => p_commit
8538                  ,p_init_msg_list       => p_init_msg_list
8539                  ,p_validation_level    => p_validation_level
8540                  ,p_pricing_attribs_rec => p_pricing_attrib_tbl(tab_row)
8541                  ,p_txn_rec             => p_txn_rec
8542                  ,x_return_status       => x_return_status
8543                  ,x_msg_count           => x_msg_count
8544                  ,x_msg_data            => x_msg_data
8545                  );
8546          ELSE
8547               csi_pricing_attribs_pvt.update_pricing_attribs
8548                ( p_api_version          => p_api_version
8549                 ,p_commit               => fnd_api.g_false
8550                 ,p_init_msg_list        => p_init_msg_list
8551                 ,p_validation_level     => p_validation_level
8552                 ,p_pricing_attribs_rec  => p_pricing_attrib_tbl(tab_row)
8553                 ,p_txn_rec              => p_txn_rec
8554                 ,x_return_status        => x_return_status
8555                 ,x_msg_count            => x_msg_count
8556                 ,x_msg_data             => x_msg_data
8557                );
8558          END IF;
8559 
8560          IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
8561            csi_gen_utility_pvt.put_line( ' Error from CSI_PRICING_ATTRIBS_PVT..');
8562            l_msg_index := 1;
8563            l_msg_count := x_msg_count;
8564                WHILE l_msg_count > 0 LOOP
8565                      x_msg_data := FND_MSG_PUB.GET
8566                               (  l_msg_index,
8567                                  FND_API.G_FALSE    );
8568                      csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
8569                      l_msg_index := l_msg_index + 1;
8570                      l_msg_count := l_msg_count - 1;
8571                END LOOP;
8572              l_iface_error_text := substr(x_msg_data,1,2000);
8573              l_grp_error_count := l_grp_error_count + 1;
8574              l_grp_upd_error_tbl(l_grp_error_count).instance_id := p_pricing_attrib_tbl(tab_row).instance_id;
8575              l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'PRICING';
8576              l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8577              --  RAISE FND_API.G_EXC_ERROR;
8578          END IF;
8579      END IF;
8580    END LOOP;
8581  END IF;
8582 
8583 -- Call create_extended_attribs to associate any extended attributes
8584 -- to the item instance
8585  IF (p_ext_attrib_values_tbl.count > 0) THEN
8586     FOR tab_row IN p_ext_attrib_values_tbl.FIRST .. p_ext_attrib_values_tbl.LAST
8587     LOOP
8588       l_iface_error_text := NULL;
8589       IF p_ext_attrib_values_tbl.EXISTS (tab_row) THEN
8590         IF ((p_ext_attrib_values_tbl(tab_row).attribute_value_id IS NULL)
8591           OR
8592            (p_ext_attrib_values_tbl(tab_row).attribute_value_id = FND_API.G_MISS_NUM))
8593          THEN
8594             csi_item_instance_pvt.create_extended_attrib_values
8595                 ( p_api_version         => p_api_version
8596                  ,p_commit              => fnd_api.g_false
8597                  ,p_init_msg_list       => p_init_msg_list
8598                  ,p_validation_level    => p_validation_level
8599                  ,p_ext_attrib_rec      => p_ext_attrib_values_tbl(tab_row)
8600                  ,p_txn_rec             => p_txn_rec
8601                  ,x_return_status       => x_return_status
8602                  ,x_msg_count           => x_msg_count
8603                  ,x_msg_data            => x_msg_data
8604                  ,p_ext_id_tbl          => l_ext_id_tbl
8605                  ,p_ext_count_rec       => l_ext_count_rec
8606                  ,p_ext_attr_tbl        => l_ext_attr_tbl
8607                  ,p_ext_cat_tbl         => l_ext_cat_tbl
8608                 );
8609         ELSE
8610            -- call the update extended attributes api
8611            csi_item_instance_pvt.update_extended_attrib_values
8612                ( p_api_version          => p_api_version
8613                 ,p_commit               => fnd_api.g_false
8614                 ,p_init_msg_list        => p_init_msg_list
8615                 ,p_validation_level     => p_validation_level
8616                 ,p_ext_attrib_rec       => p_ext_attrib_values_tbl(tab_row)
8617                 ,p_txn_rec              => p_txn_rec
8618                 ,x_return_status        => x_return_status
8619                 ,x_msg_count            => x_msg_count
8620                 ,x_msg_data             => x_msg_data
8621                );
8622         END IF;
8623         IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
8624             csi_gen_utility_pvt.put_line( ' Error from CSI_ITEM_INSTANCE_PVT.EXTENDED_ATTRIBS..');
8625             l_msg_index := 1;
8626             l_msg_count := x_msg_count;
8627               WHILE l_msg_count > 0 LOOP
8628                     x_msg_data := FND_MSG_PUB.GET
8629                               (  l_msg_index,
8630                                  FND_API.G_FALSE    );
8631                     csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
8632                     l_msg_index := l_msg_index + 1;
8633                     l_msg_count := l_msg_count - 1;
8634               END LOOP;
8635              l_iface_error_text := substr(x_msg_data,1,2000);
8636              l_grp_error_count := l_grp_error_count + 1;
8637              l_grp_upd_error_tbl(l_grp_error_count).instance_id := p_ext_attrib_values_tbl(tab_row).instance_id;
8638              l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'EXT_ATTRIBS';
8639              l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8640              --  RAISE FND_API.G_EXC_ERROR;
8641         END IF;
8642      END IF; -- exist if
8643    END LOOP; -- for loop
8644  END IF;
8645 
8646    -- Call create_asset_assignments to associate any assets associated
8647    -- to the item instance
8648   IF (p_asset_assignment_tbl.count > 0) THEN
8649     FOR tab_row IN p_asset_assignment_tbl.FIRST .. p_asset_assignment_tbl.LAST
8650     LOOP
8651       l_iface_error_text := NULL;
8652       IF p_asset_assignment_tbl.EXISTS(tab_row) THEN
8653         IF ((p_asset_assignment_tbl(tab_row).instance_asset_id IS NULL)
8654           OR
8655            (p_asset_assignment_tbl(tab_row).instance_asset_id = FND_API.G_MISS_NUM)) THEN
8656                csi_asset_pvt.create_instance_asset
8657                 (p_api_version          => p_api_version
8658                 ,p_commit               => fnd_api.g_false
8659                 ,p_init_msg_list        => p_init_msg_list
8660                 ,p_validation_level     => p_validation_level
8661                 ,p_instance_asset_rec   => p_asset_assignment_tbl(tab_row)
8662                 ,p_txn_rec              => p_txn_rec
8663                 ,x_return_status        => x_return_status
8664                 ,x_msg_count            => x_msg_count
8665                 ,x_msg_data             => x_msg_data
8666                 ,p_lookup_tbl           => l_asset_lookup_tbl
8667                 ,p_asset_count_rec      => l_asset_count_rec
8668                 ,p_asset_id_tbl         => l_asset_id_tbl
8669                 ,p_asset_loc_tbl        => l_asset_loc_tbl
8670                 );
8671         ELSE
8672            --call the update assets api
8673            csi_asset_pvt.update_instance_asset
8674                 (p_api_version          => p_api_version
8675                 ,p_commit               => fnd_api.g_false
8676                 ,p_init_msg_list        => p_init_msg_list
8677                 ,p_validation_level     => p_validation_level
8678                 ,p_instance_asset_rec   => p_asset_assignment_tbl(tab_row)
8679                 ,p_txn_rec              => p_txn_rec
8680                 ,x_return_status        => x_return_status
8681                 ,x_msg_count            => x_msg_count
8682                 ,x_msg_data             => x_msg_data
8683                 ,p_lookup_tbl           => l_asset_lookup_tbl
8684                 ,p_asset_count_rec      => l_asset_count_rec
8685                 ,p_asset_id_tbl         => l_asset_id_tbl
8686                 ,p_asset_loc_tbl        => l_asset_loc_tbl
8687                 );
8688         END IF;
8689         IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
8690           csi_gen_utility_pvt.put_line( ' Error from CSI_ASSET_PVT..');
8691           l_msg_index := 1;
8692           l_msg_count := x_msg_count;
8693               WHILE l_msg_count > 0 LOOP
8694                     x_msg_data := FND_MSG_PUB.GET
8695                               (  l_msg_index,
8696                                  FND_API.G_FALSE  );
8697                     csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
8698                     l_msg_index := l_msg_index + 1;
8699                     l_msg_count := l_msg_count - 1;
8700               END LOOP;
8701              l_iface_error_text := substr(x_msg_data,1,2000);
8702              l_grp_error_count := l_grp_error_count + 1;
8703              l_grp_upd_error_tbl(l_grp_error_count).instance_id := p_asset_assignment_tbl(tab_row).instance_id;
8704              l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'ASSET';
8705              l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8706              --  RAISE FND_API.G_EXC_ERROR;
8707         END IF;
8708       END IF;
8709     END LOOP;
8710   END IF;
8711   --
8712   -- Expire the Item Instances
8713   --
8714   IF l_exp_tbl.count > 0 THEN
8715      FOR k IN l_exp_tbl.FIRST .. l_exp_tbl.LAST LOOP -- 'k' will directly map to p_instance_tbl slot#
8716 	IF l_exp_tbl.EXISTS(k) THEN
8717 	   l_new_instance_rec := l_temp_instance_rec;
8718            Begin
8719 	      select active_end_date,object_version_number
8720 	      into l_new_instance_rec.active_end_date,l_new_instance_rec.object_version_number
8721 	      from CSI_ITEM_INSTANCES
8722 	      where instance_id = l_exp_tbl(k).instance_id;
8723            Exception
8724               when no_data_found then
8725 		 p_instance_tbl(k).processed_flag := 'E';
8726 		 l_iface_error_text := 'Instance ID '||to_char(l_exp_tbl(k).instance_id)||
8727                                        ' Does not exist in Installed Base';
8728 		 l_grp_error_count := l_grp_error_count + 1;
8729 		 l_grp_upd_error_tbl(l_grp_error_count).instance_id := l_exp_tbl(k).instance_id;
8730 		 l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'INSTANCE';
8731 		 l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8732            End;
8733 	   --
8734 	   IF l_new_instance_rec.active_end_date IS NOT NULL AND
8735 	      l_new_instance_rec.active_end_date < SYSDATE THEN
8736 	      Null; -- Instance would have got expired during parent instance expiry
8737 	   ELSE
8738 	      l_new_instance_rec.instance_id := l_exp_tbl(k).instance_id;
8739 	      l_new_instance_rec.active_end_date := l_exp_tbl(k).active_end_date;
8740 	      l_new_instance_rec.instance_status_id := l_exp_tbl(k).instance_status_id;
8741 	      --
8742 	      -- Call the update_item_instance private API to update the instances
8743 	      l_iface_error_text := NULL;
8744 	      csi_item_instance_pvt.update_item_instance
8745 			     (
8746 			      p_api_version        => p_api_version
8747 			     ,p_commit             => fnd_api.g_false
8748 			     ,p_init_msg_list      => p_init_msg_list
8749 			     ,p_validation_level   => p_validation_level
8750 			     ,p_instance_rec       => l_new_instance_rec
8751 			     ,p_txn_rec            => p_txn_rec
8752 			     ,x_instance_id_lst    => x_instance_id_lst
8753 			     ,x_return_status      => x_return_status
8754 			     ,x_msg_count          => x_msg_count
8755 			     ,x_msg_data           => x_msg_data
8756 			     ,p_item_attribute_tbl => l_item_attribute_tbl
8757 			     ,p_location_tbl       => l_location_tbl
8758 			     ,p_generic_id_tbl     => l_generic_id_tbl
8759 			     ,p_lookup_tbl         => l_lookup_tbl
8760 			     ,p_ins_count_rec      => l_ins_count_rec
8761 			     ,p_oks_txn_inst_tbl   => px_oks_txn_inst_tbl
8762 			     ,p_child_inst_tbl     => px_child_inst_tbl
8763 			    );
8764 
8765 	      IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
8766 		 csi_gen_utility_pvt.put_line( 'Error from UPDATE_ITEM_INSTANCE_PVT..');
8767 		 l_msg_index := 1;
8768 		 l_msg_count := x_msg_count;
8769 		 WHILE l_msg_count > 0 LOOP
8770 		     x_msg_data := FND_MSG_PUB.GET
8771 					   ( l_msg_index,
8772 					     FND_API.G_FALSE );
8773 		     csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
8774 		     l_msg_index := l_msg_index + 1;
8775 		     l_msg_count := l_msg_count - 1;
8776 		 END LOOP;
8777 		 --  RAISE FND_API.G_EXC_ERROR;
8778 		 p_instance_tbl(k).processed_flag := 'E';
8779 		 l_iface_error_text := substr(x_msg_data,1,2000);
8780 		 l_grp_error_count := l_grp_error_count + 1;
8781 		 l_grp_upd_error_tbl(l_grp_error_count).instance_id := l_new_instance_rec.instance_id;
8782 		 l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'INSTANCE';
8783 		 l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8784 	      ELSE
8785 		 p_instance_tbl(k).processed_flag := 'P';
8786 	      END IF;
8787 	   END IF;
8788 	END IF;
8789      END LOOP;
8790   END IF; -- l_exp_tbl.count check
8791   --
8792    -- Call the Version label API to associate a version label for the updated record
8793    IF (p_instance_tbl.count > 0) THEN
8794       FOR ins_row IN p_instance_tbl.FIRST .. p_instance_tbl.LAST
8795       LOOP
8796          l_iface_error_text := NULL;
8797          IF p_instance_tbl.EXISTS(ins_row) AND
8798             p_instance_tbl(ins_row).processed_flag = 'P' THEN
8799             -- Added by rtalluri for Bug 2256588 on 03/26/02
8800             -- Call the Version label API to associate a version label for the updated record
8801             OPEN  instance_csr (p_instance_tbl(ins_row).instance_id);
8802             FETCH instance_csr INTO l_instance_csr;
8803             CLOSE instance_csr;
8804             --
8805             IF p_instance_tbl(ins_row).active_end_date = FND_API.G_MISS_DATE
8806             THEN
8807                l_active_end_date := l_instance_csr.active_end_date;
8808             ELSE
8809               l_active_end_date := p_instance_tbl(ins_row).active_end_date;
8810             END IF;
8811             --
8812             IF  ((l_active_end_date > SYSDATE) OR
8813                 (l_active_end_date IS NULL))
8814             THEN
8815                IF    ((p_instance_tbl(ins_row).version_label IS NOT NULL) AND
8816                      (p_instance_tbl(ins_row).version_label <> FND_API.G_MISS_CHAR))
8817                THEN
8818                -- Check if version label already exists in csi_i_version_labels
8819                -- If exists then raise an error message
8820                   BEGIN
8821                      SELECT 'x'
8822                      INTO   l_dummy
8823                      FROM   csi_i_version_labels
8824                      WHERE  instance_id = p_instance_tbl(ins_row).instance_id
8825                      AND    version_label = p_instance_tbl(ins_row).version_label
8826                      AND    ROWNUM=1;
8827                      l_iface_error_text := substr(x_msg_data,1,2000);
8828                      l_grp_error_count := l_grp_error_count + 1;
8829                      l_grp_upd_error_tbl(l_grp_error_count).instance_id := p_instance_tbl(ins_row).instance_id;
8830                      l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'VERSION_LABEL';
8831                      l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8832                   EXCEPTION
8833                      WHEN NO_DATA_FOUND THEN
8834                         l_version_label_rec := l_temp_version_label_rec;
8835                         l_version_label_rec.instance_id           := p_instance_tbl(ins_row).instance_id;
8836                         l_version_label_rec.version_label         := p_instance_tbl(ins_row).version_label;
8837                         l_version_label_rec.description           := p_instance_tbl(ins_row).version_label_description;
8838                         l_version_label_rec.date_time_stamp       := SYSDATE;
8839                         -- calling create version label api
8840                         csi_item_instance_pvt.create_version_label
8841                           ( p_api_version         => p_api_version
8842                            ,p_commit              => p_commit
8843                            ,p_init_msg_list       => p_init_msg_list
8844                            ,p_validation_level    => p_validation_level
8845                            ,p_version_label_rec   => l_version_label_rec
8846                            ,p_txn_rec             => p_txn_rec
8847                            ,x_return_status       => x_return_status
8848                            ,x_msg_count           => x_msg_count
8849                            ,x_msg_data            => x_msg_data         );
8850 
8851                         IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
8852                            csi_gen_utility_pvt.put_line( ' Error from CSI_ITEM_INSTANCE_PVT.CREATE_VERSION_LABEL..');
8853                            l_msg_index := 1;
8854                            l_msg_count := x_msg_count;
8855                            WHILE l_msg_count > 0 LOOP
8856                                          x_msg_data := FND_MSG_PUB.GET
8857                                              (  l_msg_index,
8858                                                 FND_API.G_FALSE        );
8859                                          csi_gen_utility_pvt.put_line( ' MESSAGE DATA = '||x_msg_data);
8860                                          l_msg_index := l_msg_index + 1;
8861                                          l_msg_count := l_msg_count - 1;
8862                            END LOOP;
8863                            p_instance_tbl(ins_row).processed_flag := 'E';
8864                            l_iface_error_text := substr(x_msg_data,1,2000);
8865                            l_grp_error_count := l_grp_error_count + 1;
8866                            l_grp_upd_error_tbl(l_grp_error_count).instance_id := p_instance_tbl(ins_row).instance_id;
8867                            l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'VERSION_LABEL';
8868                            l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8869                           --  RAISE FND_API.G_EXC_ERROR;
8870                         ELSE
8871                            p_instance_tbl(ins_row).processed_flag := 'P';
8872                         END IF;
8873                      WHEN OTHERS THEN
8874                         p_instance_tbl(ins_row).processed_flag := 'E';
8875                         l_iface_error_text := substr(x_msg_data,1,2000);
8876                         l_grp_error_count := l_grp_error_count + 1;
8877                         l_grp_upd_error_tbl(l_grp_error_count).instance_id := p_instance_tbl(ins_row).instance_id;
8878                         l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'VERSION_LABEL';
8879                         l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8880                   END;
8881                END IF; -- p_instance_tbl(ins_row).version_label is not null
8882             END IF; -- l_active_end_date
8883             -- Calling Contracts
8884             -- Added on 02-OCT-01
8885             l_iface_error_text := NULL;
8886 	    --
8887 	    BEGIN
8888 	       SELECT cip.party_id
8889 	       INTO   l_party_id
8890 	       FROM   csi_i_parties cip
8891 	       WHERE  cip.instance_id = p_instance_tbl(ins_row).instance_id
8892 	       AND    cip.relationship_type_code = 'OWNER';
8893 	    EXCEPTION
8894 	       WHEN OTHERS THEN
8895 	          l_party_id := NULL;
8896 	    END;
8897             --
8898             csi_gen_utility_pvt.put_line('Checking for UPD...');
8899             IF p_instance_tbl(ins_row).quantity IS NOT NULL AND
8900                p_instance_tbl(ins_row).quantity <> FND_API.G_MISS_NUM AND
8901                p_instance_tbl(ins_row).quantity <> l_old_instance_tbl(ins_row).quantity THEN
8902                IF l_party_id IS NOT NULL AND
8903                   l_party_id <> l_internal_party_id THEN
8904                   IF p_txn_rec.transaction_type_id <> 7 THEN  -- Added for bug 3973706
8905 		     csi_item_instance_pvt.Call_to_Contracts
8906 		     ( p_transaction_type   =>   'UPD'
8907 		      ,p_instance_id        =>   p_instance_tbl(ins_row).instance_id
8908 		      ,p_new_instance_id    =>   NULL
8909 		      ,p_vld_org_id         =>   l_instance_csr.last_vld_organization_id
8910 		      ,p_quantity           =>   l_old_instance_tbl(ins_row).quantity
8911 		      ,p_party_account_id1  =>   NULL
8912 		      ,p_party_account_id2  =>   NULL
8913 		      ,p_transaction_date   =>   p_txn_rec.transaction_date -- l_transaction_date
8914 		      ,p_source_transaction_date   =>   p_txn_rec.source_transaction_date -- l_transaction_date
8915 		      ,p_grp_call_contracts =>   FND_API.G_TRUE
8916 		      ,p_order_line_id      =>   l_order_line_id
8917 		      ,p_oks_txn_inst_tbl   =>   px_oks_txn_inst_tbl
8918 		      ,x_return_status      =>   x_return_status
8919 		      ,x_msg_count          =>   x_msg_count
8920 		      ,x_msg_data           =>   x_msg_data
8921 		     );
8922 		     --
8923 		     IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
8924 		        l_msg_index := 1;
8925 		        l_msg_count := x_msg_count;
8926 		        WHILE l_msg_count > 0 LOOP
8927 		 	   x_msg_data := FND_MSG_PUB.GET
8928 				      (  l_msg_index,
8929 					 FND_API.G_FALSE
8930 				       );
8931 			   csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
8932 			   l_msg_index := l_msg_index + 1;
8933 			   l_msg_count := l_msg_count - 1;
8934 		        END LOOP;
8935 		        l_iface_error_text := substr(x_msg_data,1,2000);
8936 		        p_instance_tbl(ins_row).processed_flag := 'E';
8937 		        l_grp_error_count := l_grp_error_count + 1;
8938 		        l_grp_upd_error_tbl(l_grp_error_count).instance_id := p_instance_tbl(ins_row).instance_id;
8939 		        l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'INS_CONTRACTS';
8940 		        l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8941 		        -- RAISE FND_API.G_EXC_ERROR;
8942 		     ELSE
8943 		        p_instance_tbl(ins_row).processed_flag := 'P';
8944 		     END IF;
8945                   END IF;
8946                END IF;
8947             END IF; -- Qty Update check
8948             --
8949             IF p_instance_tbl(ins_row).install_date IS NOT NULL AND
8950                p_instance_tbl(ins_row).install_date <> FND_API.G_MISS_DATE AND
8951                p_instance_tbl(ins_row).install_date <>
8952                                nvl(l_old_instance_tbl(ins_row).install_date,fnd_api.g_miss_date) THEN
8953                IF l_party_id IS NOT NULL AND
8954                   l_party_id <> l_internal_party_id THEN
8955                   IF p_txn_rec.transaction_type_id <> 7 THEN  -- Added for bug 3973706
8956 		     csi_item_instance_pvt.Call_to_Contracts
8957 		     ( p_transaction_type   =>   'IDC'
8958 		      ,p_instance_id        =>   p_instance_tbl(ins_row).instance_id
8959 		      ,p_new_instance_id    =>   NULL
8960 		      ,p_vld_org_id         =>   l_instance_csr.last_vld_organization_id
8961 		      ,p_quantity           =>   l_instance_csr.quantity
8962 		      ,p_party_account_id1  =>   NULL
8963 		      ,p_party_account_id2  =>   NULL
8964 		      ,p_transaction_date   =>   p_txn_rec.transaction_date -- l_transaction_date
8965 		      ,p_source_transaction_date   =>   p_txn_rec.source_transaction_date -- l_transaction_date
8966 		      ,p_grp_call_contracts =>   FND_API.G_TRUE
8967 		      ,p_oks_txn_inst_tbl   =>   px_oks_txn_inst_tbl
8968 		      ,x_return_status      =>   x_return_status
8969 		      ,x_msg_count          =>   x_msg_count
8970 		      ,x_msg_data           =>   x_msg_data
8971 		     );
8972 		     --
8973 		     IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
8974 		        l_msg_index := 1;
8975 		        l_msg_count := x_msg_count;
8976 		        WHILE l_msg_count > 0 LOOP
8977 		 	   x_msg_data := FND_MSG_PUB.GET
8978 				      (  l_msg_index,
8979 					 FND_API.G_FALSE
8980 				       );
8981 			   csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
8982 			   l_msg_index := l_msg_index + 1;
8983 			   l_msg_count := l_msg_count - 1;
8984 		        END LOOP;
8985 		        l_iface_error_text := substr(x_msg_data,1,2000);
8986 		        p_instance_tbl(ins_row).processed_flag := 'E';
8987 		        l_grp_error_count := l_grp_error_count + 1;
8988 		        l_grp_upd_error_tbl(l_grp_error_count).instance_id := p_instance_tbl(ins_row).instance_id;
8989 		        l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'INS_CONTRACTS';
8990 		        l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
8991 		        -- RAISE FND_API.G_EXC_ERROR;
8992 		     ELSE
8993 		        p_instance_tbl(ins_row).processed_flag := 'P';
8994 		     END IF;
8995                   END IF;
8996                END IF;
8997             END IF; -- Install Date Update check
8998             --
8999             IF csi_item_instance_vld_pvt.termination_status
9000                ( p_instance_status_id => l_instance_csr.instance_status_id )
9001             THEN
9002                l_transaction_type := 'TRM';
9003                l_transaction_date := l_instance_csr.active_end_date;
9004             END IF;
9005             --
9006             IF l_transaction_type IS NULL
9007             THEN
9008                IF l_old_instance_tbl(ins_row).active_end_date <= SYSDATE
9009                   AND (p_instance_tbl(ins_row).active_end_date IS NULL
9010                   OR p_instance_tbl(ins_row).active_end_date > SYSDATE )
9011                THEN
9012 
9013                   IF l_party_id IS NOT NULL AND
9014                      l_internal_party_id IS NOT NULL AND
9015                      l_party_id <> l_internal_party_id
9016                   THEN
9017                      -- End addition by sk for fixing bug 2245976
9018                      l_transaction_type := 'NEW';
9019                      l_transaction_date := l_instance_csr.active_end_date;
9020                      --
9021 	             --  While un-expiring the instance, order Line ID will passed only if it is changing
9022                      --
9023                      IF l_instance_csr.location_type_code = 'IN_TRANSIT' THEN
9024                         IF NVL(l_old_instance_tbl(ins_row).in_transit_order_line_id,FND_API.G_MISS_NUM) <>
9025                            NVL(l_instance_csr.in_transit_order_line_id,FND_API.G_MISS_NUM) THEN
9026                            l_order_line_id := l_instance_csr.in_transit_order_line_id;
9027                         ELSE
9028                            l_order_line_id := NULL;
9029                         END IF;
9030                      ELSE
9031                         IF NVL(l_old_instance_tbl(ins_row).last_oe_order_line_id,FND_API.G_MISS_NUM) <>
9032                            NVL(l_instance_csr.last_oe_order_line_id,FND_API.G_MISS_NUM) THEN
9033                            l_order_line_id := l_instance_csr.last_oe_order_line_id;
9034                         ELSE
9035                            l_order_line_id := NULL;
9036                         END IF;
9037                      END IF;
9038                   ELSE
9039                      l_transaction_type := NULL;
9040                   END IF;
9041                END IF;
9042             END IF;
9043             --
9044             IF l_transaction_type IS NOT NULL
9045             THEN
9046                csi_item_instance_pvt.Call_to_Contracts
9047                 ( p_transaction_type   =>   l_transaction_type
9048                  ,p_instance_id        =>   p_instance_tbl(ins_row).instance_id
9049                  ,p_new_instance_id    =>   NULL
9050                  ,p_vld_org_id         =>   l_instance_csr.last_vld_organization_id
9051                  ,p_quantity           =>   NULL
9052                  ,p_party_account_id1  =>   NULL
9053                  ,p_party_account_id2  =>   NULL
9054                  ,p_transaction_date   =>   p_txn_rec.transaction_date -- l_transaction_date
9055                  ,p_source_transaction_date   =>   p_txn_rec.source_transaction_date -- l_transaction_date
9056                  ,p_grp_call_contracts =>   FND_API.G_TRUE
9057                  ,p_order_line_id      =>   l_order_line_id
9058 		 ,p_oks_txn_inst_tbl   =>   px_oks_txn_inst_tbl
9059                  ,x_return_status      =>   x_return_status
9060                  ,x_msg_count          =>   x_msg_count
9061                  ,x_msg_data           =>   x_msg_data
9062 		);
9063                --
9064                IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
9065                   l_msg_index := 1;
9066                   l_msg_count := x_msg_count;
9067                   WHILE l_msg_count > 0 LOOP
9068                       x_msg_data := FND_MSG_PUB.GET
9069                                   (  l_msg_index,
9070                                      FND_API.G_FALSE
9071                                    );
9072                      csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
9073                      l_msg_index := l_msg_index + 1;
9074                      l_msg_count := l_msg_count - 1;
9075                   END LOOP;
9076                   l_iface_error_text := substr(x_msg_data,1,2000);
9077                   p_instance_tbl(ins_row).processed_flag := 'E';
9078                   l_grp_error_count := l_grp_error_count + 1;
9079                   l_grp_upd_error_tbl(l_grp_error_count).instance_id := p_instance_tbl(ins_row).instance_id;
9080                   l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'INS_CONTRACTS';
9081                   l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
9082                   -- RAISE FND_API.G_EXC_ERROR;
9083                ELSE
9084                   p_instance_tbl(ins_row).processed_flag := 'P';
9085                END IF;
9086             END IF; --l_transaction_type is not null
9087          END IF; --p_instance_tbl.EXISTS(ins_row)
9088       END LOOP;
9089    END IF; --p_instance_tbl.count > 0
9090    --
9091    IF px_oks_txn_inst_tbl.count > 0 THEN
9092       IF l_debug_level > 1 THEN
9093 	 csi_gen_utility_pvt.dump_oks_txn_inst_tbl(px_oks_txn_inst_tbl);
9094 	 csi_gen_utility_pvt.put_line('Calling OKS Core API...');
9095       END IF;
9096       --
9097       IF p_txn_rec.transaction_type_id = 3 THEN
9098          l_batch_id := p_txn_rec.source_header_ref_id;
9099          l_batch_type := p_txn_rec.source_group_ref;
9100       ELSE
9101          l_batch_id := NULL;
9102          l_batch_type := NULL;
9103       END IF;
9104       --
9105       UPDATE CSI_TRANSACTIONS
9106       set contracts_invoked = 'Y'
9107       where transaction_id = p_txn_rec.transaction_id;
9108       --
9109       OKS_IBINT_PUB.IB_interface
9110 	 (
9111 	   P_Api_Version           =>  1.0,
9112 	   P_init_msg_list         =>  p_init_msg_list,
9113 	   P_single_txn_date_flag  =>  'N',
9114 	   P_Batch_type            =>  l_batch_type,
9115 	   P_Batch_ID              =>  l_batch_id,
9116 	   P_OKS_Txn_Inst_tbl      =>  px_oks_txn_inst_tbl,
9117 	   x_return_status         =>  x_return_status,
9118 	   x_msg_count             =>  x_msg_count,
9119 	   x_msg_data              =>  x_msg_data
9120 	);
9121 	 csi_gen_utility_pvt.put_line('Status returned from Oks_ibint_pub.IB_interface is :'||x_return_status);
9122       --
9123       IF x_return_status = 'W' THEN -- Warning from OKS
9124          -- Since OKS does not have the ability to pass the instance_id for the warning record(s),
9125          -- we are not populating the grp error tbl. We are still looping thru' the message stack
9126          -- just in case IB UI calls group API during Update.
9127          --
9128 	 l_msg_index := 1;
9129 	 l_msg_count := x_msg_count;
9130 	 WHILE l_msg_count > 0 LOOP
9131 	    x_msg_data := FND_MSG_PUB.GET
9132 		     (  l_msg_index,
9133 			FND_API.G_FALSE
9134 		      );
9135 	    csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
9136 	    l_msg_index := l_msg_index + 1;
9137 	    l_msg_count := l_msg_count - 1;
9138 	 END LOOP;
9139 	 FND_MSG_PUB.Count_And_Get
9140 	 ( p_count                 =>      x_msg_count,
9141 	   p_data                  =>      x_msg_data
9142 	 );
9143       ELSIF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
9144 	 csi_gen_utility_pvt.put_line('Error from Call_to_contracts...');
9145 	 l_msg_index := 1;
9146 	 l_msg_count := x_msg_count;
9147 	 WHILE l_msg_count > 0 LOOP
9148 	   x_msg_data := FND_MSG_PUB.GET
9149 		       (  l_msg_index,
9150 			  FND_API.G_FALSE
9151 			);
9152 	     csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
9153 	   l_msg_index := l_msg_index + 1;
9154 	   l_msg_count := l_msg_count - 1;
9155 	 END LOOP;
9156 	 l_iface_error_text := substr(x_msg_data,1,2000);
9157 	 --
9158          IF p_instance_tbl.count > 0 THEN
9159 	    FOR ins_row IN p_instance_tbl.FIRST .. p_instance_tbl.LAST LOOP
9160 	       IF p_instance_tbl.EXISTS(ins_row) THEN
9161 	          p_instance_tbl(ins_row).processed_flag := 'E';
9162                   l_grp_error_count := l_grp_error_count + 1;
9163                   l_grp_upd_error_tbl(l_grp_error_count).instance_id := p_instance_tbl(ins_row).instance_id;
9164                   l_grp_upd_error_tbl(l_grp_error_count).entity_name := 'INS_CONTRACTS';
9165                   l_grp_upd_error_tbl(l_grp_error_count).error_message := l_iface_error_text;
9166                END IF;
9167             END LOOP;
9168          END IF;
9169          --
9170 	 -- if OKS returns error then everthing gets rolledback
9171          p_grp_upd_error_tbl := l_grp_upd_error_tbl;
9172 	 RAISE FND_API.G_EXC_ERROR;
9173       END IF;
9174    END IF;
9175    --
9176    p_grp_upd_error_tbl := l_grp_upd_error_tbl;
9177    --
9178    -- End of API body
9179    -- Standard check of p_commit.
9180    IF FND_API.To_Boolean( p_commit ) THEN
9181       COMMIT WORK;
9182    END IF;
9183    /***** srramakr commented for bug # 3304439
9184    -- Check for the profile option and disable the trace
9185    IF (l_flag = 'Y') THEN
9186         dbms_session.set_sql_trace(FALSE);
9187    END IF;
9188    -- End disable trace
9189    ****/
9190    -- Standard call to get message count and if count is  get message info.
9191    FND_MSG_PUB.Count_And_Get
9192          (p_count        =>      x_msg_count ,
9193           p_data         =>      x_msg_data
9194          );
9195 EXCEPTION
9196     WHEN FND_API.G_EXC_ERROR THEN
9197        ROLLBACK TO update_item_instance;
9198        x_return_status := FND_API.G_RET_STS_ERROR ;
9199        FND_MSG_PUB.Count_And_Get
9200                 (       p_count                 =>      x_msg_count,
9201                 p_data                  =>      x_msg_data
9202                 );
9203 
9204     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
9205        ROLLBACK TO update_item_instance;
9206        x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
9207        FND_MSG_PUB.Count_And_Get
9208         (       p_count                 =>      x_msg_count,
9209                 p_data                  =>      x_msg_data
9210         );
9211 
9212     WHEN OTHERS THEN
9213        ROLLBACK TO update_item_instance;
9214        x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
9215        IF FND_MSG_PUB.Check_Msg_Level
9216           (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
9217        THEN
9218           FND_MSG_PUB.Add_Exc_Msg
9219                 (       G_PKG_NAME          ,
9220                         l_api_name
9221                 );
9222        END IF;
9223        FND_MSG_PUB.Count_And_Get
9224                 (       p_count                 =>      x_msg_count,
9225                         p_data                  =>      x_msg_data
9226                 );
9227 END update_item_instance;
9228 --
9229 /*----------------------------------------------------*/
9230 /* Procedure name: expire_item_instance               */
9231 /* Description :   procedure for                      */
9232 /*                 Expiring an Item Instance          */
9233 /*----------------------------------------------------*/
9234 
9235 PROCEDURE expire_item_instance
9236  (
9237       p_api_version         IN      NUMBER
9238      ,p_commit              IN      VARCHAR2
9239      ,p_init_msg_list       IN      VARCHAR2
9240      ,p_validation_level    IN      NUMBER
9241      ,p_instance_tbl        IN      csi_datastructures_pub.instance_tbl
9242      ,p_expire_children     IN      VARCHAR2
9243      ,p_txn_rec             IN OUT NOCOPY  csi_datastructures_pub.transaction_rec
9244      ,x_instance_id_lst     OUT NOCOPY     csi_datastructures_pub.id_tbl
9245      ,p_grp_error_tbl       OUT NOCOPY     csi_datastructures_pub.grp_error_tbl
9246      ,x_return_status       OUT NOCOPY     VARCHAR2
9247      ,x_msg_count           OUT NOCOPY     NUMBER
9248      ,x_msg_data            OUT NOCOPY     VARCHAR2
9249  )
9250 IS
9251      l_api_name              CONSTANT VARCHAR2(30)     := 'EXPIRE_ITEM_INSTANCE';
9252      l_api_version           CONSTANT NUMBER                   := 1.0;
9253      l_debug_level           NUMBER;
9254      l_flag                  VARCHAR2(1);
9255      l_msg_index             NUMBER;
9256      l_msg_count             NUMBER;
9257      l_iface_error_text      VARCHAR2(2000);
9258      l_grp_error_tbl         csi_datastructures_pub.grp_error_tbl;
9259      l_instance_rec          csi_datastructures_pub.instance_rec;
9260      px_oks_txn_inst_tbl     OKS_IBINT_PUB.TXN_INSTANCE_TBL;
9261      l_batch_type            VARCHAR2(50);
9262      l_batch_id              NUMBER;
9263      --
9264 BEGIN
9265    -- Standard Start of API savepoint
9266    SAVEPOINT  expire_item_instance;
9267 
9268    -- Check for freeze_flag in csi_install_parameters is set to 'Y'
9269 
9270    csi_utility_grp.check_ib_active;
9271 
9272    -- Standard call to check for call compatibility.
9273    IF NOT FND_API.Compatible_API_Call (l_api_version,
9274 				       p_api_version,
9275 				       l_api_name   ,
9276 				       G_PKG_NAME   )
9277    THEN
9278       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9279    END IF;
9280 
9281    -- Initialize message list if p_init_msg_list is set to TRUE.
9282    IF FND_API.to_Boolean( p_init_msg_list ) THEN
9283       FND_MSG_PUB.initialize;
9284    END IF;
9285    --  Initialize API return status to success
9286    x_return_status := FND_API.G_RET_STS_SUCCESS;
9287 
9288    -- Check the profile option debug_level for debug message reporting
9289    l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
9290 
9291    -- If debug_level = 1 then dump the procedure name
9292    IF (l_debug_level > 0) THEN
9293        csi_gen_utility_pvt.put_line( 'expire_item_instance');
9294    END IF;
9295    --
9296    IF (p_instance_tbl.count > 0) THEN
9297        FOR ins_row IN p_instance_tbl.FIRST .. p_instance_tbl.LAST
9298        LOOP
9299 	  IF p_instance_tbl.EXISTS(ins_row) THEN
9300 	     -- If the debug level = 2 then dump all the parameters values.
9301 	     IF (l_debug_level > 1) THEN
9302 		 csi_gen_utility_pvt.put_line( 'expire_item_instance:'  ||
9303 						p_api_version      ||'-'||
9304 						p_commit           ||'-'||
9305 						p_init_msg_list    ||'-'||
9306 						p_validation_level      );
9307 		   -- Dump the records in the log file
9308 		   csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
9309 		   csi_gen_utility_pvt.dump_instance_rec(p_instance_tbl(ins_row));
9310 	      END IF;
9311 	      /***** srramakr commented for bug # 3304439
9312 	      -- Check for the profile option and enable trace
9313 	      l_flag:=CSI_GEN_UTILITY_PVT.enable_trace(l_trace_flag => l_flag);
9314 	      -- End enable trace
9315 	      ****/
9316 	      -- Start API body
9317 	      l_iface_error_text := NULL;
9318 	      l_grp_error_tbl(ins_row).group_inst_num := ins_row;
9319 	      l_grp_error_tbl(ins_row).process_status := 'S';
9320 	      l_grp_error_tbl(ins_row).error_message := NULL;
9321 	      l_instance_rec := p_instance_tbl(ins_row);
9322 	      l_instance_rec.grp_call_contracts := FND_API.G_TRUE;
9323 	      csi_item_instance_pvt.expire_item_instance
9324 		      (
9325 		       p_api_version      => p_api_version
9326 		      ,p_commit           => fnd_api.g_false
9327 		      ,p_init_msg_list    => p_init_msg_list
9328 		      ,p_validation_level => p_validation_level
9329 		      ,p_instance_rec     => l_instance_rec
9330 		      ,p_expire_children  => p_expire_children
9331 		      ,p_txn_rec          => p_txn_rec
9332 		      ,x_instance_id_lst  => x_instance_id_lst
9333 		      ,p_oks_txn_inst_tbl => px_oks_txn_inst_tbl
9334 		      ,x_return_status    => x_return_status
9335 		      ,x_msg_count        => x_msg_count
9336 		      ,x_msg_data         => x_msg_data
9337 		      );
9338 
9339 		   IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
9340 		     l_msg_index := 1;
9341 		     l_msg_count := x_msg_count;
9342 		     WHILE l_msg_count > 0 LOOP
9343 		     x_msg_data := FND_MSG_PUB.GET
9344 					      (
9345 						l_msg_index,
9346 						FND_API.G_FALSE
9347 					      );
9348 		       csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
9349 		       l_msg_index := l_msg_index + 1;
9350 		       l_msg_count := l_msg_count - 1;
9351 		     END LOOP;
9352 		     --
9353 		     l_iface_error_text := substr(x_msg_data,1,2000);
9354 		     l_grp_error_tbl(ins_row).process_status := 'E';
9355 		     l_grp_error_tbl(ins_row).error_message := l_iface_error_text;
9356 		   END IF;
9357 		   --
9358 	    END IF;
9359 	 END LOOP;
9360       END IF;
9361       --
9362       IF px_oks_txn_inst_tbl.count > 0 THEN
9363 	 IF l_debug_level > 1 THEN
9364 	    csi_gen_utility_pvt.dump_oks_txn_inst_tbl(px_oks_txn_inst_tbl);
9365 	    csi_gen_utility_pvt.put_line('Calling OKS Core API...');
9366 	 END IF;
9367 	 --
9368 	 IF p_txn_rec.transaction_type_id = 3 THEN
9369 	    l_batch_id := p_txn_rec.source_header_ref_id;
9370 	    l_batch_type := p_txn_rec.source_group_ref;
9371 	 ELSE
9372 	    l_batch_id := NULL;
9373 	    l_batch_type := NULL;
9374 	 END IF;
9375 	 --
9376          UPDATE CSI_TRANSACTIONS
9377          set contracts_invoked = 'Y'
9378          where transaction_id = p_txn_rec.transaction_id;
9379          --
9380 	 OKS_IBINT_PUB.IB_interface
9381 	    (
9382 	      P_Api_Version           =>  1.0,
9383 	      P_init_msg_list         =>  p_init_msg_list,
9384 	      P_single_txn_date_flag  =>  'N',
9385 	      P_Batch_type            =>  l_batch_type,
9386 	      P_Batch_ID              =>  l_batch_id,
9387 	      P_OKS_Txn_Inst_tbl      =>  px_oks_txn_inst_tbl,
9388 	      x_return_status         =>  x_return_status,
9389 	      x_msg_count             =>  x_msg_count,
9390 	      x_msg_data              =>  x_msg_data
9391 	   );
9392 	 csi_gen_utility_pvt.put_line('Status returned from Oks_ibint_pub.IB_interface is :'||x_return_status);
9393 	 --
9394 	 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS)
9395 	 THEN
9396 	    csi_gen_utility_pvt.put_line('Error from Call_to_contracts...');
9397 	    l_msg_index := 1;
9398 	    l_msg_count := x_msg_count;
9399 	    WHILE l_msg_count > 0 LOOP
9400 	      x_msg_data := FND_MSG_PUB.GET
9401 			  (  l_msg_index,
9402 			     FND_API.G_FALSE
9403 			   );
9404 		csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
9405 	      l_msg_index := l_msg_index + 1;
9406 	      l_msg_count := l_msg_count - 1;
9407 	    END LOOP;
9408 	    l_iface_error_text := substr(x_msg_data,1,2000);
9409 	    --
9410 	    FOR ins_row IN p_instance_tbl.FIRST .. p_instance_tbl.LAST LOOP
9411 	       IF p_instance_tbl.EXISTS(ins_row) THEN
9412 		  l_grp_error_tbl(ins_row).process_status := 'E';
9413 		  l_grp_error_tbl(ins_row).error_message := l_iface_error_text;
9414 	       END IF;
9415 	    END LOOP;
9416 	    -- if OKS returns error then everthing gets rolledback
9417 	    p_grp_error_tbl := l_grp_error_tbl;
9418 	    RAISE FND_API.G_EXC_ERROR;
9419 	 END IF;
9420       END IF;
9421       --
9422       p_grp_error_tbl := l_grp_error_tbl;
9423       -- End of API body
9424       -- Standard check of p_commit.
9425       IF FND_API.To_Boolean( p_commit ) THEN
9426          COMMIT WORK;
9427       END IF;
9428 
9429       /***** srramakr commented for bug # 3304439
9430       -- Check for the profile option and disable the trace
9431       IF (l_flag = 'Y') THEN
9432           dbms_session.set_sql_trace(FALSE);
9433       END IF;
9434       -- End disable trace
9435       ****/
9436       -- Standard call to get message count and if count is  get message info.
9437       FND_MSG_PUB.Count_And_Get
9438                 (p_count        =>      x_msg_count ,
9439                  p_data         =>      x_msg_data   );
9440 
9441 EXCEPTION
9442         WHEN FND_API.G_EXC_ERROR THEN
9443                 ROLLBACK TO expire_item_instance;
9444                 x_return_status := FND_API.G_RET_STS_ERROR ;
9445                 FND_MSG_PUB.Count_And_Get
9446                 (       p_count                 =>      x_msg_count,
9447                         p_data                  =>      x_msg_data
9448                 );
9449 
9450         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
9451                 ROLLBACK TO expire_item_instance;
9452                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
9453                 FND_MSG_PUB.Count_And_Get
9454                 (  p_count     =>      x_msg_count,
9455                    p_data      =>      x_msg_data  );
9456 
9457         WHEN OTHERS THEN
9458                 ROLLBACK TO expire_item_instance;
9459                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
9460                 IF FND_MSG_PUB.Check_Msg_Level
9461                      (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
9462                 THEN
9463                    FND_MSG_PUB.Add_Exc_Msg
9464                     ( G_PKG_NAME, l_api_name );
9465                 END IF;
9466                 FND_MSG_PUB.Count_And_Get
9467                 (  p_count    =>      x_msg_count,
9468                    p_data     =>      x_msg_data  );
9469 
9470 END  expire_item_instance;
9471 --
9472 /**********************************************************
9473 ** This Procedure gets all the parents traversing up     **
9474 ** for a given child(subject) with the relationship type **
9475 ** COMPONENT-OF. It stops traversing when the top-most   **
9476 ** is reached or the relationship is broken.             **
9477 ***********************************************************/
9478 
9479 PROCEDURE Get_All_Parents
9480   (
9481     p_api_version      IN  NUMBER,
9482     p_commit           IN  VARCHAR2,
9483     p_init_msg_list    IN  VARCHAR2,
9484     p_validation_level IN  NUMBER,
9485     p_subject_id       IN  NUMBER,
9486     x_rel_tbl          OUT NOCOPY csi_datastructures_pub.ii_relationship_tbl,
9487     x_return_status    OUT NOCOPY VARCHAR2,
9488     x_msg_count        OUT NOCOPY NUMBER,
9489     x_msg_data         OUT NOCOPY VARCHAR2
9490   ) IS
9491    l_api_version       CONSTANT NUMBER := 1.0;
9492    l_api_name          CONSTANT VARCHAR2(30) := 'GET_ALL_PARENTS';
9493    l_ctr               NUMBER := 0;
9494    l_object_id         NUMBER;
9495    l_subject_id        NUMBER;
9496    l_exists            VARCHAR2(1);
9497    l_relationship_id   NUMBER;
9498    l_rel_type_code     VARCHAR2(30) := 'COMPONENT-OF';
9499 BEGIN
9500    -- Check for freeze_flag in csi_install_parameters is set to 'Y'
9501    csi_utility_grp.check_ib_active;
9502    -- Standard call to check for call compatibility.
9503    IF NOT FND_API.Compatible_API_Call (l_api_version,
9504 				       p_api_version,
9505 				       l_api_name,
9506 				       G_PKG_NAME
9507 				     )
9508    THEN
9509       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
9510    END IF;
9511    -- Initialize message list if p_init_msg_list is set to TRUE.
9512    IF FND_API.to_Boolean( p_init_msg_list ) THEN
9513       FND_MSG_PUB.initialize;
9514    END IF;
9515    --  Initialize API return status to success
9516    x_return_status := FND_API.G_RET_STS_SUCCESS;
9517    --
9518    IF p_subject_id IS NULL OR p_subject_id = FND_API.G_MISS_NUM THEN
9519       fnd_message.set_name('CSI', 'CSI_INVALID_PARAMETERS');
9520       fnd_msg_pub.add;
9521       x_return_status := fnd_api.g_ret_sts_error;
9522       RAISE fnd_api.g_exc_error;
9523    END IF;
9524    --
9525    l_subject_id := p_subject_id;
9526    --
9527    csi_gen_utility_pvt.put_line('Given Subject ID is '||to_char(l_subject_id));
9528    --
9529    LOOP
9530       Begin
9531 	 select relationship_id,object_id
9532 	 into l_relationship_id,l_object_id
9533 	 from CSI_II_RELATIONSHIPS
9534 	 where subject_id = l_subject_id
9535 	 and   relationship_type_code = l_rel_type_code
9536 	 and   ((active_end_date is null) or (active_end_date > sysdate));
9537 	 --
9538 	 l_ctr := l_ctr + 1;
9539 	 x_rel_tbl(l_ctr).subject_id := l_subject_id;
9540 	 x_rel_tbl(l_ctr).object_id := l_object_id;
9541 	 x_rel_tbl(l_ctr).relationship_id := l_relationship_id;
9542 	 x_rel_tbl(l_ctr).relationship_type_code := l_rel_type_code;
9543 	 --
9544          -- Just in case a cycle exists because of bad data the following check will break
9545          -- the loop.
9546 	 l_exists := 'N';
9547 	 IF x_rel_tbl.count > 0 THEN
9548 	    FOR j in x_rel_tbl.FIRST .. x_rel_tbl.LAST Loop
9549 	       IF l_object_id = x_rel_tbl(j).subject_id THEN
9550 		  l_exists := 'Y';
9551 		  exit;
9552 	       END IF;
9553 	    End Loop;
9554 	 END IF;
9555 	 --
9556 	 IF l_exists = 'Y' THEN
9557 	    exit;
9558 	 END IF;
9559 	 --
9560 	 l_subject_id := l_object_id;
9561       Exception
9562 	 when no_data_found then
9563 	    exit;
9564       End;
9565    END LOOP;
9566    -- End of API body
9567   -- Standard call to get message count and if count is  get message info.
9568   FND_MSG_PUB.Count_And_Get
9569        (p_count        =>      x_msg_count ,
9570 	p_data         =>      x_msg_data
9571        );
9572 EXCEPTION
9573    WHEN FND_API.G_EXC_ERROR THEN
9574       x_return_status := FND_API.G_RET_STS_ERROR ;
9575       FND_MSG_PUB.Count_And_Get
9576 	  ( p_count                 =>      x_msg_count,
9577 	    p_data                  =>      x_msg_data
9578 	  );
9579    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
9580       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
9581       FND_MSG_PUB.Count_And_Get
9582 	  ( p_count                 =>      x_msg_count,
9583 	    p_data                  =>      x_msg_data
9584 	  );
9585 
9586    WHEN OTHERS THEN
9587       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
9588       csi_gen_utility_pvt.put_line('Others Error   '||substr(sqlerrm,1,250));
9589       IF FND_MSG_PUB.Check_Msg_Level
9590 		(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
9591       THEN
9592 	 FND_MSG_PUB.Add_Exc_Msg
9593 	   ( G_PKG_NAME          ,
9594 	     l_api_name
9595 	   );
9596       END IF;
9597       FND_MSG_PUB.Count_And_Get
9598 	 ( p_count                 =>      x_msg_count,
9599 	   p_data                  =>      x_msg_data
9600 	 );
9601 END Get_All_Parents;
9602 --
9603 PROCEDURE Get_And_Build_Instance_Details
9604    (p_instance_id            IN         NUMBER
9605    ,p_txn_rec                IN OUT NOCOPY csi_datastructures_pub.transaction_rec
9606    ,p_instance_rec           OUT NOCOPY csi_datastructures_pub.instance_rec
9607    ,p_party_tbl              OUT NOCOPY csi_datastructures_pub.party_tbl
9608    ,p_party_account_tbl      OUT NOCOPY csi_datastructures_pub.party_account_tbl
9609    ,p_org_units_tbl          OUT NOCOPY csi_datastructures_pub.organization_units_tbl
9610    ,p_pricing_attribs_tbl    OUT NOCOPY csi_datastructures_pub.pricing_attribs_tbl
9611    ,p_ext_attrib_values_tbl  OUT NOCOPY csi_datastructures_pub.extend_attrib_values_tbl
9612    ,p_instance_asset_tbl     OUT NOCOPY csi_datastructures_pub.instance_asset_tbl
9613    ,x_return_status          OUT NOCOPY VARCHAR2
9614    ,x_msg_count              OUT NOCOPY NUMBER
9615    ,x_msg_data               OUT NOCOPY VARCHAR2
9616   ) IS
9617    --
9618    l_api_name           VARCHAR2(30) := 'Get_And_Build_Instance_Details';
9619    l_instance_rec       csi_datastructures_pub.instance_header_rec;
9620    p_party_header_tbl   CSI_DATASTRUCTURES_PUB.PARTY_HEADER_TBL;
9621    p_account_header_tbl CSI_DATASTRUCTURES_PUB.PARTY_ACCOUNT_HEADER_TBL;
9622    p_org_header_tbl     CSI_DATASTRUCTURES_PUB.ORG_UNITS_HEADER_TBL;
9623    p_pricing_attrib_tbl CSI_DATASTRUCTURES_PUB.PRICING_ATTRIBS_TBL;
9624    p_ext_attrib_tbl     CSI_DATASTRUCTURES_PUB.EXTEND_ATTRIB_VALUES_TBL;
9625    p_ext_attrib_def_tbl CSI_DATASTRUCTURES_PUB.EXTEND_ATTRIB_TBL;
9626    p_asset_header_tbl   CSI_DATASTRUCTURES_PUB.INSTANCE_ASSET_HEADER_TBL;
9627    l_party_tbl          csi_datastructures_pub.party_tbl;
9628    --
9629    l_ctr                NUMBER;
9630    l_found              BOOLEAN;
9631    l_msg_index          NUMBER;
9632    l_msg_count          NUMBER;
9633    --
9634 BEGIN
9635    x_return_status := FND_API.G_RET_STS_SUCCESS;
9636    IF p_instance_id IS NULL OR
9637       p_instance_id = FND_API.G_MISS_NUM THEN
9638       RETURN;
9639    END IF;
9640    --
9641    SAVEPOINT Get_And_Build_Instance_Details;
9642    --
9643    l_instance_rec.instance_id := p_instance_id;
9644    csi_item_instance_pub.get_item_instance_details
9645     (
9646        p_api_version           => 1.0,
9647        p_commit                => fnd_api.g_false,
9648        p_init_msg_list         => fnd_api.g_true,
9649        p_validation_level      => fnd_api.g_valid_level_full,
9650        p_instance_rec          => l_instance_rec,
9651        p_get_parties           => fnd_api.g_true,
9652        p_party_header_tbl      => p_party_header_tbl,
9653        p_get_accounts          => fnd_api.g_true,
9654        p_account_header_tbl    => p_account_header_tbl,
9655        p_get_org_assignments   => fnd_api.g_true,
9656        p_org_header_tbl        => p_org_header_tbl,
9657        p_get_pricing_attribs   => fnd_api.g_false, -- No need to get for children
9658        p_pricing_attrib_tbl    => p_pricing_attrib_tbl,
9659        p_get_ext_attribs       => fnd_api.g_false, -- No need to get for children
9660        p_ext_attrib_tbl        => p_ext_attrib_tbl,
9661        p_ext_attrib_def_tbl    => p_ext_attrib_def_tbl,
9662        p_get_asset_assignments => fnd_api.g_false, -- No need to get for children
9663        p_asset_header_tbl      => p_asset_header_tbl,
9664        p_resolve_id_columns    => fnd_api.g_false,
9665        p_time_stamp            => fnd_api.g_miss_date,
9666        x_return_status         => x_return_status,
9667        x_msg_count             => x_msg_count,
9668        x_msg_data              => x_msg_data
9669    );
9670    --
9671    IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
9672       l_msg_index := 1;
9673       l_msg_count := x_msg_count;
9674       WHILE l_msg_count > 0 LOOP
9675 	       x_msg_data := FND_MSG_PUB.GET
9676 			   (  l_msg_index,
9677 			      FND_API.G_FALSE );
9678 	   l_msg_index := l_msg_index + 1;
9679 	   l_msg_count := l_msg_count - 1;
9680       END LOOP;
9681       csi_gen_utility_pvt.put_line('Error from Get Instance Details...');
9682       RAISE FND_API.G_EXC_ERROR;
9683    END IF;
9684    --
9685    p_instance_rec.instance_id             := l_instance_rec.instance_id;
9686    p_instance_rec.instance_number         := l_instance_rec.instance_number;
9687    p_instance_rec.external_reference      := l_instance_rec.external_reference;
9688    p_instance_rec.inventory_item_id       := l_instance_rec.inventory_item_id;
9689    p_instance_rec.vld_organization_id     := l_instance_rec.vld_organization_id;
9690    p_instance_rec.inventory_revision      := l_instance_rec.inventory_revision;
9691    p_instance_rec.inv_master_organization_id      := l_instance_rec.inv_master_organization_id;
9692    p_instance_rec.serial_number           := l_instance_rec.serial_number;
9693    p_instance_rec.mfg_serial_number_flag  := l_instance_rec.mfg_serial_number_flag;
9694    p_instance_rec.lot_number              := l_instance_rec.lot_number;
9695    p_instance_rec.quantity                := l_instance_rec.quantity;
9696    p_instance_rec.unit_of_measure         := l_instance_rec.unit_of_measure;
9697    p_instance_rec.accounting_class_code   := l_instance_rec.accounting_class_code;
9698    p_instance_rec.instance_condition_id   := l_instance_rec.instance_condition_id;
9699    p_instance_rec.instance_status_id      := l_instance_rec.instance_status_id;
9700    p_instance_rec.customer_view_flag      := l_instance_rec.customer_view_flag;
9701    p_instance_rec.merchant_view_flag      := l_instance_rec.merchant_view_flag;
9702    p_instance_rec.sellable_flag           := l_instance_rec.sellable_flag;
9703    p_instance_rec.system_id               := l_instance_rec.system_id;
9704    p_instance_rec.instance_type_code      := l_instance_rec.instance_type_code;
9705    p_instance_rec.active_start_date       := l_instance_rec.active_start_date;
9706    p_instance_rec.active_end_date         := l_instance_rec.active_end_date;
9707    p_instance_rec.location_type_code      := l_instance_rec.location_type_code;
9708    p_instance_rec.location_id             := l_instance_rec.location_id;
9709    p_instance_rec.inv_organization_id     := l_instance_rec.inv_organization_id;
9710    p_instance_rec.inv_subinventory_name   := l_instance_rec.inv_subinventory_name;
9711    p_instance_rec.inv_locator_id          := l_instance_rec.inv_locator_id;
9712    p_instance_rec.pa_project_id           := l_instance_rec.pa_project_id;
9713    p_instance_rec.pa_project_task_id      := l_instance_rec.pa_project_task_id;
9714    p_instance_rec.in_transit_order_line_id        := l_instance_rec.in_transit_order_line_id;
9715    p_instance_rec.wip_job_id              := l_instance_rec.wip_job_id;
9716    p_instance_rec.po_order_line_id        := l_instance_rec.po_order_line_id;
9717    p_instance_rec.last_oe_order_line_id   := l_instance_rec.last_oe_order_line_id;
9718    p_instance_rec.last_oe_rma_line_id     := l_instance_rec.last_oe_rma_line_id;
9719    p_instance_rec.last_po_po_line_id      := l_instance_rec.last_po_po_line_id;
9720    p_instance_rec.last_oe_po_number       := l_instance_rec.last_oe_po_number;
9721    p_instance_rec.last_wip_job_id         := l_instance_rec.last_wip_job_id;
9722    p_instance_rec.last_pa_project_id      := l_instance_rec.last_pa_project_id;
9723    p_instance_rec.last_pa_task_id         := l_instance_rec.last_pa_task_id;
9724    p_instance_rec.last_oe_agreement_id    := l_instance_rec.last_oe_agreement_id;
9725    p_instance_rec.install_date            := l_instance_rec.install_date;
9726    p_instance_rec.manually_created_flag   := l_instance_rec.manually_created_flag;
9727    p_instance_rec.return_by_date          := l_instance_rec.return_by_date;
9728    p_instance_rec.actual_return_date      := l_instance_rec.actual_return_date;
9729    p_instance_rec.creation_complete_flag  := l_instance_rec.creation_complete_flag;
9730    p_instance_rec.completeness_flag       := l_instance_rec.completeness_flag;
9731    p_instance_rec.context         := l_instance_rec.context;
9732    p_instance_rec.attribute1      := l_instance_rec.attribute1;
9733    p_instance_rec.attribute2      := l_instance_rec.attribute2;
9734    p_instance_rec.attribute3      := l_instance_rec.attribute3;
9735    p_instance_rec.attribute4      := l_instance_rec.attribute4;
9736    p_instance_rec.attribute5      := l_instance_rec.attribute5;
9737    p_instance_rec.attribute6      := l_instance_rec.attribute6;
9738    p_instance_rec.attribute7      := l_instance_rec.attribute7;
9739    p_instance_rec.attribute8      := l_instance_rec.attribute8;
9740    p_instance_rec.attribute9      := l_instance_rec.attribute9;
9741    p_instance_rec.attribute10     := l_instance_rec.attribute10;
9742    p_instance_rec.attribute11     := l_instance_rec.attribute11;
9743    p_instance_rec.attribute12     := l_instance_rec.attribute12;
9744    p_instance_rec.attribute13     := l_instance_rec.attribute13;
9745    p_instance_rec.attribute14     := l_instance_rec.attribute14;
9746    p_instance_rec.attribute15     := l_instance_rec.attribute15;
9747    p_instance_rec.object_version_number   := l_instance_rec.object_version_number;
9748    p_instance_rec.last_txn_line_detail_id         := l_instance_rec.last_txn_line_detail_id;
9749    p_instance_rec.install_location_type_code      := l_instance_rec.install_location_type_code;
9750    p_instance_rec.install_location_id     := l_instance_rec.install_location_id;
9751    p_instance_rec.instance_usage_code     := l_instance_rec.instance_usage_code;
9752    p_instance_rec.config_inst_hdr_id      := l_instance_rec.config_inst_hdr_id;
9753    p_instance_rec.config_inst_rev_num     := l_instance_rec.config_inst_rev_num;
9754    p_instance_rec.config_inst_item_id     := l_instance_rec.config_inst_item_id;
9755    p_instance_rec.config_valid_status     := l_instance_rec.config_valid_status;
9756    p_instance_rec.instance_description    := l_instance_rec.instance_description;
9757 
9758    p_instance_rec.network_asset_flag        := l_instance_rec.network_asset_flag;
9759    p_instance_rec.maintainable_flag         := l_instance_rec.maintainable_flag;
9760    p_instance_rec.asset_criticality_code    := l_instance_rec.asset_criticality_code;
9761    p_instance_rec.category_id               := l_instance_rec.category_id ;
9762    p_instance_rec.equipment_gen_object_id   := l_instance_rec.equipment_gen_object_id ;
9763    p_instance_rec.instantiation_flag        := l_instance_rec.instantiation_flag;
9764    p_instance_rec.operational_log_flag      := l_instance_rec.operational_log_flag ;
9765    p_instance_rec.supplier_warranty_exp_date:= l_instance_rec.supplier_warranty_exp_date ;
9766    p_instance_rec.attribute16               := l_instance_rec.attribute16     ;
9767    p_instance_rec.attribute17               := l_instance_rec.attribute17     ;
9768    p_instance_rec.attribute18               := l_instance_rec.attribute18     ;
9769    p_instance_rec.attribute19               := l_instance_rec.attribute19     ;
9770    p_instance_rec.attribute20               := l_instance_rec.attribute20     ;
9771    p_instance_rec.attribute21               := l_instance_rec.attribute21     ;
9772    p_instance_rec.attribute22               := l_instance_rec.attribute22     ;
9773    p_instance_rec.attribute23               := l_instance_rec.attribute23     ;
9774    p_instance_rec.attribute24               := l_instance_rec.attribute24     ;
9775    p_instance_rec.attribute25               := l_instance_rec.attribute25     ;
9776    p_instance_rec.attribute26               := l_instance_rec.attribute26     ;
9777    p_instance_rec.attribute27               := l_instance_rec.attribute27     ;
9778    p_instance_rec.attribute28               := l_instance_rec.attribute28     ;
9779    p_instance_rec.attribute29               := l_instance_rec.attribute29     ;
9780    p_instance_rec.attribute30               := l_instance_rec.attribute30     ;
9781    --
9782    p_instance_rec.purchase_unit_price       := l_instance_rec.purchase_unit_price;
9783    p_instance_rec.purchase_currency_code    := l_instance_rec.purchase_currency_code;
9784    p_instance_rec.payables_unit_price       := l_instance_rec.payables_unit_price;
9785    p_instance_rec.payables_currency_code    := l_instance_rec.payables_currency_code;
9786    p_instance_rec.sales_unit_price          := l_instance_rec.sales_unit_price;
9787    p_instance_rec.sales_currency_code       := l_instance_rec.sales_currency_code;
9788    p_instance_rec.operational_status_code   := l_instance_rec.operational_status_code;
9789    --
9790    -- Build Party Table
9791    csi_gen_utility_pvt.put_line('Building party tbl..');
9792    IF p_party_header_tbl.count > 0 THEN
9793       l_ctr := l_party_tbl.count;
9794       FOR i in p_party_header_tbl.FIRST .. p_party_header_tbl.LAST LOOP
9795          IF nvl(p_party_header_tbl(i).active_end_date,FND_API.G_MISS_DATE) = FND_API.G_MISS_DATE OR
9796             p_party_header_tbl(i).active_end_date > sysdate THEN
9797 	    l_ctr := l_ctr + 1;
9798 	    --
9799 	    l_party_tbl(l_ctr).instance_party_id     := p_party_header_tbl(i).instance_party_id;
9800 	    l_party_tbl(l_ctr).instance_id   := p_party_header_tbl(i).instance_id;
9801 	    l_party_tbl(l_ctr).party_source_table    := p_party_header_tbl(i).party_source_table;
9802 	    l_party_tbl(l_ctr).party_id      := p_party_header_tbl(i).party_id;
9803 	    l_party_tbl(l_ctr).relationship_type_code        := p_party_header_tbl(i).relationship_type_code;
9804 	    l_party_tbl(l_ctr).contact_flag          := p_party_header_tbl(i).contact_flag;
9805 	    l_party_tbl(l_ctr).contact_ip_id         := p_party_header_tbl(i).contact_ip_id;
9806 	    l_party_tbl(l_ctr).active_start_date     := p_party_header_tbl(i).active_start_date;
9807 	    l_party_tbl(l_ctr).active_end_date       := p_party_header_tbl(i).active_end_date;
9808 	    l_party_tbl(l_ctr).context       := p_party_header_tbl(i).context;
9809 	    l_party_tbl(l_ctr).attribute1    := p_party_header_tbl(i).attribute1;
9810 	    l_party_tbl(l_ctr).attribute2    := p_party_header_tbl(i).attribute2;
9811 	    l_party_tbl(l_ctr).attribute3    := p_party_header_tbl(i).attribute3;
9812 	    l_party_tbl(l_ctr).attribute4    := p_party_header_tbl(i).attribute4;
9813 	    l_party_tbl(l_ctr).attribute5    := p_party_header_tbl(i).attribute5;
9814 	    l_party_tbl(l_ctr).attribute6    := p_party_header_tbl(i).attribute6;
9815 	    l_party_tbl(l_ctr).attribute7    := p_party_header_tbl(i).attribute7;
9816 	    l_party_tbl(l_ctr).attribute8    := p_party_header_tbl(i).attribute8;
9817 	    l_party_tbl(l_ctr).attribute9    := p_party_header_tbl(i).attribute9;
9818 	    l_party_tbl(l_ctr).attribute10   := p_party_header_tbl(i).attribute10;
9819 	    l_party_tbl(l_ctr).attribute11   := p_party_header_tbl(i).attribute11;
9820 	    l_party_tbl(l_ctr).attribute12   := p_party_header_tbl(i).attribute12;
9821 	    l_party_tbl(l_ctr).attribute13   := p_party_header_tbl(i).attribute13;
9822 	    l_party_tbl(l_ctr).attribute14   := p_party_header_tbl(i).attribute14;
9823 	    l_party_tbl(l_ctr).attribute15   := p_party_header_tbl(i).attribute15;
9824 	    l_party_tbl(l_ctr).object_version_number         := p_party_header_tbl(i).object_version_number;
9825 	    l_party_tbl(l_ctr).primary_flag          := p_party_header_tbl(i).primary_flag;
9826 	    l_party_tbl(l_ctr).preferred_flag        := p_party_header_tbl(i).preferred_flag;
9827 	    l_party_tbl(l_ctr).parent_tbl_index := 1;
9828          END IF;
9829       END LOOP;
9830       --
9831       -- Following loop cannot be moved inside since contact record could come before the parent party
9832       --
9833       -- The reason for having l_party_tbl and later assigning qualifying records to p_party_tbl is
9834       -- we want to pass back p_party_tbl to the caller without any gaps in the slot#. Moreover, the
9835       -- same set is copied when the BOM is exploded and multiple instances are created.
9836       -- During that phase, we have to ignore the gaps which will potentially impact the underlying acct tbl
9837       --
9838       -- Scan thru' l_party_tbl and get all non-contact party records first
9839       --
9840       l_ctr := p_party_tbl.count;
9841       --
9842       IF l_party_tbl.count > 0 THEN
9843 	 FOR i in l_party_tbl.FIRST .. l_party_tbl.LAST LOOP
9844 	    IF l_party_tbl.EXISTS(i) THEN
9845 	       IF nvl(l_party_tbl(i).contact_flag,'N') = 'N' THEN
9846 		  l_ctr := l_ctr + 1;
9847 		  p_party_tbl(l_ctr) := l_party_tbl(i);
9848 		  l_party_tbl.DELETE(i); -- Just to reduce the table size
9849 	       END IF;
9850 	    END IF;
9851 	 END LOOP;
9852       END IF;
9853       --
9854       -- Append this with the contact party record after populating the contact_parent_tbl index
9855       -- Now, l_party_tbl will be left with only contact party records
9856       --
9857       l_ctr := p_party_tbl.count;
9858       --
9859       IF l_party_tbl.count > 0 THEN
9860 	 FOR i in l_party_tbl.FIRST .. l_party_tbl.LAST LOOP
9861 	    IF l_party_tbl.EXISTS(i) THEN
9862 	       IF l_party_tbl(i).contact_flag = 'Y' THEN -- Verify if parent party exists in p_party_tbl
9863 		  l_found := FALSE;
9864 		  FOR j in p_party_tbl.FIRST .. p_party_tbl.LAST LOOP
9865 		     IF l_party_tbl(i).contact_ip_id = p_party_tbl(j).instance_party_id THEN
9866 			l_party_tbl(i).contact_parent_tbl_index := j;
9867 			l_ctr := l_ctr + 1;
9868 			p_party_tbl(l_ctr) := l_party_tbl(i);
9869 			exit;
9870 		     END IF;
9871 		  END LOOP;
9872 	       END IF;
9873 	    END IF;
9874 	 END LOOP;
9875       END IF;
9876    END IF;
9877    --
9878    -- Build Account Table from Account Header Table
9879    csi_gen_utility_pvt.put_line('Building Account tbl..');
9880    IF p_account_header_tbl.count > 0 AND
9881       p_party_tbl.count > 0 THEN
9882       l_ctr := p_party_account_tbl.count;
9883       FOR i in p_account_header_tbl.FIRST .. p_account_header_tbl.LAST LOOP
9884          IF nvl(p_account_header_tbl(i).active_end_date,FND_API.G_MISS_DATE) = FND_API.G_MISS_DATE OR
9885             p_account_header_tbl(i).active_end_date > sysdate THEN
9886             l_found := FALSE;
9887             --
9888 	    FOR j in p_party_tbl.FIRST .. p_party_tbl.LAST LOOP
9889 	       IF p_party_tbl(j).instance_party_id = p_account_header_tbl(i).instance_party_id THEN
9890 	          l_ctr := l_ctr + 1;
9891 		  p_party_account_tbl(l_ctr).parent_tbl_index := j;
9892                   l_found := TRUE; -- Corresponding party record found
9893 		  exit;
9894 	       END IF;
9895 	    END LOOP;
9896 	    --
9897             IF l_found = TRUE THEN
9898                -- l_ctr would have got incremented while setting l_found to TRUE
9899 	       p_party_account_tbl(l_ctr).ip_account_id :=    p_account_header_tbl(i).ip_account_id;
9900 	       p_party_account_tbl(l_ctr).instance_party_id := p_account_header_tbl(i).instance_party_id;
9901 	       p_party_account_tbl(l_ctr).party_account_id := p_account_header_tbl(i).party_account_id;
9902 	       p_party_account_tbl(l_ctr).relationship_type_code := p_account_header_tbl(i).relationship_type_code;
9903 	       p_party_account_tbl(l_ctr).bill_to_address :=  p_account_header_tbl(i).bill_to_address;
9904 	       p_party_account_tbl(l_ctr).ship_to_address :=  p_account_header_tbl(i).ship_to_address;
9905 	       p_party_account_tbl(l_ctr).active_start_date := p_account_header_tbl(i).active_start_date;
9906 	       p_party_account_tbl(l_ctr).active_end_date :=  p_account_header_tbl(i).active_end_date;
9907 	       p_party_account_tbl(l_ctr).context :=  p_account_header_tbl(i).context;
9908 	       p_party_account_tbl(l_ctr).attribute1 :=       p_account_header_tbl(i).attribute1;
9909 	       p_party_account_tbl(l_ctr).attribute2 :=       p_account_header_tbl(i).attribute2;
9910 	       p_party_account_tbl(l_ctr).attribute3 :=       p_account_header_tbl(i).attribute3;
9911 	       p_party_account_tbl(l_ctr).attribute4 :=       p_account_header_tbl(i).attribute4;
9912 	       p_party_account_tbl(l_ctr).attribute5 :=       p_account_header_tbl(i).attribute5;
9913 	       p_party_account_tbl(l_ctr).attribute6 :=       p_account_header_tbl(i).attribute6;
9914 	       p_party_account_tbl(l_ctr).attribute7 :=       p_account_header_tbl(i).attribute7;
9915 	       p_party_account_tbl(l_ctr).attribute8 :=       p_account_header_tbl(i).attribute8;
9916 	       p_party_account_tbl(l_ctr).attribute9 :=       p_account_header_tbl(i).attribute9;
9917 	       p_party_account_tbl(l_ctr).attribute10 :=      p_account_header_tbl(i).attribute10;
9918 	       p_party_account_tbl(l_ctr).attribute11 :=      p_account_header_tbl(i).attribute11;
9919 	       p_party_account_tbl(l_ctr).attribute12 :=      p_account_header_tbl(i).attribute12;
9920 	       p_party_account_tbl(l_ctr).attribute13 :=      p_account_header_tbl(i).attribute13;
9921 	       p_party_account_tbl(l_ctr).attribute14 :=      p_account_header_tbl(i).attribute14;
9922 	       p_party_account_tbl(l_ctr).attribute15 :=      p_account_header_tbl(i).attribute15;
9923 	       p_party_account_tbl(l_ctr).object_version_number :=    p_account_header_tbl(i).object_version_number;
9924             END IF;
9925          END IF; -- Active Account record
9926       END LOOP;
9927    END IF;
9928    --
9929    csi_gen_utility_pvt.put_line('Building Org Assignments tbl..');
9930    -- Build org Assignments table
9931    IF p_org_header_tbl.count > 0 THEN
9932       l_ctr := p_org_units_tbl.count;
9933       FOR i in p_org_header_tbl.FIRST .. p_org_header_tbl.LAST LOOP
9934          IF nvl(p_org_header_tbl(i).active_end_date,FND_API.G_MISS_DATE) = FND_API.G_MISS_DATE OR
9935             p_org_header_tbl(i).active_end_date > sysdate THEN
9936 	    l_ctr := l_ctr + 1;
9937 	    --
9938 	    p_org_units_tbl(l_ctr).instance_ou_id :=       p_org_header_tbl(i).instance_ou_id;
9939 	    p_org_units_tbl(l_ctr).instance_id :=  p_org_header_tbl(i).instance_id;
9940 	    p_org_units_tbl(l_ctr).operating_unit_id :=    p_org_header_tbl(i).operating_unit_id;
9941 	    p_org_units_tbl(l_ctr).relationship_type_code := p_org_header_tbl(i).relationship_type_code;
9942 	    p_org_units_tbl(l_ctr).active_start_date :=    p_org_header_tbl(i).active_start_date;
9943 	    p_org_units_tbl(l_ctr).active_end_date :=      p_org_header_tbl(i).active_end_date;
9944 	    p_org_units_tbl(l_ctr).context :=      p_org_header_tbl(i).context;
9945 	    p_org_units_tbl(l_ctr).attribute1 :=   p_org_header_tbl(i).attribute1;
9946 	    p_org_units_tbl(l_ctr).attribute2 :=   p_org_header_tbl(i).attribute2;
9947 	    p_org_units_tbl(l_ctr).attribute3 :=   p_org_header_tbl(i).attribute3;
9948 	    p_org_units_tbl(l_ctr).attribute4 :=   p_org_header_tbl(i).attribute4;
9949 	    p_org_units_tbl(l_ctr).attribute5 :=   p_org_header_tbl(i).attribute5;
9950 	    p_org_units_tbl(l_ctr).attribute6 :=   p_org_header_tbl(i).attribute6;
9951 	    p_org_units_tbl(l_ctr).attribute7 :=   p_org_header_tbl(i).attribute7;
9952 	    p_org_units_tbl(l_ctr).attribute8 :=   p_org_header_tbl(i).attribute8;
9953 	    p_org_units_tbl(l_ctr).attribute9 :=   p_org_header_tbl(i).attribute9;
9954 	    p_org_units_tbl(l_ctr).attribute10 :=  p_org_header_tbl(i).attribute10;
9955 	    p_org_units_tbl(l_ctr).attribute11 :=  p_org_header_tbl(i).attribute11;
9956 	    p_org_units_tbl(l_ctr).attribute12 :=  p_org_header_tbl(i).attribute12;
9957 	    p_org_units_tbl(l_ctr).attribute13 :=  p_org_header_tbl(i).attribute13;
9958 	    p_org_units_tbl(l_ctr).attribute14 :=  p_org_header_tbl(i).attribute14;
9959 	    p_org_units_tbl(l_ctr).attribute15 :=  p_org_header_tbl(i).attribute15;
9960 	    p_org_units_tbl(l_ctr).object_version_number := p_org_header_tbl(i).object_version_number;
9961 	    p_org_units_tbl(l_ctr).parent_tbl_index := 1;
9962          END IF;
9963       END LOOP;
9964    END IF;
9965    -- Build Pricing Attrib Table
9966    csi_gen_utility_pvt.put_line('Building Pricing tbl..');
9967    IF p_pricing_attrib_tbl.count > 0 THEN
9968       l_ctr := p_pricing_attribs_tbl.count;
9969       FOR i in p_pricing_attrib_tbl.FIRST .. p_pricing_attrib_tbl.LAST LOOP
9970          IF nvl(p_pricing_attrib_tbl(i).active_end_date,FND_API.G_MISS_DATE) = FND_API.G_MISS_DATE OR
9971             p_pricing_attrib_tbl(i).active_end_date > sysdate THEN
9972 	    l_ctr := l_ctr + 1;
9973 	    p_pricing_attribs_tbl(l_ctr) := p_pricing_attrib_tbl(i);
9974 	    p_pricing_attribs_tbl(l_ctr).parent_tbl_index := 1;
9975          END IF;
9976       END LOOP;
9977    END IF;
9978    -- Build Extended Attributes Table
9979    csi_gen_utility_pvt.put_line('Building Ext Attribs tbl..');
9980    IF p_ext_attrib_tbl.count > 0 THEN
9981       l_ctr := p_ext_attrib_values_tbl.count;
9982       FOR i in p_ext_attrib_tbl.FIRST .. p_ext_attrib_tbl.LAST LOOP
9983          IF nvl(p_ext_attrib_tbl(i).active_end_date,FND_API.G_MISS_DATE) = FND_API.G_MISS_DATE OR
9984             p_ext_attrib_tbl(i).active_end_date > sysdate THEN
9985 	    l_ctr := l_ctr + 1;
9986 	    p_ext_attrib_values_tbl(l_ctr) := p_ext_attrib_tbl(i);
9987 	    p_ext_attrib_values_tbl(l_ctr).parent_tbl_index := 1;
9988          END IF;
9989       END LOOP;
9990    END IF;
9991    -- Build Instance Asset Table
9992    csi_gen_utility_pvt.put_line('Building Instance Asset tbl..');
9993    IF p_asset_header_tbl.count > 0 THEN
9994       l_ctr := p_instance_asset_tbl.count;
9995       FOR i in p_asset_header_tbl.FIRST .. p_asset_header_tbl.LAST LOOP
9996          IF nvl(p_asset_header_tbl(i).active_end_date,FND_API.G_MISS_DATE) = FND_API.G_MISS_DATE OR
9997             p_asset_header_tbl(i).active_end_date > sysdate THEN
9998 	    l_ctr := l_ctr + 1;
9999 	    --
10000 	    p_instance_asset_tbl(l_ctr).instance_asset_id := p_asset_header_tbl(i).instance_asset_id;
10001 	    p_instance_asset_tbl(l_ctr).instance_id :=     p_asset_header_tbl(i).instance_id;
10002 	    p_instance_asset_tbl(l_ctr).fa_asset_id :=     p_asset_header_tbl(i).fa_asset_id;
10003 	    p_instance_asset_tbl(l_ctr).fa_book_type_code := p_asset_header_tbl(i).fa_book_type_code;
10004 	    p_instance_asset_tbl(l_ctr).fa_location_id :=  p_asset_header_tbl(i).fa_location_id;
10005 	    p_instance_asset_tbl(l_ctr).asset_quantity :=  p_asset_header_tbl(i).asset_quantity;
10006 	    p_instance_asset_tbl(l_ctr).update_status :=   p_asset_header_tbl(i).update_status;
10007 	    p_instance_asset_tbl(l_ctr).active_start_date := p_asset_header_tbl(i).active_start_date;
10008 	    p_instance_asset_tbl(l_ctr).active_end_date := p_asset_header_tbl(i).active_end_date;
10009 	    p_instance_asset_tbl(l_ctr).object_version_number := p_asset_header_tbl(i).object_version_number;
10010 	    p_instance_asset_tbl(l_ctr).parent_tbl_index := 1;
10011          END IF;
10012       END LOOP;
10013    END IF;
10014 EXCEPTION
10015     WHEN FND_API.G_EXC_ERROR THEN
10016             ROLLBACK TO Get_And_Build_Instance_Details;
10017             x_return_status := FND_API.G_RET_STS_ERROR ;
10018             FND_MSG_PUB.Count_And_Get
10019                 (  p_count               =>      x_msg_count,
10020                     p_data                =>      x_msg_data
10021                  );
10022       WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
10023             ROLLBACK TO Get_And_Build_Instance_Details;
10024             x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
10025             FND_MSG_PUB.Count_And_Get
10026                 (  p_count               =>      x_msg_count,
10027                     p_data                =>      x_msg_data
10028                  );
10029       WHEN OTHERS THEN
10030             ROLLBACK TO  Get_And_Build_Instance_Details;
10031             x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
10032               IF       FND_MSG_PUB.Check_Msg_Level
10033                   (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
10034             THEN
10035                     FND_MSG_PUB.Add_Exc_Msg
10036                     (      G_PKG_NAME            ,
10037                           l_api_name
10038                      );
10039             END IF;
10040             FND_MSG_PUB.Count_And_Get
10041                 (  p_count               =>      x_msg_count,
10042                     p_data                =>      x_msg_data
10043                 );
10044 END Get_And_Build_Instance_Details;
10045 --
10046 /*---------------------------------------------------------*/
10047 /* Procedure name:  Explode_Bom                            */
10048 /* Description :    This procudure explodes the BOM and    */
10049 /*                  creates instances and relationships    */
10050 /* Author      :    Srinivasan Ramakrishnan                */
10051 /*---------------------------------------------------------*/
10052 PROCEDURE Explode_Bom
10053  (
10054    p_api_version            IN     NUMBER
10055   ,p_commit                 IN     VARCHAR2
10056   ,p_init_msg_list          IN     VARCHAR2
10057   ,p_validation_level       IN     NUMBER
10058   ,p_source_instance_tbl    IN     csi_datastructures_pub.instance_tbl
10059   ,p_explosion_level        IN     NUMBER
10060   ,p_txn_rec                IN OUT NOCOPY csi_datastructures_pub.transaction_rec
10061   ,x_return_status          OUT    NOCOPY VARCHAR2
10062   ,x_msg_count              OUT    NOCOPY NUMBER
10063   ,x_msg_data               OUT    NOCOPY VARCHAR2
10064  )
10065 IS
10066    --
10067    l_api_name                    CONSTANT VARCHAR2(30) := 'explode_bom';
10068    l_api_version                 CONSTANT NUMBER      := 1.0;
10069    l_debug_level                 NUMBER;
10070    l_msg_index                   NUMBER;
10071    l_msg_count                   NUMBER;
10072    x_ins_tbl                     csi_datastructures_pub.instance_tbl;
10073    x_rel_tbl                     csi_datastructures_pub.ii_relationship_tbl;
10074    l_ins_tbl                     csi_datastructures_pub.instance_tbl;
10075    l_rel_ctr                     NUMBER := 0;
10076    x_new_ins_tbl                 csi_datastructures_pub.instance_tbl;
10077    l_rel_tbl                     csi_datastructures_pub.ii_relationship_tbl;
10078    p_instance_rec                csi_datastructures_pub.instance_rec;
10079    l_prev_item                   NUMBER := -9999;
10080    x_msg_index_out               NUMBER;
10081    --
10082    p_party_tbl                   csi_datastructures_pub.party_tbl;
10083    p_party_account_tbl           csi_datastructures_pub.party_account_tbl;
10084    p_org_units_tbl               csi_datastructures_pub.organization_units_tbl;
10085    p_pricing_attribs_tbl         csi_datastructures_pub.pricing_attribs_tbl;
10086    p_ext_attrib_values_tbl       csi_datastructures_pub.extend_attrib_values_tbl;
10087    p_instance_asset_tbl          csi_datastructures_pub.instance_asset_tbl;
10088    l_version_label               VARCHAR2(240);
10089    l_ver_label_desc              VARCHAR2(240);
10090    --
10091    p_grp_error_tbl               csi_datastructures_pub.grp_error_tbl;
10092    p_txn_tbl                     csi_datastructures_pub.transaction_tbl;
10093    l_grp_ins_tbl                 csi_datastructures_pub.instance_tbl;
10094    l_grp_ctr                     NUMBER := 0;
10095    l_grp_rel_tbl                 csi_datastructures_pub.ii_relationship_tbl;
10096    l_grp_party_tbl               csi_datastructures_pub.party_tbl;
10097    l_grp_account_tbl             csi_datastructures_pub.party_account_tbl;
10098    l_grp_org_units_tbl           csi_datastructures_pub.organization_units_tbl;
10099    l_grp_pricing_attribs_tbl     csi_datastructures_pub.pricing_attribs_tbl;
10100    l_grp_ext_attrib_values_tbl   csi_datastructures_pub.extend_attrib_values_tbl;
10101    l_grp_instance_asset_tbl      csi_datastructures_pub.instance_asset_tbl;
10102    l_party_ctr                   NUMBER;
10103    l_ctr                         NUMBER;
10104    --
10105 BEGIN
10106     -- Standard Start of API savepoint
10107     SAVEPOINT      explode_bom;
10108     -- Standard call to check for call compatibility.
10109     IF NOT FND_API.Compatible_API_Call (l_api_version,
10110                                         p_api_version,
10111                                         l_api_name ,
10112                                         G_PKG_NAME)
10113     THEN
10114        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10115     END IF;
10116     -- Initialize message list if p_init_msg_list is set to TRUE.
10117     IF FND_API.to_Boolean( p_init_msg_list ) THEN
10118        FND_MSG_PUB.initialize;
10119     END IF;
10120     --  Initialize API return status to success
10121     x_return_status := FND_API.G_RET_STS_SUCCESS;
10122     -- Check the profile option debug_level for debug message reporting
10123     l_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
10124     -- If debug_level = 1 then dump the procedure name
10125     IF (l_debug_level > 0) THEN
10126         csi_gen_utility_pvt.put_line( 'explode_bom (Group)');
10127     END IF;
10128     -- Start API body
10129     IF p_source_instance_tbl.count > 0 THEN
10130        FOR src_rec in  p_source_instance_tbl.FIRST ..  p_source_instance_tbl.LAST LOOP
10131           IF p_source_instance_tbl.EXISTS(src_rec) THEN
10132 	     -- Verify instance quantity
10133 	     IF ((p_source_instance_tbl(src_rec).QUANTITY IS NULL)
10134 		   OR (p_source_instance_tbl(src_rec).QUANTITY = FND_API.G_MISS_NUM )
10135 		   OR (p_source_instance_tbl(src_rec).QUANTITY <> 1)) THEN
10136 		FND_MESSAGE.SET_NAME('CSI','CSI_API_INVALID_QUANTITY');
10137 		FND_MESSAGE.SET_TOKEN('QUANTITY',p_source_instance_tbl(src_rec).QUANTITY);
10138 		FND_MSG_PUB.Add;
10139 		RAISE FND_API.G_EXC_ERROR;
10140 	     END IF;
10141 	     --
10142 	     IF (p_source_instance_tbl(src_rec).instance_id IS NULL) OR
10143 		(p_source_instance_tbl(src_rec).instance_id = FND_API.G_MISS_NUM) THEN
10144 		FND_MESSAGE.SET_NAME('CSI','CSI_API_INSTANCE_ID_NULL');
10145 		FND_MSG_PUB.Add;
10146 		RAISE FND_API.G_EXC_ERROR;
10147 	     END IF;
10148 	     --
10149 	     -- Verify if configruation has been exploded before
10150 	     IF (csi_Item_Instance_Vld_pvt.Is_config_exploded
10151 		( p_source_instance_tbl(src_rec).INSTANCE_ID)) THEN
10152 		csi_gen_utility_pvt.put_line('Configuration already Exploded');
10153 		RAISE FND_API.G_EXC_ERROR;
10154 	     END IF;
10155              --
10156              IF l_prev_item = -9999 OR
10157                 l_prev_item <> p_source_instance_tbl(src_rec).inventory_item_id THEN
10158                 l_prev_item := p_source_instance_tbl(src_rec).inventory_item_id;
10159                 -- Call Explode BOM
10160 		csi_item_instance_pvt.Explode_Bom
10161 		 (
10162 		   p_api_version            => 1.0
10163 		  ,p_commit                 => p_commit
10164 		  ,p_init_msg_list          => p_init_msg_list
10165 		  ,p_validation_level       => p_validation_level
10166 		  ,p_source_instance_rec    => p_source_instance_tbl(src_rec)
10167 		  ,p_explosion_level        => p_explosion_level
10168 		  ,p_item_tbl               => x_ins_tbl
10169 		  ,p_item_relation_tbl      => x_rel_tbl
10170 		  ,p_create_instance        => FND_API.G_FALSE -- Since we just need the output
10171 		  ,p_txn_rec                => p_txn_rec
10172 		  ,x_return_status          => x_return_status
10173 		  ,x_msg_count              => x_msg_count
10174 		  ,x_msg_data               => x_msg_data
10175 		 );
10176 		 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
10177 		    csi_gen_utility_pvt.put_line('Error in Explode_BOM Regular Routine..');
10178 		     FOR i in 1..x_msg_Count LOOP
10179 		       FND_MSG_PUB.Get(p_msg_index     => i,
10180 				       p_encoded       => 'F',
10181 				       p_data          => x_msg_data,
10182 				       p_msg_index_out => x_msg_index_out );
10183 		       csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
10184 		    End LOOP;
10185 		    RAISE FND_API.G_EXC_ERROR;
10186 		END IF;
10187              END IF;
10188              --
10189 	     -- Get the instance and other entities info
10190              IF x_ins_tbl.count > 0 THEN
10191 		csi_gen_utility_pvt.put_line('Calling Get_And_Build_Instance_Details...');
10192 		Get_And_Build_Instance_Details
10193 		   (p_instance_id            => p_source_instance_tbl(src_rec).instance_id
10194 		   ,p_txn_rec                => p_txn_rec
10195 		   ,p_instance_rec           => p_instance_rec
10196 		   ,p_party_tbl              => p_party_tbl
10197 		   ,p_party_account_tbl      => p_party_account_tbl
10198 		   ,p_org_units_tbl          => p_org_units_tbl
10199 		   ,p_pricing_attribs_tbl    => p_pricing_attribs_tbl
10200 		   ,p_ext_attrib_values_tbl  => p_ext_attrib_values_tbl
10201 		   ,p_instance_asset_tbl     => p_instance_asset_tbl
10202 		   ,x_return_status          => x_return_status
10203 		   ,x_msg_count              => x_msg_count
10204 		   ,x_msg_data               => x_msg_data
10205 		  );
10206 		IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
10207 		   l_msg_index := 1;
10208 		   l_msg_count := x_msg_count;
10209 		   WHILE l_msg_count > 0 LOOP
10210 			   x_msg_data := FND_MSG_PUB.GET
10211 				       (  l_msg_index,
10212 					  FND_API.G_FALSE );
10213 		       l_msg_index := l_msg_index + 1;
10214 		       l_msg_count := l_msg_count - 1;
10215 		   END LOOP;
10216 		   csi_gen_utility_pvt.put_line('Error from Get_And_Build_Instance_Details...');
10217 		   RAISE FND_API.G_EXC_ERROR;
10218                 ELSE
10219                    csi_gen_utility_pvt.put_line('Count After Get_And_Build_Instance_Details...');
10220                    csi_gen_utility_pvt.put_line('p_party_tbl Count is '||to_char(p_party_tbl.count));
10221                    csi_gen_utility_pvt.put_line('p_party_account_tbl Count is '||to_char(p_party_account_tbl.count));
10222                    csi_gen_utility_pvt.put_line('p_org_units_tbl Count is '||to_char(p_org_units_tbl.count));
10223                    csi_gen_utility_pvt.put_line('p_pricing_attribs_tbl Count is '||to_char(p_pricing_attribs_tbl.count));
10224                    csi_gen_utility_pvt.put_line('p_ext_attrib_values_tbl Count is '||to_char(p_ext_attrib_values_tbl.count));
10225                    csi_gen_utility_pvt.put_line('p_instance_asset_tbl Count is '||to_char(p_instance_asset_tbl.count));
10226 		END IF;
10227 		--
10228 		l_version_label := null;
10229 		l_ver_label_desc := null;
10230 		Begin
10231 		   select version_label,description
10232 		   into l_version_label,l_ver_label_desc
10233 		   from CSI_I_VERSION_LABELS
10234 		   where instance_id = p_source_instance_tbl(src_rec).instance_id
10235 		   and   rownum < 2;
10236 		Exception
10237 		   when no_data_found then
10238 		      null;
10239 	        End;
10240              END IF; -- x_ins_tbl count
10241              --
10242 	     l_ins_tbl.DELETE;
10243 	     l_rel_tbl.DELETE;
10244              l_party_ctr := p_party_tbl.count;
10245 	     l_ins_tbl := x_ins_tbl;
10246 	     l_rel_tbl := x_rel_tbl;
10247 	     IF l_ins_tbl.count > 0 THEN
10248 		For ins_tab in l_ins_tbl.FIRST .. l_ins_tbl.LAST
10249 		Loop
10250                    l_grp_ctr := l_grp_ctr + 1;
10251                    l_grp_ins_tbl(l_grp_ctr) := p_instance_rec;
10252                    select CSI_ITEM_INSTANCES_S.nextval
10253                    into l_grp_ins_tbl(l_grp_ctr).instance_id
10254                    from dual;
10255                    --
10256                    l_grp_ins_tbl(l_grp_ctr).instance_number := l_grp_ins_tbl(l_grp_ctr).instance_id;
10257                    l_grp_ins_tbl(l_grp_ctr).external_reference := fnd_api.g_miss_char;
10258                    l_grp_ins_tbl(l_grp_ctr).object_version_number := fnd_api.g_miss_num;
10259                    l_grp_ins_tbl(l_grp_ctr).inventory_item_id := l_ins_tbl(ins_tab).inventory_item_id;
10260                    l_grp_ins_tbl(l_grp_ctr).inventory_revision := fnd_api.g_miss_char;
10261                    l_grp_ins_tbl(l_grp_ctr).quantity := l_ins_tbl(ins_tab).quantity;
10262                    l_grp_ins_tbl(l_grp_ctr).mfg_serial_number_flag := 'N';
10263                    l_grp_ins_tbl(l_grp_ctr).unit_of_measure := l_ins_tbl(ins_tab).unit_of_measure;
10264                    l_grp_ins_tbl(l_grp_ctr).lot_number := NULL;
10265                    l_grp_ins_tbl(l_grp_ctr).serial_number := NULL;
10266                    l_grp_ins_tbl(l_grp_ctr).creation_complete_flag := fnd_api.g_miss_char;
10267                    l_grp_ins_tbl(l_grp_ctr).completeness_flag := fnd_api.g_miss_char;
10268                    l_grp_ins_tbl(l_grp_ctr).version_label := l_version_label;
10269                    l_grp_ins_tbl(l_grp_ctr).version_label_description := l_ver_label_desc;
10270 		   --
10271 		   -- On success Populate the relationship_tbl with the new instance_id
10272 		   IF l_rel_tbl.count > 0 THEN
10273 		      For rel_tab in l_rel_tbl.FIRST .. l_rel_tbl.LAST
10274 		      Loop
10275 			 IF l_rel_tbl(rel_tab).object_id = 0 THEN -- Top Most
10276 			    l_rel_tbl(rel_tab).object_id := p_source_instance_tbl(src_rec).instance_id;
10277 			 END IF;
10278 			 --
10279 			 IF l_rel_tbl(rel_tab).subject_id = ins_tab THEN
10280 			    l_rel_tbl(rel_tab).subject_id := l_grp_ins_tbl(l_grp_ctr).instance_id;
10281 			 END IF;
10282 			 --
10283 			 IF l_rel_tbl(rel_tab).object_id = ins_tab THEN
10284 			    l_rel_tbl(rel_tab).object_id := l_grp_ins_tbl(l_grp_ctr).instance_id;
10285 			 END IF;
10286 		      End Loop;
10287 		   END IF;
10288                    --
10289                    -- One Txn per Instance for calling Group API
10290                    -- We pass the same txn id for all the txns. Group API will insert only distinct values.
10291                    p_txn_tbl(l_grp_ctr) := p_txn_rec;
10292                   -- p_txn_tbl(l_grp_ctr).transaction_id := fnd_api.g_miss_num;
10293                   -- p_txn_tbl(l_grp_ctr).object_version_number := fnd_api.g_miss_num;
10294                    --
10295                    -- Build Party Tbl
10296 		   l_ctr := l_grp_party_tbl.count;
10297 		   IF p_party_tbl.count > 0 THEN
10298 		      FOR j in p_party_tbl.FIRST .. p_party_tbl.LAST LOOP
10299 			 l_ctr := l_ctr + 1;
10300 			 l_grp_party_tbl(l_ctr) := p_party_tbl(j);
10301 			 l_grp_party_tbl(l_ctr).instance_party_id := fnd_api.g_miss_num;
10302 			 l_grp_party_tbl(l_ctr).instance_id := l_grp_ins_tbl(l_grp_ctr).instance_id;
10303 			 l_grp_party_tbl(l_ctr).object_version_number := fnd_api.g_miss_num;
10304 			 l_grp_party_tbl(l_ctr).parent_tbl_index := l_grp_ctr;
10305 			 l_grp_party_tbl(l_ctr).contact_ip_id := fnd_api.g_miss_num;
10306 			 IF l_grp_ctr > 1 THEN
10307 			    IF p_party_tbl(j).contact_flag = 'Y' THEN
10308 			       l_grp_party_tbl(l_ctr).contact_parent_tbl_index :=
10309 				  p_party_tbl(j).contact_parent_tbl_index + ((l_grp_ctr-1) * l_party_ctr);
10310 			    END IF;
10311 			 END IF;
10312 		      END LOOP;
10313 		   END IF;
10314 		   --
10315                    -- Build Account Tbl
10316 		   l_ctr := l_grp_account_tbl.count;
10317 		   IF p_party_account_tbl.count > 0 THEN
10318 		      FOR j in p_party_account_tbl.FIRST .. p_party_account_tbl.LAST LOOP
10319 			 l_ctr := l_ctr + 1;
10320 			 l_grp_account_tbl(l_ctr) := p_party_account_tbl(j);
10321 			 l_grp_account_tbl(l_ctr).ip_account_id := fnd_api.g_miss_num;
10322 			 l_grp_account_tbl(l_ctr).instance_party_id := fnd_api.g_miss_num;
10323 			 l_grp_account_tbl(l_ctr).object_version_number := fnd_api.g_miss_num;
10324 			 IF l_grp_ctr > 1 THEN
10325 			    l_grp_account_tbl(l_ctr).parent_tbl_index :=
10326 				  p_party_account_tbl(j).parent_tbl_index + ((l_grp_ctr-1) * l_party_ctr);
10327 			 END IF;
10328 		      END LOOP;
10329 		   END IF;
10330 		   --
10331 		   l_ctr := l_grp_org_units_tbl.count;
10332 		   IF p_org_units_tbl.count > 0 THEN
10333 		      FOR j in p_org_units_tbl.FIRST .. p_org_units_tbl.LAST LOOP
10334 			 l_ctr := l_ctr + 1;
10335 			 l_grp_org_units_tbl(l_ctr) := p_org_units_tbl(j);
10336 			 l_grp_org_units_tbl(l_ctr).parent_tbl_index := l_grp_ctr;
10337 			 l_grp_org_units_tbl(l_ctr).instance_id := l_grp_ins_tbl(l_grp_ctr).instance_id;
10338 			 l_grp_org_units_tbl(l_ctr).instance_ou_id := fnd_api.g_miss_num;
10339 			 l_grp_org_units_tbl(l_ctr).object_version_number := fnd_api.g_miss_num;
10340 		      END LOOP;
10341 		   END IF;
10342 		   --
10343 		   l_ctr := l_grp_pricing_attribs_tbl.count;
10344 		   IF p_pricing_attribs_tbl.count > 0 THEN
10345 		      FOR j in p_pricing_attribs_tbl.FIRST .. p_pricing_attribs_tbl.LAST LOOP
10346 			 l_ctr := l_ctr + 1;
10347 			 l_grp_pricing_attribs_tbl(l_ctr) := p_pricing_attribs_tbl(j);
10348 			 l_grp_pricing_attribs_tbl(l_ctr).parent_tbl_index := l_grp_ctr;
10349 			 l_grp_pricing_attribs_tbl(l_ctr).instance_id := l_grp_ins_tbl(l_grp_ctr).instance_id;
10350 			 l_grp_pricing_attribs_tbl(l_ctr).pricing_attribute_id := fnd_api.g_miss_num;
10351 			 l_grp_pricing_attribs_tbl(l_ctr).object_version_number := fnd_api.g_miss_num;
10352 		      END LOOP;
10353 		   END IF;
10354 		   --
10355 		   l_ctr := l_grp_ext_attrib_values_tbl.count;
10356 		   IF p_ext_attrib_values_tbl.count > 0 THEN
10357 		      FOR j in p_ext_attrib_values_tbl.FIRST .. p_ext_attrib_values_tbl.LAST LOOP
10358 			 l_ctr := l_ctr + 1;
10359 			 l_grp_ext_attrib_values_tbl(l_ctr) := p_ext_attrib_values_tbl(j);
10360 			 l_grp_ext_attrib_values_tbl(l_ctr).parent_tbl_index := l_grp_ctr;
10361 			 l_grp_ext_attrib_values_tbl(l_ctr).attribute_value_id := fnd_api.g_miss_num;
10362 			 l_grp_ext_attrib_values_tbl(l_ctr).instance_id := l_grp_ins_tbl(l_grp_ctr).instance_id;
10363 			 l_grp_ext_attrib_values_tbl(l_ctr).object_version_number := fnd_api.g_miss_num;
10364 		      END LOOP;
10365 		   END IF;
10366 		   --
10367 		   l_ctr := l_grp_instance_asset_tbl.count;
10368 		   IF p_instance_asset_tbl.count > 0 THEN
10369 		      FOR j in p_instance_asset_tbl.FIRST .. p_instance_asset_tbl.LAST LOOP
10370 			 l_ctr := l_ctr + 1;
10371 			 l_grp_instance_asset_tbl(l_ctr) := p_instance_asset_tbl(j);
10372 			 l_grp_instance_asset_tbl(l_ctr).parent_tbl_index := l_grp_ctr;
10373 			 l_grp_instance_asset_tbl(l_ctr).instance_id := l_grp_ins_tbl(l_grp_ctr).instance_id;
10374 			 l_grp_instance_asset_tbl(l_ctr).object_version_number := fnd_api.g_miss_num;
10375 			 l_grp_instance_asset_tbl(l_ctr).instance_asset_id := fnd_api.g_miss_num;
10376                       END LOOP;
10377                    END IF;
10378 		End Loop; -- l_ins_tbl (components) loop
10379 		--
10380                 -- At the end of this loop all the relationship records
10381                 -- will have the right subject and object
10382                 -- Add the l_rel_tbl into l_grp_rel_tbl
10383 		IF l_rel_tbl.count > 0 THEN
10384                    l_rel_ctr := l_grp_rel_tbl.count;
10385                    FOR rel_rec in l_rel_tbl.FIRST .. l_rel_tbl.LAST LOOP
10386                       l_rel_ctr := l_rel_ctr + 1;
10387                       l_grp_rel_tbl(l_rel_ctr).object_id := l_rel_tbl(rel_rec).object_id;
10388                       l_grp_rel_tbl(l_rel_ctr).subject_id := l_rel_tbl(rel_rec).subject_id;
10389                       l_grp_rel_tbl(l_rel_ctr).relationship_type_code := 'COMPONENT-OF';
10390                    END LOOP;
10391 		END IF;
10392 	     END IF; -- End of l_ins_tbl_count
10393           END IF; -- p_source_instance_tbl exists
10394        END LOOP; -- p_source_instance_tbl loop
10395     END IF; -- p_src_instance_tbl count
10396     --
10397     -- Call Create Item Instance Group API
10398     csi_gen_utility_pvt.put_line('Instance count is '||to_char(l_grp_ins_tbl.count));
10399     csi_gen_utility_pvt.put_line('Party count is '||to_char(l_grp_party_tbl.count));
10400     csi_gen_utility_pvt.put_line('Account count is '||to_char(l_grp_account_tbl.count));
10401     csi_gen_utility_pvt.put_line('Pricing count is '||to_char(l_grp_pricing_attribs_tbl.count));
10402     csi_gen_utility_pvt.put_line('Ext Attribs count is '||to_char(l_grp_ext_attrib_values_tbl.count));
10403     csi_gen_utility_pvt.put_line('Org Units count is '||to_char(l_grp_org_units_tbl.count));
10404     csi_gen_utility_pvt.put_line('Asset count is '||to_char(l_grp_instance_asset_tbl.count));
10405     csi_gen_utility_pvt.put_line('Transaction count is '||to_char(p_txn_tbl.count));
10406     --
10407     csi_item_instance_grp.create_item_instance
10408        ( p_api_version           => 1.0
10409 	,p_commit                => p_commit
10410 	,p_init_msg_list         => p_init_msg_list
10411 	,p_validation_level      => p_validation_level
10412 	,p_instance_tbl          => l_grp_ins_tbl
10413 	,p_ext_attrib_values_tbl => l_grp_ext_attrib_values_tbl
10414 	,p_party_tbl             => l_grp_party_tbl
10415 	,p_account_tbl           => l_grp_account_tbl
10416 	,p_pricing_attrib_tbl    => l_grp_pricing_attribs_tbl
10417 	,p_org_assignments_tbl   => l_grp_org_units_tbl
10418 	,p_asset_assignment_tbl  => l_grp_instance_asset_tbl
10419 	,p_txn_tbl               => p_txn_tbl
10420         ,p_call_from_bom_expl    => fnd_api.g_true
10421 	,p_grp_error_tbl         => p_grp_error_tbl
10422 	,x_return_status         => x_return_status
10423 	,x_msg_count             => x_msg_count
10424 	,x_msg_data              => x_msg_data
10425       );
10426       --
10427       IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
10428 	 csi_gen_utility_pvt.put_line('Error from Group Create_item_instance..');
10429 	  FOR i in 1..x_msg_Count LOOP
10430 	    FND_MSG_PUB.Get(p_msg_index     => i,
10431 			    p_encoded       => 'F',
10432 			    p_data          => x_msg_data,
10433 			    p_msg_index_out => x_msg_index_out );
10434 	    csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
10435 	 End LOOP;
10436 	 RAISE FND_API.G_EXC_ERROR;
10437      END IF;
10438     --
10439     csi_gen_utility_pvt.put_line('Relationship Count is '||to_char(l_grp_rel_tbl.count));
10440     IF l_grp_rel_tbl.count > 0 THEN
10441        csi_gen_utility_pvt.put_line('Calling Create Relationship PUB...');
10442        csi_ii_relationships_pub.create_relationship
10443 	   (
10444 	     p_api_version         => 1.0,
10445 	     p_commit              => fnd_api.g_false,
10446 	     p_init_msg_list       => fnd_api.g_true,
10447 	     p_validation_level    => fnd_api.g_valid_level_full,
10448 	     p_relationship_tbl    => l_grp_rel_tbl,
10449 	     p_txn_rec             => p_txn_rec,
10450 	     x_return_status       => x_return_status,
10451 	     x_msg_count           => x_msg_count,
10452 	     x_msg_data            => x_msg_data
10453 	   );
10454          csi_gen_utility_pvt.put_line('End of Create Relationship...');
10455 	 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
10456 	    csi_gen_utility_pvt.put_line('Error while trying to Create II Relationships..');
10457 	     FOR i in 1..x_msg_Count LOOP
10458 	       FND_MSG_PUB.Get(p_msg_index     => i,
10459 			       p_encoded       => 'F',
10460 			       p_data          => x_msg_data,
10461 			       p_msg_index_out => x_msg_index_out );
10462 	       csi_gen_utility_pvt.put_line('message data = '||x_msg_data);
10463 	    End LOOP;
10464 	    RAISE FND_API.G_EXC_ERROR;
10465 	END IF;
10466     END IF;
10467     -- End of API body
10468     -- Standard check of p_commit
10469     IF FND_API.To_Boolean( p_commit ) THEN
10470        COMMIT WORK;
10471     END IF;
10472     -- Standard call to get message count and if count is  get message info.
10473     FND_MSG_PUB.Count_And_Get
10474         ( p_count       =>       x_msg_count ,
10475           p_data       =>       x_msg_data
10476         );
10477 EXCEPTION
10478     WHEN FND_API.G_EXC_ERROR THEN
10479             ROLLBACK TO explode_bom;
10480             x_return_status := FND_API.G_RET_STS_ERROR ;
10481             FND_MSG_PUB.Count_And_Get
10482                 (  p_count               =>      x_msg_count,
10483                     p_data                =>      x_msg_data
10484                  );
10485       WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
10486             ROLLBACK TO explode_bom;
10487             x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
10488             FND_MSG_PUB.Count_And_Get
10489                 (  p_count               =>      x_msg_count,
10490                     p_data                =>      x_msg_data
10491                  );
10492       WHEN OTHERS THEN
10493             ROLLBACK TO  explode_bom;
10494             x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
10495               IF       FND_MSG_PUB.Check_Msg_Level
10496                   (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
10497             THEN
10498                     FND_MSG_PUB.Add_Exc_Msg
10499                     (      G_PKG_NAME            ,
10500                           l_api_name
10501                      );
10502             END IF;
10503             FND_MSG_PUB.Count_And_Get
10504                 (  p_count               =>      x_msg_count,
10505                     p_data                =>      x_msg_data
10506                 );
10507 END Explode_Bom;
10508 --
10509 PROCEDURE lock_item_instances
10510  (
10511      p_api_version           IN   NUMBER
10512     ,p_commit                IN   VARCHAR2 := fnd_api.g_false
10513     ,p_init_msg_list         IN   VARCHAR2 := fnd_api.g_false
10514     ,p_validation_level      IN   NUMBER := fnd_api.g_valid_level_full
10515     ,px_config_tbl           IN   OUT NOCOPY csi_cz_int.config_tbl
10516    -- ,p_txn_rec               IN   OUT NOCOPY csi_datastructures_pub.transaction_rec
10517     ,x_return_status         OUT  NOCOPY VARCHAR2
10518     ,x_msg_count             OUT  NOCOPY NUMBER
10519     ,x_msg_data              OUT  NOCOPY VARCHAR2
10520  )
10521 AS
10522 l_api_name         CONSTANT VARCHAR2(30)   := 'LOCK_ITEM_INSTANCES';
10523 l_api_version      CONSTANT NUMBER         := 1.0;
10524 l_csi_debug_level  NUMBER;
10525 l_msg_data         VARCHAR2(2000);
10526 l_msg_index        NUMBER;
10527 l_msg_count        NUMBER;
10528 BEGIN
10529 
10530   SAVEPOINT    csi_lock_item_grp;
10531 
10532 
10533         -- Check for freeze_flag in csi_install_parameters is set to 'Y'
10534 
10535      csi_utility_grp.check_ib_active;
10536 
10537         -- Standard call to check for call compatibility.
10538         IF NOT FND_API.Compatible_API_Call (    l_api_version           ,
10539                                                 p_api_version           ,
10540                                                 l_api_name              ,
10541                                                 g_pkg_name              )
10542         THEN
10543                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10544         END IF;
10545 
10546         -- Initialize message list if p_init_msg_list is set to TRUE.
10547         IF FND_API.to_Boolean( p_init_msg_list ) THEN
10548                 FND_MSG_PUB.initialize;
10549         END IF;
10550 
10551         --  Initialize API return status to success
10552         x_return_status := FND_API.G_RET_STS_SUCCESS;
10553 
10554         -- Check the profile option CSI_DEBUG_LEVEL for debug message reporting
10555         l_csi_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
10556 
10557         -- If CSI_DEBUG_LEVEL = 1 then dump the procedure name
10558         IF (l_csi_debug_level > 0) THEN
10559             csi_gen_utility_pvt.put_line( 'lock_item_instances');
10560         END IF;
10561 
10562 
10563         -- If the debug level = 2 then dump all the parameters values.
10564         IF (l_csi_debug_level > 1) THEN
10565                csi_gen_utility_pvt.put_line( 'lock_item_instances'||
10566                                                    p_api_version           ||'-'||
10567                                                    p_commit                ||'-'||
10568                                                    p_init_msg_list         ||'-'||
10569                                                    p_validation_level            );
10570                -- Dump the records in the log file
10571               -- csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
10572         END IF;
10573 
10574        csi_item_instance_pvt.lock_item_instances
10575          (p_api_version      => p_api_version
10576          ,p_commit           => fnd_api.g_false
10577          ,p_init_msg_list    => p_init_msg_list
10578          ,p_validation_level => p_validation_level
10579          ,px_config_tbl      => px_config_tbl
10580        --  ,p_txn_rec          => p_txn_rec
10581          ,x_return_status    => x_return_status
10582          ,x_msg_count        => x_msg_count
10583          ,x_msg_data         => x_msg_data
10584          );
10585       IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
10586           l_msg_index := 1;
10587           l_msg_count := x_msg_count;
10588           WHILE l_msg_count > 0 LOOP
10589                 x_msg_data := FND_MSG_PUB.GET
10590                       (  l_msg_index,
10591                          FND_API.G_FALSE );
10592               csi_gen_utility_pvt.put_line('Error while locking item instances..');
10593               csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
10594               l_msg_index := l_msg_index + 1;
10595               l_msg_count := l_msg_count - 1;
10596           END LOOP;
10597          RAISE FND_API.G_EXC_ERROR;
10598        END IF;
10599 
10600         IF FND_API.To_Boolean( p_commit ) THEN
10601             COMMIT WORK;
10602         END IF;
10603 
10604         -- Standard call to get message count and if count is  get message info.
10605         FND_MSG_PUB.Count_And_Get
10606                 (p_count        =>      x_msg_count ,
10607                  p_data         =>      x_msg_data   );
10608 
10609 EXCEPTION
10610         WHEN FND_API.G_EXC_ERROR THEN
10611                 ROLLBACK TO csi_lock_item_grp;
10612                 x_return_status := FND_API.G_RET_STS_ERROR ;
10613                 FND_MSG_PUB.Count_And_Get
10614                 (       p_count   =>      x_msg_count,
10615                         p_data    =>      x_msg_data    );
10616         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
10617                 ROLLBACK TO csi_lock_item_grp;
10618                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
10619                 FND_MSG_PUB.Count_And_Get
10620                 ( p_count     =>      x_msg_count,
10621                   p_data      =>      x_msg_data  );
10622         WHEN OTHERS THEN
10623                 ROLLBACK TO csi_lock_item_grp;
10624                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
10625                 IF FND_MSG_PUB.Check_Msg_Level
10626                      (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
10627                 THEN
10628                    FND_MSG_PUB.Add_Exc_Msg
10629                     ( g_pkg_name, l_api_name );
10630                 END IF;
10631                 FND_MSG_PUB.Count_And_Get
10632                 (  p_count   =>      x_msg_count,
10633                    p_data    =>      x_msg_data   );
10634 END lock_item_instances;
10635 
10636 PROCEDURE unlock_item_instances
10637  (
10638      p_api_version           IN   NUMBER
10639     ,p_commit                IN   VARCHAR2
10640     ,p_init_msg_list         IN   VARCHAR2
10641     ,p_validation_level      IN   NUMBER
10642     ,p_config_tbl            IN   csi_cz_int.config_tbl
10643    -- ,p_txn_rec               IN   OUT NOCOPY csi_datastructures_pub.transaction_rec
10644     ,x_return_status         OUT  NOCOPY VARCHAR2
10645     ,x_msg_count             OUT  NOCOPY NUMBER
10646     ,x_msg_data              OUT  NOCOPY VARCHAR2
10647  )
10648 AS
10649 l_api_name         CONSTANT VARCHAR2(30)   := 'UNLOCK_ITEM_INSTANCES';
10650 l_api_version      CONSTANT NUMBER         := 1.0;
10651 l_csi_debug_level  NUMBER;
10652 l_msg_data         VARCHAR2(2000);
10653 l_msg_index        NUMBER;
10654 l_msg_count        NUMBER;
10655 BEGIN
10656 
10657   SAVEPOINT csi_unlock_item_grp;
10658 
10659         -- Check for freeze_flag in csi_install_parameters is set to 'Y'
10660 
10661      csi_utility_grp.check_ib_active;
10662 
10663         -- Standard call to check for call compatibility.
10664         IF NOT FND_API.Compatible_API_Call (    l_api_version           ,
10665                                                 p_api_version           ,
10666                                                 l_api_name              ,
10667                                                 g_pkg_name              )
10668         THEN
10669                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
10670         END IF;
10671 
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 
10677         --  Initialize API return status to success
10678         x_return_status := FND_API.G_RET_STS_SUCCESS;
10679 
10680         -- Check the profile option CSI_DEBUG_LEVEL for debug message reporting
10681         l_csi_debug_level:=fnd_profile.value('CSI_DEBUG_LEVEL');
10682 
10683         -- If CSI_DEBUG_LEVEL = 1 then dump the procedure name
10684         IF (l_csi_debug_level > 0) THEN
10685             csi_gen_utility_pvt.put_line( 'unlock_item_instances');
10686         END IF;
10687 
10688 
10689         -- If the debug level = 2 then dump all the parameters values.
10690         IF (l_csi_debug_level > 1) THEN
10691                csi_gen_utility_pvt.put_line( 'unlock_item_instances'||
10692                                                    p_api_version           ||'-'||
10693                                                    p_commit                ||'-'||
10694                                                    p_init_msg_list         ||'-'||
10695                                                    p_validation_level            );
10696                -- Dump the records in the log file
10697               -- csi_gen_utility_pvt.dump_txn_rec(p_txn_rec);
10698         END IF;
10699 
10700 
10701        csi_item_instance_pvt.unlock_item_instances
10702          (p_api_version      => p_api_version
10703          ,p_commit           => fnd_api.g_false
10704          ,p_init_msg_list    => p_init_msg_list
10705          ,p_validation_level => p_validation_level
10706          ,p_config_tbl       => p_config_tbl
10707          ,p_unlock_all       => fnd_api.g_false
10708         -- ,p_txn_rec          => p_txn_rec
10709          ,x_return_status    => x_return_status
10710          ,x_msg_count        => x_msg_count
10711          ,x_msg_data         => x_msg_data
10712          );
10713       IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
10714           l_msg_index := 1;
10715           l_msg_count := x_msg_count;
10716           WHILE l_msg_count > 0 LOOP
10717                 x_msg_data := FND_MSG_PUB.GET
10718                       (  l_msg_index,
10719                          FND_API.G_FALSE );
10720               csi_gen_utility_pvt.put_line('Error while unlocking item instances..');
10721               csi_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
10722               l_msg_index := l_msg_index + 1;
10723               l_msg_count := l_msg_count - 1;
10724           END LOOP;
10725          RAISE FND_API.G_EXC_ERROR;
10726        END IF;
10727 
10728 
10729         IF FND_API.To_Boolean( p_commit ) THEN
10730             COMMIT WORK;
10731         END IF;
10732 
10733         -- Standard call to get message count and if count is  get message info.
10734         FND_MSG_PUB.Count_And_Get
10735                 (p_count        =>      x_msg_count ,
10736                  p_data         =>      x_msg_data   );
10737 
10738 EXCEPTION
10739         WHEN FND_API.G_EXC_ERROR THEN
10740                 ROLLBACK TO csi_unlock_item_grp;
10741                 x_return_status := FND_API.G_RET_STS_ERROR ;
10742                 FND_MSG_PUB.Count_And_Get
10743                 (       p_count   =>      x_msg_count,
10744                         p_data    =>      x_msg_data    );
10745         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
10746                 ROLLBACK TO csi_unlock_item_grp;
10747                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
10748                 FND_MSG_PUB.Count_And_Get
10749                 ( p_count     =>      x_msg_count,
10750                   p_data      =>      x_msg_data  );
10751         WHEN OTHERS THEN
10752                 ROLLBACK TO csi_unlock_item_grp;
10753                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
10754                 IF FND_MSG_PUB.Check_Msg_Level
10755                      (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
10756                 THEN
10757                    FND_MSG_PUB.Add_Exc_Msg
10758                     ( g_pkg_name, l_api_name );
10759                 END IF;
10760                 FND_MSG_PUB.Count_And_Get
10761                 (  p_count   =>      x_msg_count,
10762                    p_data    =>      x_msg_data   );
10763 END unlock_item_instances;
10764 
10765 FUNCTION check_item_instance_lock
10766 (    p_instance_id         IN  NUMBER ,
10767      p_config_inst_hdr_id  IN  NUMBER ,
10768      p_config_inst_item_id IN  NUMBER ,
10769      p_config_inst_rev_num IN  NUMBER
10770 ) RETURN BOOLEAN IS
10771  l_return_value  BOOLEAN := TRUE;
10772  l_lock_id       NUMBER;
10773  l_lock_status   NUMBER :=0;
10774 BEGIN
10775  l_return_value:= csi_item_instance_pvt.check_item_instance_lock
10776                                       ( p_instance_id         => p_instance_id
10777                                        ,p_config_inst_hdr_id  => p_config_inst_hdr_id
10778                                        ,p_config_inst_item_id => p_config_inst_item_id
10779                                        ,p_config_inst_rev_num => p_config_inst_rev_num
10780                                        );
10781 
10782  RETURN l_return_value;
10783 END check_item_instance_lock;
10784 
10785 END CSI_ITEM_INSTANCE_GRP;