DBA Data[Home] [Help]

PACKAGE BODY: APPS.HZ_ORGANIZATION_BO_PUB

Source


1 PACKAGE BODY hz_organization_bo_pub AS
2 /*$Header: ARHBPOBB.pls 120.21.12010000.8 2009/10/28 18:04:00 awu ship $ */
3 
4   -- PRIVATE PROCEDURE assign_organization_rec
5   --
6   -- DESCRIPTION
7   --     Assign attribute value from organization business object to plsql record.
8   --
9   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
10   --
11   -- ARGUMENTS
12   --   IN:
13   --     p_organization_obj   Organization object.
14   --     p_organization_id    Organization Id.
15   --     p_organization_os    Organization original system.
16   --     p_organization_osr   Organization original system reference.
17   --     p_create_or_update   Create or update flag.
18   --   IN/OUT:
19   --     px_organization_rec  Organization plsql record.
20   --
21   -- NOTES
22   --
23   -- MODIFICATION HISTORY
24   --
25   --   02-MAR-2005    Arnold Ng          Created.
26 
27   PROCEDURE assign_organization_rec(
28     p_organization_obj                 IN            HZ_ORGANIZATION_BO,
29     p_organization_id                  IN            NUMBER,
30     p_organization_os                  IN            VARCHAR2,
31     p_organization_osr                 IN            VARCHAR2,
32     p_create_or_update                 IN            VARCHAR2 := 'C',
33     px_organization_rec                IN OUT NOCOPY HZ_PARTY_V2PUB.ORGANIZATION_REC_TYPE
34   );
35 
36   -- PRIVATE PROCEDURE assign_credit_rating_rec
37   --
38   -- DESCRIPTION
39   --     Assign attribute value from credit rating object to plsql record.
40   --
41   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
42   --
43   -- ARGUMENTS
44   --   IN:
45   --     p_credit_rating_obj  Credit rating object.
46   --     p_party_id           Party Id.
47   --   IN/OUT:
48   --     px_credit_rating_rec Credit rating plsql record.
49   --
50   -- NOTES
51   --
52   -- MODIFICATION HISTORY
53   --
54   --   02-MAR-2005    Arnold Ng          Created.
55 
56   PROCEDURE assign_credit_rating_rec(
57     p_credit_rating_obj                IN            HZ_CREDIT_RATING_OBJ,
58     p_party_id                         IN            NUMBER,
59     px_credit_rating_rec               IN OUT NOCOPY HZ_PARTY_INFO_V2PUB.CREDIT_RATING_REC_TYPE
60   );
61 
62   -- PRIVATE PROCEDURE assign_financial_report_rec
63   --
64   -- DESCRIPTION
65   --     Assign attribute value from financial report object to plsql record.
66   --
67   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
68   --
69   -- ARGUMENTS
70   --   IN:
71   --     p_fin_report_obj     Financial report object.
72   --     p_party_id           Party Id.
73   --   IN/OUT:
74   --     px_fin_report_rec    Financial report plsql record.
75   --
76   -- NOTES
77   --
78   -- MODIFICATION HISTORY
79   --
80   --   02-MAR-2005    Arnold Ng          Created.
81 
82   PROCEDURE assign_financial_report_rec(
83     p_fin_report_obj                   IN            HZ_FINANCIAL_BO,
84     p_party_id                         IN            NUMBER,
85     px_fin_report_rec                  IN OUT NOCOPY HZ_ORGANIZATION_INFO_V2PUB.FINANCIAL_REPORT_REC_TYPE
86   );
87 
88   -- PRIVATE PROCEDURE assign_financial_number_rec
89   --
90   -- DESCRIPTION
91   --     Assign attribute value from financial number object to plsql record.
92   --
93   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
94   --
95   -- ARGUMENTS
96   --   IN:
97   --     p_fin_number_obj     Financial number object.
98   --     p_fin_report_id      Financial report Id.
99   --   IN/OUT:
100   --     px_fin_number_rec    Financial number plsql record.
101   --
102   -- NOTES
103   --
104   -- MODIFICATION HISTORY
105   --
106   --   02-MAR-2005    Arnold Ng          Created.
107 
108   PROCEDURE assign_financial_number_rec(
109     p_fin_number_obj                   IN            HZ_FINANCIAL_NUMBER_OBJ,
110     p_fin_report_id                    IN            NUMBER,
111     px_fin_number_rec                  IN OUT NOCOPY HZ_ORGANIZATION_INFO_V2PUB.FINANCIAL_NUMBER_REC_TYPE
112   );
113 
114   -- PRIVATE PROCEDURE create_credit_ratings
115   --
116   -- DESCRIPTION
117   --     Create credit ratings.
118   PROCEDURE create_credit_ratings(
119     p_credit_rating_objs               IN OUT NOCOPY HZ_CREDIT_RATING_OBJ_TBL,
120     p_organization_id                  IN         NUMBER,
121     x_return_status                    OUT NOCOPY VARCHAR2,
122     x_msg_count                        OUT NOCOPY NUMBER,
123     x_msg_data                         OUT NOCOPY VARCHAR2
124   );
125 
126   -- PRIVATE PROCEDURE save_credit_ratings
127   --
128   -- DESCRIPTION
129   --     Create or update credit ratings.
130   PROCEDURE save_credit_ratings(
131     p_credit_rating_objs               IN OUT NOCOPY HZ_CREDIT_RATING_OBJ_TBL,
132     p_organization_id                  IN         NUMBER,
133     x_return_status                    OUT NOCOPY VARCHAR2,
134     x_msg_count                        OUT NOCOPY NUMBER,
135     x_msg_data                         OUT NOCOPY VARCHAR2
136   );
137 
138   -- PRIVATE PROCEDURE create_financial_reports
139   --
140   -- DESCRIPTION
141   --     Create financial reports.
142   PROCEDURE create_financial_reports(
143     p_fin_objs                         IN OUT NOCOPY HZ_FINANCIAL_BO_TBL,
144     p_organization_id                  IN         NUMBER,
145     x_return_status                    OUT NOCOPY VARCHAR2,
146     x_msg_count                        OUT NOCOPY NUMBER,
147     x_msg_data                         OUT NOCOPY VARCHAR2
148   );
149 
150   -- PRIVATE PROCEDURE save_financial_reports
151   --
152   -- DESCRIPTION
153   --     Create or update financial reports.
154   PROCEDURE save_financial_reports(
155     p_fin_objs                         IN OUT NOCOPY HZ_FINANCIAL_BO_TBL,
156     p_organization_id                  IN         NUMBER,
157     x_return_status                    OUT NOCOPY VARCHAR2,
158     x_msg_count                        OUT NOCOPY NUMBER,
159     x_msg_data                         OUT NOCOPY VARCHAR2
160   );
161 
162   -- PRIVATE PROCEDURE assign_organization_rec
163   --
164   -- DESCRIPTION
165   --     Assign attribute value from organization business object to plsql record.
166   --
167   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
168   --
169   -- ARGUMENTS
170   --   IN:
171   --     p_organization_obj   Organization object.
172   --     p_organization_id    Organization Id.
173   --     p_organization_os    Organization original system.
174   --     p_organization_osr   Organization original system reference.
175   --     p_create_or_update   Create or update flag.
176   --   IN/OUT:
177   --     px_organization_rec  Organization plsql record.
178   --
179   -- NOTES
180   --
181   -- MODIFICATION HISTORY
182   --
183   --   02-MAR-2005    Arnold Ng          Created.
184 
185   PROCEDURE assign_organization_rec(
186     p_organization_obj                 IN            HZ_ORGANIZATION_BO,
187     p_organization_id                  IN            NUMBER,
188     p_organization_os                  IN            VARCHAR2,
189     p_organization_osr                 IN            VARCHAR2,
190     p_create_or_update                 IN            VARCHAR2 := 'C',
191     px_organization_rec                IN OUT NOCOPY HZ_PARTY_V2PUB.ORGANIZATION_REC_TYPE
192   ) IS
193   BEGIN
194     px_organization_rec.organization_name:=  p_organization_obj.organization_name;
195     px_organization_rec.duns_number_c:=  p_organization_obj.duns_number_c;
196     px_organization_rec.enquiry_duns:=  p_organization_obj.enquiry_duns;
197     px_organization_rec.ceo_name:=  p_organization_obj.ceo_name;
198     px_organization_rec.ceo_title:=  p_organization_obj.ceo_title;
199     px_organization_rec.principal_name:=  p_organization_obj.principal_name;
200     px_organization_rec.principal_title:=  p_organization_obj.principal_title;
201     px_organization_rec.legal_status:=  p_organization_obj.legal_status;
202     px_organization_rec.control_yr:=  p_organization_obj.control_yr;
203     px_organization_rec.employees_total:=  p_organization_obj.employees_total;
204     px_organization_rec.hq_branch_ind:=  p_organization_obj.hq_branch_ind;
205     IF(p_organization_obj.branch_flag in ('Y','N')) THEN
206       px_organization_rec.branch_flag:=  p_organization_obj.branch_flag;
207     END IF;
208     IF(p_organization_obj.oob_ind in ('Y','N')) THEN
209       px_organization_rec.oob_ind:=  p_organization_obj.oob_ind;
210     END IF;
211     px_organization_rec.line_of_business:=  p_organization_obj.line_of_business;
212     px_organization_rec.cong_dist_code:=  p_organization_obj.cong_dist_code;
213     px_organization_rec.sic_code:=  p_organization_obj.sic_code;
214     IF(p_organization_obj.import_ind in ('Y','N')) THEN
215       px_organization_rec.import_ind:=  p_organization_obj.import_ind;
216     END IF;
217     IF(p_organization_obj.export_ind in ('Y','N')) THEN
218       px_organization_rec.export_ind:=  p_organization_obj.export_ind;
219     END IF;
220     IF(p_organization_obj.labor_surplus_ind in ('Y','N')) THEN
221       px_organization_rec.labor_surplus_ind:=  p_organization_obj.labor_surplus_ind;
222     END IF;
223     IF(p_organization_obj.debarment_ind in ('Y','N')) THEN
224       px_organization_rec.debarment_ind:=  p_organization_obj.debarment_ind;
225     END IF;
226     IF(p_organization_obj.minority_owned_ind in ('Y','N')) THEN
227       px_organization_rec.minority_owned_ind:=  p_organization_obj.minority_owned_ind;
228     END IF;
229     px_organization_rec.minority_owned_type:=  p_organization_obj.minority_owned_type;
230     IF(p_organization_obj.woman_owned_ind in ('Y','N')) THEN
231       px_organization_rec.woman_owned_ind:=  p_organization_obj.woman_owned_ind;
232     END IF;
233     IF(p_organization_obj.disadv_8a_ind in ('Y','N')) THEN
234       px_organization_rec.disadv_8a_ind:=  p_organization_obj.disadv_8a_ind;
235     END IF;
236     IF(p_organization_obj.small_bus_ind in ('Y','N')) THEN
237       px_organization_rec.small_bus_ind:=  p_organization_obj.small_bus_ind;
238     END IF;
239     px_organization_rec.rent_own_ind:=  p_organization_obj.rent_own_ind;
240     px_organization_rec.debarments_count:=  p_organization_obj.debarments_count;
241     px_organization_rec.debarments_date:=  p_organization_obj.debarments_date;
242     px_organization_rec.failure_score:=  p_organization_obj.failure_score;
243     px_organization_rec.failure_score_natnl_percentile:=  p_organization_obj.failure_score_natnl_per;
244     px_organization_rec.failure_score_override_code:=  p_organization_obj.failure_score_override_code;
245     px_organization_rec.failure_score_commentary:=  p_organization_obj.failure_score_commentary;
246     px_organization_rec.global_failure_score:=  p_organization_obj.global_failure_score;
247     px_organization_rec.db_rating:=  p_organization_obj.db_rating;
248     px_organization_rec.credit_score:=  p_organization_obj.credit_score;
249     px_organization_rec.credit_score_commentary:=  p_organization_obj.credit_score_commentary;
250     px_organization_rec.paydex_score:=  p_organization_obj.paydex_score;
251     px_organization_rec.paydex_three_months_ago:=  p_organization_obj.paydex_three_months_ago;
252     px_organization_rec.paydex_norm:=  p_organization_obj.paydex_norm;
253     px_organization_rec.best_time_contact_begin:=  p_organization_obj.best_time_contact_begin;
254     px_organization_rec.best_time_contact_end:=  p_organization_obj.best_time_contact_end;
255     px_organization_rec.organization_name_phonetic:=  p_organization_obj.organization_name_phonetic;
256     px_organization_rec.tax_reference:=  p_organization_obj.tax_reference;
257     IF(p_organization_obj.gsa_indicator_flag in ('Y','N')) THEN
258       px_organization_rec.gsa_indicator_flag:=  p_organization_obj.gsa_indicator_flag;
259     END IF;
260     px_organization_rec.jgzz_fiscal_code:=  p_organization_obj.jgzz_fiscal_code;
261     px_organization_rec.analysis_fy:=  p_organization_obj.analysis_fy;
262     px_organization_rec.fiscal_yearend_month:=  p_organization_obj.fiscal_yearend_month;
263     px_organization_rec.curr_fy_potential_revenue:=  p_organization_obj.curr_fy_potential_revenue;
264     px_organization_rec.next_fy_potential_revenue:=  p_organization_obj.next_fy_potential_revenue;
265     px_organization_rec.year_established:=  p_organization_obj.year_established;
266     px_organization_rec.mission_statement:=  p_organization_obj.mission_statement;
267     px_organization_rec.organization_type:=  p_organization_obj.organization_type;
268     px_organization_rec.business_scope:=  p_organization_obj.business_scope;
269     px_organization_rec.corporation_class:=  p_organization_obj.corporation_class;
270     px_organization_rec.known_as:=  p_organization_obj.known_as;
271     px_organization_rec.known_as2:=  p_organization_obj.known_as2;
272     px_organization_rec.known_as3:=  p_organization_obj.known_as3;
273     px_organization_rec.known_as4:=  p_organization_obj.known_as4;
274     px_organization_rec.known_as5:=  p_organization_obj.known_as5;
275     px_organization_rec.local_bus_iden_type:=  p_organization_obj.local_bus_iden_type;
276     px_organization_rec.local_bus_identifier:=  p_organization_obj.local_bus_identifier;
277     px_organization_rec.pref_functional_currency:=  p_organization_obj.pref_functional_currency;
278     px_organization_rec.registration_type:=  p_organization_obj.registration_type;
279     px_organization_rec.total_employees_text:=  p_organization_obj.total_employees_text;
280     px_organization_rec.total_employees_ind:=  p_organization_obj.total_employees_ind;
281     px_organization_rec.total_emp_est_ind:=  p_organization_obj.total_emp_est_ind;
282     px_organization_rec.total_emp_min_ind:=  p_organization_obj.total_emp_min_ind;
283     IF(p_organization_obj.parent_sub_ind in ('Y','N')) THEN
284       px_organization_rec.parent_sub_ind:=  p_organization_obj.parent_sub_ind;
285     END IF;
286     px_organization_rec.incorp_year:=  p_organization_obj.incorp_year;
287     px_organization_rec.sic_code_type:=  p_organization_obj.sic_code_type;
288     IF(p_organization_obj.public_private_owner_flag in ('Y','N')) THEN
289       px_organization_rec.public_private_ownership_flag:=  p_organization_obj.public_private_owner_flag;
290     END IF;
291     IF(p_organization_obj.internal_flag in ('Y','N')) THEN
292       px_organization_rec.internal_flag:=  p_organization_obj.internal_flag;
293     END IF;
294     px_organization_rec.local_activity_code_type:=  p_organization_obj.local_activity_code_type;
295     px_organization_rec.local_activity_code:=  p_organization_obj.local_activity_code;
296     px_organization_rec.emp_at_primary_adr:=  p_organization_obj.emp_at_primary_adr;
297     px_organization_rec.emp_at_primary_adr_text:=  p_organization_obj.emp_at_primary_adr_text;
298     px_organization_rec.emp_at_primary_adr_est_ind:=  p_organization_obj.emp_at_primary_adr_est_ind;
299     px_organization_rec.emp_at_primary_adr_min_ind:=  p_organization_obj.emp_at_primary_adr_min_ind;
300     px_organization_rec.high_credit:=  p_organization_obj.high_credit;
301     px_organization_rec.avg_high_credit:=  p_organization_obj.avg_high_credit;
302     px_organization_rec.total_payments:=  p_organization_obj.total_payments;
303     px_organization_rec.credit_score_class:=  p_organization_obj.credit_score_class;
304     px_organization_rec.credit_score_natl_percentile:=  p_organization_obj.credit_score_natl_percentile;
305     px_organization_rec.credit_score_incd_default:=  p_organization_obj.credit_score_incd_default;
306     px_organization_rec.credit_score_age:=  p_organization_obj.credit_score_age;
307     px_organization_rec.credit_score_date:=  p_organization_obj.credit_score_date;
308     px_organization_rec.credit_score_commentary2:=  p_organization_obj.credit_score_commentary2;
309     px_organization_rec.credit_score_commentary3:=  p_organization_obj.credit_score_commentary3;
310     px_organization_rec.credit_score_commentary4:=  p_organization_obj.credit_score_commentary4;
311     px_organization_rec.credit_score_commentary5:=  p_organization_obj.credit_score_commentary5;
312     px_organization_rec.credit_score_commentary6:=  p_organization_obj.credit_score_commentary6;
313     px_organization_rec.credit_score_commentary7:=  p_organization_obj.credit_score_commentary7;
314     px_organization_rec.credit_score_commentary8:=  p_organization_obj.credit_score_commentary8;
315     px_organization_rec.credit_score_commentary9:=  p_organization_obj.credit_score_commentary9;
316     px_organization_rec.credit_score_commentary10:=  p_organization_obj.credit_score_commentary10;
317     px_organization_rec.failure_score_class:=  p_organization_obj.failure_score_class;
318     px_organization_rec.failure_score_incd_default:=  p_organization_obj.failure_score_incd_default;
319     px_organization_rec.failure_score_age:=  p_organization_obj.failure_score_age;
320     px_organization_rec.failure_score_date:=  p_organization_obj.failure_score_date;
321     px_organization_rec.failure_score_commentary2:=  p_organization_obj.failure_score_commentary2;
322     px_organization_rec.failure_score_commentary3:=  p_organization_obj.failure_score_commentary3;
323     px_organization_rec.failure_score_commentary4:=  p_organization_obj.failure_score_commentary4;
324     px_organization_rec.failure_score_commentary5:=  p_organization_obj.failure_score_commentary5;
325     px_organization_rec.failure_score_commentary6:=  p_organization_obj.failure_score_commentary6;
326     px_organization_rec.failure_score_commentary7:=  p_organization_obj.failure_score_commentary7;
327     px_organization_rec.failure_score_commentary8:=  p_organization_obj.failure_score_commentary8;
328     px_organization_rec.failure_score_commentary9:=  p_organization_obj.failure_score_commentary9;
329     px_organization_rec.failure_score_commentary10:=  p_organization_obj.failure_score_commentary10;
330     px_organization_rec.maximum_credit_recommendation:=  p_organization_obj.maximum_credit_recommend;
331     px_organization_rec.maximum_credit_currency_code:=  p_organization_obj.maximum_credit_currency_code;
332     px_organization_rec.displayed_duns_party_id:=  p_organization_obj.displayed_duns_party_id;
333     IF(p_create_or_update = 'C') THEN
334       px_organization_rec.party_rec.orig_system:= p_organization_os;
335       px_organization_rec.party_rec.orig_system_reference:= p_organization_osr;
336       px_organization_rec.created_by_module:=  HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
337     END IF;
338     px_organization_rec.do_not_confuse_with:=  p_organization_obj.do_not_confuse_with;
339     px_organization_rec.actual_content_source:=  p_organization_obj.actual_content_source;
340     px_organization_rec.party_rec.party_id:= p_organization_id;
341     px_organization_rec.party_rec.party_number:= p_organization_obj.party_number;
342     px_organization_rec.party_rec.validated_flag:= p_organization_obj.validated_flag;
343     px_organization_rec.party_rec.status:= p_organization_obj.status;
344     px_organization_rec.party_rec.category_code:= p_organization_obj.category_code;
345     px_organization_rec.party_rec.salutation:= p_organization_obj.salutation;
346     px_organization_rec.party_rec.attribute_category:= p_organization_obj.attribute_category;
347     px_organization_rec.party_rec.attribute1:= p_organization_obj.attribute1;
348     px_organization_rec.party_rec.attribute2:= p_organization_obj.attribute2;
349     px_organization_rec.party_rec.attribute3:= p_organization_obj.attribute3;
350     px_organization_rec.party_rec.attribute4:= p_organization_obj.attribute4;
351     px_organization_rec.party_rec.attribute5:= p_organization_obj.attribute5;
352     px_organization_rec.party_rec.attribute6:= p_organization_obj.attribute6;
353     px_organization_rec.party_rec.attribute7:= p_organization_obj.attribute7;
354     px_organization_rec.party_rec.attribute8:= p_organization_obj.attribute8;
355     px_organization_rec.party_rec.attribute9:= p_organization_obj.attribute9;
356     px_organization_rec.party_rec.attribute10:= p_organization_obj.attribute10;
357     px_organization_rec.party_rec.attribute11:= p_organization_obj.attribute11;
358     px_organization_rec.party_rec.attribute12:= p_organization_obj.attribute12;
359     px_organization_rec.party_rec.attribute13:= p_organization_obj.attribute13;
360     px_organization_rec.party_rec.attribute14:= p_organization_obj.attribute14;
361     px_organization_rec.party_rec.attribute15:= p_organization_obj.attribute15;
362     px_organization_rec.party_rec.attribute16:= p_organization_obj.attribute16;
363     px_organization_rec.party_rec.attribute17:= p_organization_obj.attribute17;
364     px_organization_rec.party_rec.attribute18:= p_organization_obj.attribute18;
365     px_organization_rec.party_rec.attribute19:= p_organization_obj.attribute19;
366     px_organization_rec.party_rec.attribute20:= p_organization_obj.attribute20;
367     px_organization_rec.party_rec.attribute21:= p_organization_obj.attribute21;
368     px_organization_rec.party_rec.attribute22:= p_organization_obj.attribute22;
369     px_organization_rec.party_rec.attribute23:= p_organization_obj.attribute23;
370     px_organization_rec.party_rec.attribute24:= p_organization_obj.attribute24;
371   END assign_organization_rec;
372 
373   -- PRIVATE PROCEDURE assign_credit_rating_rec
374   --
375   -- DESCRIPTION
376   --     Assign attribute value from credit rating object to plsql record.
377   --
378   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
379   --
380   -- ARGUMENTS
381   --   IN:
382   --     p_credit_rating_obj  Credit rating object.
383   --     p_party_id           Party Id.
384   --   IN/OUT:
385   --     px_credit_rating_rec Credit rating plsql record.
386   --
387   -- NOTES
388   --
389   -- MODIFICATION HISTORY
390   --
391   --   02-MAR-2005    Arnold Ng          Created.
392 
393   PROCEDURE assign_credit_rating_rec(
394     p_credit_rating_obj                IN            HZ_CREDIT_RATING_OBJ,
395     p_party_id                         IN            NUMBER,
396     px_credit_rating_rec               IN OUT NOCOPY HZ_PARTY_INFO_V2PUB.CREDIT_RATING_REC_TYPE
397   ) IS
398   BEGIN
399     px_credit_rating_rec.credit_rating_id:=  p_credit_rating_obj.credit_rating_id;
400     px_credit_rating_rec.description:=  p_credit_rating_obj.description;
401     px_credit_rating_rec.party_id:=  p_party_id;
402     px_credit_rating_rec.rating:=  p_credit_rating_obj.rating;
403     px_credit_rating_rec.rated_as_of_date:=  p_credit_rating_obj.rated_as_of_date;
404     px_credit_rating_rec.rating_organization:=  p_credit_rating_obj.rating_organization;
405     px_credit_rating_rec.comments:=  p_credit_rating_obj.comments;
406     px_credit_rating_rec.det_history_ind:=  p_credit_rating_obj.det_history_ind;
407     IF(p_credit_rating_obj.fincl_embt_ind in ('Y','N')) THEN
408       px_credit_rating_rec.fincl_embt_ind:=  p_credit_rating_obj.fincl_embt_ind;
409     END IF;
410     px_credit_rating_rec.criminal_proceeding_ind:=  p_credit_rating_obj.criminal_proceeding_ind;
411     px_credit_rating_rec.claims_ind:=  p_credit_rating_obj.claims_ind;
412     px_credit_rating_rec.secured_flng_ind:=  p_credit_rating_obj.secured_flng_ind;
413     px_credit_rating_rec.fincl_lgl_event_ind:=  p_credit_rating_obj.fincl_lgl_event_ind;
414     px_credit_rating_rec.disaster_ind:=  p_credit_rating_obj.disaster_ind;
415     px_credit_rating_rec.oprg_spec_evnt_ind:=  p_credit_rating_obj.oprg_spec_evnt_ind;
416     px_credit_rating_rec.other_spec_evnt_ind:=  p_credit_rating_obj.other_spec_evnt_ind;
417     IF(p_credit_rating_obj.status in ('A','I')) THEN
418       px_credit_rating_rec.status:=  p_credit_rating_obj.status;
419     END IF;
420     px_credit_rating_rec.avg_high_credit:=  p_credit_rating_obj.avg_high_credit;
421     px_credit_rating_rec.credit_score:=  p_credit_rating_obj.credit_score;
422     px_credit_rating_rec.credit_score_age:=  p_credit_rating_obj.credit_score_age;
423     px_credit_rating_rec.credit_score_class:=  p_credit_rating_obj.credit_score_class;
424     px_credit_rating_rec.credit_score_commentary:=  p_credit_rating_obj.credit_score_commentary;
425     px_credit_rating_rec.credit_score_commentary2:=  p_credit_rating_obj.credit_score_commentary2;
426     px_credit_rating_rec.credit_score_commentary3:=  p_credit_rating_obj.credit_score_commentary3;
427     px_credit_rating_rec.credit_score_commentary4:=  p_credit_rating_obj.credit_score_commentary4;
428     px_credit_rating_rec.credit_score_commentary5:=  p_credit_rating_obj.credit_score_commentary5;
429     px_credit_rating_rec.credit_score_commentary6:=  p_credit_rating_obj.credit_score_commentary6;
430     px_credit_rating_rec.credit_score_commentary7:=  p_credit_rating_obj.credit_score_commentary7;
431     px_credit_rating_rec.credit_score_commentary8:=  p_credit_rating_obj.credit_score_commentary8;
432     px_credit_rating_rec.credit_score_commentary9:=  p_credit_rating_obj.credit_score_commentary9;
433     px_credit_rating_rec.credit_score_commentary10:=  p_credit_rating_obj.credit_score_commentary10;
434     px_credit_rating_rec.credit_score_date:=  p_credit_rating_obj.credit_score_date;
435     px_credit_rating_rec.credit_score_incd_default:=  p_credit_rating_obj.credit_score_incd_default;
436     px_credit_rating_rec.credit_score_natl_percentile:=  p_credit_rating_obj.credit_score_natl_percentile;
437     px_credit_rating_rec.failure_score:=  p_credit_rating_obj.failure_score;
438     px_credit_rating_rec.failure_score_age:=  p_credit_rating_obj.failure_score_age;
439     px_credit_rating_rec.failure_score_class:=  p_credit_rating_obj.failure_score_class;
440     px_credit_rating_rec.failure_score_commentary:=  p_credit_rating_obj.failure_score_commentary;
441     px_credit_rating_rec.failure_score_commentary2:=  p_credit_rating_obj.failure_score_commentary2;
442     px_credit_rating_rec.failure_score_commentary3:=  p_credit_rating_obj.failure_score_commentary3;
443     px_credit_rating_rec.failure_score_commentary4:=  p_credit_rating_obj.failure_score_commentary4;
444     px_credit_rating_rec.failure_score_commentary5:=  p_credit_rating_obj.failure_score_commentary5;
445     px_credit_rating_rec.failure_score_commentary6:=  p_credit_rating_obj.failure_score_commentary6;
446     px_credit_rating_rec.failure_score_commentary7:=  p_credit_rating_obj.failure_score_commentary7;
447     px_credit_rating_rec.failure_score_commentary8:=  p_credit_rating_obj.failure_score_commentary8;
448     px_credit_rating_rec.failure_score_commentary9:=  p_credit_rating_obj.failure_score_commentary9;
449     px_credit_rating_rec.failure_score_commentary10:=  p_credit_rating_obj.failure_score_commentary10;
450     px_credit_rating_rec.failure_score_date:=  p_credit_rating_obj.failure_score_date;
451     px_credit_rating_rec.failure_score_incd_default:=  p_credit_rating_obj.failure_score_incd_default;
452     px_credit_rating_rec.failure_score_natnl_percentile:=  p_credit_rating_obj.failure_score_natnl_per;
453     px_credit_rating_rec.failure_score_override_code:=  p_credit_rating_obj.failure_score_override_code;
454     px_credit_rating_rec.global_failure_score:=  p_credit_rating_obj.global_failure_score;
455     IF(p_credit_rating_obj.debarment_ind in ('Y','N')) THEN
456       px_credit_rating_rec.debarment_ind:=  p_credit_rating_obj.debarment_ind;
457     END IF;
458     px_credit_rating_rec.debarments_count:=  p_credit_rating_obj.debarments_count;
459     px_credit_rating_rec.debarments_date:=  p_credit_rating_obj.debarments_date;
460     px_credit_rating_rec.high_credit:=  p_credit_rating_obj.high_credit;
461     px_credit_rating_rec.maximum_credit_currency_code:=  p_credit_rating_obj.maximum_credit_currency_code;
462     px_credit_rating_rec.maximum_credit_rcmd:=  p_credit_rating_obj.maximum_credit_rcmd;
463     px_credit_rating_rec.paydex_norm:=  p_credit_rating_obj.paydex_norm;
464     px_credit_rating_rec.paydex_score:=  p_credit_rating_obj.paydex_score;
465     px_credit_rating_rec.paydex_three_months_ago:=  p_credit_rating_obj.paydex_three_months_ago;
466     px_credit_rating_rec.credit_score_override_code:=  p_credit_rating_obj.credit_score_override_code;
467     px_credit_rating_rec.cr_scr_clas_expl:=  p_credit_rating_obj.cr_scr_clas_expl;
468     px_credit_rating_rec.low_rng_delq_scr:=  p_credit_rating_obj.low_rng_delq_scr;
469     px_credit_rating_rec.high_rng_delq_scr:=  p_credit_rating_obj.high_rng_delq_scr;
470     px_credit_rating_rec.delq_pmt_rng_prcnt:=  p_credit_rating_obj.delq_pmt_rng_prcnt;
471     px_credit_rating_rec.delq_pmt_pctg_for_all_firms:=  p_credit_rating_obj.delq_pmt_pctg_for_all_firms;
472     px_credit_rating_rec.num_trade_experiences:=  p_credit_rating_obj.num_trade_experiences;
473     px_credit_rating_rec.paydex_firm_days:=  p_credit_rating_obj.paydex_firm_days;
474     px_credit_rating_rec.paydex_firm_comment:=  p_credit_rating_obj.paydex_firm_comment;
475     px_credit_rating_rec.paydex_industry_days:=  p_credit_rating_obj.paydex_industry_days;
476     px_credit_rating_rec.paydex_industry_comment:=  p_credit_rating_obj.paydex_industry_comment;
477     px_credit_rating_rec.paydex_comment:=  p_credit_rating_obj.paydex_comment;
478     IF(p_credit_rating_obj.suit_ind in ('Y','N')) THEN
479       px_credit_rating_rec.suit_ind:=  p_credit_rating_obj.suit_ind;
480     END IF;
481     IF(p_credit_rating_obj.lien_ind in ('Y','N')) THEN
482       px_credit_rating_rec.lien_ind:=  p_credit_rating_obj.lien_ind;
483     END IF;
484     IF(p_credit_rating_obj.judgement_ind in ('Y','N')) THEN
485       px_credit_rating_rec.judgement_ind:=  p_credit_rating_obj.judgement_ind;
486     END IF;
487     px_credit_rating_rec.bankruptcy_ind:=  p_credit_rating_obj.bankruptcy_ind;
488     IF(p_credit_rating_obj.no_trade_ind in ('Y','N')) THEN
489       px_credit_rating_rec.no_trade_ind:=  p_credit_rating_obj.no_trade_ind;
490     END IF;
491     px_credit_rating_rec.prnt_hq_bkcy_ind:=  p_credit_rating_obj.prnt_hq_bkcy_ind;
492     px_credit_rating_rec.num_prnt_bkcy_filing:=  p_credit_rating_obj.num_prnt_bkcy_filing;
493     px_credit_rating_rec.prnt_bkcy_filg_type:=  p_credit_rating_obj.prnt_bkcy_filg_type;
494     px_credit_rating_rec.prnt_bkcy_filg_chapter:=  p_credit_rating_obj.prnt_bkcy_filg_chapter;
495     px_credit_rating_rec.prnt_bkcy_filg_date:=  p_credit_rating_obj.prnt_bkcy_filg_date;
496     px_credit_rating_rec.num_prnt_bkcy_convs:=  p_credit_rating_obj.num_prnt_bkcy_convs;
497     px_credit_rating_rec.prnt_bkcy_conv_date:=  p_credit_rating_obj.prnt_bkcy_conv_date;
498     px_credit_rating_rec.prnt_bkcy_chapter_conv:=  p_credit_rating_obj.prnt_bkcy_chapter_conv;
499     px_credit_rating_rec.slow_trade_expl:=  p_credit_rating_obj.slow_trade_expl;
500     px_credit_rating_rec.negv_pmt_expl:=  p_credit_rating_obj.negv_pmt_expl;
501     px_credit_rating_rec.pub_rec_expl:=  p_credit_rating_obj.pub_rec_expl;
502     px_credit_rating_rec.business_discontinued:=  p_credit_rating_obj.business_discontinued;
503     px_credit_rating_rec.spcl_event_comment:=  p_credit_rating_obj.spcl_event_comment;
504     px_credit_rating_rec.num_spcl_event:=  p_credit_rating_obj.num_spcl_event;
505     px_credit_rating_rec.spcl_event_update_date:=  p_credit_rating_obj.spcl_event_update_date;
506     px_credit_rating_rec.spcl_evnt_txt:=  p_credit_rating_obj.spcl_evnt_txt;
507     px_credit_rating_rec.actual_content_source:=  p_credit_rating_obj.actual_content_source;
508     px_credit_rating_rec.created_by_module:= HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
509   END assign_credit_rating_rec;
510 
511   -- PRIVATE PROCEDURE assign_financial_report_rec
512   --
513   -- DESCRIPTION
514   --     Assign attribute value from financial report object to plsql record.
515   --
516   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
517   --
518   -- ARGUMENTS
519   --   IN:
520   --     p_fin_report_obj     Financial report object.
521   --     p_party_id           Party Id.
522   --   IN/OUT:
523   --     px_fin_report_rec    Financial report plsql record.
524   --
525   -- NOTES
526   --
527   -- MODIFICATION HISTORY
528   --
529   --   02-MAR-2005    Arnold Ng          Created.
530 
531   PROCEDURE assign_financial_report_rec(
532     p_fin_report_obj                   IN            HZ_FINANCIAL_BO,
533     p_party_id                         IN            NUMBER,
534     px_fin_report_rec                  IN OUT NOCOPY HZ_ORGANIZATION_INFO_V2PUB.FINANCIAL_REPORT_REC_TYPE
535   ) IS
536   BEGIN
537     px_fin_report_rec.financial_report_id       := p_fin_report_obj.financial_report_id;
538     px_fin_report_rec.party_id                  := p_party_id;
539     px_fin_report_rec.type_of_financial_report  := p_fin_report_obj.type_of_financial_report;
540     px_fin_report_rec.document_reference        := p_fin_report_obj.document_reference;
541     px_fin_report_rec.date_report_issued        := p_fin_report_obj.date_report_issued;
542     px_fin_report_rec.issued_period             := p_fin_report_obj.issued_period;
543     px_fin_report_rec.report_start_date         := p_fin_report_obj.report_start_date;
544     px_fin_report_rec.report_end_date           := p_fin_report_obj.report_end_date;
545     px_fin_report_rec.requiring_authority       := p_fin_report_obj.requiring_authority;
546     IF(p_fin_report_obj.audit_ind in ('Y','N')) THEN
547       px_fin_report_rec.audit_ind                 := p_fin_report_obj.audit_ind;
548     END IF;
549     IF(p_fin_report_obj.consolidated_ind in ('Y','N')) THEN
550       px_fin_report_rec.consolidated_ind          := p_fin_report_obj.consolidated_ind;
551     END IF;
552     IF(p_fin_report_obj.estimated_ind in ('Y','N')) THEN
553       px_fin_report_rec.estimated_ind             := p_fin_report_obj.estimated_ind;
554     END IF;
555     IF(p_fin_report_obj.fiscal_ind in ('Y','N')) THEN
556       px_fin_report_rec.fiscal_ind                := p_fin_report_obj.fiscal_ind;
557     END IF;
558     IF(p_fin_report_obj.final_ind in ('Y','N')) THEN
559       px_fin_report_rec.final_ind                 := p_fin_report_obj.final_ind;
560     END IF;
561     IF(p_fin_report_obj.forecast_ind in ('Y','N')) THEN
562       px_fin_report_rec.forecast_ind              := p_fin_report_obj.forecast_ind;
563     END IF;
564     IF(p_fin_report_obj.opening_ind in ('Y','N')) THEN
565       px_fin_report_rec.opening_ind               := p_fin_report_obj.opening_ind;
566     END IF;
567     IF(p_fin_report_obj.proforma_ind in ('Y','N')) THEN
568       px_fin_report_rec.proforma_ind              := p_fin_report_obj.proforma_ind;
569     END IF;
570     IF(p_fin_report_obj.qualified_ind in ('Y','N')) THEN
571       px_fin_report_rec.qualified_ind             := p_fin_report_obj.qualified_ind;
572     END IF;
573     IF(p_fin_report_obj.restated_ind in ('Y','N')) THEN
574       px_fin_report_rec.restated_ind              := p_fin_report_obj.restated_ind;
575     END IF;
576     IF(p_fin_report_obj.signed_by_principals_ind in ('Y','N')) THEN
577       px_fin_report_rec.signed_by_principals_ind  := p_fin_report_obj.signed_by_principals_ind;
578     END IF;
579     IF(p_fin_report_obj.trial_balance_ind in ('Y','N')) THEN
580       px_fin_report_rec.trial_balance_ind         := p_fin_report_obj.trial_balance_ind;
581     END IF;
582     IF(p_fin_report_obj.unbalanced_ind in ('Y','N')) THEN
583       px_fin_report_rec.unbalanced_ind            := p_fin_report_obj.unbalanced_ind;
584     END IF;
585     IF(p_fin_report_obj.status in ('A','I')) THEN
586       px_fin_report_rec.status                    := p_fin_report_obj.status;
587     END IF;
588     px_fin_report_rec.created_by_module         := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
589   END assign_financial_report_rec;
590 
591   -- PRIVATE PROCEDURE assign_financial_number_rec
592   --
593   -- DESCRIPTION
594   --     Assign attribute value from financial number object to plsql record.
595   --
596   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
597   --
598   -- ARGUMENTS
599   --   IN:
600   --     p_fin_number_obj     Financial number object.
601   --     p_fin_report_id      Financial report Id.
602   --   IN/OUT:
603   --     px_fin_number_rec    Financial number plsql record.
604   --
605   -- NOTES
606   --
607   -- MODIFICATION HISTORY
608   --
609   --   02-MAR-2005    Arnold Ng          Created.
610 
611   PROCEDURE assign_financial_number_rec(
612     p_fin_number_obj                   IN            HZ_FINANCIAL_NUMBER_OBJ,
613     p_fin_report_id                    IN            NUMBER,
614     px_fin_number_rec                  IN OUT NOCOPY HZ_ORGANIZATION_INFO_V2PUB.FINANCIAL_NUMBER_REC_TYPE
615   ) IS
616   BEGIN
617     px_fin_number_rec.financial_number_id       := p_fin_number_obj.financial_number_id;
618     px_fin_number_rec.financial_report_id       := p_fin_report_id;
619     px_fin_number_rec.financial_number          := p_fin_number_obj.financial_number;
620     px_fin_number_rec.financial_number_name     := p_fin_number_obj.financial_number_name;
621     px_fin_number_rec.financial_units_applied   := p_fin_number_obj.financial_units_applied;
622     px_fin_number_rec.financial_number_currency := p_fin_number_obj.financial_number_currency;
623     px_fin_number_rec.projected_actual_flag     := p_fin_number_obj.projected_actual_flag;
624     IF(p_fin_number_obj.status in ('A','I')) THEN
625       px_fin_number_rec.status                    := p_fin_number_obj.status;
626     END IF;
627     px_fin_number_rec.created_by_module         := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
628   END assign_financial_number_rec;
629 
630   -- PRIVATE PROCEDURE create_credit_ratings
631   --
632   -- DESCRIPTION
633   --     Create credit ratings.
634   --
635   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
636   --
637   -- ARGUMENTS
638   --   IN:
639   --     p_credit_rating_objs List of credit rating objects.
640   --     p_organization_id    Organization Id.
641   --   OUT:
642   --     x_return_status      Return status after the call. The status can
643   --                          be fnd_api.g_ret_sts_success (success),
644   --                          fnd_api.g_ret_sts_error (error),
645   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
646   --     x_msg_count          Number of messages in message stack.
647   --     x_msg_data           Message text if x_msg_count is 1.
648   --
649   -- NOTES
650   --
651   -- MODIFICATION HISTORY
652   --
653   --   02-MAR-2005    Arnold Ng          Created.
654 
655   PROCEDURE create_credit_ratings(
656     p_credit_rating_objs               IN OUT NOCOPY HZ_CREDIT_RATING_OBJ_TBL,
657     p_organization_id                  IN         NUMBER,
658     x_return_status                    OUT NOCOPY VARCHAR2,
659     x_msg_count                        OUT NOCOPY NUMBER,
660     x_msg_data                         OUT NOCOPY VARCHAR2
661   ) IS
662     l_debug_prefix        VARCHAR2(30);
663     l_credit_rating_rec   HZ_PARTY_INFO_V2PUB.CREDIT_RATING_REC_TYPE;
664     l_dummy_id            NUMBER;
665   BEGIN
666     -- Standard start of API savepoint
667     SAVEPOINT create_credit_ratings_pub;
668 
669     -- initialize API return status to success.
670     x_return_status := FND_API.G_RET_STS_SUCCESS;
671 
672     -- Debug info.
673     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
674         hz_utility_v2pub.debug(p_message=>'create_credit_ratings(+)',
675                                p_prefix=>l_debug_prefix,
676                                p_msg_level=>fnd_log.level_procedure);
677     END IF;
678 
679     --------------------------------
680     -- Assign credit rating record
681     --------------------------------
682     FOR i IN 1..p_credit_rating_objs.COUNT LOOP
683       assign_credit_rating_rec(
684         p_credit_rating_obj         => p_credit_rating_objs(i),
685         p_party_id                  => p_organization_id,
686         px_credit_rating_rec        => l_credit_rating_rec
687       );
688 
689       HZ_PARTY_INFO_V2PUB.create_credit_rating(
690         p_credit_rating_rec         => l_credit_rating_rec,
691         x_credit_rating_id          => l_dummy_id,
692         x_return_status             => x_return_status,
693         x_msg_count                 => x_msg_count,
694         x_msg_data                  => x_msg_data
695       );
696 
697       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
698         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
699           hz_utility_v2pub.debug(p_message=>'Error occurred at hz_organization_bo_pub.create_credit_ratings, organization id: '||p_organization_id,
700                                  p_prefix=>l_debug_prefix,
701                                  p_msg_level=>fnd_log.level_procedure);
702         END IF;
703         RAISE FND_API.G_EXC_ERROR;
704       END IF;
705 
706       -- assign credit_rating_id
707       p_credit_rating_objs(i).credit_rating_id := l_dummy_id;
708     END LOOP;
709 
710     -- Debug info.
711     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
712          hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
713                                p_msg_data=>x_msg_data,
714                                p_msg_type=>'WARNING',
715                                p_msg_level=>fnd_log.level_exception);
716     END IF;
717     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
718         hz_utility_v2pub.debug(p_message=>'create_credit_ratings(-)',
719                                p_prefix=>l_debug_prefix,
720                                p_msg_level=>fnd_log.level_procedure);
721     END IF;
722   EXCEPTION
723     WHEN fnd_api.g_exc_error THEN
724       ROLLBACK TO create_credit_ratings_pub;
725       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
726       FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CREDIT_RATINGS');
727       FND_MSG_PUB.ADD;
728 
729       x_return_status := fnd_api.g_ret_sts_error;
730 
731       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
732                                 p_count => x_msg_count,
733                                 p_data  => x_msg_data);
734 
735       -- Debug info.
736       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
737         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
738                                p_msg_data=>x_msg_data,
739                                p_msg_type=>'ERROR',
740                                p_msg_level=>fnd_log.level_error);
741       END IF;
742       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
743         hz_utility_v2pub.debug(p_message=>'create_credit_ratings(-)',
744                                p_prefix=>l_debug_prefix,
745                                p_msg_level=>fnd_log.level_procedure);
746       END IF;
747     WHEN fnd_api.g_exc_unexpected_error THEN
748       ROLLBACK TO create_credit_ratings_pub;
749       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
750       FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CREDIT_RATINGS');
751       FND_MSG_PUB.ADD;
752 
753       x_return_status := fnd_api.g_ret_sts_unexp_error;
754 
755       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
756                                 p_count => x_msg_count,
757                                 p_data  => x_msg_data);
758 
759       -- Debug info.
760       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
761         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
762                                p_msg_data=>x_msg_data,
763                                p_msg_type=>'UNEXPECTED ERROR',
764                                p_msg_level=>fnd_log.level_error);
765       END IF;
766       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
767         hz_utility_v2pub.debug(p_message=>'create_credit_ratings(-)',
768                                p_prefix=>l_debug_prefix,
769                                p_msg_level=>fnd_log.level_procedure);
770       END IF;
771     WHEN OTHERS THEN
772       ROLLBACK TO create_credit_ratings_pub;
773       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
774       FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CREDIT_RATINGS');
775       FND_MSG_PUB.ADD;
776 
777       x_return_status := fnd_api.g_ret_sts_unexp_error;
778 
779       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
780       fnd_message.set_token('ERROR' ,SQLERRM);
781       fnd_msg_pub.add;
782 
783       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
784                                 p_count => x_msg_count,
785                                 p_data  => x_msg_data);
786 
787       -- Debug info.
788       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
789         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
790                                p_msg_data=>x_msg_data,
791                                p_msg_type=>'SQL ERROR',
792                                p_msg_level=>fnd_log.level_error);
793       END IF;
794       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
795         hz_utility_v2pub.debug(p_message=>'create_credit_ratings(-)',
796                                p_prefix=>l_debug_prefix,
797                                p_msg_level=>fnd_log.level_procedure);
798       END IF;
799   END create_credit_ratings;
800 
801   -- PRIVATE PROCEDURE save_credit_ratings
802   --
803   -- DESCRIPTION
804   --     Create or update credit ratings.
805   --
806   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
807   --
808   -- ARGUMENTS
809   --   IN:
810   --     p_credit_rating_objs List of credit rating objects.
811   --     p_organization_id    Organization Id.
812   --   OUT:
813   --     x_return_status      Return status after the call. The status can
814   --                          be fnd_api.g_ret_sts_success (success),
815   --                          fnd_api.g_ret_sts_error (error),
816   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
817   --     x_msg_count          Number of messages in message stack.
818   --     x_msg_data           Message text if x_msg_count is 1.
819   --
820   -- NOTES
821   --
822   -- MODIFICATION HISTORY
823   --
824   --   02-MAR-2005    Arnold Ng          Created.
825 
826   PROCEDURE save_credit_ratings(
827     p_credit_rating_objs               IN OUT NOCOPY HZ_CREDIT_RATING_OBJ_TBL,
828     p_organization_id                  IN         NUMBER,
829     x_return_status                    OUT NOCOPY VARCHAR2,
830     x_msg_count                        OUT NOCOPY NUMBER,
831     x_msg_data                         OUT NOCOPY VARCHAR2
832   ) IS
833     l_debug_prefix        VARCHAR2(30);
834     l_credit_rating_rec   HZ_PARTY_INFO_V2PUB.CREDIT_RATING_REC_TYPE;
835     l_dummy_id            NUMBER;
836     l_ovn                 NUMBER := NULL;
837   BEGIN
838     -- Standard start of API savepoint
839     SAVEPOINT save_credit_ratings_pub;
840 
841     -- initialize API return status to success.
842     x_return_status := FND_API.G_RET_STS_SUCCESS;
843 
844     -- Debug info.
845     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
846         hz_utility_v2pub.debug(p_message=>'save_credit_ratings(+)',
847                                p_prefix=>l_debug_prefix,
848                                p_msg_level=>fnd_log.level_procedure);
849     END IF;
850     --------------------------------
851     -- Create/Update credit rating
852     --------------------------------
853     FOR i IN 1..p_credit_rating_objs.COUNT LOOP
854       assign_credit_rating_rec(
855         p_credit_rating_obj         => p_credit_rating_objs(i),
856         p_party_id                  => p_organization_id,
857         px_credit_rating_rec        => l_credit_rating_rec
858       );
859 
860       hz_registry_validate_bo_pvt.check_credit_rating_op(
861         p_party_id            => p_organization_id,
862         px_credit_rating_id   => l_credit_rating_rec.credit_rating_id,
863         p_rating_organization => l_credit_rating_rec.rating_organization,
864         p_rated_as_of_date    => l_credit_rating_rec.rated_as_of_date,
865         x_object_version_number => l_ovn
866       );
867 
868       IF(l_ovn = -1) THEN
869         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
870           hz_utility_v2pub.debug(p_message=>'Save Credit Ratings - Error occurred at hz_organization_bo_pub.check_credit_rating_op, organization id: '||p_organization_id||' '||' ovn:'||l_ovn,
871                                  p_prefix=>l_debug_prefix,
872                                  p_msg_level=>fnd_log.level_procedure);
873         END IF;
874         FND_MESSAGE.SET_NAME('AR', 'HZ_API_INVALID_ID');
875         FND_MSG_PUB.ADD;
876         RAISE FND_API.G_EXC_ERROR;
877       END IF;
878 
879       IF(l_ovn IS NULL) THEN
880         HZ_PARTY_INFO_V2PUB.create_credit_rating(
881           p_credit_rating_rec         => l_credit_rating_rec,
882           x_credit_rating_id          => l_dummy_id,
883           x_return_status             => x_return_status,
884           x_msg_count                 => x_msg_count,
885           x_msg_data                  => x_msg_data
886         );
887 
888         -- assign credit_rating_id
889         p_credit_rating_objs(i).credit_rating_id := l_dummy_id;
890       ELSE
891         -- clean up created_by_module for update
892         l_credit_rating_rec.created_by_module := NULL;
893         HZ_PARTY_INFO_V2PUB.update_credit_rating(
894           p_credit_rating_rec         => l_credit_rating_rec,
895           p_object_version_number     => l_ovn,
896           x_return_status             => x_return_status,
897           x_msg_count                 => x_msg_count,
898           x_msg_data                  => x_msg_data
899         );
900 
901         -- assign credit_rating_id
902         p_credit_rating_objs(i).credit_rating_id := l_credit_rating_rec.credit_rating_id;
903       END IF;
904 
905       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
906         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
907           hz_utility_v2pub.debug(p_message=>'Error occurred at hz_organization_bo_pub.create_credit_ratings, organization id: '||p_organization_id,
908                                  p_prefix=>l_debug_prefix,
909                                  p_msg_level=>fnd_log.level_procedure);
910         END IF;
911         RAISE FND_API.G_EXC_ERROR;
912       END IF;
913     END LOOP;
914 
915     -- Debug info.
916     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
917          hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
918                                p_msg_data=>x_msg_data,
919                                p_msg_type=>'WARNING',
920                                p_msg_level=>fnd_log.level_exception);
921     END IF;
922     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
923         hz_utility_v2pub.debug(p_message=>'save_credit_rating(-)',
924                                p_prefix=>l_debug_prefix,
925                                p_msg_level=>fnd_log.level_procedure);
926     END IF;
927   EXCEPTION
928     WHEN fnd_api.g_exc_error THEN
929       ROLLBACK TO save_credit_ratings_pub;
930       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
931       FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CREDIT_RATINGS');
932       FND_MSG_PUB.ADD;
933 
934       x_return_status := fnd_api.g_ret_sts_error;
935 
936       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
937                                 p_count => x_msg_count,
938                                 p_data  => x_msg_data);
939 
940       -- Debug info.
941       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
942         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
943                                p_msg_data=>x_msg_data,
944                                p_msg_type=>'ERROR',
945                                p_msg_level=>fnd_log.level_error);
946       END IF;
947       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
948         hz_utility_v2pub.debug(p_message=>'save_credit_ratings(-)',
949                                p_prefix=>l_debug_prefix,
950                                p_msg_level=>fnd_log.level_procedure);
951       END IF;
952     WHEN fnd_api.g_exc_unexpected_error THEN
953       ROLLBACK TO save_credit_ratings_pub;
954       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
955       FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CREDIT_RATINGS');
956       FND_MSG_PUB.ADD;
957 
958       x_return_status := fnd_api.g_ret_sts_unexp_error;
959 
960       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
961                                 p_count => x_msg_count,
962                                 p_data  => x_msg_data);
963 
964       -- Debug info.
965       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
966         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
967                                p_msg_data=>x_msg_data,
968                                p_msg_type=>'UNEXPECTED ERROR',
969                                p_msg_level=>fnd_log.level_error);
970       END IF;
971       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
972         hz_utility_v2pub.debug(p_message=>'save_credit_ratings(-)',
973                                p_prefix=>l_debug_prefix,
974                                p_msg_level=>fnd_log.level_procedure);
975       END IF;
976     WHEN OTHERS THEN
977       ROLLBACK TO save_credit_ratings_pub;
978       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
979       FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CREDIT_RATINGS');
980       FND_MSG_PUB.ADD;
981 
982       x_return_status := fnd_api.g_ret_sts_unexp_error;
983 
984       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
985       fnd_message.set_token('ERROR' ,SQLERRM);
986       fnd_msg_pub.add;
987 
988       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
989                                 p_count => x_msg_count,
990                                 p_data  => x_msg_data);
991 
992       -- Debug info.
993       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
994         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
995                                p_msg_data=>x_msg_data,
996                                p_msg_type=>'SQL ERROR',
997                                p_msg_level=>fnd_log.level_error);
998       END IF;
999       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1000         hz_utility_v2pub.debug(p_message=>'save_credit_ratings(-)',
1001                                p_prefix=>l_debug_prefix,
1002                                p_msg_level=>fnd_log.level_procedure);
1003       END IF;
1004   END save_credit_ratings;
1005 
1006   -- PRIVATE PROCEDURE create_financial_reports
1007   --
1008   -- DESCRIPTION
1009   --     Create financial reports.
1010   PROCEDURE create_financial_reports(
1011     p_fin_objs                         IN OUT NOCOPY HZ_FINANCIAL_BO_TBL,
1012     p_organization_id                  IN         NUMBER,
1013     x_return_status                    OUT NOCOPY VARCHAR2,
1014     x_msg_count                        OUT NOCOPY NUMBER,
1015     x_msg_data                         OUT NOCOPY VARCHAR2
1016   ) IS
1017     l_debug_prefix        VARCHAR2(30);
1018     l_fin_report_rec      HZ_ORGANIZATION_INFO_V2PUB.FINANCIAL_REPORT_REC_TYPE;
1019     l_fin_number_rec      HZ_ORGANIZATION_INFO_V2PUB.FINANCIAL_NUMBER_REC_TYPE;
1020     l_dummy_id            NUMBER;
1021   BEGIN
1022     -- Standard start of API savepoint
1023     --SAVEPOINT create_credit_ratings_pub; --Bug 6619304
1024     SAVEPOINT create_financial_reports_pub; --Bug 6619304
1025 
1026     -- initialize API return status to success.
1027     x_return_status := FND_API.G_RET_STS_SUCCESS;
1028 
1029     -- Debug info.
1030     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1031         hz_utility_v2pub.debug(p_message=>'create_financial_reports(+)',
1032                                p_prefix=>l_debug_prefix,
1033                                p_msg_level=>fnd_log.level_procedure);
1034     END IF;
1035 
1036     ---------------------------------
1037     -- Assign financial report record
1038     ---------------------------------
1039     FOR i IN 1..p_fin_objs.COUNT LOOP
1040       assign_financial_report_rec(
1041         p_fin_report_obj            => p_fin_objs(i),
1042         p_party_id                  => p_organization_id,
1043         px_fin_report_rec           => l_fin_report_rec
1044       );
1045 
1046       HZ_ORGANIZATION_INFO_V2PUB.create_financial_report(
1047         p_financial_report_rec      => l_fin_report_rec,
1048         x_financial_report_id       => l_dummy_id,
1049         x_return_status             => x_return_status,
1050         x_msg_count                 => x_msg_count,
1051         x_msg_data                  => x_msg_data
1052       );
1053 
1054       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1055         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1056           hz_utility_v2pub.debug(p_message=>'Error occurred at hz_organization_bo_pub.create_financial_reports, org id: '||p_organization_id,
1057                                  p_prefix=>l_debug_prefix,
1058                                  p_msg_level=>fnd_log.level_procedure);
1059         END IF;
1060         FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_STRUCT_ERROR');
1061         FND_MESSAGE.SET_TOKEN('STRUCTURE', 'HZ_FINANCIAL_REPORTS');
1062         FND_MSG_PUB.ADD;
1063         RAISE FND_API.G_EXC_ERROR;
1064       ELSE
1065         -- assign financial_number_id
1066         p_fin_objs(i).financial_report_id := l_dummy_id;
1067 
1068         -- Call financial number v2api if financial report record is created successfully
1069         -------------------------------------------------
1070         -- Assign financial number of financial report record
1071         -------------------------------------------------
1072         IF((p_fin_objs(i).financial_number_objs IS NOT NULL) AND --Bug 6619304
1073 	    (p_fin_objs(i).financial_number_objs.COUNT > 0)) THEN --Bug 6619304
1074 	FOR j IN 1..p_fin_objs(i).financial_number_objs.COUNT LOOP
1075           assign_financial_number_rec(
1076             p_fin_number_obj            => p_fin_objs(i).financial_number_objs(j),
1077             p_fin_report_id             => l_dummy_id,
1078             px_fin_number_rec           => l_fin_number_rec
1079           );
1080 
1081           HZ_ORGANIZATION_INFO_V2PUB.create_financial_number(
1082             p_financial_number_rec      => l_fin_number_rec,
1083             x_financial_number_id       => l_dummy_id,
1084             x_return_status             => x_return_status,
1085             x_msg_count                 => x_msg_count,
1086             x_msg_data                  => x_msg_data
1087           );
1088 
1089           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1090             IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1091               hz_utility_v2pub.debug(p_message=>'Error occurred at hz_organization_bo_pub.create_financial_reports, fin_number_id: '||l_dummy_id,
1092                                      p_prefix=>l_debug_prefix,
1093                                      p_msg_level=>fnd_log.level_procedure);
1094             END IF;
1095             FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1096             FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_FINANCIAL_NUMBERS');
1097             FND_MSG_PUB.ADD;
1098             RAISE FND_API.G_EXC_ERROR;
1099           END IF;
1100 
1101           -- assign financial_number_id
1102           p_fin_objs(i).financial_number_objs(j).financial_number_id := l_dummy_id;
1103         END LOOP;
1104 	END IF; --Bug 6619304
1105       END IF;
1106     END LOOP;
1107 
1108     -- Debug info.
1109     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1110          hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1111                                p_msg_data=>x_msg_data,
1112                                p_msg_type=>'WARNING',
1113                                p_msg_level=>fnd_log.level_exception);
1114     END IF;
1115     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1116         hz_utility_v2pub.debug(p_message=>'create_financial_reports(-)',
1117                                p_prefix=>l_debug_prefix,
1118                                p_msg_level=>fnd_log.level_procedure);
1119     END IF;
1120   EXCEPTION
1121     WHEN fnd_api.g_exc_error THEN
1122       ROLLBACK TO create_financial_reports_pub;
1123       x_return_status := fnd_api.g_ret_sts_error;
1124 
1125       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1126                                 p_count => x_msg_count,
1127                                 p_data  => x_msg_data);
1128 
1129       -- Debug info.
1130       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1131         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1132                                p_msg_data=>x_msg_data,
1133                                p_msg_type=>'ERROR',
1134                                p_msg_level=>fnd_log.level_error);
1135       END IF;
1136       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1137         hz_utility_v2pub.debug(p_message=>'create_financial_reports(-)',
1138                                p_prefix=>l_debug_prefix,
1139                                p_msg_level=>fnd_log.level_procedure);
1140       END IF;
1141     WHEN fnd_api.g_exc_unexpected_error THEN
1142       ROLLBACK TO create_financial_reports_pub;
1143       x_return_status := fnd_api.g_ret_sts_unexp_error;
1144 
1145       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1146                                 p_count => x_msg_count,
1147                                 p_data  => x_msg_data);
1148 
1149       -- Debug info.
1150       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1151         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1152                                p_msg_data=>x_msg_data,
1153                                p_msg_type=>'UNEXPECTED ERROR',
1154                                p_msg_level=>fnd_log.level_error);
1155       END IF;
1156       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1157         hz_utility_v2pub.debug(p_message=>'create_financial_reports(-)',
1158                                p_prefix=>l_debug_prefix,
1159                                p_msg_level=>fnd_log.level_procedure);
1160       END IF;
1161     WHEN OTHERS THEN
1162       ROLLBACK TO create_financial_reports_pub;
1163       x_return_status := fnd_api.g_ret_sts_unexp_error;
1164 
1165       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1166       fnd_message.set_token('ERROR' ,SQLERRM);
1167       fnd_msg_pub.add;
1168 
1169       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1170                                 p_count => x_msg_count,
1171                                 p_data  => x_msg_data);
1172 
1173       -- Debug info.
1174       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1175         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1176                                p_msg_data=>x_msg_data,
1177                                p_msg_type=>'SQL ERROR',
1178                                p_msg_level=>fnd_log.level_error);
1179       END IF;
1180       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1181         hz_utility_v2pub.debug(p_message=>'create_financial_reports(-)',
1182                                p_prefix=>l_debug_prefix,
1183                                p_msg_level=>fnd_log.level_procedure);
1184       END IF;
1185   END create_financial_reports;
1186 
1187   -- PRIVATE PROCEDURE save_financial_reports
1188   --
1189   -- DESCRIPTION
1190   --     Create or update financial reports.
1191   PROCEDURE save_financial_reports(
1192     p_fin_objs                         IN OUT NOCOPY HZ_FINANCIAL_BO_TBL,
1193     p_organization_id                  IN         NUMBER,
1194     x_return_status                    OUT NOCOPY VARCHAR2,
1195     x_msg_count                        OUT NOCOPY NUMBER,
1196     x_msg_data                         OUT NOCOPY VARCHAR2
1197   ) IS
1198     l_debug_prefix        VARCHAR2(30);
1199     l_fin_report_rec      HZ_ORGANIZATION_INFO_V2PUB.FINANCIAL_REPORT_REC_TYPE;
1200     l_fin_number_rec      HZ_ORGANIZATION_INFO_V2PUB.FINANCIAL_NUMBER_REC_TYPE;
1201     l_dummy_id            NUMBER;
1202     l_ovn                 NUMBER := NULL;
1203   BEGIN
1204     -- Standard start of API savepoint
1205     --SAVEPOINT save_credit_ratings_pub; --Bug 6619304
1206         SAVEPOINT save_financial_reports_pub; --Bug 6619304
1207 
1208     -- initialize API return status to success.
1209     x_return_status := FND_API.G_RET_STS_SUCCESS;
1210 
1211     -- Debug info.
1212     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1213         hz_utility_v2pub.debug(p_message=>'save_financial_reports(+)',
1214                                p_prefix=>l_debug_prefix,
1215                                p_msg_level=>fnd_log.level_procedure);
1216     END IF;
1217 
1218     -----------------------------------
1219     -- Create/Update financial reports
1220     -----------------------------------
1221     FOR i IN 1..p_fin_objs.COUNT LOOP
1222       assign_financial_report_rec(
1223         p_fin_report_obj            => p_fin_objs(i),
1224         p_party_id                  => p_organization_id,
1225         px_fin_report_rec           => l_fin_report_rec
1226       );
1227 
1228       hz_registry_validate_bo_pvt.check_fin_report_op(
1229         p_party_id            => p_organization_id,
1230         px_fin_report_id      => l_fin_report_rec.financial_report_id,
1231         p_type_of_financial_report  => l_fin_report_rec.type_of_financial_report,
1232         p_document_reference  => l_fin_report_rec.document_reference,
1233         p_date_report_issued  => l_fin_report_rec.date_report_issued,
1234         p_issued_period       => l_fin_report_rec.issued_period,
1235         x_object_version_number => l_ovn
1236       );
1237 
1238       IF(l_ovn = -1) THEN
1239         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1240           hz_utility_v2pub.debug(p_message=>'Save Financial Report - Error occurred at hz_organization_bo_pub.check_fin_report_op, organization id: '||p_organization_id||' '||' ovn:'||l_ovn,
1241                                  p_prefix=>l_debug_prefix,
1242                                  p_msg_level=>fnd_log.level_procedure);
1243         END IF;
1244         FND_MESSAGE.SET_NAME('AR', 'HZ_API_INVALID_ID');
1245         FND_MSG_PUB.ADD;
1246         FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_STRUCT_ERROR');
1247         FND_MESSAGE.SET_TOKEN('STRUCTURE', 'HZ_FINANCIAL_REPORTS');
1248         FND_MSG_PUB.ADD;
1249         RAISE FND_API.G_EXC_ERROR;
1250       END IF;
1251 
1252       IF(l_ovn IS NULL) THEN
1253         HZ_ORGANIZATION_INFO_V2PUB.create_financial_report(
1254           p_financial_report_rec      => l_fin_report_rec,
1255           x_financial_report_id       => l_dummy_id,
1256           x_return_status             => x_return_status,
1257           x_msg_count                 => x_msg_count,
1258           x_msg_data                  => x_msg_data
1259         );
1260 
1261         -- assign financial_report_id
1262         p_fin_objs(i).financial_report_id := l_dummy_id;
1263       ELSE
1264         -- clean up created_by_module for update
1265         l_fin_report_rec.created_by_module := NULL;
1266         HZ_ORGANIZATION_INFO_V2PUB.update_financial_report(
1267           p_financial_report_rec      => l_fin_report_rec,
1268           p_object_version_number     => l_ovn,
1269           x_return_status             => x_return_status,
1270           x_msg_count                 => x_msg_count,
1271           x_msg_data                  => x_msg_data
1272         );
1273         l_dummy_id := l_fin_report_rec.financial_report_id;
1274 
1275         -- assign financial_report_id
1276         p_fin_objs(i).financial_report_id := l_dummy_id;
1277       END IF;
1278 
1279       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1280         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1281           hz_utility_v2pub.debug(p_message=>'Error occurred at hz_organization_bo_pub.save_financial_reports, org id: '||p_organization_id,
1282                                  p_prefix=>l_debug_prefix,
1283                                  p_msg_level=>fnd_log.level_procedure);
1284         END IF;
1285         FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_STRUCT_ERROR');
1286         FND_MESSAGE.SET_TOKEN('STRUCTURE', 'HZ_FINANCIAL_REPORTS');
1287         FND_MSG_PUB.ADD;
1288         RAISE FND_API.G_EXC_ERROR;
1289       ELSE
1290         ---------------------------------
1291         -- Create/Update financial number
1292         ---------------------------------
1293 	 IF((p_fin_objs(i).financial_number_objs IS NOT NULL) AND --Bug 6619304
1294 	    (p_fin_objs(i).financial_number_objs.COUNT > 0)) THEN --Bug 6619304
1295         FOR j IN 1..p_fin_objs(i).financial_number_objs.COUNT LOOP
1296           assign_financial_number_rec(
1297             p_fin_number_obj            => p_fin_objs(i).financial_number_objs(j),
1298             p_fin_report_id             => l_dummy_id,
1299             px_fin_number_rec           => l_fin_number_rec
1300           );
1301 
1302           hz_registry_validate_bo_pvt.check_fin_number_op(
1303             p_fin_report_id       => l_dummy_id,
1304             px_fin_number_id      => l_fin_number_rec.financial_number_id,
1305             p_financial_number_name => l_fin_number_rec.financial_number_name,
1306             x_object_version_number => l_ovn
1307           );
1308 
1309           IF(l_ovn = -1) THEN
1310             IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1311               hz_utility_v2pub.debug(p_message=>'Save Financial Number - Error occurred at hz_organization_bo_pub.check_fin_number_op, organization id: '||p_organization_id||' '||' ovn:'||l_ovn,
1312                                      p_prefix=>l_debug_prefix,
1313                                      p_msg_level=>fnd_log.level_procedure);
1314             END IF;
1315             FND_MESSAGE.SET_NAME('AR', 'HZ_API_INVALID_ID');
1316             FND_MSG_PUB.ADD;
1317             FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1318             FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_FINANCIAL_NUMBERS');
1319             FND_MSG_PUB.ADD;
1320             RAISE FND_API.G_EXC_ERROR;
1321           END IF;
1322 
1323           IF(l_ovn IS NULL) THEN
1324             HZ_ORGANIZATION_INFO_V2PUB.create_financial_number(
1325               p_financial_number_rec      => l_fin_number_rec,
1326               x_financial_number_id       => l_dummy_id,
1327               x_return_status             => x_return_status,
1328               x_msg_count                 => x_msg_count,
1329               x_msg_data                  => x_msg_data
1330             );
1331 
1332             -- assign financial_number_id
1333             p_fin_objs(i).financial_number_objs(j).financial_number_id := l_dummy_id;
1334           ELSE
1335             -- clean up created_by_module for update
1336             l_fin_number_rec.created_by_module := NULL;
1337             HZ_ORGANIZATION_INFO_V2PUB.update_financial_number(
1338               p_financial_number_rec      => l_fin_number_rec,
1339               p_object_version_number     => l_ovn,
1340               x_return_status             => x_return_status,
1341               x_msg_count                 => x_msg_count,
1342               x_msg_data                  => x_msg_data
1343             );
1344 
1345             -- assign financial_number_id
1346             p_fin_objs(i).financial_number_objs(j).financial_number_id := l_fin_number_rec.financial_number_id;
1347           END IF;
1348           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1349             IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1350               hz_utility_v2pub.debug(p_message=>'Error occurred at hz_organization_bo_pub.save_financial_reports, fin_number_id: '||l_dummy_id,
1351                                      p_prefix=>l_debug_prefix,
1352                                      p_msg_level=>fnd_log.level_procedure);
1353             END IF;
1354             FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1355             FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_FINANCIAL_NUMBERS');
1356             FND_MSG_PUB.ADD;
1357             RAISE FND_API.G_EXC_ERROR;
1358           END IF;
1359         END LOOP;
1360 	END IF; --Bug 6619304
1361       END IF;
1362     END LOOP;
1363 
1364     -- Debug info.
1365     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1366          hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1367                                p_msg_data=>x_msg_data,
1368                                p_msg_type=>'WARNING',
1369                                p_msg_level=>fnd_log.level_exception);
1370     END IF;
1371     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1372         hz_utility_v2pub.debug(p_message=>'save_financial_reports(-)',
1373                                p_prefix=>l_debug_prefix,
1374                                p_msg_level=>fnd_log.level_procedure);
1375     END IF;
1376   EXCEPTION
1377     WHEN fnd_api.g_exc_error THEN
1378       ROLLBACK TO save_financial_reports_pub;
1379       x_return_status := fnd_api.g_ret_sts_error;
1380 
1381       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1382                                 p_count => x_msg_count,
1383                                 p_data  => x_msg_data);
1384 
1385       -- Debug info.
1386       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1387         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1388                                p_msg_data=>x_msg_data,
1389                                p_msg_type=>'ERROR',
1390                                p_msg_level=>fnd_log.level_error);
1391       END IF;
1392       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1393         hz_utility_v2pub.debug(p_message=>'save_financial_reports(-)',
1394                                p_prefix=>l_debug_prefix,
1395                                p_msg_level=>fnd_log.level_procedure);
1396       END IF;
1397     WHEN fnd_api.g_exc_unexpected_error THEN
1398       ROLLBACK TO save_financial_reports_pub;
1399       x_return_status := fnd_api.g_ret_sts_unexp_error;
1400 
1401       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1402                                 p_count => x_msg_count,
1403                                 p_data  => x_msg_data);
1404 
1405       -- Debug info.
1406       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1407         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1408                                p_msg_data=>x_msg_data,
1409                                p_msg_type=>'UNEXPECTED ERROR',
1410                                p_msg_level=>fnd_log.level_error);
1411       END IF;
1412       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1413         hz_utility_v2pub.debug(p_message=>'save_financial_reports(-)',
1414                                p_prefix=>l_debug_prefix,
1415                                p_msg_level=>fnd_log.level_procedure);
1416       END IF;
1417     WHEN OTHERS THEN
1418       ROLLBACK TO save_financial_reports_pub;
1419       x_return_status := fnd_api.g_ret_sts_unexp_error;
1420 
1421       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1422       fnd_message.set_token('ERROR' ,SQLERRM);
1423       fnd_msg_pub.add;
1424 
1425       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1426                                 p_count => x_msg_count,
1427                                 p_data  => x_msg_data);
1428 
1429       -- Debug info.
1430       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1431         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1432                                p_msg_data=>x_msg_data,
1433                                p_msg_type=>'SQL ERROR',
1434                                p_msg_level=>fnd_log.level_error);
1435       END IF;
1436       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1437         hz_utility_v2pub.debug(p_message=>'save_financial_reports(-)',
1438                                p_prefix=>l_debug_prefix,
1439                                p_msg_level=>fnd_log.level_procedure);
1440       END IF;
1441   END save_financial_reports;
1442 
1443   -- PROCEDURE do_create_organization_bo
1444   --
1445   -- DESCRIPTION
1446   --     Create organization business object.
1447   PROCEDURE do_create_organization_bo(
1448     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
1449     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
1450     p_organization_obj    IN OUT NOCOPY HZ_ORGANIZATION_BO,
1451     p_created_by_module   IN            VARCHAR2,
1452     p_obj_source          IN            VARCHAR2 := null,
1453     x_return_status       OUT NOCOPY    VARCHAR2,
1454     x_msg_count           OUT NOCOPY    NUMBER,
1455     x_msg_data            OUT NOCOPY    VARCHAR2,
1456     x_organization_id     OUT NOCOPY    NUMBER,
1457     x_organization_os     OUT NOCOPY    VARCHAR2,
1458     x_organization_osr    OUT NOCOPY    VARCHAR2
1459   ) IS
1460     l_debug_prefix             VARCHAR2(30);
1461     l_organization_rec         HZ_PARTY_V2PUB.ORGANIZATION_REC_TYPE;
1462     l_profile_id               NUMBER;
1463     l_party_number             VARCHAR2(30);
1464     l_dummy_id                 NUMBER;
1465     l_valid_obj                BOOLEAN;
1466     l_bus_object               HZ_REGISTRY_VALIDATE_BO_PVT.COMPLETENESS_REC_TYPE;
1467     l_errorcode                NUMBER;
1468     l_raise_event              BOOLEAN := FALSE;
1469     l_cbm                      VARCHAR2(30);
1470     l_event_id                 NUMBER;
1471     l_sms_objs                 HZ_SMS_CP_BO_TBL;
1472     l_party_search_rec         HZ_PARTY_SEARCH.PARTY_SEARCH_REC_TYPE;
1473     l_party_site_list          HZ_PARTY_SEARCH.PARTY_SITE_LIST;
1474     l_contact_list             HZ_PARTY_SEARCH.CONTACT_LIST;
1475     l_contact_point_list       HZ_PARTY_SEARCH.CONTACT_POINT_LIST;
1476     l_match_rule_id number;
1477     l_search_ctx_id NUMBER;
1478     l_num_matches NUMBER;
1479     l_party_id NUMBER;
1480     l_match_score NUMBER;
1481     l_tmp_score NUMBER;
1482     l_match_threshold NUMBER;
1483     l_automerge_threshold NUMBER;
1484     l_dup_batch_id NUMBER;
1485     l_dup_set_id NUMBER;
1486     l_request_id NUMBER;
1487     l_dup_batch_rec  HZ_DUP_PVT.DUP_BATCH_REC_TYPE;
1488     l_dup_set_rec    HZ_DUP_PVT.DUP_SET_REC_TYPE;
1489     l_dup_party_tbl  HZ_DUP_PVT.DUP_PARTY_TBL_TYPE;
1490     l_party_name     varchar2(360);
1491     l_overlap_merge_req_id NUMBER;
1492     l_object_version_number NUMBER;
1493     l_batch_id NUMBER;
1494     l_cpt_count NUMBER;
1495 
1496     cursor get_obj_version_csr(cp_dup_set_id number) is
1497 		SELECT object_version_number
1498   		FROM   hz_dup_sets
1499   		WHERE  dup_set_id = cp_dup_set_id;
1500 
1501   BEGIN
1502     -- Standard start of API savepoint
1503     SAVEPOINT do_create_organization_bo_pub;
1504 
1505     -- initialize API return status to success.
1506     x_return_status := FND_API.G_RET_STS_SUCCESS;
1507 
1508     -- Initialize message list if p_init_msg_list is set to TRUE.
1509     IF FND_API.to_Boolean(p_init_msg_list) THEN
1510       FND_MSG_PUB.initialize;
1511     END IF;
1512 
1513     -- initialize Global variable
1514     HZ_UTILITY_V2PUB.G_CALLING_API := 'BO_API';
1515     IF(p_created_by_module IS NULL) THEN
1516       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := 'BO_API';
1517     ELSE
1518       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := p_created_by_module;
1519     END IF;
1520 
1521     -- Debug info.
1522     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1523         hz_utility_v2pub.debug(p_message=>'do_create_organization_bo(+)',
1524                                p_prefix=>l_debug_prefix,
1525                                p_msg_level=>fnd_log.level_procedure);
1526     END IF;
1527 
1528     -- Base on p_validate_bo_flag to check completeness of business object
1529     IF(p_validate_bo_flag = FND_API.G_TRUE) THEN
1530       HZ_REGISTRY_VALIDATE_BO_PVT.get_bus_obj_struct(
1531         p_bus_object_code         => 'ORG',
1532         x_bus_object              => l_bus_object
1533       );
1534       l_valid_obj := HZ_REGISTRY_VALIDATE_BO_PVT.is_org_bo_comp(
1535                        p_organization_obj => p_organization_obj,
1536                        p_bus_object       => l_bus_object
1537                      );
1538       IF NOT(l_valid_obj) THEN
1539         RAISE fnd_api.g_exc_error;
1540       END IF;
1541 
1542       -- find out if raise event at the end
1543       l_raise_event := HZ_PARTY_BO_PVT.is_raising_create_event(
1544                          p_obj_complete_flag => l_valid_obj );
1545 
1546       IF(l_raise_event) THEN
1547         -- get event_id and set global variable to event_id for
1548         -- BOT populate function
1549         SELECT HZ_BUS_OBJ_TRACKING_S.nextval
1550         INTO l_event_id
1551         FROM DUAL;
1552       END IF;
1553     ELSE
1554       l_raise_event := FALSE;
1555     END IF;
1556 
1557     x_organization_id := p_organization_obj.organization_id;
1558     x_organization_os := p_organization_obj.orig_system;
1559     x_organization_osr:= p_organization_obj.orig_system_reference;
1560 
1561     -- check input person party id and os+osr
1562     hz_registry_validate_bo_pvt.validate_ssm_id(
1563       px_id              => x_organization_id,
1564       px_os              => x_organization_os,
1565       px_osr             => x_organization_osr,
1566       p_obj_type         => 'ORGANIZATION',
1567       p_create_or_update => 'C',
1568       x_return_status    => x_return_status,
1569       x_msg_count        => x_msg_count,
1570       x_msg_data         => x_msg_data);
1571 
1572     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1573       RAISE FND_API.G_EXC_ERROR;
1574     END IF;
1575 
1576     ---------------------------------------
1577     -- Assign organization and party record
1578     ---------------------------------------
1579     assign_organization_rec(
1580       p_organization_obj  => p_organization_obj,
1581       p_organization_id   => x_organization_id,
1582       p_organization_os   => x_organization_os,
1583       p_organization_osr  => x_organization_osr,
1584       px_organization_rec => l_organization_rec
1585     );
1586 
1587     HZ_PARTY_V2PUB.create_organization(
1588       p_organization_rec          => l_organization_rec,
1589       x_party_id                  => x_organization_id,
1590       x_party_number              => l_party_number,
1591       x_profile_id                => l_profile_id,
1592       x_return_status             => x_return_status,
1593       x_msg_count                 => x_msg_count,
1594       x_msg_data                  => x_msg_data
1595     );
1596 
1597     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1598       RAISE FND_API.G_EXC_ERROR;
1599     END IF;
1600 
1601     -- assign organization party_id
1602     p_organization_obj.organization_id := x_organization_id;
1603     p_organization_obj.party_number := l_party_number;
1604     --------------------------
1605     -- Create Org Ext Attrs
1606     --------------------------
1607     IF((p_organization_obj.ext_attributes_objs IS NOT NULL) AND
1608        (p_organization_obj.ext_attributes_objs.COUNT > 0)) THEN
1609       HZ_EXT_ATTRIBUTE_BO_PVT.save_ext_attributes(
1610         p_ext_attr_objs             => p_organization_obj.ext_attributes_objs,
1611         p_parent_obj_id             => l_profile_id,
1612         p_parent_obj_type           => 'ORG',
1613         p_create_or_update          => 'C',
1614         x_return_status             => x_return_status,
1615         x_errorcode                 => l_errorcode,
1616         x_msg_count                 => x_msg_count,
1617         x_msg_data                  => x_msg_data
1618       );
1619 
1620       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1621         RAISE FND_API.G_EXC_ERROR;
1622       END IF;
1623     END IF;
1624 
1625     ----------------------------
1626     -- Party Preferences
1627     ----------------------------
1628     IF((p_organization_obj.preference_objs IS NOT NULL) AND
1629        (p_organization_obj.preference_objs.COUNT > 0)) THEN
1630       HZ_PARTY_BO_PVT.save_party_preferences(
1631         p_party_pref_objs           => p_organization_obj.preference_objs,
1632         p_party_id                  => x_organization_id,
1633         x_return_status             => x_return_status,
1634         x_msg_count                 => x_msg_count,
1635         x_msg_data                  => x_msg_data
1636       );
1637 
1638       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1639         RAISE FND_API.G_EXC_ERROR;
1640       END IF;
1641     END IF;
1642 
1643     ----------------------------
1644     -- Contact Preferences
1645     ----------------------------
1646     IF((p_organization_obj.contact_pref_objs IS NOT NULL) AND
1647        (p_organization_obj.contact_pref_objs.COUNT > 0)) THEN
1648       HZ_CONTACT_PREFERENCE_BO_PVT.create_contact_preferences(
1649         p_cp_pref_objs           => p_organization_obj.contact_pref_objs,
1650         p_contact_level_table_id => x_organization_id,
1651         p_contact_level_table    => 'HZ_PARTIES',
1652         x_return_status          => x_return_status,
1653         x_msg_count              => x_msg_count,
1654         x_msg_data               => x_msg_data
1655       );
1656 
1657       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1658         RAISE FND_API.G_EXC_ERROR;
1659       END IF;
1660     END IF;
1661 
1662     ----------------------------
1663     -- Relationship api
1664     ----------------------------
1665     IF((p_organization_obj.relationship_objs IS NOT NULL) AND
1666        (p_organization_obj.relationship_objs.COUNT > 0)) THEN
1667       HZ_PARTY_BO_PVT.create_relationships(
1668         p_rel_objs                  => p_organization_obj.relationship_objs,
1669         p_subject_id                => x_organization_id,
1670         p_subject_type              => 'ORGANIZATION',
1671         x_return_status             => x_return_status,
1672         x_msg_count                 => x_msg_count,
1673         x_msg_data                  => x_msg_data
1674       );
1675 
1676       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1677         RAISE FND_API.G_EXC_ERROR;
1678       END IF;
1679     END IF;
1680 
1681     ----------------------------
1682     -- Classification api
1683     ----------------------------
1684     IF((p_organization_obj.class_objs IS NOT NULL) AND
1685        (p_organization_obj.class_objs.COUNT > 0)) THEN
1686       HZ_PARTY_BO_PVT.create_classifications(
1687         p_code_assign_objs          => p_organization_obj.class_objs,
1688         p_owner_table_name          => 'HZ_PARTIES',
1689         p_owner_table_id            => x_organization_id,
1690         x_return_status             => x_return_status,
1691         x_msg_count                 => x_msg_count,
1692         x_msg_data                  => x_msg_data
1693       );
1694 
1695       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1696         RAISE FND_API.G_EXC_ERROR;
1697       END IF;
1698     END IF;
1699 
1700     l_cbm := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
1701 
1702     -----------------------------
1703     -- Create logical org contact
1704     -----------------------------
1705     IF((p_organization_obj.contact_objs IS NOT NULL) AND
1706        (p_organization_obj.contact_objs.COUNT > 0)) THEN
1707       HZ_ORG_CONTACT_BO_PVT.save_org_contacts(
1708         p_oc_objs            => p_organization_obj.contact_objs,
1709         p_create_update_flag => 'C',
1710         p_obj_source         => p_obj_source,
1711         x_return_status      => x_return_status,
1712         x_msg_count          => x_msg_count,
1713         x_msg_data           => x_msg_data,
1714         p_parent_org_id      => x_organization_id,
1715         p_parent_org_os      => x_organization_os,
1716         p_parent_org_osr     => x_organization_osr
1717       );
1718 
1719       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1720         RAISE FND_API.G_EXC_ERROR;
1721       END IF;
1722     END IF;
1723 
1724     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
1725 
1726     ----------------------------
1727     -- Create logical party site
1728     ----------------------------
1729     IF((p_organization_obj.party_site_objs IS NOT NULL) AND
1730        (p_organization_obj.party_site_objs.COUNT > 0)) THEN
1731       HZ_PARTY_SITE_BO_PVT.save_party_sites(
1732         p_ps_objs            => p_organization_obj.party_site_objs,
1733         p_create_update_flag => 'C',
1734         p_obj_source         => p_obj_source,
1735         x_return_status      => x_return_status,
1736         x_msg_count          => x_msg_count,
1737         x_msg_data           => x_msg_data,
1738         p_parent_id          => x_organization_id,
1739         p_parent_os          => x_organization_os,
1740         p_parent_osr         => x_organization_osr,
1741         p_parent_obj_type    => 'ORG'
1742       );
1743 
1744       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1745         RAISE FND_API.G_EXC_ERROR;
1746       END IF;
1747     END IF;
1748 
1749     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
1750 
1751     ------------------------
1752     -- Create contact points
1753     ------------------------
1754     IF(((p_organization_obj.phone_objs IS NOT NULL) AND (p_organization_obj.phone_objs.COUNT > 0)) OR
1755        ((p_organization_obj.telex_objs IS NOT NULL) AND (p_organization_obj.telex_objs.COUNT > 0)) OR
1756        ((p_organization_obj.email_objs IS NOT NULL) AND (p_organization_obj.email_objs.COUNT > 0)) OR
1757        ((p_organization_obj.web_objs IS NOT NULL) AND (p_organization_obj.web_objs.COUNT > 0)) OR
1758        ((p_organization_obj.edi_objs IS NOT NULL) AND (p_organization_obj.edi_objs.COUNT > 0)) OR
1759        ((p_organization_obj.eft_objs IS NOT NULL) AND (p_organization_obj.eft_objs.COUNT > 0))) THEN
1760       HZ_CONTACT_POINT_BO_PVT.save_contact_points(
1761         p_phone_objs         => p_organization_obj.phone_objs,
1762         p_telex_objs         => p_organization_obj.telex_objs,
1763         p_email_objs         => p_organization_obj.email_objs,
1764         p_web_objs           => p_organization_obj.web_objs,
1765         p_edi_objs           => p_organization_obj.edi_objs,
1766         p_eft_objs           => p_organization_obj.eft_objs,
1767         p_sms_objs           => l_sms_objs,
1768         p_owner_table_id     => x_organization_id,
1769         p_owner_table_os     => x_organization_os,
1770         p_owner_table_osr    => x_organization_osr,
1771         p_parent_obj_type    => 'ORG',
1772         p_create_update_flag => 'C',
1773         p_obj_source         => p_obj_source,
1774         x_return_status      => x_return_status,
1775         x_msg_count          => x_msg_count,
1776         x_msg_data           => x_msg_data
1777       );
1778 
1779       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1780         RAISE FND_API.G_EXC_ERROR;
1781       END IF;
1782     END IF;
1783 
1784     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
1785 
1786     ----------------------------
1787     -- Certifications
1788     ----------------------------
1789     IF((p_organization_obj.certification_objs IS NOT NULL) AND
1790        (p_organization_obj.certification_objs.COUNT > 0)) THEN
1791       HZ_PARTY_BO_PVT.create_certifications(
1792         p_cert_objs                 => p_organization_obj.certification_objs,
1793         p_party_id                  => x_organization_id,
1794         x_return_status             => x_return_status,
1795         x_msg_count                 => x_msg_count,
1796         x_msg_data                  => x_msg_data
1797       );
1798 
1799       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1800         RAISE FND_API.G_EXC_ERROR;
1801       END IF;
1802     END IF;
1803 
1804     ----------------------------
1805     -- Financial Profiles
1806     ----------------------------
1807     IF((p_organization_obj.financial_prof_objs IS NOT NULL) AND
1808        (p_organization_obj.financial_prof_objs.COUNT > 0)) THEN
1809       HZ_PARTY_BO_PVT.create_financial_profiles(
1810         p_fin_prof_objs             => p_organization_obj.financial_prof_objs,
1811         p_party_id                  => x_organization_id,
1812         x_return_status             => x_return_status,
1813         x_msg_count                 => x_msg_count,
1814         x_msg_data                  => x_msg_data
1815       );
1816 
1817       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1818         RAISE FND_API.G_EXC_ERROR;
1819       END IF;
1820     END IF;
1821 
1822   ----------------------------------
1823   --  Party Usages -------
1824   ----------------------------------
1825    IF ((p_organization_obj.party_usage_objs IS NOT NULL) AND
1826       (p_organization_obj.party_usage_objs.COUNT > 0 )) THEN
1827        HZ_PARTY_BO_PVT.create_party_usage_assgmnt(
1828 	   p_party_usg_objs				=> p_organization_obj.party_usage_objs,
1829 	   p_party_id					=> x_organization_id,
1830 	   x_return_status				=> x_return_status,
1831 	   x_msg_count					=> x_msg_count,
1832 	   x_msg_data					=> x_msg_data
1833 	   );
1834         IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1835         RAISE FND_API.G_EXC_ERROR;
1836       END IF;
1837     END IF;
1838 
1839 
1840     ----------------------------
1841     -- Credit Ratings
1842     ----------------------------
1843     IF((p_organization_obj.credit_rating_objs IS NOT NULL) AND
1844        (p_organization_obj.credit_rating_objs.COUNT > 0)) THEN
1845       create_credit_ratings(
1846         p_credit_rating_objs        => p_organization_obj.credit_rating_objs,
1847         p_organization_id           => x_organization_id,
1848         x_return_status             => x_return_status,
1849         x_msg_count                 => x_msg_count,
1850         x_msg_data                  => x_msg_data
1851       );
1852 
1853       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1854         RAISE FND_API.G_EXC_ERROR;
1855       END IF;
1856     END IF;
1857 
1858     ----------------------------
1859     -- Financial Reports
1860     ----------------------------
1861     IF((p_organization_obj.financial_report_objs IS NOT NULL) AND
1862        (p_organization_obj.financial_report_objs.COUNT > 0)) THEN
1863       create_financial_reports(
1864         p_fin_objs                  => p_organization_obj.financial_report_objs,
1865         p_organization_id           => x_organization_id,
1866         x_return_status             => x_return_status,
1867         x_msg_count                 => x_msg_count,
1868         x_msg_data                  => x_msg_data
1869       );
1870 
1871       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1872         RAISE FND_API.G_EXC_ERROR;
1873       END IF;
1874     END IF;
1875 
1876     -- raise event
1877     IF(l_raise_event) THEN
1878       HZ_PARTY_BO_PVT.call_bes(
1879         p_party_id         => x_organization_id,
1880         p_bo_code          => 'ORG',
1881         p_create_or_update => 'C',
1882         p_obj_source       => p_obj_source,
1883         p_event_id         => l_event_id
1884       );
1885     END IF;
1886 
1887     -- Enh: check if DQM is enabled
1888     if nvl(fnd_profile.value('HZ_BO_ENABLE_DQ'),'N') = 'Y'
1889     then
1890 	-- call DQM search API
1891 
1892         l_match_rule_id := nvl(fnd_profile.value('HZ_BO_ORG_MATCH_RULE'), 238); -- 238: new org match rule
1893 
1894         IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
1895 		hz_utility_v2pub.debug(p_message=>'Enable DQ on Integration Services: START ',p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
1896       		hz_utility_v2pub.debug(p_message=>'Match Rule ID '||l_match_rule_id,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
1897 		hz_utility_v2pub.debug(p_message=>'Newly Created Party Id: '||x_organization_id,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
1898         END IF;
1899 	l_party_search_rec.ANALYSIS_FY := l_organization_rec.ANALYSIS_FY;
1900   	l_party_search_rec.AVG_HIGH_CREDIT := l_organization_rec.AVG_HIGH_CREDIT;
1901   	l_party_search_rec.BEST_TIME_CONTACT_BEGIN := l_organization_rec.BEST_TIME_CONTACT_BEGIN;
1902   	l_party_search_rec.BEST_TIME_CONTACT_END := l_organization_rec.BEST_TIME_CONTACT_END;
1903   	l_party_search_rec.BRANCH_FLAG := l_organization_rec.BRANCH_FLAG;
1904   	l_party_search_rec.BUSINESS_SCOPE := l_organization_rec.BUSINESS_SCOPE;
1905   	l_party_search_rec.CEO_NAME := l_organization_rec.CEO_NAME;
1906   	l_party_search_rec.CEO_TITLE := l_organization_rec.CEO_TITLE;
1907   	l_party_search_rec.CONG_DIST_CODE := l_organization_rec.CONG_DIST_CODE;
1908   	l_party_search_rec.CONTENT_SOURCE_NUMBER := l_organization_rec.CONTENT_SOURCE_NUMBER;
1909   	l_party_search_rec.CONTROL_YR := l_organization_rec.CONTROL_YR;
1910   	l_party_search_rec.CORPORATION_CLASS := l_organization_rec.CORPORATION_CLASS;
1911   	l_party_search_rec.CREDIT_SCORE := l_organization_rec.CREDIT_SCORE;
1912   	l_party_search_rec.CREDIT_SCORE_AGE := l_organization_rec.CREDIT_SCORE_AGE;
1913   	l_party_search_rec.CREDIT_SCORE_CLASS := l_organization_rec.CREDIT_SCORE_CLASS;
1914   	l_party_search_rec.CREDIT_SCORE_COMMENTARY := l_organization_rec.CREDIT_SCORE_COMMENTARY;
1915   	l_party_search_rec.CREDIT_SCORE_COMMENTARY10 := l_organization_rec.CREDIT_SCORE_COMMENTARY10;
1916   	l_party_search_rec.CREDIT_SCORE_COMMENTARY2 := l_organization_rec.CREDIT_SCORE_COMMENTARY2;
1917   	l_party_search_rec.CREDIT_SCORE_COMMENTARY3 := l_organization_rec.CREDIT_SCORE_COMMENTARY3;
1918   	l_party_search_rec.CREDIT_SCORE_COMMENTARY4 := l_organization_rec.CREDIT_SCORE_COMMENTARY4;
1919   	l_party_search_rec.CREDIT_SCORE_COMMENTARY5 := l_organization_rec.CREDIT_SCORE_COMMENTARY5;
1920   	l_party_search_rec.CREDIT_SCORE_COMMENTARY6 := l_organization_rec.CREDIT_SCORE_COMMENTARY6;
1921   	l_party_search_rec.CREDIT_SCORE_COMMENTARY7 := l_organization_rec.CREDIT_SCORE_COMMENTARY7;
1922   	l_party_search_rec.CREDIT_SCORE_COMMENTARY8 := l_organization_rec.CREDIT_SCORE_COMMENTARY8;
1923   	l_party_search_rec.CREDIT_SCORE_COMMENTARY9 := l_organization_rec.CREDIT_SCORE_COMMENTARY9;
1924   	l_party_search_rec.CREDIT_SCORE_DATE := l_organization_rec.CREDIT_SCORE_DATE;
1925   	l_party_search_rec.CREDIT_SCORE_INCD_DEFAULT := l_organization_rec.CREDIT_SCORE_INCD_DEFAULT;
1926   	l_party_search_rec.CREDIT_SCORE_NATL_PERCENTILE := l_organization_rec.CREDIT_SCORE_NATL_PERCENTILE;
1927   	l_party_search_rec.CURR_FY_POTENTIAL_REVENUE := l_organization_rec.CURR_FY_POTENTIAL_REVENUE;
1928   	l_party_search_rec.DB_RATING := l_organization_rec.DB_RATING;
1929   	l_party_search_rec.DEBARMENTS_COUNT := l_organization_rec.DEBARMENTS_COUNT;
1930   	l_party_search_rec.DEBARMENTS_DATE := l_organization_rec.DEBARMENTS_DATE;
1931   	l_party_search_rec.DEBARMENT_IND := l_organization_rec.DEBARMENT_IND;
1932   	l_party_search_rec.DISADV_8A_IND := l_organization_rec.DISADV_8A_IND;
1933   	l_party_search_rec.DUNS_NUMBER_C := l_organization_rec.DUNS_NUMBER_C;
1934   	l_party_search_rec.EMPLOYEES_TOTAL := l_organization_rec.EMPLOYEES_TOTAL;
1935   	l_party_search_rec.EMP_AT_PRIMARY_ADR := l_organization_rec.EMP_AT_PRIMARY_ADR;
1936   	l_party_search_rec.EMP_AT_PRIMARY_ADR_EST_IND := l_organization_rec.EMP_AT_PRIMARY_ADR_EST_IND;
1937   	l_party_search_rec.EMP_AT_PRIMARY_ADR_MIN_IND := l_organization_rec.EMP_AT_PRIMARY_ADR_MIN_IND;
1938   	l_party_search_rec.EMP_AT_PRIMARY_ADR_TEXT := l_organization_rec.EMP_AT_PRIMARY_ADR_TEXT;
1939   	l_party_search_rec.ENQUIRY_DUNS := l_organization_rec.ENQUIRY_DUNS;
1940   	l_party_search_rec.EXPORT_IND := l_organization_rec.EXPORT_IND;
1941   	l_party_search_rec.FAILURE_SCORE := l_organization_rec.FAILURE_SCORE;
1942   	l_party_search_rec.FAILURE_SCORE_AGE := l_organization_rec.FAILURE_SCORE_AGE;
1943   	l_party_search_rec.FAILURE_SCORE_CLASS := l_organization_rec.FAILURE_SCORE_CLASS;
1944   	l_party_search_rec.FAILURE_SCORE_COMMENTARY := l_organization_rec.FAILURE_SCORE_COMMENTARY;
1945   	l_party_search_rec.FAILURE_SCORE_COMMENTARY10 := l_organization_rec.FAILURE_SCORE_COMMENTARY10;
1946   	l_party_search_rec.FAILURE_SCORE_COMMENTARY2 := l_organization_rec.FAILURE_SCORE_COMMENTARY2;
1947   	l_party_search_rec.FAILURE_SCORE_COMMENTARY3 := l_organization_rec.FAILURE_SCORE_COMMENTARY3;
1948   	l_party_search_rec.FAILURE_SCORE_COMMENTARY4 := l_organization_rec.FAILURE_SCORE_COMMENTARY4;
1949   	l_party_search_rec.FAILURE_SCORE_COMMENTARY5 := l_organization_rec.FAILURE_SCORE_COMMENTARY5;
1950   	l_party_search_rec.FAILURE_SCORE_COMMENTARY6 := l_organization_rec.FAILURE_SCORE_COMMENTARY6;
1951   	l_party_search_rec.FAILURE_SCORE_COMMENTARY7 := l_organization_rec.FAILURE_SCORE_COMMENTARY7;
1952   	l_party_search_rec.FAILURE_SCORE_COMMENTARY8 := l_organization_rec.FAILURE_SCORE_COMMENTARY8;
1953   	l_party_search_rec.FAILURE_SCORE_COMMENTARY9 := l_organization_rec.FAILURE_SCORE_COMMENTARY9;
1954   	l_party_search_rec.FAILURE_SCORE_DATE := l_organization_rec.FAILURE_SCORE_DATE;
1955   	l_party_search_rec.FAILURE_SCORE_INCD_DEFAULT := l_organization_rec.FAILURE_SCORE_INCD_DEFAULT;
1956   	l_party_search_rec.FAILURE_SCORE_OVERRIDE_CODE := l_organization_rec.FAILURE_SCORE_OVERRIDE_CODE;
1957   	l_party_search_rec.FISCAL_YEAREND_MONTH := l_organization_rec.FISCAL_YEAREND_MONTH;
1958   	l_party_search_rec.GLOBAL_FAILURE_SCORE := l_organization_rec.GLOBAL_FAILURE_SCORE;
1959   	l_party_search_rec.GSA_INDICATOR_FLAG := l_organization_rec.GSA_INDICATOR_FLAG;
1960   	l_party_search_rec.HIGH_CREDIT := l_organization_rec.HIGH_CREDIT;
1961   	l_party_search_rec.HQ_BRANCH_IND := l_organization_rec.HQ_BRANCH_IND;
1962   	l_party_search_rec.IMPORT_IND := l_organization_rec.IMPORT_IND;
1963   	l_party_search_rec.INCORP_YEAR := l_organization_rec.INCORP_YEAR;
1964   	l_party_search_rec.INTERNAL_FLAG := l_organization_rec.INTERNAL_FLAG;
1965   	l_party_search_rec.JGZZ_FISCAL_CODE := l_organization_rec.JGZZ_FISCAL_CODE;
1966   	l_party_search_rec.PARTY_ALL_NAMES := l_organization_rec.ORGANIZATION_NAME|| ' ' ||
1967 						l_organization_rec.KNOWN_AS|| ' ' ||
1968 						l_organization_rec.KNOWN_AS2|| ' ' ||
1969 						l_organization_rec.KNOWN_AS3|| ' ' ||
1970 						l_organization_rec.KNOWN_AS4|| ' ' ||
1971 						l_organization_rec.KNOWN_AS5;
1972   	l_party_search_rec.KNOWN_AS := l_organization_rec.KNOWN_AS;
1973   	l_party_search_rec.KNOWN_AS2 := l_organization_rec.KNOWN_AS2;
1974   	l_party_search_rec.KNOWN_AS3 := l_organization_rec.KNOWN_AS3;
1975   	l_party_search_rec.KNOWN_AS4 := l_organization_rec.KNOWN_AS4;
1976   	l_party_search_rec.KNOWN_AS5 := l_organization_rec.KNOWN_AS5;
1977   	l_party_search_rec.LABOR_SURPLUS_IND := l_organization_rec.LABOR_SURPLUS_IND;
1978   	l_party_search_rec.LEGAL_STATUS := l_organization_rec.LEGAL_STATUS;
1979   	l_party_search_rec.LINE_OF_BUSINESS := l_organization_rec.LINE_OF_BUSINESS;
1980   	l_party_search_rec.LOCAL_ACTIVITY_CODE := l_organization_rec.LOCAL_ACTIVITY_CODE;
1981   	l_party_search_rec.LOCAL_ACTIVITY_CODE_TYPE := l_organization_rec.LOCAL_ACTIVITY_CODE_TYPE;
1982   	l_party_search_rec.LOCAL_BUS_IDENTIFIER := l_organization_rec.LOCAL_BUS_IDENTIFIER;
1983   	l_party_search_rec.LOCAL_BUS_IDEN_TYPE := l_organization_rec.LOCAL_BUS_IDEN_TYPE;
1984   	l_party_search_rec.MAXIMUM_CREDIT_CURRENCY_CODE := l_organization_rec.MAXIMUM_CREDIT_CURRENCY_CODE;
1985   	l_party_search_rec.MAXIMUM_CREDIT_RECOMMENDATION := l_organization_rec.MAXIMUM_CREDIT_RECOMMENDATION;
1986   	l_party_search_rec.MINORITY_OWNED_IND := l_organization_rec.MINORITY_OWNED_IND;
1987   	l_party_search_rec.MINORITY_OWNED_TYPE := l_organization_rec.MINORITY_OWNED_TYPE;
1988   	l_party_search_rec.NEXT_FY_POTENTIAL_REVENUE := l_organization_rec.NEXT_FY_POTENTIAL_REVENUE;
1989   	l_party_search_rec.OOB_IND := l_organization_rec.OOB_IND;
1990   	l_party_search_rec.ORGANIZATION_NAME := l_organization_rec.ORGANIZATION_NAME;
1991   	l_party_search_rec.ORGANIZATION_NAME_PHONETIC := l_organization_rec.ORGANIZATION_NAME_PHONETIC;
1992   	l_party_search_rec.ORGANIZATION_TYPE := l_organization_rec.ORGANIZATION_TYPE;
1993   	l_party_search_rec.PARENT_SUB_IND := l_organization_rec.PARENT_SUB_IND;
1994   	l_party_search_rec.PAYDEX_NORM := l_organization_rec.PAYDEX_NORM;
1995   	l_party_search_rec.PAYDEX_SCORE := l_organization_rec.PAYDEX_SCORE;
1996   	l_party_search_rec.PAYDEX_THREE_MONTHS_AGO := l_organization_rec.PAYDEX_THREE_MONTHS_AGO;
1997   	l_party_search_rec.PREF_FUNCTIONAL_CURRENCY := l_organization_rec.PREF_FUNCTIONAL_CURRENCY;
1998   	l_party_search_rec.PRINCIPAL_NAME := l_organization_rec.PRINCIPAL_NAME;
1999   	l_party_search_rec.PRINCIPAL_TITLE := l_organization_rec.PRINCIPAL_TITLE;
2000   	l_party_search_rec.PUBLIC_PRIVATE_OWNERSHIP_FLAG := l_organization_rec.PUBLIC_PRIVATE_OWNERSHIP_FLAG;
2001   	l_party_search_rec.REGISTRATION_TYPE := l_organization_rec.REGISTRATION_TYPE;
2002   	l_party_search_rec.RENT_OWN_IND := l_organization_rec.RENT_OWN_IND;
2003   	l_party_search_rec.SIC_CODE := l_organization_rec.SIC_CODE;
2004   	l_party_search_rec.SIC_CODE_TYPE := l_organization_rec.SIC_CODE_TYPE;
2005   	l_party_search_rec.SMALL_BUS_IND := l_organization_rec.SMALL_BUS_IND;
2006   	l_party_search_rec.TAX_REFERENCE := l_organization_rec.TAX_REFERENCE;
2007   	l_party_search_rec.TOTAL_EMPLOYEES_TEXT := l_organization_rec.TOTAL_EMPLOYEES_TEXT;
2008   	l_party_search_rec.TOTAL_EMP_EST_IND := l_organization_rec.TOTAL_EMP_EST_IND;
2009   	l_party_search_rec.TOTAL_EMP_MIN_IND := l_organization_rec.TOTAL_EMP_MIN_IND;
2010   	l_party_search_rec.TOTAL_EMPLOYEES_IND := l_organization_rec.TOTAL_EMPLOYEES_IND;
2011   	l_party_search_rec.TOTAL_PAYMENTS := l_organization_rec.TOTAL_PAYMENTS;
2012   	l_party_search_rec.WOMAN_OWNED_IND := l_organization_rec.WOMAN_OWNED_IND;
2013   	l_party_search_rec.YEAR_ESTABLISHED := l_organization_rec.YEAR_ESTABLISHED;
2014   	l_party_search_rec.CATEGORY_CODE := p_organization_obj.CATEGORY_CODE;
2015   	l_party_search_rec.PARTY_NAME := l_organization_rec.ORGANIZATION_NAME;
2016   	l_party_search_rec.PARTY_NUMBER := p_organization_obj.PARTY_NUMBER;
2017   	l_party_search_rec.PARTY_TYPE := 'ORGANIZATION';
2018   	l_party_search_rec.STATUS := p_organization_obj.STATUS;
2019 	l_party_search_rec.PARTY_SOURCE_SYSTEM_REF := p_organization_obj.orig_system|| ' ' ||p_organization_obj.orig_system_reference||' ';
2020 
2021 
2022      IF((p_organization_obj.party_site_objs IS NOT NULL) AND (p_organization_obj.party_site_objs.COUNT > 0)) THEN
2023       for i in 1..p_organization_obj.party_site_objs.COUNT loop
2024 	l_party_site_list(i).ADDR_SOURCE_SYSTEM_REF := p_organization_obj.party_site_objs(i).orig_system|| ' ' ||p_organization_obj.party_site_objs(i).orig_system_reference||' ';
2025 	l_party_site_list(i).address := p_organization_obj.party_site_objs(i).location_obj.ADDRESS1|| ' ' ||
2026      					p_organization_obj.party_site_objs(i).location_obj.ADDRESS2|| ' ' ||
2027      					p_organization_obj.party_site_objs(i).location_obj.ADDRESS3|| ' ' ||
2028      					p_organization_obj.party_site_objs(i).location_obj.ADDRESS4;
2029 
2030  	IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
2031 		hz_utility_v2pub.debug(p_message=>'l_party_site_list('||i||').address: '||l_party_site_list(i).ADDRESS,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2032         END IF;
2033 	l_party_site_list(i).ADDRESS1 := p_organization_obj.party_site_objs(i).location_obj.ADDRESS1;
2034   	l_party_site_list(i).ADDRESS2 := p_organization_obj.party_site_objs(i).location_obj.ADDRESS2;
2035   	l_party_site_list(i).ADDRESS3 := p_organization_obj.party_site_objs(i).location_obj.ADDRESS3;
2036   	l_party_site_list(i).ADDRESS4 := p_organization_obj.party_site_objs(i).location_obj.ADDRESS4;
2037   	l_party_site_list(i).ADDRESS_EFFECTIVE_DATE := p_organization_obj.party_site_objs(i).location_obj.ADDRESS_EFFECTIVE_DATE;
2038   	l_party_site_list(i).ADDRESS_EXPIRATION_DATE := p_organization_obj.party_site_objs(i).location_obj.ADDRESS_EXPIRATION_DATE;
2039   	l_party_site_list(i).ADDRESS_LINES_PHONETIC := p_organization_obj.party_site_objs(i).location_obj.ADDRESS_LINES_PHONETIC;
2040   	l_party_site_list(i).CITY := p_organization_obj.party_site_objs(i).location_obj.CITY;
2041   	l_party_site_list(i).CLLI_CODE := p_organization_obj.party_site_objs(i).location_obj.CLLI_CODE;
2042   	l_party_site_list(i).COUNTRY := p_organization_obj.party_site_objs(i).location_obj.COUNTRY;
2043   	l_party_site_list(i).COUNTY := p_organization_obj.party_site_objs(i).location_obj.COUNTY;
2044   	l_party_site_list(i).LANGUAGE := p_organization_obj.party_site_objs(i).LANGUAGE;
2045   	l_party_site_list(i).POSITION := p_organization_obj.party_site_objs(i).location_obj.POSITION;
2046   	l_party_site_list(i).POSTAL_CODE := p_organization_obj.party_site_objs(i).location_obj.POSTAL_CODE;
2047   	l_party_site_list(i).POSTAL_PLUS4_CODE := p_organization_obj.party_site_objs(i).location_obj.POSTAL_PLUS4_CODE;
2048 
2049   	l_party_site_list(i).PROVINCE := p_organization_obj.party_site_objs(i).location_obj.PROVINCE;
2050   	l_party_site_list(i).SALES_TAX_GEOCODE := p_organization_obj.party_site_objs(i).location_obj.SALES_TAX_GEOCODE;
2051   	l_party_site_list(i).SALES_TAX_INSIDE_CITY_LIMITS := p_organization_obj.party_site_objs(i).location_obj.SALES_TAX_INSIDE_CITY_LIMITS;
2052   	l_party_site_list(i).STATE := p_organization_obj.party_site_objs(i).location_obj.STATE;
2053   	l_party_site_list(i).IDENTIFYING_ADDRESS_FLAG := p_organization_obj.party_site_objs(i).IDENTIFYING_ADDRESS_FLAG;
2054   	l_party_site_list(i).MAILSTOP := p_organization_obj.party_site_objs(i).MAILSTOP;
2055   	l_party_site_list(i).PARTY_SITE_NAME := p_organization_obj.party_site_objs(i).PARTY_SITE_NAME;
2056   	l_party_site_list(i).PARTY_SITE_NUMBER := p_organization_obj.party_site_objs(i).PARTY_SITE_NUMBER;
2057   	l_party_site_list(i).STATUS := p_organization_obj.party_site_objs(i).STATUS;
2058       end loop;
2059     end if;
2060 
2061     IF((p_organization_obj.contact_objs IS NOT NULL) AND (p_organization_obj.contact_objs.COUNT > 0)) THEN
2062      for i in 1..p_organization_obj.contact_objs.COUNT loop
2063 	l_contact_list(i).CONTACT_SOURCE_SYSTEM_REF :=p_organization_obj.contact_objs(i).orig_system|| ' ' ||p_organization_obj.contact_objs(i).orig_system_reference||' ';
2064      	l_contact_list(i).CONTACT_NUMBER := p_organization_obj.contact_objs(i).CONTACT_NUMBER;
2065   	l_contact_list(i).CONTACT_NAME := p_organization_obj.contact_objs(i).person_profile_obj.PERSON_FIRST_NAME||' '||p_organization_obj.contact_objs(i).person_profile_obj.PERSON_LAST_NAME;
2066   	l_contact_list(i).DECISION_MAKER_FLAG := p_organization_obj.contact_objs(i).DECISION_MAKER_FLAG;
2067   	l_contact_list(i).JOB_TITLE := p_organization_obj.contact_objs(i).JOB_TITLE;
2068   	l_contact_list(i).JOB_TITLE_CODE := p_organization_obj.contact_objs(i).JOB_TITLE_CODE;
2069   	l_contact_list(i).RANK := p_organization_obj.contact_objs(i).RANK;
2070   	l_contact_list(i).REFERENCE_USE_FLAG := p_organization_obj.contact_objs(i).REFERENCE_USE_FLAG;
2071   	l_contact_list(i).TITLE := p_organization_obj.contact_objs(i).TITLE;
2072   	l_contact_list(i).RELATIONSHIP_TYPE := p_organization_obj.contact_objs(i).RELATIONSHIP_TYPE;
2073   	l_contact_list(i).DATE_OF_BIRTH := p_organization_obj.contact_objs(i).person_profile_obj.DATE_OF_BIRTH;
2074   	l_contact_list(i).DATE_OF_DEATH := p_organization_obj.contact_objs(i).person_profile_obj.DATE_OF_DEATH;
2075   	l_contact_list(i).JGZZ_FISCAL_CODE := p_organization_obj.contact_objs(i).person_profile_obj.JGZZ_FISCAL_CODE;
2076   	l_contact_list(i).KNOWN_AS := p_organization_obj.contact_objs(i).person_profile_obj.KNOWN_AS;
2077   	l_contact_list(i).PERSON_ACADEMIC_TITLE := p_organization_obj.contact_objs(i).person_profile_obj.PERSON_ACADEMIC_TITLE;
2078   	l_contact_list(i).PERSON_FIRST_NAME := p_organization_obj.contact_objs(i).person_profile_obj.PERSON_FIRST_NAME;
2079   	l_contact_list(i).PERSON_FIRST_NAME_PHONETIC := p_organization_obj.contact_objs(i).person_profile_obj.PERSON_FIRST_NAME_PHONETIC;
2080   	l_contact_list(i).PERSON_IDENTIFIER := p_organization_obj.contact_objs(i).person_profile_obj.PERSON_IDENTIFIER;
2081   	l_contact_list(i).PERSON_IDEN_TYPE := p_organization_obj.contact_objs(i).person_profile_obj.PERSON_IDEN_TYPE;
2082   	l_contact_list(i).PERSON_INITIALS := p_organization_obj.contact_objs(i).person_profile_obj.PERSON_INITIALS;
2083   	l_contact_list(i).PERSON_LAST_NAME := p_organization_obj.contact_objs(i).person_profile_obj.PERSON_LAST_NAME;
2084   	l_contact_list(i).PERSON_LAST_NAME_PHONETIC := p_organization_obj.contact_objs(i).person_profile_obj.PERSON_LAST_NAME_PHONETIC;
2085   	l_contact_list(i).PERSON_MIDDLE_NAME := p_organization_obj.contact_objs(i).person_profile_obj.PERSON_MIDDLE_NAME;
2086   	l_contact_list(i).PERSON_NAME := p_organization_obj.contact_objs(i).person_profile_obj.PERSON_FIRST_NAME||' '||p_organization_obj.contact_objs(i).person_profile_obj.PERSON_LAST_NAME;
2087   	l_contact_list(i).PERSON_NAME_PHONETIC := p_organization_obj.contact_objs(i).person_profile_obj.PERSON_NAME_PHONETIC;
2088   	l_contact_list(i).PERSON_NAME_SUFFIX := p_organization_obj.contact_objs(i).person_profile_obj.PERSON_NAME_SUFFIX;
2089   	l_contact_list(i).PERSON_PREVIOUS_LAST_NAME := p_organization_obj.contact_objs(i).person_profile_obj.PERSON_PREVIOUS_LAST_NAME;
2090   	l_contact_list(i).PERSON_TITLE := p_organization_obj.contact_objs(i).person_profile_obj.PERSON_TITLE;
2091   	l_contact_list(i).PLACE_OF_BIRTH := p_organization_obj.contact_objs(i).person_profile_obj.PLACE_OF_BIRTH;
2092   --	l_contact_list(i).TAX_NAME := p_organization_obj.contact_objs(i).person_profile_obj.TAX_NAME;
2093   	l_contact_list(i).TAX_REFERENCE := p_organization_obj.contact_objs(i).person_profile_obj.TAX_REFERENCE;
2094 
2095        end loop;
2096      end if;
2097 
2098      IF((p_organization_obj.phone_objs IS NOT NULL) AND (p_organization_obj.phone_objs.COUNT > 0))
2099      then
2100       for i in 1..p_organization_obj.phone_objs.COUNT loop
2101 	l_contact_point_list(i).CPT_SOURCE_SYSTEM_REF := p_organization_obj.phone_objs(i).orig_system|| ' ' ||p_organization_obj.phone_objs(i).orig_system_reference||' ';
2102         l_contact_point_list(i).CONTACT_POINT_TYPE := 'PHONE';
2103 	l_contact_point_list(i).PRIMARY_FLAG := p_organization_obj.phone_objs(i).PRIMARY_FLAG;
2104   	l_contact_point_list(i).STATUS := p_organization_obj.phone_objs(i).STATUS;
2105   	l_contact_point_list(i).CONTACT_POINT_PURPOSE := p_organization_obj.phone_objs(i).CONTACT_POINT_PURPOSE;
2106   	l_contact_point_list(i).LAST_CONTACT_DT_TIME := p_organization_obj.phone_objs(i).LAST_CONTACT_DT_TIME;
2107   	l_contact_point_list(i).PHONE_AREA_CODE := p_organization_obj.phone_objs(i).PHONE_AREA_CODE;
2108   	l_contact_point_list(i).PHONE_CALLING_CALENDAR := p_organization_obj.phone_objs(i).PHONE_CALLING_CALENDAR;
2109   	l_contact_point_list(i).PHONE_COUNTRY_CODE := p_organization_obj.phone_objs(i).PHONE_COUNTRY_CODE;
2110   	l_contact_point_list(i).PHONE_EXTENSION := p_organization_obj.phone_objs(i).PHONE_EXTENSION;
2111   	l_contact_point_list(i).PHONE_LINE_TYPE := p_organization_obj.phone_objs(i).PHONE_LINE_TYPE;
2112   	l_contact_point_list(i).PHONE_NUMBER := p_organization_obj.phone_objs(i).PHONE_NUMBER;
2113   	l_contact_point_list(i).PRIMARY_FLAG := p_organization_obj.phone_objs(i).PRIMARY_FLAG;
2114   	l_contact_point_list(i).RAW_PHONE_NUMBER := p_organization_obj.phone_objs(i).RAW_PHONE_NUMBER;
2115   	l_contact_point_list(i).TELEPHONE_TYPE := p_organization_obj.phone_objs(i).PHONE_LINE_TYPE;
2116   	l_contact_point_list(i).TIME_ZONE := p_organization_obj.phone_objs(i).TIMEZONE_ID;
2117         -- Per DQM, flex_formatted_phone_number is the concate of country code, area code and phone number
2118 	if p_organization_obj.phone_objs(i).PHONE_NUMBER is not null
2119 	then
2120           l_contact_point_list(i).FLEX_FORMAT_PHONE_NUMBER := p_organization_obj.phone_objs(i).PHONE_COUNTRY_CODE ||p_organization_obj.phone_objs(i).PHONE_AREA_CODE||p_organization_obj.phone_objs(i).PHONE_NUMBER;
2121 
2122 	elsif l_contact_point_list(i).RAW_PHONE_NUMBER is not null
2123 	then
2124 		 hz_contact_point_v2pub.phone_format (
2125                                  p_raw_phone_number       => p_organization_obj.phone_objs(i).RAW_PHONE_NUMBER,
2126                                  p_territory_code         => p_organization_obj.phone_objs(i).PHONE_COUNTRY_CODE,
2127                                  x_formatted_phone_number => l_contact_point_list(i).FLEX_FORMAT_PHONE_NUMBER,
2128                                  x_phone_country_code     => l_contact_point_list(i).PHONE_COUNTRY_CODE,
2129                                  x_phone_area_code        => l_contact_point_list(i).PHONE_AREA_CODE,
2130                                  x_phone_number           => l_contact_point_list(i).PHONE_NUMBER,
2131                                  x_return_status          => x_return_status,
2132                                  x_msg_count              => x_msg_count,
2133                                  x_msg_data               => x_msg_data);
2134 		 l_contact_point_list(i).FLEX_FORMAT_PHONE_NUMBER := l_contact_point_list(i).PHONE_COUNTRY_CODE ||l_contact_point_list(i).PHONE_AREA_CODE||l_contact_point_list(i).PHONE_NUMBER;
2135 
2136 	end if;
2137 
2138 	IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
2139 		hz_utility_v2pub.debug(p_message=>'l_contact_point_list('||i||').flex_format_phone_number: '||l_contact_point_list(i).FLEX_FORMAT_PHONE_NUMBER,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2140 	        hz_utility_v2pub.debug(p_message=>'l_contact_point_list('||i||').phone_number: '||l_contact_point_list(i).PHONE_NUMBER,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2141         END IF;
2142 
2143        end loop;
2144      end if;
2145 
2146      l_cpt_count := l_contact_point_list.COUNT;
2147     IF((p_organization_obj.email_objs IS NOT NULL) AND (p_organization_obj.email_objs.COUNT > 0))
2148     then
2149       for i in 1..p_organization_obj.email_objs.COUNT loop
2150 	l_contact_point_list(i).CPT_SOURCE_SYSTEM_REF := p_organization_obj.phone_objs(i).orig_system|| ' ' ||p_organization_obj.phone_objs(i).orig_system_reference||' ';
2151         l_contact_point_list(l_cpt_count+i).CONTACT_POINT_TYPE := 'EMAIL';
2152 	l_contact_point_list(l_cpt_count+i).PRIMARY_FLAG := p_organization_obj.email_objs(i).PRIMARY_FLAG;
2153   	l_contact_point_list(l_cpt_count+i).STATUS := p_organization_obj.email_objs(i).STATUS;
2154   	l_contact_point_list(l_cpt_count+i).CONTACT_POINT_PURPOSE := p_organization_obj.email_objs(i).CONTACT_POINT_PURPOSE;
2155 	l_contact_point_list(l_cpt_count+i).EMAIL_ADDRESS := p_organization_obj.email_objs(i).EMAIL_ADDRESS;
2156         l_contact_point_list(l_cpt_count+i).EMAIL_FORMAT := p_organization_obj.email_objs(i).EMAIL_FORMAT;
2157 
2158       end loop;
2159     end if;
2160 
2161     l_cpt_count := l_contact_point_list.COUNT;
2162     IF((p_organization_obj.web_objs IS NOT NULL) AND (p_organization_obj.web_objs.COUNT > 0))
2163     then
2164       for i in 1..p_organization_obj.web_objs.COUNT loop
2165 	l_contact_point_list(i).CPT_SOURCE_SYSTEM_REF := p_organization_obj.phone_objs(i).orig_system|| ' ' ||p_organization_obj.phone_objs(i).orig_system_reference||' ';
2166         l_contact_point_list(l_cpt_count+i).CONTACT_POINT_TYPE := 'WEB';
2167 	l_contact_point_list(l_cpt_count+i).PRIMARY_FLAG := p_organization_obj.web_objs(i).PRIMARY_FLAG;
2168   	l_contact_point_list(l_cpt_count+i).STATUS := p_organization_obj.web_objs(i).STATUS;
2169   	l_contact_point_list(l_cpt_count+i).CONTACT_POINT_PURPOSE := p_organization_obj.web_objs(i).CONTACT_POINT_PURPOSE;
2170 	l_contact_point_list(l_cpt_count+i).URL := p_organization_obj.web_objs(i).URL ;
2171   	l_contact_point_list(l_cpt_count+i).WEB_TYPE := p_organization_obj.web_objs(i).WEB_TYPE;
2172 
2173       end loop;
2174     end if;
2175 
2176     l_cpt_count := l_contact_point_list.COUNT;
2177     IF((p_organization_obj.telex_objs IS NOT NULL) AND (p_organization_obj.telex_objs.COUNT > 0))
2178     then
2179       for i in 1..p_organization_obj.telex_objs.COUNT loop
2180 	l_contact_point_list(i).CPT_SOURCE_SYSTEM_REF := p_organization_obj.phone_objs(i).orig_system|| ' ' ||p_organization_obj.phone_objs(i).orig_system_reference||' ';
2181         l_contact_point_list(l_cpt_count+i).CONTACT_POINT_TYPE := 'TLX';
2182 	l_contact_point_list(l_cpt_count+i).PRIMARY_FLAG := p_organization_obj.telex_objs(i).PRIMARY_FLAG;
2183   	l_contact_point_list(l_cpt_count+i).STATUS := p_organization_obj.telex_objs(i).STATUS;
2184   	l_contact_point_list(l_cpt_count+i).CONTACT_POINT_PURPOSE := p_organization_obj.telex_objs(i).CONTACT_POINT_PURPOSE;
2185       end loop;
2186     end if;
2187 
2188     l_cpt_count := l_contact_point_list.COUNT;
2189     IF((p_organization_obj.edi_objs IS NOT NULL) AND (p_organization_obj.edi_objs.COUNT > 0))
2190     then
2191       for i in 1..p_organization_obj.edi_objs.COUNT loop
2192 	l_contact_point_list(i).CPT_SOURCE_SYSTEM_REF := p_organization_obj.phone_objs(i).orig_system|| ' ' ||p_organization_obj.phone_objs(i).orig_system_reference||' ';
2193         l_contact_point_list(l_cpt_count+i).CONTACT_POINT_TYPE := 'EDI';
2194 	l_contact_point_list(l_cpt_count+i).PRIMARY_FLAG := p_organization_obj.edi_objs(i).PRIMARY_FLAG;
2195   	l_contact_point_list(l_cpt_count+i).STATUS := p_organization_obj.edi_objs(i).STATUS;
2196         l_contact_point_list(l_cpt_count+i).EDI_ECE_TP_LOCATION_CODE := P_ORGANIZATION_OBJ.EDI_OBJS(I).EDI_ECE_TP_LOCATION_CODE;
2197   	l_contact_point_list(l_cpt_count+i).EDI_ID_NUMBER := P_ORGANIZATION_OBJ.EDI_OBJS(I).EDI_ID_NUMBER;
2198   	l_contact_point_list(l_cpt_count+i).EDI_PAYMENT_FORMAT := P_ORGANIZATION_OBJ.EDI_OBJS(I).EDI_PAYMENT_FORMAT;
2199   	l_contact_point_list(l_cpt_count+i).EDI_PAYMENT_METHOD := P_ORGANIZATION_OBJ.EDI_OBJS(I).EDI_PAYMENT_METHOD;
2200   	l_contact_point_list(l_cpt_count+i).EDI_REMITTANCE_INSTRUCTION := P_ORGANIZATION_OBJ.EDI_OBJS(I).EDI_REMITTANCE_INSTRUCTION;
2201   	l_contact_point_list(l_cpt_count+i).EDI_REMITTANCE_METHOD := P_ORGANIZATION_OBJ.EDI_OBJS(I).EDI_REMITTANCE_METHOD;
2202   	l_contact_point_list(l_cpt_count+i).EDI_TP_HEADER_ID := P_ORGANIZATION_OBJ.EDI_OBJS(I).EDI_TP_HEADER_ID;
2203   	l_contact_point_list(l_cpt_count+i).EDI_TRANSACTION_HANDLING := P_ORGANIZATION_OBJ.EDI_OBJS(I).EDI_TRANSACTION_HANDLING;
2204       end loop;
2205     end if;
2206 
2207     IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
2208 	hz_utility_v2pub.debug(p_message=>'Calling DQM API HZ_PARTY_SEARCH.find_parties ',p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2209 	hz_utility_v2pub.debug(p_message=>'HZ_PARTY_SEARCH.find_parties Start time: '||TO_CHAR(SYSDATE, 'MM-DD-YY HH24:MI:SS'),p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2210     END IF;
2211 
2212     HZ_PARTY_SEARCH.find_parties (
2213 	     p_init_msg_list     => FND_API.G_FALSE,
2214 	     x_rule_id           => l_match_rule_id,
2215 	     p_party_search_rec  => l_party_search_rec,
2216 	     p_party_site_list   => l_party_site_list,
2217 	     p_contact_list      => l_contact_list,
2218 	     p_contact_point_list=> l_contact_point_list,
2219 	     p_restrict_sql      => null,
2220 	     p_search_merged     => 'N', -- return only active
2221 	     x_search_ctx_id     => l_search_ctx_id,
2222 	     x_num_matches       => l_num_matches,
2223 	     x_return_status     => x_return_status,
2224  	     x_msg_count         => x_msg_count,
2225              x_msg_data          => x_msg_data
2226 
2227     );
2228 
2229     IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
2230 	hz_utility_v2pub.debug(p_message=>'HZ_PARTY_SEARCH.find_parties end time: '||TO_CHAR(SYSDATE, 'MM-DD-YY HH24:MI:SS'),p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2231 	hz_utility_v2pub.debug(p_message=>'return status of find_parties: '||x_return_status,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2232 	hz_utility_v2pub.debug(p_message=>'search_ctx_id: '||l_search_ctx_id,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2233         if l_num_matches = 0
2234         then
2235           hz_utility_v2pub.debug(p_message=>'# of Matches: '||l_num_matches,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2236         end if;
2237     END IF;
2238 
2239    if l_num_matches > 0 then
2240 
2241      hz_dup_pvt.get_most_matching_party(p_search_ctx_id => l_search_ctx_id,
2242 					p_new_party_id =>  x_organization_id,
2243 				       x_party_id => l_party_id,
2244 				       x_match_score => l_match_score,
2245 				       x_party_name => l_party_name);
2246      if l_party_id is null
2247      then
2248 		 IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
2249 		 	hz_utility_v2pub.debug(p_message=>'# of Matches: 0 ',p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2250 		 end if;
2251      else
2252 
2253          IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
2254 		hz_utility_v2pub.debug(p_message=>'# of Matches: '||l_num_matches,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2255         	hz_utility_v2pub.debug(p_message=>'Most matching Party Id: '||l_party_id,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2256 	        hz_utility_v2pub.debug(p_message=>'Most matching Party Name: '||l_party_name,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2257         	hz_utility_v2pub.debug(p_message=>'Match score: '||l_match_score,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2258     	 END IF;
2259 
2260 	hz_dup_pvt.get_match_rule_thresholds(p_match_rule_id => l_match_rule_id,
2261 				    x_match_threshold => l_match_threshold,
2262 				    x_automerge_threshold => l_automerge_threshold);
2263 
2264 	IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
2265         	hz_utility_v2pub.debug(p_message=>'Match Threshold: '||l_match_threshold,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2266         	hz_utility_v2pub.debug(p_message=>'Automerge Threshold: '||l_automerge_threshold,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2267 
2268     	 END IF;
2269 
2270 	if l_match_score >= l_match_threshold
2271 	then
2272 		hz_dup_pvt.validate_master_party_id(px_party_id => l_party_id,
2273 					x_overlap_merge_req_id => l_overlap_merge_req_id);
2274 
2275 
2276 
2277 		if l_overlap_merge_req_id is not null
2278 		then
2279 			l_tmp_score := l_match_score;
2280 			begin
2281 				SELECT score, party_name into l_match_score, l_party_name
2282 				FROM hz_matched_parties_gt mpg, hz_parties p
2283 				WHERE mpg.party_id = p.party_id
2284 				and mpg.party_id = l_party_id
2285 				and mpg.search_context_id = l_search_ctx_id
2286 				and rownum = 1;
2287 			EXCEPTION
2288        				WHEN NO_DATA_FOUND THEN
2289 				l_match_score := 0;
2290 				IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
2291 					hz_utility_v2pub.debug(p_message=>'The changed party is not a duplicate with the newly created party' ,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2292 				end if;
2293 			END;
2294 			IF l_match_score > 0 and fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
2295 				hz_utility_v2pub.debug(p_message=>'Winner Party ID is changed. Overlapping Merge Req ID: '||l_overlap_merge_req_id,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2296 
2297         		hz_utility_v2pub.debug(p_message=>'Winner Party Id: '||l_party_id,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2298 				hz_utility_v2pub.debug(p_message=>'Winner Party Id match score: '||l_match_score,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2299 		      end if;
2300     	        END IF;
2301 
2302 	     if l_match_score >= l_match_threshold
2303 	     then -- match score might get reset due to overlapping req, need to check this again.
2304 
2305 		l_dup_batch_rec.dup_batch_name := l_party_name||'-'|| to_char(sysdate);
2306     		l_dup_batch_rec.match_rule_id := l_match_rule_id;
2307     		l_dup_batch_rec.application_id := 222;
2308     		l_dup_batch_rec.request_type := 'USER_ENTERED';
2309     		l_dup_batch_id := NULL;
2310     		l_dup_set_rec.winner_party_id := l_party_id;
2311     		l_dup_set_rec.status := 'SYSBATCH';
2312     		l_dup_set_rec.assigned_to_user_id := fnd_global.user_id;
2313 		l_dup_set_rec.merge_type := 'PARTY_MERGE';
2314 
2315 		l_dup_party_tbl(1).party_id := l_party_id;
2316       		l_dup_party_tbl(1).score := l_match_score;
2317       		l_dup_party_tbl(1).merge_flag := 'Y';
2318 
2319 	 	l_dup_party_tbl(2).party_id := x_organization_id; -- newly created org id
2320       		l_dup_party_tbl(2).score := 0;
2321       		l_dup_party_tbl(2).merge_flag := 'Y';
2322 
2323 		HZ_DUP_PVT.create_dup_batch(
2324          	p_dup_batch_rec             => l_dup_batch_rec
2325         	,p_dup_set_rec               => l_dup_set_rec
2326         	,p_dup_party_tbl             => l_dup_party_tbl
2327         	,x_dup_batch_id              => l_dup_batch_id
2328         	,x_dup_set_id                => l_dup_set_id
2329         	,x_return_status             => x_return_status
2330         	,x_msg_count                 => x_msg_count
2331         	,x_msg_data                  => x_msg_data );
2332 
2333 
2334       		IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
2335       			RAISE FND_API.G_EXC_ERROR;
2336       		END IF;
2337 
2338 		IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
2339         			hz_utility_v2pub.debug(p_message=>'Created dup batch: dup_set_id: '||l_dup_set_id,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2340 
2341     	        END IF;
2342 
2343 
2344 		if l_dup_set_id is not null
2345 		then
2346 		  if l_match_score < l_automerge_threshold -- create merge request
2347 		  then
2348 			hz_dup_pvt.submit_dup (
2349    					p_dup_set_id    => l_dup_set_id
2350   					,x_request_id    => l_request_id
2351   					,x_return_status => x_return_status
2352   					,x_msg_count     => x_msg_count
2353   					,x_msg_data      => x_msg_data);
2354 
2355 		        IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
2356         				hz_utility_v2pub.debug(p_message=>'Merge Request Created with merge request id: '||l_dup_set_id,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2357         				hz_utility_v2pub.debug(p_message=>'Create Merge Request conc request id: '||l_request_id,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2358 
2359 			end if;
2360 		  end if; --if l_match_score < l_automerge_threshold
2361                  end if; --if l_match_score >= l_match_threshold then
2362 
2363 		  if l_match_score >= l_automerge_threshold
2364     		  then
2365 				open get_obj_version_csr(l_dup_set_id);
2366 				fetch get_obj_version_csr into l_object_version_number;
2367 	        		close get_obj_version_csr;
2368 
2369 				hz_merge_dup_pvt.Create_Merge_Batch(  -- need to create merge in real time.
2370   					p_dup_set_id    => l_dup_set_id,
2371   					p_default_mapping  => 'Y',
2372   					p_object_version_number => l_object_version_number,
2373   					x_merge_batch_id     => l_batch_id,
2374 					x_return_status => x_return_status,
2375   					x_msg_count     => x_msg_count,
2376   					x_msg_data      => x_msg_data);
2377 
2378 
2379 	            		--submit Party Merge concurrent program
2380                                      hz_merge_dup_pvt.submit_batch(
2381   					p_batch_id      => l_dup_set_id,
2382   					p_preview       => 'N',
2383   					x_request_id    => l_request_id,
2384   					x_return_status => x_return_status,
2385   					x_msg_count     => x_msg_count,
2386   					x_msg_data      => x_msg_data);
2387 				IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
2388 					hz_utility_v2pub.debug(p_message=>'Party Merge request status: '||x_return_status,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2389         				hz_utility_v2pub.debug(p_message=>'Party Merge request submitted with conc request_id: '||l_request_id,p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2390                         	end if;
2391 
2392     	          end if; -- if l_match_score >= l_automerge_threshold
2393 		end if; --if l_dup_set_id is not null
2394 	end if;	-- if l_match_score >= l_match_threshold
2395     end if; -- if l_party_id = x_organization_id
2396    end if;  -- if l_num_matches > 0 then
2397    IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
2398 	hz_utility_v2pub.debug(p_message=>'Enable DQ on Integration Services: End ',p_prefix=>'DEBUG: ',p_msg_level=>fnd_log.level_statement, p_module=>'HZ_Module.enableDQ');
2399    end if;
2400 end if;  -- if nvl(fnd_profile.value('HZ_BO_ENABLE_DQ'),'N') = 'Y'
2401     -- reset Global variable
2402     HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2403     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2404 
2405     -- Debug info.
2406     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
2407          hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2408                                p_msg_data=>x_msg_data,
2409                                p_msg_type=>'WARNING',
2410                                p_msg_level=>fnd_log.level_exception);
2411     END IF;
2412     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2413         hz_utility_v2pub.debug(p_message=>'create_organization_bo(-)',
2414                                p_prefix=>l_debug_prefix,
2415                                p_msg_level=>fnd_log.level_procedure);
2416     END IF;
2417 
2418   EXCEPTION
2419     WHEN fnd_api.g_exc_error THEN
2420       ROLLBACK TO do_create_organization_bo_pub;
2421 
2422       -- reset Global variable
2423       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2424       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2425 
2426       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
2427       FND_MESSAGE.SET_TOKEN('OBJECT', 'ORG');
2428       FND_MSG_PUB.ADD;
2429 
2430       x_return_status := fnd_api.g_ret_sts_error;
2431 
2432       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2433                                 p_count => x_msg_count,
2434                                 p_data  => x_msg_data);
2435 
2436       -- Debug info.
2437       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2438         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2439                                p_msg_data=>x_msg_data,
2440                                p_msg_type=>'ERROR',
2441                                p_msg_level=>fnd_log.level_error);
2442       END IF;
2443       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2444         hz_utility_v2pub.debug(p_message=>'do_create_organization_bo(-)',
2445                                p_prefix=>l_debug_prefix,
2446                                p_msg_level=>fnd_log.level_procedure);
2447       END IF;
2448 
2449     WHEN fnd_api.g_exc_unexpected_error THEN
2450       ROLLBACK TO do_create_organization_bo_pub;
2451 
2452       -- reset Global variable
2453       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2454       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2455 
2456       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
2457       FND_MESSAGE.SET_TOKEN('OBJECT', 'ORG');
2458       FND_MSG_PUB.ADD;
2459 
2460       x_return_status := fnd_api.g_ret_sts_unexp_error;
2461 
2462       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2463                                 p_count => x_msg_count,
2464                                 p_data  => x_msg_data);
2465 
2466       -- Debug info.
2467       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2468         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2469                                p_msg_data=>x_msg_data,
2470                                p_msg_type=>'UNEXPECTED ERROR',
2471                                p_msg_level=>fnd_log.level_error);
2472       END IF;
2473       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2474         hz_utility_v2pub.debug(p_message=>'do_create_organization_bo(-)',
2475                                p_prefix=>l_debug_prefix,
2476                                p_msg_level=>fnd_log.level_procedure);
2477       END IF;
2478 
2479     WHEN OTHERS THEN
2480       ROLLBACK TO do_create_organization_bo_pub;
2481 
2482       -- reset Global variable
2483       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2484       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2485 
2486       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
2487       FND_MESSAGE.SET_TOKEN('OBJECT', 'ORG');
2488       FND_MSG_PUB.ADD;
2489 
2490       x_return_status := fnd_api.g_ret_sts_unexp_error;
2491 
2492       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2493       fnd_message.set_token('ERROR' ,SQLERRM);
2494       fnd_msg_pub.add;
2495 
2496       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2497                                 p_count => x_msg_count,
2498                                 p_data  => x_msg_data);
2499 
2500       -- Debug info.
2501       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2502         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2503                                p_msg_data=>x_msg_data,
2504                                p_msg_type=>'SQL ERROR',
2505                                p_msg_level=>fnd_log.level_error);
2506       END IF;
2507       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2508         hz_utility_v2pub.debug(p_message=>'do_create_organization_bo(-)',
2509                                p_prefix=>l_debug_prefix,
2510                                p_msg_level=>fnd_log.level_procedure);
2511       END IF;
2512   END do_create_organization_bo;
2513 
2514   PROCEDURE create_organization_bo(
2515     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
2516     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
2517     p_organization_obj    IN            HZ_ORGANIZATION_BO,
2518     p_created_by_module   IN            VARCHAR2,
2519     x_return_status       OUT NOCOPY    VARCHAR2,
2520     x_msg_count           OUT NOCOPY    NUMBER,
2521     x_msg_data            OUT NOCOPY    VARCHAR2,
2522     x_organization_id     OUT NOCOPY    NUMBER,
2523     x_organization_os     OUT NOCOPY    VARCHAR2,
2524     x_organization_osr    OUT NOCOPY    VARCHAR2
2525   ) IS
2526     l_org_obj             HZ_ORGANIZATION_BO;
2527   BEGIN
2528     l_org_obj := p_organization_obj;
2529     do_create_organization_bo(
2530       p_init_msg_list       => p_init_msg_list,
2531       p_validate_bo_flag    => p_validate_bo_flag,
2532       p_organization_obj    => l_org_obj,
2533       p_created_by_module   => p_created_by_module,
2534       p_obj_source          => null,
2535       x_return_status       => x_return_status,
2536       x_msg_count           => x_msg_count,
2537       x_msg_data            => x_msg_data,
2538       x_organization_id     => x_organization_id,
2539       x_organization_os     => x_organization_os,
2540       x_organization_osr    => x_organization_osr
2541     );
2542   END create_organization_bo;
2543 
2544   PROCEDURE create_organization_bo(
2545     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
2546     p_organization_obj    IN            HZ_ORGANIZATION_BO,
2547     p_created_by_module   IN            VARCHAR2,
2548     p_obj_source          IN            VARCHAR2 := null,
2549     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
2550     x_return_status       OUT NOCOPY    VARCHAR2,
2551     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
2552     x_return_obj          OUT NOCOPY    HZ_ORGANIZATION_BO,
2553     x_organization_id     OUT NOCOPY    NUMBER,
2554     x_organization_os     OUT NOCOPY    VARCHAR2,
2555     x_organization_osr    OUT NOCOPY    VARCHAR2
2556   ) IS
2557     l_msg_data            VARCHAR2(2000);
2558     l_msg_count           NUMBER;
2559     l_org_obj             HZ_ORGANIZATION_BO;
2560   BEGIN
2561     l_org_obj := p_organization_obj;
2562     do_create_organization_bo(
2563       p_init_msg_list       => fnd_api.g_true,
2564       p_validate_bo_flag    => p_validate_bo_flag,
2565       p_organization_obj    => l_org_obj,
2566       p_created_by_module   => p_created_by_module,
2567       p_obj_source          => p_obj_source,
2568       x_return_status       => x_return_status,
2569       x_msg_count           => l_msg_count,
2570       x_msg_data            => l_msg_data,
2571       x_organization_id     => x_organization_id,
2572       x_organization_os     => x_organization_os,
2573       x_organization_osr    => x_organization_osr
2574     );
2575     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
2576                     x_return_status   => x_return_status,
2577                     x_msg_count       => l_msg_count,
2578                     x_msg_data        => l_msg_data);
2579     IF FND_API.to_Boolean(p_return_obj_flag) THEN
2580       x_return_obj := l_org_obj;
2581     END IF;
2582   END create_organization_bo;
2583 
2584   -- PROCEDURE do_update_organization_bo
2585   --
2586   -- DESCRIPTION
2587   --     Update organization business object.
2588   PROCEDURE do_update_organization_bo(
2589     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
2590     p_organization_obj    IN OUT NOCOPY HZ_ORGANIZATION_BO,
2591     p_created_by_module   IN            VARCHAR2,
2592     p_obj_source          IN            VARCHAR2 := null,
2593     x_return_status       OUT NOCOPY    VARCHAR2,
2594     x_msg_count           OUT NOCOPY    NUMBER,
2595     x_msg_data            OUT NOCOPY    VARCHAR2,
2596     x_organization_id     OUT NOCOPY    NUMBER,
2597     x_organization_os     OUT NOCOPY    VARCHAR2,
2598     x_organization_osr    OUT NOCOPY    VARCHAR2
2599   )IS
2600     l_debug_prefix             VARCHAR2(30);
2601     l_organization_rec         HZ_PARTY_V2PUB.ORGANIZATION_REC_TYPE;
2602     l_create_update_flag       VARCHAR2(1);
2603     l_ovn                      NUMBER;
2604     l_dummy_id                 NUMBER;
2605     l_profile_id               NUMBER;
2606     l_errorcode                NUMBER;
2607     l_org_raise_event          BOOLEAN := FALSE;
2608     l_oc_raise_event           BOOLEAN := FALSE;
2609     l_cbm                      VARCHAR2(30);
2610     l_org_event_id             NUMBER;
2611     l_oc_event_id              NUMBER;
2612     l_sms_objs                 HZ_SMS_CP_BO_TBL;
2613     l_party_number             VARCHAR2(30);
2614 
2615     CURSOR get_ovn(l_party_id  NUMBER) IS
2616     SELECT p.object_version_number, p.party_number
2617     FROM HZ_PARTIES p
2618     WHERE p.party_id = l_party_id
2619     AND p.party_type = 'ORGANIZATION'
2620     AND p.status in ('A','I');
2621 
2622   BEGIN
2623     -- Standard start of API savepoint
2624     SAVEPOINT do_update_organization_bo_pub;
2625 
2626     -- initialize API return status to success.
2627     x_return_status := FND_API.G_RET_STS_SUCCESS;
2628 
2629     -- Initialize message list if p_init_msg_list is set to TRUE.
2630     IF FND_API.to_Boolean(p_init_msg_list) THEN
2631       FND_MSG_PUB.initialize;
2632     END IF;
2633 
2634     -- initialize Global variable
2635     HZ_UTILITY_V2PUB.G_CALLING_API := 'BO_API';
2636     IF(p_created_by_module IS NULL) THEN
2637       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := 'BO_API';
2638     ELSE
2639       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := p_created_by_module;
2640     END IF;
2641 
2642     -- Debug info.
2643     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2644         hz_utility_v2pub.debug(p_message=>'update_organization_bo(+)',
2645                                p_prefix=>l_debug_prefix,
2646                                p_msg_level=>fnd_log.level_procedure);
2647     END IF;
2648 
2649     x_organization_id := p_organization_obj.organization_id;
2650     x_organization_os := p_organization_obj.orig_system;
2651     x_organization_osr:= p_organization_obj.orig_system_reference;
2652 
2653     -- check input party_id and os+osr
2654     hz_registry_validate_bo_pvt.validate_ssm_id(
2655       px_id              => x_organization_id,
2656       px_os              => x_organization_os,
2657       px_osr             => x_organization_osr,
2658       p_obj_type         => 'ORGANIZATION',
2659       p_create_or_update => 'U',
2660       x_return_status    => x_return_status,
2661       x_msg_count        => x_msg_count,
2662       x_msg_data         => x_msg_data);
2663 
2664     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2665       RAISE FND_API.G_EXC_ERROR;
2666     END IF;
2667 
2668     -- must check after calling validate_ssm_id because
2669     -- if user pass os+osr and no id, validate_ssm_id will
2670     -- populate x_organization_id based on os+osr
2671     -- find out if raise event at the end
2672 
2673     -- if this procedure is called from org cust bo, set l_raise_event to false
2674     -- otherwise, call is_raising_update_event
2675     IF(HZ_PARTY_BO_PVT.G_CALL_UPDATE_CUST_BO IS NOT NULL) THEN
2676       l_org_raise_event := FALSE;
2677       l_oc_raise_event := FALSE;
2678     ELSE
2679       l_org_raise_event := HZ_PARTY_BO_PVT.is_raising_update_event(
2680                              p_party_id          => x_organization_id,
2681                              p_bo_code           => 'ORG'
2682                            );
2683 
2684       l_oc_raise_event := HZ_PARTY_BO_PVT.is_raising_update_event(
2685                             p_party_id          => x_organization_id,
2686                             p_bo_code           => 'ORG_CUST'
2687                           );
2688 
2689       IF(l_org_raise_event) THEN
2690         -- Get event_id for org
2691         SELECT HZ_BUS_OBJ_TRACKING_S.nextval
2692         INTO l_org_event_id
2693         FROM DUAL;
2694       END IF;
2695 
2696       IF(l_oc_raise_event) THEN
2697         -- Get event_id for org customer
2698         SELECT HZ_BUS_OBJ_TRACKING_S.nextval
2699         INTO l_oc_event_id
2700         FROM DUAL;
2701       END IF;
2702     END IF;
2703 
2704     OPEN get_ovn(x_organization_id);
2705     FETCH get_ovn INTO l_ovn, l_party_number;
2706     CLOSE get_ovn;
2707 
2708     --------------------------
2709     -- For Update Organization
2710     --------------------------
2711     -- Assign organization record
2712     assign_organization_rec(
2713       p_organization_obj  => p_organization_obj,
2714       p_organization_id   => x_organization_id,
2715       p_organization_os   => x_organization_os,
2716       p_organization_osr  => x_organization_osr,
2717       p_create_or_update  => 'U',
2718       px_organization_rec => l_organization_rec
2719     );
2720 
2721     HZ_PARTY_V2PUB.update_organization(
2722       p_organization_rec          => l_organization_rec,
2723       p_party_object_version_number  => l_ovn,
2724       x_profile_id                => l_profile_id,
2725       x_return_status             => x_return_status,
2726       x_msg_count                 => x_msg_count,
2727       x_msg_data                  => x_msg_data
2728     );
2729 
2730     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2731       RAISE FND_API.G_EXC_ERROR;
2732     END IF;
2733 
2734     -- assign organization party_id
2735     p_organization_obj.organization_id := x_organization_id;
2736     p_organization_obj.party_number := l_party_number;
2737     -----------------------------
2738     -- For Organization Ext Attrs
2739     -----------------------------
2740     IF((p_organization_obj.ext_attributes_objs IS NOT NULL) AND
2741        (p_organization_obj.ext_attributes_objs.COUNT > 0)) THEN
2742       HZ_EXT_ATTRIBUTE_BO_PVT.save_ext_attributes(
2743         p_ext_attr_objs             => p_organization_obj.ext_attributes_objs,
2744         p_parent_obj_id             => l_profile_id,
2745         p_parent_obj_type           => 'ORG',
2746         p_create_or_update          => 'U',
2747         x_return_status             => x_return_status,
2748         x_errorcode                 => l_errorcode,
2749         x_msg_count                 => x_msg_count,
2750         x_msg_data                  => x_msg_data
2751       );
2752 
2753       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2754         RAISE FND_API.G_EXC_ERROR;
2755       END IF;
2756     END IF;
2757 
2758     ----------------------------
2759     -- Party Preferences
2760     ----------------------------
2761     IF((p_organization_obj.preference_objs IS NOT NULL) AND
2762        (p_organization_obj.preference_objs.COUNT > 0)) THEN
2763       HZ_PARTY_BO_PVT.save_party_preferences(
2764         p_party_pref_objs           => p_organization_obj.preference_objs,
2765         p_party_id                  => x_organization_id,
2766         x_return_status             => x_return_status,
2767         x_msg_count                 => x_msg_count,
2768         x_msg_data                  => x_msg_data
2769       );
2770 
2771       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2772         RAISE FND_API.G_EXC_ERROR;
2773       END IF;
2774     END IF;
2775 
2776     ----------------------------
2777     -- Contact Preferences
2778     ----------------------------
2779     IF((p_organization_obj.contact_pref_objs IS NOT NULL) AND
2780        (p_organization_obj.contact_pref_objs.COUNT > 0)) THEN
2781       HZ_CONTACT_PREFERENCE_BO_PVT.save_contact_preferences(
2782         p_cp_pref_objs           => p_organization_obj.contact_pref_objs,
2783         p_contact_level_table_id => x_organization_id,
2784         p_contact_level_table    => 'HZ_PARTIES',
2785         x_return_status          => x_return_status,
2786         x_msg_count              => x_msg_count,
2787         x_msg_data               => x_msg_data
2788       );
2789 
2790       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2791         RAISE FND_API.G_EXC_ERROR;
2792       END IF;
2793     END IF;
2794 
2795     ----------------------------
2796     -- Relationship api
2797     ----------------------------
2798     IF((p_organization_obj.relationship_objs IS NOT NULL) AND
2799        (p_organization_obj.relationship_objs.COUNT > 0)) THEN
2800       HZ_PARTY_BO_PVT.save_relationships(
2801         p_rel_objs                  => p_organization_obj.relationship_objs,
2802         p_subject_id                => x_organization_id,
2803         p_subject_type              => 'ORGANIZATION',
2804         x_return_status             => x_return_status,
2805         x_msg_count                 => x_msg_count,
2806         x_msg_data                  => x_msg_data
2807       );
2808 
2809       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2810         RAISE FND_API.G_EXC_ERROR;
2811       END IF;
2812     END IF;
2813 
2814     ----------------------------
2815     -- Classification api
2816     ----------------------------
2817     IF((p_organization_obj.class_objs IS NOT NULL) AND
2818        (p_organization_obj.class_objs.COUNT > 0)) THEN
2819       HZ_PARTY_BO_PVT.save_classifications(
2820         p_code_assign_objs          => p_organization_obj.class_objs,
2821         p_owner_table_name          => 'HZ_PARTIES',
2822         p_owner_table_id            => x_organization_id,
2823         x_return_status             => x_return_status,
2824         x_msg_count                 => x_msg_count,
2825         x_msg_data                  => x_msg_data
2826       );
2827 
2828       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2829         RAISE FND_API.G_EXC_ERROR;
2830       END IF;
2831     END IF;
2832 
2833     l_cbm := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
2834 
2835     -----------------------------
2836     -- Create logical org contact
2837     -----------------------------
2838     IF((p_organization_obj.contact_objs IS NOT NULL) AND
2839        (p_organization_obj.contact_objs.COUNT > 0)) THEN
2840       HZ_ORG_CONTACT_BO_PVT.save_org_contacts(
2841         p_oc_objs            => p_organization_obj.contact_objs,
2842         p_create_update_flag => 'U',
2843         x_return_status      => x_return_status,
2844         x_msg_count          => x_msg_count,
2845         x_msg_data           => x_msg_data,
2846         p_parent_org_id      => x_organization_id,
2847         p_parent_org_os      => x_organization_os,
2848         p_parent_org_osr     => x_organization_osr
2849       );
2850 
2851       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2852         RAISE FND_API.G_EXC_ERROR;
2853       END IF;
2854     END IF;
2855 
2856     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
2857 
2858     -----------------
2859     -- For Party Site
2860     -----------------
2861     IF((p_organization_obj.party_site_objs IS NOT NULL) AND
2862        (p_organization_obj.party_site_objs.COUNT > 0)) THEN
2863       HZ_PARTY_SITE_BO_PVT.save_party_sites(
2864         p_ps_objs            => p_organization_obj.party_site_objs,
2865         p_create_update_flag => 'U',
2866         p_obj_source         => p_obj_source,
2867         x_return_status      => x_return_status,
2868         x_msg_count          => x_msg_count,
2869         x_msg_data           => x_msg_data,
2870         p_parent_id          => x_organization_id,
2871         p_parent_os          => x_organization_os,
2872         p_parent_osr         => x_organization_osr,
2873         p_parent_obj_type    => 'ORG'
2874       );
2875 
2876       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2877         RAISE FND_API.G_EXC_ERROR;
2878       END IF;
2879     END IF;
2880 
2881     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
2882 
2883     ---------------------
2884     -- For Contact Points
2885     ---------------------
2886     IF(((p_organization_obj.phone_objs IS NOT NULL) AND (p_organization_obj.phone_objs.COUNT > 0)) OR
2887        ((p_organization_obj.telex_objs IS NOT NULL) AND (p_organization_obj.telex_objs.COUNT > 0)) OR
2888        ((p_organization_obj.email_objs IS NOT NULL) AND (p_organization_obj.email_objs.COUNT > 0)) OR
2889        ((p_organization_obj.web_objs IS NOT NULL) AND (p_organization_obj.web_objs.COUNT > 0)) OR
2890        ((p_organization_obj.edi_objs IS NOT NULL) AND (p_organization_obj.edi_objs.COUNT > 0)) OR
2891        ((p_organization_obj.eft_objs IS NOT NULL) AND (p_organization_obj.eft_objs.COUNT > 0))) THEN
2892       HZ_CONTACT_POINT_BO_PVT.save_contact_points(
2893         p_phone_objs         => p_organization_obj.phone_objs,
2894         p_telex_objs         => p_organization_obj.telex_objs,
2895         p_email_objs         => p_organization_obj.email_objs,
2896         p_web_objs           => p_organization_obj.web_objs,
2897         p_edi_objs           => p_organization_obj.edi_objs,
2898         p_eft_objs           => p_organization_obj.eft_objs,
2899         p_sms_objs           => l_sms_objs,
2900         p_owner_table_id     => x_organization_id,
2901         p_owner_table_os     => x_organization_os,
2902         p_owner_table_osr    => x_organization_osr,
2903         p_parent_obj_type    => 'ORG',
2904         p_create_update_flag => 'U',
2905         p_obj_source         => p_obj_source,
2906         x_return_status      => x_return_status,
2907         x_msg_count          => x_msg_count,
2908         x_msg_data           => x_msg_data
2909       );
2910 
2911       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2912         RAISE FND_API.G_EXC_ERROR;
2913       END IF;
2914     END IF;
2915 
2916     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
2917 
2918     ---------------------
2919     -- Certifications
2920     ---------------------
2921     IF((p_organization_obj.certification_objs IS NOT NULL) AND
2922        (p_organization_obj.certification_objs.COUNT > 0)) THEN
2923       HZ_PARTY_BO_PVT.save_certifications(
2924         p_cert_objs          => p_organization_obj.certification_objs,
2925         p_party_id           => x_organization_id,
2926         x_return_status      => x_return_status,
2927         x_msg_count          => x_msg_count,
2928         x_msg_data           => x_msg_data
2929       );
2930 
2931       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2932         RAISE FND_API.G_EXC_ERROR;
2933       END IF;
2934     END IF;
2935 
2936     ---------------------
2937     -- Financial Profiles
2938     ---------------------
2939     IF((p_organization_obj.financial_prof_objs IS NOT NULL) AND
2940        (p_organization_obj.financial_prof_objs.COUNT > 0)) THEN
2941       HZ_PARTY_BO_PVT.save_financial_profiles(
2942         p_fin_prof_objs      => p_organization_obj.financial_prof_objs,
2943         p_party_id           => x_organization_id,
2944         x_return_status      => x_return_status,
2945         x_msg_count          => x_msg_count,
2946         x_msg_data           => x_msg_data
2947       );
2948 
2949       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2950         RAISE FND_API.G_EXC_ERROR;
2951       END IF;
2952     END IF;
2953 
2954 
2955     ----------------------------------
2956   --  Party Usages -------
2957   ----------------------------------
2958    IF ((p_organization_obj.party_usage_objs IS NOT NULL) AND
2959       (p_organization_obj.party_usage_objs.COUNT > 0 )) THEN
2960        HZ_PARTY_BO_PVT.save_party_usage_assgmnt(
2961 	   p_party_usg_objs				=> p_organization_obj.party_usage_objs,
2962 	   p_party_id					=> x_organization_id,
2963 	   x_return_status				=> x_return_status,
2964 	   x_msg_count					=> x_msg_count,
2965 	   x_msg_data					=> x_msg_data
2966 	   );
2967         IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2968         RAISE FND_API.G_EXC_ERROR;
2969       END IF;
2970     END IF;
2971 
2972 
2973     ----------------------------
2974     -- Credit Ratings
2975     ----------------------------
2976     IF((p_organization_obj.credit_rating_objs IS NOT NULL) AND
2977        (p_organization_obj.credit_rating_objs.COUNT > 0)) THEN
2978       save_credit_ratings(
2979         p_credit_rating_objs        => p_organization_obj.credit_rating_objs,
2980         p_organization_id           => x_organization_id,
2981         x_return_status             => x_return_status,
2982         x_msg_count                 => x_msg_count,
2983         x_msg_data                  => x_msg_data
2984       );
2985 
2986       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2987         RAISE FND_API.G_EXC_ERROR;
2988       END IF;
2989     END IF;
2990 
2991     ----------------------------
2992     -- Financial Reports
2993     ----------------------------
2994     IF((p_organization_obj.financial_report_objs IS NOT NULL) AND
2995        (p_organization_obj.financial_report_objs.COUNT > 0)) THEN
2996       save_financial_reports(
2997         p_fin_objs                  => p_organization_obj.financial_report_objs,
2998         p_organization_id           => x_organization_id,
2999         x_return_status             => x_return_status,
3000         x_msg_count                 => x_msg_count,
3001         x_msg_data                  => x_msg_data
3002       );
3003 
3004       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3005         RAISE FND_API.G_EXC_ERROR;
3006       END IF;
3007     END IF;
3008 
3009     -- raise update org event
3010     IF(l_org_raise_event) THEN
3011       HZ_PARTY_BO_PVT.call_bes(
3012         p_party_id         => x_organization_id,
3013         p_bo_code          => 'ORG',
3014         p_create_or_update => 'U',
3015         p_obj_source       => p_obj_source,
3016         p_event_id         => l_org_event_id
3017       );
3018     END IF;
3019 
3020     -- raise update org cust event
3021     IF(l_oc_raise_event) THEN
3022       HZ_PARTY_BO_PVT.call_bes(
3023         p_party_id         => x_organization_id,
3024         p_bo_code          => 'ORG_CUST',
3025         p_create_or_update => 'U',
3026         p_obj_source       => p_obj_source,
3027         p_event_id         => l_oc_event_id
3028       );
3029     END IF;
3030 
3031     -- reset Global variable
3032     HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
3033     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
3034 
3035     -- Debug info.
3036     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
3037          hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3038                                p_msg_data=>x_msg_data,
3039                                p_msg_type=>'WARNING',
3040                                p_msg_level=>fnd_log.level_exception);
3041     END IF;
3042     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3043         hz_utility_v2pub.debug(p_message=>'do_update_organization_bo(-)',
3044                                p_prefix=>l_debug_prefix,
3045                                p_msg_level=>fnd_log.level_procedure);
3046     END IF;
3047   EXCEPTION
3048     WHEN fnd_api.g_exc_error THEN
3049       ROLLBACK TO do_update_organization_bo_pub;
3050 
3051       -- reset Global variable
3052       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
3053       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
3054 
3055       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
3056       FND_MESSAGE.SET_TOKEN('OBJECT', 'ORG');
3057       FND_MSG_PUB.ADD;
3058 
3059       x_return_status := fnd_api.g_ret_sts_error;
3060 
3061       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3062                                 p_count => x_msg_count,
3063                                 p_data  => x_msg_data);
3064 
3065       -- Debug info.
3066       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3067         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3068                                p_msg_data=>x_msg_data,
3069                                p_msg_type=>'ERROR',
3070                                p_msg_level=>fnd_log.level_error);
3071       END IF;
3072       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3073         hz_utility_v2pub.debug(p_message=>'do_update_organization_bo(-)',
3074                                p_prefix=>l_debug_prefix,
3075                                p_msg_level=>fnd_log.level_procedure);
3076       END IF;
3077 
3078 
3079     WHEN fnd_api.g_exc_unexpected_error THEN
3080       ROLLBACK TO do_update_organization_bo_pub;
3081 
3082       -- reset Global variable
3083       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
3084       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
3085 
3086       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
3087       FND_MESSAGE.SET_TOKEN('OBJECT', 'ORG');
3088       FND_MSG_PUB.ADD;
3089 
3090       x_return_status := fnd_api.g_ret_sts_unexp_error;
3091 
3092       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3093                                 p_count => x_msg_count,
3094                                 p_data  => x_msg_data);
3095 
3096       -- Debug info.
3097       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3098         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3099                                p_msg_data=>x_msg_data,
3100                                p_msg_type=>'UNEXPECTED ERROR',
3101                                p_msg_level=>fnd_log.level_error);
3102       END IF;
3103       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3104         hz_utility_v2pub.debug(p_message=>'do_update_organization_bo(-)',
3105                                p_prefix=>l_debug_prefix,
3106                                p_msg_level=>fnd_log.level_procedure);
3107       END IF;
3108     WHEN OTHERS THEN
3109       ROLLBACK TO do_update_organization_bo_pub;
3110 
3111       -- reset Global variable
3112       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
3113       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
3114 
3115       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
3116       FND_MESSAGE.SET_TOKEN('OBJECT', 'ORG');
3117       FND_MSG_PUB.ADD;
3118 
3119       x_return_status := fnd_api.g_ret_sts_unexp_error;
3120 
3121       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
3122       fnd_message.set_token('ERROR' ,SQLERRM);
3123       fnd_msg_pub.add;
3124 
3125       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3126                                 p_count => x_msg_count,
3127                                 p_data  => x_msg_data);
3128 
3129       -- Debug info.
3130       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3131         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3132                                p_msg_data=>x_msg_data,
3133                                p_msg_type=>'SQL ERROR',
3134                                p_msg_level=>fnd_log.level_error);
3135       END IF;
3136       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3137         hz_utility_v2pub.debug(p_message=>'do_update_organization_bo(-)',
3138                                p_prefix=>l_debug_prefix,
3139                                p_msg_level=>fnd_log.level_procedure);
3140       END IF;
3141   END do_update_organization_bo;
3142 
3143   PROCEDURE update_organization_bo(
3144     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
3145     p_organization_obj    IN            HZ_ORGANIZATION_BO,
3146     p_created_by_module   IN            VARCHAR2,
3147     x_return_status       OUT NOCOPY    VARCHAR2,
3148     x_msg_count           OUT NOCOPY    NUMBER,
3149     x_msg_data            OUT NOCOPY    VARCHAR2,
3150     x_organization_id     OUT NOCOPY    NUMBER,
3151     x_organization_os     OUT NOCOPY    VARCHAR2,
3152     x_organization_osr    OUT NOCOPY    VARCHAR2
3153   ) IS
3154     l_org_obj             HZ_ORGANIZATION_BO;
3155   BEGIN
3156     l_org_obj := p_organization_obj;
3157     do_update_organization_bo(
3158       p_init_msg_list       => p_init_msg_list,
3159       p_organization_obj    => l_org_obj,
3160       p_created_by_module   => p_created_by_module,
3161       p_obj_source          => NULL,
3162       x_return_status       => x_return_status,
3163       x_msg_count           => x_msg_count,
3164       x_msg_data            => x_msg_data,
3165       x_organization_id     => x_organization_id,
3166       x_organization_os     => x_organization_os,
3167       x_organization_osr    => x_organization_osr
3168     );
3169   END update_organization_bo;
3170 
3171   PROCEDURE update_organization_bo(
3172     p_organization_obj    IN            HZ_ORGANIZATION_BO,
3173     p_created_by_module   IN            VARCHAR2,
3174     p_obj_source          IN            VARCHAR2 := null,
3175     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
3176     x_return_status       OUT NOCOPY    VARCHAR2,
3177     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
3178     x_return_obj          OUT NOCOPY    HZ_ORGANIZATION_BO,
3179     x_organization_id     OUT NOCOPY    NUMBER,
3180     x_organization_os     OUT NOCOPY    VARCHAR2,
3181     x_organization_osr    OUT NOCOPY    VARCHAR2
3182   )IS
3183     l_msg_data            VARCHAR2(2000);
3184     l_msg_count           NUMBER;
3185     l_org_obj             HZ_ORGANIZATION_BO;
3186   BEGIN
3187     l_org_obj := p_organization_obj;
3188     do_update_organization_bo(
3189       p_init_msg_list       => fnd_api.g_true,
3190       p_organization_obj    => l_org_obj,
3191       p_created_by_module   => p_created_by_module,
3192       p_obj_source          => p_obj_source,
3193       x_return_status       => x_return_status,
3194       x_msg_count           => l_msg_count,
3195       x_msg_data            => l_msg_data,
3196       x_organization_id     => x_organization_id,
3197       x_organization_os     => x_organization_os,
3198       x_organization_osr    => x_organization_osr
3199     );
3200     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
3201                     x_return_status   => x_return_status,
3202                     x_msg_count       => l_msg_count,
3203                     x_msg_data        => l_msg_data);
3204     IF FND_API.to_Boolean(p_return_obj_flag) THEN
3205       x_return_obj := l_org_obj;
3206     END IF;
3207   END update_organization_bo;
3208 
3209   -- PROCEDURE do_save_organization_bo
3210   --
3211   -- DESCRIPTION
3212   --     Create or update organization business object.
3213   PROCEDURE do_save_organization_bo(
3214     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
3215     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
3216     p_organization_obj    IN OUT NOCOPY HZ_ORGANIZATION_BO,
3217     p_created_by_module   IN            VARCHAR2,
3218     p_obj_source          IN            VARCHAR2 := null,
3219     x_return_status       OUT NOCOPY    VARCHAR2,
3220     x_msg_count           OUT NOCOPY    NUMBER,
3221     x_msg_data            OUT NOCOPY    VARCHAR2,
3222     x_organization_id     OUT NOCOPY    NUMBER,
3223     x_organization_os     OUT NOCOPY    VARCHAR2,
3224     x_organization_osr    OUT NOCOPY    VARCHAR2
3225   ) IS
3226     l_return_status            VARCHAR2(30);
3227     l_msg_count                NUMBER;
3228     l_msg_data                 VARCHAR2(2000);
3229     l_create_update_flag       VARCHAR2(1);
3230     l_debug_prefix             VARCHAR2(30);
3231   BEGIN
3232     -- initialize API return status to success.
3233     x_return_status := FND_API.G_RET_STS_SUCCESS;
3234 
3235     -- Initialize message list if p_init_msg_list is set to TRUE.
3236     IF FND_API.to_Boolean(p_init_msg_list) THEN
3237       FND_MSG_PUB.initialize;
3238     END IF;
3239 
3240     -- Debug info.
3241     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3242         hz_utility_v2pub.debug(p_message=>'do_save_organization_bo(+)',
3243                                p_prefix=>l_debug_prefix,
3244                                p_msg_level=>fnd_log.level_procedure);
3245     END IF;
3246 
3247     x_organization_id := p_organization_obj.organization_id;
3248     x_organization_os := p_organization_obj.orig_system;
3249     x_organization_osr:= p_organization_obj.orig_system_reference;
3250 
3251     -- check root business object to determine that it should be
3252     -- create or update, call HZ_REGISTRY_VALIDATE_BO_PVT
3253     l_create_update_flag := HZ_REGISTRY_VALIDATE_BO_PVT.check_bo_op(
3254                               p_entity_id      => x_organization_id,
3255                               p_entity_os      => x_organization_os,
3256                               p_entity_osr     => x_organization_osr,
3257                               p_entity_type    => 'HZ_PARTIES',
3258                               p_parent_id      => NULL,
3259                               p_parent_obj_type=> NULL );
3260 
3261     IF(l_create_update_flag = 'E') THEN
3262       FND_MESSAGE.SET_NAME('AR', 'HZ_API_INVALID_ID');
3263       FND_MSG_PUB.ADD;
3264       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
3265       FND_MESSAGE.SET_TOKEN('OBJECT', 'ORG');
3266       FND_MSG_PUB.ADD;
3267       RAISE FND_API.G_EXC_ERROR;
3268     END IF;
3269 
3270     IF(l_create_update_flag = 'C') THEN
3271       do_create_organization_bo(
3272         p_init_msg_list      => fnd_api.g_false,
3273         p_validate_bo_flag   => p_validate_bo_flag,
3274         p_organization_obj   => p_organization_obj,
3275         p_created_by_module  => p_created_by_module,
3276         p_obj_source         => p_obj_source,
3277         x_return_status      => x_return_status,
3278         x_msg_count          => x_msg_count,
3279         x_msg_data           => x_msg_data,
3280         x_organization_id    => x_organization_id,
3281         x_organization_os    => x_organization_os,
3282         x_organization_osr   => x_organization_osr
3283       );
3284     ELSIF(l_create_update_flag = 'U') THEN
3285       do_update_organization_bo(
3286         p_init_msg_list      => fnd_api.g_false,
3287         p_organization_obj   => p_organization_obj,
3288         p_created_by_module  => p_created_by_module,
3289         p_obj_source         => p_obj_source,
3290         x_return_status      => x_return_status,
3291         x_msg_count          => x_msg_count,
3292         x_msg_data           => x_msg_data,
3293         x_organization_id    => x_organization_id,
3294         x_organization_os    => x_organization_os,
3295         x_organization_osr   => x_organization_osr
3296       );
3297     ELSE
3298       RAISE FND_API.G_EXC_ERROR;
3299     END IF;
3300 
3301     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3302       RAISE FND_API.G_EXC_ERROR;
3303     END IF;
3304 
3305     -- Debug info.
3306     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
3307          hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3308                                p_msg_data=>x_msg_data,
3309                                p_msg_type=>'WARNING',
3310                                p_msg_level=>fnd_log.level_exception);
3311     END IF;
3312     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3313         hz_utility_v2pub.debug(p_message=>'do_save_organization_bo(-)',
3314                                p_prefix=>l_debug_prefix,
3315                                p_msg_level=>fnd_log.level_procedure);
3316     END IF;
3317   EXCEPTION
3318     WHEN fnd_api.g_exc_error THEN
3319       x_return_status := fnd_api.g_ret_sts_error;
3320 
3321       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3322                                 p_count => x_msg_count,
3323                                 p_data  => x_msg_data);
3324 
3325       -- Debug info.
3326       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3327         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3328                                p_msg_data=>x_msg_data,
3329                                p_msg_type=>'ERROR',
3330                                p_msg_level=>fnd_log.level_error);
3331       END IF;
3332       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3333         hz_utility_v2pub.debug(p_message=>'do_save_organization_bo(-)',
3334                                p_prefix=>l_debug_prefix,
3335                                p_msg_level=>fnd_log.level_procedure);
3336       END IF;
3337 
3338     WHEN fnd_api.g_exc_unexpected_error THEN
3339       x_return_status := fnd_api.g_ret_sts_unexp_error;
3340 
3341       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3342                                 p_count => x_msg_count,
3343                                 p_data  => x_msg_data);
3344 
3345       -- Debug info.
3346       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3347         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3348                                p_msg_data=>x_msg_data,
3349                                p_msg_type=>'UNEXPECTED ERROR',
3350                                p_msg_level=>fnd_log.level_error);
3351       END IF;
3352       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3353         hz_utility_v2pub.debug(p_message=>'do_save_organization_bo(-)',
3354                                p_prefix=>l_debug_prefix,
3355                                p_msg_level=>fnd_log.level_procedure);
3356       END IF;
3357     WHEN OTHERS THEN
3358       x_return_status := fnd_api.g_ret_sts_unexp_error;
3359 
3360       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
3361       fnd_message.set_token('ERROR' ,SQLERRM);
3362       fnd_msg_pub.add;
3363 
3364       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3365                                 p_count => x_msg_count,
3366                                 p_data  => x_msg_data);
3367 
3368       -- Debug info.
3369       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3370         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3371                                p_msg_data=>x_msg_data,
3372                                p_msg_type=>'SQL ERROR',
3373                                p_msg_level=>fnd_log.level_error);
3374       END IF;
3375       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3376         hz_utility_v2pub.debug(p_message=>'do_save_organization_bo(-)',
3377                                p_prefix=>l_debug_prefix,
3378                                p_msg_level=>fnd_log.level_procedure);
3379       END IF;
3380   END do_save_organization_bo;
3381 
3382   PROCEDURE save_organization_bo(
3383     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
3384     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
3385     p_organization_obj    IN            HZ_ORGANIZATION_BO,
3386     p_created_by_module   IN            VARCHAR2,
3387     x_return_status       OUT NOCOPY    VARCHAR2,
3388     x_msg_count           OUT NOCOPY    NUMBER,
3389     x_msg_data            OUT NOCOPY    VARCHAR2,
3390     x_organization_id     OUT NOCOPY    NUMBER,
3391     x_organization_os     OUT NOCOPY    VARCHAR2,
3392     x_organization_osr    OUT NOCOPY    VARCHAR2
3393   ) IS
3394     l_org_obj             HZ_ORGANIZATION_BO;
3395   BEGIN
3396     l_org_obj := p_organization_obj;
3397     do_save_organization_bo(
3398       p_init_msg_list       => p_init_msg_list,
3399       p_validate_bo_flag    => p_validate_bo_flag,
3400       p_organization_obj    => l_org_obj,
3401       p_created_by_module   => p_created_by_module,
3402       p_obj_source          => null,
3403       x_return_status       => x_return_status,
3404       x_msg_count           => x_msg_count,
3405       x_msg_data            => x_msg_data,
3406       x_organization_id     => x_organization_id,
3407       x_organization_os     => x_organization_os,
3408       x_organization_osr    => x_organization_osr
3409     );
3410   END save_organization_bo;
3411 
3412   PROCEDURE save_organization_bo(
3413     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
3414     p_organization_obj    IN            HZ_ORGANIZATION_BO,
3415     p_created_by_module   IN            VARCHAR2,
3416     p_obj_source          IN            VARCHAR2 := null,
3417     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
3418     x_return_status       OUT NOCOPY    VARCHAR2,
3419     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
3420     x_return_obj          OUT NOCOPY    HZ_ORGANIZATION_BO,
3421     x_organization_id     OUT NOCOPY    NUMBER,
3422     x_organization_os     OUT NOCOPY    VARCHAR2,
3423     x_organization_osr    OUT NOCOPY    VARCHAR2
3424   ) IS
3425     l_msg_data            VARCHAR2(2000);
3426     l_msg_count           NUMBER;
3427     l_org_obj             HZ_ORGANIZATION_BO;
3428   BEGIN
3429     l_org_obj := p_organization_obj;
3430     do_save_organization_bo(
3431       p_init_msg_list       => fnd_api.g_true,
3432       p_validate_bo_flag    => p_validate_bo_flag,
3433       p_organization_obj    => l_org_obj,
3434       p_created_by_module   => p_created_by_module,
3435       p_obj_source          => p_obj_source,
3436       x_return_status       => x_return_status,
3437       x_msg_count           => l_msg_count,
3438       x_msg_data            => l_msg_data,
3439       x_organization_id     => x_organization_id,
3440       x_organization_os     => x_organization_os,
3441       x_organization_osr    => x_organization_osr
3442     );
3443     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
3444                     x_return_status   => x_return_status,
3445                     x_msg_count       => l_msg_count,
3446                     x_msg_data        => l_msg_data);
3447     IF FND_API.to_Boolean(p_return_obj_flag) THEN
3448       x_return_obj := l_org_obj;
3449     END IF;
3450   END save_organization_bo;
3451 
3452  --------------------------------------
3453   --
3454   -- PROCEDURE get_organization_bo
3455   --
3456   -- DESCRIPTION
3457   --     Get a logical organization.
3458   --
3459   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
3460   --
3461   -- ARGUMENTS
3462   --   IN:
3463   --     p_init_msg_list      Initialize message stack if it is set to   FND_API.G_TRUE. Default is FND_API.G_FALSE.
3464 --       p_organization_id          Organization ID.
3465  --     p_person_os           Org orig system.
3466   --     p_person_osr         Org orig system reference.
3467   --   OUT:
3468   --     x_organization_obj         Logical organization record.
3469   --     x_return_status      Return status after the call. The status can
3470   --                          be fnd_api.g_ret_sts_success (success),
3471   --                          fnd_api.g_ret_sts_error (error),
3472   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
3473   --     x_msg_count          Number of messages in message stack.
3474   --     x_msg_data           Message text if x_msg_count is 1.
3475   --
3476   -- NOTES
3477   --
3478   -- MODIFICATION HISTORY
3479   --
3480   --
3481   --   06-JUN-2005   AWU                Created.
3482   --
3483 
3484 /*
3485 The Get Organization API Procedure is a retrieval service that returns a full Organization business object.
3486 The user identifies a particular Organization business object using the TCA identifier and/or
3487 the object Source System information. Upon proper validation of the object,
3488 the full Organization business object is returned. The object consists of all data included within
3489 the Organization business object, at all embedded levels. This includes the set of all data stored
3490 in the TCA tables for each embedded entity.
3491 
3492 To retrieve the appropriate embedded business objects within the Organization business object,
3493 the Get procedure calls the equivalent procedure for the following embedded objects:
3494 
3495 Embedded BO	    Mandatory	Multiple Logical API Procedure		Comments
3496 Org Contact	N	Y	get_contact_bo
3497 Party Site	N	Y	get_party_site_bo
3498 Phone	N	Y	get_phone_bo
3499 Telex	N	Y	get_telex_bo
3500 Email	N	Y	get_email_bo
3501 Web	N	Y	get_web_bo
3502 EDI	N	Y	get_edi_bo
3503 EFT	N	Y	get_eft_bo
3504 Financial Report	N	Y		Business Structure. Included entities: HZ_FINANCIAL_REPORTS, HZ_FINANCIAL_NUMBERS
3505 
3506 
3507 To retrieve the appropriate embedded entities within the Organization business object,
3508 the Get procedure returns all records for the particular organization from these TCA entity tables:
3509 
3510 Embedded TCA Entity	Mandatory    Multiple	TCA Table Entities
3511 
3512 Party, Org Profile	Y		N	HZ_PARTIES, HZ_ORGANIZATION_PROFILES
3513 Org Preference		N		Y	HZ_PARTY_PREFERENCES
3514 Relationship		N		Y	HZ_RELATIONSHIPS
3515 Classification		N		Y	HZ_CODE_ASSIGNMENTS
3516 Credit Rating		N		Y	HZ_CREDIT_RATINGS
3517 Certification		N		Y	HZ_CERTIFICATIONS
3518 Financial Profile	N		Y	HZ_FINANCIAL_PROFILE
3519 
3520 */
3521 
3522 
3523  PROCEDURE get_organization_bo(
3524     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
3525     p_organization_id           IN            NUMBER,
3526     p_organization_os		IN	VARCHAR2,
3527     p_organization_osr		IN	VARCHAR2,
3528     x_organization_obj          OUT NOCOPY    HZ_ORGANIZATION_BO,
3529     x_return_status       OUT NOCOPY    VARCHAR2,
3530     x_msg_count           OUT NOCOPY    NUMBER,
3531     x_msg_data            OUT NOCOPY    VARCHAR2
3532   ) is
3533  l_debug_prefix              VARCHAR2(30) := '';
3534 
3535   l_organization_id  number;
3536   l_organization_os  varchar2(30);
3537   l_organization_osr varchar2(255);
3538 BEGIN
3539 
3540 	-- initialize API return status to success.
3541     	x_return_status := FND_API.G_RET_STS_SUCCESS;
3542 
3543     	-- Initialize message list if p_init_msg_list is set to TRUE
3544     	IF FND_API.to_Boolean(p_init_msg_list) THEN
3545       		FND_MSG_PUB.initialize;
3546     	END IF;
3547 
3548 
3549 	-- Debug info.
3550         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3551         	hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organization_bo(+)',
3552                                p_prefix=>l_debug_prefix,
3553                                p_msg_level=>fnd_log.level_procedure);
3554     	END IF;
3555 
3556     	-- check if pass in contact_point_id and/or os+osr
3557     	-- extraction validation logic is same as update
3558 
3559     	l_organization_id := p_organization_id;
3560     	l_organization_os := p_organization_os;
3561     	l_organization_osr := p_organization_osr;
3562 
3563     	HZ_EXTRACT_BO_UTIL_PVT.validate_ssm_id(
3564       		px_id              => l_organization_id,
3565       		px_os              => l_organization_os,
3566       		px_osr             => l_organization_osr,
3567       		p_obj_type         => 'ORGANIZATION',
3568       		x_return_status    => x_return_status,
3569       		x_msg_count        => x_msg_count,
3570       		x_msg_data         => x_msg_data);
3571 
3572     	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3573       		RAISE fnd_api.g_exc_error;
3574    	 END IF;
3575 
3576 	HZ_EXTRACT_ORGANIZATION_BO_PVT.get_organization_bo(
3577     		p_init_msg_list   => fnd_api.g_false,
3578     		p_organization_id => l_organization_id,
3579     		p_action_type	  => NULL,
3580     		x_organization_obj => x_organization_obj,
3581 		x_return_status => x_return_status,
3582 		x_msg_count => x_msg_count,
3583 		x_msg_data => x_msg_data);
3584 
3585 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3586       		RAISE FND_API.G_EXC_ERROR;
3587     	END IF;
3588 
3589 
3590 	-- Debug info.
3591     	IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
3592          	hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3593                                p_msg_data=>x_msg_data,
3594                                p_msg_type=>'WARNING',
3595                                p_msg_level=>fnd_log.level_exception);
3596     	END IF;
3597 
3598     	-- Debug info.
3599         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3600         	hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organization_bo (-)',
3601                                p_prefix=>l_debug_prefix,
3602                                p_msg_level=>fnd_log.level_procedure);
3603     	END IF;
3604 
3605 
3606  EXCEPTION
3607 
3608   WHEN fnd_api.g_exc_error THEN
3609       x_return_status := fnd_api.g_ret_sts_error;
3610 
3611       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3612                                 p_count => x_msg_count,
3613                                 p_data  => x_msg_data);
3614 
3615       -- Debug info.
3616       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3617         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3618                                p_msg_data=>x_msg_data,
3619                                p_msg_type=>'ERROR',
3620                                p_msg_level=>fnd_log.level_error);
3621       END IF;
3622       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3623         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organization_bo (-)',
3624                                p_prefix=>l_debug_prefix,
3625                                p_msg_level=>fnd_log.level_procedure);
3626       END IF;
3627     WHEN fnd_api.g_exc_unexpected_error THEN
3628       x_return_status := fnd_api.g_ret_sts_unexp_error;
3629 
3630       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3631                                 p_count => x_msg_count,
3632                                 p_data  => x_msg_data);
3633 
3634       -- Debug info.
3635       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3636         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3637                                p_msg_data=>x_msg_data,
3638                                p_msg_type=>'UNEXPECTED ERROR',
3639                                p_msg_level=>fnd_log.level_error);
3640       END IF;
3641       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3642         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organization_bo (-)',
3643                                p_prefix=>l_debug_prefix,
3644                                p_msg_level=>fnd_log.level_procedure);
3645       END IF;
3646     WHEN OTHERS THEN
3647       x_return_status := fnd_api.g_ret_sts_unexp_error;
3648 
3649       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
3650       fnd_message.set_token('ERROR' ,SQLERRM);
3651       fnd_msg_pub.add;
3652 
3653       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3654                                 p_count => x_msg_count,
3655                                 p_data  => x_msg_data);
3656 
3657       -- Debug info.
3658       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3659         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3660                                p_msg_data=>x_msg_data,
3661                                p_msg_type=>'SQL ERROR',
3662                                p_msg_level=>fnd_log.level_error);
3663       END IF;
3664       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3665         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organization_bo (-)',
3666                                p_prefix=>l_debug_prefix,
3667                                p_msg_level=>fnd_log.level_procedure);
3668       END IF;
3669 
3670 end;
3671 
3672  PROCEDURE get_organization_bo(
3673     p_organization_id           IN            NUMBER,
3674     p_organization_os           IN      VARCHAR2,
3675     p_organization_osr          IN      VARCHAR2,
3676     x_organization_obj          OUT NOCOPY    HZ_ORGANIZATION_BO,
3677     x_return_status       OUT NOCOPY    VARCHAR2,
3678     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL
3679   ) IS
3680     l_msg_data            VARCHAR2(2000);
3681     l_msg_count           NUMBER;
3682   BEGIN
3683     get_organization_bo(
3684       p_init_msg_list       => fnd_api.g_true,
3685       p_organization_id     => p_organization_id,
3686       p_organization_os     => p_organization_os,
3687       p_organization_osr    => p_organization_osr,
3688       x_organization_obj    => x_organization_obj,
3689       x_return_status       => x_return_status,
3690       x_msg_count           => l_msg_count,
3691       x_msg_data            => l_msg_data
3692     );
3693     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
3694                     x_return_status   => x_return_status,
3695                     x_msg_count       => l_msg_count,
3696                     x_msg_data        => l_msg_data);
3697   END get_organization_bo;
3698 
3699  --------------------------------------
3700   --
3701   -- PROCEDURE get_organizations_created
3702   --
3703   -- DESCRIPTION
3704   --The caller provides an identifier for the Organizations created business event and
3705   --the procedure returns database objects of the type HZ_ORGANIZATION_BO for all of
3706   --the Organization business objects from the business event.
3707 
3708   --
3709   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
3710   --
3711   -- ARGUMENTS
3712   --   IN:
3713   --     p_init_msg_list      Initialize message stack if it is set to
3714   --     p_event_id           BES Event identifier.
3715   --                          FND_API.G_TRUE. Default is FND_API.G_FALSE.
3716   --   OUT:
3717   --     x_organization_objs        One or more created logical organization.
3718   --     x_return_status      Return status after the call. The status can
3719   --                          be fnd_api.g_ret_sts_success (success),
3720   --                          fnd_api.g_ret_sts_error (error),
3721   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
3722   --     x_msg_count          Number of messages in message stack.
3723   --     x_msg_data           Message text if x_msg_count is 1.
3724   --
3725   -- NOTES
3726   --
3727   -- MODIFICATION HISTORY
3728   --
3729   --   06-JUN-2005    AWU                Created.
3730   --
3731 
3732 
3733 
3734 /*
3735 The Get Organizations Created procedure is a service to retrieve all of the Organization business objects
3736 whose creations have been captured by a logical business event. Each Organizations Created
3737 business event signifies that one or more Organization business objects have been created.
3738 The caller provides an identifier for the Organizations Created business event and the procedure
3739 returns all of the Organization business objects from the business event. For each business object
3740 creation captured in the business event, the procedure calls the generic Get operation:
3741 HZ_ORGANIZATION_BO_PVT.get_organization_bo
3742 
3743 Gathering all of the returned business objects from those API calls, the procedure packages
3744 them in a table structure and returns them to the caller.
3745 */
3746 
3747 
3748 PROCEDURE get_organizations_created(
3749     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
3750     p_event_id            IN           	NUMBER,
3751     x_organization_objs         OUT NOCOPY    HZ_ORGANIZATION_BO_TBL,
3752     x_return_status       OUT NOCOPY    VARCHAR2,
3753     x_msg_count           OUT NOCOPY    NUMBER,
3754     x_msg_data            OUT NOCOPY    VARCHAR2
3755   ) is
3756 l_debug_prefix              VARCHAR2(30) := '';
3757 begin
3758 
3759 	-- initialize API return status to success.
3760     	x_return_status := FND_API.G_RET_STS_SUCCESS;
3761 
3762     	-- Initialize message list if p_init_msg_list is set to TRUE
3763     	IF FND_API.to_Boolean(p_init_msg_list) THEN
3764       		FND_MSG_PUB.initialize;
3765     	END IF;
3766 
3767 
3768 	-- Debug info.
3769         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3770         	hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organizations_created(+)',
3771                                p_prefix=>l_debug_prefix,
3772                                p_msg_level=>fnd_log.level_procedure);
3773     	END IF;
3774 
3775 	HZ_EXTRACT_BO_UTIL_PVT.validate_event_id(p_event_id => p_event_id,
3776 			    p_party_id => null,
3777 			    p_event_type => 'C',
3778 			    p_bo_code => 'ORG',
3779 			    x_return_status => x_return_status);
3780 
3781 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3782       		RAISE FND_API.G_EXC_ERROR;
3783     	END IF;
3784 
3785 	HZ_EXTRACT_ORGANIZATION_BO_PVT.get_organizations_created(
3786     		p_init_msg_list => fnd_api.g_false,
3787 		p_event_id => p_event_id,
3788     		x_organization_objs  => x_organization_objs,
3789 		x_return_status => x_return_status,
3790 		x_msg_count => x_msg_count,
3791 		x_msg_data => x_msg_data);
3792 
3793 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3794       		RAISE FND_API.G_EXC_ERROR;
3795     	END IF;
3796 
3797 
3798 
3799 	-- Debug info.
3800     	IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
3801          	hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3802                                p_msg_data=>x_msg_data,
3803                                p_msg_type=>'WARNING',
3804                                p_msg_level=>fnd_log.level_exception);
3805     	END IF;
3806 
3807     	-- Debug info.
3808         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3809         	hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organizations_created (-)',
3810                                p_prefix=>l_debug_prefix,
3811                                p_msg_level=>fnd_log.level_procedure);
3812     	END IF;
3813 
3814 
3815  EXCEPTION
3816 
3817   WHEN fnd_api.g_exc_error THEN
3818       x_return_status := fnd_api.g_ret_sts_error;
3819 
3820       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3821                                 p_count => x_msg_count,
3822                                 p_data  => x_msg_data);
3823 
3824       -- Debug info.
3825       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3826         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3827                                p_msg_data=>x_msg_data,
3828                                p_msg_type=>'ERROR',
3829                                p_msg_level=>fnd_log.level_error);
3830       END IF;
3831       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3832         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organizations_created(-)',
3833                                p_prefix=>l_debug_prefix,
3834                                p_msg_level=>fnd_log.level_procedure);
3835       END IF;
3836     WHEN fnd_api.g_exc_unexpected_error THEN
3837       x_return_status := fnd_api.g_ret_sts_unexp_error;
3838 
3839       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3840                                 p_count => x_msg_count,
3841                                 p_data  => x_msg_data);
3842 
3843       -- Debug info.
3844       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3845         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3846                                p_msg_data=>x_msg_data,
3847                                p_msg_type=>'UNEXPECTED ERROR',
3848                                p_msg_level=>fnd_log.level_error);
3849       END IF;
3850       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3851         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organizations_created(-)',
3852                                p_prefix=>l_debug_prefix,
3853                                p_msg_level=>fnd_log.level_procedure);
3854       END IF;
3855     WHEN OTHERS THEN
3856       x_return_status := fnd_api.g_ret_sts_unexp_error;
3857 
3858       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
3859       fnd_message.set_token('ERROR' ,SQLERRM);
3860       fnd_msg_pub.add;
3861 
3862       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3863                                 p_count => x_msg_count,
3864                                 p_data  => x_msg_data);
3865 
3866       -- Debug info.
3867       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3868         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3869                                p_msg_data=>x_msg_data,
3870                                p_msg_type=>'SQL ERROR',
3871                                p_msg_level=>fnd_log.level_error);
3872       END IF;
3873       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3874         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organizations_created(-)',
3875                                p_prefix=>l_debug_prefix,
3876                                p_msg_level=>fnd_log.level_procedure);
3877       END IF;
3878 
3879 end;
3880 
3881   PROCEDURE get_organizations_created(
3882     p_event_id            IN            NUMBER,
3883     x_organization_objs   OUT NOCOPY    HZ_ORGANIZATION_BO_TBL,
3884     x_return_status       OUT NOCOPY    VARCHAR2,
3885     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL
3886   ) is
3887     l_msg_data            VARCHAR2(2000);
3888     l_msg_count           NUMBER;
3889   BEGIN
3890     get_organizations_created(
3891       p_init_msg_list       => fnd_api.g_true,
3892       p_event_id            => p_event_id,
3893       x_organization_objs   => x_organization_objs,
3894       x_return_status       => x_return_status,
3895       x_msg_count           => l_msg_count,
3896       x_msg_data            => l_msg_data);
3897     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
3898                     x_return_status   => x_return_status,
3899                     x_msg_count       => l_msg_count,
3900                     x_msg_data        => l_msg_data);
3901   END get_organizations_created;
3902 
3903 
3904 
3905 --------------------------------------
3906   --
3907   -- PROCEDURE get_organizations_updated
3908   --
3909   -- DESCRIPTION
3910   --The caller provides an identifier for the Organizations update business event and
3911   --the procedure returns database objects of the type HZ_ORGANIZATION_BO for all of
3912   --the Organization business objects from the business event.
3913 
3914   --
3915   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
3916   --
3917   -- ARGUMENTS
3918   --   IN:
3919   --     p_init_msg_list      Initialize message stack if it is set to
3920   --     p_event_id           BES Event identifier.
3921   --                          FND_API.G_TRUE. Default is FND_API.G_FALSE.
3922   --   OUT:
3923   --     x_organization_objs        One or more created logical organization.
3924   --     x_return_status      Return status after the call. The status can
3925   --                          be fnd_api.g_ret_sts_success (success),
3926   --                          fnd_api.g_ret_sts_error (error),
3927   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
3928   --     x_msg_count          Number of messages in message stack.
3929   --     x_msg_data           Message text if x_msg_count is 1.
3930   --
3931   -- NOTES
3932   --
3933   -- MODIFICATION HISTORY
3934   --
3935   --   06-JUN-2005     AWU                Created.
3936   --
3937 
3938 
3939 
3940 /*
3941 The Get Organizations Updated procedure is a service to retrieve all of the Organization business objects
3942 whose updates have been captured by the logical business event. Each Organizations Updated business event
3943 signifies that one or more Organization business objects have been updated.
3944 The caller provides an identifier for the Organizations Update business event and the procedure returns
3945 database objects of the type HZ_ORGANIZATION_BO for all of the Organization business objects from the
3946 business event.
3947 Gathering all of the returned database objects from those API calls, the procedure packages them in a table
3948 structure and returns them to the caller.
3949 */
3950 
3951  PROCEDURE get_organizations_updated(
3952     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
3953     p_event_id            IN           	NUMBER,
3954     x_organization_objs         OUT NOCOPY    HZ_ORGANIZATION_BO_TBL,
3955     x_return_status       OUT NOCOPY    VARCHAR2,
3956     x_msg_count           OUT NOCOPY    NUMBER,
3957     x_msg_data            OUT NOCOPY    VARCHAR2
3958   ) is
3959 
3960 l_debug_prefix              VARCHAR2(30) := '';
3961 begin
3962 
3963 	-- initialize API return status to success.
3964     	x_return_status := FND_API.G_RET_STS_SUCCESS;
3965 
3966     	-- Initialize message list if p_init_msg_list is set to TRUE
3967     	IF FND_API.to_Boolean(p_init_msg_list) THEN
3968       		FND_MSG_PUB.initialize;
3969     	END IF;
3970 
3971 
3972 	-- Debug info.
3973         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3974         	hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organizations_updated(+)',
3975                                p_prefix=>l_debug_prefix,
3976                                p_msg_level=>fnd_log.level_procedure);
3977     	END IF;
3978 
3979 	HZ_EXTRACT_BO_UTIL_PVT.validate_event_id(p_event_id => p_event_id,
3980 			    p_party_id => null,
3981 			    p_event_type => 'U',
3982 			    p_bo_code => 'ORG',
3983 			    x_return_status => x_return_status);
3984 
3985 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3986       		RAISE FND_API.G_EXC_ERROR;
3987     	END IF;
3988 
3989 	HZ_EXTRACT_ORGANIZATION_BO_PVT.get_organizations_updated(
3990     		p_init_msg_list => fnd_api.g_false,
3991 		p_event_id => p_event_id,
3992     		x_organization_objs  => x_organization_objs,
3993 		x_return_status => x_return_status,
3994 		x_msg_count => x_msg_count,
3995 		x_msg_data => x_msg_data);
3996 
3997 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3998       		RAISE FND_API.G_EXC_ERROR;
3999     	END IF;
4000 
4001 
4002 
4003 	-- Debug info.
4004     	IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
4005          	hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4006                                p_msg_data=>x_msg_data,
4007                                p_msg_type=>'WARNING',
4008                                p_msg_level=>fnd_log.level_exception);
4009     	END IF;
4010 
4011     	-- Debug info.
4012         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4013         	hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organizations_updated (-)',
4014                                p_prefix=>l_debug_prefix,
4015                                p_msg_level=>fnd_log.level_procedure);
4016     	END IF;
4017 
4018 
4019  EXCEPTION
4020 
4021   WHEN fnd_api.g_exc_error THEN
4022       x_return_status := fnd_api.g_ret_sts_error;
4023 
4024       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
4025                                 p_count => x_msg_count,
4026                                 p_data  => x_msg_data);
4027 
4028       -- Debug info.
4029       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
4030         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4031                                p_msg_data=>x_msg_data,
4032                                p_msg_type=>'ERROR',
4033                                p_msg_level=>fnd_log.level_error);
4034       END IF;
4035       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4036         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organizations_updated(-)',
4037                                p_prefix=>l_debug_prefix,
4038                                p_msg_level=>fnd_log.level_procedure);
4039       END IF;
4040     WHEN fnd_api.g_exc_unexpected_error THEN
4041       x_return_status := fnd_api.g_ret_sts_unexp_error;
4042 
4043       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
4044                                 p_count => x_msg_count,
4045                                 p_data  => x_msg_data);
4046 
4047       -- Debug info.
4048       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
4049         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4050                                p_msg_data=>x_msg_data,
4051                                p_msg_type=>'UNEXPECTED ERROR',
4052                                p_msg_level=>fnd_log.level_error);
4053       END IF;
4054       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4055         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organizations_updated(-)',
4056                                p_prefix=>l_debug_prefix,
4057                                p_msg_level=>fnd_log.level_procedure);
4058       END IF;
4059     WHEN OTHERS THEN
4060       x_return_status := fnd_api.g_ret_sts_unexp_error;
4061 
4062       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
4063       fnd_message.set_token('ERROR' ,SQLERRM);
4064       fnd_msg_pub.add;
4065 
4066       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
4067                                 p_count => x_msg_count,
4068                                 p_data  => x_msg_data);
4069 
4070       -- Debug info.
4071       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
4072         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4073                                p_msg_data=>x_msg_data,
4074                                p_msg_type=>'SQL ERROR',
4075                                p_msg_level=>fnd_log.level_error);
4076       END IF;
4077       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4078         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organizations_updated(-)',
4079                                p_prefix=>l_debug_prefix,
4080                                p_msg_level=>fnd_log.level_procedure);
4081       END IF;
4082 
4083 end;
4084 
4085   PROCEDURE get_organizations_updated(
4086     p_event_id            IN            NUMBER,
4087     x_organization_objs   OUT NOCOPY    HZ_ORGANIZATION_BO_TBL,
4088     x_return_status       OUT NOCOPY    VARCHAR2,
4089     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL
4090   ) IS
4091     l_msg_data            VARCHAR2(2000);
4092     l_msg_count           NUMBER;
4093   BEGIN
4094     get_organizations_updated(
4095       p_init_msg_list       => fnd_api.g_true,
4096       p_event_id            => p_event_id,
4097       x_organization_objs   => x_organization_objs,
4098       x_return_status       => x_return_status,
4099       x_msg_count           => l_msg_count,
4100       x_msg_data            => l_msg_data);
4101     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
4102                     x_return_status   => x_return_status,
4103                     x_msg_count       => l_msg_count,
4104                     x_msg_data        => l_msg_data);
4105   END get_organizations_updated;
4106 
4107 
4108 
4109 --------------------------------------
4110   --
4111   -- PROCEDURE get_organization_updated
4112   --
4113   -- DESCRIPTION
4114   --The caller provides an identifier for the Organizations update business event and organization id
4115   --the procedure returns one database object of the type HZ_ORGANIZATION_BO
4116   --
4117   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
4118   --
4119   -- ARGUMENTS
4120   --   IN:
4121   --     p_init_msg_list      Initialize message stack if it is set to
4122   --     p_event_id           BES Event identifier.
4123   --                          FND_API.G_TRUE. Default is FND_API.G_FALSE.
4124   --   OUT:
4125   --     x_organization_objs        One or more created logical organization.
4126   --     x_return_status      Return status after the call. The status can
4127   --                          be fnd_api.g_ret_sts_success (success),
4128   --                          fnd_api.g_ret_sts_error (error),
4129   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
4130   --     x_msg_count          Number of messages in message stack.
4131   --     x_msg_data           Message text if x_msg_count is 1.
4132   --
4133   -- NOTES
4134   --
4135   -- MODIFICATION HISTORY
4136   --
4137   --   06-JUN-2005     AWU                Created.
4138   --
4139 
4140 PROCEDURE get_organization_updated(
4141     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
4142     p_event_id            IN           	NUMBER,
4143     p_organization_id     IN           NUMBER,
4144     x_organization_obj    OUT NOCOPY   HZ_ORGANIZATION_BO,
4145     x_return_status       OUT NOCOPY    VARCHAR2,
4146     x_msg_count           OUT NOCOPY    NUMBER,
4147     x_msg_data            OUT NOCOPY    VARCHAR2
4148   )  is
4149 l_debug_prefix              VARCHAR2(30) := '';
4150 begin
4151 
4152 	-- initialize API return status to success.
4153     	x_return_status := FND_API.G_RET_STS_SUCCESS;
4154 
4155     	-- Initialize message list if p_init_msg_list is set to TRUE
4156     	IF FND_API.to_Boolean(p_init_msg_list) THEN
4157       		FND_MSG_PUB.initialize;
4158     	END IF;
4159 
4160 
4161 	-- Debug info.
4162         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4163         	hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organization_updated(+)',
4164                                p_prefix=>l_debug_prefix,
4165                                p_msg_level=>fnd_log.level_procedure);
4166     	END IF;
4167 
4168 	HZ_EXTRACT_BO_UTIL_PVT.validate_event_id(p_event_id => p_event_id,
4169 			    p_party_id => p_organization_id,
4170 			    p_event_type => 'U',
4171 			    p_bo_code => 'ORG',
4172 			    x_return_status => x_return_status);
4173 
4174 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4175       		RAISE FND_API.G_EXC_ERROR;
4176     	END IF;
4177 
4178 	HZ_EXTRACT_ORGANIZATION_BO_PVT.get_organization_updated(
4179     		p_init_msg_list => fnd_api.g_false,
4180 		p_event_id => p_event_id,
4181 		p_organization_id  => p_organization_id,
4182     		x_organization_obj  => x_organization_obj,
4183 		x_return_status => x_return_status,
4184 		x_msg_count => x_msg_count,
4185 		x_msg_data => x_msg_data);
4186 
4187 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4188       		RAISE FND_API.G_EXC_ERROR;
4189     	END IF;
4190 
4191 
4192 
4193 	-- Debug info.
4194     	IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
4195          	hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4196                                p_msg_data=>x_msg_data,
4197                                p_msg_type=>'WARNING',
4198                                p_msg_level=>fnd_log.level_exception);
4199     	END IF;
4200 
4201     	-- Debug info.
4202         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4203         	hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organization_updated (-)',
4204                                p_prefix=>l_debug_prefix,
4205                                p_msg_level=>fnd_log.level_procedure);
4206     	END IF;
4207 
4208 
4209  EXCEPTION
4210 
4211   WHEN fnd_api.g_exc_error THEN
4212       x_return_status := fnd_api.g_ret_sts_error;
4213 
4214       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
4215                                 p_count => x_msg_count,
4216                                 p_data  => x_msg_data);
4217 
4218       -- Debug info.
4219       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
4220         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4221                                p_msg_data=>x_msg_data,
4222                                p_msg_type=>'ERROR',
4223                                p_msg_level=>fnd_log.level_error);
4224       END IF;
4225       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4226         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organization_updated(-)',
4227                                p_prefix=>l_debug_prefix,
4228                                p_msg_level=>fnd_log.level_procedure);
4229       END IF;
4230     WHEN fnd_api.g_exc_unexpected_error THEN
4231       x_return_status := fnd_api.g_ret_sts_unexp_error;
4232 
4233       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
4234                                 p_count => x_msg_count,
4235                                 p_data  => x_msg_data);
4236 
4237       -- Debug info.
4238       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
4239         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4240                                p_msg_data=>x_msg_data,
4241                                p_msg_type=>'UNEXPECTED ERROR',
4242                                p_msg_level=>fnd_log.level_error);
4243       END IF;
4244       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4245         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organization_updated(-)',
4246                                p_prefix=>l_debug_prefix,
4247                                p_msg_level=>fnd_log.level_procedure);
4248       END IF;
4249     WHEN OTHERS THEN
4250       x_return_status := fnd_api.g_ret_sts_unexp_error;
4251 
4252       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
4253       fnd_message.set_token('ERROR' ,SQLERRM);
4254       fnd_msg_pub.add;
4255 
4256       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
4257                                 p_count => x_msg_count,
4258                                 p_data  => x_msg_data);
4259 
4260       -- Debug info.
4261       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
4262         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4263                                p_msg_data=>x_msg_data,
4264                                p_msg_type=>'SQL ERROR',
4265                                p_msg_level=>fnd_log.level_error);
4266       END IF;
4267       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4268         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organization_updated(-)',
4269                                p_prefix=>l_debug_prefix,
4270                                p_msg_level=>fnd_log.level_procedure);
4271       END IF;
4272 
4273 end;
4274 
4275   PROCEDURE get_organization_updated(
4276     p_event_id            IN            NUMBER,
4277     p_organization_id     IN           NUMBER,
4278     x_organization_obj    OUT NOCOPY   HZ_ORGANIZATION_BO,
4279     x_return_status       OUT NOCOPY    VARCHAR2,
4280     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL
4281   ) IS
4282     l_msg_data            VARCHAR2(2000);
4283     l_msg_count           NUMBER;
4284   BEGIN
4285     get_organization_updated(
4286       p_init_msg_list       => fnd_api.g_true,
4287       p_event_id            => p_event_id,
4288       p_organization_id     => p_organization_id,
4289       x_organization_obj    => x_organization_obj,
4290       x_return_status       => x_return_status,
4291       x_msg_count           => l_msg_count,
4292       x_msg_data            => l_msg_data);
4293     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
4294                     x_return_status   => x_return_status,
4295                     x_msg_count       => l_msg_count,
4296                     x_msg_data        => l_msg_data);
4297   END get_organization_updated;
4298 
4299 
4300 
4301 -- get TCA identifiers for create event
4302 PROCEDURE get_ids_organizations_created (
4303 	p_init_msg_list		IN	VARCHAR2 := fnd_api.g_false,
4304 	p_event_id		IN	NUMBER,
4305 	x_organization_ids		OUT NOCOPY	HZ_EXTRACT_BO_UTIL_PVT.BO_ID_TBL,
4306   	x_return_status       OUT NOCOPY    VARCHAR2,
4307 	x_msg_count		OUT NOCOPY	NUMBER,
4308 	x_msg_data		OUT NOCOPY	VARCHAR2
4309 
4310 ) is
4311 l_debug_prefix              VARCHAR2(30) := '';
4312 
4313 begin
4314 	-- initialize API return status to success.
4315     	x_return_status := FND_API.G_RET_STS_SUCCESS;
4316 
4317     	-- Initialize message list if p_init_msg_list is set to TRUE
4318     	IF FND_API.to_Boolean(p_init_msg_list) THEN
4319       		FND_MSG_PUB.initialize;
4320     	END IF;
4321 
4322 
4323 	-- Debug info.
4324         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4325         	hz_utility_v2pub.debug(p_message=>'get_ids_organizations_created(+)',
4326                                p_prefix=>l_debug_prefix,
4327                                p_msg_level=>fnd_log.level_procedure);
4328     	END IF;
4329 
4330 	HZ_EXTRACT_BO_UTIL_PVT.validate_event_id(p_event_id => p_event_id,
4331 			    p_party_id => null,
4332 			    p_event_type => 'C',
4333 			    p_bo_code => 'ORG',
4334 			    x_return_status => x_return_status);
4335 
4336 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4337       		RAISE FND_API.G_EXC_ERROR;
4338     	END IF;
4339 
4340 	HZ_EXTRACT_BO_UTIL_PVT.get_bo_root_ids(
4341     	p_init_msg_list       => fnd_api.g_false,
4342     	p_event_id            => p_event_id,
4343     	x_obj_root_ids        => x_organization_ids,
4344    	x_return_status => x_return_status,
4345 	x_msg_count => x_msg_count,
4346 	x_msg_data => x_msg_data);
4347 
4348 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4349       		RAISE FND_API.G_EXC_ERROR;
4350     	END IF;
4351 
4352 
4353 	-- Debug info.
4354     	IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
4355          	hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4356                                p_msg_data=>x_msg_data,
4357                                p_msg_type=>'WARNING',
4358                                p_msg_level=>fnd_log.level_exception);
4359     	END IF;
4360 
4361     	-- Debug info.
4362         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4363         	hz_utility_v2pub.debug(p_message=>'get_ids_organizations_created (-)',
4364                                p_prefix=>l_debug_prefix,
4365                                p_msg_level=>fnd_log.level_procedure);
4366     	END IF;
4367 
4368 
4369  EXCEPTION
4370 
4371   WHEN fnd_api.g_exc_error THEN
4372       x_return_status := fnd_api.g_ret_sts_error;
4373 
4374       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
4375                                 p_count => x_msg_count,
4376                                 p_data  => x_msg_data);
4377 
4378       -- Debug info.
4379       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
4380         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4381                                p_msg_data=>x_msg_data,
4382                                p_msg_type=>'ERROR',
4383                                p_msg_level=>fnd_log.level_error);
4384       END IF;
4385       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4386         hz_utility_v2pub.debug(p_message=>'get_ids_organizations_created(-)',
4387                                p_prefix=>l_debug_prefix,
4388                                p_msg_level=>fnd_log.level_procedure);
4389       END IF;
4390     WHEN fnd_api.g_exc_unexpected_error THEN
4391       x_return_status := fnd_api.g_ret_sts_unexp_error;
4392 
4393       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
4394                                 p_count => x_msg_count,
4395                                 p_data  => x_msg_data);
4396 
4397       -- Debug info.
4398       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
4399         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4400                                p_msg_data=>x_msg_data,
4401                                p_msg_type=>'UNEXPECTED ERROR',
4402                                p_msg_level=>fnd_log.level_error);
4403       END IF;
4404       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4405         hz_utility_v2pub.debug(p_message=>'get_ids_organizations_created(-)',
4406                                p_prefix=>l_debug_prefix,
4407                                p_msg_level=>fnd_log.level_procedure);
4408       END IF;
4409     WHEN OTHERS THEN
4410       x_return_status := fnd_api.g_ret_sts_unexp_error;
4411 
4412       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
4413       fnd_message.set_token('ERROR' ,SQLERRM);
4414       fnd_msg_pub.add;
4415 
4416       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
4417                                 p_count => x_msg_count,
4418                                 p_data  => x_msg_data);
4419 
4420       -- Debug info.
4421       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
4422         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4423                                p_msg_data=>x_msg_data,
4424                                p_msg_type=>'SQL ERROR',
4425                                p_msg_level=>fnd_log.level_error);
4426       END IF;
4427       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4428         hz_utility_v2pub.debug(p_message=>'get_ids_organizations_created(-)',
4429                                p_prefix=>l_debug_prefix,
4430                                p_msg_level=>fnd_log.level_procedure);
4431       END IF;
4432 
4433 end;
4434 
4435 
4436 -- get TCA identifiers for update event
4437 PROCEDURE get_ids_organizations_updated (
4438 	p_init_msg_list		IN	VARCHAR2 := fnd_api.g_false,
4439 	p_event_id		IN	NUMBER,
4440 	x_organization_ids		OUT NOCOPY	HZ_EXTRACT_BO_UTIL_PVT.BO_ID_TBL,
4441   	x_return_status       OUT NOCOPY    VARCHAR2,
4442 	x_msg_count		OUT NOCOPY	NUMBER,
4443 	x_msg_data		OUT NOCOPY	VARCHAR2
4444 ) is
4445 l_debug_prefix              VARCHAR2(30) := '';
4446 
4447 begin
4448 	-- initialize API return status to success.
4449     	x_return_status := FND_API.G_RET_STS_SUCCESS;
4450 
4451     	-- Initialize message list if p_init_msg_list is set to TRUE
4452     	IF FND_API.to_Boolean(p_init_msg_list) THEN
4453       		FND_MSG_PUB.initialize;
4454     	END IF;
4455 
4456 
4457 	-- Debug info.
4458         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4459         	hz_utility_v2pub.debug(p_message=>'get_ids_organizations_updated(+)',
4460                                p_prefix=>l_debug_prefix,
4461                                p_msg_level=>fnd_log.level_procedure);
4462     	END IF;
4463 
4464 	HZ_EXTRACT_BO_UTIL_PVT.validate_event_id(p_event_id => p_event_id,
4465 			    p_party_id => null,
4466 			    p_event_type => 'U',
4467 			    p_bo_code => 'ORG',
4468 			    x_return_status => x_return_status);
4469 
4470 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4471       		RAISE FND_API.G_EXC_ERROR;
4472     	END IF;
4473 
4474 	HZ_EXTRACT_BO_UTIL_PVT.get_bo_root_ids(
4475     	p_init_msg_list       => fnd_api.g_false,
4476     	p_event_id            => p_event_id,
4477     	x_obj_root_ids        => x_organization_ids,
4478    	x_return_status => x_return_status,
4479 	x_msg_count => x_msg_count,
4480 	x_msg_data => x_msg_data);
4481 
4482 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4483       		RAISE FND_API.G_EXC_ERROR;
4484     	END IF;
4485 
4486 
4487 	-- Debug info.
4488     	IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
4489          	hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4490                                p_msg_data=>x_msg_data,
4491                                p_msg_type=>'WARNING',
4492                                p_msg_level=>fnd_log.level_exception);
4493     	END IF;
4494 
4495     	-- Debug info.
4496         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4497         	hz_utility_v2pub.debug(p_message=>'get_ids_organizations_updated (-)',
4498                                p_prefix=>l_debug_prefix,
4499                                p_msg_level=>fnd_log.level_procedure);
4500     	END IF;
4501 
4502 
4503  EXCEPTION
4504 
4505   WHEN fnd_api.g_exc_error THEN
4506       x_return_status := fnd_api.g_ret_sts_error;
4507 
4508       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
4509                                 p_count => x_msg_count,
4510                                 p_data  => x_msg_data);
4511 
4512       -- Debug info.
4513       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
4514         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4515                                p_msg_data=>x_msg_data,
4516                                p_msg_type=>'ERROR',
4517                                p_msg_level=>fnd_log.level_error);
4518       END IF;
4519       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4520         hz_utility_v2pub.debug(p_message=>'get_ids_organizations_updated(-)',
4521                                p_prefix=>l_debug_prefix,
4522                                p_msg_level=>fnd_log.level_procedure);
4523       END IF;
4524     WHEN fnd_api.g_exc_unexpected_error THEN
4525       x_return_status := fnd_api.g_ret_sts_unexp_error;
4526 
4527       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
4528                                 p_count => x_msg_count,
4529                                 p_data  => x_msg_data);
4530 
4531       -- Debug info.
4532       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
4533         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4534                                p_msg_data=>x_msg_data,
4535                                p_msg_type=>'UNEXPECTED ERROR',
4536                                p_msg_level=>fnd_log.level_error);
4537       END IF;
4538       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4539         hz_utility_v2pub.debug(p_message=>'get_ids_organizations_updated(-)',
4540                                p_prefix=>l_debug_prefix,
4541                                p_msg_level=>fnd_log.level_procedure);
4542       END IF;
4543     WHEN OTHERS THEN
4544       x_return_status := fnd_api.g_ret_sts_unexp_error;
4545 
4546       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
4547       fnd_message.set_token('ERROR' ,SQLERRM);
4548       fnd_msg_pub.add;
4549 
4550       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
4551                                 p_count => x_msg_count,
4552                                 p_data  => x_msg_data);
4553 
4554       -- Debug info.
4555       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
4556         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4557                                p_msg_data=>x_msg_data,
4558                                p_msg_type=>'SQL ERROR',
4559                                p_msg_level=>fnd_log.level_error);
4560       END IF;
4561       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4562         hz_utility_v2pub.debug(p_message=>'get_ids_organizations_updated(-)',
4563                                p_prefix=>l_debug_prefix,
4564                                p_msg_level=>fnd_log.level_procedure);
4565       END IF;
4566 
4567 end;
4568 
4569 
4570 
4571 
4572 END hz_organization_bo_pub;