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 2007/12/26 06:34:30 kguggila 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   BEGIN
1473     -- Standard start of API savepoint
1474     SAVEPOINT do_create_organization_bo_pub;
1475 
1476     -- initialize API return status to success.
1477     x_return_status := FND_API.G_RET_STS_SUCCESS;
1478 
1479     -- Initialize message list if p_init_msg_list is set to TRUE.
1480     IF FND_API.to_Boolean(p_init_msg_list) THEN
1481       FND_MSG_PUB.initialize;
1482     END IF;
1483 
1484     -- initialize Global variable
1485     HZ_UTILITY_V2PUB.G_CALLING_API := 'BO_API';
1486     IF(p_created_by_module IS NULL) THEN
1487       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := 'BO_API';
1488     ELSE
1489       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := p_created_by_module;
1490     END IF;
1491 
1492     -- Debug info.
1493     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1494         hz_utility_v2pub.debug(p_message=>'do_create_organization_bo(+)',
1495                                p_prefix=>l_debug_prefix,
1496                                p_msg_level=>fnd_log.level_procedure);
1497     END IF;
1498 
1499     -- Base on p_validate_bo_flag to check completeness of business object
1500     IF(p_validate_bo_flag = FND_API.G_TRUE) THEN
1501       HZ_REGISTRY_VALIDATE_BO_PVT.get_bus_obj_struct(
1502         p_bus_object_code         => 'ORG',
1503         x_bus_object              => l_bus_object
1504       );
1505       l_valid_obj := HZ_REGISTRY_VALIDATE_BO_PVT.is_org_bo_comp(
1506                        p_organization_obj => p_organization_obj,
1507                        p_bus_object       => l_bus_object
1508                      );
1509       IF NOT(l_valid_obj) THEN
1510         RAISE fnd_api.g_exc_error;
1511       END IF;
1512 
1513       -- find out if raise event at the end
1514       l_raise_event := HZ_PARTY_BO_PVT.is_raising_create_event(
1515                          p_obj_complete_flag => l_valid_obj );
1516 
1517       IF(l_raise_event) THEN
1518         -- get event_id and set global variable to event_id for
1519         -- BOT populate function
1520         SELECT HZ_BUS_OBJ_TRACKING_S.nextval
1521         INTO l_event_id
1522         FROM DUAL;
1523       END IF;
1524     ELSE
1525       l_raise_event := FALSE;
1526     END IF;
1527 
1528     x_organization_id := p_organization_obj.organization_id;
1529     x_organization_os := p_organization_obj.orig_system;
1530     x_organization_osr:= p_organization_obj.orig_system_reference;
1531 
1532     -- check input person party id and os+osr
1533     hz_registry_validate_bo_pvt.validate_ssm_id(
1534       px_id              => x_organization_id,
1535       px_os              => x_organization_os,
1536       px_osr             => x_organization_osr,
1537       p_obj_type         => 'ORGANIZATION',
1538       p_create_or_update => 'C',
1539       x_return_status    => x_return_status,
1540       x_msg_count        => x_msg_count,
1541       x_msg_data         => x_msg_data);
1542 
1543     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1544       RAISE FND_API.G_EXC_ERROR;
1545     END IF;
1546 
1547     ---------------------------------------
1548     -- Assign organization and party record
1549     ---------------------------------------
1550     assign_organization_rec(
1551       p_organization_obj  => p_organization_obj,
1552       p_organization_id   => x_organization_id,
1553       p_organization_os   => x_organization_os,
1554       p_organization_osr  => x_organization_osr,
1555       px_organization_rec => l_organization_rec
1556     );
1557 
1558     HZ_PARTY_V2PUB.create_organization(
1559       p_organization_rec          => l_organization_rec,
1560       x_party_id                  => x_organization_id,
1561       x_party_number              => l_party_number,
1562       x_profile_id                => l_profile_id,
1563       x_return_status             => x_return_status,
1564       x_msg_count                 => x_msg_count,
1565       x_msg_data                  => x_msg_data
1566     );
1567 
1568     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1569       RAISE FND_API.G_EXC_ERROR;
1570     END IF;
1571 
1572     -- assign organization party_id
1573     p_organization_obj.organization_id := x_organization_id;
1574     p_organization_obj.party_number := l_party_number;
1575     --------------------------
1576     -- Create Org Ext Attrs
1577     --------------------------
1578     IF((p_organization_obj.ext_attributes_objs IS NOT NULL) AND
1579        (p_organization_obj.ext_attributes_objs.COUNT > 0)) THEN
1580       HZ_EXT_ATTRIBUTE_BO_PVT.save_ext_attributes(
1581         p_ext_attr_objs             => p_organization_obj.ext_attributes_objs,
1582         p_parent_obj_id             => l_profile_id,
1583         p_parent_obj_type           => 'ORG',
1584         p_create_or_update          => 'C',
1585         x_return_status             => x_return_status,
1586         x_errorcode                 => l_errorcode,
1587         x_msg_count                 => x_msg_count,
1588         x_msg_data                  => x_msg_data
1589       );
1590 
1591       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1592         RAISE FND_API.G_EXC_ERROR;
1593       END IF;
1594     END IF;
1595 
1596     ----------------------------
1597     -- Party Preferences
1598     ----------------------------
1599     IF((p_organization_obj.preference_objs IS NOT NULL) AND
1600        (p_organization_obj.preference_objs.COUNT > 0)) THEN
1601       HZ_PARTY_BO_PVT.save_party_preferences(
1602         p_party_pref_objs           => p_organization_obj.preference_objs,
1603         p_party_id                  => x_organization_id,
1604         x_return_status             => x_return_status,
1605         x_msg_count                 => x_msg_count,
1606         x_msg_data                  => x_msg_data
1607       );
1608 
1609       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1610         RAISE FND_API.G_EXC_ERROR;
1611       END IF;
1612     END IF;
1613 
1614     ----------------------------
1615     -- Contact Preferences
1616     ----------------------------
1617     IF((p_organization_obj.contact_pref_objs IS NOT NULL) AND
1618        (p_organization_obj.contact_pref_objs.COUNT > 0)) THEN
1619       HZ_CONTACT_PREFERENCE_BO_PVT.create_contact_preferences(
1620         p_cp_pref_objs           => p_organization_obj.contact_pref_objs,
1621         p_contact_level_table_id => x_organization_id,
1622         p_contact_level_table    => 'HZ_PARTIES',
1623         x_return_status          => x_return_status,
1624         x_msg_count              => x_msg_count,
1625         x_msg_data               => x_msg_data
1626       );
1627 
1628       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1629         RAISE FND_API.G_EXC_ERROR;
1630       END IF;
1631     END IF;
1632 
1633     ----------------------------
1634     -- Relationship api
1635     ----------------------------
1636     IF((p_organization_obj.relationship_objs IS NOT NULL) AND
1637        (p_organization_obj.relationship_objs.COUNT > 0)) THEN
1638       HZ_PARTY_BO_PVT.create_relationships(
1639         p_rel_objs                  => p_organization_obj.relationship_objs,
1640         p_subject_id                => x_organization_id,
1641         p_subject_type              => 'ORGANIZATION',
1642         x_return_status             => x_return_status,
1643         x_msg_count                 => x_msg_count,
1644         x_msg_data                  => x_msg_data
1645       );
1646 
1647       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1648         RAISE FND_API.G_EXC_ERROR;
1649       END IF;
1650     END IF;
1651 
1652     ----------------------------
1653     -- Classification api
1654     ----------------------------
1655     IF((p_organization_obj.class_objs IS NOT NULL) AND
1656        (p_organization_obj.class_objs.COUNT > 0)) THEN
1657       HZ_PARTY_BO_PVT.create_classifications(
1658         p_code_assign_objs          => p_organization_obj.class_objs,
1659         p_owner_table_name          => 'HZ_PARTIES',
1660         p_owner_table_id            => x_organization_id,
1661         x_return_status             => x_return_status,
1662         x_msg_count                 => x_msg_count,
1663         x_msg_data                  => x_msg_data
1664       );
1665 
1666       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1667         RAISE FND_API.G_EXC_ERROR;
1668       END IF;
1669     END IF;
1670 
1671     l_cbm := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
1672 
1673     -----------------------------
1674     -- Create logical org contact
1675     -----------------------------
1676     IF((p_organization_obj.contact_objs IS NOT NULL) AND
1677        (p_organization_obj.contact_objs.COUNT > 0)) THEN
1678       HZ_ORG_CONTACT_BO_PVT.save_org_contacts(
1679         p_oc_objs            => p_organization_obj.contact_objs,
1680         p_create_update_flag => 'C',
1681         p_obj_source         => p_obj_source,
1682         x_return_status      => x_return_status,
1683         x_msg_count          => x_msg_count,
1684         x_msg_data           => x_msg_data,
1685         p_parent_org_id      => x_organization_id,
1686         p_parent_org_os      => x_organization_os,
1687         p_parent_org_osr     => x_organization_osr
1688       );
1689 
1690       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1691         RAISE FND_API.G_EXC_ERROR;
1692       END IF;
1693     END IF;
1694 
1695     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
1696 
1697     ----------------------------
1698     -- Create logical party site
1699     ----------------------------
1700     IF((p_organization_obj.party_site_objs IS NOT NULL) AND
1701        (p_organization_obj.party_site_objs.COUNT > 0)) THEN
1702       HZ_PARTY_SITE_BO_PVT.save_party_sites(
1703         p_ps_objs            => p_organization_obj.party_site_objs,
1704         p_create_update_flag => 'C',
1705         p_obj_source         => p_obj_source,
1706         x_return_status      => x_return_status,
1707         x_msg_count          => x_msg_count,
1708         x_msg_data           => x_msg_data,
1709         p_parent_id          => x_organization_id,
1710         p_parent_os          => x_organization_os,
1711         p_parent_osr         => x_organization_osr,
1712         p_parent_obj_type    => 'ORG'
1713       );
1714 
1715       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1716         RAISE FND_API.G_EXC_ERROR;
1717       END IF;
1718     END IF;
1719 
1720     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
1721 
1722     ------------------------
1723     -- Create contact points
1724     ------------------------
1725     IF(((p_organization_obj.phone_objs IS NOT NULL) AND (p_organization_obj.phone_objs.COUNT > 0)) OR
1726        ((p_organization_obj.telex_objs IS NOT NULL) AND (p_organization_obj.telex_objs.COUNT > 0)) OR
1727        ((p_organization_obj.email_objs IS NOT NULL) AND (p_organization_obj.email_objs.COUNT > 0)) OR
1728        ((p_organization_obj.web_objs IS NOT NULL) AND (p_organization_obj.web_objs.COUNT > 0)) OR
1729        ((p_organization_obj.edi_objs IS NOT NULL) AND (p_organization_obj.edi_objs.COUNT > 0)) OR
1730        ((p_organization_obj.eft_objs IS NOT NULL) AND (p_organization_obj.eft_objs.COUNT > 0))) THEN
1731       HZ_CONTACT_POINT_BO_PVT.save_contact_points(
1732         p_phone_objs         => p_organization_obj.phone_objs,
1733         p_telex_objs         => p_organization_obj.telex_objs,
1734         p_email_objs         => p_organization_obj.email_objs,
1735         p_web_objs           => p_organization_obj.web_objs,
1736         p_edi_objs           => p_organization_obj.edi_objs,
1737         p_eft_objs           => p_organization_obj.eft_objs,
1738         p_sms_objs           => l_sms_objs,
1739         p_owner_table_id     => x_organization_id,
1740         p_owner_table_os     => x_organization_os,
1741         p_owner_table_osr    => x_organization_osr,
1742         p_parent_obj_type    => 'ORG',
1743         p_create_update_flag => 'C',
1744         p_obj_source         => p_obj_source,
1745         x_return_status      => x_return_status,
1746         x_msg_count          => x_msg_count,
1747         x_msg_data           => x_msg_data
1748       );
1749 
1750       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1751         RAISE FND_API.G_EXC_ERROR;
1752       END IF;
1753     END IF;
1754 
1755     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
1756 
1757     ----------------------------
1758     -- Certifications
1759     ----------------------------
1760     IF((p_organization_obj.certification_objs IS NOT NULL) AND
1761        (p_organization_obj.certification_objs.COUNT > 0)) THEN
1762       HZ_PARTY_BO_PVT.create_certifications(
1763         p_cert_objs                 => p_organization_obj.certification_objs,
1764         p_party_id                  => x_organization_id,
1765         x_return_status             => x_return_status,
1766         x_msg_count                 => x_msg_count,
1767         x_msg_data                  => x_msg_data
1768       );
1769 
1770       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1771         RAISE FND_API.G_EXC_ERROR;
1772       END IF;
1773     END IF;
1774 
1775     ----------------------------
1776     -- Financial Profiles
1777     ----------------------------
1778     IF((p_organization_obj.financial_prof_objs IS NOT NULL) AND
1779        (p_organization_obj.financial_prof_objs.COUNT > 0)) THEN
1780       HZ_PARTY_BO_PVT.create_financial_profiles(
1781         p_fin_prof_objs             => p_organization_obj.financial_prof_objs,
1782         p_party_id                  => x_organization_id,
1783         x_return_status             => x_return_status,
1784         x_msg_count                 => x_msg_count,
1785         x_msg_data                  => x_msg_data
1786       );
1787 
1788       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1789         RAISE FND_API.G_EXC_ERROR;
1790       END IF;
1791     END IF;
1792 
1793   ----------------------------------
1794   --  Party Usages -------
1795   ----------------------------------
1796    IF ((p_organization_obj.party_usage_objs IS NOT NULL) AND
1797       (p_organization_obj.party_usage_objs.COUNT > 0 )) THEN
1798        HZ_PARTY_BO_PVT.create_party_usage_assgmnt(
1799 	   p_party_usg_objs				=> p_organization_obj.party_usage_objs,
1800 	   p_party_id					=> x_organization_id,
1801 	   x_return_status				=> x_return_status,
1802 	   x_msg_count					=> x_msg_count,
1803 	   x_msg_data					=> x_msg_data
1804 	   );
1805         IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1806         RAISE FND_API.G_EXC_ERROR;
1807       END IF;
1808     END IF;
1809 
1810 
1811     ----------------------------
1812     -- Credit Ratings
1813     ----------------------------
1814     IF((p_organization_obj.credit_rating_objs IS NOT NULL) AND
1815        (p_organization_obj.credit_rating_objs.COUNT > 0)) THEN
1816       create_credit_ratings(
1817         p_credit_rating_objs        => p_organization_obj.credit_rating_objs,
1818         p_organization_id           => x_organization_id,
1819         x_return_status             => x_return_status,
1820         x_msg_count                 => x_msg_count,
1821         x_msg_data                  => x_msg_data
1822       );
1823 
1824       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1825         RAISE FND_API.G_EXC_ERROR;
1826       END IF;
1827     END IF;
1828 
1829     ----------------------------
1830     -- Financial Reports
1831     ----------------------------
1832     IF((p_organization_obj.financial_report_objs IS NOT NULL) AND
1833        (p_organization_obj.financial_report_objs.COUNT > 0)) THEN
1834       create_financial_reports(
1835         p_fin_objs                  => p_organization_obj.financial_report_objs,
1836         p_organization_id           => x_organization_id,
1837         x_return_status             => x_return_status,
1838         x_msg_count                 => x_msg_count,
1839         x_msg_data                  => x_msg_data
1840       );
1841 
1842       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1843         RAISE FND_API.G_EXC_ERROR;
1844       END IF;
1845     END IF;
1846 
1847     -- raise event
1848     IF(l_raise_event) THEN
1849       HZ_PARTY_BO_PVT.call_bes(
1850         p_party_id         => x_organization_id,
1851         p_bo_code          => 'ORG',
1852         p_create_or_update => 'C',
1853         p_obj_source       => p_obj_source,
1854         p_event_id         => l_event_id
1855       );
1856     END IF;
1857 
1858     -- reset Global variable
1859     HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
1860     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
1861 
1862     -- Debug info.
1863     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1864          hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1865                                p_msg_data=>x_msg_data,
1866                                p_msg_type=>'WARNING',
1867                                p_msg_level=>fnd_log.level_exception);
1868     END IF;
1869     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1870         hz_utility_v2pub.debug(p_message=>'create_organization_bo(-)',
1871                                p_prefix=>l_debug_prefix,
1872                                p_msg_level=>fnd_log.level_procedure);
1873     END IF;
1874 
1875   EXCEPTION
1876     WHEN fnd_api.g_exc_error THEN
1877       ROLLBACK TO do_create_organization_bo_pub;
1878 
1879       -- reset Global variable
1880       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
1881       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
1882 
1883       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
1884       FND_MESSAGE.SET_TOKEN('OBJECT', 'ORG');
1885       FND_MSG_PUB.ADD;
1886 
1887       x_return_status := fnd_api.g_ret_sts_error;
1888 
1889       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1890                                 p_count => x_msg_count,
1891                                 p_data  => x_msg_data);
1892 
1893       -- Debug info.
1894       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1895         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1896                                p_msg_data=>x_msg_data,
1897                                p_msg_type=>'ERROR',
1898                                p_msg_level=>fnd_log.level_error);
1899       END IF;
1900       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1901         hz_utility_v2pub.debug(p_message=>'do_create_organization_bo(-)',
1902                                p_prefix=>l_debug_prefix,
1903                                p_msg_level=>fnd_log.level_procedure);
1904       END IF;
1905 
1906     WHEN fnd_api.g_exc_unexpected_error THEN
1907       ROLLBACK TO do_create_organization_bo_pub;
1908 
1909       -- reset Global variable
1910       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
1911       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
1912 
1913       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
1914       FND_MESSAGE.SET_TOKEN('OBJECT', 'ORG');
1915       FND_MSG_PUB.ADD;
1916 
1917       x_return_status := fnd_api.g_ret_sts_unexp_error;
1918 
1919       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1920                                 p_count => x_msg_count,
1921                                 p_data  => x_msg_data);
1922 
1923       -- Debug info.
1924       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1925         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1926                                p_msg_data=>x_msg_data,
1927                                p_msg_type=>'UNEXPECTED ERROR',
1928                                p_msg_level=>fnd_log.level_error);
1929       END IF;
1930       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1931         hz_utility_v2pub.debug(p_message=>'do_create_organization_bo(-)',
1932                                p_prefix=>l_debug_prefix,
1933                                p_msg_level=>fnd_log.level_procedure);
1934       END IF;
1935 
1936     WHEN OTHERS THEN
1937       ROLLBACK TO do_create_organization_bo_pub;
1938 
1939       -- reset Global variable
1940       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
1941       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
1942 
1943       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
1944       FND_MESSAGE.SET_TOKEN('OBJECT', 'ORG');
1945       FND_MSG_PUB.ADD;
1946 
1947       x_return_status := fnd_api.g_ret_sts_unexp_error;
1948 
1949       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1950       fnd_message.set_token('ERROR' ,SQLERRM);
1951       fnd_msg_pub.add;
1952 
1953       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1954                                 p_count => x_msg_count,
1955                                 p_data  => x_msg_data);
1956 
1957       -- Debug info.
1958       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1959         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1960                                p_msg_data=>x_msg_data,
1961                                p_msg_type=>'SQL ERROR',
1962                                p_msg_level=>fnd_log.level_error);
1963       END IF;
1964       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1965         hz_utility_v2pub.debug(p_message=>'do_create_organization_bo(-)',
1966                                p_prefix=>l_debug_prefix,
1967                                p_msg_level=>fnd_log.level_procedure);
1968       END IF;
1969   END do_create_organization_bo;
1970 
1971   PROCEDURE create_organization_bo(
1972     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
1973     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
1974     p_organization_obj    IN            HZ_ORGANIZATION_BO,
1975     p_created_by_module   IN            VARCHAR2,
1976     x_return_status       OUT NOCOPY    VARCHAR2,
1977     x_msg_count           OUT NOCOPY    NUMBER,
1978     x_msg_data            OUT NOCOPY    VARCHAR2,
1979     x_organization_id     OUT NOCOPY    NUMBER,
1980     x_organization_os     OUT NOCOPY    VARCHAR2,
1981     x_organization_osr    OUT NOCOPY    VARCHAR2
1982   ) IS
1983     l_org_obj             HZ_ORGANIZATION_BO;
1984   BEGIN
1985     l_org_obj := p_organization_obj;
1986     do_create_organization_bo(
1987       p_init_msg_list       => p_init_msg_list,
1988       p_validate_bo_flag    => p_validate_bo_flag,
1989       p_organization_obj    => l_org_obj,
1990       p_created_by_module   => p_created_by_module,
1991       p_obj_source          => null,
1992       x_return_status       => x_return_status,
1993       x_msg_count           => x_msg_count,
1994       x_msg_data            => x_msg_data,
1995       x_organization_id     => x_organization_id,
1996       x_organization_os     => x_organization_os,
1997       x_organization_osr    => x_organization_osr
1998     );
1999   END create_organization_bo;
2000 
2001   PROCEDURE create_organization_bo(
2002     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
2003     p_organization_obj    IN            HZ_ORGANIZATION_BO,
2004     p_created_by_module   IN            VARCHAR2,
2005     p_obj_source          IN            VARCHAR2 := null,
2006     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
2007     x_return_status       OUT NOCOPY    VARCHAR2,
2008     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
2009     x_return_obj          OUT NOCOPY    HZ_ORGANIZATION_BO,
2010     x_organization_id     OUT NOCOPY    NUMBER,
2011     x_organization_os     OUT NOCOPY    VARCHAR2,
2012     x_organization_osr    OUT NOCOPY    VARCHAR2
2013   ) IS
2014     l_msg_data            VARCHAR2(2000);
2015     l_msg_count           NUMBER;
2016     l_org_obj             HZ_ORGANIZATION_BO;
2017   BEGIN
2018     l_org_obj := p_organization_obj;
2019     do_create_organization_bo(
2020       p_init_msg_list       => fnd_api.g_true,
2021       p_validate_bo_flag    => p_validate_bo_flag,
2022       p_organization_obj    => l_org_obj,
2023       p_created_by_module   => p_created_by_module,
2024       p_obj_source          => p_obj_source,
2025       x_return_status       => x_return_status,
2026       x_msg_count           => l_msg_count,
2027       x_msg_data            => l_msg_data,
2028       x_organization_id     => x_organization_id,
2029       x_organization_os     => x_organization_os,
2030       x_organization_osr    => x_organization_osr
2031     );
2032     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
2033                     x_return_status   => x_return_status,
2034                     x_msg_count       => l_msg_count,
2035                     x_msg_data        => l_msg_data);
2036     IF FND_API.to_Boolean(p_return_obj_flag) THEN
2037       x_return_obj := l_org_obj;
2038     END IF;
2039   END create_organization_bo;
2040 
2041   -- PROCEDURE do_update_organization_bo
2042   --
2043   -- DESCRIPTION
2044   --     Update organization business object.
2045   PROCEDURE do_update_organization_bo(
2046     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
2047     p_organization_obj    IN OUT NOCOPY HZ_ORGANIZATION_BO,
2048     p_created_by_module   IN            VARCHAR2,
2049     p_obj_source          IN            VARCHAR2 := null,
2050     x_return_status       OUT NOCOPY    VARCHAR2,
2051     x_msg_count           OUT NOCOPY    NUMBER,
2052     x_msg_data            OUT NOCOPY    VARCHAR2,
2053     x_organization_id     OUT NOCOPY    NUMBER,
2054     x_organization_os     OUT NOCOPY    VARCHAR2,
2055     x_organization_osr    OUT NOCOPY    VARCHAR2
2056   )IS
2057     l_debug_prefix             VARCHAR2(30);
2058     l_organization_rec         HZ_PARTY_V2PUB.ORGANIZATION_REC_TYPE;
2059     l_create_update_flag       VARCHAR2(1);
2060     l_ovn                      NUMBER;
2061     l_dummy_id                 NUMBER;
2062     l_profile_id               NUMBER;
2063     l_errorcode                NUMBER;
2064     l_org_raise_event          BOOLEAN := FALSE;
2065     l_oc_raise_event           BOOLEAN := FALSE;
2066     l_cbm                      VARCHAR2(30);
2067     l_org_event_id             NUMBER;
2068     l_oc_event_id              NUMBER;
2069     l_sms_objs                 HZ_SMS_CP_BO_TBL;
2070     l_party_number             VARCHAR2(30);
2071 
2072     CURSOR get_ovn(l_party_id  NUMBER) IS
2073     SELECT p.object_version_number, p.party_number
2074     FROM HZ_PARTIES p
2075     WHERE p.party_id = l_party_id
2076     AND p.party_type = 'ORGANIZATION'
2077     AND p.status in ('A','I');
2078 
2079   BEGIN
2080     -- Standard start of API savepoint
2081     SAVEPOINT do_update_organization_bo_pub;
2082 
2083     -- initialize API return status to success.
2084     x_return_status := FND_API.G_RET_STS_SUCCESS;
2085 
2086     -- Initialize message list if p_init_msg_list is set to TRUE.
2087     IF FND_API.to_Boolean(p_init_msg_list) THEN
2088       FND_MSG_PUB.initialize;
2089     END IF;
2090 
2091     -- initialize Global variable
2092     HZ_UTILITY_V2PUB.G_CALLING_API := 'BO_API';
2093     IF(p_created_by_module IS NULL) THEN
2094       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := 'BO_API';
2095     ELSE
2096       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := p_created_by_module;
2097     END IF;
2098 
2099     -- Debug info.
2100     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2101         hz_utility_v2pub.debug(p_message=>'update_organization_bo(+)',
2102                                p_prefix=>l_debug_prefix,
2103                                p_msg_level=>fnd_log.level_procedure);
2104     END IF;
2105 
2106     x_organization_id := p_organization_obj.organization_id;
2107     x_organization_os := p_organization_obj.orig_system;
2108     x_organization_osr:= p_organization_obj.orig_system_reference;
2109 
2110     -- check input party_id and os+osr
2111     hz_registry_validate_bo_pvt.validate_ssm_id(
2112       px_id              => x_organization_id,
2113       px_os              => x_organization_os,
2114       px_osr             => x_organization_osr,
2115       p_obj_type         => 'ORGANIZATION',
2116       p_create_or_update => 'U',
2117       x_return_status    => x_return_status,
2118       x_msg_count        => x_msg_count,
2119       x_msg_data         => x_msg_data);
2120 
2121     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2122       RAISE FND_API.G_EXC_ERROR;
2123     END IF;
2124 
2125     -- must check after calling validate_ssm_id because
2126     -- if user pass os+osr and no id, validate_ssm_id will
2127     -- populate x_organization_id based on os+osr
2128     -- find out if raise event at the end
2129 
2130     -- if this procedure is called from org cust bo, set l_raise_event to false
2131     -- otherwise, call is_raising_update_event
2132     IF(HZ_PARTY_BO_PVT.G_CALL_UPDATE_CUST_BO IS NOT NULL) THEN
2133       l_org_raise_event := FALSE;
2134       l_oc_raise_event := FALSE;
2135     ELSE
2136       l_org_raise_event := HZ_PARTY_BO_PVT.is_raising_update_event(
2137                              p_party_id          => x_organization_id,
2138                              p_bo_code           => 'ORG'
2139                            );
2140 
2141       l_oc_raise_event := HZ_PARTY_BO_PVT.is_raising_update_event(
2142                             p_party_id          => x_organization_id,
2143                             p_bo_code           => 'ORG_CUST'
2144                           );
2145 
2146       IF(l_org_raise_event) THEN
2147         -- Get event_id for org
2148         SELECT HZ_BUS_OBJ_TRACKING_S.nextval
2149         INTO l_org_event_id
2150         FROM DUAL;
2151       END IF;
2152 
2153       IF(l_oc_raise_event) THEN
2154         -- Get event_id for org customer
2155         SELECT HZ_BUS_OBJ_TRACKING_S.nextval
2156         INTO l_oc_event_id
2157         FROM DUAL;
2158       END IF;
2159     END IF;
2160 
2161     OPEN get_ovn(x_organization_id);
2162     FETCH get_ovn INTO l_ovn, l_party_number;
2163     CLOSE get_ovn;
2164 
2165     --------------------------
2166     -- For Update Organization
2167     --------------------------
2168     -- Assign organization record
2169     assign_organization_rec(
2170       p_organization_obj  => p_organization_obj,
2171       p_organization_id   => x_organization_id,
2172       p_organization_os   => x_organization_os,
2173       p_organization_osr  => x_organization_osr,
2174       p_create_or_update  => 'U',
2175       px_organization_rec => l_organization_rec
2176     );
2177 
2178     HZ_PARTY_V2PUB.update_organization(
2179       p_organization_rec          => l_organization_rec,
2180       p_party_object_version_number  => l_ovn,
2181       x_profile_id                => l_profile_id,
2182       x_return_status             => x_return_status,
2183       x_msg_count                 => x_msg_count,
2184       x_msg_data                  => x_msg_data
2185     );
2186 
2187     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2188       RAISE FND_API.G_EXC_ERROR;
2189     END IF;
2190 
2191     -- assign organization party_id
2192     p_organization_obj.organization_id := x_organization_id;
2193     p_organization_obj.party_number := l_party_number;
2194     -----------------------------
2195     -- For Organization Ext Attrs
2196     -----------------------------
2197     IF((p_organization_obj.ext_attributes_objs IS NOT NULL) AND
2198        (p_organization_obj.ext_attributes_objs.COUNT > 0)) THEN
2199       HZ_EXT_ATTRIBUTE_BO_PVT.save_ext_attributes(
2200         p_ext_attr_objs             => p_organization_obj.ext_attributes_objs,
2201         p_parent_obj_id             => l_profile_id,
2202         p_parent_obj_type           => 'ORG',
2203         p_create_or_update          => 'U',
2204         x_return_status             => x_return_status,
2205         x_errorcode                 => l_errorcode,
2206         x_msg_count                 => x_msg_count,
2207         x_msg_data                  => x_msg_data
2208       );
2209 
2210       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2211         RAISE FND_API.G_EXC_ERROR;
2212       END IF;
2213     END IF;
2214 
2215     ----------------------------
2216     -- Party Preferences
2217     ----------------------------
2218     IF((p_organization_obj.preference_objs IS NOT NULL) AND
2219        (p_organization_obj.preference_objs.COUNT > 0)) THEN
2220       HZ_PARTY_BO_PVT.save_party_preferences(
2221         p_party_pref_objs           => p_organization_obj.preference_objs,
2222         p_party_id                  => x_organization_id,
2223         x_return_status             => x_return_status,
2224         x_msg_count                 => x_msg_count,
2225         x_msg_data                  => x_msg_data
2226       );
2227 
2228       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2229         RAISE FND_API.G_EXC_ERROR;
2230       END IF;
2231     END IF;
2232 
2233     ----------------------------
2234     -- Contact Preferences
2235     ----------------------------
2236     IF((p_organization_obj.contact_pref_objs IS NOT NULL) AND
2237        (p_organization_obj.contact_pref_objs.COUNT > 0)) THEN
2238       HZ_CONTACT_PREFERENCE_BO_PVT.save_contact_preferences(
2239         p_cp_pref_objs           => p_organization_obj.contact_pref_objs,
2240         p_contact_level_table_id => x_organization_id,
2241         p_contact_level_table    => 'HZ_PARTIES',
2242         x_return_status          => x_return_status,
2243         x_msg_count              => x_msg_count,
2244         x_msg_data               => x_msg_data
2245       );
2246 
2247       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2248         RAISE FND_API.G_EXC_ERROR;
2249       END IF;
2250     END IF;
2251 
2252     ----------------------------
2253     -- Relationship api
2254     ----------------------------
2255     IF((p_organization_obj.relationship_objs IS NOT NULL) AND
2256        (p_organization_obj.relationship_objs.COUNT > 0)) THEN
2257       HZ_PARTY_BO_PVT.save_relationships(
2258         p_rel_objs                  => p_organization_obj.relationship_objs,
2259         p_subject_id                => x_organization_id,
2260         p_subject_type              => 'ORGANIZATION',
2261         x_return_status             => x_return_status,
2262         x_msg_count                 => x_msg_count,
2263         x_msg_data                  => x_msg_data
2264       );
2265 
2266       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2267         RAISE FND_API.G_EXC_ERROR;
2268       END IF;
2269     END IF;
2270 
2271     ----------------------------
2272     -- Classification api
2273     ----------------------------
2274     IF((p_organization_obj.class_objs IS NOT NULL) AND
2275        (p_organization_obj.class_objs.COUNT > 0)) THEN
2276       HZ_PARTY_BO_PVT.save_classifications(
2277         p_code_assign_objs          => p_organization_obj.class_objs,
2278         p_owner_table_name          => 'HZ_PARTIES',
2279         p_owner_table_id            => x_organization_id,
2280         x_return_status             => x_return_status,
2281         x_msg_count                 => x_msg_count,
2282         x_msg_data                  => x_msg_data
2283       );
2284 
2285       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2286         RAISE FND_API.G_EXC_ERROR;
2287       END IF;
2288     END IF;
2289 
2290     l_cbm := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
2291 
2292     -----------------------------
2293     -- Create logical org contact
2294     -----------------------------
2295     IF((p_organization_obj.contact_objs IS NOT NULL) AND
2296        (p_organization_obj.contact_objs.COUNT > 0)) THEN
2297       HZ_ORG_CONTACT_BO_PVT.save_org_contacts(
2298         p_oc_objs            => p_organization_obj.contact_objs,
2299         p_create_update_flag => 'U',
2300         x_return_status      => x_return_status,
2301         x_msg_count          => x_msg_count,
2302         x_msg_data           => x_msg_data,
2303         p_parent_org_id      => x_organization_id,
2304         p_parent_org_os      => x_organization_os,
2305         p_parent_org_osr     => x_organization_osr
2306       );
2307 
2308       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2309         RAISE FND_API.G_EXC_ERROR;
2310       END IF;
2311     END IF;
2312 
2313     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
2314 
2315     -----------------
2316     -- For Party Site
2317     -----------------
2318     IF((p_organization_obj.party_site_objs IS NOT NULL) AND
2319        (p_organization_obj.party_site_objs.COUNT > 0)) THEN
2320       HZ_PARTY_SITE_BO_PVT.save_party_sites(
2321         p_ps_objs            => p_organization_obj.party_site_objs,
2322         p_create_update_flag => 'U',
2323         p_obj_source         => p_obj_source,
2324         x_return_status      => x_return_status,
2325         x_msg_count          => x_msg_count,
2326         x_msg_data           => x_msg_data,
2327         p_parent_id          => x_organization_id,
2328         p_parent_os          => x_organization_os,
2329         p_parent_osr         => x_organization_osr,
2330         p_parent_obj_type    => 'ORG'
2331       );
2332 
2333       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2334         RAISE FND_API.G_EXC_ERROR;
2335       END IF;
2336     END IF;
2337 
2338     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
2339 
2340     ---------------------
2341     -- For Contact Points
2342     ---------------------
2343     IF(((p_organization_obj.phone_objs IS NOT NULL) AND (p_organization_obj.phone_objs.COUNT > 0)) OR
2344        ((p_organization_obj.telex_objs IS NOT NULL) AND (p_organization_obj.telex_objs.COUNT > 0)) OR
2345        ((p_organization_obj.email_objs IS NOT NULL) AND (p_organization_obj.email_objs.COUNT > 0)) OR
2346        ((p_organization_obj.web_objs IS NOT NULL) AND (p_organization_obj.web_objs.COUNT > 0)) OR
2347        ((p_organization_obj.edi_objs IS NOT NULL) AND (p_organization_obj.edi_objs.COUNT > 0)) OR
2348        ((p_organization_obj.eft_objs IS NOT NULL) AND (p_organization_obj.eft_objs.COUNT > 0))) THEN
2349       HZ_CONTACT_POINT_BO_PVT.save_contact_points(
2350         p_phone_objs         => p_organization_obj.phone_objs,
2351         p_telex_objs         => p_organization_obj.telex_objs,
2352         p_email_objs         => p_organization_obj.email_objs,
2353         p_web_objs           => p_organization_obj.web_objs,
2354         p_edi_objs           => p_organization_obj.edi_objs,
2355         p_eft_objs           => p_organization_obj.eft_objs,
2356         p_sms_objs           => l_sms_objs,
2357         p_owner_table_id     => x_organization_id,
2358         p_owner_table_os     => x_organization_os,
2359         p_owner_table_osr    => x_organization_osr,
2360         p_parent_obj_type    => 'ORG',
2361         p_create_update_flag => 'U',
2362         p_obj_source         => p_obj_source,
2363         x_return_status      => x_return_status,
2364         x_msg_count          => x_msg_count,
2365         x_msg_data           => x_msg_data
2366       );
2367 
2368       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2369         RAISE FND_API.G_EXC_ERROR;
2370       END IF;
2371     END IF;
2372 
2373     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
2374 
2375     ---------------------
2376     -- Certifications
2377     ---------------------
2378     IF((p_organization_obj.certification_objs IS NOT NULL) AND
2379        (p_organization_obj.certification_objs.COUNT > 0)) THEN
2380       HZ_PARTY_BO_PVT.save_certifications(
2381         p_cert_objs          => p_organization_obj.certification_objs,
2382         p_party_id           => x_organization_id,
2383         x_return_status      => x_return_status,
2384         x_msg_count          => x_msg_count,
2385         x_msg_data           => x_msg_data
2386       );
2387 
2388       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2389         RAISE FND_API.G_EXC_ERROR;
2390       END IF;
2391     END IF;
2392 
2393     ---------------------
2394     -- Financial Profiles
2395     ---------------------
2396     IF((p_organization_obj.financial_prof_objs IS NOT NULL) AND
2397        (p_organization_obj.financial_prof_objs.COUNT > 0)) THEN
2398       HZ_PARTY_BO_PVT.save_financial_profiles(
2399         p_fin_prof_objs      => p_organization_obj.financial_prof_objs,
2400         p_party_id           => x_organization_id,
2401         x_return_status      => x_return_status,
2402         x_msg_count          => x_msg_count,
2403         x_msg_data           => x_msg_data
2404       );
2405 
2406       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2407         RAISE FND_API.G_EXC_ERROR;
2408       END IF;
2409     END IF;
2410 
2411 
2412     ----------------------------------
2413   --  Party Usages -------
2414   ----------------------------------
2415    IF ((p_organization_obj.party_usage_objs IS NOT NULL) AND
2416       (p_organization_obj.party_usage_objs.COUNT > 0 )) THEN
2417        HZ_PARTY_BO_PVT.save_party_usage_assgmnt(
2418 	   p_party_usg_objs				=> p_organization_obj.party_usage_objs,
2419 	   p_party_id					=> x_organization_id,
2420 	   x_return_status				=> x_return_status,
2421 	   x_msg_count					=> x_msg_count,
2422 	   x_msg_data					=> x_msg_data
2423 	   );
2424         IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2425         RAISE FND_API.G_EXC_ERROR;
2426       END IF;
2427     END IF;
2428 
2429 
2430     ----------------------------
2431     -- Credit Ratings
2432     ----------------------------
2433     IF((p_organization_obj.credit_rating_objs IS NOT NULL) AND
2434        (p_organization_obj.credit_rating_objs.COUNT > 0)) THEN
2435       save_credit_ratings(
2436         p_credit_rating_objs        => p_organization_obj.credit_rating_objs,
2437         p_organization_id           => x_organization_id,
2438         x_return_status             => x_return_status,
2439         x_msg_count                 => x_msg_count,
2440         x_msg_data                  => x_msg_data
2441       );
2442 
2443       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2444         RAISE FND_API.G_EXC_ERROR;
2445       END IF;
2446     END IF;
2447 
2448     ----------------------------
2449     -- Financial Reports
2450     ----------------------------
2451     IF((p_organization_obj.financial_report_objs IS NOT NULL) AND
2452        (p_organization_obj.financial_report_objs.COUNT > 0)) THEN
2453       save_financial_reports(
2454         p_fin_objs                  => p_organization_obj.financial_report_objs,
2455         p_organization_id           => x_organization_id,
2456         x_return_status             => x_return_status,
2457         x_msg_count                 => x_msg_count,
2458         x_msg_data                  => x_msg_data
2459       );
2460 
2461       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2462         RAISE FND_API.G_EXC_ERROR;
2463       END IF;
2464     END IF;
2465 
2466     -- raise update org event
2467     IF(l_org_raise_event) THEN
2468       HZ_PARTY_BO_PVT.call_bes(
2469         p_party_id         => x_organization_id,
2470         p_bo_code          => 'ORG',
2471         p_create_or_update => 'U',
2472         p_obj_source       => p_obj_source,
2473         p_event_id         => l_org_event_id
2474       );
2475     END IF;
2476 
2477     -- raise update org cust event
2478     IF(l_oc_raise_event) THEN
2479       HZ_PARTY_BO_PVT.call_bes(
2480         p_party_id         => x_organization_id,
2481         p_bo_code          => 'ORG_CUST',
2482         p_create_or_update => 'U',
2483         p_obj_source       => p_obj_source,
2484         p_event_id         => l_oc_event_id
2485       );
2486     END IF;
2487 
2488     -- reset Global variable
2489     HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2490     HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2491 
2492     -- Debug info.
2493     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
2494          hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2495                                p_msg_data=>x_msg_data,
2496                                p_msg_type=>'WARNING',
2497                                p_msg_level=>fnd_log.level_exception);
2498     END IF;
2499     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2500         hz_utility_v2pub.debug(p_message=>'do_update_organization_bo(-)',
2501                                p_prefix=>l_debug_prefix,
2502                                p_msg_level=>fnd_log.level_procedure);
2503     END IF;
2504   EXCEPTION
2505     WHEN fnd_api.g_exc_error THEN
2506       ROLLBACK TO do_update_organization_bo_pub;
2507 
2508       -- reset Global variable
2509       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2510       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2511 
2512       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
2513       FND_MESSAGE.SET_TOKEN('OBJECT', 'ORG');
2514       FND_MSG_PUB.ADD;
2515 
2516       x_return_status := fnd_api.g_ret_sts_error;
2517 
2518       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2519                                 p_count => x_msg_count,
2520                                 p_data  => x_msg_data);
2521 
2522       -- Debug info.
2523       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2524         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2525                                p_msg_data=>x_msg_data,
2526                                p_msg_type=>'ERROR',
2527                                p_msg_level=>fnd_log.level_error);
2528       END IF;
2529       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2530         hz_utility_v2pub.debug(p_message=>'do_update_organization_bo(-)',
2531                                p_prefix=>l_debug_prefix,
2532                                p_msg_level=>fnd_log.level_procedure);
2533       END IF;
2534 
2535 
2536     WHEN fnd_api.g_exc_unexpected_error THEN
2537       ROLLBACK TO do_update_organization_bo_pub;
2538 
2539       -- reset Global variable
2540       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2541       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2542 
2543       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
2544       FND_MESSAGE.SET_TOKEN('OBJECT', 'ORG');
2545       FND_MSG_PUB.ADD;
2546 
2547       x_return_status := fnd_api.g_ret_sts_unexp_error;
2548 
2549       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2550                                 p_count => x_msg_count,
2551                                 p_data  => x_msg_data);
2552 
2553       -- Debug info.
2554       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2555         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2556                                p_msg_data=>x_msg_data,
2557                                p_msg_type=>'UNEXPECTED ERROR',
2558                                p_msg_level=>fnd_log.level_error);
2559       END IF;
2560       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2561         hz_utility_v2pub.debug(p_message=>'do_update_organization_bo(-)',
2562                                p_prefix=>l_debug_prefix,
2563                                p_msg_level=>fnd_log.level_procedure);
2564       END IF;
2565     WHEN OTHERS THEN
2566       ROLLBACK TO do_update_organization_bo_pub;
2567 
2568       -- reset Global variable
2569       HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2570       HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2571 
2572       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
2573       FND_MESSAGE.SET_TOKEN('OBJECT', 'ORG');
2574       FND_MSG_PUB.ADD;
2575 
2576       x_return_status := fnd_api.g_ret_sts_unexp_error;
2577 
2578       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2579       fnd_message.set_token('ERROR' ,SQLERRM);
2580       fnd_msg_pub.add;
2581 
2582       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2583                                 p_count => x_msg_count,
2584                                 p_data  => x_msg_data);
2585 
2586       -- Debug info.
2587       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2588         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2589                                p_msg_data=>x_msg_data,
2590                                p_msg_type=>'SQL ERROR',
2591                                p_msg_level=>fnd_log.level_error);
2592       END IF;
2593       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2594         hz_utility_v2pub.debug(p_message=>'do_update_organization_bo(-)',
2595                                p_prefix=>l_debug_prefix,
2596                                p_msg_level=>fnd_log.level_procedure);
2597       END IF;
2598   END do_update_organization_bo;
2599 
2600   PROCEDURE update_organization_bo(
2601     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
2602     p_organization_obj    IN            HZ_ORGANIZATION_BO,
2603     p_created_by_module   IN            VARCHAR2,
2604     x_return_status       OUT NOCOPY    VARCHAR2,
2605     x_msg_count           OUT NOCOPY    NUMBER,
2606     x_msg_data            OUT NOCOPY    VARCHAR2,
2607     x_organization_id     OUT NOCOPY    NUMBER,
2608     x_organization_os     OUT NOCOPY    VARCHAR2,
2609     x_organization_osr    OUT NOCOPY    VARCHAR2
2610   ) IS
2611     l_org_obj             HZ_ORGANIZATION_BO;
2612   BEGIN
2613     l_org_obj := p_organization_obj;
2614     do_update_organization_bo(
2615       p_init_msg_list       => p_init_msg_list,
2616       p_organization_obj    => l_org_obj,
2617       p_created_by_module   => p_created_by_module,
2618       p_obj_source          => NULL,
2619       x_return_status       => x_return_status,
2620       x_msg_count           => x_msg_count,
2621       x_msg_data            => x_msg_data,
2622       x_organization_id     => x_organization_id,
2623       x_organization_os     => x_organization_os,
2624       x_organization_osr    => x_organization_osr
2625     );
2626   END update_organization_bo;
2627 
2628   PROCEDURE update_organization_bo(
2629     p_organization_obj    IN            HZ_ORGANIZATION_BO,
2630     p_created_by_module   IN            VARCHAR2,
2631     p_obj_source          IN            VARCHAR2 := null,
2632     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
2633     x_return_status       OUT NOCOPY    VARCHAR2,
2634     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
2635     x_return_obj          OUT NOCOPY    HZ_ORGANIZATION_BO,
2636     x_organization_id     OUT NOCOPY    NUMBER,
2637     x_organization_os     OUT NOCOPY    VARCHAR2,
2638     x_organization_osr    OUT NOCOPY    VARCHAR2
2639   )IS
2640     l_msg_data            VARCHAR2(2000);
2641     l_msg_count           NUMBER;
2642     l_org_obj             HZ_ORGANIZATION_BO;
2643   BEGIN
2644     l_org_obj := p_organization_obj;
2645     do_update_organization_bo(
2646       p_init_msg_list       => fnd_api.g_true,
2647       p_organization_obj    => l_org_obj,
2648       p_created_by_module   => p_created_by_module,
2649       p_obj_source          => p_obj_source,
2650       x_return_status       => x_return_status,
2651       x_msg_count           => l_msg_count,
2652       x_msg_data            => l_msg_data,
2653       x_organization_id     => x_organization_id,
2654       x_organization_os     => x_organization_os,
2655       x_organization_osr    => x_organization_osr
2656     );
2657     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
2658                     x_return_status   => x_return_status,
2659                     x_msg_count       => l_msg_count,
2660                     x_msg_data        => l_msg_data);
2661     IF FND_API.to_Boolean(p_return_obj_flag) THEN
2662       x_return_obj := l_org_obj;
2663     END IF;
2664   END update_organization_bo;
2665 
2666   -- PROCEDURE do_save_organization_bo
2667   --
2668   -- DESCRIPTION
2669   --     Create or update organization business object.
2670   PROCEDURE do_save_organization_bo(
2671     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
2672     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
2673     p_organization_obj    IN OUT NOCOPY HZ_ORGANIZATION_BO,
2674     p_created_by_module   IN            VARCHAR2,
2675     p_obj_source          IN            VARCHAR2 := null,
2676     x_return_status       OUT NOCOPY    VARCHAR2,
2677     x_msg_count           OUT NOCOPY    NUMBER,
2678     x_msg_data            OUT NOCOPY    VARCHAR2,
2679     x_organization_id     OUT NOCOPY    NUMBER,
2680     x_organization_os     OUT NOCOPY    VARCHAR2,
2681     x_organization_osr    OUT NOCOPY    VARCHAR2
2682   ) IS
2683     l_return_status            VARCHAR2(30);
2684     l_msg_count                NUMBER;
2685     l_msg_data                 VARCHAR2(2000);
2686     l_create_update_flag       VARCHAR2(1);
2687     l_debug_prefix             VARCHAR2(30);
2688   BEGIN
2689     -- initialize API return status to success.
2690     x_return_status := FND_API.G_RET_STS_SUCCESS;
2691 
2692     -- Initialize message list if p_init_msg_list is set to TRUE.
2693     IF FND_API.to_Boolean(p_init_msg_list) THEN
2694       FND_MSG_PUB.initialize;
2695     END IF;
2696 
2697     -- Debug info.
2698     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2699         hz_utility_v2pub.debug(p_message=>'do_save_organization_bo(+)',
2700                                p_prefix=>l_debug_prefix,
2701                                p_msg_level=>fnd_log.level_procedure);
2702     END IF;
2703 
2704     x_organization_id := p_organization_obj.organization_id;
2705     x_organization_os := p_organization_obj.orig_system;
2706     x_organization_osr:= p_organization_obj.orig_system_reference;
2707 
2708     -- check root business object to determine that it should be
2709     -- create or update, call HZ_REGISTRY_VALIDATE_BO_PVT
2710     l_create_update_flag := HZ_REGISTRY_VALIDATE_BO_PVT.check_bo_op(
2711                               p_entity_id      => x_organization_id,
2712                               p_entity_os      => x_organization_os,
2713                               p_entity_osr     => x_organization_osr,
2714                               p_entity_type    => 'HZ_PARTIES',
2715                               p_parent_id      => NULL,
2716                               p_parent_obj_type=> NULL );
2717 
2718     IF(l_create_update_flag = 'E') THEN
2719       FND_MESSAGE.SET_NAME('AR', 'HZ_API_INVALID_ID');
2720       FND_MSG_PUB.ADD;
2721       FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
2722       FND_MESSAGE.SET_TOKEN('OBJECT', 'ORG');
2723       FND_MSG_PUB.ADD;
2724       RAISE FND_API.G_EXC_ERROR;
2725     END IF;
2726 
2727     IF(l_create_update_flag = 'C') THEN
2728       do_create_organization_bo(
2729         p_init_msg_list      => fnd_api.g_false,
2730         p_validate_bo_flag   => p_validate_bo_flag,
2731         p_organization_obj   => p_organization_obj,
2732         p_created_by_module  => p_created_by_module,
2733         p_obj_source         => p_obj_source,
2734         x_return_status      => x_return_status,
2735         x_msg_count          => x_msg_count,
2736         x_msg_data           => x_msg_data,
2737         x_organization_id    => x_organization_id,
2738         x_organization_os    => x_organization_os,
2739         x_organization_osr   => x_organization_osr
2740       );
2741     ELSIF(l_create_update_flag = 'U') THEN
2742       do_update_organization_bo(
2743         p_init_msg_list      => fnd_api.g_false,
2744         p_organization_obj   => p_organization_obj,
2745         p_created_by_module  => p_created_by_module,
2746         p_obj_source         => p_obj_source,
2747         x_return_status      => x_return_status,
2748         x_msg_count          => x_msg_count,
2749         x_msg_data           => x_msg_data,
2750         x_organization_id    => x_organization_id,
2751         x_organization_os    => x_organization_os,
2752         x_organization_osr   => x_organization_osr
2753       );
2754     ELSE
2755       RAISE FND_API.G_EXC_ERROR;
2756     END IF;
2757 
2758     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2759       RAISE FND_API.G_EXC_ERROR;
2760     END IF;
2761 
2762     -- Debug info.
2763     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
2764          hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2765                                p_msg_data=>x_msg_data,
2766                                p_msg_type=>'WARNING',
2767                                p_msg_level=>fnd_log.level_exception);
2768     END IF;
2769     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2770         hz_utility_v2pub.debug(p_message=>'do_save_organization_bo(-)',
2771                                p_prefix=>l_debug_prefix,
2772                                p_msg_level=>fnd_log.level_procedure);
2773     END IF;
2774   EXCEPTION
2775     WHEN fnd_api.g_exc_error THEN
2776       x_return_status := fnd_api.g_ret_sts_error;
2777 
2778       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2779                                 p_count => x_msg_count,
2780                                 p_data  => x_msg_data);
2781 
2782       -- Debug info.
2783       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2784         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2785                                p_msg_data=>x_msg_data,
2786                                p_msg_type=>'ERROR',
2787                                p_msg_level=>fnd_log.level_error);
2788       END IF;
2789       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2790         hz_utility_v2pub.debug(p_message=>'do_save_organization_bo(-)',
2791                                p_prefix=>l_debug_prefix,
2792                                p_msg_level=>fnd_log.level_procedure);
2793       END IF;
2794 
2795     WHEN fnd_api.g_exc_unexpected_error THEN
2796       x_return_status := fnd_api.g_ret_sts_unexp_error;
2797 
2798       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2799                                 p_count => x_msg_count,
2800                                 p_data  => x_msg_data);
2801 
2802       -- Debug info.
2803       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2804         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2805                                p_msg_data=>x_msg_data,
2806                                p_msg_type=>'UNEXPECTED ERROR',
2807                                p_msg_level=>fnd_log.level_error);
2808       END IF;
2809       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2810         hz_utility_v2pub.debug(p_message=>'do_save_organization_bo(-)',
2811                                p_prefix=>l_debug_prefix,
2812                                p_msg_level=>fnd_log.level_procedure);
2813       END IF;
2814     WHEN OTHERS THEN
2815       x_return_status := fnd_api.g_ret_sts_unexp_error;
2816 
2817       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2818       fnd_message.set_token('ERROR' ,SQLERRM);
2819       fnd_msg_pub.add;
2820 
2821       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2822                                 p_count => x_msg_count,
2823                                 p_data  => x_msg_data);
2824 
2825       -- Debug info.
2826       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2827         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2828                                p_msg_data=>x_msg_data,
2829                                p_msg_type=>'SQL ERROR',
2830                                p_msg_level=>fnd_log.level_error);
2831       END IF;
2832       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2833         hz_utility_v2pub.debug(p_message=>'do_save_organization_bo(-)',
2834                                p_prefix=>l_debug_prefix,
2835                                p_msg_level=>fnd_log.level_procedure);
2836       END IF;
2837   END do_save_organization_bo;
2838 
2839   PROCEDURE save_organization_bo(
2840     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
2841     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
2842     p_organization_obj    IN            HZ_ORGANIZATION_BO,
2843     p_created_by_module   IN            VARCHAR2,
2844     x_return_status       OUT NOCOPY    VARCHAR2,
2845     x_msg_count           OUT NOCOPY    NUMBER,
2846     x_msg_data            OUT NOCOPY    VARCHAR2,
2847     x_organization_id     OUT NOCOPY    NUMBER,
2848     x_organization_os     OUT NOCOPY    VARCHAR2,
2849     x_organization_osr    OUT NOCOPY    VARCHAR2
2850   ) IS
2851     l_org_obj             HZ_ORGANIZATION_BO;
2852   BEGIN
2853     l_org_obj := p_organization_obj;
2854     do_save_organization_bo(
2855       p_init_msg_list       => p_init_msg_list,
2856       p_validate_bo_flag    => p_validate_bo_flag,
2857       p_organization_obj    => l_org_obj,
2858       p_created_by_module   => p_created_by_module,
2859       p_obj_source          => null,
2860       x_return_status       => x_return_status,
2861       x_msg_count           => x_msg_count,
2862       x_msg_data            => x_msg_data,
2863       x_organization_id     => x_organization_id,
2864       x_organization_os     => x_organization_os,
2865       x_organization_osr    => x_organization_osr
2866     );
2867   END save_organization_bo;
2868 
2869   PROCEDURE save_organization_bo(
2870     p_validate_bo_flag    IN            VARCHAR2 := fnd_api.g_true,
2871     p_organization_obj    IN            HZ_ORGANIZATION_BO,
2872     p_created_by_module   IN            VARCHAR2,
2873     p_obj_source          IN            VARCHAR2 := null,
2874     p_return_obj_flag         IN            VARCHAR2 := fnd_api.g_true,
2875     x_return_status       OUT NOCOPY    VARCHAR2,
2876     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL,
2877     x_return_obj          OUT NOCOPY    HZ_ORGANIZATION_BO,
2878     x_organization_id     OUT NOCOPY    NUMBER,
2879     x_organization_os     OUT NOCOPY    VARCHAR2,
2880     x_organization_osr    OUT NOCOPY    VARCHAR2
2881   ) IS
2882     l_msg_data            VARCHAR2(2000);
2883     l_msg_count           NUMBER;
2884     l_org_obj             HZ_ORGANIZATION_BO;
2885   BEGIN
2886     l_org_obj := p_organization_obj;
2887     do_save_organization_bo(
2888       p_init_msg_list       => fnd_api.g_true,
2889       p_validate_bo_flag    => p_validate_bo_flag,
2890       p_organization_obj    => l_org_obj,
2891       p_created_by_module   => p_created_by_module,
2892       p_obj_source          => p_obj_source,
2893       x_return_status       => x_return_status,
2894       x_msg_count           => l_msg_count,
2895       x_msg_data            => l_msg_data,
2896       x_organization_id     => x_organization_id,
2897       x_organization_os     => x_organization_os,
2898       x_organization_osr    => x_organization_osr
2899     );
2900     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
2901                     x_return_status   => x_return_status,
2902                     x_msg_count       => l_msg_count,
2903                     x_msg_data        => l_msg_data);
2904     IF FND_API.to_Boolean(p_return_obj_flag) THEN
2905       x_return_obj := l_org_obj;
2906     END IF;
2907   END save_organization_bo;
2908 
2909  --------------------------------------
2910   --
2911   -- PROCEDURE get_organization_bo
2912   --
2913   -- DESCRIPTION
2914   --     Get a logical organization.
2915   --
2916   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
2917   --
2918   -- ARGUMENTS
2919   --   IN:
2920   --     p_init_msg_list      Initialize message stack if it is set to   FND_API.G_TRUE. Default is FND_API.G_FALSE.
2921 --       p_organization_id          Organization ID.
2922  --     p_person_os           Org orig system.
2923   --     p_person_osr         Org orig system reference.
2924   --   OUT:
2925   --     x_organization_obj         Logical organization record.
2926   --     x_return_status      Return status after the call. The status can
2927   --                          be fnd_api.g_ret_sts_success (success),
2928   --                          fnd_api.g_ret_sts_error (error),
2929   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
2930   --     x_msg_count          Number of messages in message stack.
2931   --     x_msg_data           Message text if x_msg_count is 1.
2932   --
2933   -- NOTES
2934   --
2935   -- MODIFICATION HISTORY
2936   --
2937   --
2938   --   06-JUN-2005   AWU                Created.
2939   --
2940 
2941 /*
2942 The Get Organization API Procedure is a retrieval service that returns a full Organization business object.
2943 The user identifies a particular Organization business object using the TCA identifier and/or
2944 the object Source System information. Upon proper validation of the object,
2945 the full Organization business object is returned. The object consists of all data included within
2946 the Organization business object, at all embedded levels. This includes the set of all data stored
2947 in the TCA tables for each embedded entity.
2948 
2949 To retrieve the appropriate embedded business objects within the Organization business object,
2950 the Get procedure calls the equivalent procedure for the following embedded objects:
2951 
2952 Embedded BO	    Mandatory	Multiple Logical API Procedure		Comments
2953 Org Contact	N	Y	get_contact_bo
2954 Party Site	N	Y	get_party_site_bo
2955 Phone	N	Y	get_phone_bo
2956 Telex	N	Y	get_telex_bo
2957 Email	N	Y	get_email_bo
2958 Web	N	Y	get_web_bo
2959 EDI	N	Y	get_edi_bo
2960 EFT	N	Y	get_eft_bo
2961 Financial Report	N	Y		Business Structure. Included entities: HZ_FINANCIAL_REPORTS, HZ_FINANCIAL_NUMBERS
2962 
2963 
2964 To retrieve the appropriate embedded entities within the Organization business object,
2965 the Get procedure returns all records for the particular organization from these TCA entity tables:
2966 
2967 Embedded TCA Entity	Mandatory    Multiple	TCA Table Entities
2968 
2969 Party, Org Profile	Y		N	HZ_PARTIES, HZ_ORGANIZATION_PROFILES
2970 Org Preference		N		Y	HZ_PARTY_PREFERENCES
2971 Relationship		N		Y	HZ_RELATIONSHIPS
2972 Classification		N		Y	HZ_CODE_ASSIGNMENTS
2973 Credit Rating		N		Y	HZ_CREDIT_RATINGS
2974 Certification		N		Y	HZ_CERTIFICATIONS
2975 Financial Profile	N		Y	HZ_FINANCIAL_PROFILE
2976 
2977 */
2978 
2979 
2980  PROCEDURE get_organization_bo(
2981     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
2982     p_organization_id           IN            NUMBER,
2983     p_organization_os		IN	VARCHAR2,
2984     p_organization_osr		IN	VARCHAR2,
2985     x_organization_obj          OUT NOCOPY    HZ_ORGANIZATION_BO,
2986     x_return_status       OUT NOCOPY    VARCHAR2,
2987     x_msg_count           OUT NOCOPY    NUMBER,
2988     x_msg_data            OUT NOCOPY    VARCHAR2
2989   ) is
2990  l_debug_prefix              VARCHAR2(30) := '';
2991 
2992   l_organization_id  number;
2993   l_organization_os  varchar2(30);
2994   l_organization_osr varchar2(255);
2995 BEGIN
2996 
2997 	-- initialize API return status to success.
2998     	x_return_status := FND_API.G_RET_STS_SUCCESS;
2999 
3000     	-- Initialize message list if p_init_msg_list is set to TRUE
3001     	IF FND_API.to_Boolean(p_init_msg_list) THEN
3002       		FND_MSG_PUB.initialize;
3003     	END IF;
3004 
3005 
3006 	-- Debug info.
3007         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3008         	hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organization_bo(+)',
3009                                p_prefix=>l_debug_prefix,
3010                                p_msg_level=>fnd_log.level_procedure);
3011     	END IF;
3012 
3013     	-- check if pass in contact_point_id and/or os+osr
3014     	-- extraction validation logic is same as update
3015 
3016     	l_organization_id := p_organization_id;
3017     	l_organization_os := p_organization_os;
3018     	l_organization_osr := p_organization_osr;
3019 
3020     	HZ_EXTRACT_BO_UTIL_PVT.validate_ssm_id(
3021       		px_id              => l_organization_id,
3022       		px_os              => l_organization_os,
3023       		px_osr             => l_organization_osr,
3024       		p_obj_type         => 'ORGANIZATION',
3025       		x_return_status    => x_return_status,
3026       		x_msg_count        => x_msg_count,
3027       		x_msg_data         => x_msg_data);
3028 
3029     	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3030       		RAISE fnd_api.g_exc_error;
3031    	 END IF;
3032 
3033 	HZ_EXTRACT_ORGANIZATION_BO_PVT.get_organization_bo(
3034     		p_init_msg_list   => fnd_api.g_false,
3035     		p_organization_id => l_organization_id,
3036     		p_action_type	  => NULL,
3037     		x_organization_obj => x_organization_obj,
3038 		x_return_status => x_return_status,
3039 		x_msg_count => x_msg_count,
3040 		x_msg_data => x_msg_data);
3041 
3042 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3043       		RAISE FND_API.G_EXC_ERROR;
3044     	END IF;
3045 
3046 
3047 	-- Debug info.
3048     	IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
3049          	hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3050                                p_msg_data=>x_msg_data,
3051                                p_msg_type=>'WARNING',
3052                                p_msg_level=>fnd_log.level_exception);
3053     	END IF;
3054 
3055     	-- Debug info.
3056         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3057         	hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organization_bo (-)',
3058                                p_prefix=>l_debug_prefix,
3059                                p_msg_level=>fnd_log.level_procedure);
3060     	END IF;
3061 
3062 
3063  EXCEPTION
3064 
3065   WHEN fnd_api.g_exc_error THEN
3066       x_return_status := fnd_api.g_ret_sts_error;
3067 
3068       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3069                                 p_count => x_msg_count,
3070                                 p_data  => x_msg_data);
3071 
3072       -- Debug info.
3073       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3074         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3075                                p_msg_data=>x_msg_data,
3076                                p_msg_type=>'ERROR',
3077                                p_msg_level=>fnd_log.level_error);
3078       END IF;
3079       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3080         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organization_bo (-)',
3081                                p_prefix=>l_debug_prefix,
3082                                p_msg_level=>fnd_log.level_procedure);
3083       END IF;
3084     WHEN fnd_api.g_exc_unexpected_error THEN
3085       x_return_status := fnd_api.g_ret_sts_unexp_error;
3086 
3087       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3088                                 p_count => x_msg_count,
3089                                 p_data  => x_msg_data);
3090 
3091       -- Debug info.
3092       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3093         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3094                                p_msg_data=>x_msg_data,
3095                                p_msg_type=>'UNEXPECTED ERROR',
3096                                p_msg_level=>fnd_log.level_error);
3097       END IF;
3098       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3099         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organization_bo (-)',
3100                                p_prefix=>l_debug_prefix,
3101                                p_msg_level=>fnd_log.level_procedure);
3102       END IF;
3103     WHEN OTHERS THEN
3104       x_return_status := fnd_api.g_ret_sts_unexp_error;
3105 
3106       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
3107       fnd_message.set_token('ERROR' ,SQLERRM);
3108       fnd_msg_pub.add;
3109 
3110       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3111                                 p_count => x_msg_count,
3112                                 p_data  => x_msg_data);
3113 
3114       -- Debug info.
3115       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3116         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3117                                p_msg_data=>x_msg_data,
3118                                p_msg_type=>'SQL ERROR',
3119                                p_msg_level=>fnd_log.level_error);
3120       END IF;
3121       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3122         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organization_bo (-)',
3123                                p_prefix=>l_debug_prefix,
3124                                p_msg_level=>fnd_log.level_procedure);
3125       END IF;
3126 
3127 end;
3128 
3129  PROCEDURE get_organization_bo(
3130     p_organization_id           IN            NUMBER,
3131     p_organization_os           IN      VARCHAR2,
3132     p_organization_osr          IN      VARCHAR2,
3133     x_organization_obj          OUT NOCOPY    HZ_ORGANIZATION_BO,
3134     x_return_status       OUT NOCOPY    VARCHAR2,
3135     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL
3136   ) IS
3137     l_msg_data            VARCHAR2(2000);
3138     l_msg_count           NUMBER;
3139   BEGIN
3140     get_organization_bo(
3141       p_init_msg_list       => fnd_api.g_true,
3142       p_organization_id     => p_organization_id,
3143       p_organization_os     => p_organization_os,
3144       p_organization_osr    => p_organization_osr,
3145       x_organization_obj    => x_organization_obj,
3146       x_return_status       => x_return_status,
3147       x_msg_count           => l_msg_count,
3148       x_msg_data            => l_msg_data
3149     );
3150     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
3151                     x_return_status   => x_return_status,
3152                     x_msg_count       => l_msg_count,
3153                     x_msg_data        => l_msg_data);
3154   END get_organization_bo;
3155 
3156  --------------------------------------
3157   --
3158   -- PROCEDURE get_organizations_created
3159   --
3160   -- DESCRIPTION
3161   --The caller provides an identifier for the Organizations created business event and
3162   --the procedure returns database objects of the type HZ_ORGANIZATION_BO for all of
3163   --the Organization business objects from the business event.
3164 
3165   --
3166   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
3167   --
3168   -- ARGUMENTS
3169   --   IN:
3170   --     p_init_msg_list      Initialize message stack if it is set to
3171   --     p_event_id           BES Event identifier.
3172   --                          FND_API.G_TRUE. Default is FND_API.G_FALSE.
3173   --   OUT:
3174   --     x_organization_objs        One or more created logical organization.
3175   --     x_return_status      Return status after the call. The status can
3176   --                          be fnd_api.g_ret_sts_success (success),
3177   --                          fnd_api.g_ret_sts_error (error),
3178   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
3179   --     x_msg_count          Number of messages in message stack.
3180   --     x_msg_data           Message text if x_msg_count is 1.
3181   --
3182   -- NOTES
3183   --
3184   -- MODIFICATION HISTORY
3185   --
3186   --   06-JUN-2005    AWU                Created.
3187   --
3188 
3189 
3190 
3191 /*
3192 The Get Organizations Created procedure is a service to retrieve all of the Organization business objects
3193 whose creations have been captured by a logical business event. Each Organizations Created
3194 business event signifies that one or more Organization business objects have been created.
3195 The caller provides an identifier for the Organizations Created business event and the procedure
3196 returns all of the Organization business objects from the business event. For each business object
3197 creation captured in the business event, the procedure calls the generic Get operation:
3198 HZ_ORGANIZATION_BO_PVT.get_organization_bo
3199 
3200 Gathering all of the returned business objects from those API calls, the procedure packages
3201 them in a table structure and returns them to the caller.
3202 */
3203 
3204 
3205 PROCEDURE get_organizations_created(
3206     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
3207     p_event_id            IN           	NUMBER,
3208     x_organization_objs         OUT NOCOPY    HZ_ORGANIZATION_BO_TBL,
3209     x_return_status       OUT NOCOPY    VARCHAR2,
3210     x_msg_count           OUT NOCOPY    NUMBER,
3211     x_msg_data            OUT NOCOPY    VARCHAR2
3212   ) is
3213 l_debug_prefix              VARCHAR2(30) := '';
3214 begin
3215 
3216 	-- initialize API return status to success.
3217     	x_return_status := FND_API.G_RET_STS_SUCCESS;
3218 
3219     	-- Initialize message list if p_init_msg_list is set to TRUE
3220     	IF FND_API.to_Boolean(p_init_msg_list) THEN
3221       		FND_MSG_PUB.initialize;
3222     	END IF;
3223 
3224 
3225 	-- Debug info.
3226         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3227         	hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organizations_created(+)',
3228                                p_prefix=>l_debug_prefix,
3229                                p_msg_level=>fnd_log.level_procedure);
3230     	END IF;
3231 
3232 	HZ_EXTRACT_BO_UTIL_PVT.validate_event_id(p_event_id => p_event_id,
3233 			    p_party_id => null,
3234 			    p_event_type => 'C',
3235 			    p_bo_code => 'ORG',
3236 			    x_return_status => x_return_status);
3237 
3238 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3239       		RAISE FND_API.G_EXC_ERROR;
3240     	END IF;
3241 
3242 	HZ_EXTRACT_ORGANIZATION_BO_PVT.get_organizations_created(
3243     		p_init_msg_list => fnd_api.g_false,
3244 		p_event_id => p_event_id,
3245     		x_organization_objs  => x_organization_objs,
3246 		x_return_status => x_return_status,
3247 		x_msg_count => x_msg_count,
3248 		x_msg_data => x_msg_data);
3249 
3250 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3251       		RAISE FND_API.G_EXC_ERROR;
3252     	END IF;
3253 
3254 
3255 
3256 	-- Debug info.
3257     	IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
3258          	hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3259                                p_msg_data=>x_msg_data,
3260                                p_msg_type=>'WARNING',
3261                                p_msg_level=>fnd_log.level_exception);
3262     	END IF;
3263 
3264     	-- Debug info.
3265         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3266         	hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organizations_created (-)',
3267                                p_prefix=>l_debug_prefix,
3268                                p_msg_level=>fnd_log.level_procedure);
3269     	END IF;
3270 
3271 
3272  EXCEPTION
3273 
3274   WHEN fnd_api.g_exc_error THEN
3275       x_return_status := fnd_api.g_ret_sts_error;
3276 
3277       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3278                                 p_count => x_msg_count,
3279                                 p_data  => x_msg_data);
3280 
3281       -- Debug info.
3282       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3283         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3284                                p_msg_data=>x_msg_data,
3285                                p_msg_type=>'ERROR',
3286                                p_msg_level=>fnd_log.level_error);
3287       END IF;
3288       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3289         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organizations_created(-)',
3290                                p_prefix=>l_debug_prefix,
3291                                p_msg_level=>fnd_log.level_procedure);
3292       END IF;
3293     WHEN fnd_api.g_exc_unexpected_error THEN
3294       x_return_status := fnd_api.g_ret_sts_unexp_error;
3295 
3296       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3297                                 p_count => x_msg_count,
3298                                 p_data  => x_msg_data);
3299 
3300       -- Debug info.
3301       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3302         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3303                                p_msg_data=>x_msg_data,
3304                                p_msg_type=>'UNEXPECTED ERROR',
3305                                p_msg_level=>fnd_log.level_error);
3306       END IF;
3307       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3308         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organizations_created(-)',
3309                                p_prefix=>l_debug_prefix,
3310                                p_msg_level=>fnd_log.level_procedure);
3311       END IF;
3312     WHEN OTHERS THEN
3313       x_return_status := fnd_api.g_ret_sts_unexp_error;
3314 
3315       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
3316       fnd_message.set_token('ERROR' ,SQLERRM);
3317       fnd_msg_pub.add;
3318 
3319       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3320                                 p_count => x_msg_count,
3321                                 p_data  => x_msg_data);
3322 
3323       -- Debug info.
3324       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3325         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3326                                p_msg_data=>x_msg_data,
3327                                p_msg_type=>'SQL ERROR',
3328                                p_msg_level=>fnd_log.level_error);
3329       END IF;
3330       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3331         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organizations_created(-)',
3332                                p_prefix=>l_debug_prefix,
3333                                p_msg_level=>fnd_log.level_procedure);
3334       END IF;
3335 
3336 end;
3337 
3338   PROCEDURE get_organizations_created(
3339     p_event_id            IN            NUMBER,
3340     x_organization_objs   OUT NOCOPY    HZ_ORGANIZATION_BO_TBL,
3341     x_return_status       OUT NOCOPY    VARCHAR2,
3342     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL
3343   ) is
3344     l_msg_data            VARCHAR2(2000);
3345     l_msg_count           NUMBER;
3346   BEGIN
3347     get_organizations_created(
3348       p_init_msg_list       => fnd_api.g_true,
3349       p_event_id            => p_event_id,
3350       x_organization_objs   => x_organization_objs,
3351       x_return_status       => x_return_status,
3352       x_msg_count           => l_msg_count,
3353       x_msg_data            => l_msg_data);
3354     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
3355                     x_return_status   => x_return_status,
3356                     x_msg_count       => l_msg_count,
3357                     x_msg_data        => l_msg_data);
3358   END get_organizations_created;
3359 
3360 
3361 
3362 --------------------------------------
3363   --
3364   -- PROCEDURE get_organizations_updated
3365   --
3366   -- DESCRIPTION
3367   --The caller provides an identifier for the Organizations update business event and
3368   --the procedure returns database objects of the type HZ_ORGANIZATION_BO for all of
3369   --the Organization business objects from the business event.
3370 
3371   --
3372   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
3373   --
3374   -- ARGUMENTS
3375   --   IN:
3376   --     p_init_msg_list      Initialize message stack if it is set to
3377   --     p_event_id           BES Event identifier.
3378   --                          FND_API.G_TRUE. Default is FND_API.G_FALSE.
3379   --   OUT:
3380   --     x_organization_objs        One or more created logical organization.
3381   --     x_return_status      Return status after the call. The status can
3382   --                          be fnd_api.g_ret_sts_success (success),
3383   --                          fnd_api.g_ret_sts_error (error),
3384   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
3385   --     x_msg_count          Number of messages in message stack.
3386   --     x_msg_data           Message text if x_msg_count is 1.
3387   --
3388   -- NOTES
3389   --
3390   -- MODIFICATION HISTORY
3391   --
3392   --   06-JUN-2005     AWU                Created.
3393   --
3394 
3395 
3396 
3397 /*
3398 The Get Organizations Updated procedure is a service to retrieve all of the Organization business objects
3399 whose updates have been captured by the logical business event. Each Organizations Updated business event
3400 signifies that one or more Organization business objects have been updated.
3401 The caller provides an identifier for the Organizations Update business event and the procedure returns
3402 database objects of the type HZ_ORGANIZATION_BO for all of the Organization business objects from the
3403 business event.
3404 Gathering all of the returned database objects from those API calls, the procedure packages them in a table
3405 structure and returns them to the caller.
3406 */
3407 
3408  PROCEDURE get_organizations_updated(
3409     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
3410     p_event_id            IN           	NUMBER,
3411     x_organization_objs         OUT NOCOPY    HZ_ORGANIZATION_BO_TBL,
3412     x_return_status       OUT NOCOPY    VARCHAR2,
3413     x_msg_count           OUT NOCOPY    NUMBER,
3414     x_msg_data            OUT NOCOPY    VARCHAR2
3415   ) is
3416 
3417 l_debug_prefix              VARCHAR2(30) := '';
3418 begin
3419 
3420 	-- initialize API return status to success.
3421     	x_return_status := FND_API.G_RET_STS_SUCCESS;
3422 
3423     	-- Initialize message list if p_init_msg_list is set to TRUE
3424     	IF FND_API.to_Boolean(p_init_msg_list) THEN
3425       		FND_MSG_PUB.initialize;
3426     	END IF;
3427 
3428 
3429 	-- Debug info.
3430         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3431         	hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organizations_updated(+)',
3432                                p_prefix=>l_debug_prefix,
3433                                p_msg_level=>fnd_log.level_procedure);
3434     	END IF;
3435 
3436 	HZ_EXTRACT_BO_UTIL_PVT.validate_event_id(p_event_id => p_event_id,
3437 			    p_party_id => null,
3438 			    p_event_type => 'U',
3439 			    p_bo_code => 'ORG',
3440 			    x_return_status => x_return_status);
3441 
3442 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3443       		RAISE FND_API.G_EXC_ERROR;
3444     	END IF;
3445 
3446 	HZ_EXTRACT_ORGANIZATION_BO_PVT.get_organizations_updated(
3447     		p_init_msg_list => fnd_api.g_false,
3448 		p_event_id => p_event_id,
3449     		x_organization_objs  => x_organization_objs,
3450 		x_return_status => x_return_status,
3451 		x_msg_count => x_msg_count,
3452 		x_msg_data => x_msg_data);
3453 
3454 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3455       		RAISE FND_API.G_EXC_ERROR;
3456     	END IF;
3457 
3458 
3459 
3460 	-- Debug info.
3461     	IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
3462          	hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3463                                p_msg_data=>x_msg_data,
3464                                p_msg_type=>'WARNING',
3465                                p_msg_level=>fnd_log.level_exception);
3466     	END IF;
3467 
3468     	-- Debug info.
3469         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3470         	hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organizations_updated (-)',
3471                                p_prefix=>l_debug_prefix,
3472                                p_msg_level=>fnd_log.level_procedure);
3473     	END IF;
3474 
3475 
3476  EXCEPTION
3477 
3478   WHEN fnd_api.g_exc_error THEN
3479       x_return_status := fnd_api.g_ret_sts_error;
3480 
3481       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3482                                 p_count => x_msg_count,
3483                                 p_data  => x_msg_data);
3484 
3485       -- Debug info.
3486       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3487         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3488                                p_msg_data=>x_msg_data,
3489                                p_msg_type=>'ERROR',
3490                                p_msg_level=>fnd_log.level_error);
3491       END IF;
3492       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3493         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organizations_updated(-)',
3494                                p_prefix=>l_debug_prefix,
3495                                p_msg_level=>fnd_log.level_procedure);
3496       END IF;
3497     WHEN fnd_api.g_exc_unexpected_error THEN
3498       x_return_status := fnd_api.g_ret_sts_unexp_error;
3499 
3500       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3501                                 p_count => x_msg_count,
3502                                 p_data  => x_msg_data);
3503 
3504       -- Debug info.
3505       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3506         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3507                                p_msg_data=>x_msg_data,
3508                                p_msg_type=>'UNEXPECTED ERROR',
3509                                p_msg_level=>fnd_log.level_error);
3510       END IF;
3511       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3512         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organizations_updated(-)',
3513                                p_prefix=>l_debug_prefix,
3514                                p_msg_level=>fnd_log.level_procedure);
3515       END IF;
3516     WHEN OTHERS THEN
3517       x_return_status := fnd_api.g_ret_sts_unexp_error;
3518 
3519       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
3520       fnd_message.set_token('ERROR' ,SQLERRM);
3521       fnd_msg_pub.add;
3522 
3523       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3524                                 p_count => x_msg_count,
3525                                 p_data  => x_msg_data);
3526 
3527       -- Debug info.
3528       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3529         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3530                                p_msg_data=>x_msg_data,
3531                                p_msg_type=>'SQL ERROR',
3532                                p_msg_level=>fnd_log.level_error);
3533       END IF;
3534       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3535         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organizations_updated(-)',
3536                                p_prefix=>l_debug_prefix,
3537                                p_msg_level=>fnd_log.level_procedure);
3538       END IF;
3539 
3540 end;
3541 
3542   PROCEDURE get_organizations_updated(
3543     p_event_id            IN            NUMBER,
3544     x_organization_objs   OUT NOCOPY    HZ_ORGANIZATION_BO_TBL,
3545     x_return_status       OUT NOCOPY    VARCHAR2,
3546     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL
3547   ) IS
3548     l_msg_data            VARCHAR2(2000);
3549     l_msg_count           NUMBER;
3550   BEGIN
3551     get_organizations_updated(
3552       p_init_msg_list       => fnd_api.g_true,
3553       p_event_id            => p_event_id,
3554       x_organization_objs   => x_organization_objs,
3555       x_return_status       => x_return_status,
3556       x_msg_count           => l_msg_count,
3557       x_msg_data            => l_msg_data);
3558     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
3559                     x_return_status   => x_return_status,
3560                     x_msg_count       => l_msg_count,
3561                     x_msg_data        => l_msg_data);
3562   END get_organizations_updated;
3563 
3564 
3565 
3566 --------------------------------------
3567   --
3568   -- PROCEDURE get_organization_updated
3569   --
3570   -- DESCRIPTION
3571   --The caller provides an identifier for the Organizations update business event and organization id
3572   --the procedure returns one database object of the type HZ_ORGANIZATION_BO
3573   --
3574   -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
3575   --
3576   -- ARGUMENTS
3577   --   IN:
3578   --     p_init_msg_list      Initialize message stack if it is set to
3579   --     p_event_id           BES Event identifier.
3580   --                          FND_API.G_TRUE. Default is FND_API.G_FALSE.
3581   --   OUT:
3582   --     x_organization_objs        One or more created logical organization.
3583   --     x_return_status      Return status after the call. The status can
3584   --                          be fnd_api.g_ret_sts_success (success),
3585   --                          fnd_api.g_ret_sts_error (error),
3586   --                          FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
3587   --     x_msg_count          Number of messages in message stack.
3588   --     x_msg_data           Message text if x_msg_count is 1.
3589   --
3590   -- NOTES
3591   --
3592   -- MODIFICATION HISTORY
3593   --
3594   --   06-JUN-2005     AWU                Created.
3595   --
3596 
3597 PROCEDURE get_organization_updated(
3598     p_init_msg_list       IN            VARCHAR2 := fnd_api.g_false,
3599     p_event_id            IN           	NUMBER,
3600     p_organization_id     IN           NUMBER,
3601     x_organization_obj    OUT NOCOPY   HZ_ORGANIZATION_BO,
3602     x_return_status       OUT NOCOPY    VARCHAR2,
3603     x_msg_count           OUT NOCOPY    NUMBER,
3604     x_msg_data            OUT NOCOPY    VARCHAR2
3605   )  is
3606 l_debug_prefix              VARCHAR2(30) := '';
3607 begin
3608 
3609 	-- initialize API return status to success.
3610     	x_return_status := FND_API.G_RET_STS_SUCCESS;
3611 
3612     	-- Initialize message list if p_init_msg_list is set to TRUE
3613     	IF FND_API.to_Boolean(p_init_msg_list) THEN
3614       		FND_MSG_PUB.initialize;
3615     	END IF;
3616 
3617 
3618 	-- Debug info.
3619         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3620         	hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organization_updated(+)',
3621                                p_prefix=>l_debug_prefix,
3622                                p_msg_level=>fnd_log.level_procedure);
3623     	END IF;
3624 
3625 	HZ_EXTRACT_BO_UTIL_PVT.validate_event_id(p_event_id => p_event_id,
3626 			    p_party_id => p_organization_id,
3627 			    p_event_type => 'U',
3628 			    p_bo_code => 'ORG',
3629 			    x_return_status => x_return_status);
3630 
3631 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3632       		RAISE FND_API.G_EXC_ERROR;
3633     	END IF;
3634 
3635 	HZ_EXTRACT_ORGANIZATION_BO_PVT.get_organization_updated(
3636     		p_init_msg_list => fnd_api.g_false,
3637 		p_event_id => p_event_id,
3638 		p_organization_id  => p_organization_id,
3639     		x_organization_obj  => x_organization_obj,
3640 		x_return_status => x_return_status,
3641 		x_msg_count => x_msg_count,
3642 		x_msg_data => x_msg_data);
3643 
3644 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3645       		RAISE FND_API.G_EXC_ERROR;
3646     	END IF;
3647 
3648 
3649 
3650 	-- Debug info.
3651     	IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
3652          	hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3653                                p_msg_data=>x_msg_data,
3654                                p_msg_type=>'WARNING',
3655                                p_msg_level=>fnd_log.level_exception);
3656     	END IF;
3657 
3658     	-- Debug info.
3659         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3660         	hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organization_updated (-)',
3661                                p_prefix=>l_debug_prefix,
3662                                p_msg_level=>fnd_log.level_procedure);
3663     	END IF;
3664 
3665 
3666  EXCEPTION
3667 
3668   WHEN fnd_api.g_exc_error THEN
3669       x_return_status := fnd_api.g_ret_sts_error;
3670 
3671       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3672                                 p_count => x_msg_count,
3673                                 p_data  => x_msg_data);
3674 
3675       -- Debug info.
3676       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3677         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3678                                p_msg_data=>x_msg_data,
3679                                p_msg_type=>'ERROR',
3680                                p_msg_level=>fnd_log.level_error);
3681       END IF;
3682       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3683         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organization_updated(-)',
3684                                p_prefix=>l_debug_prefix,
3685                                p_msg_level=>fnd_log.level_procedure);
3686       END IF;
3687     WHEN fnd_api.g_exc_unexpected_error THEN
3688       x_return_status := fnd_api.g_ret_sts_unexp_error;
3689 
3690       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3691                                 p_count => x_msg_count,
3692                                 p_data  => x_msg_data);
3693 
3694       -- Debug info.
3695       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3696         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3697                                p_msg_data=>x_msg_data,
3698                                p_msg_type=>'UNEXPECTED ERROR',
3699                                p_msg_level=>fnd_log.level_error);
3700       END IF;
3701       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3702         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organization_updated(-)',
3703                                p_prefix=>l_debug_prefix,
3704                                p_msg_level=>fnd_log.level_procedure);
3705       END IF;
3706     WHEN OTHERS THEN
3707       x_return_status := fnd_api.g_ret_sts_unexp_error;
3708 
3709       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
3710       fnd_message.set_token('ERROR' ,SQLERRM);
3711       fnd_msg_pub.add;
3712 
3713       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3714                                 p_count => x_msg_count,
3715                                 p_data  => x_msg_data);
3716 
3717       -- Debug info.
3718       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3719         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3720                                p_msg_data=>x_msg_data,
3721                                p_msg_type=>'SQL ERROR',
3722                                p_msg_level=>fnd_log.level_error);
3723       END IF;
3724       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3725         hz_utility_v2pub.debug(p_message=>'hz_organization_bo_pub.get_organization_updated(-)',
3726                                p_prefix=>l_debug_prefix,
3727                                p_msg_level=>fnd_log.level_procedure);
3728       END IF;
3729 
3730 end;
3731 
3732   PROCEDURE get_organization_updated(
3733     p_event_id            IN            NUMBER,
3734     p_organization_id     IN           NUMBER,
3735     x_organization_obj    OUT NOCOPY   HZ_ORGANIZATION_BO,
3736     x_return_status       OUT NOCOPY    VARCHAR2,
3737     x_messages            OUT NOCOPY    HZ_MESSAGE_OBJ_TBL
3738   ) IS
3739     l_msg_data            VARCHAR2(2000);
3740     l_msg_count           NUMBER;
3741   BEGIN
3742     get_organization_updated(
3743       p_init_msg_list       => fnd_api.g_true,
3744       p_event_id            => p_event_id,
3745       p_organization_id     => p_organization_id,
3746       x_organization_obj    => x_organization_obj,
3747       x_return_status       => x_return_status,
3748       x_msg_count           => l_msg_count,
3749       x_msg_data            => l_msg_data);
3750     x_messages := HZ_PARTY_BO_PVT.return_all_messages(
3751                     x_return_status   => x_return_status,
3752                     x_msg_count       => l_msg_count,
3753                     x_msg_data        => l_msg_data);
3754   END get_organization_updated;
3755 
3756 
3757 
3758 -- get TCA identifiers for create event
3759 PROCEDURE get_ids_organizations_created (
3760 	p_init_msg_list		IN	VARCHAR2 := fnd_api.g_false,
3761 	p_event_id		IN	NUMBER,
3762 	x_organization_ids		OUT NOCOPY	HZ_EXTRACT_BO_UTIL_PVT.BO_ID_TBL,
3763   	x_return_status       OUT NOCOPY    VARCHAR2,
3764 	x_msg_count		OUT NOCOPY	NUMBER,
3765 	x_msg_data		OUT NOCOPY	VARCHAR2
3766 
3767 ) is
3768 l_debug_prefix              VARCHAR2(30) := '';
3769 
3770 begin
3771 	-- initialize API return status to success.
3772     	x_return_status := FND_API.G_RET_STS_SUCCESS;
3773 
3774     	-- Initialize message list if p_init_msg_list is set to TRUE
3775     	IF FND_API.to_Boolean(p_init_msg_list) THEN
3776       		FND_MSG_PUB.initialize;
3777     	END IF;
3778 
3779 
3780 	-- Debug info.
3781         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3782         	hz_utility_v2pub.debug(p_message=>'get_ids_organizations_created(+)',
3783                                p_prefix=>l_debug_prefix,
3784                                p_msg_level=>fnd_log.level_procedure);
3785     	END IF;
3786 
3787 	HZ_EXTRACT_BO_UTIL_PVT.validate_event_id(p_event_id => p_event_id,
3788 			    p_party_id => null,
3789 			    p_event_type => 'C',
3790 			    p_bo_code => 'ORG',
3791 			    x_return_status => x_return_status);
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 	HZ_EXTRACT_BO_UTIL_PVT.get_bo_root_ids(
3798     	p_init_msg_list       => fnd_api.g_false,
3799     	p_event_id            => p_event_id,
3800     	x_obj_root_ids        => x_organization_ids,
3801    	x_return_status => x_return_status,
3802 	x_msg_count => x_msg_count,
3803 	x_msg_data => x_msg_data);
3804 
3805 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3806       		RAISE FND_API.G_EXC_ERROR;
3807     	END IF;
3808 
3809 
3810 	-- Debug info.
3811     	IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
3812          	hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3813                                p_msg_data=>x_msg_data,
3814                                p_msg_type=>'WARNING',
3815                                p_msg_level=>fnd_log.level_exception);
3816     	END IF;
3817 
3818     	-- Debug info.
3819         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3820         	hz_utility_v2pub.debug(p_message=>'get_ids_organizations_created (-)',
3821                                p_prefix=>l_debug_prefix,
3822                                p_msg_level=>fnd_log.level_procedure);
3823     	END IF;
3824 
3825 
3826  EXCEPTION
3827 
3828   WHEN fnd_api.g_exc_error THEN
3829       x_return_status := fnd_api.g_ret_sts_error;
3830 
3831       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3832                                 p_count => x_msg_count,
3833                                 p_data  => x_msg_data);
3834 
3835       -- Debug info.
3836       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3837         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3838                                p_msg_data=>x_msg_data,
3839                                p_msg_type=>'ERROR',
3840                                p_msg_level=>fnd_log.level_error);
3841       END IF;
3842       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3843         hz_utility_v2pub.debug(p_message=>'get_ids_organizations_created(-)',
3844                                p_prefix=>l_debug_prefix,
3845                                p_msg_level=>fnd_log.level_procedure);
3846       END IF;
3847     WHEN fnd_api.g_exc_unexpected_error THEN
3848       x_return_status := fnd_api.g_ret_sts_unexp_error;
3849 
3850       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3851                                 p_count => x_msg_count,
3852                                 p_data  => x_msg_data);
3853 
3854       -- Debug info.
3855       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3856         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3857                                p_msg_data=>x_msg_data,
3858                                p_msg_type=>'UNEXPECTED ERROR',
3859                                p_msg_level=>fnd_log.level_error);
3860       END IF;
3861       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3862         hz_utility_v2pub.debug(p_message=>'get_ids_organizations_created(-)',
3863                                p_prefix=>l_debug_prefix,
3864                                p_msg_level=>fnd_log.level_procedure);
3865       END IF;
3866     WHEN OTHERS THEN
3867       x_return_status := fnd_api.g_ret_sts_unexp_error;
3868 
3869       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
3870       fnd_message.set_token('ERROR' ,SQLERRM);
3871       fnd_msg_pub.add;
3872 
3873       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3874                                 p_count => x_msg_count,
3875                                 p_data  => x_msg_data);
3876 
3877       -- Debug info.
3878       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3879         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3880                                p_msg_data=>x_msg_data,
3881                                p_msg_type=>'SQL ERROR',
3882                                p_msg_level=>fnd_log.level_error);
3883       END IF;
3884       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3885         hz_utility_v2pub.debug(p_message=>'get_ids_organizations_created(-)',
3886                                p_prefix=>l_debug_prefix,
3887                                p_msg_level=>fnd_log.level_procedure);
3888       END IF;
3889 
3890 end;
3891 
3892 
3893 -- get TCA identifiers for update event
3894 PROCEDURE get_ids_organizations_updated (
3895 	p_init_msg_list		IN	VARCHAR2 := fnd_api.g_false,
3896 	p_event_id		IN	NUMBER,
3897 	x_organization_ids		OUT NOCOPY	HZ_EXTRACT_BO_UTIL_PVT.BO_ID_TBL,
3898   	x_return_status       OUT NOCOPY    VARCHAR2,
3899 	x_msg_count		OUT NOCOPY	NUMBER,
3900 	x_msg_data		OUT NOCOPY	VARCHAR2
3901 ) is
3902 l_debug_prefix              VARCHAR2(30) := '';
3903 
3904 begin
3905 	-- initialize API return status to success.
3906     	x_return_status := FND_API.G_RET_STS_SUCCESS;
3907 
3908     	-- Initialize message list if p_init_msg_list is set to TRUE
3909     	IF FND_API.to_Boolean(p_init_msg_list) THEN
3910       		FND_MSG_PUB.initialize;
3911     	END IF;
3912 
3913 
3914 	-- Debug info.
3915         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3916         	hz_utility_v2pub.debug(p_message=>'get_ids_organizations_updated(+)',
3917                                p_prefix=>l_debug_prefix,
3918                                p_msg_level=>fnd_log.level_procedure);
3919     	END IF;
3920 
3921 	HZ_EXTRACT_BO_UTIL_PVT.validate_event_id(p_event_id => p_event_id,
3922 			    p_party_id => null,
3923 			    p_event_type => 'U',
3924 			    p_bo_code => 'ORG',
3925 			    x_return_status => x_return_status);
3926 
3927 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3928       		RAISE FND_API.G_EXC_ERROR;
3929     	END IF;
3930 
3931 	HZ_EXTRACT_BO_UTIL_PVT.get_bo_root_ids(
3932     	p_init_msg_list       => fnd_api.g_false,
3933     	p_event_id            => p_event_id,
3934     	x_obj_root_ids        => x_organization_ids,
3935    	x_return_status => x_return_status,
3936 	x_msg_count => x_msg_count,
3937 	x_msg_data => x_msg_data);
3938 
3939 	IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3940       		RAISE FND_API.G_EXC_ERROR;
3941     	END IF;
3942 
3943 
3944 	-- Debug info.
3945     	IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
3946          	hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3947                                p_msg_data=>x_msg_data,
3948                                p_msg_type=>'WARNING',
3949                                p_msg_level=>fnd_log.level_exception);
3950     	END IF;
3951 
3952     	-- Debug info.
3953         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3954         	hz_utility_v2pub.debug(p_message=>'get_ids_organizations_updated (-)',
3955                                p_prefix=>l_debug_prefix,
3956                                p_msg_level=>fnd_log.level_procedure);
3957     	END IF;
3958 
3959 
3960  EXCEPTION
3961 
3962   WHEN fnd_api.g_exc_error THEN
3963       x_return_status := fnd_api.g_ret_sts_error;
3964 
3965       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3966                                 p_count => x_msg_count,
3967                                 p_data  => x_msg_data);
3968 
3969       -- Debug info.
3970       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3971         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3972                                p_msg_data=>x_msg_data,
3973                                p_msg_type=>'ERROR',
3974                                p_msg_level=>fnd_log.level_error);
3975       END IF;
3976       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3977         hz_utility_v2pub.debug(p_message=>'get_ids_organizations_updated(-)',
3978                                p_prefix=>l_debug_prefix,
3979                                p_msg_level=>fnd_log.level_procedure);
3980       END IF;
3981     WHEN fnd_api.g_exc_unexpected_error THEN
3982       x_return_status := fnd_api.g_ret_sts_unexp_error;
3983 
3984       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
3985                                 p_count => x_msg_count,
3986                                 p_data  => x_msg_data);
3987 
3988       -- Debug info.
3989       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
3990         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
3991                                p_msg_data=>x_msg_data,
3992                                p_msg_type=>'UNEXPECTED ERROR',
3993                                p_msg_level=>fnd_log.level_error);
3994       END IF;
3995       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
3996         hz_utility_v2pub.debug(p_message=>'get_ids_organizations_updated(-)',
3997                                p_prefix=>l_debug_prefix,
3998                                p_msg_level=>fnd_log.level_procedure);
3999       END IF;
4000     WHEN OTHERS THEN
4001       x_return_status := fnd_api.g_ret_sts_unexp_error;
4002 
4003       fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
4004       fnd_message.set_token('ERROR' ,SQLERRM);
4005       fnd_msg_pub.add;
4006 
4007       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
4008                                 p_count => x_msg_count,
4009                                 p_data  => x_msg_data);
4010 
4011       -- Debug info.
4012       IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
4013         hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
4014                                p_msg_data=>x_msg_data,
4015                                p_msg_type=>'SQL ERROR',
4016                                p_msg_level=>fnd_log.level_error);
4017       END IF;
4018       IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
4019         hz_utility_v2pub.debug(p_message=>'get_ids_organizations_updated(-)',
4020                                p_prefix=>l_debug_prefix,
4021                                p_msg_level=>fnd_log.level_procedure);
4022       END IF;
4023 
4024 end;
4025 
4026 
4027 
4028 
4029 END hz_organization_bo_pub;