DBA Data[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;