DBA Data[Home] [Help]

PACKAGE BODY: APPS.ARH_CROL_PKG

Source


1 PACKAGE BODY arh_crol_pkg as
2 /* $Header: ARHCROLB.pls 120.2 2005/06/16 21:10:07 jhuang ship $*/
3 
4   FUNCTION INIT_SWITCH
5   ( p_date   IN DATE,
6     p_switch IN VARCHAR2 DEFAULT 'NULL_GMISS')
7   RETURN DATE
8   IS
9    res_date date;
10   BEGIN
11    IF    p_switch = 'NULL_GMISS' THEN
12      IF p_date IS NULL THEN
13        res_date := FND_API.G_MISS_DATE;
14      ELSE
15        res_date := p_date;
16      END IF;
17    ELSIF p_switch = 'GMISS_NULL' THEN
18      IF p_date = FND_API.G_MISS_DATE THEN
19        res_date := NULL;
20      ELSE
21        res_date := p_date;
22      END IF;
23    ELSE
24      res_date := TO_DATE('31/12/1800','DD/MM/RRRR');
25    END IF;
26    RETURN res_date;
27   END;
28 
29   FUNCTION INIT_SWITCH
30   ( p_char   IN VARCHAR2,
31     p_switch IN VARCHAR2 DEFAULT 'NULL_GMISS')
32   RETURN VARCHAR2
33   IS
34    res_char varchar2(2000);
35   BEGIN
36    IF    p_switch = 'NULL_GMISS' THEN
37      IF p_char IS NULL THEN
38        return FND_API.G_MISS_CHAR;
39      ELSE
40        return p_char;
41      END IF;
42    ELSIF p_switch = 'GMISS_NULL' THEN
43      IF p_char = FND_API.G_MISS_CHAR THEN
44        return NULL;
45      ELSE
46        return p_char;
47      END IF;
48    ELSE
49      return ('INCORRECT_P_SWITCH');
50    END IF;
51   END;
52 
53   FUNCTION INIT_SWITCH
54   ( p_num   IN NUMBER,
55     p_switch IN VARCHAR2 DEFAULT 'NULL_GMISS')
56   RETURN NUMBER
57   IS
58   BEGIN
59    IF    p_switch = 'NULL_GMISS' THEN
60      IF p_num IS NULL THEN
61        return FND_API.G_MISS_NUM;
62      ELSE
63        return p_num;
64      END IF;
65    ELSIF p_switch = 'GMISS_NULL' THEN
66      IF p_num = FND_API.G_MISS_NUM THEN
67        return NULL;
68      ELSE
69        return p_num;
70      END IF;
71    ELSE
72      return ('9999999999');
73    END IF;
74   END;
75 
76   PROCEDURE object_version_select
77   (p_table_name                  IN VARCHAR2,
78    p_col_id                      IN VARCHAR2,
79    x_rowid                       IN OUT NOCOPY ROWID,
80    x_object_version_number       IN OUT NOCOPY NUMBER,
81    x_last_update_date            IN OUT NOCOPY DATE,
82    x_id_value                    IN OUT NOCOPY NUMBER,
83    x_return_status               IN OUT NOCOPY VARCHAR2,
84    x_msg_count                   IN OUT NOCOPY NUMBER,
85    x_msg_data                    IN OUT NOCOPY VARCHAR2 )
86   IS
87      CURSOR cu_role_resp_version IS
88      SELECT ROWID,
89             OBJECT_VERSION_NUMBER,
90             LAST_UPDATE_DATE,
91             NULL
92        FROM HZ_ROLE_RESPONSIBILITY
93       WHERE RESPONSIBILITY_ID = p_col_id;
94 
95     l_last_update_date   DATE;
96 
97   BEGIN
98     IF p_table_name = 'HZ_ROLE_RESPONSIBILITY' THEN
99          OPEN cu_role_resp_version;
100          FETCH cu_role_resp_version INTO
101            x_rowid                ,
102            x_object_version_number,
103            l_last_update_date     ,
104            x_id_value;
105          CLOSE cu_role_resp_version;
106     END IF;
107 
108     IF x_rowid IS NULL THEN
109         FND_MESSAGE.SET_NAME('AR','HZ_API_NO_RECORD');
110         FND_MESSAGE.SET_TOKEN('RECORD',p_table_name);
111         FND_MESSAGE.SET_TOKEN('ID',p_col_id);
112         FND_MSG_PUB.ADD;
113         x_return_status := FND_API.G_RET_STS_ERROR;
114     ELSE
115      IF TO_CHAR(x_last_update_date,'DD-MON-YYYY HH:MI:SS') <>
116         TO_CHAR(l_last_update_date,'DD-MON-YYYY HH:MI:SS')
117      THEN
118         FND_MESSAGE.SET_NAME('AR', 'HZ_API_RECORD_CHANGED');
119         FND_MESSAGE.SET_TOKEN('TABLE', p_table_name);
120         FND_MSG_PUB.ADD;
121         x_return_status := FND_API.G_RET_STS_ERROR;
122      END IF;
123    END IF;
124 
125   END;
126 
127 
128 --
129 --
130 --
131 -- PROCEDURE
132 --     check_unique
133 --
134 -- DESCRIPTION
135 --	Generates error if contact role is not unique
136 -- SCOPE -
137 --
138 -- EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
139 --
140 -- ARGUMENTS  : IN:
141 --			- p_contact_role_id
142 --			- p_contact_id
143 --			- p_usage_code
144 --              OUT:
145 --                    None
146 --
147 -- RETURNS    : NONE
148 --
149 -- NOTES
150 --
151 -- MODIFICATION HISTORY - Created by Kevin Hudson
152 --
153 --
154   PROCEDURE check_unique( p_contact_role_id 	in number,
155 			  p_contact_id		in number,
156 			  p_usage_code		in varchar2) is
157   --
158   unique_count number;
159   --
160   begin
161 	select 	count(1)
162 	into	unique_count
163 	from	hz_role_responsibility cr
164 	where	cr.cust_account_role_id = p_contact_id
165 	and	cr.responsibility_type	= p_usage_code
166 	and	(( p_contact_role_id is null) or
167                   (cr.responsibility_id <> p_contact_role_id));
168 	--
169 	if ( unique_count >= 1 ) then
170 		fnd_message.set_name('AR','AR_CUST_DUP_ROLE_USAGE');
171 		app_exception.raise_exception;
172 	end if;
173         --
174   end check_unique;
175   --
176   --
177 --
178 -- FUNCTION
179 --
180 --
181 -- DESCRIPTION
182 --	Checks to see if a contact role exists
183 -- SCOPE -
184 --
185 -- EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
186 --
187 -- ARGUMENTS  : IN:     p_contact_id
188 --			p_usage_code
189 --
190 --              OUT:
191 --
192 --
193 -- RETURNS    : Boolean - TRUE if contact role exists
194 --			  FALSE if contact role does not exists
195 --
196 -- NOTES
197 --
198 -- MODIFICATION HISTORY - Created by Kevin Hudson
199 --
200 --
201   FUNCTION contact_role_exists(p_contact_id in number ,p_usage_code in varchar2 ) return Boolean is
202   --
203   dummy number;
204   begin
205 	--
206 	select  1
207 	into	dummy
208 	from   	hz_role_responsibility
209 	where  	cust_account_role_id = p_contact_id
210 	and 	responsibility_type = p_usage_code;
211 	--
212 	return TRUE;
213   exception
214 	when NO_DATA_FOUND then
215 		return FALSE;
216   --
217   --
218   end contact_role_exists;
219 --
220 -- PROCEDURE
221 --     check_primary
222 --
223 -- DESCRIPTION
224 --		A contact may only have one primary role
225 -- SCOPE -
226 --
227 -- EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
228 --
229 -- ARGUMENTS  : IN:
230 --			p_contact_role_id
231 --			p_contact_id
232 --              OUT:
233 --                    None
234 --
235 -- RETURNS    : NONE
236 --
237 -- NOTES
238 --
239 -- MODIFICATION HISTORY - Created by Kevin Hudson
240 --
241 --
242   PROCEDURE check_primary (p_contact_role_id	in number,
243 			   p_contact_id		in number ) is
244   --
245   primary_count number;
246   --
247   begin
248 	select 	count(1)
249 	into	primary_count
250 	from 	hz_role_responsibility cr
251 	where	cr.cust_account_role_id	= p_contact_id
252 	and	cr.primary_flag = 'Y'
253 	and	(( p_contact_role_id is null)
254                   or (cr.responsibility_id <> p_contact_role_id));
255 	--
256 	if ( primary_count >= 1 ) then
257 		fnd_message.set_name('AR','AR_CUST_ROLE_PRIMARY');
258 		app_exception.raise_exception;
259 	end if;
260 	--
261   end check_primary;
262   --
263   PROCEDURE Insert_Row(
264                        X_Contact_Role_Id         IN OUT NOCOPY NUMBER,
265                        X_Last_Update_Date               DATE,
266                        X_Last_Updated_By                NUMBER,
267                        X_Creation_Date                  DATE,
268                        X_Created_By                     NUMBER,
269                        X_Usage_Code                     VARCHAR2,
270                        X_Contact_Id                     NUMBER,
271                        X_Last_Update_Login              NUMBER,
272                        X_Primary_Flag                   VARCHAR2,
273                        X_Attribute_Category             VARCHAR2,
274                        X_Attribute1                     VARCHAR2,
275                        X_Attribute2                     VARCHAR2,
276                        X_Attribute3                     VARCHAR2,
277                        X_Attribute4                     VARCHAR2,
278                        X_Attribute5                     VARCHAR2,
279                        X_Attribute6                     VARCHAR2,
280                        X_Attribute7                     VARCHAR2,
281                        X_Attribute8                     VARCHAR2,
282                        X_Attribute9                     VARCHAR2,
283                        X_Attribute10                    VARCHAR2,
284                        X_Attribute11                    VARCHAR2,
285                        X_Attribute12                    VARCHAR2,
286                        X_Attribute13                    VARCHAR2,
287                        X_Attribute14                    VARCHAR2,
288                        X_Attribute15                    VARCHAR2,
289                        x_org_contact_id                 NUMBER,
290                        x_return_status                 out NOCOPY varchar2,
291                        x_msg_count                     out NOCOPY number,
292                        x_msg_data                      out NOCOPY varchar2
293 
294   ) IS
295 
296 --role_rec       hz_party_pub.org_contact_role_rec_type;
297 --role_resp_rec  hz_customer_accounts_pub.role_resp_rec_type;
298 
299   role_rec          hz_party_contact_v2pub.org_contact_role_rec_type;
300   role_resp_rec     hz_cust_account_role_v2pub.role_responsibility_rec_type;
301   tmp_var           VARCHAR2(2000);
302   i                 NUMBER;
303   tmp_var1          VARCHAR2(2000);
304   l_count           NUMBER;
305 
306  BEGIN
307        --
308        check_unique(
309              p_contact_role_id => x_contact_role_id,
310              p_contact_id      => x_contact_id,
311              p_usage_code      => x_usage_code
312        );
313        --
314        if (x_primary_flag = 'Y') then
315           check_primary(
316                  p_contact_role_id => x_contact_role_id,
317                  p_contact_id      => x_contact_id
318           );
319        end if;
320        --
321       l_count := 1;
322       while l_count > 0 loop
323          select hz_org_contact_roles_s.nextval into x_contact_role_id from dual;
324 
325          select count(*) into l_count from hz_org_contact_roles
326          where org_contact_role_id = x_contact_role_id ;
327 
328       END LOOP;
329        --
330 
331    role_rec.org_contact_role_id   := X_Contact_Role_Id;
332    role_rec.role_type             := X_Usage_Code;
333 -- primary flag is ignored (always set to 'N') for org_contact_roles as it is
334 -- not possible to maintain all such info from role_responsibility.
335 -- role_responsibility can have multiple combination of primary and usage.
336 -- this relates to bug - 1348220
337    role_rec.primary_flag          := 'N';
338    role_rec.org_contact_id        := x_org_contact_id;
339    role_rec.orig_system_reference := X_Contact_Role_Id;
340    role_rec.created_by_module     := 'TCA_FORM_WRAPPER';
341 
342 --   role_rec.attribute_category     := x_Attribute_Category;
343 --   role_rec.attribute1             := x_Attribute1;
344 --   role_rec.attribute2             := x_Attribute2;
345 --   role_rec.attribute3             := x_Attribute3;
346 --   role_rec.attribute4             := x_Attribute4;
347 --   role_rec.attribute5             := x_Attribute5;
348 --   role_rec.attribute6             := x_Attribute6;
349 --   role_rec.attribute7             := x_Attribute7;
350 --   role_rec.attribute8             := x_attribute8;
351 --   role_rec.attribute9             := x_Attribute9;
352 --   role_rec.attribute10            := x_Attribute10;
353 --   role_rec.attribute11            := x_Attribute11;
354 --   role_rec.attribute12            := x_Attribute12;
355 --   role_rec.attribute13            := x_Attribute13;
356 --   role_rec.attribute14            := x_Attribute14;
357 --   role_rec.attribute15            := x_Attribute15;
358      l_count := 1;
359 
360      while l_count > 0 loop
361         select hz_role_responsibility_s.nextval into x_contact_role_id from dual;
362 
363         select count(*) into l_count from hz_role_responsibility
364         where  responsibility_id = x_contact_role_id;
365 
366      END LOOP;
367 
368    role_resp_rec.responsibility_id     := X_Contact_Role_Id;
369    role_resp_rec.cust_account_role_id  := X_Contact_Id;
370    role_resp_rec.responsibility_type   := X_Usage_Code;
371    role_resp_rec.primary_flag          := X_Primary_Flag;
372    role_resp_rec.orig_system_reference := X_Contact_Role_Id;
373    role_resp_rec.attribute_category    := x_Attribute_Category;
374    role_resp_rec.attribute1            := x_Attribute1;
375    role_resp_rec.attribute2            := x_Attribute2;
376    role_resp_rec.attribute3            := x_Attribute3;
377    role_resp_rec.attribute4            := x_Attribute4;
378    role_resp_rec.attribute5            := x_Attribute5;
379    role_resp_rec.attribute6            := x_Attribute6;
380    role_resp_rec.attribute7            := x_Attribute7;
381    role_resp_rec.attribute8            := x_attribute8;
382    role_resp_rec.attribute9            := x_Attribute9;
383    role_resp_rec.attribute10           := x_Attribute10;
384    role_resp_rec.attribute11           := x_Attribute11;
385    role_resp_rec.attribute12           := x_Attribute12;
386    role_resp_rec.attribute13           := x_Attribute13;
387    role_resp_rec.attribute14           := x_Attribute14;
388    role_resp_rec.attribute15           := x_Attribute15;
389    role_resp_rec.created_by_module     := 'TCA_FORM_WRAPPER';
390 
391     -- call V2 API.
392     HZ_CUST_ACCOUNT_ROLE_V2PUB.create_role_responsibility (
393         p_role_responsibility_rec           => role_resp_rec,
394         x_responsibility_id                 => X_Contact_Role_Id,
395         x_return_status                     => x_return_status,
396         x_msg_count                         => x_msg_count,
397         x_msg_data                          => x_msg_data
398     );
399 
400 /*
401                 hz_customer_accounts_pub.create_role_resp(
402                 1,
403                 null,
404                 null,
405                 role_resp_rec,
406                 x_return_status,
407                 x_msg_count,
408                 x_msg_data,
409                 X_Contact_Role_Id);
410 */
411 
412      IF x_msg_count > 1 THEN
413       FOR i IN 1..x_msg_count  LOOP
414         tmp_var := fnd_msg_pub.get(p_encoded => fnd_api.g_false);
418      END IF;
415         tmp_var1 := tmp_var1 || ' '|| tmp_var;
416       END LOOP;
417       x_msg_data := tmp_var1;
419 
420   END Insert_Row;
421   --
422   --
423 
424  PROCEDURE Update_Row(
425                        X_Contact_Role_Id                NUMBER,
426                        X_Last_Update_Date         in out      NOCOPY DATE,
427                        X_Last_Updated_By                NUMBER,
428                        X_Usage_Code                     VARCHAR2,
429                        X_Contact_Id                     NUMBER,
430                        X_Last_Update_Login              NUMBER,
431                        X_Primary_Flag                   VARCHAR2,
432                        X_Attribute_Category             VARCHAR2,
433                        X_Attribute1                     VARCHAR2,
434                        X_Attribute2                     VARCHAR2,
435                        X_Attribute3                     VARCHAR2,
436                        X_Attribute4                     VARCHAR2,
437                        X_Attribute5                     VARCHAR2,
438                        X_Attribute6                     VARCHAR2,
439                        X_Attribute7                     VARCHAR2,
440                        X_Attribute8                     VARCHAR2,
441                        X_Attribute9                     VARCHAR2,
442                        X_Attribute10                    VARCHAR2,
443                        X_Attribute11                    VARCHAR2,
444                        X_Attribute12                    VARCHAR2,
445                        X_Attribute13                    VARCHAR2,
446                        X_Attribute14                    VARCHAR2,
447                        X_Attribute15                    VARCHAR2,
448                        x_org_contact_id                 NUMBER,
449                        x_return_status              out NOCOPY varchar2,
450                        x_msg_count                  out NOCOPY number,
451                        x_msg_data                   out NOCOPY varchar2,
452                        x_object_version          IN OUT NOCOPY NUMBER
453  )
454  IS
455 --  role_rec       hz_party_pub.org_contact_role_rec_type;
456 --  role_resp_rec  hz_customer_accounts_pub.role_resp_rec_type;
457   role_rec                      hz_party_contact_v2pub.org_contact_role_rec_type;
458   role_resp_rec                 hz_cust_account_role_v2pub.role_responsibility_rec_type;
459   tmp_var                       VARCHAR2(2000);
460   i                             NUMBER;
461   tmp_var1                      VARCHAR2(2000);
462   l_rol_res_rowid               ROWID;
463   l_rol_res_obj_version         NUMBER;
464   l_rol_res_last_upd_date       DATE;
465   l_dummy                       NUMBER;
466 
467 BEGIN
468     --
469     check_unique( p_contact_role_id => x_contact_role_id,
470 		  p_contact_id      => x_contact_id,
471 		  p_usage_code      => x_usage_code);
472     --
473     if (x_primary_flag = 'Y') then
474 	check_primary(	p_contact_role_id => x_contact_role_id,
475 			p_contact_id      => x_contact_id);
476     end if;
477     --
478     role_rec.org_contact_role_id   := X_Contact_Role_Id;
479     role_rec.role_type             := INIT_SWITCH(X_Usage_Code);
480     role_rec.primary_flag          := INIT_SWITCH(X_Primary_Flag);
481     role_rec.org_contact_id        := INIT_SWITCH(x_org_contact_id);
482 
483 --    role_rec.attribute_category     := x_Attribute_Category;
484 --    role_rec.attribute1             := x_Attribute1;
485 --    role_rec.attribute2             := x_Attribute2;
486 --    role_rec.attribute3             := x_Attribute3;
487 --    role_rec.attribute4             := x_Attribute4;
488 --    role_rec.attribute5             := x_Attribute5;
489 --    role_rec.attribute6             := x_Attribute6;
490 --    role_rec.attribute7             := x_Attribute7;
491 --    role_rec.attribute8             := x_attribute8;
492 --    role_rec.attribute9             := x_Attribute9;
493 --    role_rec.attribute10            := x_Attribute10;
494 --    role_rec.attribute11            := x_Attribute11;
495 --    role_rec.attribute12            := x_Attribute12;
496 --    role_rec.attribute13            := x_Attribute13;
497 --    role_rec.attribute14            := x_Attribute14;
498 --    role_rec.attribute15            := x_Attribute15;
499 
500 
501     role_resp_rec.responsibility_id     := X_Contact_Role_Id;
502     role_resp_rec.cust_account_role_id  := X_Contact_Id;
503     role_resp_rec.responsibility_type   := INIT_SWITCH(X_Usage_Code);
504     role_resp_rec.primary_flag          := INIT_SWITCH(X_Primary_Flag);
505     role_resp_rec.attribute_category    := INIT_SWITCH(x_Attribute_Category);
506     role_resp_rec.attribute1            := INIT_SWITCH(x_Attribute1);
507     role_resp_rec.attribute2            := INIT_SWITCH(x_Attribute2);
508     role_resp_rec.attribute3            := INIT_SWITCH(x_Attribute3);
509     role_resp_rec.attribute4            := INIT_SWITCH(x_Attribute4);
510     role_resp_rec.attribute5            := INIT_SWITCH(x_Attribute5);
511     role_resp_rec.attribute6            := INIT_SWITCH(x_Attribute6);
512     role_resp_rec.attribute7            := INIT_SWITCH(x_Attribute7);
513     role_resp_rec.attribute8            := INIT_SWITCH(x_attribute8);
514     role_resp_rec.attribute9            := INIT_SWITCH(x_Attribute9);
515     role_resp_rec.attribute10           := INIT_SWITCH(x_Attribute10);
516     role_resp_rec.attribute11           := INIT_SWITCH(x_Attribute11);
517     role_resp_rec.attribute12           := INIT_SWITCH(x_Attribute12);
518     role_resp_rec.attribute13           := INIT_SWITCH(x_Attribute13);
519     role_resp_rec.attribute14           := INIT_SWITCH(x_Attribute14);
520     role_resp_rec.attribute15           := INIT_SWITCH(x_Attribute15);
521 
522     l_rol_res_obj_version        := x_object_version;
523     IF l_rol_res_obj_version  = -1 THEN
527         x_rowid                  => l_rol_res_rowid,
524      object_version_select
525        (p_table_name             => 'HZ_ROLE_RESPONSIBILITY',
526         p_col_id                 => X_Contact_Role_Id,
528         x_object_version_number  => l_rol_res_obj_version,
529         x_last_update_date       => l_rol_res_last_upd_date,
530         x_id_value               => l_dummy,
531         x_return_status          => x_return_status,
532         x_msg_count              => x_msg_count,
533         x_msg_data               => x_msg_data );
534 
535       IF x_msg_count > 1 THEN
536          FOR i IN 1..x_msg_count  LOOP
537            tmp_var := fnd_msg_pub.get(p_encoded => fnd_api.g_false);
538            tmp_var1 := tmp_var1 || ' '|| tmp_var;
539          END LOOP;
540          x_msg_data := tmp_var1;
541       END IF;
542 
543       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
544         return;
545       END IF;
546 
547     END IF;
548 
549     -- call V2 API.
550     HZ_CUST_ACCOUNT_ROLE_V2PUB.update_role_responsibility (
551         p_role_responsibility_rec           => role_resp_rec,
552         p_object_version_number             => l_rol_res_obj_version,
553         x_return_status                     => x_return_status,
554         x_msg_count                         => x_msg_count,
555         x_msg_data                          => x_msg_data
556     );
557 
558      IF x_msg_count > 1 THEN
559       FOR i IN 1..x_msg_count  LOOP
560         tmp_var := fnd_msg_pub.get(p_encoded => fnd_api.g_false);
561         tmp_var1 := tmp_var1 || ' '|| tmp_var;
562       END LOOP;
563       x_msg_data := tmp_var1;
564      END IF;
565 
566      IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
567         return;
568      END IF;
569 
570 
571 /*
572                 hz_customer_accounts_pub.update_role_resp(
573                 1,
574                 null,
575                 null,
576                 role_resp_rec,
577                 X_Last_Update_Date,
578                 x_return_status,
579                 x_msg_count,
580                 x_msg_data);
581 */
582 
583 
584    select last_update_date,
585           object_version_number
586      into X_Last_Update_Date,
587           x_object_version
588      from hz_role_responsibility
589     where responsibility_id = X_Contact_Role_Id;
590 
591   END Update_Row;
592 
593   --
594   --Overload method for V2API uptake
595   --
596   PROCEDURE Update_Row(
597                        X_Contact_Role_Id                NUMBER,
598                        X_Last_Update_Date         in out      NOCOPY DATE,
599                        X_Last_Updated_By                NUMBER,
600                        X_Usage_Code                     VARCHAR2,
601                        X_Contact_Id                     NUMBER,
602                        X_Last_Update_Login              NUMBER,
603                        X_Primary_Flag                   VARCHAR2,
604                        X_Attribute_Category             VARCHAR2,
605                        X_Attribute1                     VARCHAR2,
606                        X_Attribute2                     VARCHAR2,
607                        X_Attribute3                     VARCHAR2,
608                        X_Attribute4                     VARCHAR2,
609                        X_Attribute5                     VARCHAR2,
610                        X_Attribute6                     VARCHAR2,
611                        X_Attribute7                     VARCHAR2,
612                        X_Attribute8                     VARCHAR2,
613                        X_Attribute9                     VARCHAR2,
614                        X_Attribute10                    VARCHAR2,
615                        X_Attribute11                    VARCHAR2,
616                        X_Attribute12                    VARCHAR2,
617                        X_Attribute13                    VARCHAR2,
618                        X_Attribute14                    VARCHAR2,
619                        X_Attribute15                    VARCHAR2,
620                        x_org_contact_id                 NUMBER,
621                        x_return_status              out NOCOPY varchar2,
622                        x_msg_count                  out NOCOPY number,
623                        x_msg_data                   out NOCOPY varchar2
624  )
625  IS
626   l_object_version  NUMBER := -1;
627  BEGIN
628     Update_Row(
629                        X_Contact_Role_Id,
630                        X_Last_Update_Date,
631                        X_Last_Updated_By,
632                        X_Usage_Code    ,
633                        X_Contact_Id    ,
634                        X_Last_Update_Login,
635                        X_Primary_Flag  ,
636                        X_Attribute_Category,
637                        X_Attribute1    ,
638                        X_Attribute2    ,
639                        X_Attribute3    ,
640                        X_Attribute4    ,
641                        X_Attribute5    ,
642                        X_Attribute6    ,
643                        X_Attribute7    ,
644                        X_Attribute8    ,
645                        X_Attribute9    ,
646                        X_Attribute10   ,
647                        X_Attribute11   ,
648                        X_Attribute12   ,
649                        X_Attribute13   ,
650                        X_Attribute14   ,
651                        X_Attribute15   ,
652                        x_org_contact_id,
653                        x_return_status ,
654                        x_msg_count     ,
655                        x_msg_data      ,
656                        l_object_version );
657   END;
658 
662 
659 
660 
661 
663   --
664   --
665   PROCEDURE delete_row(x_contact_id in number ,x_usage_code in varchar2) is
666   BEGIN
667 	delete from hz_role_responsibility
668 	where  cust_account_role_id	= x_contact_id
669 	and    responsibility_type = x_usage_code;
670 
671 	-- The exception NO_DATE_FOUND is intentionally not raised
672 	-- This procedure is called from the arp_contacts_pkg.update_row
673 	-- the row for deletion may not exist.  Not raising the exception
674 	-- means we do not have to check for existence before delete.
675 	-- Do NOT call this procedure form a forms on-delete trigger.
676 	--
677 	-- if (SQL%NOTFOUND) then
678 	--	raise NO_DATA_FOUND;
679 	--
680 	--end if;
681   END delete_row;
682   --
683   --
684   --
685   PROCEDURE Delete_Row(X_contact_role_id number) IS
686   BEGIN
687     DELETE FROM hz_role_responsibility
688     WHERE responsibility_id  = X_contact_role_id;
689 
690     if (SQL%NOTFOUND) then
691       Raise NO_DATA_FOUND;
692     end if;
693   END Delete_Row;
694 
695 
696 END arh_crol_pkg;