Search This Blog

Tuesday, August 22, 2017

Scheduling in linux to run the script every 2 minutes and 8 hours

step1:
creating new shell file script , and all commands to run in it

cat copy.sh

step2: editing the shell file to run the commands and  add #!/bin/sh in first line

vi copy.sh

#!/bin/sh
cp  <file from location to other location>
:wq!

step3 scheduling every 2 min and every 8 hours:

crowntab -e


*/2 * * * * <path of file to run eg: /tmp/copy.sh>
* */8 * * * <path of file to run eg: /tmp/copy.sh>

:wq!

Thursday, August 10, 2017

Userhook for EIT in oracle apps R12


1. to Search userhook for EIT.

SELECT ahk.api_hook_id,
ahk.api_module_id,
ahk.hook_package,
ahk.hook_procedure
FROM hr_api_hooks ahk, hr_api_modules ahm
WHERE ahm.module_name like '%CREATE_PERSON_EXTRA%'
AND ahm.api_module_type = 'BP'
AND ahk.api_hook_type = 'AP'
AND ahk.api_module_id = ahm.api_module_id

2759 API_HOOK_ID
1226 API_MODULE_ID

2. run the below script to add userhook.

DECLARE

L_API_HOOK_ID NUMBER := 2759 ;
L_API_HOOK_CALL_ID NUMBER;
L_OBJECT_VERSION_NUMBER NUMBER;
L_SEQUENCE NUMBER;

BEGIN

SELECT HR_API_HOOKS_S.NEXTVAL
INTO L_SEQUENCE
FROM DUAL;

HR_API_HOOK_CALL_API.CREATE_API_HOOK_CALL

(P_VALIDATE => FALSE,
P_EFFECTIVE_DATE => TO_DATE('01-JAN-1952','DD-MON-YYYY'),
P_API_HOOK_ID =>L_API_HOOK_ID,
P_API_HOOK_CALL_TYPE => 'PP',
P_SEQUENCE => L_SEQUENCE,
P_ENABLED_FLAG => 'Y',
                           p_call_package               => 'XXFUJ_SS_USERHOOK',  --package script below
                           p_call_procedure             => 'XXCREATE_PERSON_EXTRA_INFO_B', --poackage proecudre
P_API_HOOK_CALL_ID => L_API_HOOK_CALL_ID,
P_OBJECT_VERSION_NUMBER => L_OBJECT_VERSION_NUMBER);
DBMS_OUTPUT.PUT_LINE('L_API_HOOK_CALL_ID '|| L_API_HOOK_CALL_ID);

END ;

3.COMMIT

4.  check status with below query

SELECT *
FROM HR_API_HOOK_CALLS
WHERE api_hook_id = 2759;

STATUS = 'N'



5. run the pre-processor or below script to complete.

declare
l_api_module_id number := 1226; --Value 1731 is derived from Step 1 above using following query
begin
hr_api_user_hooks_utility.create_hooks_one_module (l_api_module_id);
dbms_output.put_line('Success');
exception when others then
dbms_output.put_line('Exception : '||SQLERRM);
end;


6. COMMIT

7. recheck the status should be 'V'

8.
to delete eit userhook:

begin
hr_api_hook_call_api.delete_api_hook_call
  (p_validate                           => FALSE,
   p_api_hook_call_id                   => 1249,
   p_object_version_number              => 2
  );
--
end;


script for package and procedure..................


CREATE OR REPLACE package APPS.XXFUJ_SS_USERHOOK is

  -- Author  : Ammar Galant
  -- Created : 8/8/2017
  -- Purpose : Self Service Userhooks

  procedure XXCREATE_PERSON_EXTRA_INFO_B(P_PERSON_ID                in NUMBER,
                                          P_INFORMATION_TYPE         in VARCHAR2,
                                          P_PEI_ATTRIBUTE_CATEGORY   in VARCHAR2,
                                          P_PEI_ATTRIBUTE1           in VARCHAR2,
                                          P_PEI_ATTRIBUTE2           in VARCHAR2,
                                          P_PEI_ATTRIBUTE3           in VARCHAR2,
                                          P_PEI_ATTRIBUTE4           in VARCHAR2,
                                          P_PEI_ATTRIBUTE5           in VARCHAR2,
                                          P_PEI_ATTRIBUTE6           in VARCHAR2,
                                          P_PEI_ATTRIBUTE7           in VARCHAR2,
                                          P_PEI_ATTRIBUTE8           in VARCHAR2,
                                          P_PEI_ATTRIBUTE9           in VARCHAR2,
                                          P_PEI_ATTRIBUTE10          in VARCHAR2,
                                          P_PEI_ATTRIBUTE11          in VARCHAR2,
                                          P_PEI_ATTRIBUTE12          in VARCHAR2,
                                          P_PEI_ATTRIBUTE13          in VARCHAR2,
                                          P_PEI_ATTRIBUTE14          in VARCHAR2,
                                          P_PEI_ATTRIBUTE15          in VARCHAR2,
                                          P_PEI_ATTRIBUTE16          in VARCHAR2,
                                          P_PEI_ATTRIBUTE17          in VARCHAR2,
                                          P_PEI_ATTRIBUTE18          in VARCHAR2,
                                          P_PEI_ATTRIBUTE19          in VARCHAR2,
                                          P_PEI_ATTRIBUTE20          in VARCHAR2,
                                          P_PEI_INFORMATION_CATEGORY in VARCHAR2,
                                          P_PEI_INFORMATION1         in VARCHAR2,
                                          P_PEI_INFORMATION2         in VARCHAR2,
                                          P_PEI_INFORMATION3         in VARCHAR2,
                                          P_PEI_INFORMATION4         in VARCHAR2,
                                          P_PEI_INFORMATION5         in VARCHAR2,
                                          P_PEI_INFORMATION6         in VARCHAR2,
                                          P_PEI_INFORMATION7         in VARCHAR2,
                                          P_PEI_INFORMATION8         in VARCHAR2,
                                          P_PEI_INFORMATION9         in VARCHAR2,
                                          P_PEI_INFORMATION10        in VARCHAR2,
                                          P_PEI_INFORMATION11        in VARCHAR2,
                                          P_PEI_INFORMATION12        in VARCHAR2,
                                          P_PEI_INFORMATION13        in VARCHAR2,
                                          P_PEI_INFORMATION14        in VARCHAR2,
                                          P_PEI_INFORMATION15        in VARCHAR2,
                                          P_PEI_INFORMATION16        in VARCHAR2,
                                          P_PEI_INFORMATION17        in VARCHAR2,
                                          P_PEI_INFORMATION18        in VARCHAR2,
                                          P_PEI_INFORMATION19        in VARCHAR2,
                                          P_PEI_INFORMATION20        in VARCHAR2,
                                          P_PEI_INFORMATION21        in VARCHAR2,
                                          P_PEI_INFORMATION22        in VARCHAR2,
                                          P_PEI_INFORMATION23        in VARCHAR2,
                                          P_PEI_INFORMATION24        in VARCHAR2,
                                          P_PEI_INFORMATION25        in VARCHAR2,
                                          P_PEI_INFORMATION26        in VARCHAR2,
                                          P_PEI_INFORMATION27        in VARCHAR2,
                                          P_PEI_INFORMATION28        in VARCHAR2,
                                          P_PEI_INFORMATION29        in VARCHAR2,
                                          P_PEI_INFORMATION30        in VARCHAR2);

end XXFUJ_SS_USERHOOK;



/************************************************* Package Body **********************************************************/


CREATE OR REPLACE PACKAGE BODY APPS.XXFUJ_SS_USERHOOK
IS
   PROCEDURE XXCREATE_PERSON_EXTRA_INFO_B (
      P_PERSON_ID                  IN NUMBER,
      P_INFORMATION_TYPE           IN VARCHAR2,
      P_PEI_ATTRIBUTE_CATEGORY     IN VARCHAR2,
      P_PEI_ATTRIBUTE1             IN VARCHAR2,
      P_PEI_ATTRIBUTE2             IN VARCHAR2,
      P_PEI_ATTRIBUTE3             IN VARCHAR2,
      P_PEI_ATTRIBUTE4             IN VARCHAR2,
      P_PEI_ATTRIBUTE5             IN VARCHAR2,
      P_PEI_ATTRIBUTE6             IN VARCHAR2,
      P_PEI_ATTRIBUTE7             IN VARCHAR2,
      P_PEI_ATTRIBUTE8             IN VARCHAR2,
      P_PEI_ATTRIBUTE9             IN VARCHAR2,
      P_PEI_ATTRIBUTE10            IN VARCHAR2,
      P_PEI_ATTRIBUTE11            IN VARCHAR2,
      P_PEI_ATTRIBUTE12            IN VARCHAR2,
      P_PEI_ATTRIBUTE13            IN VARCHAR2,
      P_PEI_ATTRIBUTE14            IN VARCHAR2,
      P_PEI_ATTRIBUTE15            IN VARCHAR2,
      P_PEI_ATTRIBUTE16            IN VARCHAR2,
      P_PEI_ATTRIBUTE17            IN VARCHAR2,
      P_PEI_ATTRIBUTE18            IN VARCHAR2,
      P_PEI_ATTRIBUTE19            IN VARCHAR2,
      P_PEI_ATTRIBUTE20            IN VARCHAR2,
      P_PEI_INFORMATION_CATEGORY   IN VARCHAR2,
      P_PEI_INFORMATION1           IN VARCHAR2,
      P_PEI_INFORMATION2           IN VARCHAR2,
      P_PEI_INFORMATION3           IN VARCHAR2,
      P_PEI_INFORMATION4           IN VARCHAR2,
      P_PEI_INFORMATION5           IN VARCHAR2,
      P_PEI_INFORMATION6           IN VARCHAR2,
      P_PEI_INFORMATION7           IN VARCHAR2,
      P_PEI_INFORMATION8           IN VARCHAR2,
      P_PEI_INFORMATION9           IN VARCHAR2,
      P_PEI_INFORMATION10          IN VARCHAR2,
      P_PEI_INFORMATION11          IN VARCHAR2,
      P_PEI_INFORMATION12          IN VARCHAR2,
      P_PEI_INFORMATION13          IN VARCHAR2,
      P_PEI_INFORMATION14          IN VARCHAR2,
      P_PEI_INFORMATION15          IN VARCHAR2,
      P_PEI_INFORMATION16          IN VARCHAR2,
      P_PEI_INFORMATION17          IN VARCHAR2,
      P_PEI_INFORMATION18          IN VARCHAR2,
      P_PEI_INFORMATION19          IN VARCHAR2,
      P_PEI_INFORMATION20          IN VARCHAR2,
      P_PEI_INFORMATION21          IN VARCHAR2,
      P_PEI_INFORMATION22          IN VARCHAR2,
      P_PEI_INFORMATION23          IN VARCHAR2,
      P_PEI_INFORMATION24          IN VARCHAR2,
      P_PEI_INFORMATION25          IN VARCHAR2,
      P_PEI_INFORMATION26          IN VARCHAR2,
      P_PEI_INFORMATION27          IN VARCHAR2,
      P_PEI_INFORMATION28          IN VARCHAR2,
      P_PEI_INFORMATION29          IN VARCHAR2,
      P_PEI_INFORMATION30          IN VARCHAR2)
   IS  
   
      LN_LEAVE_START DATE;     
        
   BEGIN
  
      IF P_INFORMATION_TYPE = 'FUJ_UPDATE_DELETE_LEAVE' THEN
        
         select date_start
          INTO LN_LEAVE_START
          from per_absence_attendances
          where ABSENCE_ATTENDANCE_ID = to_number(P_PEI_INFORMATION2);
      
         IF TRUNC(sysdate) >= LN_LEAVE_START AND TRUNC(SYSDATE) >= TO_DATE('11-AUG-2017')
         THEN
            hr_utility.set_message (800, 'FUJ_DELETE_LEAVE_VALID');
            hr_utility.raise_error;
         END IF;
      
       END IF;
  
   DBMS_OUTPUT.PUT_LINE('hi');
    
     END XXCREATE_PERSON_EXTRA_INFO_B;
END XXFUJ_SS_USERHOOK;
/

Wednesday, August 9, 2017

hr_contingent_worker_api.terminate_placement for contingent workder Oracle Apps R12

declare
   --
   --Common Variables
   l_terminate_cwk_flag          varchar2(1) := 'N';
   l_terminate_msg               varchar2(600);
   l_person_id                   number ;
   l_le_terminate_cwk_exception  exception;

   --- DECLARE variables for hr_contingent_worker_api.actual_termination_placement
   --- IN variables
   l_effective_date              date  ; --trunc(sysdate)-1
   l_termination_reason          varchar2(200) := 'NR';
   l_person_type_id             varchar2(200)  := 1140; --Ex-contingent Worker from PER_PERSON_TYPES_V
   l_period_of_service_id        varchar2(200) ;
   l_actual_termination_date     date ;--:=trunc(sysdate);
   l_last_standard_process_date  varchar2(200)  ;
   l_object_version_number       per_all_people_f.object_version_number%type;
   l_start_date                  date;--per_periods_of_placement.date_start%type;
   l_notif_term_date             date;


   --- OUT variables
   l_supervisor_warning         boolean := false;
   l_event_warning              boolean := false;
   l_interview_warning          boolean := false;
   l_review_warning             boolean := false;
   l_recruiter_warning          boolean := false;
   l_asg_future_changes_warning boolean := false;
   l_entries_changed_warning    varchar2(300);
   l_pay_proposal_warning       boolean := false;
   l_dod_warning                boolean := false;
   L_NO_MANAGER_WARNING boolean := false;
    L_ADDL_RIGHTS_WARNING boolean := false;
  

   --- DECLARE variables for hr_contingent_worker_api.final_process_placement
   --- IN variables
   l_final_process_date             date;

   --- OUT variables
   l_org_now_no_manager_warning     boolean := false;
   --
begin
   --
   begin
  
      select pos.period_of_placement_id, pos.object_version_number, date_start,papf.person_id, papf.effective_start_date,papf.effective_start_date
        into l_period_of_service_id, l_object_version_number, l_start_date,l_person_id, l_actual_termination_date,l_effective_date
        from per_periods_of_placement pos
        ,per_all_people_f papf
       where pos.person_id = papf.person_id
       and to_number(npw_number) = '9';
    

    
   exception                                                       
      when others then
         l_terminate_msg  := 'Error while selecting cwk details : '||substr(sqlerrm,1,150);
         raise l_le_terminate_cwk_exception;
   end;
   --
   savepoint terminate_cwk_s1; 
   --
   begin
      /*
      This API covers the first step in terminating a period of placement and
      all current assignments for a cwk, identified by person_id and date_start.   
      You can use the API to set the actual termination date, the last standard
      process date, the new assignment status and the new person type
      */
     
      HR_CONTINGENT_WORKER_API.TERMINATE_PLACEMENT(
P_VALIDATE => FALSE
,P_EFFECTIVE_DATE => l_effective_date  
,P_PERSON_ID => l_person_id
,P_DATE_START => l_start_date
,P_OBJECT_VERSION_NUMBER => l_object_version_number
,P_ACTUAL_TERMINATION_DATE =>l_actual_termination_date
,P_FINAL_PROCESS_DATE =>l_actual_termination_date --— final process date is 3 months after the actual termination date
,p_last_standard_process_date =>l_actual_termination_date
 ,p_termination_reason => l_termination_reason
,P_SUPERVISOR_WARNING => L_SUPERVISOR_WARNING
,P_EVENT_WARNING => L_EVENT_WARNING
,P_INTERVIEW_WARNING => L_INTERVIEW_WARNING
,P_REVIEW_WARNING => L_REVIEW_WARNING
,P_RECRUITER_WARNING => L_RECRUITER_WARNING
,P_ASG_FUTURE_CHANGES_WARNING => l_asg_future_changes_warning
,P_ENTRIES_CHANGED_WARNING => L_ENTRIES_CHANGED_WARNING
,P_PAY_PROPOSAL_WARNING => L_PAY_PROPOSAL_WARNING
,P_DOD_WARNING => L_DOD_WARNING
,P_ORG_NOW_NO_MANAGER_WARNING => L_NO_MANAGER_WARNING
,P_ADDL_RIGHTS_WARNING => L_ADDL_RIGHTS_WARNING
);
       /*hr_contingent_worker_api.terminate_placement
                      (p_validate                      => false               
                      ,p_effective_date                => l_effective_date -1       
                      ,p_person_id                     => l_person_id         
                      ,p_date_start                    => l_start_date
                      ,p_person_type_id                => l_person_type_id       
                      ,p_actual_termination_date       => l_actual_termination_date
                      ,p_termination_reason            => l_termination_reason
                      --In/Out
                      ,p_object_version_number         => l_object_version_number                     
                      ,p_last_standard_process_date    => l_actual_termination_date --l_last_standard_process_date
                      --Out
                      ,p_supervisor_warning               => l_supervisor_warning 
                      ,p_event_warning                    => l_event_warning   
                      ,p_interview_warning                => l_interview_warning 
                      ,p_review_warning                   => l_review_warning   
                      ,p_recruiter_warning                => l_recruiter_warning     
                      ,p_asg_future_changes_warning       => l_asg_future_changes_warning
                      ,p_entries_changed_warning          => l_entries_changed_warning 
                      ,p_pay_proposal_warning             => l_pay_proposal_warning   
                      ,p_dod_warning                      => l_dod_warning           
                      );
*/
         if l_object_version_number is null then
            l_terminate_cwk_flag := 'N';
            l_terminate_msg      := 'Warning validating API: hr_contingent_worker_api.actual_termination_placement';
            raise l_le_terminate_cwk_exception;
         end if;

         l_terminate_cwk_flag := 'Y';
   exception
      when others then
         l_terminate_msg  := 'Error validating API: hr_contingent_worker_api.actual_termination_placement : '||substr(sqlerrm,1,150);
         raise l_le_terminate_cwk_exception;
   end; --hr_contingent_worker_api.actual_termination_placement

                            
   --
   commit;
   --
exception   
   when l_le_terminate_cwk_exception then
      dbms_output.put_line(l_terminate_msg);
      rollback to terminate_cwk_s1;
   when others then
      dbms_output.put_line('Terminate CWK. Error OTHERS while validating: '||sqlerrm);
      rollback to terminate_cwk_s1;
end;