DBA Data[Home] [Help]

PACKAGE BODY: APPS.AHL_OSP_ORDERS_PUB

Source


1 PACKAGE BODY AHL_OSP_ORDERS_PUB AS
2 --/* $Header: AHLPOSPB.pls 120.2 2005/09/15 13:24:54 jaramana noship $ */
3 
4 
5 G_PKG_NAME          CONSTANT VARCHAR2(30) := 'AHL_OSP_ORDERS_PUB';
6 
7 ------------------------
8 -- Declare Procedures --
9 ------------------------
10 
11 -- Start of Comments --
12 --  Procedure name    : process_osp_order
13 --  Type              : Public
14 --  Function          : For a given set of osp order header and lines, will validate and insert/update/delete
15 --                      the osp order information.
16 --  Pre-reqs    :
17 --  Parameters  :
18 --
19 --  Standard IN  Parameters :
20 --      p_api_version                   IN      NUMBER       Default  1.0
21 --      p_init_msg_list                 IN      VARCHAR2     Default  FND_API.G_TRUE
22 --      p_commit                        IN      VARCHAR2     Default  FND_API.G_FALSE
23 --      p_validation_level              IN      NUMBER       Default  FND_API.G_VALID_LEVEL_FULL
24 --  Standard OUT Parameters :
25 --      x_return_status                 OUT     VARCHAR2               Required
26 --      x_msg_count                     OUT     NUMBER                 Required
27 --      x_msg_data                      OUT     VARCHAR2               Required
28 --
29 --  p_module_type                       IN      VARCHAR2               Required.
30 --
31 --      This parameter indicates the front-end form interface. The default value is 'JSP'. If the value
32 --      is JSP, then this API clears out all id columns and validations are done using the values based
33 --      on which the Id's are populated.
34 --
35 --  process_osp_order Parameters:
36 --
37 --       p_x_osp_order_rec         IN OUT  AHL_OSP_ORDERS_PVT.osp_order_rec_type    Required
38 --         OSP Order Header record
39 --       p_x_osp_order_lines_tbl        IN OUT  AHL_OSP_ORDERS_PVT.osp_order_lines_tbl_type   Required
40 --         OSP Order Lines
41 --       p_org_id                  IN NUMBER
42 --         Optional Org Id Parameter for R12 MOAC Compliance.
43 --
44 --  Version :
45 --               Initial Version   1.0
46 --
47 --  End of Comments.
48 
49 PROCEDURE process_osp_order(
50     p_api_version           IN               NUMBER    := 1.0,
51     p_init_msg_list         IN               VARCHAR2  := FND_API.G_TRUE,
52     p_commit                IN               VARCHAR2  := FND_API.G_FALSE,
53     p_validation_level      IN               NUMBER    := FND_API.G_VALID_LEVEL_FULL,
54     p_module_type           IN               VARCHAR2  := NULL,
55     p_x_osp_order_rec       IN OUT  NOCOPY   AHL_OSP_ORDERS_PVT.osp_order_rec_type,
56     p_x_osp_order_lines_tbl IN OUT  NOCOPY   AHL_OSP_ORDERS_PVT.osp_order_lines_tbl_type,
57     p_org_id                IN               NUMBER    := NULL,
58     x_return_status         OUT NOCOPY       VARCHAR2,
59     x_msg_count             OUT NOCOPY       NUMBER,
60     x_msg_data              OUT NOCOPY       VARCHAR2) IS
61 
62   l_api_name       CONSTANT VARCHAR2(30) := 'process_osp_order';
63   l_api_version    CONSTANT NUMBER       := 1.0;
64   l_curr_org_id    NUMBER;
65   l_org_id NUMBER := p_org_id;
66 
67 BEGIN
68 
69   -- Standard start of API savepoint
70   SAVEPOINT process_osp_order_pub;
71 
72   -- Standard call to check for call compatibility
73   IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
74                                      G_PKG_NAME) THEN
75     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
76   END IF;
77 
78     -- Initialize message list if p_init_msg_list is set to TRUE
79   IF FND_API.To_Boolean(p_init_msg_list) THEN
80     FND_MSG_PUB.Initialize;
81   END IF;
82 
83   -- Initialize API return status to success
84   x_return_status := FND_API.G_RET_STS_SUCCESS;
85 
86   /*
87    * R12 MOAC Related Changes
88    * Made by jaramana on 9/9/05
89    * Corrected on 9/15/05
90    */
91   MO_GLOBAL.validate_orgid_pub_api(org_id => l_org_id,  -- IN OUT Parameter
92                                    status => x_return_status);
93 
94   l_curr_org_id := MO_GLOBAL.get_current_org_id();
95 
96   IF (l_curr_org_id IS NULL AND l_org_id IS NOT NULL) THEN
97     -- MO Initialization not done
98     -- Use the Org Id returned by validate_orgid_pub_api and do the initialization.
99     MO_GLOBAL.set_org_context(p_org_id_char     => TO_CHAR(p_org_id),
100                               p_sp_id_char      => null,
101                               p_appl_short_name => 'AHL');
102     -- Cannot use set_policy_context since it only sets the
103     -- current org_id, but does not populate the temp table
104   END IF;
105   /* End MOAC Related Changes */
106 
107   -- Call Private API.
108   AHL_OSP_ORDERS_PVT.process_osp_order (
109      	                      p_api_version           => 1.0,
110                               p_x_osp_order_rec       => p_x_osp_order_rec,
111                               p_x_osp_order_lines_tbl => p_x_osp_order_lines_tbl,
112                               x_return_status         => x_return_status,
113                               x_msg_count             => x_msg_count,
114                               x_msg_data              => x_msg_data );
115 
116 
117 
118   IF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
119     RAISE FND_API.G_EXC_ERROR;
120   ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
121     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
122   END IF;
123 
124   -- Standard check of p_commit
125   IF FND_API.To_Boolean(p_commit) THEN
126     COMMIT WORK;
127   END IF;
128 
129   -- Standard call to get message count and if count is 1, get message
130   FND_MSG_PUB.Count_And_Get
131     ( p_count => x_msg_count,
132       p_data  => x_msg_data,
133       p_encoded => fnd_api.g_false);
134 
135 --
136 EXCEPTION
137  WHEN FND_API.G_EXC_ERROR THEN
138    x_return_status := FND_API.G_RET_STS_ERROR;
139    Rollback to process_uf_Pub;
140    FND_MSG_PUB.count_and_get( p_count => x_msg_count,
141                               p_data  => x_msg_data,
142                               p_encoded => fnd_api.g_false);
143    --AHL_UTIL_PKG.Err_Mesg_To_Table(x_err_mesg_tbl);
144 
145 
146  WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
147    x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
148    Rollback to process_uf_Pub;
149    FND_MSG_PUB.count_and_get( p_count => x_msg_count,
150                               p_data  => x_msg_data,
151                                p_encoded => fnd_api.g_false);
152    --AHL_UTIL_PKG.Err_Mesg_To_Table(x_err_mesg_tbl);
153 
154  WHEN OTHERS THEN
155     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
156     Rollback to process_osp_order_pub;
157     --IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
158        fnd_msg_pub.add_exc_msg(p_pkg_name       => G_PKG_NAME,
159                                p_procedure_name => 'process_osp_order',
160                                p_error_text     => SQLERRM);
161     --END IF;
162     FND_MSG_PUB.count_and_get( p_count => x_msg_count,
163                                p_data  => x_msg_data,
164                                 p_encoded => fnd_api.g_false);
165     --AHL_UTIL_PKG.Err_Mesg_To_Table(x_err_mesg_tbl);
166 
167 
168 END process_osp_order;
169 
170 END AHL_OSP_ORDERS_PUB;
171 ----------------------------------------------