Tuesday, August 22, 2017

Position hierarchy Get Parent By Child


-Get The Parent Position Base on Child Position ID
all Related to 
HRMS =>work Stricture => Position => Position hierarchy Form. 


---------------
CREATE OR REPLACE FUNCTION XX_GET_MGR_POS
                                         (PChildPosId    NUMBER,
                                           PBg            NUMBER,
                                          )
   RETURN NUMBER
AS
   v_mgr_pos           NUMBER;
BEGIN
   BEGIN
      SELECT PARENT_POSITION_ID
        INTO V_MGR_POS
        FROM (SELECT HAP.NAME PARENT_NAME,
                     PSE.PARENT_POSITION_ID,
                     -------------------------------------
                     HAS.NAME CHILD_NAME,
                     PSE.SUBORDINATE_POSITION_ID,
                     ------------------------------------
                     ROWNUM LVL
                FROM (SELECT NAME, POSITION_ID
                        FROM HR_ALL_POSITIONS_F_TL
                       WHERE LANGUAGE = USERENV ('LANG')) HAP,
                     (SELECT NAME, POSITION_ID
                        FROM HR_ALL_POSITIONS_F_TL
                       WHERE     LANGUAGE = USERENV ('LANG')
                             AND POSITION_ID = PChildPosId) HAS,
                     PER_POS_STRUCTURE_ELEMENTS PSE,
                     PER_POS_STRUCTURE_VERSIONS PVE,
                     PER_POSITION_STRUCTURES PPS
               WHERE     1 = 1
                     AND PSE.BUSINESS_GROUP_ID = PBg
                     AND PVE.POSITION_STRUCTURE_ID =
                            PPS.POSITION_STRUCTURE_ID
                     AND PSE.POS_STRUCTURE_VERSION_ID =
                            PVE.POS_STRUCTURE_VERSION_ID
                     AND SYSDATE BETWEEN PVE.DATE_FROM
                                     AND NVL (PVE.DATE_TO, SYSDATE)
                     AND HAP.POSITION_ID = PSE.PARENT_POSITION_ID
                     AND HAS.POSITION_ID = PSE.SUBORDINATE_POSITION_ID)
       WHERE UPPER (PARENT_NAME) LIKE '%MANAGER%';
   EXCEPTION
      WHEN NO_DATA_FOUND
      THEN
         -------------------if no position then get the CEO upper the Position From Parameter---------------         BEGIN
            SELECT PARENT_POSITION_ID
              INTO V_MGR_POS
              FROM (SELECT HAP.NAME PARENT_NAME,
                           PSE.PARENT_POSITION_ID,
                           HAS.NAME CHILD_NAME,
                           PSE.SUBORDINATE_POSITION_ID,
                           ROWNUM LVL
                      FROM (SELECT NAME, POSITION_ID
                              FROM HR_ALL_POSITIONS_F_TL
                             WHERE LANGUAGE = USERENV ('LANG')) HAP,
                           (SELECT NAME, POSITION_ID
                              FROM HR_ALL_POSITIONS_F_TL
                             WHERE     LANGUAGE = USERENV ('LANG')
                                   AND POSITION_ID = PChildPosId) HAS,
                           PER_POS_STRUCTURE_ELEMENTS PSE,
                           PER_POS_STRUCTURE_VERSIONS PVE,
                           PER_POSITION_STRUCTURES PPS
                     WHERE     1 = 1
                           AND PSE.BUSINESS_GROUP_ID = PBG
                           AND PVE.POSITION_STRUCTURE_ID =
                                  PPS.POSITION_STRUCTURE_ID
                           AND PSE.POS_STRUCTURE_VERSION_ID =
                                  PVE.POS_STRUCTURE_VERSION_ID
                           AND SYSDATE BETWEEN PVE.DATE_FROM
                                           AND NVL (PVE.DATE_TO, SYSDATE)
                           AND HAP.POSITION_ID = PSE.PARENT_POSITION_ID
                           AND HAS.POSITION_ID = PSE.SUBORDINATE_POSITION_ID)
             WHERE UPPER (PARENT_NAME) LIKE '%CEO%';
         END;
   END;
   RETURN V_MGR_POS;
EXCEPTION
   WHEN OTHERS
   THEN
      RETURN 0;
END;


-----------------------------------------------------------------------
SELECT XX_GET_MGR_POS (6419, 81) FROM DUAL
-----------------------------------------------------------------------

Thursday, March 24, 2016

Oracle Technical - Upload Lookups API



1- CREATE TABLE   Oracle Apps R12 

CREATE TABLE APPS.XX_DUMMY
(
  X_VALUE      VARCHAR2(100 BYTE),
  LOOKUP_TYPE  VARCHAR2(150 CHAR),
  COUNTRY      VARCHAR2(200 BYTE),
  FLAG         VARCHAR2(300 BYTE)
)
2 -PL STEP  
DECLARE
   CURSOR get_lookup_details
   IS
      SELECT   ltype.application_id,
               ltype.customization_level,
               ltype.creation_date,
               ltype.created_by,
               ltype.last_update_date,
               ltype.last_updated_by,
               ltype.last_update_login,
               tl.lookup_type,
               tl.security_group_id,
               tl.view_application_id,
               tl.description,
               tl.meaning
        FROM   fnd_lookup_types_tl tl, fnd_lookup_types ltype
       WHERE       ltype.lookup_type = 'XX_COUNTRY'
               AND ltype.lookup_type = tl.lookup_type
               AND language = 'US';

   CURSOR get_country
   IS
      SELECT   UPPER (country_name) country FROM XX_DUMMY;


   l_rowid   VARCHAR2 (100) := 0;
BEGIN
   FOR i IN get_lookup_details
   LOOP
      FOR j IN get_country
      LOOP
         l_rowid := NULL;

         BEGIN
            fnd_lookup_values_pkg.insert_row (
               x_rowid                 => l_rowid,
               x_lookup_type           => i.lookup_type,
               x_security_group_id     => i.security_group_id,
               x_view_application_id   => i.view_application_id,
               x_lookup_code           => j.country,
               x_tag                   => NULL,
               x_attribute_category    => NULL,
               x_attribute1            => NULL,
               x_attribute2            => NULL,
               x_attribute3            => NULL,
               x_attribute4            => NULL,
               x_enabled_flag          => 'Y',
               x_start_date_active     => TO_DATE ('01-JAN-1950',
                                                   'DD-MON-YYYY'),
               x_end_date_active       => NULL,
               x_territory_code        => NULL,
               x_attribute5            => NULL,
               x_attribute6            => NULL,
               x_attribute7            => NULL,
               x_attribute8            => NULL,
               x_attribute9            => NULL,
               x_attribute10           => NULL,
               x_attribute11           => NULL,
               x_attribute12           => NULL,
               x_attribute13           => NULL,
               x_attribute14           => NULL,
               x_attribute15           => NULL,
               x_meaning               => j.country,
               x_description           => NULL,
               x_creation_date         => SYSDATE,
               x_created_by            => i.created_by,
               x_last_update_date      => i.last_update_date,
               x_last_updated_by       => i.last_updated_by,
               x_last_update_login     => i.last_update_login
            );
            COMMIT;
            DBMS_OUTPUT.put_line (j.country || ' has been loaded');
         EXCEPTION
            WHEN OTHERS
            THEN
               DBMS_OUTPUT.put_line ('Inner Exception: ' || SQLERRM);
         END;
      END LOOP;
   END LOOP;
EXCEPTION
   WHEN OTHERS
   THEN
      DBMS_OUTPUT.put_line ('Main Exception: ' || SQLERRM);
END;

SQL Query to Convert number into Words for Money

SELECT INITCAP ( DECODE ( FLOOR (TO_NUMBER ( :amount)), 0, '', TO_CHAR (TO_DATE...