Friday, December 20 2024

Header Ads

Extract Full HR Location Info Through SQL


It's time for a little bit of SQL again. In the past I needed a little dump of all the HR Locations which were defined in the system. This dump required all the information recorded with such a location.

So information whether the location is local or global, the name, full address details including the used address style, shipping details and the ship-to location and the inventory and edi location from the Other Details tab. Finally the extract had to show whether the extra information location flexfield was used. For this I added a small count to the script counting the use of the location in table HR_LOCATION_EXTRA_INFO.

Find below the full script I've written - of course, as always, change the script where needed to fit your needs :-).

SELECT DISTINCT
    L.LOCATION_ID AS "MAIN - LOCATION ID"
    , L.CREATION_DATE AS "CREATION DATE"
    , CREATEUSER.USER_NAME AS "CREATED BY"
    , L.LAST_UPDATE_DATE AS "LAST UPDATE DATE"
    , UPDATEUSER.USER_NAME AS "LAST UPDATED BY"
    , DECODE (NVL (L.BUSINESS_GROUP_ID, 1), 1, 'Y','N') AS "MAIN - SCOPE - GLOBAL"
    , DECODE (NVL (L.BUSINESS_GROUP_ID, 1), 0, 'Y', 'N') AS "MAIN - SCOPE - LOCAL"
    , TL.LOCATION_CODE AS "MAIN - NAME"
    , TL.DESCRIPTION AS "MAIN - DESCRIPTION"
    , L.INACTIVE_DATE AS "MAIN - INACTIVE DATE"
    , L.LEGAL_ADDRESS_FLAG AS "MAIN - LEGAL ADDRESS"
    -- BEGIN ADDRESS (STYLE)
    , L.STYLE AS "AD - ADDRESS STYLE CODE"
    , FND.DESCRIPTIVE_FLEX_CONTEXT_NAME AS "AD - ADDRESS STYLE"
    , L.ADDRESS_LINE_1 AS "ADDRESS LINE 1"
    , L.ADDRESS_LINE_2 AS "ADDRESS LINE 2"
    , L.ADDRESS_LINE_3 AS "ADDRESS LINE 3"
    , L.TOWN_OR_CITY AS "TOWN OR CITY"
    , L.REGION_1 AS "REGION 1"
    , L.REGION_2 AS "REGION 2"
    , L.REGION_3 AS "REGION 3"
    , L.POSTAL_CODE AS "POSTAL CODE"
    , L.COUNTRY AS "COUNTRY"
    , L.TELEPHONE_NUMBER_1 AS "TELEPHONE NUMBER 1"
    , L.TELEPHONE_NUMBER_2 AS "TELEPHONE NUMBER 2"
    , L.TELEPHONE_NUMBER_3 AS "TELEPHONE NUMBER 3"
    , L.LOC_INFORMATION13 AS "LOC INFORMATION 13"
    , L.LOC_INFORMATION14 AS "LOC INFORMATION 14"
    , L.LOC_INFORMATION15 AS "LOC INFORMATION 15"
    , L.LOC_INFORMATION16 AS "LOC INFORMATION 16"
    , L.LOC_INFORMATION17 AS "LOC INFORMATION 17"
    , L.LOC_INFORMATION18 AS "LOC INFORMATION 18"
    , L.LOC_INFORMATION19 AS "LOC INFORMATION 19"
    , L.LOC_INFORMATION20 AS "LOC INFORMATION 20"
    , L.TIMEZONE_CODE AS "AD - TIME ZONE"
    -- END ADDRESS (STYLE)
    , PPF.FULL_NAME AS "SD - CONTACT"
    , L2TL.LOCATION_CODE AS "SD - SHIP-TO LOCATION"
    , NVL(L.SHIP_TO_SITE_FLAG, 'N') AS "SD - SHIP-TO SITE"
    , NVL(L.BILL_TO_SITE_FLAG, 'N') AS "SD - BILL-TO SITE"
    , NVL(L.RECEIVING_SITE_FLAG, 'N') AS "SD - RECEIVING SITE"
    , NVL(L.OFFICE_SITE_FLAG, 'N') AS "SD - OFFICE SITE"
    , NVL(L.IN_ORGANIZATION_FLAG, 'N') AS "SD - INTERNAL SITE"
    , INVORG.NAME AS "OD - INVENTORY ORGANIZATION"
    , L.TAX_NAME AS "OD - TAX CODE"
    , L.ECE_TP_LOCATION_CODE AS "OD - EDI LOCATION"
    , DECODE(LOC_EXTRA_INFO.EXTRA_INFO_COUNT,NULL,'N','Y') AS "EXTRA INFO AVAILABLE"
FROM HR_LOCATIONS_ALL L,
          HR_LOCATIONS_ALL_TL TL,
          HR_LOCATIONS_ALL_TL L2TL,
          PER_ALL_PEOPLE_F PPF,
          HR_ALL_ORGANIZATION_UNITS INVORG,
          APPS.FND_DESCR_FLEX_CONTEXTS_TL FND,
          FND_USER CREATEUSER,
          FND_USER UPDATEUSER,
          (
            SELECT
                LEI.LOCATION_ID LOCATION_ID
                , COUNT(LEI.LOCATION_ID) AS EXTRA_INFO_COUNT
            FROM
                HR_LOCATION_INFO_TYPES LIT
                , FND_DESCR_FLEX_CONTEXTS_VL FLV
                , HR_LOCATION_EXTRA_INFO LEI
            WHERE
                LEI.INFORMATION_TYPE  = LIT.INFORMATION_TYPE
                AND LIT.INFORMATION_TYPE = FLV.DESCRIPTIVE_FLEX_CONTEXT_CODE
                AND FLV.DESCRIPTIVE_FLEXFIELD_NAME = 'EXTRA LOCATION INFO DDF'
                AND LIT.ACTIVE_INACTIVE_FLAG = 'Y'
                AND FLV.ENABLED_FLAG = 'Y'
            GROUP BY
                LEI.LOCATION_ID) LOC_EXTRA_INFO
      WHERE L2TL.LOCATION_ID(+) = L.SHIP_TO_LOCATION_ID
      AND L.STYLE = FND.DESCRIPTIVE_FLEX_CONTEXT_CODE(+)
      AND PPF.PERSON_ID(+) = L.DESIGNATED_RECEIVER_ID
      AND LOC_EXTRA_INFO.LOCATION_ID(+) = L.LOCATION_ID
      AND INVORG.ORGANIZATION_ID(+) = L.INVENTORY_ORGANIZATION_ID
      AND CREATEUSER.USER_ID(+) = L.CREATED_BY
      AND UPDATEUSER.USER_ID(+) = L.LAST_UPDATED_BY
      AND FND.APPLICATION_ID(+) = 800
      AND FND.DESCRIPTIVE_FLEXFIELD_NAME(+) = 'ADDRESS LOCATION'
      AND FND.LANGUAGE(+) = 'US'
      AND L.LOCATION_ID = TL.LOCATION_ID
      AND TL.LANGUAGE = 'US'
      AND NVL (L.BUSINESS_GROUP_ID,
               NVL (HR_GENERAL.GET_BUSINESS_GROUP_ID, -99)) =
             NVL (HR_GENERAL.GET_BUSINESS_GROUP_ID,
                  NVL (L.BUSINESS_GROUP_ID, -99)
                 )
      AND DECODE (L2TL.LOCATION_ID, NULL, '1', L2TL.LANGUAGE) =
                        DECODE (L2TL.LOCATION_ID,
                                NULL, '1',
                                'US'
                               );
Powered by Blogger.