1. 程式人生 > >Oracle EBS OPM 發放生產批

Oracle EBS OPM 發放生產批

brush lec lex ani reat ons etc count exceptio

	
--發放生產批
--created by jenrry

DECLARE
   x_return_status            VARCHAR2 (1);
   l_exception_material_tbl   gme_common_pvt.exceptions_tab;
   l_batch_header_rec         gme_batch_header%ROWTYPE;
   l_in_batch_header_rec      gme_batch_header%ROWTYPE;
   l_org_code                 VARCHAR2 (3);
   l_ignore_exception         VARCHAR2 (1);
   l_val_ff                   VARCHAR2 (1);
   x_message_count            NUMBER;
   x_message_list             VARCHAR2 (2000); 
   l_user_name                VARCHAR2 (80);
   l_user_id                  NUMBER;

   CURSOR get_user_id (v_user_name IN VARCHAR2)
   IS
      SELECT user_id
        FROM fnd_user
       WHERE user_name = v_user_name;

   PROCEDURE display_messages (p_msg_count IN NUMBER)
   IS
      MESSAGE               VARCHAR2 (2000);
      dummy                 NUMBER;
      l_api_name   CONSTANT VARCHAR2 (30)   := ‘DISPLAY_MESSAGES‘;
   BEGIN
      FOR i IN 1 .. p_msg_count
      LOOP
         fnd_msg_pub.get (p_msg_index          => i,
                          p_data               => MESSAGE,
                          p_encoded            => ‘F‘,
                          p_msg_index_out      => dummy
                         );
         DBMS_OUTPUT.put_line (‘Message ‘ || TO_CHAR (i) || ‘ ‘ || MESSAGE);
      END LOOP;
   EXCEPTION
      WHEN OTHERS
      THEN
         fnd_msg_pub.add_exc_msg (‘wrapper for Release_Batch ‘, l_api_name);
   END display_messages;
BEGIN
   DBMS_OUTPUT.ENABLE (20000); 
   l_user_name := ‘SYSADMIN‘;

   OPEN get_user_id (l_user_name);

   FETCH get_user_id
    INTO l_user_id;

   IF get_user_id%NOTFOUND
   THEN
      DBMS_OUTPUT.put_line (‘Invalid User ‘ || l_user_name);

      CLOSE get_user_id;

      RAISE NO_DATA_FOUND;
   END IF;

   CLOSE get_user_id;

   fnd_profile.initialize (l_user_id); 
   fnd_global.apps_initialize (user_id           => l_user_id,
                               resp_id           => NULL,
                               resp_appl_id      => NULL
                              ); 
   l_in_batch_header_rec.batch_no := ‘20170731‘;
   l_org_code := ‘B01‘; 
   l_in_batch_header_rec.actual_start_date :=
                      TO_DATE (‘07-31-2017 08:00:00‘, ‘MM-DD-YYYY HH24:MI:SS‘);
   l_ignore_exception := fnd_api.g_true;
   l_val_ff := fnd_api.g_true;
   gme_api_pub.release_batch
                         (p_api_version                 => 2.0,
                          p_validation_level            => gme_common_pvt.g_max_errors,
                          p_init_msg_list               => fnd_api.g_true,
                          p_commit                      => fnd_api.g_true,
                          x_message_count               => x_message_count,
                          x_message_list                => x_message_list,
                          x_return_status               => x_return_status,
                          p_batch_header_rec            => l_in_batch_header_rec,
                          p_org_code                    => l_org_code,
                          p_ignore_exception            => l_ignore_exception,
                          p_validate_flexfields         => l_val_ff,
                          x_batch_header_rec            => l_batch_header_rec,
                          x_exception_material_tbl      => l_exception_material_tbl
                         ); 
   DBMS_OUTPUT.put_line (SUBSTR (‘x_return_status = ‘ || x_return_status,
                                 1,
                                 255
                                )
                        );
   DBMS_OUTPUT.put_line (   ‘l_batch_header_rec.batch_id = ‘
                         || TO_CHAR (l_batch_header_rec.batch_id)
                        );
   DBMS_OUTPUT.put_line (   ‘l_batch_header_rec.organization_id = ‘
                         || TO_CHAR (l_batch_header_rec.organization_id)
                        );
   DBMS_OUTPUT.put_line (SUBSTR (   ‘l_batch_header_rec.batch_no = ‘
                                 || l_batch_header_rec.batch_no,
                                 1,
                                 255
                                )
                        );
   DBMS_OUTPUT.put_line (   ‘l_batch_header_rec.batch_type = ‘
                         || TO_CHAR (l_batch_header_rec.batch_type)
                        );
   DBMS_OUTPUT.put_line (   ‘l_batch_header_rec.plan_start_date = ‘
                         || TO_CHAR (l_batch_header_rec.plan_start_date,
                                     ‘DD-MON-YYYY HH24:MI:SS‘
                                    )
                        );
   DBMS_OUTPUT.put_line (   ‘l_batch_header_rec.plan_cmplt_date = ‘
                         || TO_CHAR (l_batch_header_rec.plan_cmplt_date,
                                     ‘DD-MON-YYYY HH24:MI:SS‘
                                    )
                        );
   DBMS_OUTPUT.put_line (   ‘l_batch_header_rec.actual_start_date = ‘
                         || TO_CHAR (l_batch_header_rec.actual_start_date,
                                     ‘DD-MON-YYYY HH24:MI:SS‘
                                    )
                        );
   DBMS_OUTPUT.put_line (   ‘l_batch_header_rec.actual_cmplt_date = ‘
                         || TO_CHAR (l_batch_header_rec.actual_cmplt_date,
                                     ‘DD-MON-YYYY HH24:MI:SS‘
                                    )
                        );
   DBMS_OUTPUT.put_line (   ‘l_batch_header_rec.batch_status = ‘
                         || TO_CHAR (l_batch_header_rec.batch_status)
                        );
   DBMS_OUTPUT.put_line (   ‘l_batch_header_rec.last_update_date = ‘
                         || TO_CHAR (l_batch_header_rec.last_update_date,
                                     ‘DD-MON-YYYY HH24:MI:SS‘
                                    )
                        );
   DBMS_OUTPUT.put_line (   ‘l_batch_header_rec.last_updated_by = ‘
                         || TO_CHAR (l_batch_header_rec.last_updated_by)
                        );
   DBMS_OUTPUT.put_line (   ‘l_batch_header_rec.creation_date = ‘
                         || TO_CHAR (l_batch_header_rec.creation_date,
                                     ‘DD-MON-YYYY HH24:MI:SS‘
                                    )
                        );
   DBMS_OUTPUT.put_line (   ‘l_batch_header_rec.created_by = ‘
                         || TO_CHAR (l_batch_header_rec.created_by)
                        );
   DBMS_OUTPUT.put_line (   ‘l_batch_header_rec.last_update_login = ‘
                         || TO_CHAR (l_batch_header_rec.last_update_login)
                        );

   FOR i IN 1 .. l_exception_material_tbl.COUNT
   LOOP
      DBMS_OUTPUT.put_line (‘Record i = ‘ || TO_CHAR (i));
      DBMS_OUTPUT.put_line
                        (   ‘l_exception_material_tbl(i).ORGANIZATION_ID = ‘
                         || TO_CHAR
                                  (l_exception_material_tbl (i).organization_id
                                  )
                        );
      DBMS_OUTPUT.put_line (   ‘l_exception_material_tbl(i).BATCH_ID = ‘
                            || TO_CHAR (l_exception_material_tbl (i).batch_id)
                           );
      DBMS_OUTPUT.put_line
                      (   ‘l_exception_material_tbl(i).MATERIAL_DETAIL_ID = ‘
                       || TO_CHAR
                               (l_exception_material_tbl (i).material_detail_id
                               )
                      );
      DBMS_OUTPUT.put_line
                  (   ‘l_exception_material_tbl(i).PENDING_MOVE_ORDER_IND = ‘
                   || TO_CHAR
                           (l_exception_material_tbl (i).pending_move_order_ind
                           )
                  );
      DBMS_OUTPUT.put_line
                (   ‘l_exception_material_tbl(i).PENDING_RESERVATIONS_IND = ‘
                 || TO_CHAR
                         (l_exception_material_tbl (i).pending_reservations_ind
                         )
                );
      DBMS_OUTPUT.put_line
                          (   ‘l_exception_material_tbl(i).TRANSACTED_QTY = ‘
                           || TO_CHAR
                                   (l_exception_material_tbl (i).transacted_qty
                                   )
                          );
      DBMS_OUTPUT.put_line (   ‘l_exception_material_tbl(i).EXCEPTION_QTY = ‘
                            || TO_CHAR
                                    (l_exception_material_tbl (i).exception_qty
                                    )
                           );
   END LOOP;

   DBMS_OUTPUT.put_line (‘x_message_count = ‘ || TO_CHAR (x_message_count));
   DBMS_OUTPUT.put_line (SUBSTR (‘x_message_list = ‘ || x_message_list, 1,
                                 255)
                        );

   IF x_message_count > 0
   THEN
      display_messages (x_message_count);
   END IF;
EXCEPTION
   WHEN OTHERS
   THEN
      DBMS_OUTPUT.put_line (‘Error ‘ || TO_CHAR (SQLCODE) || ‘: ‘ || SQLERRM);
      RAISE;
END;
/

  

Oracle EBS OPM 發放生產批