Terminating Concurrent program sessions :
Hi ALL,
One way of finding the session id for concurrent is through fnd_cocurrent_request...as discussed in my earlier post
But there is another easy way...
select sid,serial#,MODULE,ACTION,status from V$session
the module will contain the concurrent program short name...If only  one instance of the concurrent program is running 
we can easily identify the sessions of it..
If we terminate the program and the session not got released..simply find th session 
and use the command
 alter sytem kill session 'SID,SERIAL#' 
Please the  values you got from the above query  
======================
Program for Formatting options for fnd_file.put_line.out and Log :
create or replace procedure XXBOB_FND_MULTILINE_PRINT_PROC(P_TEXT varchar2,P_FRAME_SIZE NUMBER )as
v_text varchar2(1000) ;
v_cut number;
v_print_text varchar2(1000);
v_next_start number;
v_tot_length number;
v_cut_length number;
v_fram_size  number :=4;
x number;
begin
v_text:=P_TEXT;
If p_frame_size is null then
V_fram_size:=60;
end if;
v_fram_size:=p_frame_size;
v_cut:=instr(v_text,' ',v_fram_size);
v_tot_length:=length(v_text);
v_print_text:=substr( v_text,1,v_cut);
v_next_start:=v_cut+1;
dbms_output.put_line('Total Length:'v_tot_length);
x:=length(v_print_Text);
dbms_output.put_line('X:'X);
if length(v_text)>v_fram_size then
loop
--dbms_output.put_line(v_print_Text);
fnd_file.put_line(fnd_file.output,v_print_Text);
--dbms_output.put_line(v_print_Text);
v_cut:=instr(v_text,' ',v_next_start+v_fram_size);
if v_cut=0 then
v_cut:=v_tot_length+1;
end if;
v_cut_length:=v_cut-v_next_start;
--dbms_output.put_line('v_next_start:'v_next_start);
--dbms_output.put_line('v_cut:'v_cut);
--dbms_output.put_line('v_lenghtcut:'v_cut_length);
v_print_text:=substr( v_text,v_next_start,v_cut_length);
x:=nvl(length(v_print_Text),0);
--dbms_output.put_line('X:'X);
if xv_next_start and v_cut!=v_tot_length then
v_next_start:=v_cut+1;
end if;
exit  when x
end loop;
else
fnd_file.put_line(fnd_file.output,v_Text);
--dbms_output.put_line(v_Text);
end if;
end;
====================================
to create users and attach responsibilities ?
 Hi all,
We can fnd_user_pkg api to create users and attach responsibilities all at one shot..
Here i am providing the code which will update or create new users and their repsonsibilities
This script need to be improved a bit more to meet your changes
/******************************************************************************/
create or replace package body XX_FND_USER_PKG as
procedure create_user(p_user_name in varchar2,
                      p_emp_num   in  varchar2,
        p_resp_id   in number) as
v_user_present varchar2(1):='N';
v_err varchar2(1):='N';
v_user_id number;
v_resp_present varchar2(1):='N';
       v_empnum_err varchar2(1):='N';
 v_resp_key   varchar2(50);
v_application_name varchar2(50);
        v_person_id number;
        v_erromsg varchar2(1000);
begin
begin
select user_id
into  v_user_id
from fnd_user
where user_name=p_user_name and sysdate>nvl(end_Date,trunc(sysdate));
exception
when no_data_found then
v_user_present:='N';
end;
if v_user_id is null then
        begin
        select person_id
        into  v_person_id
        from per_all_people_f papf
        where employee_number=p_emp_num
        and sysdate between effective_start_Date and effective_End_Date
        and rownum=1;
        exception
          when others then
             v_empnum_err :='Y';
         end;
if v_empnum_err='N' then
       fnd_user_pkg.createuser(x_user_name => p_user_name
      ,x_owner => ''
      ,x_unencrypted_password => 'ganjam123'
      ,x_employee_id=>v_person_id);
       end if;
end if;
if v_user_id is not null then
begin
         select 'Y'
   into  v_resp_present
          from fnd_user_resp_groups_direct
   where user_id=v_user_id
    and responsibility_id=p_resp_id;
 exception
 when no_data_found then
 v_resp_present:='N';
        end;
 end if;
if v_resp_present ='N' then
 begin
 select responsibility_key,fa.application_short_name
 into   v_resp_key,v_application_name
 from FND_RESPONSIBILITY FR,
     fnd_application  FA
 where FR.application_id=fa.application_id
 and responsibility_id=p_resp_id
 and rownum=1;
 exception
   when others then
   v_err:='Y';
 end;
 if v_err ='N' then
fnd_user_pkg.addresp(username => p_user_name
      ,resp_app => v_application_name
      ,resp_key => v_resp_key
                        ,security_group => 'STANDARD'
      ,description => 'Auto Assignment'
      ,start_date => SYSDATE
      ,end_date => null);
end if;
end if;
        end;
end XX_FND_USER_PKG;/ 
 
No comments:
Post a Comment