DBA Data[Home] [Help]

PACKAGE BODY: APPS.MRP_CUSTOM_LINE_SCHEDULE

Source


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;