59: , event_status out nocopy ldap_event_status) is
60:
61: l_module_source varchar2(256);
62: l_null_event_exp exception;
63: l_user_profiles fnd_oid_util.apps_sso_user_profiles_type;
64:
65: begin
66: l_module_source := G_MODULE_SOURCE || 'PutOIDEvent: ';
67: fnd_global.apps_initialize(0, -1, -1);
69: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
70: then
71: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
72: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source
73: , 'event = ' || fnd_oid_util.GET_LDAP_EVENT_STR(event));
74: end if;
75:
76: if (event is null)
77: then
79: end if;
80:
81: if (event.event_type = wf_oid.IDENTITY_ADD)
82: then
83: fnd_oid_util.process_identity_add(event);
84:
85: elsif (event.event_type = wf_oid.IDENTITY_MODIFY)
86: then
87: fnd_oid_util.process_identity_modify(event);
83: fnd_oid_util.process_identity_add(event);
84:
85: elsif (event.event_type = wf_oid.IDENTITY_MODIFY)
86: then
87: fnd_oid_util.process_identity_modify(event);
88:
89: elsif (event.event_type = wf_oid.IDENTITY_DELETE)
90: then
91: fnd_oid_util.process_identity_delete(event);
87: fnd_oid_util.process_identity_modify(event);
88:
89: elsif (event.event_type = wf_oid.IDENTITY_DELETE)
90: then
91: fnd_oid_util.process_identity_delete(event);
92:
93: elsif (event.event_type = wf_oid.SUBSCRIPTION_ADD)
94: then
95: fnd_oid_util.process_subscription_add(event);
91: fnd_oid_util.process_identity_delete(event);
92:
93: elsif (event.event_type = wf_oid.SUBSCRIPTION_ADD)
94: then
95: fnd_oid_util.process_subscription_add(event);
96:
97: elsif (event.event_type = wf_oid.SUBSCRIPTION_DELETE)
98: then
99: fnd_oid_util.process_subscription_delete(event);
95: fnd_oid_util.process_subscription_add(event);
96:
97: elsif (event.event_type = wf_oid.SUBSCRIPTION_DELETE)
98: then
99: fnd_oid_util.process_subscription_delete(event);
100:
101: else
102: --fnd_oid_util.process_event_resend(event_status);
103: wf_entity_mgr.put_attribute_value(fnd_oid_util.G_USER, event.object_name,
98: then
99: fnd_oid_util.process_subscription_delete(event);
100:
101: else
102: --fnd_oid_util.process_event_resend(event_status);
103: wf_entity_mgr.put_attribute_value(fnd_oid_util.G_USER, event.object_name,
104: fnd_oid_util.G_ORCLGUID, event.object_guid);
105:
106: fnd_oid_util.SAVE_TO_CACHE(
99: fnd_oid_util.process_subscription_delete(event);
100:
101: else
102: --fnd_oid_util.process_event_resend(event_status);
103: wf_entity_mgr.put_attribute_value(fnd_oid_util.G_USER, event.object_name,
104: fnd_oid_util.G_ORCLGUID, event.object_guid);
105:
106: fnd_oid_util.SAVE_TO_CACHE(
107: p_ldap_attr_list => event.attr_list
100:
101: else
102: --fnd_oid_util.process_event_resend(event_status);
103: wf_entity_mgr.put_attribute_value(fnd_oid_util.G_USER, event.object_name,
104: fnd_oid_util.G_ORCLGUID, event.object_guid);
105:
106: fnd_oid_util.SAVE_TO_CACHE(
107: p_ldap_attr_list => event.attr_list
108: , p_entity_type => fnd_oid_util.G_USER
102: --fnd_oid_util.process_event_resend(event_status);
103: wf_entity_mgr.put_attribute_value(fnd_oid_util.G_USER, event.object_name,
104: fnd_oid_util.G_ORCLGUID, event.object_guid);
105:
106: fnd_oid_util.SAVE_TO_CACHE(
107: p_ldap_attr_list => event.attr_list
108: , p_entity_type => fnd_oid_util.G_USER
109: , p_entity_key_value => event.object_name);
110:
104: fnd_oid_util.G_ORCLGUID, event.object_guid);
105:
106: fnd_oid_util.SAVE_TO_CACHE(
107: p_ldap_attr_list => event.attr_list
108: , p_entity_type => fnd_oid_util.G_USER
109: , p_entity_key_value => event.object_name);
110:
111: wf_entity_mgr.process_changes(fnd_oid_util.G_USER, event.object_name,
112: fnd_oid_util.G_OID);
107: p_ldap_attr_list => event.attr_list
108: , p_entity_type => fnd_oid_util.G_USER
109: , p_entity_key_value => event.object_name);
110:
111: wf_entity_mgr.process_changes(fnd_oid_util.G_USER, event.object_name,
112: fnd_oid_util.G_OID);
113:
114: end if;
115:
108: , p_entity_type => fnd_oid_util.G_USER
109: , p_entity_key_value => event.object_name);
110:
111: wf_entity_mgr.process_changes(fnd_oid_util.G_USER, event.object_name,
112: fnd_oid_util.G_OID);
113:
114: end if;
115:
116: event_status := ldap_event_status(event.event_id, null,
144: function GetAppEvent(event out nocopy ldap_event)
145: return number is
146:
147: l_module_source varchar2(256);
148: l_entity_changes_rec fnd_oid_util.wf_entity_changes_rec_type;
149: l_ldap_key fnd_oid_util.ldap_key_type;
150: l_ldap_attr_list ldap_attr_list;
151: l_entity_id number;
152: my_temp_id number; -- for extra sub_add event --
145: return number is
146:
147: l_module_source varchar2(256);
148: l_entity_changes_rec fnd_oid_util.wf_entity_changes_rec_type;
149: l_ldap_key fnd_oid_util.ldap_key_type;
150: l_ldap_attr_list ldap_attr_list;
151: l_entity_id number;
152: my_temp_id number; -- for extra sub_add event --
153: l_local_login varchar2(30);
153: l_local_login varchar2(30);
154: l_allow_sync varchar2(1);
155: l_profile_defined boolean;
156: l_copy_event ldap_event;
157: l_apps_username_key fnd_oid_util.apps_user_key_type;
158:
159: begin
160: l_module_source := G_MODULE_SOURCE || 'GetAppEvent: ';
161: fnd_global.apps_initialize(0, -1, -1);
168: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
169: then
170: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
171: 'l_entity_changes_rec = ' ||
172: fnd_oid_util.GET_ENTITY_CHANGES_REC_STR(l_entity_changes_rec));
173: end if;
174: l_apps_username_key := fnd_oid_util.get_fnd_user(p_user_name => l_entity_changes_rec.entity_key_value);
175: fnd_profile.get_specific(
176: name_z => 'APPS_SSO_LOCAL_LOGIN',
170: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
171: 'l_entity_changes_rec = ' ||
172: fnd_oid_util.GET_ENTITY_CHANGES_REC_STR(l_entity_changes_rec));
173: end if;
174: l_apps_username_key := fnd_oid_util.get_fnd_user(p_user_name => l_entity_changes_rec.entity_key_value);
175: fnd_profile.get_specific(
176: name_z => 'APPS_SSO_LOCAL_LOGIN',
177: user_id_z => l_apps_username_key.user_id,
178: val_z => l_local_login,
177: user_id_z => l_apps_username_key.user_id,
178: val_z => l_local_login,
179: defined_z => l_profile_defined);
180:
181: if (not l_profile_defined or l_local_login = fnd_oid_util.G_LOCAL) then
182: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
183: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
184: 'We don''t sync users with profile APPS_SSO_LOCAL_LOGIN=LOCAL: '
185: || l_entity_changes_rec.entity_key_value);
187: --Remove from wf_entity_changes to fix bug 4233358
188: delete from wf_entity_changes
189: where entity_key_value = l_entity_changes_rec.entity_key_value
190: and entity_type = l_entity_changes_rec.entity_type;
191: raise fnd_oid_util.event_not_found_exp;
192: end if;
193:
194: fnd_ldap_mapper.map_ldap_attr_list(
195: l_entity_changes_rec.entity_type
207: name_z => 'APPS_SSO_LDAP_SYNC',
208: user_id_z => l_apps_username_key.user_id,
209: val_z => l_allow_sync,
210: defined_z => l_profile_defined);
211: if (not l_profile_defined or l_allow_sync = fnd_oid_util.G_N) then
212: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
213: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
214: 'We don''t modify users with profile APPS_SSO_LDAP_SYNC=N: '
215: || l_entity_changes_rec.entity_key_value);
217: event := l_copy_event;
218: delete from wf_entity_changes
219: where entity_key_value = l_entity_changes_rec.entity_key_value
220: and entity_type = l_entity_changes_rec.entity_type;
221: raise fnd_oid_util.event_not_found_exp;
222: end if;
223: end if;
224:
225: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
224:
225: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
226: then
227: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source
228: , fnd_oid_util.get_ldap_event_str(event));
229: end if;
230:
231: l_ldap_attr_list.delete;
232:
237:
238: return wf_oid.EVENT_FOUND;
239:
240: exception
241: when fnd_oid_util.event_not_found_exp then
242: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
243: then
244: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source
245: , 'No more events to send.Sending wf_oid.EVENT_NOT_FOUND');
261:
262: l_module_source varchar2(256);
263: l_login_profile varchar2(30);
264: l_profile_defined boolean;
265: l_profiles fnd_oid_util.apps_sso_user_profiles_type;
266: l_entity_key_value wf_entity_changes.entity_key_value%type;
267: null_event_status_exp exception;
268:
269: begin
274: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'Begin');
275: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
276: then
277: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source
278: , 'event_status = ' || fnd_oid_util.get_ldap_event_status_str(event_status));
279: end if;
280: end if;
281:
282: if (event_status is null)
283: then
284: raise null_event_status_exp;
285: end if;
286:
287: fnd_oid_util.get_entity_key_value(event_status.event_id, l_entity_key_value);
288:
289: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
290: then
291: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
314:
315: if (l_profiles.local_login = 'SSO')
316: then
317: update fnd_user
318: set encrypted_user_password = fnd_oid_util.G_EXTERNAL
319: where user_name = l_entity_key_value;
320: end if;
321:
322: delete from wf_entity_changes
329: event_status.event_id);
330: end if;
331: else
332: -- RDESPOTO, 09/02/2004, if not success
333: fnd_oid_util.process_no_success_event(event_status);
334:
335: end if;
336:
337:
400: if (p_event.GetValueForParameter('CHANGE_SOURCE') = 'OID') then
401: return 'SUCCESS';
402: end if;
403:
404: fnd_oid_util.entity_changes(p_event.getEventKey());
405: return wf_rule.default_rule(p_subscription_guid, p_event);
406: end;
407: --
408: -------------------------------------------------------------------------------
407: --
408: -------------------------------------------------------------------------------
409: PROCEDURE future_callback(p_parameters in wf_parameter_list_t default null) is
410: begin
411: fnd_oid_util.entity_changes(
412: wf_event.GetValueForParameter('USER_NAME', p_parameters));
413: end;
414:
415: ------------------------------------------------------------------------------