Business_group_id

New to HRMS
Can someone explain the business_group_id and it's functionality. I assume this is a setup. I see all employee apis need this. What table is this stored in?

Follow the steps below:
1. Logon to HRMS Responsibility
2. Navigate to Work structures => Organization => Description
a. Enter a Business Group Name
b. Select the Type fi you want (But there is no significance for Org type- this is only for reporting purpose)
c. Select the Location from LOV (Location Addres willbe displayed automatically)
d. By default 'Internal' will be selected. Save the record
e. Select 'Business Group' from LOV under Organization classification region.
f. Select 'Enabled' check box. Save the record.
g. Select 'Others' and select 'Business Group Info' from LOV
h. Provide the appropriate info for business group info.
i. Select 'HR Organization' classification if you want to assign any employees for this organization. save the record.
TABLE : PER_BUSINESS_GROUPS.
Below Link will provide you more info
1. Go to http://www.oracle.com/technology/documentation/applications.html
2. Click on "Oracle Applications 11.5.10.2+ Online Documentation CD" link
3. Click on "Documentation" tab
4. Select appropriate documentation listed in the Human Resources set

Similar Messages

  • BUSINESS_GROUP_ID in EBS ??

    I'm trying to integrate eBusiness Suite with Oracle Identity Manager. As per the connector documentation : http://download.oracle.com/docs/cd/E11223_01/doc.910/e11202/using_conn.htm#CHDDECEB
    I have configured the First Time Reconcilation with Oracle eBusiness Suite
    I need to give the parameters - BUSINESS_GROUP_ID, FROM_DATE, TO_DATE.
    I'm not sure about the BUSINESS_GROUP_ID to be given in the Design Console. I have Oracle eBusiness Suite [SandBox] with Vision Demo Database. How to find out the BUSINESS_GROUP_ID from the eBusiness suite?
    Also where can I see the users from Vision Database present in the Oracle eBusiness Suite? I have no knowledge on EBS.
    Please help !

    Hi,
    I believe you can get the value of BUSINESS_GROUP_ID from PER_BUSINESS_GROUPS view (based on based on HR_ORGANIZATION_UNITS and HR_ORGANIZATION_INFORMATION tables).
    Regards,
    Hussein

  • Discoverer Report parameter based on subquery

    Hi Guys,
    I have following query which i need to convert into discoverer report
    select hpah.EMPLOYEE_NUMBER,hpah.FIRST_NAME,hpah.LAST_NAME,hpah.PERSON_NAME,
    --hpah.JOB_NAME,hpah.ASSIGNMENT_ORGANIZATION_NAME,
    hpah.ASSIGNMENT_TYPE,hpah.USER_ASSIGNMENT_STATUS,
    SUBSTR(pj.name, 1, instr(pj.name, '.', 1, 2) -1) job_code,
    SUBSTR(pj.name, instr(pj.name, '.', 1, 2) + 1) job_title,
    (select haou.ATTRIBUTE1 from hr_all_organization_units haou
    where haou.ORGANIZATION_ID = hpah.ASSIGNMENT_ORGANIZATION_ID ) Function,
    (select haou.ATTRIBUTE2 from hr_all_organization_units haou
    where haou.ORGANIZATION_ID = hpah.ASSIGNMENT_ORGANIZATION_ID ) org_desc,
    SUBSTR(hpah.ASSIGNMENT_ORGANIZATION_NAME, 1, 6) dept_code,
    SUBSTR(hpah.ASSIGNMENT_ORGANIZATION_NAME, 7, LENGTH(hpah.ASSIGNMENT_ORGANIZATION_NAME)) dept_title,
    hpah.GRADE_NAME,hpah.LOCATION_NAME,hpah.SUPERVISOR_NAME,
    hpah.PERSON_START_DATE,hpah.ORIGINAL_DATE_OF_HIRE ,
    hpah.SALARY_BASIS,hpah.BUSINESS_GROUP_ID,hpah.ASSIGNMENT_ID,
    decode( hpah.SALARY_BASIS, 'ANNUAL', ppp.proposed_salary_n,
    'HOURLY', (ppp.proposed_salary_n *2080),
    ppp.proposed_salary_n
    ) salary,
    sysdate run_date
    from
    hrfg_person_assignment_history hpah ,
    per_pay_proposals ppp,
    per_pay_bases ppb,
    per_grades pg,
    per_jobs pj
    where hpah.ASSIGNMENT_ID = ppp.ASSIGNMENT_ID
    and hpah.SALARY_BASIS = ppb.PAY_BASIS
    and hpah.BUSINESS_GROUP_ID = ppb.BUSINESS_GROUP_ID
    and hpah.GRADE_ID = pg.GRADE_ID(+)
    and hpah.JOB_ID = pj.JOB_ID (+)
    --and   hpah.EMPLOYEE_NUMBER = 100779
    and hpah.PERSON_START_DATE IN
    (SELECT MAX(hpah2.PERSON_START_DATE)
    FROM hrfg_person_assignment_history hpah2
    WHERE hpah2.EMPLOYEE_NUMBER = hpah.EMPLOYEE_NUMBER
    AND hpah2.PERSON_START_DATE <= sysdate )
    order by hpah.EMPLOYEE_NUMBER
    i need to have sysdate as parameter in my report. I want data based on the date i provide.
    how can i make this as an parameter?

    Hi Prashant,
    Subqueries are not Supported in Conditions..As of Disco Plus Rel 10.1.2.54.25
    A plausible workaround can be:
    1. Create a View with foll. Query
    create or replace view TEST_VIEW as
    select hpah.EMPLOYEE_NUMBER emp_no,hpah.FIRST_NAME,hpah.LAST_NAME,hpah.PERSON_NAME,
    --hpah.JOB_NAME,hpah.ASSIGNMENT_ORGANIZATION_NAME,
    hpah.ASSIGNMENT_TYPE,hpah.USER_ASSIGNMENT_STATUS,
    SUBSTR(pj.name, 1, instr(pj.name, '.', 1, 2) -1) job_code,
    SUBSTR(pj.name, instr(pj.name, '.', 1, 2) + 1) job_title,
    (select haou.ATTRIBUTE1 from hr_all_organization_units haou
    where haou.ORGANIZATION_ID = hpah.ASSIGNMENT_ORGANIZATION_ID ) Function,
    (select haou.ATTRIBUTE2 from hr_all_organization_units haou
    where haou.ORGANIZATION_ID = hpah.ASSIGNMENT_ORGANIZATION_ID ) org_desc,
    SUBSTR(hpah.ASSIGNMENT_ORGANIZATION_NAME, 1, 6) dept_code,
    SUBSTR(hpah.ASSIGNMENT_ORGANIZATION_NAME, 7, LENGTH(hpah.ASSIGNMENT_ORGANIZATION_NAME)) dept_title,
    hpah.GRADE_NAME,hpah.LOCATION_NAME,hpah.SUPERVISOR_NAME,
    hpah.PERSON_START_DATE,hpah.ORIGINAL_DATE_OF_HIRE ,
    hpah.SALARY_BASIS,hpah.BUSINESS_GROUP_ID,hpah.ASSIGNMENT_ID,
    decode( hpah.SALARY_BASIS, 'ANNUAL', ppp.proposed_salary_n,
    'HOURLY', (ppp.proposed_salary_n *2080),
    ppp.proposed_salary_n
    ) salary,
    sysdate run_date
    from
    hrfg_person_assignment_history hpah ,
    per_pay_proposals ppp,
    per_pay_bases ppb,
    per_grades pg,
    per_jobs pj
    where hpah.ASSIGNMENT_ID = ppp.ASSIGNMENT_ID
    and hpah.SALARY_BASIS = ppb.PAY_BASIS
    and hpah.BUSINESS_GROUP_ID = ppb.BUSINESS_GROUP_ID
    and hpah.GRADE_ID = pg.GRADE_ID(+)
    and hpah.JOB_ID = pj.JOB_ID (+)
    --and hpah.EMPLOYEE_NUMBER = 100779
    order by hpah.EMPLOYEE_NUMBER
    2. Create another table say TEST_TAB
    create table TEST_TAB (emp_no, start_dt) as
    SELECT hpah2.EMPLOYEE_NUMBER , MAX(hpah2.PERSON_START_DATE) PERSON_START_DATE
    FROM hrfg_person_assignment_history hpah2
    GROUP BY hpah2.EMPLOYEE_NUMBER
    3. Add both of them in Disco Admin and create a join between TEST_VIEW.emp_no and TEST_TAB.emp_no
    4. Bring both these Objects in a new report in Disco Plus
    5. Create a New Parameter (Base it on PERSON_START_DATE Col of TEST_TAB)
    6. Choose Option Create Condition with operator <=
    7. Checkmark "Require User to Enter a Value
    8. Execute Report
    I believe this should work. Either ways let me know if it helps or u get another workaround. (This scenario looks quite interesting)
    Thanks,
    Chinmay

  • Unable to view data in some HR tables

    Since I upgraded to SQL Developer 2.1.1.64 I have not been able to view data in the data tab for the following tables that I have run accross: per_all_people_f, per_all_assignments_f or per_all_positions_f.
    Other tables that I have been using seem to be working fine, but these I need to use all the time. I get the column numbers returned, but no data or column headings.
    Another co-worker that has upgraded is experiencing the same problem.

    I could not get the ddl to show up on the sql tab in version 2.1.1.64, but I did run it in version 1.5.4 and this is what was returned.
    -- Unable to Render DDL with DBMS_METADATA using internal generator.
    CREATE TABLE HR.PER_ALL_PEOPLE_F
    PERSON_ID NUMBER(10, 0) NOT NULL,
    EFFECTIVE_START_DATE DATE NOT NULL,
    EFFECTIVE_END_DATE DATE NOT NULL,
    BUSINESS_GROUP_ID NUMBER(15, 0) NOT NULL,
    PERSON_TYPE_ID NUMBER(15, 0) NOT NULL,
    LAST_NAME VARCHAR2(150 BYTE) NOT NULL,
    START_DATE DATE NOT NULL,
    APPLICANT_NUMBER VARCHAR2(30 BYTE),
    BACKGROUND_CHECK_STATUS VARCHAR2(30 BYTE),
    BACKGROUND_DATE_CHECK DATE,
    BLOOD_TYPE VARCHAR2(30 BYTE),
    COMMENT_ID NUMBER(15, 0),
    CORRESPONDENCE_LANGUAGE VARCHAR2(30 BYTE),
    CURRENT_APPLICANT_FLAG VARCHAR2(30 BYTE),
    CURRENT_EMP_OR_APL_FLAG VARCHAR2(30 BYTE),
    CURRENT_EMPLOYEE_FLAG VARCHAR2(30 BYTE),
    DATE_EMPLOYEE_DATA_VERIFIED DATE,
    DATE_OF_BIRTH DATE,
    EMAIL_ADDRESS VARCHAR2(240 BYTE),
    EMPLOYEE_NUMBER VARCHAR2(30 BYTE),
    EXPENSE_CHECK_SEND_TO_ADDRESS VARCHAR2(30 BYTE),
    FAST_PATH_EMPLOYEE VARCHAR2(30 BYTE),
    FIRST_NAME VARCHAR2(150 BYTE),
    FTE_CAPACITY NUMBER(5, 2),
    FULL_NAME VARCHAR2(240 BYTE),
    HOLD_APPLICANT_DATE_UNTIL DATE,
    HONORS VARCHAR2(45 BYTE),
    INTERNAL_LOCATION VARCHAR2(45 BYTE),
    KNOWN_AS VARCHAR2(80 BYTE),
    LAST_MEDICAL_TEST_BY VARCHAR2(60 BYTE),
    LAST_MEDICAL_TEST_DATE DATE,
    MAILSTOP VARCHAR2(45 BYTE),
    MARITAL_STATUS VARCHAR2(30 BYTE),
    MIDDLE_NAMES VARCHAR2(60 BYTE),
    NATIONALITY VARCHAR2(30 BYTE),
    NATIONAL_IDENTIFIER VARCHAR2(30 BYTE),
    OFFICE_NUMBER VARCHAR2(45 BYTE),
    ON_MILITARY_SERVICE VARCHAR2(30 BYTE),
    ORDER_NAME VARCHAR2(240 BYTE),
    PRE_NAME_ADJUNCT VARCHAR2(30 BYTE),
    PREVIOUS_LAST_NAME VARCHAR2(150 BYTE),
    PROJECTED_START_DATE DATE,
    REHIRE_AUTHORIZOR VARCHAR2(30 BYTE),
    REHIRE_REASON VARCHAR2(60 BYTE),
    REHIRE_RECOMMENDATION VARCHAR2(30 BYTE),
    RESUME_EXISTS VARCHAR2(30 BYTE),
    RESUME_LAST_UPDATED DATE,
    REGISTERED_DISABLED_FLAG VARCHAR2(30 BYTE),
    SECOND_PASSPORT_EXISTS VARCHAR2(30 BYTE),
    SEX VARCHAR2(30 BYTE),
    STUDENT_STATUS VARCHAR2(30 BYTE),
    SUFFIX VARCHAR2(30 BYTE),
    TITLE VARCHAR2(30 BYTE),
    VENDOR_ID NUMBER(15, 0),
    WORK_SCHEDULE VARCHAR2(30 BYTE),
    WORK_TELEPHONE VARCHAR2(60 BYTE),
    COORD_BEN_MED_PLN_NO VARCHAR2(30 BYTE),
    COORD_BEN_NO_CVG_FLAG VARCHAR2(30 BYTE),
    DPDNT_ADOPTION_DATE DATE,
    DPDNT_VLNTRY_SVCE_FLAG VARCHAR2(30 BYTE),
    RECEIPT_OF_DEATH_CERT_DATE DATE,
    USES_TOBACCO_FLAG VARCHAR2(30 BYTE),
    BENEFIT_GROUP_ID NUMBER(15, 0),
    REQUEST_ID NUMBER(15, 0),
    PROGRAM_APPLICATION_ID NUMBER(15, 0),
    PROGRAM_ID NUMBER(15, 0),
    PROGRAM_UPDATE_DATE DATE,
    ATTRIBUTE_CATEGORY VARCHAR2(30 BYTE),
    ATTRIBUTE1 VARCHAR2(150 BYTE),
    ATTRIBUTE2 VARCHAR2(150 BYTE),
    ATTRIBUTE3 VARCHAR2(150 BYTE),
    ATTRIBUTE4 VARCHAR2(150 BYTE),
    ATTRIBUTE5 VARCHAR2(150 BYTE),
    ATTRIBUTE6 VARCHAR2(150 BYTE),
    ATTRIBUTE7 VARCHAR2(150 BYTE),
    ATTRIBUTE8 VARCHAR2(150 BYTE),
    ATTRIBUTE9 VARCHAR2(150 BYTE),
    ATTRIBUTE10 VARCHAR2(150 BYTE),
    ATTRIBUTE11 VARCHAR2(150 BYTE),
    ATTRIBUTE12 VARCHAR2(150 BYTE),
    ATTRIBUTE13 VARCHAR2(150 BYTE),
    ATTRIBUTE14 VARCHAR2(150 BYTE),
    ATTRIBUTE15 VARCHAR2(150 BYTE),
    ATTRIBUTE16 VARCHAR2(150 BYTE),
    ATTRIBUTE17 VARCHAR2(150 BYTE),
    ATTRIBUTE18 VARCHAR2(150 BYTE),
    ATTRIBUTE19 VARCHAR2(150 BYTE),
    ATTRIBUTE20 VARCHAR2(150 BYTE),
    ATTRIBUTE21 VARCHAR2(150 BYTE),
    ATTRIBUTE22 VARCHAR2(150 BYTE),
    ATTRIBUTE23 VARCHAR2(150 BYTE),
    ATTRIBUTE24 VARCHAR2(150 BYTE),
    ATTRIBUTE25 VARCHAR2(150 BYTE),
    ATTRIBUTE26 VARCHAR2(150 BYTE),
    ATTRIBUTE27 VARCHAR2(150 BYTE),
    ATTRIBUTE28 VARCHAR2(150 BYTE),
    ATTRIBUTE29 VARCHAR2(150 BYTE),
    ATTRIBUTE30 VARCHAR2(150 BYTE),
    LAST_UPDATE_DATE DATE,
    LAST_UPDATED_BY NUMBER(15, 0),
    LAST_UPDATE_LOGIN NUMBER(15, 0),
    CREATED_BY NUMBER(15, 0),
    CREATION_DATE DATE,
    PER_INFORMATION_CATEGORY VARCHAR2(30 BYTE),
    PER_INFORMATION1 VARCHAR2(150 BYTE),
    PER_INFORMATION2 VARCHAR2(150 BYTE),
    PER_INFORMATION3 VARCHAR2(150 BYTE),
    PER_INFORMATION4 VARCHAR2(150 BYTE),
    PER_INFORMATION5 VARCHAR2(150 BYTE),
    PER_INFORMATION6 VARCHAR2(150 BYTE),
    PER_INFORMATION7 VARCHAR2(150 BYTE),
    PER_INFORMATION8 VARCHAR2(150 BYTE),
    PER_INFORMATION9 VARCHAR2(150 BYTE),
    PER_INFORMATION10 VARCHAR2(150 BYTE),
    PER_INFORMATION11 VARCHAR2(150 BYTE),
    PER_INFORMATION12 VARCHAR2(150 BYTE),
    PER_INFORMATION13 VARCHAR2(150 BYTE),
    PER_INFORMATION14 VARCHAR2(150 BYTE),
    PER_INFORMATION15 VARCHAR2(150 BYTE),
    PER_INFORMATION16 VARCHAR2(150 BYTE),
    PER_INFORMATION17 VARCHAR2(150 BYTE),
    PER_INFORMATION18 VARCHAR2(150 BYTE),
    PER_INFORMATION19 VARCHAR2(150 BYTE),
    PER_INFORMATION20 VARCHAR2(150 BYTE),
    PER_INFORMATION21 VARCHAR2(150 BYTE),
    PER_INFORMATION22 VARCHAR2(150 BYTE),
    PER_INFORMATION23 VARCHAR2(150 BYTE),
    PER_INFORMATION24 VARCHAR2(150 BYTE),
    PER_INFORMATION25 VARCHAR2(150 BYTE),
    PER_INFORMATION26 VARCHAR2(150 BYTE),
    PER_INFORMATION27 VARCHAR2(150 BYTE),
    PER_INFORMATION28 VARCHAR2(150 BYTE),
    PER_INFORMATION29 VARCHAR2(150 BYTE),
    PER_INFORMATION30 VARCHAR2(150 BYTE),
    OBJECT_VERSION_NUMBER NUMBER(9, 0),
    DATE_OF_DEATH DATE,
    ORIGINAL_DATE_OF_HIRE DATE,
    TOWN_OF_BIRTH VARCHAR2(90 BYTE),
    REGION_OF_BIRTH VARCHAR2(90 BYTE),
    COUNTRY_OF_BIRTH VARCHAR2(90 BYTE),
    GLOBAL_PERSON_ID VARCHAR2(30 BYTE),
    COORD_BEN_MED_PL_NAME VARCHAR2(80 BYTE),
    COORD_BEN_MED_INSR_CRR_NAME VARCHAR2(80 BYTE),
    COORD_BEN_MED_INSR_CRR_IDENT VARCHAR2(80 BYTE),
    COORD_BEN_MED_EXT_ER VARCHAR2(80 BYTE),
    COORD_BEN_MED_CVG_STRT_DT DATE,
    COORD_BEN_MED_CVG_END_DT DATE,
    PARTY_ID NUMBER(15, 0),
    NPW_NUMBER VARCHAR2(30 BYTE),
    CURRENT_NPW_FLAG VARCHAR2(30 BYTE),
    GLOBAL_NAME VARCHAR2(240 BYTE),
    LOCAL_NAME VARCHAR2(240 BYTE)
    , CONSTRAINT PER_PEOPLE_F_PK PRIMARY KEY
    PERSON_ID,
    EFFECTIVE_START_DATE,
    EFFECTIVE_END_DATE
    ENABLE
    TABLESPACE "HR_DATA_SPACE_01"
    LOGGING
    PCTFREE 10
    PCTUSED 40
    INITRANS 16
    MAXTRANS 255
    STORAGE
    INITIAL 48K
    NEXT 8000K
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    PCTINCREASE 0
    FREELISTS 4
    FREELIST GROUPS 1
    BUFFER_POOL DEFAULT
    ALTER TABLE HR.PER_ALL_PEOPLE_F
    ADD CONSTRAINT PER_PEOPLE_F_FK1 FOREIGN KEY
    BUSINESS_GROUP_ID
    REFERENCES HR.HR_ALL_ORGANIZATION_UNITS
    ORGANIZATION_ID
    ) ENABLE
    ALTER TABLE HR.PER_ALL_PEOPLE_F
    ADD CONSTRAINT PER_PEOPLE_F_FK2 FOREIGN KEY
    PERSON_TYPE_ID
    REFERENCES HR.PER_PERSON_TYPES
    PERSON_TYPE_ID
    ) ENABLE
    ALTER TABLE HR.PER_ALL_PEOPLE_F
    ADD CONSTRAINT HR_PER_DATE_OF_DEATH CHECK
    (DATE_OF_DEATH >= DATE_OF_BIRTH)
    ENABLE
    ALTER TABLE HR.PER_ALL_PEOPLE_F
    ADD CONSTRAINT PER_PER_ON_MILITARY_SRV_CHK CHECK
    (ON_MILITARY_SERVICE IN ('Y','N'))
    ENABLE
    ALTER TABLE HR.PER_ALL_PEOPLE_F
    ADD CONSTRAINT PER_DPDNT_VLNTRY_SVCE_FLAG_CHK CHECK
    (DPDNT_VLNTRY_SVCE_FLAG in ('Y','N'))
    ENABLE
    ALTER TABLE HR.PER_ALL_PEOPLE_F
    ADD CONSTRAINT PER_PER_SECOND_PASSPORT_CHK CHECK
    (SECOND_PASSPORT_EXISTS IN ('Y','N'))
    ENABLE
    ALTER TABLE HR.PER_ALL_PEOPLE_F
    ADD CONSTRAINT PER_PER_FAST_PATH_EMPLOYEE_CHK CHECK
    (FAST_PATH_EMPLOYEE IN ('Y','N'))
    ENABLE
    ALTER TABLE HR.PER_ALL_PEOPLE_F
    ADD CONSTRAINT PER_COORD_BEN_NO_CVG_FLAG CHECK
    (COORD_BEN_NO_CVG_FLAG in ('Y','N'))
    ENABLE
    ALTER TABLE HR.PER_ALL_PEOPLE_F
    ADD CONSTRAINT PER_PER_RESUME_EXISTS_CHK CHECK
    (RESUME_EXISTS IN ('Y','N'))
    ENABLE
    ALTER TABLE HR.PER_ALL_PEOPLE_F
    ADD CONSTRAINT PER_PER_SEX_CHK CHECK
    (SEX IN ('M', 'F'))
    ENABLE
    ALTER TABLE HR.PER_ALL_PEOPLE_F
    ADD CONSTRAINT PER_PER_EXPENSE_CHECK_SEND_CHK CHECK
    (EXPENSE_CHECK_SEND_TO_ADDRESS IN ('H', 'O', 'P'))
    ENABLE
    CREATE INDEX HR.CSUH_PPF_ATTR12_IDX ON HR.PER_ALL_PEOPLE_F (ATTRIBUTE12 ASC) TABLESPACE "HR_INDEX_SPACE_01"
    LOGGING
    PCTFREE 10
    INITRANS 2
    MAXTRANS 255
    STORAGE
    INITIAL 1M
    NEXT 104K
    MINEXTENTS 1
    MAXEXTENTS 8192
    PCTINCREASE 0
    FREELISTS 1
    FREELIST GROUPS 1
    BUFFER_POOL DEFAULT
    CREATE INDEX HR.CSUH_PPF_ATTR1_IDX ON HR.PER_ALL_PEOPLE_F (ATTRIBUTE1 ASC) TABLESPACE "HR_INDEX_SPACE_01"
    LOGGING
    PCTFREE 0
    INITRANS 16
    MAXTRANS 255
    STORAGE
    INITIAL 560K
    NEXT 160K
    MINEXTENTS 1
    MAXEXTENTS 8192
    PCTINCREASE 0
    FREELISTS 1
    FREELIST GROUPS 1
    BUFFER_POOL DEFAULT
    CREATE INDEX HR.PER_PEOPLE_F_N1 ON HR.PER_ALL_PEOPLE_F (UPPER(FULL_NAME) ASC) TABLESPACE "HR_INDEX_SPACE_01"
    LOGGING
    PCTFREE 10
    INITRANS 11
    MAXTRANS 255
    STORAGE
    INITIAL 16K
    NEXT 256K
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    PCTINCREASE 0
    FREELISTS 4
    FREELIST GROUPS 4
    BUFFER_POOL DEFAULT
    CREATE INDEX HR.PER_PEOPLE_F_N2 ON HR.PER_ALL_PEOPLE_F (UPPER(LAST_NAME) ASC) TABLESPACE "HR_INDEX_SPACE_01"
    LOGGING
    PCTFREE 10
    INITRANS 11
    MAXTRANS 255
    STORAGE
    INITIAL 16K
    NEXT 256K
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    PCTINCREASE 0
    FREELISTS 4
    FREELIST GROUPS 4
    BUFFER_POOL DEFAULT
    CREATE INDEX HR.PER_PEOPLE_F_N50 ON HR.PER_ALL_PEOPLE_F (LAST_NAME ASC) TABLESPACE "HR_INDEX_SPACE_01"
    LOGGING
    PCTFREE 0
    INITRANS 16
    MAXTRANS 255
    STORAGE
    INITIAL 496K
    NEXT 160K
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    PCTINCREASE 0
    FREELISTS 4
    FREELIST GROUPS 1
    BUFFER_POOL DEFAULT
    CREATE INDEX HR.PER_PEOPLE_F_N51 ON HR.PER_ALL_PEOPLE_F (EMPLOYEE_NUMBER ASC) TABLESPACE "HR_INDEX_SPACE_01"
    LOGGING
    PCTFREE 0
    INITRANS 16
    MAXTRANS 255
    STORAGE
    INITIAL 328K
    NEXT 80K
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    PCTINCREASE 0
    FREELISTS 4
    FREELIST GROUPS 1
    BUFFER_POOL DEFAULT
    CREATE INDEX HR.PER_PEOPLE_F_N52 ON HR.PER_ALL_PEOPLE_F (APPLICANT_NUMBER ASC) TABLESPACE "HR_INDEX_SPACE_01"
    LOGGING
    PCTFREE 0
    INITRANS 16
    MAXTRANS 255
    STORAGE
    INITIAL 16K
    NEXT 8K
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    PCTINCREASE 0
    FREELISTS 4
    FREELIST GROUPS 1
    BUFFER_POOL DEFAULT
    CREATE INDEX HR.PER_PEOPLE_F_N53 ON HR.PER_ALL_PEOPLE_F (NATIONAL_IDENTIFIER ASC) TABLESPACE "HR_INDEX_SPACE_01"
    LOGGING
    PCTFREE 0
    INITRANS 16
    MAXTRANS 255
    STORAGE
    INITIAL 496K
    NEXT 160K
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    PCTINCREASE 0
    FREELISTS 4
    FREELIST GROUPS 1
    BUFFER_POOL DEFAULT
    CREATE INDEX HR.PER_PEOPLE_F_N54 ON HR.PER_ALL_PEOPLE_F (FULL_NAME ASC) TABLESPACE "HR_INDEX_SPACE_01"
    LOGGING
    PCTFREE 0
    INITRANS 16
    MAXTRANS 255
    STORAGE
    INITIAL 760K
    NEXT 240K
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    PCTINCREASE 0
    FREELISTS 4
    FREELIST GROUPS 1
    BUFFER_POOL DEFAULT
    CREATE INDEX HR.PER_PEOPLE_F_N55 ON HR.PER_ALL_PEOPLE_F (PARTY_ID ASC) TABLESPACE "HR_INDEX_SPACE_01"
    LOGGING
    PCTFREE 10
    INITRANS 11
    MAXTRANS 255
    STORAGE
    INITIAL 16K
    NEXT 4M
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    PCTINCREASE 0
    FREELISTS 4
    FREELIST GROUPS 4
    BUFFER_POOL DEFAULT
    CREATE INDEX HR.PER_PEOPLE_F_N56 ON HR.PER_ALL_PEOPLE_F (NPW_NUMBER ASC) TABLESPACE "HR_INDEX_SPACE_01"
    LOGGING
    PCTFREE 10
    INITRANS 11
    MAXTRANS 255
    STORAGE
    INITIAL 16K
    NEXT 4M
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    PCTINCREASE 0
    FREELISTS 4
    FREELIST GROUPS 4
    BUFFER_POOL DEFAULT
    CREATE INDEX HR.PER_PEOPLE_F_N57 ON HR.PER_ALL_PEOPLE_F (UPPER(GLOBAL_NAME) ASC) TABLESPACE "HR_INDEX_SPACE_01"
    LOGGING
    PCTFREE 10
    INITRANS 11
    MAXTRANS 255
    STORAGE
    INITIAL 16K
    NEXT 256K
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    PCTINCREASE 0
    FREELISTS 4
    FREELIST GROUPS 4
    BUFFER_POOL DEFAULT
    CREATE INDEX HR.PER_PEOPLE_F_N58 ON HR.PER_ALL_PEOPLE_F (UPPER(LOCAL_NAME) ASC) TABLESPACE "HR_INDEX_SPACE_01"
    LOGGING
    PCTFREE 10
    INITRANS 11
    MAXTRANS 255
    STORAGE
    INITIAL 16K
    NEXT 256K
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    PCTINCREASE 0
    FREELISTS 4
    FREELIST GROUPS 4
    BUFFER_POOL DEFAULT
    CREATE INDEX HR.PER_PEOPLE_F_N59 ON HR.PER_ALL_PEOPLE_F (EMAIL_ADDRESS ASC) TABLESPACE "HR_INDEX_SPACE_01"
    LOGGING
    PCTFREE 10
    INITRANS 11
    MAXTRANS 255
    STORAGE
    INITIAL 16K
    NEXT 4M
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    PCTINCREASE 0
    FREELISTS 4
    FREELIST GROUPS 4
    BUFFER_POOL DEFAULT
    CREATE INDEX HR.PER_PEOPLE_F_N60 ON HR.PER_ALL_PEOPLE_F (GLOBAL_NAME ASC) TABLESPACE "HR_INDEX_SPACE_01"
    LOGGING
    PCTFREE 10
    INITRANS 11
    MAXTRANS 255
    STORAGE
    INITIAL 16K
    NEXT 4M
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    PCTINCREASE 0
    FREELISTS 4
    FREELIST GROUPS 4
    BUFFER_POOL DEFAULT
    ;

  • Removing the Duplicate Values from output without using Keyword DISTINCT

    Hi,
    I'm running the below query without DISTINCT Keyword and getting Duplicate results. can you please tell me what needs to be done if I want unique values without using Distinct.
    select hra.Location_code
    ,hra.Description
    ,hra.Address_line_1
    ,hra.Address_line_2
    ,hra.Address_line_3
    ,hra.town_or_city
    ,hra.Region_1
    ,hra.Postal_Code
    ,hra.country
    ,hra.attribute1
    ,hra.attribute5
    ,hra.attribute6
    ,hra.attribute8
    ,hra.attribute9
    ,hra.attribute2
    ,hra.attribute3
    ,hra.attribute4
    ,hra.attribute7
    ,hra.attribute10
    from hr_locations_all hra
    ,per_all_people_f papf
    ,per_person_types ppt
    , per_person_type_usages_f pptuf
    ,hr_all_organization_units haou
    ,hr_all_organization_units haou1
    where 1=1
    and hra.business_group_id = papf.business_group_id
    and hra.business_group_id = ppt.business_group_id
    and pptuf.person_id = papf.person_id
    and pptuf.person_type_id = ppt.person_type_id
    and ppt.system_person_type = 'EMP'
    and ((hra.inactive_date is null) or (trunc(hra.inactive_date)>= to_date('01/01/2012','mm/dd/yyyy')))
    and to_date('01/01/2012','mm/dd/yyyy') between trunc(pptuf.effective_start_date) and trunc(pptuf.effective_end_date)
    and((papf.effective_end_date is null) or (trunc(papf.effective_end_date)>= to_date('01/01/2012','mm/dd/yyyy')))
    and ((haou1.date_to is null) or (trunc(haou1.date_to)>= to_date('01/01/2012','mm/dd/yyyy')))
    and papf.business_group_id = haou.organization_id
    and hra.location_id = haou1.location_id;

    Hi,
    Try using this Code
    select hra.Location_code
    ,hra.Description
    ,hra.Address_line_1
    ,hra.Address_line_2
    ,hra.Address_line_3
    ,hra.town_or_city
    ,hra.Region_1
    ,hra.Postal_Code
    ,hra.country
    ,hra.attribute1
    ,hra.attribute5
    ,hra.attribute6
    ,hra.attribute8
    ,hra.attribute9
    ,hra.attribute2
    ,hra.attribute3
    ,hra.attribute4
    ,hra.attribute7
    ,hra.attribute10
    from hr_locations_all hra
    ,per_all_people_f papf,
    per_all_assignments_f paaf,
    per_person_types ppt
    , per_person_type_usages_f pptuf
    ,hr_all_organization_units haou
    --,hr_all_organization_units haou1
    where 1=1
    and
    hra.business_group_id = papf.business_group_id
    and hra.business_group_id = ppt.business_group_id
    and pptuf.person_id = papf.person_id
    and papf.person_id=paaf.person_id
    and pptuf.person_type_id = ppt.person_type_id
    and ppt.system_person_type = 'EMP'
    --and ((hra.inactive_date is null) or (trunc(hra.inactive_date)>= to_date('01/01/2012','mm/dd/yyyy')))
    and to_date('01/01/2012','mm/dd/yyyy') between trunc(pptuf.effective_start_date) and trunc(pptuf.effective_end_date)
    --and((papf.effective_end_date is null) or (trunc(papf.effective_end_date)>= to_date('01/01/2012','mm/dd/yyyy')))
    --and((paaf.effective_end_date is null) or (trunc(paaf.effective_end_date)>= to_date('01/01/2012','mm/dd/yyyy')))
    and to_date('01/01/2012','mm/dd/yyyy') between trunc(papf.effective_start_date) and trunc(papf.effective_end_date)
    and to_date('01/01/2012','mm/dd/yyyy') between trunc(paaf.effective_start_date) and trunc(paaf.effective_end_date)
    --and ((haou1.date_to is null) or (trunc(haou1.date_to)>= to_date('01/01/2012','mm/dd/yyyy')))
    --and papf.business_group_id = haou.organization_id
    and paaf.location_id=hra.location_id
    and paaf.organization_id=haou.organization_id
    --and papf.employee_number='1010008830'
    and hra.location_id = haou.location_id;

  • Error in SDE_ORA_AbsenceEvent_Full workflow

    I am getting a task failure on the SDE_ORA_AbsenceEvent task when running the Human Resource - Oracle R1212 execution plan from DAC. I have copied and pasted the session log below. The error I see within it is an 'ORA-01846: not a valid day of the week' error. The offending SQL is within the session log below. I am running the Human Resources - Oracle R1212 execution plan out of the box in order to detect any failures before beginning any configuration work. The Informatica workflow that fails is in the SDE_ORAR1212_Adaptor folder and is named SDE_ORA_AbsenceEvent_Full. The workflow log shows error on the 3rd from last and the last lines of the log.
    Please help because I cannot find much about this in the blogosphere except for performance issues with this workflow because of a certain API call within the offending SQL.
    Thanks and the session log now follows:
    DIRECTOR> VAR_27028 Use override value [DataWarehouse] for session parameter:[$DBConnection_OLAP].
    DIRECTOR> VAR_27028 Use override value [ORA_R1212] for session parameter:[$DBConnection_OLTP].
    DIRECTOR> VAR_27028 Use override value [ORA_R1212.DATAWAREHOUSE.SDE_ORAR1212_Adaptor.SDE_ORA_AbsenceEvent_Full.log] for session parameter:[$PMSessionLogFile].
    DIRECTOR> VAR_27028 Use override value [27] for mapping parameter:[$$DATASOURCE_NUM_ID].
    DIRECTOR> VAR_27028 Use override value [TO_DATE('1980-01-01 00:00:00', 'YYYY-MM-D HH24:MI:SS')] for mapping parameter:[mplt_BC_ORA_AbsenceEvent.$$HR_ABSNC_EXTRACT_DATE].
    DIRECTOR> VAR_27028 Use override value [] for mapping parameter:[mplt_BC_ORA_AbsenceEvent.$$LAST_EXTRACT_DATE].
    DIRECTOR> VAR_27028 Use override value [DEFAULT] for mapping parameter:[$$TENANT_ID].
    DIRECTOR> TM_6014 Initializing session [SDE_ORA_AbsenceEvent_Full] at [Tue Nov 16 09:01:17 2010].
    DIRECTOR> TM_6683 Repository Name: [p2]
    DIRECTOR> TM_6684 Server Name: [ip2]
    DIRECTOR> TM_6686 Folder: [SDE_ORAR1212_Adaptor]
    DIRECTOR> TM_6685 Workflow: [SDE_ORA_AbsenceEvent_Full] Run Instance Name: [] Run Id: [979]
    DIRECTOR> TM_6101 Mapping name: SDE_ORA_AbsenceEvent [version 1].
    DIRECTOR> TM_6963 Pre 85 Timestamp Compatibility is Enabled
    DIRECTOR> TM_6964 Date format for the Session is [MM/DD/YYYY HH24:MI:SS]
    DIRECTOR> TM_6827 [mnt/disk07/informatica/server/infa_shared/Storage] will be used as storage directory for session [SDE_ORA_AbsenceEvent_Full].
    DIRECTOR> CMN_1802 Session recovery cache initialization is complete.
    DIRECTOR> TM_6703 Session [SDE_ORA_AbsenceEvent_Full] is run by 64-bit Integration Service [node01_tstrdobiap168], version [8.6.1 HotFix11], build [0504].
    MANAGER> PETL_24058 Running Partition Group [1].
    MANAGER> PETL_24000 Parallel Pipeline Engine initializing.
    MANAGER> PETL_24001 Parallel Pipeline Engine running.
    MANAGER> PETL_24003 Initializing session run.
    MAPPING> CMN_1569 Server Mode: [UNICODE]
    MAPPING> CMN_1570 Server Code page: [UTF-8 encoding of Unicode]
    MAPPING> TM_6151 The session sort order is [Binary].
    MAPPING> TM_6185 Warning. Code page validation is disabled in this session.
    MAPPING> TM_6156 Using low precision processing.
    MAPPING> TM_6180 Deadlock retry logic will not be implemented.
    MAPPING> TM_6307 DTM error log disabled.
    MAPPING> TE_7022 TShmWriter: Initialized
    MAPPING> TM_6007 DTM initialized successfully for session [SDE_ORA_AbsenceEvent_Full]
    DIRECTOR> PETL_24033 All DTM Connection Info: [<NONE>].
    MANAGER> PETL_24004 Starting pre-session tasks. : (Tue Nov 16 09:01:17 2010)
    MANAGER> PETL_24027 Pre-session task completed successfully. : (Tue Nov 16 09:01:17 2010)
    DIRECTOR> PETL_24006 Starting data movement.
    MAPPING> TM_6660 Total Buffer Pool size is 32000000 bytes and Block size is 128000 bytes.
    LKPDP_1> DBG_21693 mplt_SA_ORA_AbsenceEvent.Lkp_Absence_Status{{SRT}}: Cache size for partition [1] = [19922944]
    LKPDP_1> SORT_40419 For Transformation [mplt_SA_ORA_AbsenceEvent.Lkp_Absence_Status{{SRT}}], memory used is [19922944] bytes and row size is 300 bytes.
    LKPDP_1> TE_7212 Increasing [Index Cache] size for transformation [mplt_SA_ORA_AbsenceEvent.Lkp_Absence_Status] from [1048576] to [1050000].
    READER_1_1_1> DBG_21438 Reader: Source is [aebts02], user [apps]
    READER_1_1_1> BLKR_16051 Source database connection [ORA_R1212] code page: [UTF-8 encoding of Unicode]
    READER_1_1_1> BLKR_16003 Initialization completed successfully.
    WRITER_1_*_1> WRT_8147 Writer: Target is database [orcl], user [edw], bulk mode [OFF]
    WRITER_1_*_1> WRT_8221 Target database connection [DataWarehouse] code page: [UTF-8 encoding of Unicode]
    WRITER_1_*_1> WRT_8124 Target Table W_ABSENCE_EVENT_DS :SQL INSERT statement:
    INSERT INTO W_ABSENCE_EVENT_DS(ABSENCE_BEGIN_DT,ABSENCE_END_DT,ABSENCE_BEGIN_TM,ABSENCE_END_TM,ORIGINAL_BEGIN_DT,NOTIFIED_DT,APPROVED_DT,ABSENCE_REASON_CODE,ABSENCE_TYPE_CODE,ABSENCE_CATEGORY_CODE,APPROVAL_STATUS,STATUS_CODE,STATUS_NAME,PAID_UNPAID_CODE,DAYS_DURATION,HOURS_DURATION,DAY_DURATION_START,HOURS_DURATION_START,DAY_DURATION_MID,HOURS_DURATION_MID,DAY_DURATION_END,HOURS_DURATION_END,DAYS_NOTIFIED,ABSENCE_TYPE_RSN_ID,ABSENCE_STATUS_ID,CREATED_BY_ID,EMPLOYEE_ID,ASSIGNMENT_INTEGRATION_ID,CHANGED_BY_ID,CREATED_ON_DT,CHANGED_ON_DT,AUX1_CHANGED_ON_DT,AUX2_CHANGED_ON_DT,AUX3_CHANGED_ON_DT,AUX4_CHANGED_ON_DT,DELETE_FLG,DATASOURCE_NUM_ID,INTEGRATION_ID,TENANT_ID,X_CUSTOM) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
    WRITER_1_*_1> WRT_8124 Target Table W_ABSENCE_EVENT_DS :SQL DELETE statement:
    DELETE FROM W_ABSENCE_EVENT_DS WHERE DATASOURCE_NUM_ID = ? AND INTEGRATION_ID = ?
    WRITER_1_*_1> WRT_8270 Target connection group #1 consists of target(s) [W_ABSENCE_EVENT_DS]
    WRITER_1_*_1> WRT_8003 Writer initialization complete.
    READER_1_1_1> BLKR_16007 Reader run started.
    READER_1_1_1> RR_4029 SQ Instance [mplt_BC_ORA_AbsenceEvent.SQ_PER_ABSENCE_ATTENDANCES] User specified SQL Query [SELECT
    /*+ use_hash(per_absence_attendances per_all_assignments_f
    per_absence_attendance_types per_abs_attendance_reasons )*/
    tab.absence_attendance_id absence_attendance_id
    ,tab.date_start absence_begin_dt
    ,NVL(tab.date_end, to_date('31-DEC-4712','DD-MON-YYYY')) absence_end_dt
    ,to_date(to_char(tab.date_start, 'YYYYMMDD ') || NVL(tab.time_start,'00:00'), 'YYYYMMDD HH24:MI') absence_begin_tm
    ,to_date(to_char(tab.date_end, 'YYYYMMDD ') || NVL(tab.time_end,'00:00'), 'YYYYMMDD HH24:MI') absence_end_tm
    ,tab.date_start original_begin_dt
    ,tab.date_notification notified_dt
    ,to_date(null) approved_dt
    ,tab.name absence_reason_code
    ,tab.absence_attendance_type_id absence_attendance_type_id
    ,tab.absence_category absence_category_code
    ,tab.approval_status approval_status
    ,null status_code
    ,null paid_unpaid_code
    ,to_char(tab.absence_attendance_type_id) || '~' || NVL(tab.name,'Unspecified') absence_type_rsn_id
    ,'Unspecified' absence_status_id
    ,tab.person_id employee_id
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.days_duration IS NOT NULL
    THEN tab.days_duration
    WHEN tab.utl_hours_in_day > 0
    THEN tab.hours_duration / tab.utl_hours_in_day
    END days_duration
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.hours_duration IS NOT NULL
    THEN tab.hours_duration
    ELSE tab.days_duration * tab.utl_hours_in_day
    END hours_duration
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.days_duration IS NOT NULL
    THEN tab.days_duration / tab.no_days
    WHEN tab.utl_hours_in_day > 0
    THEN (tab.hours_duration / tab.utl_hours_in_day )/ tab.no_days
    END day_duration_start
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.hours_duration IS NOT NULL
    THEN tab.hours_duration / tab.no_days
    ELSE (tab.days_duration * tab.utl_hours_in_day)/ tab.no_days
    END hours_duration_start
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.days_duration IS NOT NULL
    THEN tab.days_duration / tab.no_days
    WHEN tab.utl_hours_in_day > 0
    THEN (tab.hours_duration / tab.utl_hours_in_day )/ tab.no_days
    END day_duration_mid
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.hours_duration IS NOT NULL
    THEN tab.hours_duration / tab.no_days
    ELSE (tab.days_duration * tab.utl_hours_in_day)/ tab.no_days
    END hours_duration_mid
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.days_duration IS NOT NULL
    THEN tab.days_duration / tab.no_days
    WHEN tab.utl_hours_in_day > 0
    THEN (tab.hours_duration / tab.utl_hours_in_day )/ tab.no_days
    END day_duration_end
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.hours_duration IS NOT NULL
    THEN tab.hours_duration / tab.no_days
    ELSE (tab.days_duration * tab.utl_hours_in_day)/ tab.no_days
    END hours_duration_end
    ,CASE WHEN tab.date_notification < tab.date_start
    THEN tab.date_start - tab.date_notification
    ELSE 0
    END days_notified
    ,tab.assignment_id assignment_integration_id
    FROM
    (SELECT
    paa.absence_attendance_id
    ,paa.date_start
    ,NVL(paa.date_end, to_date('31-DEC-4712','DD-MON-YYYY'))
    date_end
    ,CASE when paa.date_start > TRUNC(sysdate) then 0
    WHEN paa.date_start <= NVL(paa.date_end, trunc(sysdate))
    THEN NVL(paa.date_end, trunc(sysdate)) - paa.date_start + 1
    ELSE to_number(null)
    END no_days
    ,paa.date_notification
    ,paa.person_id
    ,pat.absence_category
    ,par.name
    ,paa.absence_attendance_type_id
    ,paa.abs_attendance_reason_id
    ,paa.time_start
    ,paa.time_end
    ,paa.approval_status
    ,asg.assignment_id
    ,CASE WHEN paa.absence_days IS NOT NULL
    THEN paa.absence_days
    WHEN paa.absence_hours IS NOT NULL OR
    (paa.date_start = paa.date_end AND
    paa.time_start IS NOT NULL AND
    paa.time_end IS NOT NULL)
    THEN to_number(null)
    WHEN paa.date_start < paa.date_end
    THEN paa.date_end - paa.date_start + 1
    when paa.absence_days is null and paa.absence_hours is null
    then nvl(paa.date_end,trunc(sysdate))-paa.date_start + 1
    END days_duration
    ,CASE WHEN paa.absence_hours IS NOT NULL OR
    (paa.date_start = paa.date_end AND
    paa.time_start IS NOT NULL AND
    paa.time_end IS NOT NULL)
    THEN NVL(paa.absence_hours, 24 * (to_date(NVL(paa.time_end,'00:00') , 'HH24:MI') -
    to_date(NVL(paa.time_start,'00:00'), 'HH24:MI')))
    END hours_duration
    , case when paa.date_start > TRUNC(sysdate) then 0
    else hri_bpl_utilization.convert_days_to_hours
    (asg.assignment_id, asg.business_group_id, paa.date_start, TRUNC(sysdate), 1)
    end utl_hours_in_day
    FROM
    per_absence_attendances paa
    ,per_absence_attendance_types pat
    ,per_abs_attendance_reasons par
    ,per_all_assignments_f asg
    WHERE paa.absence_attendance_type_id = pat.absence_attendance_type_id
    AND paa.abs_attendance_reason_id = par.abs_attendance_reason_id (+)
    AND paa.person_id = asg.person_id
    AND asg.primary_flag = 'Y'
    AND asg.assignment_type IN ('E','C')
    AND paa.date_start BETWEEN asg.effective_start_date
    AND asg.effective_end_date
    AND paa.date_start IS NOT NULL
    AND NVL(paa.date_end, to_date('31-DEC-4712','DD-MON-YYYY')) >= TO_DATE('1980-01-01 00:00:00', 'YYYY-MM-D HH24:MI:SS') ) tab]
    READER_1_1_1> RR_4049 SQL Query issued to database : (Tue Nov 16 09:01:18 2010)
    WRITER_1_*_1> WRT_8005 Writer run started.
    WRITER_1_*_1> WRT_8158
    *****START LOAD SESSION*****
    Load Start Time: Tue Nov 16 09:01:18 2010
    Target tables:
    W_ABSENCE_EVENT_DS
    READER_1_1_1> CMN_1761 Timestamp Event: [Tue Nov 16 09:01:18 2010]
    READER_1_1_1> RR_4035 SQL Error [
    ORA-01846: not a valid day of the week
    Database driver error...
    Function Name : Execute
    SQL Stmt : SELECT
    /*+ use_hash(per_absence_attendances per_all_assignments_f
    per_absence_attendance_types per_abs_attendance_reasons )*/
    tab.absence_attendance_id absence_attendance_id
    ,tab.date_start absence_begin_dt
    ,NVL(tab.date_end, to_date('31-DEC-4712','DD-MON-YYYY')) absence_end_dt
    ,to_date(to_char(tab.date_start, 'YYYYMMDD ') || NVL(tab.time_start,'00:00'), 'YYYYMMDD HH24:MI') absence_begin_tm
    ,to_date(to_char(tab.date_end, 'YYYYMMDD ') || NVL(tab.time_end,'00:00'), 'YYYYMMDD HH24:MI') absence_end_tm
    ,tab.date_start original_begin_dt
    ,tab.date_notification notified_dt
    ,to_date(null) approved_dt
    ,tab.name absence_reason_code
    ,tab.absence_attendance_type_id absence_attendance_type_id
    ,tab.absence_category absence_category_code
    ,tab.approval_status approval_status
    ,null status_code
    ,null paid_unpaid_code
    ,to_char(tab.absence_attendance_type_id) || '~' || NVL(tab.name,'Unspecified') absence_type_rsn_id
    ,'Unspecified' absence_status_id
    ,tab.person_id employee_id
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.days_duration IS NOT NULL
    THEN tab.days_duration
    WHEN tab.utl_hours_in_day > 0
    THEN tab.hours_duration / tab.utl_hours_in_day
    END days_duration
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.hours_duration IS NOT NULL
    THEN tab.hours_duration
    ELSE tab.days_duration * tab.utl_hours_in_day
    END hours_duration
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.days_duration IS NOT NULL
    THEN tab.days_duration / tab.no_days
    WHEN tab.utl_hours_in_day > 0
    THEN (tab.hours_duration / tab.utl_hours_in_day )/ tab.no_days
    END day_duration_start
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.hours_duration IS NOT NULL
    THEN tab.hours_duration / tab.no_days
    ELSE (tab.days_duration * tab.utl_hours_in_day)/ tab.no_days
    END hours_duration_start
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.days_duration IS NOT NULL
    THEN tab.days_duration / tab.no_days
    WHEN tab.utl_hours_in_day > 0
    THEN (tab.hours_duration / tab.utl_hours_in_day )/ tab.no_days
    END day_duration_mid
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.hours_duration IS NOT NULL
    THEN tab.hours_duration / tab.no_days
    ELSE (tab.days_duration * tab.utl_hours_in_day)/ tab.no_days
    END hours_duration_mid
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.days_duration IS NOT NULL
    THEN tab.days_duration / tab.no_days
    WHEN tab.utl_hours_in_day > 0
    THEN (tab.hours_duration / tab.utl_hours_in_day )/ tab.no_days
    END day_duration_end
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.hours_duration IS NOT NULL
    THEN tab.hours_duration / tab.no_days
    ELSE (tab.days_duration * tab.utl_hours_in_day)/ tab.no_days
    END hours_duration_end
    ,CASE WHEN tab.date_notification < tab.date_start
    THEN tab.date_start - tab.date_notification
    ELSE 0
    END days_notified
    ,tab.assignment_id assignment_integration_id
    FROM
    (SELECT
    paa.absence_attendance_id
    ,paa.date_start
    ,NVL(paa.date_end, to_date('31-DEC-4712','DD-MON-YYYY'))
    date_end
    ,CASE when paa.date_start > TRUNC(sysdate) then 0
    WHEN paa.date_start <= NVL(paa.date_end, trunc(sysdate))
    THEN NVL(paa.date_end, trunc(sysdate)) - paa.date_start + 1
    ELSE to_number(null)
    END no_days
    ,paa.date_notification
    ,paa.person_id
    ,pat.absence_category
    ,par.name
    ,paa.absence_attendance_type_id
    ,paa.abs_attendance_reason_id
    ,paa.time_start
    ,paa.time_end
    ,paa.approval_status
    ,asg.assignment_id
    ,CASE WHEN paa.absence_days IS NOT NULL
    THEN paa.absence_days
    WHEN paa.absence_hours IS NOT NULL OR
    (paa.date_start = paa.date_end AND
    paa.time_start IS NOT NULL AND
    paa.time_end IS NOT NULL)
    THEN to_number(null)
    WHEN paa.date_start < paa.date_end
    THEN paa.date_end - paa.date_start + 1
    when paa.absence_days is null and paa.absence_hours is null
    then nvl(paa.date_end,trunc(sysdate))-paa.date_start + 1
    END days_duration
    ,CASE WHEN paa.absence_hours IS NOT NULL OR
    (paa.date_start = paa.date_end AND
    paa.time_start IS NOT NULL AND
    paa.time_end IS NOT NULL)
    THEN NVL(paa.absence_hours, 24 * (to_date(NVL(paa.time_end,'00:00') , 'HH24:MI') -
    to_date(NVL(paa.time_start,'00:00'), 'HH24:MI')))
    END hours_duration
    , case when paa.date_start > TRUNC(sysdate) then 0
    else hri_bpl_utilization.convert_days_to_hours
    (asg.assignment_id, asg.business_group_id, paa.date_start, TRUNC(sysdate), 1)
    end utl_hours_in_day
    FROM
    per_absence_attendances paa
    ,per_absence_attendance_types pat
    ,per_abs_attendance_reasons par
    ,per_all_assignments_f asg
    WHERE paa.absence_attendance_type_id = pat.absence_attendance_type_id
    AND paa.abs_attendance_reason_id = par.abs_attendance_reason_id (+)
    AND paa.person_id = asg.person_id
    AND asg.primary_flag = 'Y'
    AND asg.assignment_type IN ('E','C')
    AND paa.date_start BETWEEN asg.effective_start_date
    AND asg.effective_end_date
    AND paa.date_start IS NOT NULL
    AND NVL(paa.date_end, to_date('31-DEC-4712','DD-MON-YYYY')) >= TO_DATE('1980-01-01 00:00:00', 'YYYY-MM-D HH24:MI:SS') ) tab
    Database driver error...
    Function Name : Execute
    SQL Stmt : SELECT
    /*+ use_hash(per_absence_attendances per_all_assignments_f
    per_absence_attendance_types per_abs_attendance_reasons )*/
    tab.absence_attendance_id absence_attendance_id
    ,tab.date_start absence_begin_dt
    ,NVL(tab.date_end, to_date('31-DEC-4712','DD-MON-YYYY')) absence_end_dt
    ,to_date(to_char(tab.date_start, 'YYYYMMDD ') || NVL(tab.time_start,'00:00'), 'YYYYMMDD HH24:MI') absence_begin_tm
    ,to_date(to_char(tab.date_end, 'YYYYMMDD ') || NVL(tab.time_end,'00:00'), 'YYYYMMDD HH24:MI') absence_end_tm
    ,tab.date_start original_begin_dt
    ,tab.date_notification notified_dt
    ,to_date(null) approved_dt
    ,tab.name absence_reason_code
    ,tab.absence_attendance_type_id absence_attendance_type_id
    ,tab.absence_category absence_category_code
    ,tab.approval_status approval_status
    ,null status_code
    ,null paid_unpaid_code
    ,to_char(tab.absence_attendance_type_id) || '~' || NVL(tab.name,'Unspecified') absence_type_rsn_id
    ,'Unspecified' absence_status_id
    ,tab.person_id employee_id
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.days_duration IS NOT NULL
    THEN tab.days_duration
    WHEN tab.utl_hours_in_day > 0
    THEN tab.hours_duration / tab.utl_hours_in_day
    END days_duration
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.hours_duration IS NOT NULL
    THEN tab.hours_duration
    ELSE tab.days_duration * tab.utl_hours_in_day
    END hours_duration
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.days_duration IS NOT NULL
    THEN tab.days_duration / tab.no_days
    WHEN tab.utl_hours_in_day > 0
    THEN (tab.hours_duration / tab.utl_hours_in_day )/ tab.no_days
    END day_duration_start
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.hours_duration IS NOT NULL
    THEN tab.hours_duration / tab.no_days
    ELSE (tab.days_duration * tab.utl_hours_in_day)/ tab.no_days
    END hours_duration_start
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.days_duration IS NOT NULL
    THEN tab.days_duration / tab.no_days
    WHEN tab.utl_hours_in_day > 0
    THEN (tab.hours_duration / tab.utl_hours_in_day )/ tab.no_days
    END day_duration_mid
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.hours_duration IS NOT NULL
    THEN tab.hours_duration / tab.no_days
    ELSE (tab.days_duration * tab.utl_hours_in_day)/ tab.no_days
    END hours_duration_mid
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.days_duration IS NOT NULL
    THEN tab.days_duration / tab.no_days
    WHEN tab.utl_hours_in_day > 0
    THEN (tab.hours_duration / tab.utl_hours_in_day )/ tab.no_days
    END day_duration_end
    ,CASE when tab.date_start > TRUNC(sysdate) then 0
    WHEN tab.hours_duration IS NOT NULL
    THEN tab.hours_duration / tab.no_days
    ELSE (tab.days_duration * tab.utl_hours_in_day)/ tab.no_days
    END hours_duration_end
    ,CASE WHEN tab.date_notification < tab.date_start
    THEN tab.date_start - tab.date_notification
    ELSE 0
    END days_notified
    ,tab.assignment_id assignment_integration_id
    FROM
    (SELECT
    paa.absence_attendance_id
    ,paa.date_start
    ,NVL(paa.date_end, to_date('31-DEC-4712','DD-MON-YYYY'))
    date_end
    ,CASE when paa.date_start > TRUNC(sysdate) then 0
    WHEN paa.date_start <= NVL(paa.date_end, trunc(sysdate))
    THEN NVL(paa.date_end, trunc(sysdate)) - paa.date_start + 1
    ELSE to_number(null)
    END no_days
    ,paa.date_notification
    ,paa.person_id
    ,pat.absence_category
    ,par.name
    ,paa.absence_attendance_type_id
    ,paa.abs_attendance_reason_id
    ,paa.time_start
    ,paa.time_end
    ,paa.approval_status
    ,asg.assignment_id
    ,CASE WHEN paa.absence_days IS NOT NULL
    THEN paa.absence_days
    WHEN paa.absence_hours IS NOT NULL OR
    (paa.date_start = paa.date_end AND
    paa.time_start IS NOT NULL AND
    paa.time_end IS NOT NULL)
    THEN to_number(null)
    WHEN paa.date_start < paa.date_end
    THEN paa.date_end - paa.date_start + 1
    when paa.absence_days is null and paa.absence_hours is null
    then nvl(paa.date_end,trunc(sysdate))-paa.date_start + 1
    END days_duration
    ,CASE WHEN paa.absence_hours IS NOT NULL OR
    (paa.date_start = paa.date_end AND
    paa.time_start IS NOT NULL AND
    paa.time_end IS NOT NULL)
    THEN NVL(paa.absence_hours, 24 * (to_date(NVL(paa.time_end,'00:00') , 'HH24:MI') -
    to_date(NVL(paa.time_start,'00:00'), 'HH24:MI')))
    END hours_duration
    , case when paa.date_start > TRUNC(sysdate) then 0
    else hri_bpl_utilization.convert_days_to_hours
    (asg.assignment_id, asg.business_group_id, paa.date_start, TRUNC(sysdate), 1)
    end utl_hours_in_day
    FROM
    per_absence_attendances paa
    ,per_absence_attendance_types pat
    ,per_abs_attendance_reasons par
    ,per_all_assignments_f asg
    WHERE paa.absence_attendance_type_id = pat.absence_attendance_type_id
    AND paa.abs_attendance_reason_id = par.abs_attendance_reason_id (+)
    AND paa.person_id = asg.person_id
    AND asg.primary_flag = 'Y'
    AND asg.assignment_type IN ('E','C')
    AND paa.date_start BETWEEN asg.effective_start_date
    AND asg.effective_end_date
    AND paa.date_start IS NOT NULL
    AND NVL(paa.date_end, to_date('31-DEC-4712','DD-MON-YYYY')) >= TO_DATE('1980-01-01 00:00:00', 'YYYY-MM-D HH24:MI:SS') ) tab].
    READER_1_1_1> CMN_1761 Timestamp Event: [Tue Nov 16 09:01:18 2010]
    READER_1_1_1> BLKR_16004 ERROR: Prepare failed.
    WRITER_1_*_1> WRT_8333 Rolling back all the targets due to fatal session error.
    WRITER_1_*_1> WRT_8325 Final rollback executed for the target [W_ABSENCE_EVENT_DS] at end of load
    WRITER_1_*_1> WRT_8035 Load complete time: Tue Nov 16 09:01:18 2010
    LOAD SUMMARY
    ============
    WRT_8036 Target: W_ABSENCE_EVENT_DS (Instance Name: [W_ABSENCE_EVENT_DS])
    WRT_8044 No data loaded for this target
    WRITER_1__1> WRT_8043 ****END LOAD SESSION*****
    MANAGER> PETL_24031
    ***** RUN INFO FOR TGT LOAD ORDER GROUP [1], CONCURRENT SET [1] *****
    Thread [READER_1_1_1] created for [the read stage] of partition point [mplt_BC_ORA_AbsenceEvent.SQ_PER_ABSENCE_ATTENDANCES] has completed. The total run time was insufficient for any meaningful statistics.
    Thread [TRANSF_1_1_1] created for [the transformation stage] of partition point [mplt_BC_ORA_AbsenceEvent.SQ_PER_ABSENCE_ATTENDANCES] has completed. The total run time was insufficient for any meaningful statistics.
    Thread [WRITER_1_*_1] created for [the write stage] of partition point [W_ABSENCE_EVENT_DS] has completed. The total run time was insufficient for any meaningful statistics.
    MAPPING> CMN_1793 The index cache size that would hold [0] rows in the lookup table for [mplt_SA_ORA_AbsenceEvent.Lkp_Absence_Status], in memory, is [0] bytes
    MAPPING> CMN_1792 The data cache size that would hold [0] rows in the lookup table for [mplt_SA_ORA_AbsenceEvent.Lkp_Absence_Status], in memory, is [0] bytes
    MANAGER> PETL_24005 Starting post-session tasks. : (Tue Nov 16 09:01:18 2010)
    MANAGER> PETL_24029 Post-session task completed successfully. : (Tue Nov 16 09:01:18 2010)
    MAPPING> TE_7216 Deleting cache files [PMLKUP4513_131076_0_979L64] for transformation [mplt_SA_ORA_AbsenceEvent.Lkp_Absence_Status].
    MAPPING> TM_6018 The session completed with [0] row transformation errors.
    MANAGER> PETL_24002 Parallel Pipeline Engine finished.
    DIRECTOR> PETL_24013 Session run completed with failure.
    DIRECTOR> TM_6022
    SESSION LOAD SUMMARY
    ================================================
    DIRECTOR> TM_6252 Source Load Summary.
    DIRECTOR> CMN_1740 Table: [SQ_PER_ABSENCE_ATTENDANCES] (Instance Name: [mplt_BC_ORA_AbsenceEvent.SQ_PER_ABSENCE_ATTENDANCES])
         Output Rows [0], Affected Rows [0], Applied Rows [0], Rejected Rows [0]
    DIRECTOR> TM_6253 Target Load Summary.
    DIRECTOR> CMN_1740 Table: [W_ABSENCE_EVENT_DS] (Instance Name: [W_ABSENCE_EVENT_DS])
         Output Rows [0], Affected Rows [0], Applied Rows [0], Rejected Rows [0]
    DIRECTOR> TM_6023
    ===================================================
    DIRECTOR> TM_6020 Session [SDE_ORA_AbsenceEvent_Full] completed at [Tue Nov 16 09:01:19 2010].

    Hi
    Did you manage to find a solution to this problem?
    okay i been puzzling with this one a bit,how i resolved it was as follows:
    'AND NVL(paa.date_end, to_date('31-DEC-4712','DD-MON-YYYY')) >= TO_DATE('1980-01-01 00:00:00', 'YYYY-MM-D HH24:MI:SS') ) tab]'
    you will notice the yyyy-mm-dd function is missing a d from the parameter file
    if you take the sql and run it with the proper conversion of TO_DATE('1980-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS') the sql works and the workflow completes, it would seem this is a bug when the dac generates the parameter $$HR_ABSNC_EXTRACT_DATE.
    hope this helps
    Regards
    Nick
    Edited by: Nickho on Feb 7, 2011 7:55 AM

  • Question on Third Party Payroll Check in XML Publisher

    Hi:
    I have created an XML Third Party Check report that is based on the queries found in the seeded Oracle PAYUSGAR.rdf 115.24 check report. The patch 9211869 fixed an issue in the standard report where multiple checks for the same employee to the same payee for the same amount were NOT printing the correct garnishment reference number. I have reviewed the report code but have not been able to fix this same issue through XML.
    My queries will produce all of the correct data except the 2nd duplicate (same employee to the same payee for the same amount) prints the reference number from the 1st element rather than the 2nd. Does anyone know how the check data is tied to the elements through the tables?
    My example is:
    Person: Max Doe Check: 1234 Paid to: California Agency Check Amount: 121.00 Pre_payment_id: 766297 Ref # 4567
    Person: Max Doe Check: 1234 Paid to: California Agency Check Amount: 121.00 Pre_payment_id: 766302 Ref # 657AA
    (Ref # 657AA prints on the second check as Ref # 4567)
    The query from the report is:
    SELECT peev.screen_entry_value garn_ref_no
    ,:check_amount
    ,TO_CHAR(pay_us_payment_pkg.get_trx_date(
    :business_group_id,
    :ppa_payroll_action_id,
    NULL,
    :ppa_payroll_id,
    :ppa_consolidation_set_id,
    :ppa_org_payment_method_id,
    :ppa_effective_date,
    :ppa_date_earned,
    :ppa_override_date,
    ppp.pre_payment_id,
    ppa.effective_date
    ),'DD-MON-YYYY') payment_date
    ,TO_CHAR(ppa.date_earned, 'DD-MON-YYYY')
    ,prr_att.run_result_id
    ,peef.entry_information2 -- FIPS code
    ,peef.entry_information3 -- Medical Indicator
    ,paa.assignment_action_id
    ,pet.element_type_id
    FROM pay_element_entry_values_f peev,
    pay_input_values_f piv_att,
    pay_element_entries_f peef,
    pay_run_results prr_att,
    pay_run_results prr_pay,
    pay_payroll_actions ppa,
    pay_assignment_actions paa,
    pay_action_interlocks pai,
    pay_pre_payments ppp,
    pay_input_values_f piv_pay,
    pay_run_result_values prrv_att,
    pay_run_result_values prrv_pay,
    pay_element_types_f pet,
    pay_element_types_f pet_calc,
    pay_element_classifications pec
    WHERE ROUND(ppp.VALUE ,2) = :check_amount
    AND ppp.pre_payment_id = :pre_payment_id
    AND ppp.assignment_action_id = pai.locking_action_id
    AND pai.locked_action_id = paa.assignment_action_id
    AND ppa.payroll_action_id = paa.payroll_action_id
    AND ppa.action_type IN ('R', 'Q')
    AND ((paa.source_action_id IS NOT NULL AND ppa.run_type_id IS NOT NULL) OR
    (paa.source_action_id IS NULL AND ppa.run_type_id IS NULL))
    AND ppp.personal_payment_method_id = peef.personal_payment_method_id
    AND peef.assignment_id = paa.assignment_id
    AND ppa.date_earned BETWEEN peev.effective_start_date
    AND peev.effective_end_date
    AND ppa.date_earned BETWEEN peef.effective_start_date
    AND peef.effective_end_date
    AND piv_att.input_value_id = peev.input_value_id
    AND UPPER(piv_att.NAME) = 'ATTACHMENT NUMBER'
    AND ppa.effective_Date BETWEEN piv_att.effective_start_date
    AND piv_att.effective_end_date
    AND piv_att.input_value_id = prrv_att.input_value_id
    AND prrv_att.result_value = peev.screen_entry_value
    AND prrv_att.run_result_id = prr_att.run_result_id
    AND paa.assignment_Action_id = prr_att.assignment_Action_id
    AND prr_att.element_type_id = peef.element_type_id
    AND peef.element_type_id = pet.element_type_id
    AND pet.classification_id = pec.classification_id
    AND pec.classification_name = 'Involuntary Deductions'
    AND pec.legislation_code = 'US'
    AND pec.business_group_id IS NULL
    AND fnd_number.canonical_to_number(pet.element_information5) = pet_calc.element_type_id
    AND pet_calc.element_name LIKE pet.element_name || '%Calculator'
    AND pet_calc.element_type_id = piv_pay.element_type_id
    AND NVL(ppa.date_earned, ppa.effective_date) BETWEEN piv_pay.effective_start_date AND piv_pay.effective_end_date
    AND piv_pay.input_value_id = prrv_pay.input_value_id
    AND UPPER(piv_pay.NAME) = 'PAY VALUE'
    AND fnd_number.number_to_canonical(ppp.VALUE) = prrv_pay.result_value
    AND prr_pay.run_result_id = prrv_pay.run_result_id
    AND prr_pay.assignment_action_id = paa.assignment_action_id
    AND prr_pay.element_type_id = pet_calc.element_type_id
    ORDER BY prr_att.run_result_id;
    Somehow, Oracle has fixed this in the rdf but I have not been able to figure out how exactly. This is a function call in the report but they are passing the check amount and the prepayment_id. Regardless of which pre_payment_id is sent in, 2 rows are returned.
    If anyone has any thoughts, please let me know. This is the final tweak that is stopping our go-live with this.
    Thanks, RL

    In bug 6779249 it states that third party checks are not supported for XML...
    But, as we have bought into the push to convert we now are down to payroll checks and third party checks to get our company off of Optio once and for all...
    Other than attempting to write a complete custom process from scratch (just to throw out next year when we upgrade to 12) does anyone have any solutions to getting 3rd party checks to print with BIP in Oracle Applications (11.5.10)?
    Scott

  • FIELD ISSUE IN REPORT

    one of the Field in my Report is F_Payment_date1 the source column its referring is payment_date which is in the table ..
    The Query for this Group is
    select
    empl.action_context_id
    , empl.full_name
    , ppf.last_name
    , ppf.first_name
    , empl.national_identifier
    ,hou.INTERNAL_ADDRESS_LINE
    , empl.employee_number
    , empl.organization_name
    , substr(empl.employee_address1,1,40) emp_add_ln1
    , substr(empl.employee_address2,1,40) emp_add_ln2
    , substr(empl.employee_address3,1,40) emp_add_ln3
    , rtrim(substr(empl.employee_city,1,26))||' '
    ||empl.employee_state||' '
    ||empl.employee_zip_code emp_add_ln4
    , empl.beginning_date period_start_date
    , empl.ending_date period_end_date
    , empl.payment_date
    , LTRIM(RTRIM(TO_CHAR(empl.pay_rate,'99999999.00'))) base_salary
    , empl.pay_basis salary_basis
    , empl.employee_state resident_state
    , empl.location_name
    , paf.work_At_home
    , empl.assignment_id
    , :org_payment_method_id org_payment_id
    , substr(empl.employer_address1,1,40) emplr_add_ln1
    , substr(empl.employer_address2,1,40) emplr_add_ln2
    , rtrim(substr(empl.employer_city,1,26))||' '
    ||empl.employer_state||' '
    ||empl.employer_zip_code emplr_add_ln3
    from PAY_EMPLOYEE_ACTION_INFO_V empl
    ,pay_assignment_actions paa
    ,per_assignments_f paf
    ,per_people_f ppf
    ,hr_all_organization_units hou
    where paa.assignment_action_id = empl.action_context_id
    and empl.assignment_id = paa.assignment_id
    and paf.assignment_id = paa.assignment_id
    and empl.effective_date between hou.DATE_FROM and nvl(hou.date_to,empl.effective_date)
    and paf.ORGANIZATION_ID = hou.ORGANIZATION_ID
    and empl.employee_number = ppf.employee_number
    and empl.effective_date between paf.effective_start_date
    and paf.effective_end_date
    and empl.effective_date between ppf.effective_start_date
    and ppf.effective_end_date
    even if the payment date expires in the report it is still showing payment_date
    i want to include the logic like this
    if overrideing then
    v_date:=: PPA_OVERRIDING_DD_DATE ( Ihope this does not work as they are in dfferent group i need to write sql )
    else
    v_date:=:PAYMENT_DATE;
    return(v_date);
    PPA_OVERRIDING is in the table pay_assignment_actions
    The Query for the other group where the PPA_OVERRIDING_DD_DATE
    is
    SELECT decode(ppa.action_type,'H',to_number(paa.serial_number)
    ,paa.action_sequence) orderby
    , paa.assignment_action_id asg_actid, to_number(paa.serial_number) xfr_action
    , ppa.action_type
    , ppa.org_payment_method_id
    , paa.assignment_id paa_assignment_id
    , ppa.effective_date ppa_effective_date
    , ppa.business_group_id business_group_id
    , ppa.payroll_action_id ppa_payroll_action_id
    , ppa.payroll_id ppa_payroll_id
    , ppa.consolidation_set_id ppa_consolidation_set_id
    , ppa.date_earned ppa_date_earned
    , ppa.overriding_dd_date ppa_overriding_dd_date
    FROM pay_assignment_actions paa
    ,pay_payroll_actions ppa
    WHERE paa.payroll_action_id = :pactid
    AND paa.chunk_number = :chnkno
    AND ppa.payroll_action_id = paa.payroll_action_id
    ORDER BY 1
    can anyone gimme sugestion how to approach this ..i want to display
    PPA_OVERRIDING_DD_DATE column values where ever
    payment date is expired .
    Thanks in Advance,
    Dev Kishore.T

    If i understand your question well, you could try this:
    In the querygroup (datamodel) of your first query you create a formula column : CF_payment_or_overriding_date
    In the PL/SQL Formula of your formula column you add code like this:
    function CF_payment_or_overriding_dateF return DATE
    is
    ld_return DATE;
    begin
    IF 'overriding'
    THEN
    use your criteria to retrieve the overriding_dd_date from paa via select into or a cursor construction
    ld_return := ppa_overriding_dd_date;
    ELSE
         -- empl.payment_date is fine do not replace
         ld_return := :payment_date;
    END IF;
    RETURN (ld_return);
    end;
    And in your layout section,
    for your field F_Payment_date1 set your source column to
    your formula column CF_payment_or_overriding_date
    Hope this helps,
    Greetings,
    Emiel

  • How to pass a date parameter(from a procedure IN) to a API

    Hi,
    CREATE OR REPLACE package body xxal_basic_sal_increment_pkg1 as
    procedure emp_pro_inc1(ERRBUF VARCHAR2,RETCODE OUT NUMBER,
    p_business_group_id_enter in number,p_change_date in varchar2) is
    CURSOR STAFF IS
    SELECT pp.ASSIGNMENT_ID
    ,peo.EMPLOYEE_NUMBER employee_no
    ,pp.OBJECT_VERSION_NUMBER
    ,pp.PAY_PROPOSAL_ID
    ,pp.PROPOSED_SALARY_N basic_salary
    ,pp.PROPOSAL_REASON
    ,pp.change_date
    ,pp.BUSINESS_GROUP_ID
    ,pg.name
    ,pr.PERFORMANCE_RATING,
    '' v_effective_start_date,
    '' v_effective_end_date
    FROM per_all_people_f peo,
    per_all_assignments_f pa,
    per_pay_proposals pp,
    per_grades_tl pg,
    per_performance_reviews_v pr
    where pa.person_id = peo.PERSON_ID
    and pa.ASSIGNMENT_ID = pp.ASSIGNMENT_ID
    and peo.PERSON_ID=pr.PERSON_ID
    and pg.GRADE_ID=pa.GRADE_ID
    --and peo.EMPLOYEE_NUMBER=STAFF_VAR.employee_no
    and sysdate between peo.EFFECTIVE_START_DATE and peo.EFFECTIVE_END_DATE
    and sysdate between pa.EFFECTIVE_START_DATE and pa.EFFECTIVE_END_DATE
    and peo.BUSINESS_GROUP_ID = p_business_group_id_enter
    and pp.change_DATE = (select max(change_DATE) from per_pay_proposals temp
    where ASSIGNMENT_ID =pp.ASSIGNMENT_ID);
    --L_BUSINESS_GROUP_ID NUMBER:=5128;
    L_ASSIGNMENT_ID NUMBER;
    L_PAY_PROPOSAL_ID NUMBER;
    L_OBJECT_VERSION_NUMBER NUMBER;
    L_pyp_proposed_sal_warning BOOLEAN;
    L_additional_comp_warning boolean;
    l_person_id number;
    L_COMMON boolean;
    L_ELEMENT_ENTRY_ID NUMBER;
    TEMP NUMBER;
    L_EFFECTIVE_START_DATE DATE;
    L_MULTI VARCHAR2(30):='N';
    L_APPROVED VARCHAR2(30):='Y';
    L_CHANGE_DATE DATE:=TO_DATE('31-JAN-2008','DD-MON-YYYY');
    BEGIN
    v_disp_output:='EMPLOYEE_NUMBER'||','||
    'BASIC'||','||
    'EFF START DATE'||','||
    'EFF END DATE';
    fnd_file.put_line(FND_FILE.output,v_disp_output);
    FOR STAFF_VAR IN STAFF LOOP
    L_ELEMENT_ENTRY_ID:=null;
    begin
    select assign.assignment_id,assign.effective_start_date into
    l_assignment_id,l_change_date_new
    from per_people_f peo,per_assignments_f assign
    where peo.person_id=assign.person_id
    and sysdate between peo.effective_start_date and peo.effective_end_date
    and sysdate between assign.effective_start_date and assign.effective_end_date
    and current_employee_flag='Y'
    and primary_flag='Y'
    and peo.business_group_id=l_business_group_id
    and peo.employee_number=staff_var.employee_no;
    L_CHANGE_DATE_new:=L_CHANGE_DATE;
    --L_CHANGE_DATE_new:=STAFF_VAR.v_effective_start_date;
    begin
    HR_MAINTAIN_PROPOSAL_API.INSERT_SALARY_PROPOSAL
    P_PAY_PROPOSAL_ID=>L_PAY_PROPOSAL_ID
    ,P_ASSIGNMENT_ID=>staff_var.ASSIGNMENT_ID
    ,P_BUSINESS_GROUP_ID=>staff_var.BUSINESS_GROUP_ID
    ,P_CHANGE_DATE=>L_CHANGE_DATE_new
    ,P_PROPOSED_SALARY_N=>STAFF_VAR.basic_salary
    ,P_OBJECT_VERSION_NUMBER=>STAFF_VAR.OBJECT_VERSION_NUMBER
    ,p_multiple_components=>L_MULTI
    ,p_approved=>L_APPROVED
    ,P_VALIDATE=>false
    ,p_element_entry_id =>L_ELEMENT_ENTRY_ID
    ,P_INV_NEXT_SAL_DATE_WARNING=>l_common
    ,P_PROPOSED_SALARY_WARNING=>L_COMMON
    ,P_APPROVED_WARNING=>L_COMMON
    ,P_PAYROLL_WARNING=>L_COMMON
    in the above code the variable L_CHANGE_DATE DATE is hard coded .
    but we need to supply this variable value as dynamic, means (p_change date--procedure IN Parameter )
    i tried like below ,
    CREATE OR REPLACE package body xxal_basic_sal_increment_pkg1 as
    procedure emp_pro_inc1(ERRBUF VARCHAR2,RETCODE OUT NUMBER,
    p_business_group_id_enter in number,p_change_date in varchar2) is
    CURSOR STAFF IS
    SELECT pp.ASSIGNMENT_ID
    ,peo.EMPLOYEE_NUMBER employee_no
    ,pp.OBJECT_VERSION_NUMBER
    ,pp.PAY_PROPOSAL_ID
    ,pp.PROPOSED_SALARY_N basic_salary
    ,pp.PROPOSAL_REASON
    ,pp.change_date
    ,pp.BUSINESS_GROUP_ID
    ,pg.name
    ,pr.PERFORMANCE_RATING,
    '' v_effective_start_date,
    '' v_effective_end_date
    FROM per_all_people_f peo,
    per_all_assignments_f pa,
    per_pay_proposals pp,
    per_grades_tl pg,
    per_performance_reviews_v pr
    where pa.person_id = peo.PERSON_ID
    and pa.ASSIGNMENT_ID = pp.ASSIGNMENT_ID
    and peo.PERSON_ID=pr.PERSON_ID
    and pg.GRADE_ID=pa.GRADE_ID
    --and peo.EMPLOYEE_NUMBER=STAFF_VAR.employee_no
    and sysdate between peo.EFFECTIVE_START_DATE and peo.EFFECTIVE_END_DATE
    and sysdate between pa.EFFECTIVE_START_DATE and pa.EFFECTIVE_END_DATE
    and peo.BUSINESS_GROUP_ID = p_business_group_id_enter
    and pp.change_DATE = (select max(change_DATE) from per_pay_proposals temp
    where ASSIGNMENT_ID =pp.ASSIGNMENT_ID);
    --L_BUSINESS_GROUP_ID NUMBER:=5128;
    L_ASSIGNMENT_ID NUMBER;
    L_PAY_PROPOSAL_ID NUMBER;
    L_OBJECT_VERSION_NUMBER NUMBER;
    L_pyp_proposed_sal_warning BOOLEAN;
    L_additional_comp_warning boolean;
    l_person_id number;
    L_COMMON boolean;
    L_ELEMENT_ENTRY_ID NUMBER;
    TEMP NUMBER;
    L_EFFECTIVE_START_DATE DATE;
    L_MULTI VARCHAR2(30):='N';
    L_APPROVED VARCHAR2(30):='Y';
    L_CHANGE_DATE DATE:=TO_DATE(p_change_date,'DD-MON-YYYY');
    BEGIN
    v_disp_output:='EMPLOYEE_NUMBER'||','||
    'BASIC'||','||
    'EFF START DATE'||','||
    'EFF END DATE';
    fnd_file.put_line(FND_FILE.output,v_disp_output);
    FOR STAFF_VAR IN STAFF LOOP
    L_ELEMENT_ENTRY_ID:=null;
    begin
    select assign.assignment_id,assign.effective_start_date into
    l_assignment_id,l_change_date_new
    from per_people_f peo,per_assignments_f assign
    where peo.person_id=assign.person_id
    and sysdate between peo.effective_start_date and peo.effective_end_date
    and sysdate between assign.effective_start_date and assign.effective_end_date
    and current_employee_flag='Y'
    and primary_flag='Y'
    and peo.business_group_id=l_business_group_id
    and peo.employee_number=staff_var.employee_no;
    L_CHANGE_DATE_new:=L_CHANGE_DATE;
    --L_CHANGE_DATE_new:=STAFF_VAR.v_effective_start_date;
    begin
    HR_MAINTAIN_PROPOSAL_API.INSERT_SALARY_PROPOSAL
    P_PAY_PROPOSAL_ID=>L_PAY_PROPOSAL_ID
    ,P_ASSIGNMENT_ID=>staff_var.ASSIGNMENT_ID
    ,P_BUSINESS_GROUP_ID=>staff_var.BUSINESS_GROUP_ID
    ,P_CHANGE_DATE=>L_CHANGE_DATE_new
    ,P_PROPOSED_SALARY_N=>STAFF_VAR.basic_salary
    ,P_OBJECT_VERSION_NUMBER=>STAFF_VAR.OBJECT_VERSION_NUMBER
    ,p_multiple_components=>L_MULTI
    ,p_approved=>L_APPROVED
    ,P_VALIDATE=>false
    ,p_element_entry_id =>L_ELEMENT_ENTRY_ID
    ,P_INV_NEXT_SAL_DATE_WARNING=>l_common
    ,P_PROPOSED_SALARY_WARNING=>L_COMMON
    ,P_APPROVED_WARNING=>L_COMMON
    ,P_PAYROLL_WARNING=>L_COMMON
    but we are getting the error Cause: FDPSTP failed due to ORA-01839: date not valid for month specified
    ORA-06512: at "APPS.XXAL_BASIC_SAL_INCREMENT_PKG1", line 45
    ORA-06512: at line 1
    we tried the solution available in the metalink still its giving error ..
    pl help us to solve this issue ...
    how should we pass the date parameter while we run the concurrent program(we used date value set).
    also we tried with some other value set also ..
    Regards,
    kumar

    dear,
    I have the following code to create proposal, but the API create salary proposal for all record s and does not create entry for all records it just creates for the first record
    any advice
    the code ....
    /* Formatted on 2007/08/29 16:20 (Formatter Plus v4.8.8) */
    ----------------------- P R O P O S A L -------------------------
    DECLARE
    l_rows_processed NUMBER := 0;
    l_commit_point NUMBER := 500;
    l_business_group_id NUMBER
    := fnd_profile.VALUE ('PER_BUSINESS_GROUP_ID');
    l_proposal_salry NUMBER;
    l_approved CHAR (1);
    l_rowid VARCHAR2 (30);
    l_errmessage VARCHAR2 (400);
    l_entry_indecator NUMBER;
    l_assignment_id NUMBER;
    p_ctr_object_version_number NUMBER;
    -- Out Parameters --
    l_element_entry_id NUMBER;
    p_element_entry_id NUMBER;
    l_ctr_object_version_number NUMBER;
    l_pay_proposal_id NUMBER;
    l_inv_next_sal_date_warning BOOLEAN;
    l_proposed_salary_warning BOOLEAN;
    l_approved_warning BOOLEAN;
    l_payroll_warning BOOLEAN;
    CURSOR crs_dc_mn
    IS
    SELECT xdp.ROWID, xdp.assignment_id, xdp.change_date,
    xdp.proposal_reason, xdp.proposed_salary,
    xdp.assignment_number, xdp.employee_number, xdp.person_id,
    xdp.new_asg_id
    FROM apps.xx_dc_proposal xdp
    WHERE xdp.assignment_id <> -1
    AND xdp.processed = 'N'
    AND xdp.change_date =
    (SELECT MIN (xdc.change_date)
    FROM xx_dc_proposal xdc
    WHERE xdc.assignment_id = xdp.assignment_id
    AND xdc.processed = 'N')
    ORDER BY assignment_id, change_date ASC;
    pro_rcrd crs_dc_mn%ROWTYPE;
    CURSOR crs_dc_proposal1 (p_asg_id IN NUMBER)
    IS
    SELECT xdp.ROWID, xdp.assignment_id, xdp.change_date,
    xdp.proposal_reason, xdp.proposed_salary,
    xdp.assignment_number, xdp.employee_number, xdp.person_id,
    xdp.new_asg_id
    FROM apps.xx_dc_proposal xdp
    WHERE xdp.assignment_id <> -1
    AND xdp.processed = 'N'
    AND xdp.assignment_id = p_asg_id
    ORDER BY assignment_id, change_date ASC;
    BEGIN
    OPEN crs_dc_mn;
    FETCH crs_dc_mn
    INTO pro_rcrd;
    LOOP
    BEGIN
    hr_maintain_proposal_api.insert_salary_proposal
    (p_pay_proposal_id => l_pay_proposal_id,
    p_assignment_id => pro_rcrd.assignment_id,
    p_business_group_id => l_business_group_id,
    p_change_date => pro_rcrd.change_date,
    p_comments => NULL,
    p_next_sal_review_date => NULL,
    p_proposal_reason => NULL,
    p_proposed_salary_n => pro_rcrd.proposed_salary,
    p_forced_ranking => NULL,
    p_performance_review_id => NULL,
    p_attribute_category => NULL,
    p_attribute1 => NULL,
    p_attribute2 => NULL,
    p_attribute3 => NULL,
    p_attribute4 => NULL,
    p_attribute5 => NULL,
    p_attribute6 => NULL,
    p_attribute7 => NULL,
    p_attribute8 => NULL,
    p_attribute9 => NULL,
    p_attribute10 => NULL,
    p_attribute11 => NULL,
    p_attribute12 => NULL,
    p_attribute13 => NULL,
    p_attribute14 => NULL,
    p_attribute15 => NULL,
    p_attribute16 => NULL,
    p_attribute17 => NULL,
    p_attribute18 => NULL,
    p_attribute19 => NULL,
    p_attribute20 => NULL,
    p_object_version_number => l_ctr_object_version_number,
    p_multiple_components => 'N', -- 918219
    p_approved => 'Y',
    p_validate => FALSE,
    p_element_entry_id => l_element_entry_id,
    p_inv_next_sal_date_warning => l_inv_next_sal_date_warning,
    p_proposed_salary_warning => l_proposed_salary_warning,
    p_approved_warning => l_approved_warning,
    p_payroll_warning => l_payroll_warning
    UPDATE xx_dc_proposal
    SET processed = 'Y'
    WHERE ROWID = pro_rcrd.ROWID;
    l_rows_processed := l_rows_processed + 1;
    IF l_rows_processed = l_commit_point
    THEN
    COMMIT;
    l_rows_processed := 0;
    END IF;
    EXCEPTION
    WHEN OTHERS
    THEN
    l_errmessage := SQLERRM;
    UPDATE xx_dc_proposal
    SET err_message = l_errmessage
    WHERE ROWID = pro_rcrd.ROWID;
    END;
    END LOOP;
    CLOSE crs_dc_mn;
    COMMIT;
    END;
    ..............................

  • Custom Report taking more time to complete Normat

    Hi All,
    Custom report(Aging Report) in oracle is taking more time to complete Normal.
    In one instance, the same report is taking 5 min and the other instance this is taking 40-50 min to complete.
    We have enabled the trace and checked the trace file, but all the queries are working fine.
    Could you please suggest me regarding this issue.
    Thanks in advance!!

    TKPROF: Release 10.1.0.5.0 - Production on Tue Jun 5 10:49:32 2012
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    Sort options: prsela exeela fchela
    count = number of times OCI procedure was executed
    cpu = cpu time in seconds executing
    elapsed = elapsed time in seconds executing
    disk = number of physical reads of buffers from disk
    query = number of buffers gotten for consistent read
    current = number of buffers gotten in current mode (usually for update)
    rows = number of rows processed by the fetch or execute call
    Error in CREATE TABLE of EXPLAIN PLAN table: APPS.prof$plan_table
    ORA-00922: missing or invalid option
    parse error offset: 1049
    EXPLAIN PLAN option disabled.
    SELECT DISTINCT OU.ORGANIZATION_ID , OU.BUSINESS_GROUP_ID
    FROM
    HR_OPERATING_UNITS OU WHERE OU.SET_OF_BOOKS_ID =:B1
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 1 0.00 0.00 0 0 0 0
    Fetch 1 0.00 0.05 11 22 0 3
    total 3 0.00 0.05 11 22 0 3
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 173 (recursive depth: 1)
    Rows Row Source Operation
    3 HASH UNIQUE (cr=22 pr=11 pw=0 time=52023 us cost=10 size=66 card=1)
    3 NESTED LOOPS (cr=22 pr=11 pw=0 time=61722 us)
    3 NESTED LOOPS (cr=20 pr=11 pw=0 time=61672 us cost=9 size=66 card=1)
    3 NESTED LOOPS (cr=18 pr=11 pw=0 time=61591 us cost=7 size=37 card=1)
    3 NESTED LOOPS (cr=16 pr=11 pw=0 time=61531 us cost=7 size=30 card=1)
    3 TABLE ACCESS BY INDEX ROWID HR_ORGANIZATION_INFORMATION (cr=11 pr=9 pw=0 time=37751 us cost=6 size=22 card=1)
    18 INDEX RANGE SCAN HR_ORGANIZATION_INFORMATIO_FK1 (cr=1 pr=1 pw=0 time=17135 us cost=1 size=0 card=18)(object id 43610)
    3 TABLE ACCESS BY INDEX ROWID HR_ALL_ORGANIZATION_UNITS (cr=5 pr=2 pw=0 time=18820 us cost=1 size=8 card=1)
    3 INDEX UNIQUE SCAN HR_ORGANIZATION_UNITS_PK (cr=2 pr=0 pw=0 time=26 us cost=0 size=0 card=1)(object id 43657)
    3 INDEX UNIQUE SCAN HR_ALL_ORGANIZATION_UNTS_TL_PK (cr=2 pr=0 pw=0 time=32 us cost=0 size=7 card=1)(object id 44020)
    3 INDEX RANGE SCAN HR_ORGANIZATION_INFORMATIO_FK2 (cr=2 pr=0 pw=0 time=52 us cost=1 size=0 card=1)(object id 330960)
    3 TABLE ACCESS BY INDEX ROWID HR_ORGANIZATION_INFORMATION (cr=2 pr=0 pw=0 time=26 us cost=2 size=29 card=1)
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    db file sequential read 11 0.01 0.05
    asynch descriptor resize 2 0.00 0.00
    INSERT INTO FND_LOG_MESSAGES ( ECID_ID, ECID_SEQ, CALLSTACK, ERRORSTACK,
    MODULE, LOG_LEVEL, MESSAGE_TEXT, SESSION_ID, USER_ID, TIMESTAMP,
    LOG_SEQUENCE, ENCODED, NODE, NODE_IP_ADDRESS, PROCESS_ID, JVM_ID, THREAD_ID,
    AUDSID, DB_INSTANCE, TRANSACTION_CONTEXT_ID )
    VALUES
    ( SYS_CONTEXT('USERENV', 'ECID_ID'), SYS_CONTEXT('USERENV', 'ECID_SEQ'),
    :B16 , :B15 , SUBSTRB(:B14 ,1,255), :B13 , SUBSTRB(:B12 , 1, 4000), :B11 ,
    NVL(:B10 , -1), SYSDATE, FND_LOG_MESSAGES_S.NEXTVAL, :B9 , SUBSTRB(:B8 ,1,
    60), SUBSTRB(:B7 ,1,30), SUBSTRB(:B6 ,1,120), SUBSTRB(:B5 ,1,120),
    SUBSTRB(:B4 ,1,120), :B3 , :B2 , :B1 ) RETURNING LOG_SEQUENCE INTO :O0
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 20 0.00 0.03 4 1 304 20
    Fetch 0 0.00 0.00 0 0 0 0
    total 21 0.00 0.03 4 1 304 20
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 173 (recursive depth: 1)
    Rows Row Source Operation
    1 LOAD TABLE CONVENTIONAL (cr=1 pr=4 pw=0 time=36498 us)
    1 SEQUENCE FND_LOG_MESSAGES_S (cr=0 pr=0 pw=0 time=24 us)
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    db file sequential read 4 0.01 0.03
    SELECT MESSAGE_TEXT, MESSAGE_NUMBER, TYPE, FND_LOG_SEVERITY, CATEGORY,
    SEVERITY
    FROM
    FND_NEW_MESSAGES M, FND_APPLICATION A WHERE :B3 = M.MESSAGE_NAME AND :B2 =
    M.LANGUAGE_CODE AND :B1 = A.APPLICATION_SHORT_NAME AND M.APPLICATION_ID =
    A.APPLICATION_ID
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 2 0.00 0.00 0 0 0 0
    Fetch 2 0.00 0.03 4 12 0 2
    total 5 0.00 0.03 4 12 0 2
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 173 (recursive depth: 1)
    Rows Row Source Operation
    1 NESTED LOOPS (cr=6 pr=2 pw=0 time=15724 us cost=3 size=134 card=1)
    1 TABLE ACCESS BY INDEX ROWID FND_APPLICATION (cr=2 pr=0 pw=0 time=20 us cost=1 size=9 card=1)
    1 INDEX UNIQUE SCAN FND_APPLICATION_U3 (cr=1 pr=0 pw=0 time=9 us cost=0 size=0 card=1)(object id 33993)
    1 TABLE ACCESS BY INDEX ROWID FND_NEW_MESSAGES (cr=4 pr=2 pw=0 time=15693 us cost=2 size=125 card=1)
    1 INDEX UNIQUE SCAN FND_NEW_MESSAGES_PK (cr=3 pr=1 pw=0 time=6386 us cost=1 size=0 card=1)(object id 34367)
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    db file sequential read 4 0.00 0.03
    DELETE FROM MO_GLOB_ORG_ACCESS_TMP
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 1 0.00 0.02 3 4 4 1
    Fetch 0 0.00 0.00 0 0 0 0
    total 2 0.00 0.02 3 4 4 1
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 173 (recursive depth: 1)
    Rows Row Source Operation
    0 DELETE MO_GLOB_ORG_ACCESS_TMP (cr=4 pr=3 pw=0 time=29161 us)
    1 TABLE ACCESS FULL MO_GLOB_ORG_ACCESS_TMP (cr=3 pr=2 pw=0 time=18165 us cost=2 size=13 card=1)
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    db file sequential read 3 0.01 0.02
    SET TRANSACTION READ ONLY
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 1 0.00 0.01 0 0 0 0
    Fetch 0 0.00 0.00 0 0 0 0
    total 2 0.00 0.01 0 0 0 0
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 173
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    SQL*Net message to client 1 0.00 0.00
    SQL*Net message from client 1 0.00 0.00
    begin Fnd_Concurrent.Init_Request; end;
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 1 0.00 0.00 0 148 0 1
    Fetch 0 0.00 0.00 0 0 0 0
    total 2 0.00 0.00 0 148 0 1
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 173
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    log file sync 1 0.01 0.01
    SQL*Net message to client 1 0.00 0.00
    SQL*Net message from client 1 0.00 0.00
    declare X0rv BOOLEAN; begin X0rv := FND_INSTALLATION.GET(:APPL_ID,
    :DEP_APPL_ID, :STATUS, :INDUSTRY); :X0 := sys.diutil.bool_to_int(X0rv);
    end;
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 1 0.00 0.00 0 9 0 1
    Fetch 0 0.00 0.00 0 0 0 0
    total 2 0.00 0.00 0 9 0 1
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 173
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    SQL*Net message to client 8 0.00 0.00
    SQL*Net message from client 8 0.00 0.00
    begin fnd_global.bless_next_init('FND_PERMIT_0000');
    fnd_global.initialize(:session_id, :user_id, :resp_id, :resp_appl_id,
    :security_group_id, :site_id, :login_id, :conc_login_id, :prog_appl_id,
    :conc_program_id, :conc_request_id, :conc_priority_request, :form_id,
    :form_application_id, :conc_process_id, :conc_queue_id, :queue_appl_id,
    :server_id); fnd_profile.put('ORG_ID', :org_id);
    fnd_profile.put('MFG_ORGANIZATION_ID', :mfg_org_id);
    fnd_profile.put('MFG_CHART_OF_ACCOUNTS_ID', :coa);
    fnd_profile.put('APPS_MAINTENANCE_MODE', :amm); end;
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 1 0.00 0.00 0 8 0 1
    Fetch 0 0.00 0.00 0 0 0 0
    total 2 0.00 0.00 0 8 0 1
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 173
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    SQL*Net message to client 1 0.00 0.00
    SQL*Net message from client 1 0.00 0.00
    SELECT FPI.STATUS, FPI.INDUSTRY, FPI.PRODUCT_VERSION, FOU.ORACLE_USERNAME,
    FPI.TABLESPACE, FPI.INDEX_TABLESPACE, FPI.TEMPORARY_TABLESPACE,
    FPI.SIZING_FACTOR
    FROM
    FND_PRODUCT_INSTALLATIONS FPI, FND_ORACLE_USERID FOU, FND_APPLICATION FA
    WHERE FPI.APPLICATION_ID = FA.APPLICATION_ID AND FPI.ORACLE_ID =
    FOU.ORACLE_ID AND FA.APPLICATION_SHORT_NAME = :B1
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 1 0.00 0.00 0 0 0 0
    Fetch 2 0.00 0.00 0 7 0 1
    total 4 0.00 0.00 0 7 0 1
    Misses in library cache during parse: 1
    Misses in library cache during execute: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 173 (recursive depth: 1)
    Rows Row Source Operation
    1 NESTED LOOPS (cr=7 pr=0 pw=0 time=89 us)
    1 NESTED LOOPS (cr=6 pr=0 pw=0 time=93 us cost=4 size=76 card=1)
    1 NESTED LOOPS (cr=5 pr=0 pw=0 time=77 us cost=3 size=67 card=1)
    1 TABLE ACCESS BY INDEX ROWID FND_APPLICATION (cr=2 pr=0 pw=0 time=19 us cost=1 size=9 card=1)
    1 INDEX UNIQUE SCAN FND_APPLICATION_U3 (cr=1 pr=0 pw=0 time=9 us cost=0 size=0 card=1)(object id 33993)
    1 TABLE ACCESS BY INDEX ROWID FND_PRODUCT_INSTALLATIONS (cr=3 pr=0 pw=0 time=51 us cost=2 size=58 card=1)
    1 INDEX RANGE SCAN FND_PRODUCT_INSTALLATIONS_PK (cr=2 pr=0 pw=0 time=27 us cost=1 size=0 card=1)(object id 22583)
    1 INDEX UNIQUE SCAN FND_ORACLE_USERID_U1 (cr=1 pr=0 pw=0 time=7 us cost=0 size=0 card=1)(object id 22597)
    1 TABLE ACCESS BY INDEX ROWID FND_ORACLE_USERID (cr=1 pr=0 pw=0 time=7 us cost=1 size=9 card=1)
    SELECT P.PID, P.SPID, AUDSID, PROCESS, SUBSTR(USERENV('LANGUAGE'), INSTR(
    USERENV('LANGUAGE'), '.') + 1)
    FROM
    V$SESSION S, V$PROCESS P WHERE P.ADDR = S.PADDR AND S.AUDSID =
    USERENV('SESSIONID')
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 1 0.00 0.00 0 0 0 0
    Fetch 1 0.00 0.00 0 0 0 1
    total 3 0.00 0.00 0 0 0 1
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 173 (recursive depth: 1)
    Rows Row Source Operation
    1 NESTED LOOPS (cr=0 pr=0 pw=0 time=1883 us cost=1 size=108 card=2)
    1 HASH JOIN (cr=0 pr=0 pw=0 time=1869 us cost=1 size=100 card=2)
    1 NESTED LOOPS (cr=0 pr=0 pw=0 time=1059 us cost=0 size=58 card=2)
    182 FIXED TABLE FULL X$KSLWT (cr=0 pr=0 pw=0 time=285 us cost=0 size=1288 card=161)
    1 FIXED TABLE FIXED INDEX X$KSUSE (ind:1) (cr=0 pr=0 pw=0 time=617 us cost=0 size=21 card=1)
    181 FIXED TABLE FULL X$KSUPR (cr=0 pr=0 pw=0 time=187 us cost=0 size=10500 card=500)
    1 FIXED TABLE FIXED INDEX X$KSLED (ind:2) (cr=0 pr=0 pw=0 time=4 us cost=0 size=4 card=1)
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    asynch descriptor resize 2 0.00 0.00
    OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
    call count cpu elapsed disk query current rows
    Parse 6 0.00 0.00 0 0 0 0
    Execute 6 0.01 0.02 0 165 0 4
    Fetch 1 0.00 0.00 0 0 0 1
    total 13 0.01 0.02 0 165 0 5
    Misses in library cache during parse: 0
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    SQL*Net message to client 37 0.00 0.00
    SQL*Net message from client 37 1.21 2.19
    log file sync 1 0.01 0.01
    OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
    call count cpu elapsed disk query current rows
    Parse 49 0.00 0.00 0 0 0 0
    Execute 89 0.01 0.07 7 38 336 24
    Fetch 29 0.00 0.09 15 168 0 27
    total 167 0.02 0.16 22 206 336 51
    Misses in library cache during parse: 3
    Misses in library cache during execute: 1
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    asynch descriptor resize 6 0.00 0.00
    db file sequential read 22 0.01 0.14
    48 user SQL statements in session.
    1 internal SQL statements in session.
    49 SQL statements in session.
    0 statements EXPLAINed in this session.
    Trace file compatibility: 10.01.00
    Sort options: prsela exeela fchela
    1 session in tracefile.
    48 user SQL statements in trace file.
    1 internal SQL statements in trace file.
    49 SQL statements in trace file.
    48 unique SQL statements in trace file.
    928 lines in trace file.
    1338833753 elapsed seconds in trace file.

  • Return nothing when run Open Purchase order report(by Buyer)

    We implement iPro/PO in Oracle. I finished the PO setup. But now user report that they are not able to generate any output for a particular Buyer when they run the Open Purchase Orders Report(by Buyer) report in the PO module. Even I leave the parameter wide open for the request, it also does not return any information.
    Does it relate to the PO setting in system? Anyone can kindly guide me how to check such problem?

    Hi Kyla,
    PO raised by the buyer is 'STANDARD','BLANKET','PLANNED' ? What is the PO Status..? It should be "OPEN"..
    Query used in this report is as below :
    Query - Company
    SELECT gsb.name c_company
    , fsp.inventory_organization_id c_organization_id
    , gsb.currency_code C_CURRENCY_BASE
    , gsb.chart_of_accounts_id STRUCTURE_ACC
    , mdv.structure_id STRUCTURE_CAT
    , mdv.category_set_id c_category_set_id
    , flo1.meaning c_yes
    , flo2.meaning c_no
    FROM gl_sets_of_books gsb
    , financials_system_parameters fsp
    , mtl_default_sets_view mdv
    , fnd_lookups flo1
    , fnd_lookups flo2
    WHERE gsb.set_of_books_id = fsp.set_of_books_id
    AND mdv.functional_area_id = 2
    AND flo1.lookup_type = 'YES_NO'
    AND flo1.lookup_code = 'Y'
    AND flo2.lookup_type = 'YES_NO'
    AND flo2.lookup_code = 'N'
    Query - Buyer
    SELECT distinct(pov.vendor_name||papf.full_name)
    , papf.full_name Buyer
    , pov.vendor_name Vendor
    , pov.vendor_id
    , papf. person_id employee_id
    FROM PER_ALL_PEOPLE_F PAPF
    , po_vendors pov
    , po_headers poh
    WHERE poh.agent_id = papf.person_id
    AND poh.vendor_id = pov.vendor_id
    AND poh.type_lookup_code in ('STANDARD','BLANKET','PLANNED')
    AND nvl(poh.closed_code,'OPEN') NOT IN ('FINALLY CLOSED', 'CLOSED')
    AND nvl(poh.cancel_flag,'N') = 'N'
    /* AND papf.full_name = nvl(:P_buyer,papf.full_name) */
    /* Bug#2453022 Commented out the above condition and replaced
    it as follows as the user parameter P_Buyer will now return the id and not the name */
    AND papf.person_id = nvl(:P_buyer,papf.person_id)
    AND pov.vendor_name BETWEEN nvl(:P_vendor_from,pov.vendor_name)
    AND nvl(:P_vendor_to,pov.vendor_name)
    AND EXISTS (select 'x'
    from po_lines pol
    , po_line_locations pll
    , po_releases por
    where pol.po_header_id = poh.po_header_id
    and pol.po_line_id = pll.po_line_id
    and nvl(pll.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
    and nvl(pol.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
    and nvl(por.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
    and nvl(pll.cancel_flag,'N') = 'N'
    and nvl(pol.cancel_flag,'N') = 'N'
    and nvl(por.cancel_flag,'N') = 'N'
    and pll.shipment_type in ('STANDARD','BLANKET','SCHEDULED')
    and pll.po_release_id = por.po_release_id(+))
    AND PAPF.EMPLOYEE_NUMBER IS NOT NULL
    AND TRUNC(SYSDATE) BETWEEN PAPF.EFFECTIVE_START_DATE AND
    PAPF.EFFECTIVE_END_DATE
    AND DECODE(HR_SECURITY.VIEW_ALL ,'Y' , 'TRUE',
    HR_SECURITY.SHOW_RECORD('PER_ALL_PEOPLE_F',PAPF.PERSON_ID,
    PAPF.PERSON_TYPE_ID,
    PAPF.EMPLOYEE_NUMBER,PAPF.APPLICANT_NUMBER )) = 'TRUE'
    AND DECODE(HR_GENERAL.GET_XBG_PROFILE,'Y', PAPF.BUSINESS_GROUP_ID ,
    HR_GENERAL.GET_BUSINESS_GROUP_ID) = PAPF.BUSINESS_GROUP_ID
    ORDER BY papf.full_name
    , pov.vendor_name
    Query - PO
    SELECT distinct(pol.line_num) Line
    , poh.segment1 ||decode(por.release_num,null,'','-')|| por.release_num PO_Number_Release
    , poh.currency_code C_CURRENCY
    , plt.line_type Line_Type
    , &P_FLEX_CAT C_FLEX_CAT
    , &P_FLEX_ITEM C_FLEX_ITEM
    , pol.item_revision Rev
    , pol.item_description Description
    , pol.po_header_id
    , pol.po_line_id
    , poh.vendor_id
    , poh.agent_id
    , psp.manual_po_num_type
    , poh.segment1
    , por.release_num
    , nvl(por.po_release_id,-1) release_id
    FROM po_line_locations pll
    , mtl_system_items msi
    , mtl_categories mca
    , po_lines pol
    , po_releases por
    , po_headers poh
    , po_line_types plt
    , po_system_parameters psp
    WHERE poh.po_header_id = pol.po_header_id
    AND pol.po_line_id = pll.po_line_id
    AND pll.po_release_id = por.po_release_id(+)
    AND pol.line_type_id = plt.line_type_id
    AND pol.item_id = msi.inventory_item_id(+)
    AND msi.organization_id(+) = :c_organization_id
    AND pol.category_id = mca.category_id
    AND nvl(pll.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
    AND nvl(pol.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
    AND nvl(poh.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
    AND nvl(por.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
    AND nvl(pll.cancel_flag,'N') = 'N'
    AND nvl(pol.cancel_flag,'N') = 'N'
    AND nvl(poh.cancel_flag,'N') = 'N'
    AND nvl(por.cancel_flag,'N') = 'N'
    AND pll.shipment_type in ('STANDARD', 'BLANKET', 'SCHEDULED')
    ORDER BY decode(psp.manual_po_num_type,'NUMERIC',
    --bug#3614924
    decode(rtrim(poh.segment1,'0123456789'),NULL,to_number(poh.segment1))
    , null)
    , decode(psp.manual_po_num_type,'NUMERIC',null, poh.segment1)
    , por.release_num
    , pol.line_num
    Query - Shipment
    SELECT pll.shipment_num Shipment
    , nvl(pll.promised_date,pll.need_by_date) P_Date
    , pol.unit_meas_lookup_code Unit
    , DECODE (POL.order_type_lookup_code, /* <SERVICES FPJ> */
    'RATE', PLL.amount,
    'FIXED PRICE', PLL.amount,
    PLL.quantity) Ordered
    , DECODE (POL.order_type_lookup_code, /* <SERVICES FPJ> */
    'RATE', PLL.amount_received,
    'FIXED PRICE', PLL.amount_received,
    PLL.quantity_received) Received
    , DECODE (POL.order_type_lookup_code, /* <SERVICES FPJ> */
    'RATE', PLL.amount_billed,
    'FIXED PRICE', PLL.amount_billed,
    PLL.quantity_billed) Billed
    , pll.price_override Unit_Price
    , DECODE (POL.order_type_lookup_code, /* <SERVICES FPJ> */
    'RATE', (PLL.amount - NVL(PLL.amount_received, 0))/
    DECODE(NVL(PLL.amount, 0), 0, 1, PLL.amount),
    'FIXED PRICE', (PLL.amount - NVL(PLL.amount_received, 0))/
    DECODE(NVL(PLL.amount, 0), 0, 1, PLL.amount),
    (NVL(PLL.quantity, 0) - NVL(PLL.quantity_received, 0))/
    DECODE (NVL(PLL.quantity, 0), 0, 1, PLL.quantity)) * 100 Percent_Due
    , plc.displayed_field Open_For
    , pll.po_line_id
    , nvl(pll.po_release_id,-1) join_release_id
    FROM po_line_locations pll
    , po_lines pol
    , po_lookup_codes plc
    WHERE pol.po_line_id = pll.po_line_id
    AND nvl(pll.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
    AND nvl(pol.closed_code,'OPEN') not in ('FINALLY CLOSED','CLOSED')
    AND nvl(pll.cancel_flag,'N') = 'N'
    AND nvl(pol.cancel_flag,'N') = 'N'
    AND plc.lookup_type = 'DOCUMENT STATE'
    AND plc.lookup_code = nvl(pll.closed_code, 'OPEN')
    AND pll.shipment_type in ('STANDARD', 'BLANKET', 'SCHEDULED')
    ORDER BY pll.shipment_num

  • How to tune this SQL Query?

    Hi all expert out there,
    I am using Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production With the Partitioning, Real Application Clusters, OLAP, Data Mining and Real Application Testing options.
    I have this ERP 11i query took 3-4hours to execute. can anyone help to have a look at the Query so make it more faster? I am already out of my idea of solving this. Kindly helpzzz...
    SELECT
    /*+ first_rows(1)*/
    hou.name "OU" ,-- e.g. Seagate Technology USOP1 ,
    mc.description,
    oel.ordered_item "Product Part Number",
    oeh.order_number "Order Num",
    hp.party_name "Bill To Cust Name",
    hcsu.location "Ship To Cust Num",
    oel.line_number || '.' || oel.shipment_number "Order Line Num",
    ft.nls_territory "Ship To Country",
    mc.segment7 "designapplication",
    ccm.formattedcapacity||'GB' "Capacity",
    oel.attribute1 "Order Category",
    oel.Subinventory "Subinventory",
    to_char(oel.actual_shipment_date,'MM/DD/YYYY DY') "Shipment Date",
    NVL(oel.shipped_quantity,0) "Net Units"
    FROM
    oe_order_headers_all oeh
    ,oe_order_lines_all oel
    ,apps.hz_parties hp
    ,apps.hz_cust_accounts hca
    ,apps.hz_cust_site_uses_all hcsu
    ,apps.hz_cust_acct_sites_all hcas
    , apps.seaeng_ccfamilymodelinfo ccm
    ,apps.hz_party_sites hps
    ,apps.fnd_territories ft
    ,apps.hz_locations hl
    ,apps.hr_organization_units hou
    ,apps.mtl_parameters mp
    ,apps.mtl_item_categories mic
    ,apps.mtl_categories_b mc
    ,apps.fnd_lookup_values flv
    WHERE
    oeh.header_id = oel.header_id
    AND oel.flow_status_code = 'CLOSED'
    AND oeh.invoice_to_org_id = hcsu.site_use_id
    AND hl.country = ft.territory_code
    AND hps.location_id = hl.location_id
    AND hcas.party_site_id = hps.party_site_id
    AND hcsu.cust_acct_site_id = hcas.cust_acct_site_id
    AND hcas.cust_account_id = hca.cust_account_id
    AND hca.party_id = hp.party_id
    AND oeh.org_id = hou.organization_id
    AND oel.ship_from_org_id = mp.organization_id
    AND oel.inventory_item_id = mic.inventory_item_id
    AND mic.category_id = mc.category_id
    AND mic.category_set_id = 4
    AND mc.description = ccm.stmodelnumber
    AND flv.lookup_code = hca.sales_channel_code
    AND flv.lookup_type = 'SALES_CHANNEL'
    AND mc.segment7 IN ('PSG','ESG','NSG')
    AND flv.lookup_code NOT IN ('RTL','AD-RTL','EU')
    AND oel.attribute1 IN ('NB','NBEOL','NBSEA')
    AND oel.subinventory IN ('KFGI','AFGI','SFGIF','FGIF')
    AND hou.organization_id = 189
    AND trunc(oel.actual_shipment_date) between TO_DATE('01-Jan-2009','DD-MON-YYYY') and TO_DATE('31-JAN-2009','DD-MON-YYYY')
    regards,
    Lygine
    Edited by: user8989062 on Jun 7, 2010 6:39 PM

    5) The TKPROF output for this statement looks like the following:
    SELECT
    /*+ first_rows(1)*/
    hou.name "OU" ,-- e.g. Seagate Technology USOP1 ,
    mc.description,
    oel.ordered_item "Product Part Number",
    oeh.order_number "Order Num",
      hp.party_name  "Bill To Cust Name",
    hcsu.location "Ship To Cust Num",
    oel.line_number || '.' || oel.shipment_number "Order Line Num",
    ft.nls_territory  "Ship To Country",
    mc.segment7 "designapplication",
    ccm.formattedcapacity||'GB' "Capacity",
    oel.attribute1 "Order Category",
    oel.Subinventory "Subinventory",
    to_char(oel.actual_shipment_date,'MM/DD/YYYY DY') "Shipment Date",
    NVL(oel.shipped_quantity,0) "Net Units"
    FROM
          oe_order_headers_all oeh
         ,oe_order_lines_all   oel
         ,apps.hz_parties  hp
         ,apps.hz_cust_accounts  hca
         ,apps.hz_cust_site_uses_all   hcsu
         ,apps.hz_cust_acct_sites_all  hcas
        , apps.seaeng_ccfamilymodelinfo ccm
         ,apps.hz_party_sites hps
         ,apps.fnd_territories ft
         ,apps.hz_locations hl
         ,apps.hr_organization_units  hou
         ,apps.mtl_parameters  mp
         ,apps.mtl_item_categories mic
         ,apps.mtl_categories_b mc
         ,apps.fnd_lookup_values flv
    WHERE
               oeh.header_id = oel.header_id
    AND   oel.flow_status_code = 'CLOSED'
    AND   oeh.invoice_to_org_id = hcsu.site_use_id
    AND   hl.country = ft.territory_code
    AND   hps.location_id = hl.location_id
    AND   hcas.party_site_id = hps.party_site_id
    AND   hcsu.cust_acct_site_id = hcas.cust_acct_site_id
    AND   hcas.cust_account_id = hca.cust_account_id
    AND   hca.party_id   = hp.party_id
    AND   oeh.org_id = hou.organization_id
    AND   oel.ship_from_org_id = mp.organization_id
    AND   oel.inventory_item_id = mic.inventory_item_id
    AND   mic.category_id = mc.category_id
    AND   mic.category_set_id = 4
    AND   mc.description = ccm.stmodelnumber
    AND   flv.lookup_code = hca.sales_channel_code
    AND   flv.lookup_type = 'SALES_CHANNEL'
    AND mc.segment7 IN ('PSG','ESG','NSG')
    AND flv.lookup_code NOT IN ('RTL','AD-RTL','EU')
    AND oel.attribute1 IN ('NB','NBEOL','NBSEA')
    AND oel.subinventory IN ('KFGI','AFGI','SFGIF','FGIF')
    AND hou.organization_id = 189
    AND trunc(oel.actual_shipment_date) between TO_DATE('01-Jan-2009','DD-MON-YYYY') and TO_DATE('31-JAN-2009','DD-MON-YYYY')
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.79       0.79          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch        7     22.23     240.85      19781     536082          0         592
    total        9     23.02     241.64      19781     536082          0         592
    Misses in library cache during parse: 1
    Optimizer mode: FIRST_ROWS
    Parsing user id: 173 
    Rows     Row Source Operation
        592  NESTED LOOPS  (cr=536082 pr=19781 pw=0 time=240822989 us)
        592   NESTED LOOPS  (cr=534885 pr=19776 pw=0 time=239960969 us)
        592    NESTED LOOPS  (cr=533688 pr=19776 pw=0 time=239902332 us)
        594     NESTED LOOPS  (cr=532493 pr=19776 pw=0 time=239811721 us)
        594      NESTED LOOPS  (cr=531892 pr=19776 pw=0 time=239794703 us)
        594       NESTED LOOPS  (cr=530693 pr=19772 pw=0 time=239325284 us)
        594        NESTED LOOPS  (cr=529498 pr=19770 pw=0 time=239152940 us)
        594         NESTED LOOPS  (cr=527709 pr=19766 pw=0 time=236850676 us)
        594          NESTED LOOPS  (cr=525920 pr=19764 pw=0 time=235640068 us)
       2990           NESTED LOOPS  (cr=516943 pr=19688 pw=0 time=195144282 us)
       2990            NESTED LOOPS  (cr=516936 pr=19688 pw=0 time=195120297 us)
       2990             NESTED LOOPS  (cr=510806 pr=19682 pw=0 time=194678671 us)
       3000              HASH JOIN  (cr=504799 pr=19669 pw=0 time=193829763 us)
       3000               NESTED LOOPS  (cr=472280 pr=360 pw=0 time=49218087 us)
          1                NESTED LOOPS  (cr=1029 pr=34 pw=0 time=1745829 us)
          1                 TABLE ACCESS BY INDEX ROWID HR_ALL_ORGANIZATION_UNITS_TL (cr=424 pr=25 pw=0 time=1361442 us)
          1                  INDEX UNIQUE SCAN HR_ALL_ORGANIZATION_UNTS_TL_PK (cr=423 pr=25 pw=0 time=1361397 us)(object id 44637)
          1                 TABLE ACCESS BY INDEX ROWID HR_ALL_ORGANIZATION_UNITS (cr=605 pr=9 pw=0 time=384370 us)
          1                  INDEX UNIQUE SCAN HR_ORGANIZATION_UNITS_PK (cr=1 pr=0 pw=0 time=27 us)(object id 43498)
       3000                TABLE ACCESS BY INDEX ROWID OE_ORDER_LINES_ALL (cr=471251 pr=326 pw=0 time=47466249 us)
    156922                 INDEX RANGE SCAN OE_ORDER_LINES_N20 (cr=420 pr=7 pw=0 time=787919 us)(object id 37005064)
    263469               TABLE ACCESS FULL MTL_ITEM_CATEGORIES (cr=32519 pr=19309 pw=0 time=144242743 us)
       2990              TABLE ACCESS BY INDEX ROWID MTL_CATEGORIES_B (cr=6007 pr=13 pw=0 time=843569 us)
       3000               INDEX UNIQUE SCAN MTL_CATEGORIES_B_U1 (cr=3007 pr=2 pw=0 time=162636 us)(object id 37199)
       2990             TABLE ACCESS BY INDEX ROWID SEAENG_CCFAMILYMODELINFO (cr=6130 pr=6 pw=0 time=437784 us)
       2990              INDEX UNIQUE SCAN SEAENG_CCFAMILYMODELINFO_U1 (cr=2997 pr=0 pw=0 time=52872 us)(object id 35838918)
       2990            INDEX UNIQUE SCAN MTL_PARAMETERS_U1 (cr=7 pr=0 pw=0 time=16332 us)(object id 37657)
        594           TABLE ACCESS BY INDEX ROWID OE_ORDER_HEADERS_ALL (cr=8977 pr=76 pw=0 time=40491633 us)
       2990            INDEX UNIQUE SCAN OE_ORDER_HEADERS_U1 (cr=5987 pr=45 pw=0 time=2504442 us)(object id 41952)
        594          TABLE ACCESS BY INDEX ROWID HZ_CUST_SITE_USES_ALL (cr=1789 pr=2 pw=0 time=1208576 us)
        594           INDEX UNIQUE SCAN HZ_CUST_SITE_USES_U1 (cr=1195 pr=1 pw=0 time=105934 us)(object id 25124976)
        594         TABLE ACCESS BY INDEX ROWID HZ_CUST_ACCT_SITES_ALL (cr=1789 pr=4 pw=0 time=2300224 us)
        594          INDEX UNIQUE SCAN HZ_CUST_ACCT_SITES_U1 (cr=1195 pr=2 pw=0 time=152238 us)(object id 25124996)
        594        TABLE ACCESS BY INDEX ROWID HZ_PARTY_SITES (cr=1195 pr=2 pw=0 time=170875 us)
        594         INDEX UNIQUE SCAN HZ_PARTY_SITES_U1 (cr=601 pr=1 pw=0 time=104550 us)(object id 25124993)
        594       TABLE ACCESS BY INDEX ROWID HZ_LOCATIONS (cr=1199 pr=4 pw=0 time=467329 us)
        594        INDEX UNIQUE SCAN HZ_LOCATIONS_U1 (cr=601 pr=0 pw=0 time=57749 us)(object id 25124992)
        594      TABLE ACCESS BY INDEX ROWID FND_TERRITORIES (cr=601 pr=0 pw=0 time=15562 us)
        594       INDEX UNIQUE SCAN FND_TERRITORIES_U1 (cr=7 pr=0 pw=0 time=6492 us)(object id 33083)
        592     TABLE ACCESS BY INDEX ROWID HZ_CUST_ACCOUNTS (cr=1195 pr=0 pw=0 time=88925 us)
        594      INDEX UNIQUE SCAN HZ_CUST_ACCOUNTS_U1 (cr=601 pr=0 pw=0 time=27607 us)(object id 81600)
        592    INDEX RANGE SCAN FND_LOOKUP_VALUES_U1 (cr=1197 pr=0 pw=0 time=56714 us)(object id 32878)
        592   TABLE ACCESS BY INDEX ROWID HZ_PARTIES (cr=1197 pr=5 pw=0 time=860140 us)
        592    INDEX UNIQUE SCAN HZ_PARTIES_U1 (cr=599 pr=0 pw=0 time=51136 us)(object id 25126074)
    Elapsed times include waiting on following events:
      Event waited on                             Times   Max. Wait  Total Waited
      ----------------------------------------   Waited  ----------  ------------
      SQL*Net message to client                       7        0.00          0.00
      row cache lock                                  1        0.00          0.00
      gc current block 2-way                      24112        0.00         19.28
      gc cr grant 2-way                             406        0.00          0.19
      db file sequential read                       441        0.09         14.11
      gc cr block 2-way                             284        0.00          0.23
      gc cr block busy                              147        0.19          9.59
      gc current block congested                      2        0.00          0.00
      gc cr multi block request                   13079        0.00          3.98
      SQL*Net message from client                     7        0.27          1.87
      gc cr failure                                  39        0.00          0.02
      cr request retry                               39        0.98         38.27
      SQL*Net more data to client                    12        0.00          0.00
      db file scattered read                       2446        0.13        132.58
      gc cr disk read                                 5        0.00          0.00
    ********************************************************************************6) The DBMS_XPLAN.DISPLAY_CURSOR output:
    SQL> select * from table(dbms_xplan.display_cursor(null, null, 'ALLSTATS LAST'));
    PLAN_TABLE_OUTPUT
    SQL_ID  b8pfhfxscqn1m, child number 0
    SELECT  /*+ gather_plan_statistics */  hou.name "OU" ,-- e.g. Seagate Technology USOP1 ,  mc.descript
    oeh.order_number "Order Num",   hp.party_name  "Bill To Cust Name",  hcsu.location "Ship To Cust Num",
    Num",  ft.nls_territory  "Ship To Country",  mc.segment7 "designapplication",  ccm.formattedcapacity
    oel.Subinventory "Subinventory",  to_char(oel.actual_shipment_date,'MM/DD/YYYY DY') "Shipment Date",
    oe_order_headers_all oeh      ,oe_order_lines_all   oel      ,apps.hz_parties  hp      ,apps.hz_cust
    ,apps.hz_cust_acct_sites_all  hcas     , apps.seaeng_ccfamilymodelinfo ccm      ,apps.hz_party_sites hps
        ,apps.hr_organization_units  hou      ,apps.mtl_paramete
    Plan hash value: 414863479
    | Id  | Operation                                  | Name                           | Starts | E-Rows | A-Rows |   A-Time   | Buffers | Reads  |  O
    |   1 |  NESTED LOOPS                              |                                |      1 |      1 |    592 |00:02:25.13 |     535K|  57267 |       |
    |   2 |   NESTED LOOPS                             |                                |      1 |      1 |    592 |00:02:24.22 |     533K|  57185 |      
    |   3 |    NESTED LOOPS                            |                                |      1 |      1 |    592 |00:02:24.15 |     532K|  57183 |     
    |   4 |     NESTED LOOPS                           |                                |      1 |      1 |    594 |00:02:24.00 |     531K|  57171 |     
    |   5 |      NESTED LOOPS                          |                                |      1 |      1 |    594 |00:02:23.98 |     530K|  57170 |    
    |   6 |       NESTED LOOPS                         |                                |      1 |      1 |    594 |00:02:23.49 |     529K|  57129 |   
    |   7 |        NESTED LOOPS                        |                                |      1 |      1 |    594 |00:02:23.08 |     528K|  57096 |  
    |   8 |         NESTED LOOPS                       |                                |      1 |      1 |    594 |00:02:22.51 |     526K|  57031 |       |
    |   9 |          NESTED LOOPS                      |                                |      1 |      1 |    594 |00:02:21.79 |     524K|  56968 |       |
    |  10 |           NESTED LOOPS                     |                                |      1 |      1 |   2990 |00:02:09.65 |     515K|  55703 |      
    |  11 |            NESTED LOOPS                    |                                |      1 |      1 |   2990 |00:02:09.62 |     515K|  55703 |     
    |  12 |             NESTED LOOPS                   |                                |      1 |      1 |   2990 |00:02:08.47 |     509K|  55599 |     
    |* 13 |              HASH JOIN                     |                                |      1 |      2 |   3000 |00:02:07.88 |     503K|  55516 |   974K
    |  14 |               NESTED LOOPS                 |                                |      1 |      2 |   3000 |00:01:39.07 |     471K|  23025 |   
    |  15 |                NESTED LOOPS                |                                |      1 |      1 |      1 |00:00:00.01 |       4 |      0 |  
    |  16 |                 TABLE ACCESS BY INDEX ROWID| HR_ALL_ORGANIZATION_UNITS_TL   |      1 |      1 |      1 |00:00
    |* 17 |                  INDEX UNIQUE SCAN         | HR_ALL_ORGANIZATION_UNTS_TL_PK |      1 |      1 |      1 |00:00:00.0
    |* 18 |                 TABLE ACCESS BY INDEX ROWID| HR_ALL_ORGANIZATION_UNITS      |      1 |      1 |      1 |00:00:
    |* 19 |                  INDEX UNIQUE SCAN         | HR_ORGANIZATION_UNITS_PK       |      1 |      1 |      1 |00:00:00.01
    |* 20 |                TABLE ACCESS BY INDEX ROWID | OE_ORDER_LINES_ALL             |      1 |      2 |   3000 |00:01
    |* 21 |                 INDEX RANGE SCAN           | OE_ORDER_LINES_N20             |      1 |  47575 |    156K|00:00:01.76 |     420
    |* 22 |               TABLE ACCESS FULL            | MTL_ITEM_CATEGORIES            |      1 |  96977 |    263K|00:00:28.49
    |* 23 |              TABLE ACCESS BY INDEX ROWID   | MTL_CATEGORIES_B               |   3000 |      1 |   2990 |00:00:0
    |* 24 |               INDEX UNIQUE SCAN            | MTL_CATEGORIES_B_U1            |   3000 |      1 |   3000 |00:00:00.21
    |  25 |             TABLE ACCESS BY INDEX ROWID    | SEAENG_CCFAMILYMODELINFO       |   2990 |      1 |   2990 |
    |* 26 |              INDEX UNIQUE SCAN             | SEAENG_CCFAMILYMODELINFO_U1    |   2990 |      1 |   2990 |00:00:
    |* 27 |            INDEX UNIQUE SCAN               | MTL_PARAMETERS_U1              |   2990 |      1 |   2990 |00:00:00.02 |    
    |* 28 |           TABLE ACCESS BY INDEX ROWID      | OE_ORDER_HEADERS_ALL           |   2990 |      1 |    594 |00:00:
    |* 29 |            INDEX UNIQUE SCAN               | OE_ORDER_HEADERS_U1            |   2990 |      1 |   2990 |00:00:04.29 |   
    |  30 |          TABLE ACCESS BY INDEX ROWID       | HZ_CUST_SITE_USES_ALL          |    594 |      1 |    594 |00:00:
    |* 31 |           INDEX UNIQUE SCAN                | HZ_CUST_SITE_USES_U1           |    594 |      1 |    594 |00:00:00.31 |   
    |  32 |         TABLE ACCESS BY INDEX ROWID        | HZ_CUST_ACCT_SITES_ALL         |    594 |      1 |    594 |00:00:
    |* 33 |          INDEX UNIQUE SCAN                 | HZ_CUST_ACCT_SITES_U1          |    594 |      1 |    594 |00:00:00.23 |   
    |  34 |        TABLE ACCESS BY INDEX ROWID         | HZ_PARTY_SITES                 |    594 |      1 |    594 |00:00:0
    |* 35 |         INDEX UNIQUE SCAN                  | HZ_PARTY_SITES_U1              |    594 |      1 |    594 |00:00:00.17 |     601
    |  36 |       TABLE ACCESS BY INDEX ROWID          | HZ_LOCATIONS                   |    594 |      1 |    594 |00:00:00.4
    |* 37 |        INDEX UNIQUE SCAN                   | HZ_LOCATIONS_U1                |    594 |      1 |    594 |00:00:00.17 |   
    |  38 |      TABLE ACCESS BY INDEX ROWID           | FND_TERRITORIES                |    594 |      1 |    594 |00:00:00
    |* 39 |       INDEX UNIQUE SCAN                    | FND_TERRITORIES_U1             |    594 |      1 |    594 |00:00:00.02
    |* 40 |     TABLE ACCESS BY INDEX ROWID            | HZ_CUST_ACCOUNTS               |    594 |      1 |    592 |00:00:0
    |* 41 |      INDEX UNIQUE SCAN                     | HZ_CUST_ACCOUNTS_U1            |    594 |      1 |    594 |00:00:00.04 |
    |* 42 |    INDEX RANGE SCAN                        | FND_LOOKUP_VALUES_U1           |    592 |      1 |    592 |00:00:00.06 |   
    |  43 |   TABLE ACCESS BY INDEX ROWID              | HZ_PARTIES                     |    592 |      1 |    592 |00:00:00.91 |  
    |* 44 |    INDEX UNIQUE SCAN                       | HZ_PARTIES_U1                  |    592 |      1 |    592 |00:00:00.40 |     599
    Predicate Information (identified by operation id):
      13 - access("OEL"."INVENTORY_ITEM_ID"="MIC"."INVENTORY_ITEM_ID")
      17 - access("HAOTL"."ORGANIZATION_ID"=189 AND "HAOTL"."LANGUAGE"=USERENV('LANG'))
           filter(DECODE("HR_SECURITY"."VIEW_ALL"(),'Y','TRUE',"HR_SECURITY"."SHOW_RECORD"('HR_ALL_ORGAN
      18 - filter("HAO"."BUSINESS_GROUP_ID"=DECODE("HR_GENERAL"."GET_XBG_PROFILE"(),'Y',"HAO"."BUSINESS_
      19 - access("HAO"."ORGANIZATION_ID"=189)
      20 - filter(("OEL"."FLOW_STATUS_CODE"='CLOSED' AND INTERNAL_FUNCTION("OEL"."ATTRIBUTE1") AND INTER
      21 - access("OEL"."SYS_NC00342$">=TO_DATE(' 2009-01-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "O
                  'syyyy-mm-dd hh24:mi:ss'))
      22 - filter("MIC"."CATEGORY_SET_ID"=4)
      23 - filter(("MC"."DESCRIPTION" IS NOT NULL AND INTERNAL_FUNCTION("MC"."SEGMENT7")))
      24 - access("MIC"."CATEGORY_ID"="MC"."CATEGORY_ID")
      26 - access("MC"."DESCRIPTION"="CCM"."STMODELNUMBER")
      27 - access("OEL"."SHIP_FROM_ORG_ID"="MP"."ORGANIZATION_ID")
      28 - filter("OEH"."ORG_ID"=189)
      29 - access("OEH"."HEADER_ID"="OEL"."HEADER_ID")
      31 - access("OEH"."INVOICE_TO_ORG_ID"="HCSU"."SITE_USE_ID")
      33 - access("HCSU"."CUST_ACCT_SITE_ID"="HCAS"."CUST_ACCT_SITE_ID")
      35 - access("HCAS"."PARTY_SITE_ID"="HPS"."PARTY_SITE_ID")
      37 - access("HPS"."LOCATION_ID"="HL"."LOCATION_ID")
      39 - access("HL"."COUNTRY"="FT"."TERRITORY_CODE")
      40 - filter(("HCA"."SALES_CHANNEL_CODE"<>'RTL' AND "HCA"."SALES_CHANNEL_CODE"<>'AD-RTL' AND "HCA".
      41 - access("HCAS"."CUST_ACCOUNT_ID"="HCA"."CUST_ACCOUNT_ID")
      42 - access("FLV"."LOOKUP_TYPE"='SALES_CHANNEL' AND "FLV"."LOOKUP_CODE"="HCA"."SALES_CHANNEL_CODE"
           filter(("FLV"."LOOKUP_CODE"<>'RTL' AND "FLV"."LOOKUP_CODE"<>'AD-RTL' AND "FLV"."LOOKUP_CODE"<
      44 - access("HCA"."PARTY_ID"="HP"."PARTY_ID")
    90 rows selected.
    {code}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              &nbs

  • Challenge passing parameters to discoverer report

    Hello everyone, I am following the instructions on this website - http://learndiscoverer.blogspot.com/2008/11/metalink-note-304192.html
    Basically, we want to use parameters for discoverer reports, especially date parameters because of some performance issues we have been having with discoverer.
    Here is the process I am using. Please correct me if I am doing anythinng wrong.
    1. Login to apps schema and create context
    CREATE OR REPLACE CONTEXT DISCO_CONTEXT
    USING EUL4_US.DISCO_PKG
    2. Login to eul4_us schema and create package
    CREATE OR REPLACE PACKAGE DISCO_PKG
    AS
    FUNCTION set_context(p_name VARCHAR2,
    p_value VARCHAR2) RETURN VARCHAR2;
    FUNCTION show_context(p_name VARCHAR2) RETURN VARCHAR2;
    END disco_pkg;
    CREATE OR REPLACE PACKAGE BODY DISCO_PKG
    AS
    FUNCTION set_context(p_name VARCHAR2,
    p_value VARCHAR2) RETURN VARCHAR2
    IS
    BEGIN
    dbms_session.set_context('DISCO_CONTEXT', p_name, p_value);
    RETURN p_value;
    END set_context;
    FUNCTION show_context(p_name VARCHAR2) RETURN VARCHAR2
    IS
    BEGIN
    RETURN SYS_CONTEXT('DISCO_CONTEXT', p_name);
    END show_context;
    END disco_pkg;
    Then grant access to apps
    GRANT ALL ON DISCO_PKG TO APPS;
    Then import the functions show_context and set_context into discoverer
    3. Go back to apps schema and create synonym
    CREATE PUBLIC SYNONYM DISCO_PKG FOR EUL4_US.DISCO_PKG;
    4. Create discoverer custom folder using the following query:
    SELECT DISTINCT
    pet.run_result_id
    ,papf.employee_number
    FROM
    per_all_people_f papf,
    --hr_lookups hl,*
    per_all_assignments_f paaf,
    hr_all_organization_units haou,
    per_jobs pj,
    per_grades pg,
    pay_people_groups ppg,
    --per_addresses pa,*
    --hr_locations_all hla,*
    per_positions pps,
    per_people_f ppf,
    pay_assignment_actions paa,
    pay_payroll_actions ppa,
    PAY_RUN_RESULTS_V pet,
    --pay_element_types_v1 pet,
    pay_all_payrolls_f papaf
    WHERE
    papf.person_id=paaf.person_id
    AND papf.employee_number=ppf.employee_number
    AND paaf.organization_id=haou.organization_id
    AND paaf.job_id=pj.job_id(+)
    AND paaf.grade_id=pg.grade_id(+)
    AND paaf.people_group_id=ppg.people_group_id(+)
    AND paaf.position_id=pps.position_id(+)
    AND paaf.business_group_id=0
    AND paa.assignment_id = paaf.assignment_id
    AND paa.payroll_action_id = ppa.payroll_action_id
    AND paa.assignment_action_id=pet.assignment_action_id
    AND paaf.payroll_id=papaf.payroll_id
    AND ppa.effective_date BETWEEN paaf.effective_start_date AND paaf.effective_end_date
    AND ppa.effective_date BETWEEN papf.effective_start_date AND papf.effective_end_date
    AND ppa.action_type ='R'
    AND ppa.action_status = 'C'
    AND paaf.assignment_type = 'E'
    AND paaf.primary_flag = 'Y'
    AND haou.business_group_id=0
    AND ppa.effective_date = TO_DATE(SYS_CONTEXT('DISCO_CONTEXT','PAYROLL_DATE'))
    5. Create a parameter called Payroll Date. Default value is set to NULL and the "Create Condition" checkbox is unchecked.
    6. Create a calculation
    SET_CONTEXT('PAYROLL_DATE', TO_CHAR(:Payroll Date))
    And that's it.
    The thing is, this doesn't work for me.
    But for the same query, if I enter the date value I am substituting, values show up. So it seems for some reason, the context value probably isn't being set or thereabouts.
    I have tried setting the context manually in a TOAD session using:
    declare
    v_ret varchar2(50);
    begin
    --dbms_session.set_context('DISCO_CONTEXT', 'PAYROLL_DATE', '31-MAR-2010');
    v_ret := disco_pkg.set_context('PAYROLL_DATE', '01-MAR-2010');
    dbms_output.put_line(v_ret);
    end;
    And afterwards run the query:
    select sys_context('DISCO_CONTEXT', 'PAYROLL_DATE') from dual
    And results do show up here. So I'm wondering what could be wrong.
    Please help.

    Hi ,
    Are you saying I should create a new workbook that is not based on my custom folder for setting and showing the context value? You don't need to create a new workbook, you can just create a new worksheet in your report workbook, but you will need two sheets to use contexts. The sheet that sets the contexts should not be based on your custom folder, but on a folder that returns a single row. You cannot set and check contexts in a single SQL statement, so you have to have 2 worksheets.
    You can default the contexts using a trigger or initialisation SQL so that the user only has to set the contexts if they are not using the defaults.
    Rod West

  • ORA-20001: PAY_7599_SYS_SUP_DT_OUTDATE when trying to create a new employee

    hello.
    I hope someone can help. My script below takes record(s) from a temporary table and loads them into ORACLE Financials via several APIs but on initial testing (using 1 NEW Record) it fails with the error message:
    Employee No: 00020206
    ORACLE error occurred processing record.. ORA-20001: PAY_7599_SYS_SUP_DT_OUTDATE
    Ive tried to google the error message but nothing - can someone either suggest what this may be or shsow me another way of getting a more precise reason for the problem?
    /* Formatted on 2009/04/29 11:52 (Formatter Plus v4.8.7) */
    SET serveroutput ON SIZE 1000000 FORMAT WRAPPED
    SET verify OFF
    SET feedback OFF
    DECLARE
    -- Debugging/error handling
    -- Work variables
       l_employ_start_date        DATE:= TO_DATE ('01-APR-1999', 'DD-MON-YYYY');
       v_ora_loc_code number                     := 0;
       p_emp_number                     VARCHAR2 (14);
       v_rec_cnt                        NUMBER                          := 0;
       insert_flag                      VARCHAR2 (8);
       err_num                          NUMBER;
       err_msg                          VARCHAR2 (150);
       err_line                         VARCHAR2 (350);
       err_seq                          NUMBER                          := 0;
       l_validate                       BOOLEAN                     DEFAULT FALSE;
       l_std_business_group_id          NUMBER                          := '0';
       l_default_code_comb_id           NUMBER                        := '218048';
       l_organization_id                NUMBER                          := '0';
       l_set_of_books_id                NUMBER                          := '1';
       l_job_id                         NUMBER                          := '10';
       l_obj                            NUMBER;
       l_datetrack_update_mode          VARCHAR2 (30)             := 'CORRECTION';
       l_assignment_sequence            NUMBER;
       l_name_combination_warning       BOOLEAN                         := FALSE;
       l_assign_payroll_warning         BOOLEAN                         := FALSE;
       l_org_now_no_manager_warning     BOOLEAN;
       l_other_manager_warning          BOOLEAN;
       l_spp_delete_warning             BOOLEAN;
       l_entries_changed_warning        VARCHAR2 (30);
       l_tax_district_changed_warning   BOOLEAN;
       l_person_id                      NUMBER;
       l_assignment_id                  NUMBER;
       l_assignment_id2           NUMBER;  -- := '28262';
       l_special_ceiling_step_id        NUMBER;
       l_per_effective_end_date         DATE:= TO_DATE ('11-Jul-2049', 'DD-MON-YYYY');
       l_people_group_id                NUMBER;
       l_group_name                     VARCHAR2 (30);
       l_assignment_number              VARCHAR2 (35);
       l_effective_end_date             DATE := TO_DATE ('11-Jul-2049', 'DD-MON-YYYY');
       l_date                           DATE                           := SYSDATE;
       ip_p_address_id                  per_addresses.address_id%TYPE;
       ip_p_object_version_number       NUMBER;
       ip_p_party_id                    per_addresses.party_id%TYPE;
       l_per_object_version_number      NUMBER;
       l_asg_object_version_number      NUMBER;
       l_full_name                      VARCHAR2 (240);
       l_per_comment_id                 NUMBER;
       l_per_effective_start_date       DATE;
       l_concatenated_segments          VARCHAR2 (240);
       l_soft_coding_keyflex_id         NUMBER;
       l_comment_id                     NUMBER;
       l_no_managers_warning            BOOLEAN;
    -- Get employee details info from work table
       CURSOR get_employee_details
       IS
          SELECT std_hire_date, std_last_name, std_sex, std_date_of_birth,
                 std_email_address, std_emp_status,
                 LPAD (std_employee_number, 8, '0') std_employee_number,
                 std_first_name, std_marital_status, std_middle_names,
                 std_nationality, std_title, std_national_identifier,
                 std_address_line1, std_address_line2, std_address_line3,
                 std_address_line4, std_post_code, std_telephone_1, std_country,
                 std_region, std_location_id, std_organization_id,
                 std_supervisor_id, std_person_id, std_position_id
            FROM SU_TEMPLOYEE_DETAILS;
    -- Get EXISTING employee details info from ORACLE tables
       CURSOR get_existing_employee_details
       IS
          SELECT per.person_id, per.business_group_id, per.last_name,
                 per.start_date, per.date_of_birth, per.email_address,
                 per.employee_number, per.first_name, per.marital_status,
                 per.middle_names, per.nationality, per.national_identifier,
                 per.sex, per.title, padd.address_id, padd.primary_flag,
                 padd.address_line1, padd.address_line2, padd.address_line3,
                 padd.town_or_city, padd.postal_code, padd.telephone_number_1, paas.assignment_id,
                 paas.assignment_number, paas.object_version_number, paas.EFFECTIVE_START_DATE,
         paas.job_id, paas.position_id, paas.location_id, paas.organization_id, paas.assignment_type, paas.supervisor_id,
                 paas.default_code_comb_id, paas.set_of_books_id, paas.period_of_service_id
          FROM   per_all_people_f per,
                 per_all_assignments_f paas,
                 per_addresses padd
           WHERE
         per.person_id = padd.person_id
         --        AND paas.person_id(+) = per.person_id;
            AND paas.person_id(+) = per.person_id;
    -- checks employee details info from PER_ALL_PEOPLE_F table
       CURSOR c_check_employee (p_emp_number VARCHAR2)
       IS
          SELECT per.person_id, per.business_group_id, per.last_name,
                 per.start_date, per.date_of_birth, per.email_address,
                 per.employee_number, per.first_name, per.marital_status,
                 per.middle_names, per.nationality, per.national_identifier,
                 per.sex, per.title, padd.address_id, padd.primary_flag,
                 padd.address_line1, padd.address_line2, padd.address_line3,
                 padd.town_or_city, padd.postal_code, padd.telephone_number_1, paas.assignment_id,
                 paas.assignment_number, paas.object_version_number, paas.EFFECTIVE_START_DATE,
         paas.job_id, paas.position_id, paas.location_id, paas.organization_id, paas.assignment_type, paas.supervisor_id,
                 paas.default_code_comb_id, paas.set_of_books_id, paas.period_of_service_id
          FROM   per_all_people_f per,
                 per_all_assignments_f paas,
                 per_addresses padd
           WHERE per.employee_number = p_emp_number
             AND per.person_id = padd.person_id
             AND paas.person_id(+) = per.person_id;
       emp_rec                          c_check_employee%ROWTYPE;
    -- Cursor retrieves latest Object Version Number from per_assignments_f table..
       CURSOR csr_ovn (cp_person_id IN per_all_people_f.person_id%TYPE)
       IS
          SELECT MAX (paas.object_version_number)
            FROM per_assignments_f paas, per_all_people_f per
           WHERE paas.person_id = per.person_id
             AND per.employee_number = paas.assignment_number
             AND per.person_id = cp_person_id;
    -- Cursor to get Oracle_Loc_Code from SU CHRIS vs ORACLE Locations Table into a variable..
    CURSOR csr_ora_loc_code (cp_location_id IN SU_TEMPLOYEE_DETAILS.std_location_id%TYPE)
    IS
          SELECT sil.ORACLE_LOC_CODE
         FROM SU_TEMPLOYEE_DETAILS std, SU_IEXP_LOCATIONS sil
         WHERE std.STD_LOCATION_ID = sil.CHRIS_LOC_code
         AND std.STD_LOCATION_ID = cp_location_id;
    BEGIN
    -- Process each record in the work table
       FOR v_emp IN get_employee_details
       LOOP
    -- determine whether customer already exists
          OPEN c_check_employee (v_emp.std_employee_number);
          FETCH c_check_employee
           INTO emp_rec;
           l_assignment_id2 := emp_rec.assignment_id;
          IF v_emp.std_emp_status = 'N' and c_check_employee%NOTFOUND
          THEN
             insert_flag := 'I';
             DBMS_OUTPUT.PUT_LINE ('Employee No: ' || v_emp.std_employee_number);
          ELSIF v_emp.std_emp_status = 'C'
          THEN
           -- if c_check_employee%NOTFOUND then raise no_data_found;
            -- elsif l_assignment_id2 is null then
             if l_assignment_id2 is null then
              raise_application_error (-20010, 'Employee No: ' || v_emp.std_employee_number  || ' exists but has no assignment id!');
            end if;
               DBMS_OUTPUT.PUT_LINE ('Employee No: ' || v_emp.std_employee_number ||  '  already exists, making changes.. '   );
               insert_flag := 'C';
          -- RAISE_APPLICATION_ERROR (-20001,  'Employee No: ' || v_emp.std_employee_number  || '  already exists '    );
           END IF;
          CLOSE c_check_employee;
    -- Obtain the most recent Object Version Number..
          OPEN csr_ovn (v_emp.std_person_id);
          FETCH csr_ovn
           INTO l_obj;
          -- IF csr_ovn%NOTFOUND     THEN        RAISE NO_DATA_FOUND;   END IF;
          CLOSE csr_ovn;
    -- Open Oracle Location Code cursor
    OPEN csr_ora_loc_code(v_emp.std_location_id); 
          FETCH csr_ora_loc_code
           INTO v_ora_loc_code;
          CLOSE csr_ora_loc_code;
    -- Create new PER_ALL_PEOPLE_F and PER_ADDRESSES record from
    --            info in  table record
          IF insert_flag = 'I'
          THEN
    --                      -- Importing Employee Procedure --
             Hr_Employee_Api.create_gb_employee
                     (p_validate                       => l_validate,
                      p_hire_date                      => l_employ_start_date,
                      p_business_group_id              => l_std_business_group_id,
                      p_date_of_birth                  => v_emp.std_date_of_birth,
                      p_email_address                  => v_emp.std_email_address,
                      p_first_name                     => v_emp.std_first_name,
                      p_middle_names                   => v_emp.std_middle_names,
                      p_last_name                      => v_emp.std_last_name,
                      p_sex                            => v_emp.std_sex,
                      p_ni_number                      => v_emp.std_national_identifier,
                      p_employee_number                => v_emp.std_employee_number,
                      p_person_id                      => l_person_id,
                      p_title                          => v_emp.std_title,
                      p_assignment_id                  => l_assignment_id,
                      p_per_object_version_number      => l_per_object_version_number,
                      p_asg_object_version_number      => l_asg_object_version_number,
                      p_per_effective_start_date       => l_per_effective_start_date,
                      p_per_effective_end_date         => l_per_effective_end_date,
                      p_full_name                      => l_full_name,
                      p_per_comment_id                 => l_per_comment_id,
                      p_assignment_sequence            => l_assignment_sequence,
                      p_assignment_number              => l_assignment_number,
                      p_name_combination_warning       => l_name_combination_warning,
                      p_assign_payroll_warning         => l_assign_payroll_warning
             Hr_Person_Address_Api.create_person_address
                                      (p_validate                     => l_validate,
                        --            p_effective_date               => v_emp.std_hire_date,
                                       p_effective_date              =>  l_employ_start_date,
                                       p_pradd_ovlapval_override      => NULL,
                                       p_validate_county              => NULL,
                                       p_person_id                    => l_person_id,
                                       p_primary_flag                 => 'Y',
                                       p_style                        => 'GB_GLB',
                                       p_date_from                    => SYSDATE,
                                       p_date_to                      => NULL,
                                       p_address_type                 => NULL,
                                       p_comments                     => NULL,
                                       p_address_line1                => v_emp.std_address_line1,
                                       p_address_line2                => v_emp.std_address_line2,
                                       p_address_line3                => v_emp.std_address_line3,
                                       p_town_or_city                 => v_emp.std_address_line4,
                                       p_region_1                     => NULL,
                                       p_region_2                     => NULL,
                                       p_region_3                     => NULL,
                                       p_postal_code                  => v_emp.std_post_code,
                                       p_country                      => v_emp.std_nationality,
                                       p_telephone_number_1           => NULL,
                                       p_telephone_number_2           => NULL,
                                       p_telephone_number_3           => NULL,
                                       p_party_id                     => ip_p_party_id,
                                       p_address_id                   => ip_p_address_id,
                                       p_object_version_number        => l_obj
             Hr_Assignment_Api.update_emp_asg
                            (p_validate                    => l_validate,
                             p_effective_date              => SYSDATE,  -- l_date,
                             p_datetrack_update_mode       => l_datetrack_update_mode,
                             p_assignment_id               => l_assignment_id,
                             p_object_version_number       => l_obj,
                             p_supervisor_id               => v_emp.std_supervisor_id,
                             p_default_code_comb_id        => l_default_code_comb_id,
                             p_set_of_books_id             => l_set_of_books_id,
                             p_concatenated_segments       => l_concatenated_segments,
                             --IN/OUT
                             p_soft_coding_keyflex_id      => l_soft_coding_keyflex_id,
                             --IN/OUT
                             p_comment_id                  => l_comment_id,
                             --IN/OUT
                             p_effective_start_date        => l_date,     --IN/OUT
                             p_effective_end_date          => l_effective_end_date,
                             --IN/OUT
                             p_no_managers_warning         => l_no_managers_warning,
                             --IN/OUT
                             p_other_manager_warning       => l_other_manager_warning
                            --IN/OUT
             Hr_Assignment_Api.update_emp_asg_criteria
                 (p_validate                          => l_validate,
                  p_effective_date                    => SYSDATE,       -- l_date,
                  p_datetrack_update_mode             => l_datetrack_update_mode,
                  p_assignment_id                     => l_assignment_id,
                  p_object_version_number             => l_obj,
                  p_organization_id                   => l_organization_id,
                  p_location_id                       => v_ora_loc_code,
                  p_job_id                            => l_job_id,
                  p_position_id                       => v_emp.std_position_id,
                  p_special_ceiling_step_id           => l_special_ceiling_step_id,
                  p_effective_start_date              => l_date,
                  --per_effective_start_date,
                  p_effective_end_date                => l_effective_end_date,
                  --IN/OUT
                  p_people_group_id                   => l_people_group_id,
                  --IN/OUT
                  p_group_name                        => l_group_name,    --IN/OUT
                  p_org_now_no_manager_warning        => l_org_now_no_manager_warning,
                  --IN/OUT
                  p_other_manager_warning             => l_other_manager_warning,
                  --IN/OUT
                  p_spp_delete_warning                => l_spp_delete_warning,
                  --IN/OUT
                  p_entries_changed_warning           => l_entries_changed_warning,
                  --IN/OUT
                  p_tax_district_changed_warning      => l_tax_district_changed_warning
                 --IN/OUT
             v_rec_cnt := v_rec_cnt + 1;
             DBMS_OUTPUT.PUT (CHR (10));
             DBMS_OUTPUT.PUT_LINE (   'There were '
                                   || v_rec_cnt
                                   || '  records read in..'
    -- Updating PER_ALL_PEOPLE_F and PER_ADDRESSES record from
    --            info in  table record
       ELSE IF insert_flag = 'C'
          THEN
    -- ===================================================
    -- these next 6 lines is for the initial mass update of existing employee records only     
    -- ===================================================
    /*IF emp_rec.default_code_comb_id is NULL THEN
         l_default_code_comb_id = 218048;
         END IF;     
         IF emp_rec.job_id is NULL THEN
         l_job_id = 10;
         END IF;      */
    -- =========
    -- Section end
    -- =========
             Hr_Assignment_Api.update_emp_asg
                            (p_validate                    => l_validate,
                    p_effective_date              => emp_rec.EFFECTIVE_START_DATE,
                             p_datetrack_update_mode       => l_datetrack_update_mode,
                             p_assignment_id               => l_assignment_id2,
                             p_object_version_number       => l_obj,
                             p_supervisor_id               => v_emp.std_supervisor_id,
                             p_default_code_comb_id        => emp_rec.default_code_comb_id,
                             p_set_of_books_id             => emp_rec.set_of_books_id,
                             p_concatenated_segments       => l_concatenated_segments,
                             --IN/OUT
                             p_soft_coding_keyflex_id      => l_soft_coding_keyflex_id,
                             --IN/OUT
                             p_comment_id                  => l_comment_id,
                             --IN/OUT
                             p_effective_start_date        => l_date,     --IN/OUT
                             p_effective_end_date          => l_effective_end_date,
                             --IN/OUT
                             p_no_managers_warning         => l_no_managers_warning,
                             --IN/OUT
                             p_other_manager_warning       => l_other_manager_warning
                            --IN/OUT
             Hr_Assignment_Api.update_emp_asg_criteria
                 (p_validate                          => l_validate,
                  p_effective_date                    => emp_rec.EFFECTIVE_START_DATE,
                  p_datetrack_update_mode             => l_datetrack_update_mode,
                  p_assignment_id                     => l_assignment_id2,
                  p_object_version_number             => l_obj,
                  p_organization_id                   => emp_rec.organization_id,
                  p_location_id                       => v_ora_loc_code,
                  p_job_id                            => emp_rec.job_id,
                  p_position_id                       => emp_rec.position_id,
                  p_special_ceiling_step_id           => l_special_ceiling_step_id,
                  p_effective_start_date              => emp_rec.EFFECTIVE_START_DATE,
                  p_effective_end_date                => l_effective_end_date,
                  --IN/OUT
                  p_people_group_id                   => l_people_group_id,
                  --IN/OUT
                  p_group_name                        => l_group_name,    --IN/OUT
                  p_org_now_no_manager_warning        => l_org_now_no_manager_warning,
                  --IN/OUT
                  p_other_manager_warning             => l_other_manager_warning,
                  --IN/OUT
                  p_spp_delete_warning                => l_spp_delete_warning,
                  --IN/OUT
                  p_entries_changed_warning           => l_entries_changed_warning,
                  --IN/OUT
                  p_tax_district_changed_warning      => l_tax_district_changed_warning
                 --IN/OUT
             v_rec_cnt := v_rec_cnt + 1;
             DBMS_OUTPUT.PUT (CHR (10));
             DBMS_OUTPUT.PUT_LINE (   'There were '
                                   || v_rec_cnt
                                   || '  records read in..'
             DBMS_OUTPUT.PUT (CHR (10));
    -- End of customer related details
          END IF;
          END IF;
       END   LOOP;
       COMMIT;
    EXCEPTION
       WHEN NO_DATA_FOUND
        THEN
         ROLLBACK;
          err_num := TO_CHAR (SQLCODE);
          err_msg := SUBSTR (SQLERRM, 1, 150);
          err_line :=   'ORACLE error occurred processing record.. ' ||  err_msg;
          DBMS_OUTPUT.PUT_LINE (err_line);
          INSERT INTO SU_ERROR_LOG  VALUES (err_msg, 'TEMPLOYEE_DTLS.sql', SYSTIMESTAMP);
        WHEN OTHERS
       THEN
          ROLLBACK;
          err_num := TO_CHAR (SQLCODE);
          err_msg := SUBSTR (SQLERRM, 1, 150);
          err_line :=   'ORACLE error occurred processing record.. ' ||  err_msg;
          DBMS_OUTPUT.PUT_LINE (err_line);
          INSERT INTO SU_ERROR_LOG  VALUES (err_msg, 'TEMPLOYEE_DTLS.sql', SYSTIMESTAMP);
    END;
    EXIT;Many thanks
    Steven

    It looks like the Supervisor employee is not active for the duration of the Employee Record.
    Using the correct Supervisor record should resolve the issue.

  • How to set a MessageTextInput to be Read Only for a specific row?

    Hi,
    In Benefits Self Service, particularly the Update Beneficiaries page, it lists all your eligible Beneficiaries including yourself. The table has the following columns displayed for each beneficiary: Beneficiary, Relationship, Social Security Number, Primary %, Contingent %, Clear. This is the page where you allocate the Primary % and the Contingent %. The Primary % and Contingent % are MessageText Input.
    We have a requirement that we wouldn't want an employee to designate himself/herself as a beneficiary. However, the employee is being listed as a beneficiary along with all the other eligible beneficiaries. Oracle says it is an intended functionality to include the employee in the beneficiary. Is there a way thru Controller Object extension to set the Primary % and Contingent % as Read Only but only for the row corresponding to the employee to prevent the employee from accidentally allocating himself/herself as a beneficiary.
    I know there is the SPEL functionality but this requires me to add a transient attribute to the View Object corresponding to that table. But everytime I make a change to the View Object either by adding a transient attribute or some other changes, I end up getting an error on the standard Relation attribute of that view object. The error is something like "Relation set attribute failed for View Object". I cannot get pass this error and I'm not sure what's causing this. I see other people in this forum have encountered the same problem when extending view objects but no specific solution was offered nor any clear explanation of the cause.
    So I thought if there's any way this could be done thru Controller Object extension. If so, please let me know how. The challenge for me I think is finding the bean corresponding to those Message Text Input but only for a specific row in the table.
    Thanks,
    Ronaldo

    Hi,
    I also tried extending the View Object but without changing anything to the SQL so it is exactly the same as the standard view object but I still get the "Attribute set for Relation in view object BeneficiaryPeopleVO1 failed". Based from this, extending the view object whether any change has been made or not affects the standard transient Relation attribute.
    Here is the standard XML definition of the View Object if anyone is curious
    <ViewObject
    Name="BeneficiaryPeopleVO"
    BindingStyle="Oracle"
    CustomQuery="true"
    RowClass="oracle.apps.ben.selfservice.enrollment.server.BeneficiaryPeopleVORowImpl"
    ComponentClass="oracle.apps.ben.selfservice.enrollment.server.BeneficiaryPeopleVOImpl"
    MsgBundleClass="oracle.jbo.common.JboResourceBundle"
    FetchMode="FETCH_AS_NEEDED"
    FetchSize="10"
    UseGlueCode="false" >
    <SQLQuery><![CDATA[
    SELECT pcr.person_id person_id,
    pen.prtt_enrt_rslt_id prtt_enrt_rslt_id,
    con.first_name ||' '||con.last_name || ' ' || con.suffix Beneficiary,
    con.national_identifier Ssn,
    sum(decode(pbn.prmry_cntngnt_cd,'PRIMY',pbn.pct_dsgd_num,0)) primary_pct,
    sum(decode(pbn.prmry_cntngnt_cd,'CNTNGNT',pbn.pct_dsgd_num,0)) contingent_pct,
    con.person_id bnf_person_id,
    con.business_group_id,
    pen.per_in_ler_id,
    pbn.pl_bnf_id pl_bnf_id,
    pbn.object_version_number object_version_number,
    pbn.effective_start_date,
    pcr.contact_type contact_type,
    con.full_name beneficiary_full_name,
    sum(decode(pbn.prmry_cntngnt_cd,'PRIMY',pbn.pct_dsgd_num,0)) Db_Primary_pct,
    sum(decode(pbn.prmry_cntngnt_cd,'CNTNGNT',pbn.pct_dsgd_num,0)) db_contingent_pct,
    DECODE(pbn.pl_bnf_id, null, 'DeleteIconDisabled', 'DeleteIconEnabled') delete_switcher,
    pen.pl_id pl_id,
    pen.oipl_id oipl_id,
    nvl((select 'Y' from dual where (to_date(:1 , 'rrrr/mm/dd') between
              nvl(pcr.date_start,to_date(:2 , 'rrrr/mm/dd')) and
              nvl(pcr.date_end,to_date(:3 , 'rrrr/mm/dd'))) and
              (pil.lf_evt_ocrd_dt <= nvl(con.date_of_death,pil.lf_evt_ocrd_dt))), 'N') rel_exists_flag
    FROM per_people_f con,
    per_contact_relationships pcr,
    ben_pl_bnf_f pbn,
    ben_prtt_enrt_rslt_f pen,
         ben_per_in_ler pil
    WHERE pcr.personal_flag = 'Y'
    AND (pbn.pl_bnf_id is not null or
    (to_date(:4 ,'rrrr/mm/dd') between
    nvl(pcr.date_start,to_date(:5 ,'rrrr/mm/dd'))
    AND nvl(pcr.date_end,to_date(:6 ,'rrrr/mm/dd'))
              and pil.lf_evt_ocrd_dt <= nvl(con.date_of_death,pil.lf_evt_ocrd_dt)))     --Bug 4297137  
    AND pcr.contact_person_id = con.person_id
    and pen.person_id = pcr.person_id
    AND pbn.bnf_person_id (+) = con.person_id
    AND to_date(:7 ,'rrrr/mm/dd') between pbn.effective_start_date (+)
    AND pbn.effective_end_date (+)
    AND pcr.person_id = :8
    and pen.prtt_enrt_rslt_id = :9
    and to_date(:10 , 'rrrr/mm/dd') between con.effective_start_date and con.effective_end_date
    and to_date(:11 , 'rrrr/mm/dd') between pen.effective_start_date and pen.effective_end_date
    and pil.per_in_ler_id = pen.per_in_ler_id
    and pil.per_in_ler_stat_cd NOT IN('VOIDD', 'BCKDT')
    and pbn.prtt_enrt_rslt_id (+) = :12
    and ((to_date(:13 ,'rrrr/mm/dd') between
    nvl(pcr.date_start,to_date(:14 ,'rrrr/mm/dd')) and
    nvl(pcr.date_end,to_date(:15 ,'rrrr/mm/dd'))) or
    ((pcr.date_start = (select max(pcr2.date_start)
    from per_contact_relationships pcr2
    where pcr2.contact_person_id = pcr.contact_person_id
    and pcr2.person_id = pcr.person_id
    and pcr2.personal_flag = 'Y')) and
    not exists (select null
    from per_contact_relationships pcr3
    where pcr3.contact_person_id = pcr.contact_person_id
    and pcr3.person_id = pcr.person_id
    and pcr3.personal_flag = 'Y'
    and to_date(:16 ,'rrrr/mm/dd') between
    nvl(pcr3.date_start,to_date(:17 ,'rrrr/mm/dd'))
    and nvl(pcr3.date_end,to_date(:18 ,'rrrr/mm/dd')))
    and (pbn.pl_bnf_id is null or
    exists (select null from ben_per_in_ler pil2
    where pil2.per_in_ler_id = pbn.per_in_ler_id
    and pil2.per_in_ler_stat_cd not in ('VOIDD','BCKDT')))
    GROUP BY pcr.person_id,
    pen.prtt_enrt_rslt_id,
    con.last_name,con.first_name,con.suffix,
    con.full_name,
    con.national_identifier,
    pcr.contact_type,
    con.date_of_birth,
    con.person_id,
    con.business_group_id,
    pen.per_in_ler_id,
    pl_bnf_id,
    pbn.object_version_number,
    pbn.effective_start_date,
    pen.pl_id,
    pen.oipl_id,
              pcr.date_start,
              pcr.date_end,
              pil.lf_evt_ocrd_dt,
              con.date_of_death
    union
    SELECT to_number(null) person_id,
    pen.prtt_enrt_rslt_id prtt_enrt_rslt_id,
    con.first_name ||' '||con.last_name || ' ' || con.suffix Beneficiary,
    con.national_identifier Ssn,
    sum(decode(pbn.prmry_cntngnt_cd,'PRIMY',pbn.pct_dsgd_num,0)) primary_pct,
    sum(decode(pbn.prmry_cntngnt_cd,'CNTNGNT',pbn.pct_dsgd_num,0)) contingent_pct,
    con.person_id bnf_person_id,
    con.business_group_id,
    pen.per_in_ler_id,
    pbn.pl_bnf_id pl_bnf_id,
    pbn.object_version_number object_version_number,
    pbn.effective_start_date,
    'SLF' contact_type,
    con.full_name beneficiary_full_name,
    sum(decode(pbn.prmry_cntngnt_cd,'PRIMY',pbn.pct_dsgd_num,0)) Db_Primary_pct,
    sum(decode(pbn.prmry_cntngnt_cd,'CNTNGNT',pbn.pct_dsgd_num,0)) db_contingent_pct,
    DECODE(pbn.pl_bnf_id, null, 'DeleteIconDisabled', 'DeleteIconEnabled') delete_switcher,
    pen.pl_id pl_id,
    pen.oipl_id oipl_id,
    'Y' rel_exists_flag
    FROM per_people_f con,
    ben_pl_bnf_f pbn,
    ben_prtt_enrt_rslt_f pen,
         ben_per_in_ler pil
    WHERE
    pbn.bnf_person_id (+) = con.person_id
    AND to_date(:19 ,'rrrr/mm/dd') between pbn.effective_start_date (+)
    AND pbn.effective_end_date (+)
    AND con.person_id = :20
    and con.person_id = pen.person_id
    and pen.prtt_enrt_rslt_id = :21
    and to_date(:22 , 'rrrr/mm/dd') between con.effective_start_date and con.effective_end_date
    and to_date(:23 , 'rrrr/mm/dd') between pen.effective_start_date and pen.effective_end_date
    and pil.per_in_ler_id = pen.per_in_ler_id
    and pil.per_in_ler_stat_cd NOT IN('VOIDD', 'BCKDT')
    and (pbn.pl_bnf_id is not null or pil.lf_evt_ocrd_dt <= nvl(con.date_of_death,pil.lf_evt_ocrd_dt))     --Bug 4297137
    and pbn.prtt_enrt_rslt_id (+) = :24
    and (pbn.pl_bnf_id is null or
    exists (select null from ben_per_in_ler pil2
    where pil2.per_in_ler_id = pbn.per_in_ler_id
    and pil2.per_in_ler_stat_cd not in ('VOIDD','BCKDT')))
    GROUP BY pen.prtt_enrt_rslt_id,
    con.last_name,con.first_name,con.suffix,
    con.full_name,
    con.national_identifier,
    con.date_of_birth,
    con.person_id,
    con.business_group_id,
    pen.per_in_ler_id,
    pl_bnf_id,
    pbn.object_version_number,
    pbn.effective_start_date,
    pen.pl_id,
    pen.oipl_id
    ORDER BY 3,14
    ]]></SQLQuery>
    <DesignTime>
    <Attr Name="_isCodegen" Value="true" />
    <Attr Name="_version" Value="9.0.3.13.75" />
    <Attr Name="_CodeGenFlagNew" Value="36" />
    <Attr Name="_rowSuperClassName" Value="oracle.apps.fnd.framework.server.OAPlsqlViewRowImpl" />
    <Attr Name="_objectSuperClassName" Value="oracle.apps.fnd.framework.server.OAPlsqlViewObjectImpl" />
    </DesignTime>
    <ViewAttribute
    Name="PersonId"
    IsQueriable="false"
    IsPersistent="false"
    Precision="15"
    Scale="0"
    Type="oracle.jbo.domain.Number"
    AliasName="PERSON_ID"
    ColumnType="$none$"
    Expression="&#39;See the SQL...&#39;"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="PrttEnrtRsltId"
    IsQueriable="false"
    IsPersistent="false"
    Precision="15"
    Scale="0"
    Type="oracle.jbo.domain.Number"
    AliasName="PRTT_ENRT_RSLT_ID"
    ColumnType="$none$"
    Expression="&#39;See the SQL...&#39;"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="Beneficiary"
    IsQueriable="false"
    IsPersistent="false"
    Precision="332"
    Type="java.lang.String"
    AliasName="BENEFICIARY"
    ColumnType="$none$"
    Expression="&#39;See the SQL...&#39;"
    SQLType="VARCHAR" >
    </ViewAttribute>
    <ViewAttribute
    Name="Ssn"
    IsQueriable="false"
    IsPersistent="false"
    Precision="30"
    Type="java.lang.String"
    AliasName="SSN"
    ColumnType="$none$"
    Expression="&#39;See the SQL...&#39;"
    SQLType="VARCHAR" >
    </ViewAttribute>
    <ViewAttribute
    Name="PrimaryPct"
    IsQueriable="false"
    IsPersistent="false"
    Precision="15"
    Type="oracle.jbo.domain.Number"
    AliasName="PRIMARYPCT"
    ColumnType="$none$"
    Expression="&#39;See the SQL...&#39;"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="ContingentPct"
    IsQueriable="false"
    IsPersistent="false"
    Precision="15"
    Scale="0"
    Type="oracle.jbo.domain.Number"
    AliasName="CONTINGENTPCT"
    ColumnType="$none$"
    Expression="&#39;See the SQL...&#39;"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="BnfPersonId"
    IsQueriable="false"
    IsPersistent="false"
    Precision="15"
    Scale="0"
    Type="oracle.jbo.domain.Number"
    AliasName="BNFPERSONID"
    ColumnType="$none$"
    Expression="&#39;See the SQL...&#39;"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="BusinessGroupId"
    IsQueriable="false"
    IsPersistent="false"
    Precision="15"
    Scale="0"
    Type="oracle.jbo.domain.Number"
    AliasName="BUSINESSGROUPID"
    ColumnType="$none$"
    Expression="&#39;See the SQL...&#39;"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="PerInLerId"
    IsQueriable="false"
    IsPersistent="false"
    Precision="15"
    Scale="0"
    Type="oracle.jbo.domain.Number"
    AliasName="PERINLERID"
    ColumnType="$none$"
    Expression="&#39;See the SQL...&#39;"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="PlBnfId"
    IsQueriable="false"
    IsPersistent="false"
    Precision="15"
    Scale="0"
    Type="oracle.jbo.domain.Number"
    AliasName="PL_BNF_ID"
    ColumnType="$none$"
    Expression="PL_BNF_ID"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="ObjectVersionNumber"
    IsQueriable="false"
    IsPersistent="false"
    Precision="9"
    Scale="0"
    Type="oracle.jbo.domain.Number"
    AliasName="OBJECT_VERSION_NUMBER"
    ColumnType="$none$"
    Expression="OBJECT_VERSION_NUMBER"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="EffectiveStartDate"
    IsQueriable="false"
    IsPersistent="false"
    Type="oracle.jbo.domain.Date"
    AliasName="EFFECTIVE_START_DATE"
    ColumnType="$none$"
    Expression="EFFECTIVE_START_DATE"
    SQLType="DATE" >
    </ViewAttribute>
    <ViewAttribute
    Name="ContactType"
    IsQueriable="false"
    IsPersistent="false"
    IsNotNull="true"
    Precision="30"
    Type="java.lang.String"
    AliasName="CONTACT_TYPE"
    ColumnType="$none$"
    Expression="CONTACT_TYPE"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="30" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="BeneficiaryFullName"
    IsQueriable="false"
    IsPersistent="false"
    Precision="240"
    Type="java.lang.String"
    AliasName="BENEFICIARY_FULL_NAME"
    ColumnType="$none$"
    Expression="BENEFICIARY_FULL_NAME"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="240" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="DbPrimaryPct"
    IsQueriable="false"
    IsPersistent="false"
    Type="oracle.jbo.domain.Number"
    AliasName="DB_PRIMARY_PCT"
    ColumnType="$none$"
    Expression="DB_PRIMARY_PCT"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="DbContingentPct"
    IsQueriable="false"
    IsPersistent="false"
    Type="oracle.jbo.domain.Number"
    AliasName="DB_CONTINGENT_PCT"
    ColumnType="$none$"
    Expression="DB_CONTINGENT_PCT"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="Relation"
    IsQueriable="false"
    IsPersistent="false"
    Type="java.lang.String"
    AliasName="Relation"
    ColumnType="$none$"
    SQLType="VARCHAR" >
    </ViewAttribute>
    <ViewAttribute
    Name="DeleteSwitcher"
    IsPersistent="false"
    Precision="30"
    Type="java.lang.String"
    AliasName="DeleteSwitcher"
    ColumnType="VARCHAR2"
    Expression="DeleteSwitcher"
    SQLType="VARCHAR" >
    </ViewAttribute>
    <ViewAttribute
    Name="PlId"
    IsPersistent="false"
    Precision="15"
    Scale="0"
    Type="oracle.jbo.domain.Number"
    AliasName="PlId"
    ColumnType="VARCHAR2"
    Expression="PlId"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="OiplId"
    IsUpdateable="false"
    IsPersistent="false"
    Precision="15"
    Scale="0"
    Type="oracle.jbo.domain.Number"
    AliasName="OiplId"
    ColumnType="VARCHAR2"
    Expression="OiplId"
    SQLType="NUMERIC" >
    </ViewAttribute>
    <ViewAttribute
    Name="RelExistsFlag"
    IsQueriable="false"
    IsPersistent="false"
    Precision="30"
    Type="java.lang.String"
    AliasName="REL_EXISTS_FLAG"
    ColumnType="VARCHAR2"
    Expression="REL_EXISTS_FLAG"
    SQLType="VARCHAR" >
    </ViewAttribute>
    </ViewObject>
    Thanks,
    Ronaldo

Maybe you are looking for

  • Debatching and File Chunking

    I want to know 1) the Difference between Debatching and File Chunking? 2) how both work? anyone kindly explain me.

  • [Solved] error: C compiler cannot create executables; see 'config.log'

    Trying to build avant-window-navigator from the aur using yaourt results in this error message.  I recently upgraded my system and suspect this may be the cause, but I'm not sure how to proceed from here.  My config.log follows. This file contains an

  • When unplugged my MBP randomly shuts down and won't start up again

    When my MBP is unplugged it randomly shuts off and won't restart. To get it to boot up again I have to plug it in. Today I was using my computer for about 15 minutes unplugged and it just shut down by itself. I was right in the middle of typing somet

  • IPad as a photo/video storage device?

    I'd love to replace my netbook with an iPad for travel. I use the netbook for internet access and for storage of data from my camera. I know I can transfer images to an iPad via the camera connection kit. However, my camera also takes video in a wack

  • ODI and interactive variable settings ...

    Hi all, first of it I would like to tanks all the guys that have helped me with my previous problem!!! I need to know how to close the thread and assign the correct and useful answers! In the meantime I've another question for all of you: 1) Is it po