1 PACKAGE INV_TXN_MANAGER_PUB AS
2 /* $Header: INVTXMGS.pls 120.7.12000000.1 2007/01/17 16:33:06 appldev ship $ */
3 /*#
4 * This package contains the Inventory Transactions Process wrapper which
5 * calls the Inventory Transaction Manager to process records in the material
6 * transaction interface table.
7 * @rep:scope public
8 * @rep:product INV
9 * @rep:lifecycle active
10 * @rep:displayname Material Transaction
11 * @rep:category BUSINESS_ENTITY INV_MATERIAL_TRANSACTION
12 */
13 TYPE Line_REC_Type IS RECORD (
14 TRANSACTION_INTERFACE_ID mtl_transactions_interface.transaction_interface_id%TYPE
15 ,TRANSACTION_HEADER_ID mtl_transactions_interface.transaction_HEADER_id%TYPE
16 ,REQUEST_ID mtl_transactions_interface.REQUEST_id%TYPE
17 ,INVENTORY_ITEM_ID mtl_transactions_interface.inventory_item_id%TYPE
18 ,ORGANIZATION_ID mtl_transactions_interface.organization_id%TYPE
19 ,SUBINVENTORY_CODE mtl_transactions_interface.SUBINVENTORY_CODE%TYPE
20 ,TRANSFER_ORGANIZATION mtl_transactions_interface.TRANSFER_ORGANIZATION%TYPE
21 ,TRANSFER_SUBINVENTORY mtl_transactions_interface.TRANSFER_SUBINVENTORY%TYPE
22 ,TRANSACTION_UOM mtl_transactions_interface.TRANSACTION_UOM%TYPE
23 ,TRANSACTION_DATE mtl_transactions_interface.TRANSACTION_DATE%TYPE
24 ,TRANSACTION_QUANTITY mtl_transactions_interface.TRANSACTION_QUANTITY%TYPE
25 ,LOCATOR_ID mtl_transactions_interface.LOCATOR_ID%TYPE
26 ,TRANSFER_LOCATOR mtl_transactions_interface.TRANSFER_LOCATOR%TYPE
27 ,TRANSACTION_SOURCE_ID mtl_transactions_interface.TRANSACTION_SOURCE_ID%TYPE
28 ,TRANSACTION_SOURCE_TYPE_ID mtl_transactions_interface.TRANSACTION_SOURCE_TYPE_ID%TYPE
29 ,TRANSACTION_ACTION_ID mtl_transactions_interface.TRANSACTION_ACTION_ID%TYPE
30 ,TRANSACTION_TYPE_ID mtl_transactions_interface.TRANSACTION_TYPE_ID%TYPE
31 ,DISTRIBUTION_ACCOUNT_ID mtl_transactions_interface.DISTRIBUTION_ACCOUNT_ID%TYPE
32 ,SHIPPABLE_FLAG mtl_transactions_interface.SHIPPABLE_FLAG%TYPE
33 ,ROWID VARCHAR(31)
34 ,NEW_AVERAGE_COST mtl_transactions_interface.NEW_AVERAGE_COST%TYPE
35 ,VALUE_CHANGE mtl_transactions_interface.VALUE_CHANGE%TYPE
36 ,PERCENTAGE_CHANGE mtl_transactions_interface.PERCENTAGE_CHANGE%TYPE
37 ,MATERIAL_ACCOUNT mtl_transactions_interface.MATERIAL_ACCOUNT%TYPE
38 ,MATERIAL_OVERHEAD_ACCOUNT mtl_transactions_interface.MATERIAL_OVERHEAD_ACCOUNT%TYPE
39 ,RESOURCE_ACCOUNT mtl_transactions_interface.RESOURCE_ACCOUNT%TYPE
40 ,OUTSIDE_PROCESSING_ACCOUNT mtl_transactions_interface.OUTSIDE_PROCESSING_ACCOUNT%TYPE
41 ,OVERHEAD_ACCOUNT mtl_transactions_interface.OVERHEAD_ACCOUNT%TYPE
42 ,REQUISITION_LINE_ID mtl_transactions_interface.REQUISITION_LINE_ID%TYPE
43 ,OVERCOMPLETION_TRANSACTION_QTY mtl_transactions_interface.OVERCOMPLETION_TRANSACTION_QTY%TYPE
44 ,END_ITEM_UNIT_NUMBER mtl_transactions_interface.END_ITEM_UNIT_NUMBER%TYPE
45 ,SCHEDULED_PAYBACK_DATE mtl_transactions_interface.SCHEDULED_PAYBACK_DATE%TYPE
46 ,REVISION mtl_transactions_interface.REVISION%TYPE
47 ,ORG_COST_GROUP_ID mtl_transactions_interface.ORG_COST_GROUP_ID%TYPE
48 ,COST_TYPE_ID mtl_transactions_interface.COST_TYPE_ID%TYPE
49 ,PRIMARY_QUANTITY mtl_transactions_interface.PRIMARY_QUANTITY%TYPE
50 ,SOURCE_LINE_ID mtl_transactions_interface.SOURCE_LINE_ID%TYPE
51 ,PROCESS_FLAG mtl_transactions_interface.PROCESS_FLAG%TYPE
52 ,TRANSACTION_SOURCE_NAME mtl_transactions_interface.TRANSACTION_SOURCE_NAME%TYPE
53 ,TRX_SOURCE_DELIVERY_ID mtl_transactions_interface.TRX_SOURCE_DELIVERY_ID%TYPE
54 ,TRX_SOURCE_LINE_ID mtl_transactions_interface.TRX_SOURCE_LINE_ID%TYPE
55 ,PARENT_ID mtl_transactions_interface.PARENT_ID%TYPE
56 ,TRANSACTION_BATCH_ID mtl_transactions_interface.TRANSACTION_BATCH_ID%TYPE
57 ,TRANSACTION_BATCH_SEQ mtl_transactions_interface.TRANSACTION_BATCH_SEQ%TYPE
58 -- INVCONV start fabdi
59 ,SECONDARY_TRANSACTION_QUANTITY mtl_transactions_interface.SECONDARY_TRANSACTION_QUANTITY%TYPE
60 ,SECONDARY_UOM_CODE mtl_transactions_interface.SECONDARY_UOM_CODE%TYPE
61 -- INVCONV end fabdi
62 ,SHIP_TO_LOCATION_ID mtl_transactions_interface.SHIP_TO_LOCATION_ID%TYPE --eIB Build; Bug# 4348541
63 ,TRANSFER_PRICE mtl_transactions_interface.TRANSFER_PRICE%TYPE
64 -- OPM INVCONV umoogala For Process-Discrete Xfers Enh.
65 -- Pawan 11th july added wip_entity_type
66 ,WIP_ENTITY_TYPE mtl_transactions_interface.WIP_ENTITY_TYPE%TYPE
67 /*Bug 5392366. Added the following two columns. */
68 ,COMPLETION_TRANSACTION_ID mtl_transactions_interface.COMPLETION_TRANSACTION_ID%TYPE
69 ,MOVE_TRANSACTION_ID mtl_transactions_interface.MOVE_TRANSACTION_ID%TYPE
70 );
71
72
73 TYPE line_Tbl_Type IS TABLE OF line_Rec_Type;
74
75
76 -----------------------------------------------------------------------
77 -- Global Constants for Transaction Processing Mode
78 -- There are the values the column TRANSACTION_MODE in MTI/MMTT/MMT
79 -- could have and their meanings. The columns determines 2 things
80 -- 1) the source of the transaction record (MTI or MMTT)
81 -- 2) mode of processing (Online, Asyncronous, Background)
82 -----------------------------------------------------------------------
83 PROC_MODE_MMTT_ONLINE CONSTANT NUMBER := 1 ;
84 PROC_MODE_MMTT_ASYNC CONSTANT NUMBER := 2 ;
85 PROC_MODE_MMTT_BGRND CONSTANT NUMBER := 3 ;
86 PROC_MODE_MTI CONSTANT NUMBER := 8 ;
87
88 -----------------------------------------------------------------------
89 -- Please note that other constants used in the Transaction Manager are
90 -- defined in package INV_GLOBALS and TrxTypes.java
91 -----------------------------------------------------------------------
92
93
94 -----------------------------------------------------------------------
95 -- Name : validate_group
96 -- Desc : Validate a group of MTI records in a batch together.
97 -- This is called from process_transaction() when TrxMngr processes
98 -- a batch of records
99 -- I/P params :
100 -- p_header_id : transaction_header_id
101 -----------------------------------------------------------------------
102 PROCEDURE validate_group(p_header_id NUMBER
103 ,x_return_status OUT NOCOPY VARCHAR2
104 ,x_msg_count OUT NOCOPY NUMBER
105 ,x_msg_data OUT NOCOPY VARCHAR2
106 ,p_userid NUMBER DEFAULT -1
107 ,p_loginid NUMBER DEFAULT -1);
108
109
110
111 -----------------------------------------------------------------------
112 -- Name : validate_lines (wrapper)
113 -- Desc : Validate each record of a batch in MTI .
114 -- This procedure acts as a wrapper and calls the inner validate_lines.
115 --
116 -- I/P params :
117 -- p_header_id : transaction_header_id
118 -- p_validation_level : Validation level
119 -----------------------------------------------------------------------
120 PROCEDURE validate_lines(p_header_id NUMBER,
121 p_commit VARCHAR2 := fnd_api.g_false ,
122 p_validation_level NUMBER := fnd_api.g_valid_level_full ,
123 x_return_status OUT NOCOPY VARCHAR2,
124 x_msg_count OUT NOCOPY NUMBER,
125 x_msg_data OUT NOCOPY VARCHAR2,
126 p_userid NUMBER DEFAULT -1,
127 p_loginid NUMBER DEFAULT -1,
128 p_applid NUMBER DEFAULT NULL,
129 p_progid NUMBER DEFAULT NULL);
130
131
132 -----------------------------------------------------------------------
133 -- Name : validate_lines (inner)
134 -- Desc : Validate a record in MTI .
135 -- This procedure is called from process_transaction() when TrxMngr
136 -- processes a batch of records in MTI
137 --
138 -- I/P params :
139 -- p_line_Rec_Type : MTI record type
140 -----------------------------------------------------------------------
141 PROCEDURE validate_lines(p_line_Rec_Type line_Rec_type,
142 p_commit VARCHAR2 := fnd_api.g_false ,
143 p_validation_level NUMBER := fnd_api.g_valid_level_full ,
144 p_error_flag OUT NOCOPY VARCHAR2,
145 p_userid NUMBER DEFAULT -1,
146 p_loginid NUMBER DEFAULT -1,
147 p_applid NUMBER DEFAULT NULL,
148 p_progid NUMBER DEFAULT NULL);
149
150 -----------------------------------------------------------------------
151 -- Name : post_temp_validation
152 -- Desc : Validations on a transaction record after moving to MMTT
153 -- This procedure is called from process_transaction()
154 --
155 -- I/P params :
156 -- p_line_rec_type : MTI record type
157 -----------------------------------------------------------------------
158 FUNCTION post_temp_validation(p_line_rec_type line_rec_type
159 , p_val_req NUMBER
160 , p_userid NUMBER DEFAULT -1
161 , p_flow_schedule NUMBER
162 , p_lot_number VARCHAR2 DEFAULT NULL -- Added for bug 4377625
163 ) RETURN BOOLEAN;
164
165
166 -----------------------------------------------------------------------
167 -- Name : get_open_period
168 -- Desc : Determine Account PeriodId based on organization and transaction-date
169 -- This procedure is called from validate_lines()
170 --
171 -- I/P params :
172 -- p_org_id : Org Id
173 -- p_trans_date : Transaction Date
174 -----------------------------------------------------------------------
175 FUNCTION get_open_period(p_org_id NUMBER
176 ,p_trans_date DATE
177 ,p_chk_date NUMBER) RETURN NUMBER;
178
179
180 -----------------------------------------------------------------------
181 -- Name : process_Transactions
182 -- Desc : This procedure is the interface API to the INV Transaction Manager.
183 -- It is called to process a batch of transaction_records .
184 --
185 -- I/P Params :
186 -- p_table : Source of transaction records
187 -- ( 1 == MTI, 2 == MMTT)
188 -- p_header_id : Transaction Header Id
189 -- p_commit : commit after processing or not
190 -- O/P Params :
191 -- x_trans_count : count of transaction records processed
192 --
193 -----------------------------------------------------------------------
194 /*#
195 * This function is the interface procedure to the Inventory Transaction Manager
196 * to validate and process a batch of material transaction interface records.
197 * @param p_api_version API Version of this procedure. Current version is 1.0
198 * @param p_init_msg_list fnd_api.g_false or fnd_api.g_true is passed as input to determine whether to Initialize message list or not
199 * @param p_commit Indicates whether to commit the changes after successful processing
200 * @param p_validation_level Indicates whether or not to perform a full validation
201 * @param x_return_status Returns the status to indicate success or failure of execution
202 * @param x_msg_count Returns number of error message in the error message stack in case of failure
203 * @param x_msg_data Returns the error message in case of failure
204 * @param x_trans_count The count of material transaction interface records processed.
205 * @param p_table Source of transaction records with value 1 of material transaction interface table and value 2 of material transaction temp table
206 * @param p_header_id Transaction header id
207 * @return Returns the status with value 0 to indicate successful processing and value -1 to indicate failure processing
208 * @rep:scope public
209 * @rep:lifecycle active
210 * @rep:displayname Process Material transaction interface records
211 */
212 FUNCTION process_Transactions(
213 p_api_version IN NUMBER ,
214 p_init_msg_list IN VARCHAR2 := fnd_api.g_false ,
215 p_commit IN VARCHAR2 := fnd_api.g_false ,
216 p_validation_level IN NUMBER := fnd_api.g_valid_level_full ,
217 x_return_status OUT NOCOPY VARCHAR2 ,
218 x_msg_count OUT NOCOPY NUMBER ,
219 x_msg_data OUT NOCOPY VARCHAR2 ,
220 x_trans_count OUT NOCOPY NUMBER ,
221 p_table IN NUMBER := 1 ,
222 p_header_id IN NUMBER )
223 RETURN NUMBER;
224
225
226 -----------------------------------------------------------------------
227 -- Name : tmpinsert
228 -- Desc : Move a transaction record from MTI to MMTT
229 -- This procedure is called from process_transaction()
230 --
231 -- I/P params :
232 -- p_rowid : rowid of record in MTI Id
233 --
234 -----------------------------------------------------------------------
235 FUNCTION tmpinsert(p_header_id IN NUMBER)
236 RETURN BOOLEAN;
237
238
239
240
241 -----------------------------------------------------------------------
242 -- Name : rel_reservations_mrp_update
243 -- Desc : Relieve reservation for a transaction and update MRP tables for
244 -- a transaction record in MMTT.
245 -- This procedure is called from BaseTransaction.java
246 --
247 -- I/P params :
248 -- p_header_id : transaction_header_id in MMTT
249 -- p_transaction_temp_id : transaction_temp_id in MMTT
250 -----------------------------------------------------------------------
251 -- Bug 4764790: passing the transaction id for relieving
252 -- reservations along with the serial numbers
253 PROCEDURE rel_reservations_mrp_update
254 (p_header_id IN NUMBER,
255 p_transaction_temp_id IN NUMBER,
256 p_transaction_id NUMBER DEFAULT NULL,
257 p_res_sts OUT NOCOPY VARCHAR2,
258 p_res_msg OUT NOCOPY VARCHAR2,
259 p_res_count OUT NOCOPY NUMBER,
260 p_mrp_status OUT NOCOPY VARCHAR2);
261
262 FUNCTION mrp_ship_order (
263 p_disposition_id NUMBER
264 , p_inv_item_id NUMBER
265 , p_quantity NUMBER
266 , p_last_updated_by NUMBER
270 , p_demand_class VARCHAR2
267 , p_org_id NUMBER
268 , p_line_num VARCHAR2
269 , p_shipment_date DATE
271 ) RETURN BOOLEAN;
272
273 END INV_TXN_MANAGER_PUB;