[Home] [Help]
PACKAGE BODY: APPS.CSTPCINT
Source
1 PACKAGE BODY CSTPCINT AS
2 /* $Header: CSTPCINB.pls 120.2.12000000.2 2007/05/11 22:50:12 hyu ship $ */
3
4 FUNCTION update_interface(
5 i_group_id IN NUMBER,
6 error_msg OUT NOCOPY VARCHAR2
7 ) RETURN INTEGER IS
8
9 location NUMBER(2) := 1;
10
11 BEGIN
12
13 /*
14 * Resolve all ORGANIZATION_CODE in CST_ITEM_COSTS_INTERFACE.
15 * This must be done first, before the following updates.
16 *
17 */
18 UPDATE CST_ITEM_COSTS_INTERFACE CICI
19 SET
20 CICI.ORGANIZATION_ID = (
21 SELECT MP.ORGANIZATION_ID
22 FROM MTL_PARAMETERS MP
23 WHERE MP.ORGANIZATION_CODE = CICI.ORGANIZATION_CODE
24 )
25 WHERE CICI.GROUP_ID = i_group_id;
26
27 /*
28 * Resolve all INVENTORY_ITEM_ID and COST_TYPE_ID in
29 * CST_ITEM_COSTS_INTERFACE.
30 *
31 * This must be done after the ORGANIZATION_ID is resolved.
32 */
33 location := 2;
34
35 /*
36 * Only resolve inventory_item_id if it is null. This
37 * is because MIF.ITEM_NUMBER is a concatnation of segments
38 * and there are no good indices to use. Therefore the performance
39 * of the following update statement is BAD.
40 */
41
42 UPDATE CST_ITEM_COSTS_INTERFACE CICI
43 SET
44 INVENTORY_ITEM_ID = (
45 SELECT MIF.ITEM_ID
46 FROM MTL_ITEM_FLEXFIELDS MIF
47 WHERE MIF.ORGANIZATION_ID = CICI.ORGANIZATION_ID
48 AND MIF.ITEM_NUMBER = CICI.INVENTORY_ITEM
49 )
50 WHERE CICI.GROUP_ID = i_group_id
51 AND CICI.INVENTORY_ITEM_ID IS NULL;
52
53 UPDATE CST_ITEM_COSTS_INTERFACE CICI
54 SET
55 COST_TYPE_ID = (
56 SELECT CCT.COST_TYPE_ID
57 FROM CST_COST_TYPES CCT
58 WHERE NVL( ORGANIZATION_ID, CICI.ORGANIZATION_ID)
59 = CICI.ORGANIZATION_ID
60 AND CCT.COST_TYPE = CICI.COST_TYPE
61 )
62 WHERE CICI.GROUP_ID = i_group_id;
63
64 /*
65 * Resolve all ORGANIZATION_CODE in CST_ITEM_CST_DTLS_INTERFACE.
66 * This must be done first, before the following updates.
67 *
68 */
69 location := 3;
70
71 UPDATE CST_ITEM_CST_DTLS_INTERFACE CICDI
72 SET
73 CICDI.ORGANIZATION_ID = (
74 SELECT MP.ORGANIZATION_ID
75 FROM MTL_PARAMETERS MP
76 WHERE MP.ORGANIZATION_CODE = CICDI.ORGANIZATION_CODE
77 )
78 WHERE CICDI.GROUP_ID = i_group_id;
79
80 /*
81 * Resolve all INVENTORY_ITEM_ID, COST_TYPE_ID, DEPARTMENT_ID,
82 * ACTIVITY_ID, RESOURCE_ID, BASIS_RESOURCE_ID, and COST_ELEMENT_ID
83 * in CST_ITEM_CST_DTLS_INTERFACE.
84 *
85 * This must be done after the ORGANIZATION_ID is resolved.
86 */
87 location := 4;
88
89 /*
90 * Only resolve inventory_item_id if it is null. This
91 * is because MIF.ITEM_NUMBER is a concatnation of segments
92 * and there are no good indices to use. Therefore the performance
93 * of the following update statement is BAD.
94 */
95
96 UPDATE CST_ITEM_CST_DTLS_INTERFACE CICDI
97 SET
98 INVENTORY_ITEM_ID = (
99 SELECT MIF.ITEM_ID
100 FROM MTL_ITEM_FLEXFIELDS MIF
101 WHERE MIF.ORGANIZATION_ID = CICDI.ORGANIZATION_ID
102 AND MIF.ITEM_NUMBER = CICDI.INVENTORY_ITEM
103 )
104 WHERE CICDI.GROUP_ID = i_group_id
105 AND CICDI.INVENTORY_ITEM_ID IS NULL;
106
107 UPDATE CST_ITEM_CST_DTLS_INTERFACE CICDI
108 SET
109 COST_TYPE_ID = (
110 SELECT CCT.COST_TYPE_ID
111 FROM CST_COST_TYPES CCT
112 WHERE NVL( ORGANIZATION_ID, CICDI.ORGANIZATION_ID)
113 = CICDI.ORGANIZATION_ID
114 AND CCT.COST_TYPE = CICDI.COST_TYPE
115 ),
116 DEPARTMENT_ID = (
117 SELECT BD.DEPARTMENT_ID
118 FROM BOM_DEPARTMENTS BD
119 WHERE BD.ORGANIZATION_ID = CICDI.ORGANIZATION_ID
120 AND BD.DEPARTMENT_CODE = CICDI.DEPARTMENT
121 ),
122 ACTIVITY_ID = (
123 SELECT CA.ACTIVITY_ID
124 FROM CST_ACTIVITIES CA
125 WHERE NVL(CA.ORGANIZATION_ID,CICDI.ORGANIZATION_ID) =
126 CICDI.ORGANIZATION_ID
127 AND CA.ACTIVITY = CICDI.ACTIVITY
128 ),
129 /* Bug 5443502: for resource_id and basis_resource_id, added join with cost_element_id */
130 RESOURCE_ID = (
131 SELECT BR.RESOURCE_ID
132 FROM BOM_RESOURCES BR
133 WHERE BR.RESOURCE_CODE = CICDI.RESOURCE_CODE
134 AND BR.ORGANIZATION_ID = CICDI.ORGANIZATION_ID
135 AND BR.COST_ELEMENT_ID = CICDI.COST_ELEMENT_ID
136 ),
137 BASIS_RESOURCE_ID = (
138 SELECT BR.RESOURCE_ID
139 FROM BOM_RESOURCES BR
140 WHERE BR.RESOURCE_CODE = CICDI.BASIS_RESOURCE_CODE
141 AND BR.ORGANIZATION_ID = CICDI.ORGANIZATION_ID
142 AND BR.COST_ELEMENT_ID = CICDI.COST_ELEMENT_ID
143 ),
144 COST_ELEMENT_ID = (
145 SELECT CCE.COST_ELEMENT_ID
146 FROM CST_COST_ELEMENTS CCE
147 WHERE CCE.COST_ELEMENT = CICDI.COST_ELEMENT
148 )
149 WHERE CICDI.GROUP_ID = i_group_id;
150
151
152
153 RETURN( 0 ); /* No Error */
154
155 EXCEPTION
156 WHEN NO_DATA_FOUND THEN
157 RETURN( 0 );
158 WHEN OTHERS THEN
159 ROLLBACK;
160 error_msg := 'update_interface(' || location || '):' || SQLERRM(100);
161 RETURN( SQLCODE );
162
163 END update_interface;
164
165 FUNCTION validate_interface(
166 i_group_id IN NUMBER,
167 i_to_org_id IN NUMBER,
168 error_msg OUT NOCOPY VARCHAR2
169 ) RETURN INTEGER IS
170 rows_found NUMBER;
171 l_to_wsm_flag NUMBER;
172 BEGIN
173
174 rows_found := 0;
175
176 /* If destination organization is not wsm enabled, then leave yielded cost as null */
177 select count(*)
178 into l_to_wsm_flag
179 from mtl_parameters mp,wsm_parameters wsm
180 where wsm.organization_id = i_to_org_id
181 and mp.organization_id = wsm.organization_id
182 and UPPER(mp.wsm_enabled_flag) = 'Y';
183
184 if (l_to_wsm_flag <= 0) then
185 update cst_item_cst_dtls_interface
186 set yielded_cost = null
187 where organization_id = i_to_org_id
188 and group_id = i_group_id
189 and yielded_cost is not null;
190 end if;
191
192
193
194 /*
195 * CHECK RESOURCE_ID
196 */
197 INSERT into cst_interface_errors (
198 inventory_item,
199 entity_code,
200 error_type,
201 group_id
202 )
203 SELECT
204 inventory_item,
205 resource_code,
206 DECODE(cost_element_id,
207 3,1,
208 5,5),
209 i_group_id
210 FROM cst_item_cst_dtls_interface CICDI
211 WHERE CICDI.group_id = i_group_id
212 AND CICDI.resource_code IS NOT NULL
213 AND CICDI.resource_id IS NULL
214 UNION
215 SELECT
216 INVENTORY_ITEM,
217 ACTIVITY,
218 2,
219 i_group_id
220 FROM CST_ITEM_CST_DTLS_INTERFACE CICDI
221 WHERE CICDI.GROUP_ID = i_group_id
222 AND CICDI.ACTIVITY_ID IS NULL
223 AND CICDI.ACTIVITY IS NOT NULL;
224
225 rows_found := rows_found + SQL%ROWCOUNT;
226
227 insert into cst_interface_errors (
228 inventory_item,
229 entity_code,
230 error_type,
231 group_id
232 )
233 select inventory_item,
234 resource_code,
235 6,
236 i_group_id
237 from cst_item_cst_dtls_interface cicdi
238 where cicdi.group_id = i_group_id
239 /* TL Material Overhead needs to have Subelement specified */
240 and cicdi.resource_code is null
241 and (cicdi.cost_element_id = 2 and cicdi.level_type = 1);
242
243 rows_found := rows_found + SQL%ROWCOUNT;
244
245 INSERT into cst_interface_errors (
246 inventory_item,
247 entity_code,
248 error_type,
249 group_id
250 )
251 SELECT
252 INVENTORY_ITEM,
253 DEPARTMENT,
254 3,
255 i_group_id
256 FROM CST_ITEM_CST_DTLS_INTERFACE CICDI
257 WHERE CICDI.GROUP_ID = i_group_id
258 AND CICDI.DEPARTMENT_ID IS NULL
259 AND CICDI.DEPARTMENT IS NOT NULL
260 UNION
261 SELECT
262 INVENTORY_ITEM,
263 BASIS_RESOURCE_CODE,
264 4,
265 i_group_id
266 FROM CST_ITEM_CST_DTLS_INTERFACE CICDI
267 WHERE CICDI.GROUP_ID = i_group_id
268 AND CICDI.BASIS_RESOURCE_ID IS NULL
269 AND CICDI.BASIS_RESOURCE_CODE IS NOT NULL;
270
271 rows_found := rows_found + SQL%ROWCOUNT;
272
273 INSERT into cst_interface_errors (
274 inventory_item,
275 entity_code,
276 error_type,
277 group_id
278 )
279 SELECT
280 INVENTORY_ITEM,
281 COST_ELEMENT,
282 5,
283 i_group_id
284 FROM CST_ITEM_CST_DTLS_INTERFACE CICDI
285 WHERE CICDI.GROUP_ID = i_group_id
286 AND CICDI.COST_ELEMENT_ID IS NULL
287 AND CICDI.COST_ELEMENT IS NOT NULL;
288
289 rows_found := rows_found + SQL%ROWCOUNT;
290
291 IF (rows_found <> 0) THEN
292 RETURN(1); /* Invalid */
293 ELSE
294 RETURN(0); /* Valid */
295 END IF;
296
297 EXCEPTION
298 WHEN OTHERS THEN
299 ROLLBACK;
300 error_msg := 'validate_interface:' || SQLERRM(100);
301 RETURN( SQLCODE );
302
303 END validate_interface;
304
305
306 FUNCTION insert_to_dest(
307 i_group_id IN NUMBER,
308 i_user_id IN NUMBER,
309 i_request_id IN NUMBER,
310 i_prog_applid IN NUMBER,
311 i_prog_id IN NUMBER,
312 i_rowcount OUT NOCOPY NUMBER,
313 error_msg OUT NOCOPY VARCHAR2
314 ) RETURN INTEGER IS
315
316 location NUMBER := 0;
317
318 BEGIN
319
320 location := 0;
321
322 INSERT INTO CST_ITEM_COSTS (
323 INVENTORY_ITEM_ID,
324 ORGANIZATION_ID,
325 COST_TYPE_ID,
326 LAST_UPDATE_DATE,
327 LAST_UPDATED_BY,
328 CREATION_DATE,
329 CREATED_BY,
330 LAST_UPDATE_LOGIN,
331 INVENTORY_ASSET_FLAG,
332 LOT_SIZE,
333 BASED_ON_ROLLUP_FLAG,
334 SHRINKAGE_RATE,
335 DEFAULTED_FLAG,
336 COST_UPDATE_ID,
337 PL_MATERIAL,
338 PL_MATERIAL_OVERHEAD,
339 PL_RESOURCE,
340 PL_OUTSIDE_PROCESSING,
341 PL_OVERHEAD,
342 TL_MATERIAL,
343 TL_MATERIAL_OVERHEAD,
344 TL_RESOURCE,
345 TL_OUTSIDE_PROCESSING,
346 TL_OVERHEAD,
347 MATERIAL_COST,
348 MATERIAL_OVERHEAD_COST,
349 RESOURCE_COST,
350 OUTSIDE_PROCESSING_COST,
351 OVERHEAD_COST,
352 PL_ITEM_COST,
353 TL_ITEM_COST,
354 ITEM_COST,
355 UNBURDENED_COST,
356 BURDEN_COST,
357 ATTRIBUTE_CATEGORY,
358 ATTRIBUTE1,
359 ATTRIBUTE2,
360 ATTRIBUTE3,
361 ATTRIBUTE4,
362 ATTRIBUTE5,
363 ATTRIBUTE6,
364 ATTRIBUTE7,
365 ATTRIBUTE8,
366 ATTRIBUTE9,
367 ATTRIBUTE10,
368 ATTRIBUTE11,
369 ATTRIBUTE12,
370 ATTRIBUTE13,
371 ATTRIBUTE14,
372 ATTRIBUTE15,
373 REQUEST_ID,
374 PROGRAM_APPLICATION_ID,
375 PROGRAM_ID,
376 PROGRAM_UPDATE_DATE
377 ) SELECT
378 INVENTORY_ITEM_ID,
379 ORGANIZATION_ID,
380 COST_TYPE_ID,
381 SYSDATE,
382 i_user_id,
383 SYSDATE,
384 i_user_id,
385 -1,
386 INVENTORY_ASSET_FLAG,
387 LOT_SIZE,
388 BASED_ON_ROLLUP_FLAG,
389 SHRINKAGE_RATE,
390 DEFAULTED_FLAG,
391 COST_UPDATE_ID,
392 PL_MATERIAL,
393 PL_MATERIAL_OVERHEAD,
394 PL_RESOURCE,
395 PL_OUTSIDE_PROCESSING,
396 PL_OVERHEAD,
397 TL_MATERIAL,
398 TL_MATERIAL_OVERHEAD,
399 TL_RESOURCE,
400 TL_OUTSIDE_PROCESSING,
401 TL_OVERHEAD,
402 MATERIAL_COST,
403 MATERIAL_OVERHEAD_COST,
404 RESOURCE_COST,
405 OUTSIDE_PROCESSING_COST,
406 OVERHEAD_COST,
407 PL_ITEM_COST,
408 TL_ITEM_COST,
409 ITEM_COST,
410 UNBURDENED_COST,
411 BURDEN_COST,
412 ATTRIBUTE_CATEGORY,
413 ATTRIBUTE1,
414 ATTRIBUTE2,
415 ATTRIBUTE3,
416 ATTRIBUTE4,
417 ATTRIBUTE5,
418 ATTRIBUTE6,
419 ATTRIBUTE7,
420 ATTRIBUTE8,
421 ATTRIBUTE9,
422 ATTRIBUTE10,
423 ATTRIBUTE11,
424 ATTRIBUTE12,
425 ATTRIBUTE13,
426 ATTRIBUTE14,
427 ATTRIBUTE15,
428 i_request_id,
429 i_prog_applid,
430 i_prog_id,
431 SYSDATE
432 FROM CST_ITEM_COSTS_INTERFACE CICI
433 WHERE CICI.GROUP_ID = i_group_id;
434
435 i_rowcount := SQL%ROWCOUNT;
436
437 location := 1;
438
439 INSERT INTO CST_ITEM_COST_DETAILS (
440 INVENTORY_ITEM_ID,
441 ORGANIZATION_ID,
442 COST_TYPE_ID,
443 LAST_UPDATE_DATE,
444 LAST_UPDATED_BY,
445 CREATION_DATE,
446 CREATED_BY,
447 LAST_UPDATE_LOGIN,
448 OPERATION_SEQUENCE_ID,
449 OPERATION_SEQ_NUM,
450 DEPARTMENT_ID,
451 LEVEL_TYPE,
452 ACTIVITY_ID,
453 RESOURCE_SEQ_NUM,
454 RESOURCE_ID,
455 RESOURCE_RATE,
456 ITEM_UNITS,
457 ACTIVITY_UNITS,
458 USAGE_RATE_OR_AMOUNT,
459 BASIS_TYPE,
460 BASIS_RESOURCE_ID,
461 BASIS_FACTOR,
462 NET_YIELD_OR_SHRINKAGE_FACTOR,
463 ITEM_COST,
464 COST_ELEMENT_ID,
465 ROLLUP_SOURCE_TYPE,
466 ACTIVITY_CONTEXT,
467 REQUEST_ID,
468 PROGRAM_APPLICATION_ID,
469 PROGRAM_ID,
470 PROGRAM_UPDATE_DATE,
471 ATTRIBUTE_CATEGORY,
472 ATTRIBUTE1,
473 ATTRIBUTE2,
474 ATTRIBUTE3,
475 ATTRIBUTE4,
476 ATTRIBUTE5,
477 ATTRIBUTE6,
478 ATTRIBUTE7,
479 ATTRIBUTE8,
480 ATTRIBUTE9,
481 ATTRIBUTE10,
482 ATTRIBUTE11,
483 ATTRIBUTE12,
484 ATTRIBUTE13,
485 ATTRIBUTE14,
486 ATTRIBUTE15,
487 --bug5839929
488 YIELDED_COST
489 ) SELECT
490 INVENTORY_ITEM_ID,
491 ORGANIZATION_ID,
492 COST_TYPE_ID,
493 SYSDATE,
494 i_user_id,
495 SYSDATE,
496 i_user_id,
497 NULL,
498 OPERATION_SEQUENCE_ID,
499 OPERATION_SEQ_NUM,
500 DEPARTMENT_ID,
501 LEVEL_TYPE,
502 ACTIVITY_ID,
503 RESOURCE_SEQ_NUM,
504 RESOURCE_ID,
505 RESOURCE_RATE,
506 ITEM_UNITS,
507 ACTIVITY_UNITS,
508 USAGE_RATE_OR_AMOUNT,
509 BASIS_TYPE,
510 BASIS_RESOURCE_ID,
511 BASIS_FACTOR,
512 NET_YIELD_OR_SHRINKAGE_FACTOR,
513 ITEM_COST,
514 COST_ELEMENT_ID,
515 ROLLUP_SOURCE_TYPE,
516 ACTIVITY_CONTEXT,
517 i_request_id,
518 i_prog_applid,
519 i_prog_id,
520 SYSDATE,
521 ATTRIBUTE_CATEGORY,
522 ATTRIBUTE1,
523 ATTRIBUTE2,
524 ATTRIBUTE3,
525 ATTRIBUTE4,
526 ATTRIBUTE5,
527 ATTRIBUTE6,
528 ATTRIBUTE7,
529 ATTRIBUTE8,
530 ATTRIBUTE9,
531 ATTRIBUTE10,
532 ATTRIBUTE11,
533 ATTRIBUTE12,
534 ATTRIBUTE13,
535 ATTRIBUTE14,
536 ATTRIBUTE15,
537 --bug5839929
538 YIELDED_COST
539 FROM CST_ITEM_CST_DTLS_INTERFACE CICDI
540 WHERE CICDI.GROUP_ID = i_group_id;
541
542
543 RETURN( 0 ); /* No Error */
544
545 EXCEPTION
546 WHEN OTHERS THEN
547 ROLLBACK;
548 error_msg := 'insert_to_dest(' || location ||'): ' || SQLERRM(100);
549 RETURN( SQLCODE );
550
551 END insert_to_dest;
552
553 FUNCTION delete_from_interface(
554 i_group_id IN NUMBER,
555 error_msg OUT NOCOPY VARCHAR2
556 ) RETURN INTEGER IS
557
558 location NUMBER := 0;
559
560 BEGIN
561
562 location := 0;
563
564 DELETE FROM CST_ITEM_COSTS_INTERFACE CICI
565 WHERE CICI.GROUP_ID = i_group_id;
566
567 location := 1;
568
569 DELETE FROM CST_ITEM_CST_DTLS_INTERFACE CICDI
570 WHERE CICDI.GROUP_ID = i_group_id;
571
572 RETURN( 0 ); /* No Error */
573
574 EXCEPTION
575 WHEN OTHERS THEN
576 ROLLBACK;
577 error_msg := 'delete_from_interface(' || location || '): ' ||
578 SQLERRM(100);
579 RETURN( SQLCODE );
580
581 END delete_from_interface;
582
583 FUNCTION copy_to_dest(
584 i_group_id IN NUMBER,
585 i_from_org_id IN NUMBER,
586 i_to_org_id IN NUMBER,
587 i_from_cost_type IN NUMBER,
588 i_to_cost_type IN NUMBER,
589 i_summary_option IN NUMBER,
590 i_mtl_subelement IN NUMBER,
591 i_moh_subelement IN NUMBER,
592 i_res_subelement IN NUMBER,
593 i_osp_subelement IN NUMBER,
594 i_ovh_subelement IN NUMBER,
595 i_conv_type IN VARCHAR2,
596 i_exact_copy_flag IN VARCHAR2,
597 i_user_id IN NUMBER,
598 i_request_id IN NUMBER,
599 i_prog_applid IN NUMBER,
600 i_prog_id IN NUMBER,
601 i_rowcount OUT NOCOPY NUMBER,
602 error_msg OUT NOCOPY VARCHAR2
603 ) RETURN INTEGER IS
604
605 result NUMBER;
606 l_msg_count NUMBER := 0;
607 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
608 l_msg_data VARCHAR2(240) := '';
609
610 BEGIN
611
612 result := 0;
613
614 if (i_summary_option < 4) then
615 fnd_file.put_line(fnd_file.log,'calling processInterface ...');
616 fnd_file.put_line(fnd_file.log,'summary option = ' || to_char(i_summary_option));
617 CST_SubElements_PVT.processInterface
618 ( p_api_version => 1.0,
619 x_return_status => l_return_status,
620 x_msg_count => l_msg_count,
621 x_msg_data => l_msg_data,
622 p_group_id => i_group_id,
623 p_from_organization_id => i_from_org_id,
624 p_to_organization_id => i_to_org_id,
625 p_from_cost_type_id => i_from_cost_type,
626 p_to_cost_type_id => i_to_cost_type,
627 p_summary_option => i_summary_option,
628 p_mtl_subelement => i_mtl_subelement,
629 p_moh_subelement => i_moh_subelement,
630 p_res_subelement => i_res_subelement,
631 p_osp_subelement => i_osp_subelement,
632 p_ovh_subelement => i_ovh_subelement,
633 p_conv_type => i_conv_type,
634 p_exact_copy_flag => i_exact_copy_flag );
635
636
637 /**** Write the messages to the log file ****/
638
639 CST_Utility_PUB.writeLogMessages (
640 p_api_version => 1.0,
641 p_msg_count => l_msg_count,
642 p_msg_data => l_msg_data,
643 x_return_status => l_return_status );
644
645 end if;
646
647 result := cstpcint.update_interface( i_group_id, error_msg );
648 if (result <> 0)
649 then
650 return(result);
651 end if;
652
653 result := cstpcint.validate_interface( i_group_id, i_to_org_id,error_msg );
654 if (result <> 0)
655 then
656 return(result);
657 end if;
658
659
660 result := cstpcint.insert_to_dest(i_group_id,
661 i_user_id,
662 i_request_id,
663 i_prog_applid,
664 i_prog_id,
665 i_rowcount,
666 error_msg );
667
668 if (result <> 0)
669 then
670 return(result);
671 end if;
672
673 result := cstpcint.delete_from_interface( i_group_id, error_msg );
674 if (result <> 0)
675 then
676 return(result);
677 end if;
678
679 return( 0 );
680
681 EXCEPTION
682 WHEN OTHERS THEN
683 ROLLBACK;
684 error_msg := 'copy_to_dest:' || SQLERRM(100);
685 RETURN( SQLCODE );
686
687 END copy_to_dest;
688
689 END CSTPCINT; /* end package body */