[Home] [Help]
PACKAGE BODY: APPS.EGO_PUB_WS_WRAPPER
Source
1 package body EGO_PUB_WS_WRAPPER as
2 /* $Header: EGOPWRPB.pls 120.5 2011/06/10 22:14:15 trudave noship $ */
3 /*==========================================================================+
4 | Copyright (c) 1993 Oracle Corporation Belmont, California, USA |
5 | All rights reserved. |
6 +===========================================================================+
7 | |
8 | File Name : EGOWSWRPB.pls |
9 | DESCRIPTION : This file is a packaged for the PLM Web Services |
10 | Warpper Scenario. |
11 | |
12 +==========================================================================*/
13
14 -- creates parameters - Mode, Batch ID (for batch mode) and Systems for the entities scenario
15
16 PROCEDURE Create_Params_Sync(p_session_id IN NUMBER,
17 p_odi_session_id IN NUMBER,
18 p_odi_entscename IN VARCHAR2)
19 IS
20
21 l_mode VARCHAR2(10) :='BATCH';
22 l_odi_session_id NUMBER := p_odi_session_id;
23 l_odi_entscename VARCHAR2(40) := p_odi_entscename;
24 l_batch_id NUMBER;
25 l_batch_search_str VARCHAR2(1000);
26 l_system_search_str VARCHAR2(1000);
27 bat_ent_stat_rec EGO_PUB_FWK_PK.TBL_OF_BAT_ENT_OBJ_STAT_TYPE;
28 x_bat_status_out EGO_PUB_FWK_PK.TBL_OF_BAT_ENT_OBJ_RSTS_TYPE;
29
30 x_return_status VARCHAR2(1);
31 x_msg_count NUMBER;
32 x_msg_data VARCHAR2(500);
33
34 BEGIN
35
36 -- inserting ODI_SESSION_ID as config parameter
37 INSERT INTO EGO_PUB_WS_CONFIG ( session_id,
38 odi_session_id,
39 Parameter_Name,
40 Data_Type,
41 NUMERIC_value,
42 creation_date,
43 created_by,
44 web_service_name)
45 VALUES (p_session_id,
46 p_session_id,
47 'ODI_SESSION_ID',
48 1,
49 l_odi_session_id,
50 sysdate,
51 0,
52 l_odi_entscename);
53
54 --determine invocation mode for web services to publish data to Hub Systems
55 --and insert in parametes table
56
57 -- Get Entity Scenario Name
58 l_batch_search_str := EGO_PUB_WS_UTIL.Get_Batch_Search_Str(l_odi_entscename);
59
60 /*insert into EGO.tr_temp values('wrapper p_session_id :', p_session_id);
61 insert into tr_temp values('wrapper l_batch_search_str :', l_batch_search_str);
62 commit;
63 */
64 EGO_PUB_WS_UTIL.Invocation_Mode(p_session_id => p_session_id,
65 p_search_str => l_batch_search_str,
66 x_mode => l_mode,
67 x_batch_id => l_batch_id);
68
69
70 /*insert into EGO.tr_temp values('wrapper l_mode :', l_mode);
71 insert into EGO.tr_temp values('wrapper l_batch_id :', l_batch_id);
72 commit;
73 */
74 --debugging statement remove
75 /*INSERT INTO tr_temp (Session_id, message)
76 values (p_session_id, 'invokation mode:' || l_mode);*/
77
78
79 --inserting invocation mode as config parameter
80 INSERT INTO EGO_PUB_WS_CONFIG ( session_id,
81 odi_session_id,
82 Parameter_Name,
83 Data_Type,
84 Char_value,
85 creation_date,
86 created_by,
87 web_service_name)
88 VALUES (p_session_id,
89 p_session_id,
90 'MODE',
91 2,
92 l_mode,
93 sysdate,
94 0,
95 l_odi_entscename);
96
97 IF l_mode = 'BATCH' THEN
98 --inserting batch id as config parameter
99 INSERT INTO EGO_PUB_WS_CONFIG ( session_id,
100 odi_session_id,
101 Parameter_Name,
102 Data_Type,
103 Numeric_value,
104 creation_date,
105 created_by,
106 web_service_name)
107 VALUES (p_session_id,
108 p_session_id,
109 'BATCH_ID',
110 1,
111 l_batch_id,
112 sysdate,
113 0,
114 l_odi_entscename);
115
116
117
118 -- once the web service call happens, for the sync entity,
119 -- for all input entities of the batch, and batch systems the process status would be - In Process
120 -- call to ego_pub_fwk_pk - update_pub_status - api in batch mode equal to zero
121 -- which will update status for all entities for all systems of the batch
122
123 bat_ent_stat_rec(1).batch_id := l_batch_id;
124 bat_ent_stat_rec(1).pk1_value := NULL;
125 bat_ent_stat_rec(1).pk2_value := NULL;
126 bat_ent_stat_rec(1).pk3_value := NULL;
127 bat_ent_stat_rec(1).pk4_value := NULL;
128 bat_ent_stat_rec(1).pk5_value := NULL;
129 bat_ent_stat_rec(1).system_code := NULL;
130 bat_ent_stat_rec(1).status := 'I';
131 bat_ent_stat_rec(1).message := NULL;
132 EGO_PUB_FWK_PK.Update_Pub_Status(l_batch_id, 0, bat_ent_stat_rec,x_bat_status_out,x_return_status,x_msg_count,x_msg_data);
133
134 END IF;
135
136 l_system_search_str := EGO_PUB_WS_UTIL.Get_System_Search_Str(l_odi_entscename);
137
138 --DBMS_OUTPUT.PUT_LINE('Before Config_Systems');
139 --DBMS_OUTPUT.PUT_LINE(p_session_id);
140 --DBMS_OUTPUT.PUT_LINE(l_system_search_str);
141 --DBMS_OUTPUT.PUT_LINE(l_odi_entscename);
142 --DBMS_OUTPUT.PUT_LINE(l_mode);
143 --DBMS_OUTPUT.PUT_LINE('Done - calling config_systems');
144
145 EGO_PUB_WS_UTIL.Config_Systems( p_session_id,
146 l_system_search_str,
147 l_odi_entscename);
148
149 END Create_Params_Sync;
150
151 PROCEDURE Update_Batch_System_Status(p_session_id IN NUMBER,
152 p_system_code IN VARCHAR2)
153 IS
154
155 l_mode VARCHAR2(10) := NULL;
156 l_batch_id NUMBER;
157 l_message VARCHAR2(2000) := NULL;
158
159 bat_ent_stat_rec EGO_PUB_FWK_PK.TBL_OF_BAT_ENT_OBJ_STAT_TYPE;
160
161 x_bat_status_out EGO_PUB_FWK_PK.TBL_OF_BAT_ENT_OBJ_RSTS_TYPE;
162 x_return_status VARCHAR2(1) := NULL;
163 x_msg_count NUMBER;
164 x_msg_data VARCHAR2(500) := NULL;
165
166 BEGIN
167 -- when ODI Sync Service is invoked for only one target system
168 -- and the user provided system code does not exist in ODI (context code)
169 -- for all input entities of the batch, and the only selected, batch system,
170 -- the process status would be - Failed with relevant error message.
171
172 -- call to ego_pub_fwk_pk - update_pub_status - api in batch mode equal to one
173 -- which will update status for all entities for the provided systems of the batch
174 BEGIN
175 SELECT CHAR_VALUE
176 INTO l_mode
177 FROM EGO_PUB_WS_CONFIG
178 WHERE SESSION_ID = p_session_id
179 AND PARAMETER_NAME = 'MODE';
180 EXCEPTION
181 WHEN NO_DATA_FOUND THEN
182 NULL;
183 WHEN OTHERS THEN
184 NULL;
185 END;
186
187 BEGIN
188 SELECT NUMERIC_VALUE
189 INTO l_batch_id
190 FROM EGO_PUB_WS_CONFIG
191 WHERE SESSION_ID = p_session_id
192 AND PARAMETER_NAME = 'BATCH_ID';
193 EXCEPTION
194 WHEN NO_DATA_FOUND THEN
195 NULL;
196 WHEN OTHERS THEN
197 NULL;
198 END;
199
200 IF l_mode = 'BATCH' THEN
201
202 FND_MESSAGE.SET_NAME('EGO', 'EGO_SYS_CODE_NO_CONTEXT');
203 l_message := SUBSTR(FND_MESSAGE.Get, 1, 2000);
204
205 bat_ent_stat_rec(1).batch_id := l_batch_id;
206 bat_ent_stat_rec(1).pk1_value := NULL;
207 bat_ent_stat_rec(1).pk2_value := NULL;
208 bat_ent_stat_rec(1).pk3_value := NULL;
209 bat_ent_stat_rec(1).pk4_value := NULL;
210 bat_ent_stat_rec(1).pk5_value := NULL;
211 bat_ent_stat_rec(1).system_code := p_system_code;
212 bat_ent_stat_rec(1).status := 'F';
213 bat_ent_stat_rec(1).message := l_message;
214 EGO_PUB_FWK_PK.Update_Pub_Status(l_batch_id, 1, bat_ent_stat_rec,x_bat_status_out,x_return_status,x_msg_count,x_msg_data);
215 END IF;
216
217 END Update_Batch_System_Status;
218
219 END EGO_PUB_WS_WRAPPER;