1 PACKAGE BODY MRP_CUSTOM_LINE_SCHEDULE AS
2 /* $Header: MRPPCLSB.pls 120.0 2005/05/25 03:35:31 appldev noship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30) := 'MRP_CUSTOM_LINE_SCHEDULE';
5
6 PROCEDURE Custom_Schedule (
7 p_api_version_number IN NUMBER,
8 p_rule_id IN NUMBER,
9 p_line_id IN NUMBER,
10 p_org_id IN NUMBER,
11 p_flex_tolerance IN NUMBER,/*Added in bug1949098*/
12 p_scheduling_start_date IN DATE,
13 p_scheduling_end_date IN DATE,
14 x_return_status OUT NOCOPY VARCHAR2,
15 x_msg_count OUT NOCOPY NUMBER,
16 x_msg_data OUT NOCOPY VARCHAR2) IS
17
18 l_api_version_number CONSTANT NUMBER := 1.0;
19 l_api_name CONSTANT VARCHAR2(30) := 'Custom_Schedule';
20
21 BEGIN
22
23 IF NOT FND_API.Compatible_API_Call
24 ( l_api_version_number,
25 p_api_version_number,
26 l_api_name,
27 G_PKG_NAME)
28 THEN
29 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
30 END IF;
31
32 /* Add code here
33 IF (p_rule_id = <first rule id>) THEN
34 <first algorithm>
35 ELSIF (p_rule_id = <second rule id>) THEN
36 <second algorithm>
37 ELSE
38 <default algorithm>
39 END IF;
40 */
41 x_return_status := FND_API.G_RET_STS_SUCCESS;
42
43 -- Get message count and data
44
45 FND_MSG_PUB.Count_And_Get
46 ( p_count => x_msg_count
47 , p_data => x_msg_data
48 );
49
50 EXCEPTION
51
52 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
53
54 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
55
56 -- Get message count and data
57
58 FND_MSG_PUB.Count_And_Get
59 ( p_count => x_msg_count
60 , p_data => x_msg_data
61 );
62
63 WHEN OTHERS THEN
64
65 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
66
67 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
68 THEN
69 FND_MSG_PUB.Add_Exc_Msg
70 ( G_PKG_NAME
71 , 'Custom_Schedule'
72 );
73 END IF;
74
75 -- Get message count and data
76
77 FND_MSG_PUB.Count_And_Get
78 ( p_count => x_msg_count
79 , p_data => x_msg_data
80 );
81
82 END Custom_Schedule;
83
84 /*
85 This API is being called from Line Scheduling Workbench before
86 inserting the rows into wip_flow_schedules. It allows the user
87 to customize the filtering of the demand to be inserted into
88 wip_flow_schedules. This is called before the scheduling engine
89 is invoked.
90 IN Parameter :
91 - p_rule_id : the scheduling rule id
92 - p_line_id : the production line identifier
93 - p_org_id : the organization id
94 - p_demand_type : to identify the demand type.
95 2 for sales order, 100 for planned order
96 - p_demand_id : the identifier for demand.
97 For sales order, p_demand_id = sales order line id in oe_order_lines_all
98 For planned order, p_demand_id = transaction_id in mrp_recommendations
99 OUT Parameter :
100 - p_valid_demand : the demand will be inserted into wip_flow_schedules
101 if the p_valid_demand is TRUE. Otherwise it will be ignored.
102 */
103 PROCEDURE Is_Valid_Demand (
104 p_api_version_number IN NUMBER,
105 p_rule_id IN NUMBER,
106 p_line_id IN NUMBER,
107 p_org_id IN NUMBER,
108 p_demand_type IN NUMBER,
109 p_demand_id IN NUMBER,
110 p_valid_demand OUT NOCOPY BOOLEAN,
111 x_return_status OUT NOCOPY VARCHAR2,
112 x_msg_count OUT NOCOPY NUMBER,
113 x_msg_data OUT NOCOPY VARCHAR2) IS
114
115 l_api_version_number CONSTANT NUMBER := 1.0;
116 l_api_name CONSTANT VARCHAR2(30) := 'Is_Valid_Demand';
117
118 BEGIN
119 IF NOT FND_API.Compatible_API_Call
120 ( l_api_version_number,
121 p_api_version_number,
122 l_api_name,
123 G_PKG_NAME)
124 THEN
125 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
126 END IF;
127
128 /* Add code here */
129 p_valid_demand := TRUE;
130
131 x_return_status := FND_API.G_RET_STS_SUCCESS;
132
133 -- Get message count and data
134
135 FND_MSG_PUB.Count_And_Get
136 ( p_count => x_msg_count
137 , p_data => x_msg_data
138 );
139
140 EXCEPTION
141
142 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
143
144 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
145
146 -- Get message count and data
147
148 FND_MSG_PUB.Count_And_Get
149 ( p_count => x_msg_count
150 , p_data => x_msg_data
151 );
152
153 WHEN OTHERS THEN
154
155 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
156
157 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
158 THEN
159 FND_MSG_PUB.Add_Exc_Msg
160 ( G_PKG_NAME
161 , 'Is_Valid_Demand'
162 );
163 END IF;
164
165 -- Get message count and data
166
167 FND_MSG_PUB.Count_And_Get
168 ( p_count => x_msg_count
169 , p_data => x_msg_data
170 );
171
172 END Is_Valid_Demand;
173
174 END MRP_CUSTOM_LINE_SCHEDULE;