• Oracle EBS OPM 创建生产批


    	
    --创建生产批
    --created by jenrry
    DECLARE
       x_message_count            NUMBER;
       x_message_list             VARCHAR2 (2000);
       x_return_status            VARCHAR2 (1);
       p_batch_header             gme_batch_header%ROWTYPE;
       x_batch_header             gme_batch_header%ROWTYPE;
       x_exception_material_tbl   gme_common_pvt.exceptions_tab;
       l_user_name                VARCHAR2 (80):= 'SYSADMIN';
       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 ('insert_step', 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           => 51010,
                                   resp_appl_id      => 553
                                  );
       fnd_profile.put ('AFLOG_LEVEL', '1'); 
       p_batch_header.batch_no := '20170731';-- batch_type .. 10=fpo, 0=batch
       p_batch_header.batch_type := 0;
    --   p_batch_header.recipe_validity_rule_id := 1336;
       p_batch_header.plan_start_date := SYSDATE;
    --   p_batch_header.due_date := TO_DATE('');
    --   p_batch_header.plan_cmplt_date := TO_DATE(''); 
       p_batch_header.update_inventory_ind := 'Y'; 
       gme_api_pub.create_batch
                             (p_api_version                       => 2.0,
                              p_validation_level                  => 100,
                              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_org_code                          => 'B01',
                              p_batch_header_rec                  => p_batch_header,
                              x_batch_header_rec                  => x_batch_header,
                              p_batch_size                        => NULL,
                              p_batch_size_uom                    => NULL,
                              p_creation_mode                     => 'RECIPE',
                              p_recipe_id                         => NULL,
                              p_recipe_no                         => '60215000002',
                              p_recipe_version                    => 1,
                              p_product_no                        => NULL,
                              p_item_revision                     => NULL,
                              p_product_id                        => NULL,
                              p_ignore_qty_below_cap              => fnd_api.g_true,
                              p_use_workday_cal                   => NULL,
                              p_contiguity_override               => NULL,
                              p_use_least_cost_validity_rule      => fnd_api.g_false,
                              x_exception_material_tbl            => x_exception_material_tbl
                             ); 
       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)
                            );
       DBMS_OUTPUT.put_line ('x_return_status = ' || x_return_status);
       DBMS_OUTPUT.put_line ('x_batch_header.batch_id = '|| x_batch_header.batch_id);
       DBMS_OUTPUT.put_line ('x_batch_header.plant_code = '|| x_batch_header.plant_code);
       DBMS_OUTPUT.put_line ('x_batch_header.batch_no = '|| x_batch_header.batch_no);
       DBMS_OUTPUT.put_line ('x_batch_header.batch_type = '|| x_batch_header.batch_type);
       DBMS_OUTPUT.put_line ('x_batch_header.recipe_validity_rule_id = ' || x_batch_header.recipe_validity_rule_id);
       DBMS_OUTPUT.put_line ('x_batch_header.formula_id = '|| x_batch_header.formula_id);
       DBMS_OUTPUT.put_line ('x_batch_header.routing_id = '|| x_batch_header.routing_id);
       DBMS_OUTPUT.put_line ('x_batch_header.plan_start_date = '
                                || TO_CHAR (x_batch_header.plan_start_date,'DD-MON-YYYY HH24:MI:SS'
                                        )
                            );
       DBMS_OUTPUT.put_line (   'x_batch_header.due_date = '
                             || TO_CHAR (x_batch_header.due_date,
                                         'DD-MON-YYYY HH24:MI:SS'
                                        )
                            );
       DBMS_OUTPUT.put_line (   'x_batch_header.plan_cmplt_date = '
                             || TO_CHAR (x_batch_header.plan_cmplt_date,
                                         'DD-MON-YYYY HH24:MI:SS'
                                        )
                            );
       DBMS_OUTPUT.put_line ('x_batch_header.batch_status = '|| x_batch_header.batch_status);
       DBMS_OUTPUT.put_line ('x_batch_header.wip_whse_code = '|| x_batch_header.wip_whse_code);
       DBMS_OUTPUT.put_line ('x_batch_header.poc_ind = '|| x_batch_header.poc_ind);
       DBMS_OUTPUT.put_line ('x_batch_header.update_inventory_ind = '|| x_batch_header.update_inventory_ind);
       DBMS_OUTPUT.put_line (   'x_batch_header.last_update_date = '
                             || TO_CHAR (x_batch_header.last_update_date,
                                         'DD-MON-YYYY HH24:MI:SS'
                                        )
                            );
       DBMS_OUTPUT.put_line (   'x_batch_header.last_updated_by = '||x_batch_header.last_updated_by);
       DBMS_OUTPUT.put_line (   'x_batch_header.creation_date = '
                             || TO_CHAR (x_batch_header.creation_date,
                                         'DD-MON-YYYY HH24:MI:SS'
                                        )
                            );
       DBMS_OUTPUT.put_line ('x_batch_header.created_by = '||x_batch_header.created_by);
       DBMS_OUTPUT.put_line ('x_batch_header.last_update_login = '|| x_batch_header.last_update_login);
       DBMS_OUTPUT.put_line ('x_batch_header.delete_mark = '||x_batch_header.delete_mark);
       DBMS_OUTPUT.put_line ('x_batch_header.text_code = '||x_batch_header.text_code);
       DBMS_OUTPUT.put_line ('x_batch_header.automatic_step_calculation = '||x_batch_header.automatic_step_calculation);
    
       IF x_exception_material_tbl.COUNT > 0
       THEN
          FOR i IN
             x_exception_material_tbl.FIRST .. x_exception_material_tbl.LAST
          LOOP
             IF x_exception_material_tbl.EXISTS (i)
             THEN
                DBMS_OUTPUT.put_line
                            (   'x_exception_material_tbl('
                             || TO_CHAR (i)
                             || ').organization_id = '
                             || TO_CHAR
                                      (x_exception_material_tbl (i).organization_id
                                      )
                            );
                DBMS_OUTPUT.put_line (   'x_exception_material_tbl('
                                      || TO_CHAR (i)
                                      || ').att = '
                                      || x_exception_material_tbl (i).att
                                     );
                DBMS_OUTPUT.put_line (   'x_exception_material_tbl('
                                      || TO_CHAR (i)
                                      || ').atr = '
                                      || x_exception_material_tbl (i).atr
                                     );
                DBMS_OUTPUT.put_line
                                   (   'x_exception_material_tbl('
                                    || TO_CHAR (i)
                                    || ').material_detail_id = '
                                    || x_exception_material_tbl (i).material_detail_id
                                   );
                DBMS_OUTPUT.put_line (   'x_exception_material_tbl('
                                      || TO_CHAR (i)
                                      || ').batch_id = '
                                      || x_exception_material_tbl (i).batch_id
                                     );
             END IF;
          END LOOP;
       END IF;
    
       IF x_message_count > 1
       THEN
          display_messages (x_message_count);
       END IF;
    EXCEPTION
       WHEN NO_DATA_FOUND
       THEN
          NULL;
       WHEN OTHERS
       THEN
          DBMS_OUTPUT.put_line ('Error ' || TO_CHAR (SQLCODE) || ': ' || SQLERRM);
          RAISE;
    END;
    /
    

      

    土豆君
  • 相关阅读:
    Datesheet 参数手册
    2017.10.23 Arduino Atmel EFM32低功耗监测
    New Concept English three(21)
    The disadvantage for manager has a part-time job as a trainer
    New Concept English three(20)
    Python+Qt学习随笔:PyQt中常用的事件处理函数
    Python+Qt学习随笔:PyQt图形界面应用的事件处理流程
    PyQt学习遇到的问题:重写notify发送的消息为什么首先给了一个QWindow对象?
    PyQt学习随笔:PyQt中捕获键盘事件后获取具体按键值的方法
    PyQt学习随笔:重写组件的event方法捕获组件的事件
  • 原文地址:https://www.cnblogs.com/jenrry/p/10021145.html
Copyright © 2020-2023  润新知