Tuesday, February 18, 2014

Useful Scripts for Discoverer


--List of Business Areas
SELECT ba_name "Business Area"
     , ba_created_by "Creator"
     , ba_created_date "Creation Date"
     , ba_updated_by "Updated By "
     , ba_updated_date "Last Update Date"
     , ba_id
  FROM eul5_us.eul5_bas
/
--List of Folders
SELECT   b.ba_name
       , f.obj_name folder_name
       , f.obj_id
       , f.obj_ext_owner owner
    FROM eul5_us.eul5_objs f
       , eul5_us.eul5_ba_obj_links l
       , eul5_us.eul5_bas b
   WHERE 1 = 1
     AND f.obj_id = l.bol_obj_id
     AND b.ba_id = l.bol_ba_id
     AND UPPER (b.ba_name) LIKE UPPER ('%'||'&Business_area'||'%')
     AND UPPER (f.obj_name) LIKE UPPER ('%'||'&FOLDER_NAME'||'%')
ORDER BY b.ba_name
       , f.obj_name
/
--List of Folder Items
SELECT   i.exp_name item_name
       , i.exp_id
       , i.it_ext_column
       , f.obj_name folder_name
       , b.ba_name
    FROM eul5_us.eul5_expressions i
       , eul5_us.eul5_objs f
       , eul5_us.eul5_ba_obj_links l
       , eul5_us.eul5_bas b
   WHERE f.obj_id = i.it_obj_id
     AND f.obj_id = l.bol_obj_id
     AND b.ba_id = l.bol_ba_id
     AND UPPER (i.exp_name) LIKE UPPER ('%'||'&ITEM_NAME'||'%')
     AND UPPER (b.ba_name) LIKE UPPER ('%'||'&Business_area'||'%')
     AND UPPER (f.obj_name) LIKE UPPER ('%'||'&FOLDER_NAME'||'%')
ORDER BY b.ba_name
       , f.obj_name
       , i.exp_name
/
--List of Workbooks
SELECT doc_name "Document"
     , doc_developer_key
     , doc_description "Description"
  FROM eul5_us.eul5_documents
/

Way to search a String for LONG data type In oracle using Object types and Pipeline Functions

CREATE OR REPLACE TYPE XX_LONG_DATA_REC_TYPE AS OBJECT(OBJECT_NAME VARCHAR2(240), LONG_DATA_TEXT CLOB);
/

CREATE OR REPLACE TYPE XX_LONG_DATA_TBL AS TABLE OF XX_LONG_DATA_REC_TYPE
/

CREATE OR REPLACE FUNCTION XX_SEARCH_STRING( P_SEARCH_STRING VARCHAR2 )
   RETURN XX_LONG_DATA_TBL
   PIPELINED
IS
   XX_LONG_DATA_REC            XX_LONG_DATA_REC_TYPE;
BEGIN
   FOR Z IN ( SELECT VIEW_NAME, TEXT
                FROM DBA_VIEWS
               WHERE ROWNUM <=10 )
   LOOP
      IF ( UPPER(Z.TEXT) LIKE UPPER(P_SEARCH_STRING) )
      THEN
         XX_LONG_DATA_REC         := XX_LONG_DATA_REC_TYPE( Z.VIEW_NAME, Z.TEXT );
         PIPE ROW ( XX_LONG_DATA_REC );
      END IF;
   END LOOP;
END;
/

Script to test the same 


select * from table(xx_search_string('%SELECT%'));




Another way without creating any DB object

DECLARE
   L_CLOB_STRING                 CLOB;
   L_LONG_STRING                 LONG;
   L_OBJECT_NAME                 VARCHAR2( 240 );
BEGIN
   SELECT VIEW_NAME, TEXT
     INTO L_OBJECT_NAME, L_LONG_STRING
     FROM DBA_VIEWS
    WHERE ROWNUM = 1;

   L_CLOB_STRING              := L_LONG_STRING;

   IF UPPER( L_CLOB_STRING ) LIKE '%SELECT%'
   THEN
      DBMS_OUTPUT.PUT_LINE( 'OBJECT NAME : ' || L_OBJECT_NAME );
   ELSE
      DBMS_OUTPUT.PUT_LINE( 'SELECT SEARCH STRING NOT FOUND IN THE OBJECT NAME :  ' || L_OBJECT_NAME );
   END IF;

END;

Monday, February 17, 2014

Script to delete the Task in Oracle CRM (JTF_TASKS_PUB.DELETE_TASK)

SET serveroutput on

DECLARE
   l_object_ver_num                             jtf_tasks_v.object_version_number%TYPE := 1;
   l_task_status_id                             jtf_tasks_v.task_status_id%TYPE := 9;
   l_task_status_name                           jtf_tasks_v.task_status%TYPE;
   l_task_id                                    jtf_tasks_v.task_id%TYPE := 1333920;
   l_task_number                                jtf_tasks_v.task_number%TYPE;
   l_return_status                              VARCHAR2 (1);
   l_msg_count                                  NUMBER;
   l_msg_data                                   VARCHAR2 (1000);
BEGIN
   jtf_tasks_pub.delete_task (p_api_version                           => 1.0
                            , p_init_msg_list                         => fnd_api.g_true
                            , p_commit                                => fnd_api.g_false
                            , p_object_version_number                 => l_object_ver_num
                            , p_task_id                               => l_task_id
                            , p_task_number                           => l_task_number
                            , p_delete_future_recurrences             => fnd_api.g_false
                            , x_return_status                         => l_return_status
                            , x_msg_count                             => l_msg_count
                            , x_msg_data                              => l_msg_data
                             );

   IF l_return_status <> fnd_api.g_ret_sts_success
   THEN
      IF l_msg_count > 0
      THEN
         l_msg_data                                     := NULL;

         FOR i IN 1 .. l_msg_count
         LOOP
            l_msg_data                                     := l_msg_data || ' ' || fnd_msg_pub.get (1, 'F');
         END LOOP;

         fnd_message.set_encoded (l_msg_data);
         DBMS_OUTPUT.put_line (SUBSTR (l_msg_data
                                     , 1.1
                                     , 200
                                      ));
      END IF;

      ROLLBACK;
   ELSE
      DBMS_OUTPUT.put_line ('Task Id = ' || l_task_id);
      DBMS_OUTPUT.put_line ('Task Status = ' || l_task_status_id);
      DBMS_OUTPUT.put_line ('Return Status = ' || l_return_status);
      COMMIT;
   END IF;
END;
/

Script to Update the task in Oracle CRM (JTF_TASKS_PUB.UPDATE_TASK)

DECLARE
   l_object_ver_num                             jtf_tasks_v.object_version_number%TYPE := 1;
   l_task_status_id                             jtf_tasks_v.task_status_id%TYPE := 9;
   l_task_status_name                           jtf_tasks_v.task_status%TYPE;
   l_task_id                                    jtf_tasks_v.task_id%TYPE := 1333920;
   l_task_number                                jtf_tasks_v.task_number%TYPE;
   l_return_status                              VARCHAR2 (1);
   l_msg_count                                  NUMBER;
   l_msg_data                                   VARCHAR2 (1000);
BEGIN
   JTF_TASKS_PUB.UPDATE_TASK (p_api_version                           => 1.0
                            , p_init_msg_list                         => fnd_api.g_true
                            , p_commit                                => fnd_api.g_false
                            , p_object_version_number                 => l_object_ver_num
                            , p_task_id                               => l_task_id
                            , p_task_number                           => l_task_number
                            , p_task_status_id                        => l_task_status_id
                            , p_source_object_type_code               => 'TASK'
                            , p_source_object_id                      => l_task_id
                            , p_source_object_name                    => l_task_id
                            , x_return_status                         => l_return_status
                            , x_msg_count                             => l_msg_count
                            , x_msg_data                              => l_msg_data
                             );

   IF l_return_status <> fnd_api.g_ret_sts_success
   THEN
      IF l_msg_count > 0
      THEN
         l_msg_data                                     := NULL;

         FOR i IN 1 .. l_msg_count
         LOOP
            l_msg_data                                     := l_msg_data || ' ' || fnd_msg_pub.get (1, 'F');
         END LOOP;

         fnd_message.set_encoded (l_msg_data);
         DBMS_OUTPUT.put_line (SUBSTR (l_msg_data
                                     , 1.1
                                     , 200
                                      ));
      END IF;

      ROLLBACK;
   ELSE
      DBMS_OUTPUT.put_line ('Task Id = ' || l_task_id);
      DBMS_OUTPUT.put_line ('Task Status = ' || l_task_status_id);
      DBMS_OUTPUT.put_line ('Return Status = ' || l_return_status);
      COMMIT;
   END IF;
END;
/

Script to Create the tasks in Oracle CRM (JTF_TASKS_PUB.CREATE_TASK)

SET serveroutput on;

DECLARE
   l_user_name                                  fnd_user.user_name%TYPE := 'OPERATIONS';
   l_task_name                                  jtf_tasks_tl.task_name%TYPE := 'Task1';
   l_task_priority                              jtf_task_priorities_tl.NAME%TYPE := 'Medium';
   l_task_status                                jtf_task_statuses_tl.NAME%TYPE := 'Open';
   l_show_on_cal                                jtf_task_all_assignments.show_on_calendar%TYPE := 'N';
   l_planned_start_date                         DATE := SYSDATE;
   l_planned_end_date                           DATE := SYSDATE;
   l_user_id                                    NUMBER := 1318;   -- User Id for Operations - Select user_id from fnd_user where user_name = 'OPERATIONS';
   l_resource_id                                NUMBER := 199;   -- Resource Id for Operations - select resource_id from jtf_rs_resource_extns where user_name = 'OPERATIONS';
   l_task_type_id                               NUMBER := 9;   -- Meeting.
   l_task_status_id                             NUMBER := 10;   -- Open;
   l_task_priority_id                           NUMBER;
   l_task_id                                    NUMBER;
   l_return_status                              VARCHAR2 (1);
   l_msg_count                                  NUMBER;
   l_msg_data                                   VARCHAR2 (1000);
BEGIN
   jtf_tasks_pub.create_task (p_api_version                           => 1.0
                            , p_init_msg_list                         => fnd_api.g_true
                            , p_commit                                => fnd_api.g_false
                            , p_task_name                             => l_task_name
                            , p_task_type_id                          => l_task_type_id
                            , p_task_status_id                        => l_task_status_id
                            , p_task_priority_id                      => l_task_priority_id
                            , p_owner_type_code                       => 'RS_EMPLOYEE'
                            , p_owner_id                              => l_resource_id
                            , p_show_on_calendar                      => l_show_on_cal
                            , p_planned_start_date                    => l_planned_start_date
                            , p_planned_end_date                      => l_planned_end_date
                            , p_date_selected                         => 'P'
                            , x_return_status                         => l_return_status
                            , x_msg_count                             => l_msg_count
                            , x_msg_data                              => l_msg_data
                            , x_task_id                               => l_task_id
                             );

   IF l_return_status <> fnd_api.g_ret_sts_success
   THEN
      IF l_msg_count > 0
      THEN
         l_msg_data                                     := NULL;

         FOR i IN 1 .. l_msg_count
         LOOP
            l_msg_data                                     := l_msg_data || ' ' || fnd_msg_pub.get (1, 'F');
         END LOOP;

         fnd_message.set_encoded (l_msg_data);
         DBMS_OUTPUT.put_line (l_msg_data);
      END IF;

      ROLLBACK;
   ELSE
      DBMS_OUTPUT.put_line ('Task Id = ' || l_task_id);
      DBMS_OUTPUT.put_line ('Return Status = ' || l_return_status);
      COMMIT;
   END IF;
END;
/