Wednesday, May 9, 2018

How to Use an API to Delete An Order Level Modifier From a Sales Order


How to Use an API to Delete An Order Level Modifier From a Sales Order (Doc ID 2191611.1)


SET SERVEROUTPUT ON;

DECLARE
   /* Initialize the proper Context */
   l_org_id                                     NUMBER := 204; --ENTER VALUE
   l_application_id                             NUMBER := 660;
   l_responsibility_id                          NUMBER := 21623; --ENTER VALUE
   l_user_id                                    NUMBER := 1013419; --ENTER VALUE

   /* Initialize the record to G_MISS to enable defaulting */
   l_header_rec                                 oe_order_pub.header_rec_type := oe_order_pub.g_miss_header_rec;
   l_old_header_rec                             oe_order_pub.header_rec_type;

   l_header_adj_tbl                             oe_order_pub.header_adj_tbl_type;

   l_line_tbl                                   oe_order_pub.line_tbl_type;
   l_old_line_tbl                               oe_order_pub.line_tbl_type;

   l_action_request_tbl                         oe_order_pub.request_tbl_type;

   x_header_rec                                 oe_order_pub.header_rec_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_tbl                                   oe_order_pub.line_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;

   l_return_status                              VARCHAR2(2000);
   l_msg_count                                  NUMBER;
   l_msg_data                                   VARCHAR2(2000);

   l_line_cnt                                   NUMBER := 0;
   l_top_model_line_index                       NUMBER;
   l_link_to_line_index                         NUMBER;
   x_debug_file                                 VARCHAR2(100);
BEGIN
   /* Turn on DBMS Output */
   DBMS_OUTPUT.enable(1000000);

   DBMS_OUTPUT.put_line('Executing Process Order API for R12');

   mo_global.init('ONT');
   mo_global.set_policy_context('S'
                              , l_org_id);
   fnd_global.apps_initialize(l_user_id
                            , l_responsibility_id
                            , l_application_id
                            , NULL);

   oe_msg_pub.initialize;
   oe_debug_pub.initialize;
   oe_debug_pub.setdebuglevel(5);
   x_debug_file                                                                 := oe_debug_pub.set_debug_mode('FILE');
   DBMS_OUTPUT.put_line('START OF NEW DEBUG');

   l_header_rec                                                                 := oe_order_pub.g_miss_header_rec;
   l_header_rec.header_id                                                       := 431776; --ENTER VALUE
   l_header_rec.operation                                                       := oe_globals.g_opr_update;
   l_header_adj_tbl(1)                                                          := oe_order_pub.g_miss_header_adj_rec;
   l_header_adj_tbl(1).operation                                                := oe_globals.g_opr_delete;
   l_header_adj_tbl(1).header_id                                                := 431776; --ENTER VALUE
   l_header_adj_tbl(1).price_adjustment_id                                      := 3994447; --ENTER VALUE

   /* Call the Process Order API with Header Rec and Line Tbl */
   oe_order_pub.process_order(p_api_version_number                      => 1
                            , p_org_id                                  => l_org_id
                            , -- For R12
                             p_init_msg_list                            => fnd_api.g_true
                            , p_return_values                           => fnd_api.g_true
                            , p_action_commit                           => fnd_api.g_true
                            , x_return_status                           => l_return_status
                            , x_msg_count                               => l_msg_count
                            , x_msg_data                                => l_msg_data
                            , p_action_request_tbl                      => l_action_request_tbl
                            , p_header_rec                              => l_header_rec
                            , p_old_header_rec                          => l_old_header_rec
                            , p_header_adj_tbl                          => l_header_adj_tbl
                            , p_line_tbl                                => l_line_tbl
                            , p_old_line_tbl                            => l_old_line_tbl
                            , x_header_rec                              => x_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                                => x_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);
   DBMS_OUTPUT.put_line(   'OM Debug file:'
                        || oe_debug_pub.g_dir
                        || '/'
                        || oe_debug_pub.g_file);

   IF l_return_status = 'S'
   THEN
      DBMS_OUTPUT.put_line('CONGRATULATIONS! !');
      DBMS_OUTPUT.put_line('Commit Issued ... !');
      COMMIT;
   ELSE
      DBMS_OUTPUT.put_line('Hard Luck! Error(s) while attempting to delete Order Level Modifier');
   END IF;

   FOR i IN 1 .. oe_msg_pub.g_msg_tbl.COUNT
   LOOP
      DBMS_OUTPUT.put_line(apps.oe_msg_pub.get(i
                                             , 'F'));
   END LOOP;

   oe_msg_pub.g_msg_tbl.delete;

   /* Turn off OM Debug */
   oe_debug_pub.debug_off;
END;
/

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.