詳解EBS介面開發之庫存事務處理-物料批次匯入
庫存事務處理-物料批次匯入 --系統批次表 SELECT * FROM MTL_LOT_NUMBERS T; --API建立批次 inv_lot_api_pub.create_inv_lot(x_return_status => l_return_status, x_msg_count => l_msg_count, x_msg_data => l_msg_data, x_row_id => l_row_id, x_lot_rec => x_mtl_lot_numbers, p_lot_rec => l_mtl_lot_numbers, p_source => l_source, p_api_version => l_api_version, p_init_msg_list => l_init_msg_list, p_commit => l_commit, p_validation_level => l_validation_level, p_origin_txn_id => l_origin_txn_id); --API更新批次 inv_lot_api_pub.update_inv_lot( x_return_status OUT NOCOPY VARCHAR2 , x_msg_count OUT NOCOPY NUMBER , x_msg_data OUT NOCOPY VARCHAR2 , x_lot_rec OUT NOCOPY MTL_LOT_NUMBERS%ROWTYPE , p_lot_rec IN MTL_LOT_NUMBERS%ROWTYPE , p_source IN NUMBER , p_api_version IN NUMBER , p_init_msg_list IN VARCHAR2 := fnd_api.g_false , p_commit IN VARCHAR2 := fnd_api.g_false); --驗證批次唯一性 inv_lot_api_pub.validate_unique_lot( p_org_id IN NUMBER , p_inventory_item_id IN NUMBER , p_lot_uniqueness IN NUMBER , p_auto_lot_number IN VARCHAR2 , p_check_same_item IN VARCHAR2 , x_is_unique OUT NOCOPY VARCHAR2 ); --物料批次數量驗證 ----------------------------------------------------------------------- -- Name : validate_quantities -- Desc : This procedure is used to validate transaction quantity2 -- -- I/P Params : -- All the relevant transaction details : -- - organization id -- - item_id -- - lot, revision, subinventory -- - transaction quantities -- O/P Params : -- x_rerturn_status. -- RETURN VALUE : -- TRUE : IF the transaction is valid regarding Quantity2 and lot indivisible -- FALSE : IF the transaction is NOT valid regarding Quantity2 and lot indivisible -- ----------------------------------------------------------------------- inv_lot_api_pub.validate_quantities( p_api_version IN NUMBER , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE , p_transaction_type_id IN NUMBER , p_organization_id IN NUMBER , p_inventory_item_id IN NUMBER , p_revision IN VARCHAR2 , p_subinventory_code IN VARCHAR2 , p_locator_id IN NUMBER , p_lot_number IN VARCHAR2 , p_transaction_quantity IN OUT NOCOPY NUMBER , p_transaction_uom_code IN VARCHAR2 , p_primary_quantity IN OUT NOCOPY NUMBER , p_primary_uom_code OUT NOCOPY VARCHAR2 , p_secondary_quantity IN OUT NOCOPY NUMBER , p_secondary_uom_code IN OUT NOCOPY VARCHAR2 , x_return_status OUT NOCOPY VARCHAR2 , x_msg_count OUT NOCOPY NUMBER , x_msg_data OUT NOCOPY VARCHAR2); --簡單參考例子 /**================================================== Procedure Name : create_inv_lot Description: This procedure is concurrent entry, perform: 庫存事務處理批號生成 api Argument: p_inventory_item_id 庫存物料id, p_organization_id 組織id, p_lot_number 批號: History: 1.00 2013-10-29 cxy Creation ==================================================*/ PROCEDURE create_inv_lot(p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false, p_commit IN VARCHAR2 DEFAULT fnd_api.g_false, x_return_status OUT NOCOPY VARCHAR2, x_msg_count OUT NOCOPY NUMBER, x_msg_data OUT NOCOPY VARCHAR2, p_inventory_item_id IN NUMBER, p_organization_id IN NUMBER, p_lot_number VARCHAR2) IS l_api_name CONSTANT VARCHAR2(30) := 'create_inv_lot'; l_count NUMBER; x_mtl_lot_numbers mtl_lot_numbers%ROWTYPE; l_mtl_lot_numbers mtl_lot_numbers%ROWTYPE; /* Defined new variables for overloaded API call */ l_api_version NUMBER := 1.0; l_init_msg_list VARCHAR2(100) := fnd_api.g_false; -- bug 7513308; l_commit VARCHAR2(100) := fnd_api.g_false; l_validation_level NUMBER := fnd_api.g_valid_level_full; l_origin_txn_id NUMBER := NULL; l_source NUMBER := 2; l_return_status VARCHAR2(1); l_msg_data VARCHAR2(3000); l_msg_count NUMBER; l_row_id ROWID; BEGIN SAVEPOINT inv_lot_1; -- start activity to create savepoint, check compatibility -- and initialize message list, include debug message hint to enter api SELECT COUNT(1) INTO l_count FROM cux_inv_lot_number WHERE lot_number = p_lot_number; IF l_count = 0 THEN fnd_message.set_name('INV', '在系統中不存在此批號:CUX_INV_LOT_NUMBER.lot_number'); fnd_message.set_token('LOT_NUMBER', to_char(p_lot_number)); fnd_msg_pub.add; RAISE fnd_api.g_exc_error; END IF; FOR rec_inv_lot IN cur_inv_lot LOOP l_mtl_lot_numbers.inventory_item_id := p_inventory_item_id; l_mtl_lot_numbers.organization_id := p_organization_id; l_mtl_lot_numbers.lot_number := p_lot_number; l_mtl_lot_numbers.last_update_date := SYSDATE; l_mtl_lot_numbers.last_updated_by := g_user_id; l_mtl_lot_numbers.creation_date := rec_inv_lot.lot_date; l_mtl_lot_numbers.created_by := rec_inv_lot.created_by; l_mtl_lot_numbers.last_update_login := g_login_id; l_mtl_lot_numbers.program_application_id := g_prog_appl_id; l_mtl_lot_numbers.program_id := g_conc_program_id; l_mtl_lot_numbers.program_update_date := SYSDATE; l_mtl_lot_numbers.expiration_date := NULL; l_mtl_lot_numbers.disable_flag := NULL; l_mtl_lot_numbers.attribute_category := NULL; l_mtl_lot_numbers.attribute1 := NULL; l_mtl_lot_numbers.attribute2 := NULL; l_mtl_lot_numbers.attribute3 := NULL; l_mtl_lot_numbers.attribute4 := NULL; l_mtl_lot_numbers.attribute5 := NULL; l_mtl_lot_numbers.attribute6 := NULL; l_mtl_lot_numbers.attribute7 := NULL; l_mtl_lot_numbers.attribute8 := NULL; l_mtl_lot_numbers.attribute9 := NULL; l_mtl_lot_numbers.attribute10 := NULL; l_mtl_lot_numbers.attribute11 := NULL; l_mtl_lot_numbers.attribute12 := NULL; l_mtl_lot_numbers.attribute13 := NULL; l_mtl_lot_numbers.attribute14 := NULL; l_mtl_lot_numbers.attribute15 := NULL; l_mtl_lot_numbers.request_id := NULL; l_mtl_lot_numbers.gen_object_id := NULL; l_mtl_lot_numbers.description := NULL; l_mtl_lot_numbers.vendor_name := NULL; l_mtl_lot_numbers.supplier_lot_number := NULL; l_mtl_lot_numbers.country_of_origin := NULL; l_mtl_lot_numbers.grade_code := NULL; l_mtl_lot_numbers.origination_date := NULL; l_mtl_lot_numbers.date_code := NULL; l_mtl_lot_numbers.status_id := NULL; l_mtl_lot_numbers.change_date := NULL; l_mtl_lot_numbers.age := NULL; l_mtl_lot_numbers.retest_date := NULL; l_mtl_lot_numbers.maturity_date := NULL; l_mtl_lot_numbers.lot_attribute_category := NULL; l_mtl_lot_numbers.item_size := NULL; l_mtl_lot_numbers.color := NULL; l_mtl_lot_numbers.volume := NULL; l_mtl_lot_numbers.volume_uom := NULL; l_mtl_lot_numbers.place_of_origin := NULL; l_mtl_lot_numbers.kill_date := NULL; l_mtl_lot_numbers.best_by_date := NULL; l_mtl_lot_numbers.length := NULL; l_mtl_lot_numbers.length_uom := NULL; l_mtl_lot_numbers.recycled_content := NULL; l_mtl_lot_numbers.thickness := NULL; l_mtl_lot_numbers.thickness_uom := NULL; l_mtl_lot_numbers.width := NULL; l_mtl_lot_numbers.width_uom := NULL; l_mtl_lot_numbers.curl_wrinkle_fold := NULL; l_mtl_lot_numbers.c_attribute1 := NULL; l_mtl_lot_numbers.c_attribute2 := NULL; l_mtl_lot_numbers.c_attribute3 := NULL; l_mtl_lot_numbers.c_attribute4 := NULL; l_mtl_lot_numbers.c_attribute5 := NULL; l_mtl_lot_numbers.c_attribute6 := NULL; l_mtl_lot_numbers.c_attribute7 := NULL; l_mtl_lot_numbers.c_attribute8 := NULL; l_mtl_lot_numbers.c_attribute9 := NULL; l_mtl_lot_numbers.c_attribute10 := NULL; l_mtl_lot_numbers.c_attribute11 := NULL; l_mtl_lot_numbers.c_attribute12 := NULL; l_mtl_lot_numbers.c_attribute13 := NULL; l_mtl_lot_numbers.c_attribute14 := NULL; l_mtl_lot_numbers.c_attribute15 := NULL; l_mtl_lot_numbers.c_attribute16 := NULL; l_mtl_lot_numbers.c_attribute17 := NULL; l_mtl_lot_numbers.c_attribute18 := NULL; l_mtl_lot_numbers.c_attribute19 := NULL; l_mtl_lot_numbers.c_attribute20 := NULL; l_mtl_lot_numbers.c_attribute21 := NULL; l_mtl_lot_numbers.c_attribute22 := NULL; l_mtl_lot_numbers.c_attribute23 := NULL; l_mtl_lot_numbers.c_attribute24 := NULL; l_mtl_lot_numbers.c_attribute25 := NULL; l_mtl_lot_numbers.c_attribute26 := NULL; l_mtl_lot_numbers.c_attribute27 := NULL; l_mtl_lot_numbers.c_attribute28 := NULL; l_mtl_lot_numbers.c_attribute29 := NULL; l_mtl_lot_numbers.c_attribute30 := NULL; l_mtl_lot_numbers.d_attribute1 := NULL; l_mtl_lot_numbers.d_attribute2 := NULL; l_mtl_lot_numbers.d_attribute3 := NULL; l_mtl_lot_numbers.d_attribute4 := NULL; l_mtl_lot_numbers.d_attribute5 := NULL; l_mtl_lot_numbers.d_attribute6 := NULL; l_mtl_lot_numbers.d_attribute7 := NULL; l_mtl_lot_numbers.d_attribute8 := NULL; l_mtl_lot_numbers.d_attribute9 := NULL; l_mtl_lot_numbers.d_attribute10 := NULL; l_mtl_lot_numbers.d_attribute11 := NULL; l_mtl_lot_numbers.d_attribute12 := NULL; l_mtl_lot_numbers.d_attribute13 := NULL; l_mtl_lot_numbers.d_attribute14 := NULL; l_mtl_lot_numbers.d_attribute15 := NULL; l_mtl_lot_numbers.d_attribute16 := NULL; l_mtl_lot_numbers.d_attribute17 := NULL; l_mtl_lot_numbers.d_attribute18 := NULL; l_mtl_lot_numbers.d_attribute19 := NULL; l_mtl_lot_numbers.d_attribute20 := NULL; l_mtl_lot_numbers.n_attribute1 := NULL; l_mtl_lot_numbers.n_attribute2 := NULL; l_mtl_lot_numbers.n_attribute3 := NULL; l_mtl_lot_numbers.n_attribute4 := NULL; l_mtl_lot_numbers.n_attribute5 := NULL; l_mtl_lot_numbers.n_attribute6 := NULL; l_mtl_lot_numbers.n_attribute7 := NULL; l_mtl_lot_numbers.n_attribute8 := NULL; l_mtl_lot_numbers.n_attribute9 := NULL; l_mtl_lot_numbers.n_attribute10 := NULL; l_mtl_lot_numbers.n_attribute11 := NULL; l_mtl_lot_numbers.n_attribute12 := NULL; l_mtl_lot_numbers.n_attribute13 := NULL; l_mtl_lot_numbers.n_attribute14 := NULL; l_mtl_lot_numbers.n_attribute15 := NULL; l_mtl_lot_numbers.n_attribute16 := NULL; l_mtl_lot_numbers.n_attribute17 := NULL; l_mtl_lot_numbers.n_attribute18 := NULL; l_mtl_lot_numbers.n_attribute19 := NULL; l_mtl_lot_numbers.n_attribute20 := NULL; l_mtl_lot_numbers.n_attribute21 := NULL; l_mtl_lot_numbers.n_attribute22 := NULL; l_mtl_lot_numbers.n_attribute23 := NULL; l_mtl_lot_numbers.n_attribute24 := NULL; l_mtl_lot_numbers.n_attribute25 := NULL; l_mtl_lot_numbers.n_attribute26 := NULL; l_mtl_lot_numbers.n_attribute27 := NULL; l_mtl_lot_numbers.n_attribute28 := NULL; l_mtl_lot_numbers.n_attribute29 := NULL; l_mtl_lot_numbers.n_attribute30 := NULL; l_mtl_lot_numbers.vendor_id := NULL; l_mtl_lot_numbers.territory_code := NULL; l_mtl_lot_numbers.parent_lot_number := NULL; l_mtl_lot_numbers.origination_type := NULL; l_mtl_lot_numbers.availability_type := NULL; l_mtl_lot_numbers.expiration_action_code := NULL; l_mtl_lot_numbers.expiration_action_date := NULL; l_mtl_lot_numbers.hold_date := NULL; l_mtl_lot_numbers.inventory_atp_code := NULL; l_mtl_lot_numbers.reservable_type := NULL; l_mtl_lot_numbers.sampling_event_id := NULL; inv_lot_api_pub.create_inv_lot(x_return_status => l_return_status, x_msg_count => l_msg_count, x_msg_data => l_msg_data, x_row_id => l_row_id, x_lot_rec => x_mtl_lot_numbers, p_lot_rec => l_mtl_lot_numbers, p_source => l_source, p_api_version => l_api_version, p_init_msg_list => l_init_msg_list, p_commit => l_commit, p_validation_level => l_validation_level, p_origin_txn_id => l_origin_txn_id); IF l_return_status = g_ret_sts_success THEN UPDATE cux_inv_lot_number h SET h.process_status = 'COMPLETE', h.process_date = SYSDATE, h.process_message = NULL, h.row_version_number = h.row_version_number + 1, h.last_updated_by = g_user_id, h.last_update_date = SYSDATE, h.last_update_login = g_login_id WHERE h.id = rec_inv_lot.id; ELSE UPDATE cux_inv_lot_number h SET h.process_status = 'ERROR', h.process_date = SYSDATE, h.process_message = '建立批次失敗-' || l_msg_data, h.row_version_number = h.row_version_number + 1, h.last_updated_by = g_user_id, h.last_update_date = SYSDATE, h.last_update_login = g_login_id WHERE h.id = rec_inv_lot.id; IF l_return_status = g_ret_sts_error THEN RAISE g_exc_error; ELSIF l_return_status = g_ret_sts_unexp_error THEN fnd_message.set_name('INV', 'INV_PROGRAM_ERROR'); fnd_message.set_token('PROG_NAME', 'inv_lot_api_pub.Create_Inv_lot'); fnd_msg_pub.add; RAISE g_exc_unexpected_error; END IF; END IF; END LOOP; -- API end body -- end activity, include debug message hint to exit api EXCEPTION WHEN no_data_found THEN x_return_status := g_ret_sts_error; ROLLBACK TO inv_lot_1; fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data); IF (x_msg_count > 1) THEN x_msg_data := fnd_msg_pub.get(x_msg_count, fnd_api.g_false); END IF; -- print_debug('In No data found Create_Inv_Lot ' || SQLERRM, 9); WHEN g_exc_error THEN x_return_status := g_ret_sts_error; ROLLBACK TO inv_lot_1; fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data); IF (x_msg_count > 1) THEN x_msg_data := fnd_msg_pub.get(x_msg_count, fnd_api.g_false); END IF; --print_debug('In g_exc_error Create_Inv_Lot ' || SQLERRM, 9); WHEN g_exc_unexpected_error THEN x_return_status := g_ret_sts_unexp_error; ROLLBACK TO inv_lot_1; fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data); IF (x_msg_count > 1) THEN x_msg_data := fnd_msg_pub.get(x_msg_count, fnd_api.g_false); END IF; WHEN OTHERS THEN x_return_status := g_ret_sts_unexp_error; ROLLBACK TO inv_lot_1; fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false, p_count => x_msg_count, p_data => x_msg_data); IF (x_msg_count > 1) THEN x_msg_data := fnd_msg_pub.get(x_msg_count, fnd_api.g_false); END IF; END create_inv_lot;
相關推薦
詳解EBS介面開發之庫存事務處理-物料批次匯入
庫存事務處理-物料批次匯入 --系統批次表 SELECT * FROM MTL_LOT_NUMBERS T; --API建立批次 inv_lot_api_pub.create_inv_lot(x_return_status => l_return_status,
詳解EBS介面開發之庫存事務處理採購接收和退貨
3.2 接收&退貨匯入api說明 此程式是呼叫標準API的客戶化程式,實現處理處理接收&退貨,處理方式有三種,聯機,立即,和批,具體資訊使用可以參考程式中的註釋 (五)接收&退貨匯入併發程式研究 4.1 匯入的併發請求 fnd_request.submit
詳解EBS介面開發之供應商匯入(補充)--供應商銀行賬戶更新
CREATE OR REPLACE PACKAGE BODY update_vendor_account IS PROCEDURE main(errbuf OUT VARCHAR2, retcode OUT VARCHAR2) IS l_vendor_id
AR-API-詳解EBS介面開發之應收款處理2
(一)應收款常用標準表簡介 1.1 常用標準表 如下表中列出了與應收款處理相關的表和說明: 表名 說明 其他資訊 AR_BATCHES_ALL AR收款批表 AR_BATCH_SOURCES_ALL AR收款型別表 對應檢視 AR
詳解Unity3D Shader開發之渲染管線
筆者介紹:姜雪偉,IT公司技術合夥人,IT高階講師,CSDN社群專家,特邀編輯,暢銷書作者,國家專利發明人;已出版書籍:《手把手教你架構3D遊戲引擎》電子工業出版社和《實戰核心技術詳解》電子工業出版社等。Shader程式設計對於圖形學渲染來說非常重要,為了讓讀者理解Shade
Oracle EBS介面開發之通過DBWS包實現WEBSERVICE
簡介 Oracle在9i時代就釋出了擴充套件包來支援PL/SQL訪問Web Services,並且在Oracle 10g版本中使得該功能變得更加強大;這都源於引入了UTL_DBWS包,其實它是封裝了
JAVA常用集合框架用法詳解基礎篇一之Colletion介面
首先,在學習集合之前我們能夠使用的可以儲存多個元素的容器就是陣列。 下面舉幾個例子主要是引出集合類的: 1、8,4,5,6,7,55,7,8 像這樣的型別相同的可以使用陣列來儲存,本例可以用int[] arr來儲存。 2、”zhnagsan”,true,68 像這樣的可以使
JAVA常用集合框架用法詳解基礎篇三之Colletion子介面Set
這一篇我們來介紹Collection介面的另一個子介面,Set介面。Set是個介面,元素不可以重複,是無序的。Set介面中的方法和Collection的一致。 A、Set的子類: 1、HashSet:此類實現的Set介面,由雜湊表(實際上是一個HashMap)例項支援,它不保證Set的迭代順
JAVA常用集合框架用法詳解基礎篇二之Colletion子介面List
接著上一篇,接著講講集合的知識。上一篇講了Collection介面。它可以說是集合的祖先了,我們這一篇就說說它的子孫們。 一、Collection的子介面 List:有序(存入和取出的順序一致),元素都有索引(即角標),元素可以重複。 Set:元素不能重複,無序的。 首先講講L
詳解功能版本管理之使用eoLinker
object 可見 nts 平臺 sso fonts 一覽 多次 動態 先看一個對話: “這裏,你改一下,這裏返回一個object。” “好...好......” “還有這裏,返回個String。” ...... 在接口文檔改了7、8個version後,組長又發話了,“
編碼原理詳解(四)---之字形掃描
便是 集中 img 詳解 工作 -- 漢字 如何 編碼原理 上一篇我們講到,經過量化後得到了諸多零值和整數值,本篇接下來講講編碼過程中過對這些值如何組織和處理,那就是ZigZag掃描嘍。 一、簡介 ZigZag掃描也稱作之字形掃描,何以得此稱謂,是因為其掃描的路徑特
功能表單字段、樹形選擇數據類型的配置詳解——JEPLUS快速開發平臺
下拉框 單選框 多選框 功能表單字段之下拉框、單選框、多選框、樹形選擇數據類型的配置詳解JEPLUS平臺的表單支持有多種不同的數據類型,這些不同的數據類型在展示不同類型的數據時能有很好的效果,今天這篇筆記就講
hashmap資料結構詳解(五)之HashMap、HashTable、ConcurrentHashMap 的區別
【hashmap 與 hashtable】 hashmap資料結構詳解(一)之基礎知識奠基 hashmap資料結構詳解(二)之走進JDK原始碼 hashmap資料結構詳解(三)之hashcode例項及大小是2的冪次方解釋 hashmap資料結構詳解(四)之has
詳解Scala集合類之陣列的語法格式以及簡單例項
簡介 Scala 語言中提供的陣列是用來儲存固定大小的同類型元素。宣告陣列是宣告一個就像numbers這樣的變數,然後使用 numbers[0]、numbers[1]、…、numbers[99] 來表示一個個單獨的變數。陣列中某個指定的元素是通過索引來訪問的。 陣列的第一個元素索引為0,最
PI介面開發之調java WS介面
java提供的WSDL:http://XXX.XXX.XXX.XX/XXXXXXXcrm/ws/financialStatementsService?wsdl 登陸PI,下載Enterprise Services Builder 展開並選擇元件和名稱空間(一般專案會分多個,視情況來做) 1.建立資料夾(
docker系列詳解<二>之常用命令
此篇我們以從docker執行一個tomcat為例,進行一下操作: 拉取映象 檢視映象 建立容器 檢視執行狀態 進入退出容器 停止容器 重啟容器 刪除容器 刪除映象 1.拉取tomcat映象: 1).檢視tomcat映象列表: docker search tomcat&nb
王權富貴書評:《21個專案玩轉深度學習基於TensorFlow的實踐詳解》(何之源著)
這本書只有例子。例子還屬於那種不完整的。 推薦:-* &nb
freescale飛思卡爾 HC9S12 系列微控制器 Flash擦寫詳解(一)之時鐘設定
Flash擦寫的內容,個人做HC9S12系列微控制器時覺得應該是各模組內容中最難而且是最麻煩的一步了。只有能夠對Flash進行擦寫以後,所做的Bootloader才有真正手段將串列埠或者其他通訊手段接收到的資料或者程式寫入Flash中進行程式或者資料的更新。當初做Flash的擦寫也遇到了很多問題
Java集合框架詳解--Collection介面簡單介紹(二)
一、Collection介面簡單介紹 Collection介面是處理物件集合的根介面,其中定義了很多對元素進行操作的方法。Collection介面有兩個主要的子介面List和Set,注意Map不是Collection的子介面。 Collection介面中的方
【轉】WinForm介面開發之佈局控制元件"WeifenLuo.WinFormsUI.Docking"的使用
本篇介紹Winform程式開發中的佈局介面的設計,介紹如何在我的共享軟體中使用佈局控制元件"WeifenLuo.WinFormsUI.Docking"。 佈局控制元件"WeifenLuo.WinFormsUI.Docking"是一個非常棒的開源控制元件,用過的人都深有體會,