Showing posts with label CRM Api. Show all posts
Showing posts with label CRM Api. Show all posts

Monday, August 8, 2016

Sample Script to APPLY_HOLD using OE_ORDER_PUB ( R12 ) at header level

CREATE OR REPLACE PROCEDURE apply_hold( p_request_rec IN oe_order_pub.request_rec_type)
IS
 l_header_rec              oe_order_pub.header_rec_type;
 l_line_tbl                oe_order_pub.line_tbl_type;
 l_request_rec             oe_order_pub.request_rec_type;
 l_action_request_tbl      oe_order_pub.request_tbl_type;
 x_header_val_rec          oe_order_pub.header_val_rec_type;
 x_header_adj_tbl          oe_order_pub.header_adj_tbl_type;
 x_header_adj_val_tbl      oe_order_pub.header_adj_val_tbl_type;
 x_header_price_att_tbl    oe_order_pub.header_price_att_tbl_type;
 x_header_adj_att_tbl      oe_order_pub.header_adj_att_tbl_type;
 x_header_adj_assoc_tbl    oe_order_pub.header_adj_assoc_tbl_type;
 x_header_scredit_tbl      oe_order_pub.header_scredit_tbl_type;
 x_header_scredit_val_tbl  oe_order_pub.header_scredit_val_tbl_type;
 x_line_val_tbl            oe_order_pub.line_val_tbl_type;
 x_line_adj_tbl            oe_order_pub.line_adj_tbl_type;
 x_line_adj_val_tbl        oe_order_pub.line_adj_val_tbl_type;
 x_line_price_att_tbl      oe_order_pub.line_price_att_tbl_type;
 x_line_adj_att_tbl        oe_order_pub.line_adj_att_tbl_type;
 x_line_adj_assoc_tbl      oe_order_pub.line_adj_assoc_tbl_type;
 x_line_scredit_tbl        oe_order_pub.line_scredit_tbl_type;
 x_line_scredit_val_tbl    oe_order_pub.line_scredit_val_tbl_type;
 x_lot_serial_tbl          oe_order_pub.lot_serial_tbl_type;
 x_lot_serial_val_tbl      oe_order_pub.lot_serial_val_tbl_type;
 x_action_request_tbl      oe_order_pub.request_tbl_type;
 x_debug_file              VARCHAR2(100);
 x_return_msg              VARCHAR2(4000); 
 l_msg_index_out           NUMBER(10);
 l_msg_count               NUMBER;
 l_msg_data                VARCHAR2(250);
 l_return_status           VARCHAR2(1);

BEGIN
   DBMS_OUTPUT.enable( 1000000);
   fnd_global.apps_initialize(12247
                            , 52844
                            , 660); -- pass in user_id, 
      ----responsibility_id, and application_id
   mo_global.init( 'ONT');
   mo_global.set_policy_context('S'
                              , 'org_id');
oe_msg_pub.initialize;
l_request_rec.entity_id := p_request_rec.entity_id;--SO header_id
l_request_rec.entity_code:= p_request_rec.entity_code; 
-- oe_globals.g_entity_header;
l_request_rec.request_type := p_request_rec.request_type; 
-- oe_globals.g_apply_hold;
l_request_rec.param1   := p_request_rec.param1; -- Hold_id
l_request_rec.param2 := p_request_rec.param2; --'O'; 
-- indicator that it is an order hold
l_request_rec.param3:= p_request_rec.param3; -- header_id
l_action_request_tbl( 1)            := l_request_rec;
   -- CALL TO PROCESS ORDER
   oe_order_pub.process_order(
   p_api_version_number             => 1.0
 , p_init_msg_list                  => fnd_api.g_false
 , p_return_values                  => fnd_api.g_false
 , p_action_commit                  => fnd_api.g_false
 , x_return_status                  => l_return_status
 , x_msg_count                      => l_msg_count
 , x_msg_data                       => l_msg_data
 , p_header_rec                     => l_header_rec
 , p_line_tbl                       => l_line_tbl
 , p_action_request_tbl             => l_action_request_tbl
 --OUT PARAMETERS
 , x_header_rec                     => l_header_rec
 , x_header_val_rec                 => x_header_val_rec
 , x_header_adj_tbl                 => x_header_adj_tbl
 , x_header_adj_val_tbl             => x_header_adj_val_tbl
 , x_header_price_att_tbl           => x_header_price_att_tbl
 , x_header_adj_att_tbl             => x_header_adj_att_tbl
 , x_header_adj_assoc_tbl           => x_header_adj_assoc_tbl
 , x_header_scredit_tbl             => x_header_scredit_tbl
 , x_header_scredit_val_tbl         => x_header_scredit_val_tbl
 , x_line_tbl                       => l_line_tbl
 , x_line_val_tbl                   => x_line_val_tbl
 , x_line_adj_tbl                   => x_line_adj_tbl
 , x_line_adj_val_tbl               => x_line_adj_val_tbl
 , x_line_price_att_tbl             => x_line_price_att_tbl
 , x_line_adj_att_tbl               => x_line_adj_att_tbl
 , x_line_adj_assoc_tbl             => x_line_adj_assoc_tbl
 , x_line_scredit_tbl               => x_line_scredit_tbl
 , x_line_scredit_val_tbl           => x_line_scredit_val_tbl
 , x_lot_serial_tbl                 => x_lot_serial_tbl
 , x_lot_serial_val_tbl             => x_lot_serial_val_tbl
 , x_action_request_tbl             => x_action_request_tbl);

   IF l_return_status = fnd_api.g_ret_sts_success
   THEN
      DBMS_OUTPUT.put_line(   'Hold applied for header id       ===============> '|| TO_CHAR( l_request_rec.entity_id)
                  || ' successfully!!!');
   ELSE
      FOR i IN 1 .. l_msg_count
      LOOP
         oe_msg_pub.get(p_msg_index      => i
                      , p_encoded        => fnd_api.g_false
                      , p_data           => l_msg_data
                      , p_msg_index_out  => l_msg_index_out);

         IF x_return_msg IS NULL
         THEN
            x_return_msg              :=
                  l_msg_index_out
               || ':'
               || l_msg_data;
         ELSE
            x_return_msg              :=
                  x_return_msg
               || '/'
               || l_msg_index_out
               || ':'
               || l_msg_data;
         END IF;
      END LOOP;

      DBMS_OUTPUT.put_line(   'Hold Application failed with reason : ' || x_return_msg);
   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;
/