[Home] [Help]
PACKAGE BODY: APPS.CSI_EXT_CONTACTS_PKG
Source
1 PACKAGE BODY CSI_Ext_Contacts_PKG AS
2 /*$Header: CSIEXCTB.pls 120.1 2005/06/28 15:42:13 rmamidip noship $*/
3 -- Defining Global Parameters.
4 G_PKG_NAME CONSTANT VARCHAR2(30) := 'CSI_EXT_CONTACTS_PKG';
5 FUNCTION Get_Txn_Type
6 RETURN NUMBER IS
7 l_Txn_Type_Id NUMBER;
8 CURSOR Txn_Cur IS
9 SELECT Transaction_Type_Id
10 FROM CSI_Txn_Types
11 WHERE Source_Transaction_Type = 'IB_UI';
12 BEGIN
13 OPEN Txn_Cur;
14 FETCH Txn_Cur INTO l_Txn_Type_Id;
15 IF NOT Txn_Cur%FOUND THEN
16 l_Txn_Type_Id := NULL;
17 END IF;
18 CLOSE Txn_Cur;
19 RETURN l_Txn_Type_Id;
20 END Get_Txn_Type;
21 -- Procedure to convert Contacts parameters to RecordType
22 PROCEDURE Convert_Contact_Param_To_Rec(
23 P_customer_product_id IN NUMBER := FND_API.G_MISS_NUM,
24 P_CS_CONTACT_ID IN NUMBER := FND_API.G_MISS_NUM,
25 P_contact_category IN VARCHAR2 := FND_API.G_MISS_CHAR,
26 P_contact_type IN VARCHAR2 := FND_API.G_MISS_CHAR,
27 P_contact_id IN NUMBER := FND_API.G_MISS_NUM,
28 P_primary_flag IN VARCHAR2 := FND_API.G_MISS_CHAR,
29 P_preferred_flag IN VARCHAR2 := FND_API.G_MISS_CHAR,
30 P_svc_provider_flag IN VARCHAR2 := FND_API.G_MISS_CHAR,
31 P_start_date_active IN DATE := FND_API.G_MISS_DATE,
32 P_end_date_active IN DATE := FND_API.G_MISS_DATE,
33 P_context IN VARCHAR2 := FND_API.G_MISS_CHAR,
34 P_attribute1 IN VARCHAR2 := FND_API.G_MISS_CHAR,
35 P_attribute2 IN VARCHAR2 := FND_API.G_MISS_CHAR,
36 P_attribute3 IN VARCHAR2 := FND_API.G_MISS_CHAR,
37 P_attribute4 IN VARCHAR2 := FND_API.G_MISS_CHAR,
38 P_attribute5 IN VARCHAR2 := FND_API.G_MISS_CHAR,
39 P_attribute6 IN VARCHAR2 := FND_API.G_MISS_CHAR,
40 P_attribute7 IN VARCHAR2 := FND_API.G_MISS_CHAR,
41 P_attribute8 IN VARCHAR2 := FND_API.G_MISS_CHAR,
42 P_attribute9 IN VARCHAR2 := FND_API.G_MISS_CHAR,
43 P_attribute10 IN VARCHAR2 := FND_API.G_MISS_CHAR,
44 P_attribute11 IN VARCHAR2 := FND_API.G_MISS_CHAR,
45 P_attribute12 IN VARCHAR2 := FND_API.G_MISS_CHAR,
46 P_attribute13 IN VARCHAR2 := FND_API.G_MISS_CHAR,
47 P_attribute14 IN VARCHAR2 := FND_API.G_MISS_CHAR,
48 P_attribute15 IN VARCHAR2 := FND_API.G_MISS_CHAR,
49 X_party_tbl OUT NOCOPY csi_datastructures_pub.party_tbl) IS
50 CURSOR CONTACT_IP(P_INSTANCE_ID NUMBER ) IS
51 select instance_party_id
52 from csi_i_parties
53 where instance_id=P_INSTANCE_ID
54 and relationship_type_code='OWNER' ;
55
56 BEGIN
57 FOR contact_ip_rec IN contact_ip(p_customer_product_id)
58 LOOP
59 x_party_tbl(1).contact_ip_id:=contact_ip_rec.instance_party_id;
60 END LOOP;
61
62 X_party_tbl(1).instance_id := NVL(P_customer_product_Id,FND_API.G_MISS_NUM);
63 X_party_tbl(1).party_source_table := NVL(P_Contact_Category,FND_API.G_MISS_CHAR);
64 X_party_tbl(1).party_id := NVL(P_Contact_Id,FND_API.G_MISS_NUM);
65 X_party_tbl(1).relationship_type_code := NVL(P_Contact_Type,FND_API.G_MISS_CHAR);
66 X_party_tbl(1).contact_flag := 'Y';
67 X_party_tbl(1).Instance_Party_Id := NVL(P_cs_Contact_Id,FND_API.G_MISS_NUM);
68 X_party_tbl(1).active_start_date :=NVL(P_Start_Date_Active,FND_API.G_MISS_DATE);
69 X_Party_tbl(1).primary_flag := NVL(P_primary_flag,FND_API.G_MISS_CHAR);
70 X_Party_tbl(1).preferred_flag := NVL(P_preferred_flag,FND_API.G_MISS_CHAR);
71 X_Party_tbl(1).context := NVL(P_context,FND_API.G_MISS_CHAR);
72 X_Party_tbl(1).Attribute1 := NVL(P_Attribute1,FND_API.G_MISS_CHAR);
73 X_Party_tbl(1).Attribute2 := NVL(P_Attribute2,FND_API.G_MISS_CHAR);
74 X_Party_tbl(1).Attribute3 := NVL(P_Attribute3,FND_API.G_MISS_CHAR);
75 X_Party_tbl(1).Attribute4 := NVL(P_Attribute4,FND_API.G_MISS_CHAR);
76 X_Party_tbl(1).Attribute5 := NVL(P_Attribute5,FND_API.G_MISS_CHAR);
77 X_Party_tbl(1).Attribute6 := NVL(P_Attribute6,FND_API.G_MISS_CHAR);
78 X_Party_tbl(1).Attribute7 := NVL(P_Attribute7,FND_API.G_MISS_CHAR);
79 X_Party_tbl(1).Attribute8 := NVL(P_Attribute8,FND_API.G_MISS_CHAR);
80 X_Party_tbl(1).Attribute9 := NVL(P_Attribute9,FND_API.G_MISS_CHAR);
81 X_Party_tbl(1).Attribute10 := NVL(P_Attribute10,FND_API.G_MISS_CHAR);
82 X_Party_tbl(1).Attribute11 := NVL(P_Attribute11,FND_API.G_MISS_CHAR);
83 X_Party_tbl(1).Attribute12 := NVL(P_Attribute12,FND_API.G_MISS_CHAR);
84 X_Party_tbl(1).Attribute13 := NVL(P_Attribute13,FND_API.G_MISS_CHAR);
85 X_Party_tbl(1).Attribute14 := NVL(P_Attribute14,FND_API.G_MISS_CHAR);
86 X_Party_tbl(1).Attribute15 := NVL(P_Attribute15,FND_API.G_MISS_CHAR);
87 END Convert_Contact_Param_To_Rec;
88
89 PROCEDURE Insert_Row(
90 p_customer_product_id IN NUMBER,
91 p_contact_category IN VARCHAR2,
92 p_contact_type IN VARCHAR2,
93 p_contact_id IN NUMBER,
94 p_primary_flag IN VARCHAR2,
95 p_preferred_flag IN VARCHAR2,
96 p_svc_provider_flag IN VARCHAR2,
97 p_start_date_active IN DATE,
98 p_end_date_active IN DATE,
99 p_context IN VARCHAR2,
100 p_attribute1 IN VARCHAR2,
101 p_attribute2 IN VARCHAR2,
102 p_attribute3 IN VARCHAR2,
103 p_attribute4 IN VARCHAR2,
104 p_attribute5 IN VARCHAR2,
105 p_attribute6 IN VARCHAR2,
106 p_attribute7 IN VARCHAR2,
107 p_attribute8 IN VARCHAR2,
108 p_attribute9 IN VARCHAR2,
109 p_attribute10 IN VARCHAR2,
110 p_attribute11 IN VARCHAR2,
111 p_attribute12 IN VARCHAR2,
112 p_attribute13 IN VARCHAR2,
113 p_attribute14 IN VARCHAR2,
114 p_attribute15 IN VARCHAR2,
115 x_cs_contact_id OUT NOCOPY NUMBER,
116 x_return_status OUT NOCOPY VARCHAR,
117 x_msg_count OUT NOCOPY NUMBER,
118 x_msg_data OUT NOCOPY VARCHAR,
119 x_object_version_number OUT NOCOPY NUMBER
120 )
121 IS
122 l_Party_Tbl CSI_DATASTRUCTURES_PUB.Party_Tbl;
123 l_Party_Account_Tbl CSI_DATASTRUCTURES_PUB.Party_Account_Tbl;
124 l_Txn_Rec CSI_DATASTRUCTURES_PUB.Transaction_Rec;
125 l_Api_Version NUMBER DEFAULT 1;
126 l_api_name CONSTANT VARCHAR2(30) := 'Insert_Row';
127 l_Commit VARCHAR2(1) := FND_API.G_FALSE;
128 l_Init_Msg_List VARCHAR2(1) := FND_API.G_FALSE;
129 l_Validation_Level NUMBER := FND_API.G_VALID_LEVEL_FULL;
130 l_Return_Status VARCHAR2(1);
131 l_Msg_Index NUMBER;
132
133 -- added as part of fix for Bug 2733128
134 l_chg_instance_rec csi_datastructures_pub.instance_rec;
135 l_chg_pricing_attribs_tbl csi_datastructures_pub.pricing_attribs_tbl;
136 l_chg_ext_attrib_val_tbl csi_datastructures_pub.extend_attrib_values_tbl;
137 l_chg_org_units_tbl csi_datastructures_pub.organization_units_tbl;
138 l_chg_inst_asset_tbl csi_datastructures_pub.instance_asset_tbl;
139 l_chg_inst_id_lst csi_datastructures_pub.id_tbl;
140
141 BEGIN
142 Convert_Contact_Param_To_Rec(
143 P_customer_product_id ,
144 NULL ,
145 P_contact_category ,
146 P_contact_type ,
147 P_contact_id ,
148 P_primary_flag ,
149 P_preferred_flag ,
150 P_svc_provider_flag ,
151 P_start_date_active ,
152 P_end_date_active ,
153 P_context ,
154 P_attribute1 ,
155 P_attribute2 ,
156 P_attribute3 ,
157 P_attribute4 ,
158 P_attribute5 ,
159 P_attribute6 ,
160 P_attribute7 ,
161 P_attribute8 ,
162 P_attribute9 ,
163 P_attribute10 ,
164 P_attribute11 ,
165 P_attribute12 ,
166 P_attribute13 ,
167 P_attribute14 ,
168 P_attribute15 ,
169 l_party_tbl );
170 l_Party_Tbl(1).object_version_number:= 1;
171 l_Txn_Rec.TRANSACTION_DATE := SYSDATE;
172 l_Txn_Rec.SOURCE_TRANSACTION_DATE:= SYSDATE;
173 l_Txn_Rec.TRANSACTION_TYPE_ID := Get_Txn_Type;
174 l_Txn_Rec.Object_Version_Number := 1;
175
176 /*
177 CSI_PARTY_RELATIONSHIPS_PUB.Create_Inst_Party_Relationship
178 (P_API_Version => l_Api_Version,
179 P_Commit => l_Commit,
180 P_Init_Msg_List => l_Init_Msg_List,
181 P_Validation_Level => l_Validation_Level,
182 P_Party_Tbl => l_Party_Tbl,
183 P_Party_Account_Tbl => l_Party_Account_Tbl,
184 P_Txn_Rec => l_Txn_Rec,
185 X_Return_Status => x_Return_Status,
186 X_Msg_Count => x_Msg_Count,
187 X_Msg_Data => x_Msg_Data);
188 */
189
190 csi_item_instance_pub.update_item_instance(
191 p_api_version => 1.0,
192 p_commit => fnd_api.g_false,
193 p_init_msg_list => fnd_api.g_true,
194 p_validation_level => fnd_api.g_valid_level_full,
195 p_instance_rec => l_chg_instance_rec,
196 p_ext_attrib_values_tbl => l_chg_ext_attrib_val_tbl,
197 p_party_tbl => l_Party_Tbl,
198 p_account_tbl => l_Party_Account_Tbl,
199 p_pricing_attrib_tbl => l_chg_pricing_attribs_tbl,
200 p_org_assignments_tbl => l_chg_org_units_tbl,
201 p_txn_rec => l_Txn_Rec,
202 p_asset_assignment_tbl => l_chg_inst_asset_tbl,
203 x_instance_id_lst => l_chg_inst_id_lst,
204 x_return_status => x_Return_Status,
205 x_msg_count => x_Msg_Count,
206 x_msg_data => x_Msg_Data);
207
208 IF NOT x_Return_Status = FND_API.G_Ret_Sts_Success
209 THEN
210 l_msg_index := 1;
211 WHILE x_msg_count > 0
212 LOOP
213 x_Msg_Data:= x_Msg_Data||FND_MSG_PUB.GET(l_msg_index,
214 FND_API.G_FALSE);
215 l_msg_index := l_msg_index + 1;
216 x_Msg_Count := x_Msg_Count - 1;
217 END LOOP;
218 RAISE fnd_api.g_Exc_Error;
219 END IF;
220 x_Cs_Contact_Id := l_Party_Tbl(1).Instance_Party_Id;
221 EXCEPTION
222 WHEN FND_API.G_EXC_ERROR THEN
223 x_return_status := FND_API.G_RET_STS_ERROR ;
224 FND_MSG_PUB.Count_And_Get
225 (p_count => x_msg_count ,
226 p_data => x_msg_data
227 );
228 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
229 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
230 FND_MSG_PUB.Count_And_Get
231 (p_count => x_msg_count ,
232 p_data => x_msg_data
233 );
234 WHEN OTHERS THEN
235 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
236 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
237 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
238 END IF;
239 FND_MSG_PUB.Count_And_Get
240 (p_count => x_msg_count ,
241 p_data => x_msg_data
242 );
243
244 END Insert_Row;
245
246 PROCEDURE Delete_Row(
247 x_return_status OUT NOCOPY VARCHAR,
248 x_msg_count OUT NOCOPY NUMBER,
249 x_msg_data OUT NOCOPY VARCHAR,
250 p_cs_contact_id IN NUMBER,
251 P_Object_Version_Number IN NUMBER)
252 IS
253 l_Party_Tbl CSI_DATASTRUCTURES_PUB.Party_Tbl;
254 l_Party_Account_Tbl CSI_DATASTRUCTURES_PUB.Party_Account_Tbl;
255 l_Txn_Rec CSI_DATASTRUCTURES_PUB.Transaction_Rec;
256 l_Api_Version NUMBER DEFAULT 1;
257 l_Api_Name VARCHAR2(30) := 'Delete_Row';
258 l_Commit VARCHAR2(1) := FND_API.G_FALSE;
259 l_Init_Msg_List VARCHAR2(1) := FND_API.G_FALSE;
260 l_Validation_Level NUMBER := FND_API.G_VALID_LEVEL_FULL;
261 l_Msg_Index NUMBER;
262 begin
263 l_Party_Tbl(1).Instance_Party_Id := p_CS_Contact_ID;
264 l_Party_Tbl(1).Object_Version_Number := p_Object_Version_Number;
265 l_Txn_Rec.TRANSACTION_DATE := SYSDATE;
266 l_Txn_Rec.SOURCE_TRANSACTION_DATE:= SYSDATE;
267 l_Txn_Rec.TRANSACTION_TYPE_ID := Get_Txn_Type;
268
269 CSI_PARTY_RELATIONSHIPS_PUB.expire_inst_party_relationship
270 ( p_api_version => l_Api_Version,
271 p_commit => l_Commit,
272 p_init_msg_list => l_Init_Msg_List,
273 p_validation_level => l_Validation_Level,
274 p_instance_party_tbl => l_party_tbl,
275 p_txn_rec => l_txn_rec,
276 x_return_status => x_Return_Status,
277 x_msg_count => x_Msg_Count,
278 x_msg_data => x_Msg_Data );
279
280 IF NOT x_Return_Status = FND_API.G_Ret_Sts_Success
281 THEN
282 l_msg_index := 1;
283 WHILE x_msg_count > 0
284 LOOP
285 x_Msg_Data := x_Msg_Data||FND_MSG_PUB.GET(l_msg_index,
286 FND_API.G_FALSE);
287 l_msg_index := l_msg_index + 1;
288 x_Msg_Count := x_Msg_Count - 1;
289 END LOOP;
290 RAISE fnd_api.g_Exc_Error;
291 END IF;
292
293 EXCEPTION
294 WHEN FND_API.G_EXC_ERROR THEN
295 x_return_status := FND_API.G_RET_STS_ERROR ;
296 FND_MSG_PUB.Count_And_Get
297 (p_count => x_msg_count ,
298 p_data => x_msg_data
299 );
300 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
301 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
302 FND_MSG_PUB.Count_And_Get
303 (p_count => x_msg_count ,
304 p_data => x_msg_data
305 );
306 WHEN OTHERS THEN
307 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
308 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
309 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
310 END IF;
311 FND_MSG_PUB.Count_And_Get
312 (p_count => x_msg_count ,
313 p_data => x_msg_data
314 );
315 END DELETE_ROW;
316 PROCEDURE Lock_Row(
317 p_cs_contact_id IN NUMBER,
318 p_customer_product_id IN NUMBER,
319 p_customer_id IN NUMBER,
320 p_contact_category IN VARCHAR2,
321 p_contact_type IN VARCHAR2,
322 p_contact_id IN NUMBER,
323 p_primary_flag IN VARCHAR2,
324 p_preferred_flag IN VARCHAR2,
325 p_svc_provider_flag IN VARCHAR2,
326 p_start_date_active IN DATE,
327 p_end_date_active IN DATE,
328 p_context IN VARCHAR2,
329 p_attribute1 IN VARCHAR2,
330 p_attribute2 IN VARCHAR2,
331 p_attribute3 IN VARCHAR2,
332 p_attribute4 IN VARCHAR2,
333 p_attribute5 IN VARCHAR2,
334 p_attribute6 IN VARCHAR2,
335 p_attribute7 IN VARCHAR2,
336 p_attribute8 IN VARCHAR2,
337 p_attribute9 IN VARCHAR2,
338 p_attribute10 IN VARCHAR2,
339 p_attribute11 IN VARCHAR2,
340 p_attribute12 IN VARCHAR2,
341 p_attribute13 IN VARCHAR2,
342 p_attribute14 IN VARCHAR2,
343 p_attribute15 IN VARCHAR2,
344 p_object_version_number IN NUMBER
345 )
346 IS
347 CURSOR C IS
348 SELECT *
349 FROM csi_i_parties
350 WHERE instance_party_id = p_cs_contact_id
351 FOR UPDATE of instance_party_id NOWAIT;
352
353 FetchC C%ROWTYPE;
354 BEGIN
355 open C;
356 FETCH C into FetchC;
357 If (C%NOTFOUND) then
358 CLOSE C;
359 FND_MESSAGE.SET_NAME('CSI','FORM_RECORD_DELETED');
360 End If;
361 close C;
362
363 If (
364 (FetchC.Instance_party_id = p_cs_contact_id )
365 AND (
366 (FetchC.Instance_id = p_customer_product_id)
367 OR ((FetchC.Instance_id is NULL) AND
368 (p_customer_product_id is NULL)))
369 AND (
370 (FetchC.Relationship_type_code = p_contact_type)
371 OR ((FetchC.Relationship_type_code is NULL) AND
372 (p_contact_type is NULL)))
373 AND (
374 (FetchC.Party_id = p_contact_id)
375 OR ((FetchC.Party_id is NULL) AND
376 (p_contact_id is NULL)))
377 AND (
378 (FetchC.primary_flag = p_primary_flag)
379 OR ((FetchC.primary_flag is NULL) AND
380 (p_primary_flag is NULL)))
381 AND (
382 (FetchC.preferred_flag = p_preferred_flag)
383 OR ((FetchC.preferred_flag is NULL) AND
384 (p_preferred_flag is NULL)))
385 AND (
386 (FetchC.Party_Source_Table = p_Contact_category)
387 OR ((FetchC.Party_Source_Table is NULL) AND
388 (p_Contact_category is NULL)))
389 AND (
390 (FetchC.Active_start_date = p_start_date_active)
391 OR ((FetchC.Active_start_date is NULL) AND
392 (p_start_date_active is NULL)))
393 AND (
394 (FetchC.Active_end_date = p_end_date_active)
395 OR ((FetchC.Active_end_date is NULL) AND
396 (p_end_date_active is NULL)))
397 AND (
398 (FetchC.attribute1 = p_attribute1)
399 OR ((FetchC.attribute1 is NULL) AND
400 (p_attribute1 is NULL)))
401 AND (
402 (FetchC.attribute2 = p_attribute2)
403 OR ((FetchC.attribute2 is NULL) AND
404 (p_attribute2 is NULL)))
405 AND (
406 (FetchC.attribute3 = p_attribute3)
407 OR ((FetchC.attribute3 is NULL) AND
408 (p_attribute3 is NULL)))
409 AND (
410 (FetchC.attribute4 = p_attribute4)
411 OR ((FetchC.attribute4 is NULL) AND
412 (p_attribute4 is NULL)))
413 AND (
414 (FetchC.attribute5 = p_attribute5)
415 OR ((FetchC.attribute5 is NULL) AND
416 (p_attribute5 is NULL)))
417 AND (
418 (FetchC.attribute6 = p_attribute6)
419 OR ((FetchC.attribute6 is NULL) AND
420 (p_attribute6 is NULL)))
421 AND (
422 (FetchC.attribute7 = p_attribute7)
423 OR ((FetchC.attribute7 is NULL) AND
424 (p_attribute7 is NULL)))
425 AND (
426 (FetchC.attribute8 = p_attribute8)
427 OR ((FetchC.attribute8 is NULL) AND
428 (p_attribute8 is NULL)))
429 AND (
430 (FetchC.attribute9 = p_attribute9)
431 OR ((FetchC.attribute9 is NULL) AND
432 (p_attribute9 is NULL)))
433 AND (
434 (FetchC.attribute10 = p_attribute10)
435 OR ((FetchC.attribute10 is NULL) AND
436 (p_attribute10 is NULL)))
437 AND (
438 (FetchC.attribute11 = p_attribute11)
439 OR ((FetchC.attribute11 is NULL) AND
440 (p_attribute11 is NULL)))
441 AND (
442 (FetchC.attribute12 = p_attribute12)
443 OR ((FetchC.attribute12 is NULL) AND
444 (p_attribute12 is NULL)))
445 AND (
446 (FetchC.attribute13 = p_attribute13)
447 OR ((FetchC.attribute13 is NULL) AND
448 (p_attribute13 is NULL)))
449 AND (
450 (FetchC.attribute14 = p_attribute14)
451 OR ((FetchC.attribute14 is NULL) AND
452 (p_attribute14 is NULL)))
453 AND (
454 (FetchC.attribute15 = p_attribute15)
455 OR ((FetchC.attribute15 is NULL) AND
456 (p_attribute15 is NULL)))
457 AND (
458 (FetchC.context = p_context)
459 OR ((FetchC.context is NULL) AND
460 (p_context is NULL)))
461 AND (
462 (FetchC.object_version_number = p_object_version_number)
463 OR ((FetchC.object_version_number is NULL) AND
464 (p_object_version_number is NULL)))
465 ) then
466 RETURN;
467 else
468 FND_MESSAGE.SET_NAME('FND','Form_Record_Changed');
469 end if;
470 END Lock_Row;
471
472 PROCEDURE Update_Row(
473 p_cs_contact_id IN NUMBER,
474 p_customer_product_id IN NUMBER,
475 p_contact_category IN VARCHAR2,
476 p_contact_type IN VARCHAR2,
477 p_contact_id IN NUMBER,
478 p_primary_flag IN VARCHAR2,
479 p_preferred_flag IN VARCHAR2,
480 p_svc_provider_flag IN VARCHAR2,
481 p_start_date_active IN DATE,
482 p_end_date_active IN DATE,
483 p_context IN VARCHAR2,
484 p_attribute1 IN VARCHAR2,
485 p_attribute2 IN VARCHAR2,
486 p_attribute3 IN VARCHAR2,
487 p_attribute4 IN VARCHAR2,
488 p_attribute5 IN VARCHAR2,
489 p_attribute6 IN VARCHAR2,
490 p_attribute7 IN VARCHAR2,
491 p_attribute8 IN VARCHAR2,
492 p_attribute9 IN VARCHAR2,
493 p_attribute10 IN VARCHAR2,
494 p_attribute11 IN VARCHAR2,
495 p_attribute12 IN VARCHAR2,
496 p_attribute13 IN VARCHAR2,
497 p_attribute14 IN VARCHAR2,
498 p_attribute15 IN VARCHAR2,
499 p_object_version_number IN NUMBER,
500 x_return_status OUT NOCOPY VARCHAR,
501 x_msg_count OUT NOCOPY NUMBER,
502 x_msg_data OUT NOCOPY VARCHAR,
503 x_object_version_number OUT NOCOPY NUMBER
504 )
505 IS
506 l_api_name CONSTANT VARCHAR2(30) := 'Update_Contact';
507 l_api_version CONSTANT NUMBER := 1.0;
508 l_Commit VARCHAR2(1) := FND_API.G_FALSE;
509 l_Init_Msg_List VARCHAR2(1) := FND_API.G_FALSE;
510 l_Validation_Level NUMBER := FND_API.G_VALID_LEVEL_FULL;
511 l_Msg_Index NUMBER;
512 l_Party_Tbl csi_datastructures_pub.party_tbl;
513 l_Account_Tbl csi_datastructures_pub.party_account_tbl;
514 l_Txn_Rec csi_datastructures_pub.Transaction_Rec;
515
516 -- added as part of fix for Bug 2733128
517 l_chg_instance_rec csi_datastructures_pub.instance_rec;
518 l_chg_pricing_attribs_tbl csi_datastructures_pub.pricing_attribs_tbl;
519 l_chg_ext_attrib_val_tbl csi_datastructures_pub.extend_attrib_values_tbl;
520 l_chg_org_units_tbl csi_datastructures_pub.organization_units_tbl;
521 l_chg_inst_asset_tbl csi_datastructures_pub.instance_asset_tbl;
522 l_chg_inst_id_lst csi_datastructures_pub.id_tbl;
523 BEGIN
524 -- Converting Single Column Attributes to Record Type.
525 Convert_Contact_Param_To_Rec(
526 P_cs_Contact_id => p_cs_contact_id,
527 P_contact_category => p_contact_category,
528 P_customer_product_id => p_customer_product_id,
529 P_contact_id => p_contact_id,
530 P_contact_type => p_contact_type,
531 P_primary_flag => p_primary_flag,
532 P_preferred_flag => p_preferred_flag,
533 P_svc_provider_flag => p_svc_provider_flag,
534 P_start_date_active => p_start_date_active,
535 P_end_date_active => p_end_date_active,
536 P_context => p_context,
537 P_attribute1 => p_attribute1,
538 P_attribute2 => p_attribute2,
539 P_attribute3 => p_attribute3,
540 P_attribute4 => p_attribute4,
541 P_attribute5 => p_attribute5,
542 P_attribute6 => p_attribute6,
543 P_attribute7 => p_attribute7,
544 P_attribute8 => p_attribute8,
545 P_attribute9 => p_attribute9,
546 P_attribute10 => p_attribute10,
547 P_attribute11 => p_attribute11,
548 P_attribute12 => p_attribute12,
549 P_attribute13 => p_attribute13,
550 P_attribute14 => p_attribute14,
551 P_attribute15 => p_attribute15,
552 X_party_tbl => l_party_tbl
553 );
554 l_Party_Tbl(1).Instance_Party_Id := P_CS_CONTACT_ID;
555 l_Party_Tbl(1).Active_Start_Date := NULL;
556 l_Party_Tbl(1).Object_Version_Number := P_Object_Version_Number;
557 l_Txn_Rec.Transaction_Type_Id := Get_Txn_Type;
558 l_Txn_Rec.Transaction_Date := SYSDATE;
559 l_Txn_Rec.Source_Transaction_Date := SYSDATE;
560 l_Txn_Rec.Object_Version_Number := 1;
561
562 /*
563 CSI_PARTY_RELATIONSHIPS_PUB.update_inst_party_relationship
564 ( p_api_version => l_Api_Version,
565 p_commit => l_Commit,
566 p_init_msg_list => l_Init_Msg_List,
567 p_validation_level => l_Validation_Level,
568 p_Party_Tbl => l_party_tbl,
569 p_party_account_tbl => l_account_tbl,
570 p_txn_rec => l_txn_rec,
571 x_return_status => x_Return_Status,
572 x_msg_count => x_Msg_Count,
573 x_msg_data => x_Msg_Data );
574 */
575
576 csi_item_instance_pub.update_item_instance(
577 p_api_version => 1.0,
578 p_commit => fnd_api.g_false,
579 p_init_msg_list => fnd_api.g_true,
580 p_validation_level => fnd_api.g_valid_level_full,
581 p_instance_rec => l_chg_instance_rec,
582 p_ext_attrib_values_tbl => l_chg_ext_attrib_val_tbl,
583 p_party_tbl => l_party_tbl,
584 p_account_tbl => l_account_tbl,
585 p_pricing_attrib_tbl => l_chg_pricing_attribs_tbl,
586 p_org_assignments_tbl => l_chg_org_units_tbl,
587 p_txn_rec => l_txn_rec,
588 p_asset_assignment_tbl => l_chg_inst_asset_tbl,
589 x_instance_id_lst => l_chg_inst_id_lst,
590 x_return_status => x_return_status,
591 x_msg_count => x_msg_count,
592 x_msg_data => x_msg_data);
593
594 IF NOT x_Return_Status = FND_API.G_Ret_Sts_Success
595 THEN
596 l_msg_index := 1;
597 WHILE x_msg_count > 0
598 LOOP
599 x_Msg_Data := x_Msg_Data||FND_MSG_PUB.GET(l_msg_index,
600 FND_API.G_FALSE);
601 l_msg_index := l_msg_index + 1;
602 x_Msg_Count := x_Msg_Count - 1;
603 END LOOP;
604 RAISE fnd_api.g_Exc_Error;
605 END IF;
606
607 EXCEPTION
608 WHEN FND_API.G_EXC_ERROR THEN
609 x_return_status := FND_API.G_RET_STS_ERROR ;
610 FND_MSG_PUB.Count_And_Get
611 (p_count => x_msg_count ,
612 p_data => x_msg_data
613 );
614 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
615 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
616 FND_MSG_PUB.Count_And_Get
617 (p_count => x_msg_count ,
618 p_data => x_msg_data
619 );
620 WHEN OTHERS THEN
621 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
622 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
623 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
624 END IF;
625 FND_MSG_PUB.Count_And_Get
626 (p_count => x_msg_count ,
627 p_data => x_msg_data
628 );
629 END Update_Row;
630 end csi_ext_contacts_pkg;