EBS接口-庫存事務處理批次導入更新(整合轉載)

庫存事務處理批次有時候出現導入錯誤需要更新可使用次程序更新,

庫存事務處理批次導入

 

  1. 庫存事務處理-物料批次導入  
  2. --系統批次表  
  3. SELECT * FROM MTL_LOT_NUMBERS T;  
  4. --API創建批次  
  5. inv_lot_api_pub.create_inv_lot(x_return_status    => l_return_status,  
  6.                                      x_msg_count        => l_msg_count,  
  7.                                      x_msg_data         => l_msg_data,  
  8.                                      x_row_id           => l_row_id,  
  9.                                      x_lot_rec          => x_mtl_lot_numbers,  
  10.                                      p_lot_rec          => l_mtl_lot_numbers,  
  11.                                      p_source           => l_source,  
  12.                                      p_api_version      => l_api_version,  
  13.                                      p_init_msg_list    => l_init_msg_list,  
  14.                                      p_commit           => l_commit,  
  15.                                      p_validation_level => l_validation_level,  
  16.                                      p_origin_txn_id    => l_origin_txn_id);  
  17. --API更新批次  
  18. inv_lot_api_pub.update_inv_lot(  
  19.             x_return_status         OUT    NOCOPY VARCHAR2  
  20.           , x_msg_count             OUT    NOCOPY NUMBER  
  21.           , x_msg_data              OUT    NOCOPY VARCHAR2  
  22.           , x_lot_rec               OUT    NOCOPY MTL_LOT_NUMBERS%ROWTYPE  
  23.           , p_lot_rec               IN     MTL_LOT_NUMBERS%ROWTYPE  
  24.           , p_source                IN     NUMBER  
  25.           , p_api_version           IN     NUMBER  
  26.           , p_init_msg_list         IN     VARCHAR2 := fnd_api.g_false  
  27.           , p_commit                IN     VARCHAR2 := fnd_api.g_false);  
  28.             
  29. --驗證批次唯一性  
  30. inv_lot_api_pub.validate_unique_lot(  
  31.     p_org_id            IN            NUMBER  
  32.   , p_inventory_item_id IN            NUMBER  
  33.   , p_lot_uniqueness    IN            NUMBER  
  34.   , p_auto_lot_number   IN            VARCHAR2  
  35.   , p_check_same_item   IN            VARCHAR2  
  36.   , x_is_unique         OUT NOCOPY    VARCHAR2  
  37.   );  
  38.     
  39. --物料批次數量驗證  
  40. -----------------------------------------------------------------------  
  41. -- Name : validate_quantities  
  42. -- Desc : This procedure is used to validate transaction quantity2  
  43. --  
  44. -- I/P Params :  
  45. --     All the relevant transaction details :  
  46. --        - organization id  
  47. --        - item_id  
  48. --        - lot, revision, subinventory  
  49. --        - transaction quantities  
  50. -- O/P Params :  
  51. --     x_rerturn_status.  
  52. -- RETURN VALUE :  
  53. --   TRUE : IF the transaction is valid regarding Quantity2 and lot indivisible  
  54. --   FALSE : IF the transaction is NOT valid regarding Quantity2 and lot indivisible  
  55. --  
  56. -----------------------------------------------------------------------  
  57. inv_lot_api_pub.validate_quantities(  
  58.   p_api_version          IN  NUMBER  
  59. , p_init_msg_list        IN  VARCHAR2 := FND_API.G_FALSE  
  60. , p_transaction_type_id  IN  NUMBER  
  61. , p_organization_id      IN  NUMBER  
  62. , p_inventory_item_id    IN  NUMBER  
  63. , p_revision             IN  VARCHAR2  
  64. , p_subinventory_code    IN  VARCHAR2  
  65. , p_locator_id           IN  NUMBER  
  66. , p_lot_number           IN  VARCHAR2  
  67. , p_transaction_quantity IN OUT  NOCOPY NUMBER  
  68. , p_transaction_uom_code IN  VARCHAR2  
  69. , p_primary_quantity     IN OUT NOCOPY NUMBER  
  70. , p_primary_uom_code     OUT NOCOPY VARCHAR2  
  71. , p_secondary_quantity   IN OUT NOCOPY NUMBER  
  72. , p_secondary_uom_code   IN OUT NOCOPY VARCHAR2  
  73. , x_return_status        OUT NOCOPY VARCHAR2  
  74. , x_msg_count            OUT NOCOPY NUMBER  
  75. , x_msg_data             OUT NOCOPY VARCHAR2);  
  76.   
  77. --簡單參考例子  
  78. /**==================================================  
  79.   Procedure Name :  
  80.       create_inv_lot  
  81.   Description:  
  82.       This procedure is concurrent entry, perform:  
  83.       庫存事務處理批號生成   api   
  84.   Argument:  
  85.      p_inventory_item_id   庫存物料id,  
  86.      p_organization_id     組織id,  
  87.      p_lot_number          批號:   
  88.   History:   
  89.       1.00  2013-10-29  cxy  Creation  
  90.   ==================================================*/  
  91.   PROCEDURE create_inv_lot(p_init_msg_list     IN VARCHAR2 DEFAULT fnd_api.g_false,  
  92.                            p_commit            IN VARCHAR2 DEFAULT fnd_api.g_false,  
  93.                            x_return_status     OUT NOCOPY VARCHAR2,  
  94.                            x_msg_count         OUT NOCOPY NUMBER,  
  95.                            x_msg_data          OUT NOCOPY VARCHAR2,  
  96.                            p_inventory_item_id IN NUMBER,  
  97.                            p_organization_id   IN NUMBER,  
  98.                            p_lot_number        VARCHAR2) IS  
  99.     l_api_name CONSTANT VARCHAR2(30) := 'create_inv_lot';  
  100.     
  101.       
  102.     l_count           NUMBER;  
  103.     x_mtl_lot_numbers mtl_lot_numbers%ROWTYPE;  
  104.     l_mtl_lot_numbers mtl_lot_numbers%ROWTYPE;  
  105.      /* Defined new variables for overloaded API call */  
  106.     
  107.     l_api_version      NUMBER := 1.0;  
  108.     l_init_msg_list    VARCHAR2(100) := fnd_api.g_false; -- bug 7513308;  
  109.     l_commit           VARCHAR2(100) := fnd_api.g_false;  
  110.     l_validation_level NUMBER := fnd_api.g_valid_level_full;  
  111.     l_origin_txn_id    NUMBER := NULL;  
  112.     l_source           NUMBER := 2;  
  113.     l_return_status    VARCHAR2(1);  
  114.     l_msg_data         VARCHAR2(3000);  
  115.     l_msg_count        NUMBER;  
  116.     l_row_id           ROWID;  
  117.     
  118.   BEGIN  
  119.     SAVEPOINT inv_lot_1;  
  120.     -- start activity to create savepoint, check compatibility  
  121.     -- and initialize message list, include debug message hint to enter api  
  122.     SELECT COUNT(1)  
  123.       INTO l_count  
  124.       FROM cux_inv_lot_number  
  125.      WHERE lot_number = p_lot_number;  
  126.     
  127.     IF l_count = 0 THEN  
  128.       fnd_message.set_name('INV',  
  129.                            '在系統中不存在此批號:CUX_INV_LOT_NUMBER.lot_number');  
  130.       fnd_message.set_token('LOT_NUMBER', to_char(p_lot_number));  
  131.       fnd_msg_pub.add;  
  132.       RAISE fnd_api.g_exc_error;  
  133.     END IF;  
  134.     
  135.     FOR rec_inv_lot IN cur_inv_lot LOOP  
  136.       
  137.       l_mtl_lot_numbers.inventory_item_id      := p_inventory_item_id;  
  138.       l_mtl_lot_numbers.organization_id        := p_organization_id;  
  139.       l_mtl_lot_numbers.lot_number             := p_lot_number;  
  140.       l_mtl_lot_numbers.last_update_date       := SYSDATE;  
  141.       l_mtl_lot_numbers.last_updated_by        := g_user_id;  
  142.       l_mtl_lot_numbers.creation_date          := rec_inv_lot.lot_date;  
  143.       l_mtl_lot_numbers.created_by             := rec_inv_lot.created_by;  
  144.       l_mtl_lot_numbers.last_update_login      := g_login_id;  
  145.       l_mtl_lot_numbers.program_application_id := g_prog_appl_id;  
  146.       l_mtl_lot_numbers.program_id             := g_conc_program_id;  
  147.       l_mtl_lot_numbers.program_update_date    := SYSDATE;  
  148.       l_mtl_lot_numbers.expiration_date        := NULL;  
  149.       l_mtl_lot_numbers.disable_flag           := NULL;  
  150.       l_mtl_lot_numbers.attribute_category     := NULL;  
  151.       l_mtl_lot_numbers.attribute1             := NULL;  
  152.       l_mtl_lot_numbers.attribute2             := NULL;  
  153.       l_mtl_lot_numbers.attribute3             := NULL;  
  154.       l_mtl_lot_numbers.attribute4             := NULL;  
  155.       l_mtl_lot_numbers.attribute5             := NULL;  
  156.       l_mtl_lot_numbers.attribute6             := NULL;  
  157.       l_mtl_lot_numbers.attribute7             := NULL;  
  158.       l_mtl_lot_numbers.attribute8             := NULL;  
  159.       l_mtl_lot_numbers.attribute9             := NULL;  
  160.       l_mtl_lot_numbers.attribute10            := NULL;  
  161.       l_mtl_lot_numbers.attribute11            := NULL;  
  162.       l_mtl_lot_numbers.attribute12            := NULL;  
  163.       l_mtl_lot_numbers.attribute13            := NULL;  
  164.       l_mtl_lot_numbers.attribute14            := NULL;  
  165.       l_mtl_lot_numbers.attribute15            := NULL;  
  166.       l_mtl_lot_numbers.request_id             := NULL;   
  167.       l_mtl_lot_numbers.gen_object_id          := NULL;  
  168.       l_mtl_lot_numbers.description            := NULL;  
  169.       l_mtl_lot_numbers.vendor_name            := NULL;  
  170.       l_mtl_lot_numbers.supplier_lot_number    := NULL;  
  171.       l_mtl_lot_numbers.country_of_origin      := NULL;  
  172.       l_mtl_lot_numbers.grade_code             := NULL;  
  173.       l_mtl_lot_numbers.origination_date       := NULL;  
  174.       l_mtl_lot_numbers.date_code              := NULL;  
  175.       l_mtl_lot_numbers.status_id              := NULL;  
  176.       l_mtl_lot_numbers.change_date            := NULL;  
  177.       l_mtl_lot_numbers.age                    := NULL;  
  178.       l_mtl_lot_numbers.retest_date            := NULL;  
  179.       l_mtl_lot_numbers.maturity_date          := NULL;  
  180.       l_mtl_lot_numbers.lot_attribute_category := NULL;  
  181.       l_mtl_lot_numbers.item_size              := NULL;  
  182.       l_mtl_lot_numbers.color                  := NULL;  
  183.       l_mtl_lot_numbers.volume                 := NULL;  
  184.       l_mtl_lot_numbers.volume_uom             := NULL;  
  185.       l_mtl_lot_numbers.place_of_origin        := NULL;  
  186.       l_mtl_lot_numbers.kill_date              := NULL;  
  187.       l_mtl_lot_numbers.best_by_date           := NULL;  
  188.       l_mtl_lot_numbers.length                 := NULL;  
  189.       l_mtl_lot_numbers.length_uom             := NULL;  
  190.       l_mtl_lot_numbers.recycled_content       := NULL;  
  191.       l_mtl_lot_numbers.thickness              := NULL;  
  192.       l_mtl_lot_numbers.thickness_uom          := NULL;  
  193.       l_mtl_lot_numbers.width                  := NULL;  
  194.       l_mtl_lot_numbers.width_uom              := NULL;  
  195.       l_mtl_lot_numbers.curl_wrinkle_fold      := NULL;  
  196.       l_mtl_lot_numbers.c_attribute1           := NULL;  
  197.       l_mtl_lot_numbers.c_attribute2           := NULL;  
  198.       l_mtl_lot_numbers.c_attribute3           := NULL;  
  199.       l_mtl_lot_numbers.c_attribute4           := NULL;  
  200.       l_mtl_lot_numbers.c_attribute5           := NULL;  
  201.       l_mtl_lot_numbers.c_attribute6           := NULL;  
  202.       l_mtl_lot_numbers.c_attribute7           := NULL;  
  203.       l_mtl_lot_numbers.c_attribute8           := NULL;  
  204.       l_mtl_lot_numbers.c_attribute9           := NULL;  
  205.       l_mtl_lot_numbers.c_attribute10          := NULL;  
  206.       l_mtl_lot_numbers.c_attribute11          := NULL;  
  207.       l_mtl_lot_numbers.c_attribute12          := NULL;  
  208.       l_mtl_lot_numbers.c_attribute13          := NULL;  
  209.       l_mtl_lot_numbers.c_attribute14          := NULL;  
  210.       l_mtl_lot_numbers.c_attribute15          := NULL;  
  211.       l_mtl_lot_numbers.c_attribute16          := NULL;  
  212.       l_mtl_lot_numbers.c_attribute17          := NULL;  
  213.       l_mtl_lot_numbers.c_attribute18          := NULL;  
  214.       l_mtl_lot_numbers.c_attribute19          := NULL;  
  215.       l_mtl_lot_numbers.c_attribute20          := NULL;  
  216.       l_mtl_lot_numbers.c_attribute21          := NULL;  
  217.       l_mtl_lot_numbers.c_attribute22          := NULL;  
  218.       l_mtl_lot_numbers.c_attribute23          := NULL;  
  219.       l_mtl_lot_numbers.c_attribute24          := NULL;  
  220.       l_mtl_lot_numbers.c_attribute25          := NULL;  
  221.       l_mtl_lot_numbers.c_attribute26          := NULL;  
  222.       l_mtl_lot_numbers.c_attribute27          := NULL;  
  223.       l_mtl_lot_numbers.c_attribute28          := NULL;  
  224.       l_mtl_lot_numbers.c_attribute29          := NULL;  
  225.       l_mtl_lot_numbers.c_attribute30          := NULL;  
  226.       l_mtl_lot_numbers.d_attribute1           := NULL;  
  227.       l_mtl_lot_numbers.d_attribute2           := NULL;  
  228.       l_mtl_lot_numbers.d_attribute3           := NULL;  
  229.       l_mtl_lot_numbers.d_attribute4           := NULL;  
  230.       l_mtl_lot_numbers.d_attribute5           := NULL;  
  231.       l_mtl_lot_numbers.d_attribute6           := NULL;  
  232.       l_mtl_lot_numbers.d_attribute7           := NULL;  
  233.       l_mtl_lot_numbers.d_attribute8           := NULL;  
  234.       l_mtl_lot_numbers.d_attribute9           := NULL;  
  235.       l_mtl_lot_numbers.d_attribute10          := NULL;  
  236.       l_mtl_lot_numbers.d_attribute11          := NULL;  
  237.       l_mtl_lot_numbers.d_attribute12          := NULL;  
  238.       l_mtl_lot_numbers.d_attribute13          := NULL;  
  239.       l_mtl_lot_numbers.d_attribute14          := NULL;  
  240.       l_mtl_lot_numbers.d_attribute15          := NULL;  
  241.       l_mtl_lot_numbers.d_attribute16          := NULL;  
  242.       l_mtl_lot_numbers.d_attribute17          := NULL;  
  243.       l_mtl_lot_numbers.d_attribute18          := NULL;  
  244.       l_mtl_lot_numbers.d_attribute19          := NULL;  
  245.       l_mtl_lot_numbers.d_attribute20          := NULL;  
  246.       l_mtl_lot_numbers.n_attribute1           := NULL;  
  247.       l_mtl_lot_numbers.n_attribute2           := NULL;  
  248.       l_mtl_lot_numbers.n_attribute3           := NULL;  
  249.       l_mtl_lot_numbers.n_attribute4           := NULL;  
  250.       l_mtl_lot_numbers.n_attribute5           := NULL;  
  251.       l_mtl_lot_numbers.n_attribute6           := NULL;  
  252.       l_mtl_lot_numbers.n_attribute7           := NULL;  
  253.       l_mtl_lot_numbers.n_attribute8           := NULL;  
  254.       l_mtl_lot_numbers.n_attribute9           := NULL;  
  255.       l_mtl_lot_numbers.n_attribute10          := NULL;  
  256.       l_mtl_lot_numbers.n_attribute11          := NULL;  
  257.       l_mtl_lot_numbers.n_attribute12          := NULL;  
  258.       l_mtl_lot_numbers.n_attribute13          := NULL;  
  259.       l_mtl_lot_numbers.n_attribute14          := NULL;  
  260.       l_mtl_lot_numbers.n_attribute15          := NULL;  
  261.       l_mtl_lot_numbers.n_attribute16          := NULL;  
  262.       l_mtl_lot_numbers.n_attribute17          := NULL;  
  263.       l_mtl_lot_numbers.n_attribute18          := NULL;  
  264.       l_mtl_lot_numbers.n_attribute19          := NULL;  
  265.       l_mtl_lot_numbers.n_attribute20          := NULL;  
  266.       l_mtl_lot_numbers.n_attribute21          := NULL;  
  267.       l_mtl_lot_numbers.n_attribute22          := NULL;  
  268.       l_mtl_lot_numbers.n_attribute23          := NULL;  
  269.       l_mtl_lot_numbers.n_attribute24          := NULL;  
  270.       l_mtl_lot_numbers.n_attribute25          := NULL;  
  271.       l_mtl_lot_numbers.n_attribute26          := NULL;  
  272.       l_mtl_lot_numbers.n_attribute27          := NULL;  
  273.       l_mtl_lot_numbers.n_attribute28          := NULL;  
  274.       l_mtl_lot_numbers.n_attribute29          := NULL;  
  275.       l_mtl_lot_numbers.n_attribute30          := NULL;  
  276.       l_mtl_lot_numbers.vendor_id              := NULL;  
  277.       l_mtl_lot_numbers.territory_code         := NULL;  
  278.       l_mtl_lot_numbers.parent_lot_number      := NULL;  
  279.       l_mtl_lot_numbers.origination_type       := NULL;  
  280.       l_mtl_lot_numbers.availability_type      := NULL;  
  281.       l_mtl_lot_numbers.expiration_action_code := NULL;  
  282.       l_mtl_lot_numbers.expiration_action_date := NULL;  
  283.       l_mtl_lot_numbers.hold_date              := NULL;  
  284.       l_mtl_lot_numbers.inventory_atp_code     := NULL;  
  285.       l_mtl_lot_numbers.reservable_type        := NULL;  
  286.       l_mtl_lot_numbers.sampling_event_id      := NULL;  
  287.       
  288.       inv_lot_api_pub.create_inv_lot(x_return_status    => l_return_status,  
  289.                                      x_msg_count        => l_msg_count,  
  290.                                      x_msg_data         => l_msg_data,  
  291.                                      x_row_id           => l_row_id,  
  292.                                      x_lot_rec          => x_mtl_lot_numbers,  
  293.                                      p_lot_rec          => l_mtl_lot_numbers,  
  294.                                      p_source           => l_source,  
  295.                                      p_api_version      => l_api_version,  
  296.                                      p_init_msg_list    => l_init_msg_list,  
  297.                                      p_commit           => l_commit,  
  298.                                      p_validation_level => l_validation_level,  
  299.                                      p_origin_txn_id    => l_origin_txn_id);  
  300.       
  301.       IF l_return_status = g_ret_sts_success THEN  
  302.         UPDATE cux_inv_lot_number h  
  303.            SET h.process_status     = 'COMPLETE',  
  304.                h.process_date       = SYSDATE,  
  305.                h.process_message    = NULL,  
  306.                h.row_version_number = h.row_version_number + 1,  
  307.                h.last_updated_by    = g_user_id,  
  308.                h.last_update_date   = SYSDATE,  
  309.                h.last_update_login  = g_login_id  
  310.          WHERE h.id = rec_inv_lot.id;  
  311.       ELSE  
  312.         UPDATE cux_inv_lot_number h  
  313.            SET h.process_status     = 'ERROR',  
  314.                h.process_date       = SYSDATE,  
  315.                h.process_message    = '創建批次失敗-' || l_msg_data,  
  316.                h.row_version_number = h.row_version_number + 1,  
  317.                h.last_updated_by    = g_user_id,  
  318.                h.last_update_date   = SYSDATE,  
  319.                h.last_update_login  = g_login_id  
  320.          WHERE h.id = rec_inv_lot.id;  
  321.         IF l_return_status = g_ret_sts_error THEN  
  322.           
  323.           RAISE g_exc_error;  
  324.         ELSIF l_return_status = g_ret_sts_unexp_error THEN  
  325.           
  326.           fnd_message.set_name('INV''INV_PROGRAM_ERROR');  
  327.           fnd_message.set_token('PROG_NAME',  
  328.                                 'inv_lot_api_pub.Create_Inv_lot');  
  329.           fnd_msg_pub.add;  
  330.           RAISE g_exc_unexpected_error;  
  331.         END IF;  
  332.       END IF;  
  333.     END LOOP;  
  334.     
  335.     -- API end body  
  336.     -- end activity, include debug message hint to exit api  
  337.      
  338.   EXCEPTION  
  339.     
  340.     WHEN no_data_found THEN  
  341.       x_return_status := g_ret_sts_error;  
  342.       ROLLBACK TO inv_lot_1;  
  343.       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,  
  344.                                 p_count   => x_msg_count,  
  345.                                 p_data    => x_msg_data);  
  346.       IF (x_msg_count > 1) THEN  
  347.         x_msg_data := fnd_msg_pub.get(x_msg_count, fnd_api.g_false);  
  348.       END IF;  
  349.       -- print_debug('In No data found Create_Inv_Lot ' || SQLERRM, 9);  
  350.     WHEN g_exc_error THEN  
  351.       x_return_status := g_ret_sts_error;  
  352.       ROLLBACK TO inv_lot_1;  
  353.       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,  
  354.                                 p_count   => x_msg_count,  
  355.                                 p_data    => x_msg_data);  
  356.       IF (x_msg_count > 1) THEN  
  357.         x_msg_data := fnd_msg_pub.get(x_msg_count, fnd_api.g_false);  
  358.       END IF;  
  359.       --print_debug('In g_exc_error Create_Inv_Lot ' || SQLERRM, 9);  
  360.     WHEN g_exc_unexpected_error THEN  
  361.       x_return_status := g_ret_sts_unexp_error;  
  362.       ROLLBACK TO inv_lot_1;  
  363.       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,  
  364.                                 p_count   => x_msg_count,  
  365.                                 p_data    => x_msg_data);  
  366.       IF (x_msg_count > 1) THEN  
  367.         x_msg_data := fnd_msg_pub.get(x_msg_count, fnd_api.g_false);  
  368.       END IF;  
  369.     WHEN OTHERS THEN  
  370.       x_return_status := g_ret_sts_unexp_error;  
  371.       ROLLBACK TO inv_lot_1;  
  372.       fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,  
  373.                                 p_count   => x_msg_count,  
  374.                                 p_data    => x_msg_data);  
  375.       IF (x_msg_count > 1) THEN  
  376.         x_msg_data := fnd_msg_pub.get(x_msg_count, fnd_api.g_false);  
  377.       END IF;  
  378.       
  379.   END create_inv_lot;  
  380.  

 

庫存事務處理批次有時候出現導入錯誤需要更新可使用次程序更新

 

 

庫存事務處理批次更新

[sql] view plain copy

  1. DECLARE  
  2.   l_api_version      NUMBER := 1.0;  
  3.   l_init_msg_list    VARCHAR2(100) := fnd_api.g_false; -- bug 7513308;  
  4.   l_commit           VARCHAR2(100) := fnd_api.g_false;  
  5.   l_validation_level NUMBER := fnd_api.g_valid_level_full;  
  6.   l_origin_txn_id    NUMBER := NULL;  
  7.   l_source           NUMBER := 2;  
  8.   l_return_status    VARCHAR2(1);  
  9.   l_msg_data         VARCHAR2(3000);  
  10.   l_msg_count        NUMBER;  
  11.   l_row_id           ROWID;  
  12.   
  13.   l_count           NUMBER;  
  14.   x_mtl_lot_numbers mtl_lot_numbers%ROWTYPE;  
  15.   l_mtl_lot_numbers mtl_lot_numbers%ROWTYPE;  
  16.   
  17.   CURSOR cux_inv(p_lot_number IN VARCHAR2) IS  
  18.     SELECT l.lot_number, l.lot_date  
  19.       FROM oms_inv_lot_number l  
  20.      WHERE l.lot_number = p_lot_number;  
  21.   
  22.   CURSOR cur_mtl IS  
  23.     SELECT l.inventory_item_id, l.organization_id, l.lot_number  
  24.       FROM mtl_lot_numbers l;  
  25. BEGIN  
  26.   fnd_global.apps_initialize(user_id      => 1110,  
  27.                              resp_id      => 20634,  
  28.                              resp_appl_id => 401);  
  29.   --MO_GLOBAL.set_policy_context(p_access_mode => 'S',p_org_id => 83);  
  30.   -- fnd_profile.PUT(NAME =>'MFG_ORGANIZATION_ID' ,VAL => 83);  
  31.   FOR rec_mtl IN cur_mtl LOOP  
  32.     FOR rec_inv IN cux_inv(p_lot_number => rec_mtl.lot_number) LOOP  
  33.       l_mtl_lot_numbers.inventory_item_id := rec_mtl.inventory_item_id;  
  34.       l_mtl_lot_numbers.organization_id   := rec_mtl.organization_id;  
  35.       l_mtl_lot_numbers.lot_number        := rec_mtl.lot_number;  
  36.       l_mtl_lot_numbers.origination_date  := rec_inv.lot_date;  
  37.       
  38.       inv_lot_api_pub.update_inv_lot(x_return_status => l_return_status,  
  39.                                      x_msg_count     => l_msg_count,  
  40.                                      x_msg_data      => l_msg_data,  
  41.                                      x_lot_rec       => x_mtl_lot_numbers,  
  42.                                      p_lot_rec       => l_mtl_lot_numbers,  
  43.                                      p_source        => l_source,  
  44.                                      p_api_version   => l_api_version,  
  45.                                      p_init_msg_list => l_init_msg_list,  
  46.                                      p_commit        => l_commit);  
  47.       
  48.     END LOOP;  
  49.   END LOOP;  
  50.   
  51. EXCEPTION  
  52.   WHEN OTHERS THEN  
  53.     dbms_output.put_line('---' || SQLERRM);  
  54.     
  55. END;  
  56. SELECT DISTINCT t.originati
  57. on_date FROM mtl_lot_numbers t;  

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章