1: PACKAGE BODY AS_GAR_PROPOSALS_PUB AS
2: /* $Header: asxgrppb.pls 120.11 2006/02/02 21:30 amagupta noship $ */
3: ---------------------------------------------------------------------------
4: -- Start of Comments
5: ---------------------------------------------------------------------------
2: /* $Header: asxgrppb.pls 120.11 2006/02/02 21:30 amagupta noship $ */
3: ---------------------------------------------------------------------------
4: -- Start of Comments
5: ---------------------------------------------------------------------------
6: -- PACKAGE NAME: AS_GAR_PROPOSALS_PUB
7: -- ---------------------------------------------------------------------
8: -- PURPOSE
9: -- --------
10: -- This package contains procedures to accomplish each of the following
42: p_trace_mode IN VARCHAR2,
43: p_worker_id IN VARCHAR2 ,
44: P_percent_analyzed IN NUMBER )
45: IS
46: l_terr_globals AS_GAR.TERR_GLOBALS;
47: l_msg_count NUMBER;
48: l_msg_data VARCHAR2(2000);
49: l_errbuf VARCHAR2(4000);
50: l_retcode VARCHAR2(255);
53: l_target_type VARCHAR2(15); -- ? not sure we need this
54: l_status BOOLEAN;
55: l_proc VARCHAR2(30):= 'GAR_WRAPPER::';
56: BEGIN
57: AS_GAR.g_debug_flag := p_debug_mode;
58: IF p_trace_mode = 'Y' THEN AS_GAR.SETTRACE; END IF;
59: AS_GAR.LOG(G_ENTITY || l_proc || AS_GAR.G_START);
60:
61: IF p_run_mode = AS_GAR.G_TOTAL_MODE THEN
54: l_status BOOLEAN;
55: l_proc VARCHAR2(30):= 'GAR_WRAPPER::';
56: BEGIN
57: AS_GAR.g_debug_flag := p_debug_mode;
58: IF p_trace_mode = 'Y' THEN AS_GAR.SETTRACE; END IF;
59: AS_GAR.LOG(G_ENTITY || l_proc || AS_GAR.G_START);
60:
61: IF p_run_mode = AS_GAR.G_TOTAL_MODE THEN
62: l_target_type := 'TOTAL';
55: l_proc VARCHAR2(30):= 'GAR_WRAPPER::';
56: BEGIN
57: AS_GAR.g_debug_flag := p_debug_mode;
58: IF p_trace_mode = 'Y' THEN AS_GAR.SETTRACE; END IF;
59: AS_GAR.LOG(G_ENTITY || l_proc || AS_GAR.G_START);
60:
61: IF p_run_mode = AS_GAR.G_TOTAL_MODE THEN
62: l_target_type := 'TOTAL';
63: ELSIF p_run_mode = AS_GAR.G_NEW_MODE THEN
57: AS_GAR.g_debug_flag := p_debug_mode;
58: IF p_trace_mode = 'Y' THEN AS_GAR.SETTRACE; END IF;
59: AS_GAR.LOG(G_ENTITY || l_proc || AS_GAR.G_START);
60:
61: IF p_run_mode = AS_GAR.G_TOTAL_MODE THEN
62: l_target_type := 'TOTAL';
63: ELSIF p_run_mode = AS_GAR.G_NEW_MODE THEN
64: l_target_type := 'INCREMENTAL';
65: END If;
59: AS_GAR.LOG(G_ENTITY || l_proc || AS_GAR.G_START);
60:
61: IF p_run_mode = AS_GAR.G_TOTAL_MODE THEN
62: l_target_type := 'TOTAL';
63: ELSIF p_run_mode = AS_GAR.G_NEW_MODE THEN
64: l_target_type := 'INCREMENTAL';
65: END If;
66:
67: -- Set the Global variables
64: l_target_type := 'INCREMENTAL';
65: END If;
66:
67: -- Set the Global variables
68: AS_GAR.INIT(
69: p_run_mode,
70: p_worker_id,
71: l_terr_globals);
72:
70: p_worker_id,
71: l_terr_globals);
72:
73: /* This inserts into proposal winners */
74: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CW || AS_GAR.G_START);
75: JTY_ASSIGN_BULK_PUB.GET_WINNERS
76: ( p_api_version_number => 1.0,
77: p_init_msg_list => FND_API.G_TRUE,
78: p_source_id => -1001,
85: x_msg_count => l_msg_count,
86: x_msg_data => l_msg_data,
87: ERRBUF => l_errbuf,
88: RETCODE => l_retcode);
89: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CW || AS_GAR.G_END);
90: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CW || AS_GAR.G_RETURN_STATUS || l_return_status);
91:
92: If l_return_status <> FND_API.G_RET_STS_SUCCESS Then
93: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CW, l_errbuf, l_retcode);
86: x_msg_data => l_msg_data,
87: ERRBUF => l_errbuf,
88: RETCODE => l_retcode);
89: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CW || AS_GAR.G_END);
90: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CW || AS_GAR.G_RETURN_STATUS || l_return_status);
91:
92: If l_return_status <> FND_API.G_RET_STS_SUCCESS Then
93: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CW, l_errbuf, l_retcode);
94: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
89: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CW || AS_GAR.G_END);
90: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CW || AS_GAR.G_RETURN_STATUS || l_return_status);
91:
92: If l_return_status <> FND_API.G_RET_STS_SUCCESS Then
93: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CW, l_errbuf, l_retcode);
94: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
95: End If;
96:
97: COMMIT;
96:
97: COMMIT;
98:
99: -- Explode GROUPS if any inside winners
100: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CEX_GROUPS || AS_GAR.G_START);
101: AS_GAR_PROPOSALS_PUB.EXPLODE_GROUPS_PROPOSALS(
102: x_errbuf => l_errbuf,
103: x_retcode => l_retcode,
104: p_terr_globals => l_terr_globals,
97: COMMIT;
98:
99: -- Explode GROUPS if any inside winners
100: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CEX_GROUPS || AS_GAR.G_START);
101: AS_GAR_PROPOSALS_PUB.EXPLODE_GROUPS_PROPOSALS(
102: x_errbuf => l_errbuf,
103: x_retcode => l_retcode,
104: p_terr_globals => l_terr_globals,
105: x_return_status => l_return_status);
103: x_retcode => l_retcode,
104: p_terr_globals => l_terr_globals,
105: x_return_status => l_return_status);
106:
107: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CEX_GROUPS || AS_GAR.G_END);
108: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CEX_GROUPS || AS_GAR.G_RETURN_STATUS || l_return_status);
109:
110: If l_return_status <> FND_API.G_RET_STS_SUCCESS Then
111: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CEX_GROUPS, l_errbuf, l_retcode);
104: p_terr_globals => l_terr_globals,
105: x_return_status => l_return_status);
106:
107: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CEX_GROUPS || AS_GAR.G_END);
108: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CEX_GROUPS || AS_GAR.G_RETURN_STATUS || l_return_status);
109:
110: If l_return_status <> FND_API.G_RET_STS_SUCCESS Then
111: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CEX_GROUPS, l_errbuf, l_retcode);
112: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
107: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CEX_GROUPS || AS_GAR.G_END);
108: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CEX_GROUPS || AS_GAR.G_RETURN_STATUS || l_return_status);
109:
110: If l_return_status <> FND_API.G_RET_STS_SUCCESS Then
111: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CEX_GROUPS, l_errbuf, l_retcode);
112: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
113: End If;
114:
115: COMMIT;
114:
115: COMMIT;
116:
117: -- Explode TEAMS if any inside winners
118: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CEX_TEAMS || AS_GAR.G_START);
119: AS_GAR_PROPOSALS_PUB.EXPLODE_TEAMS_PROPOSALS(
120: x_errbuf => l_errbuf,
121: x_retcode => l_retcode,
122: p_terr_globals => l_terr_globals,
115: COMMIT;
116:
117: -- Explode TEAMS if any inside winners
118: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CEX_TEAMS || AS_GAR.G_START);
119: AS_GAR_PROPOSALS_PUB.EXPLODE_TEAMS_PROPOSALS(
120: x_errbuf => l_errbuf,
121: x_retcode => l_retcode,
122: p_terr_globals => l_terr_globals,
123: x_return_status => l_return_status);
121: x_retcode => l_retcode,
122: p_terr_globals => l_terr_globals,
123: x_return_status => l_return_status);
124:
125: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CEX_TEAMS || AS_GAR.G_END);
126: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CEX_TEAMS || AS_GAR.G_RETURN_STATUS || l_return_status);
127:
128: If l_return_status <> FND_API.G_RET_STS_SUCCESS Then
129: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CEX_TEAMS, l_errbuf, l_retcode);
122: p_terr_globals => l_terr_globals,
123: x_return_status => l_return_status);
124:
125: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CEX_TEAMS || AS_GAR.G_END);
126: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CEX_TEAMS || AS_GAR.G_RETURN_STATUS || l_return_status);
127:
128: If l_return_status <> FND_API.G_RET_STS_SUCCESS Then
129: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CEX_TEAMS, l_errbuf, l_retcode);
130: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
125: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CEX_TEAMS || AS_GAR.G_END);
126: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CEX_TEAMS || AS_GAR.G_RETURN_STATUS || l_return_status);
127:
128: If l_return_status <> FND_API.G_RET_STS_SUCCESS Then
129: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CEX_TEAMS, l_errbuf, l_retcode);
130: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
131: End If;
132: COMMIT;
133: -- Set team leader for Accounts
130: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
131: End If;
132: COMMIT;
133: -- Set team leader for Accounts
134: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_STLEAD || AS_GAR.G_START);
135: AS_GAR_PROPOSALS_PUB.SET_TEAM_LEAD_PROPOSALS(
136: x_errbuf => l_errbuf,
137: x_retcode => l_retcode,
138: p_terr_globals => l_terr_globals,
131: End If;
132: COMMIT;
133: -- Set team leader for Accounts
134: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_STLEAD || AS_GAR.G_START);
135: AS_GAR_PROPOSALS_PUB.SET_TEAM_LEAD_PROPOSALS(
136: x_errbuf => l_errbuf,
137: x_retcode => l_retcode,
138: p_terr_globals => l_terr_globals,
139: x_return_status => l_return_status);
137: x_retcode => l_retcode,
138: p_terr_globals => l_terr_globals,
139: x_return_status => l_return_status);
140:
141: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_STLEAD || AS_GAR.G_END);
142: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_STLEAD || AS_GAR.G_RETURN_STATUS || l_return_status);
143:
144: If l_return_status <> FND_API.G_RET_STS_SUCCESS Then
145: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_STLEAD, l_errbuf, l_retcode);
138: p_terr_globals => l_terr_globals,
139: x_return_status => l_return_status);
140:
141: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_STLEAD || AS_GAR.G_END);
142: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_STLEAD || AS_GAR.G_RETURN_STATUS || l_return_status);
143:
144: If l_return_status <> FND_API.G_RET_STS_SUCCESS Then
145: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_STLEAD, l_errbuf, l_retcode);
146: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
141: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_STLEAD || AS_GAR.G_END);
142: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_STLEAD || AS_GAR.G_RETURN_STATUS || l_return_status);
143:
144: If l_return_status <> FND_API.G_RET_STS_SUCCESS Then
145: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_STLEAD, l_errbuf, l_retcode);
146: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
147: End If;
148:
149: -- Insert into proposal Accesses from Winners
146: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
147: End If;
148:
149: -- Insert into proposal Accesses from Winners
150: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_INSACC || AS_GAR.G_START);
151: AS_GAR_PROPOSALS_PUB.INSERT_ACCESSES_PROPOSALS(
152: x_errbuf => l_errbuf,
153: x_retcode => l_retcode,
154: p_terr_globals => l_terr_globals,
147: End If;
148:
149: -- Insert into proposal Accesses from Winners
150: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_INSACC || AS_GAR.G_START);
151: AS_GAR_PROPOSALS_PUB.INSERT_ACCESSES_PROPOSALS(
152: x_errbuf => l_errbuf,
153: x_retcode => l_retcode,
154: p_terr_globals => l_terr_globals,
155: x_return_status => l_return_status);
153: x_retcode => l_retcode,
154: p_terr_globals => l_terr_globals,
155: x_return_status => l_return_status);
156:
157: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_INSACC || AS_GAR.G_END);
158: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_INSACC || AS_GAR.G_RETURN_STATUS || l_return_status);
159:
160: If l_return_status <> FND_API.G_RET_STS_SUCCESS Then
161: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_INSACC, l_errbuf, l_retcode);
154: p_terr_globals => l_terr_globals,
155: x_return_status => l_return_status);
156:
157: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_INSACC || AS_GAR.G_END);
158: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_INSACC || AS_GAR.G_RETURN_STATUS || l_return_status);
159:
160: If l_return_status <> FND_API.G_RET_STS_SUCCESS Then
161: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_INSACC, l_errbuf, l_retcode);
162: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
157: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_INSACC || AS_GAR.G_END);
158: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_INSACC || AS_GAR.G_RETURN_STATUS || l_return_status);
159:
160: If l_return_status <> FND_API.G_RET_STS_SUCCESS Then
161: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_INSACC, l_errbuf, l_retcode);
162: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
163: End If;
164:
165: -- Insert into territory Accesses
162: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
163: End If;
164:
165: -- Insert into territory Accesses
166: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_INSTERRACC || AS_GAR.G_START);
167: AS_GAR_PROPOSALS_PUB.INSERT_TERR_ACCESSES_PROPOSALS(
168: x_errbuf => l_errbuf,
169: x_retcode => l_retcode,
170: p_terr_globals => l_terr_globals,
163: End If;
164:
165: -- Insert into territory Accesses
166: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_INSTERRACC || AS_GAR.G_START);
167: AS_GAR_PROPOSALS_PUB.INSERT_TERR_ACCESSES_PROPOSALS(
168: x_errbuf => l_errbuf,
169: x_retcode => l_retcode,
170: p_terr_globals => l_terr_globals,
171: x_return_status => l_return_status);
169: x_retcode => l_retcode,
170: p_terr_globals => l_terr_globals,
171: x_return_status => l_return_status);
172:
173: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_INSTERRACC || AS_GAR.G_END);
174: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_INSTERRACC || AS_GAR.G_RETURN_STATUS || l_return_status);
175:
176: If l_return_status <> FND_API.G_RET_STS_SUCCESS Then
177: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_INSTERRACC, l_errbuf, l_retcode);
170: p_terr_globals => l_terr_globals,
171: x_return_status => l_return_status);
172:
173: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_INSTERRACC || AS_GAR.G_END);
174: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_INSTERRACC || AS_GAR.G_RETURN_STATUS || l_return_status);
175:
176: If l_return_status <> FND_API.G_RET_STS_SUCCESS Then
177: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_INSTERRACC, l_errbuf, l_retcode);
178: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
173: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_INSTERRACC || AS_GAR.G_END);
174: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_INSTERRACC || AS_GAR.G_RETURN_STATUS || l_return_status);
175:
176: If l_return_status <> FND_API.G_RET_STS_SUCCESS Then
177: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_INSTERRACC, l_errbuf, l_retcode);
178: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
179: End If;
180:
181:
179: End If;
180:
181:
182: -- Remove (soft delete) records in access table that are not qualified
183: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CC || AS_GAR.G_START);
184: AS_GAR_PROPOSALS_PUB.Perform_Proposal_Cleanup(
185: x_errbuf => l_errbuf,
186: x_retcode => l_retcode,
187: p_terr_globals => l_terr_globals,
180:
181:
182: -- Remove (soft delete) records in access table that are not qualified
183: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CC || AS_GAR.G_START);
184: AS_GAR_PROPOSALS_PUB.Perform_Proposal_Cleanup(
185: x_errbuf => l_errbuf,
186: x_retcode => l_retcode,
187: p_terr_globals => l_terr_globals,
188: x_return_status => l_return_status);
186: x_retcode => l_retcode,
187: p_terr_globals => l_terr_globals,
188: x_return_status => l_return_status);
189:
190: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CC || AS_GAR.G_END);
191: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CC || AS_GAR.G_RETURN_STATUS || l_return_status);
192:
193: If l_return_status <> FND_API.G_RET_STS_SUCCESS Then
194: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CC, l_errbuf, l_retcode);
187: p_terr_globals => l_terr_globals,
188: x_return_status => l_return_status);
189:
190: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CC || AS_GAR.G_END);
191: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CC || AS_GAR.G_RETURN_STATUS || l_return_status);
192:
193: If l_return_status <> FND_API.G_RET_STS_SUCCESS Then
194: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CC, l_errbuf, l_retcode);
195: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
190: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CC || AS_GAR.G_END);
191: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CC || AS_GAR.G_RETURN_STATUS || l_return_status);
192:
193: If l_return_status <> FND_API.G_RET_STS_SUCCESS Then
194: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_CALL_TO || AS_GAR.G_CC, l_errbuf, l_retcode);
195: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
196: End If;
197:
198: -- BES enhancement
196: End If;
197:
198: -- BES enhancement
199:
200: l_sub_exist := AS_GAR.exist_subscription(G_BUSINESS_EVENT);
201: IF l_sub_exist = 'Y' THEN
202: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CBE_EXISTS);
203: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CBE_RAISE);
204: AS_GAR.Raise_BE(l_terr_globals);
198: -- BES enhancement
199:
200: l_sub_exist := AS_GAR.exist_subscription(G_BUSINESS_EVENT);
201: IF l_sub_exist = 'Y' THEN
202: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CBE_EXISTS);
203: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CBE_RAISE);
204: AS_GAR.Raise_BE(l_terr_globals);
205: END If;
206:
199:
200: l_sub_exist := AS_GAR.exist_subscription(G_BUSINESS_EVENT);
201: IF l_sub_exist = 'Y' THEN
202: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CBE_EXISTS);
203: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CBE_RAISE);
204: AS_GAR.Raise_BE(l_terr_globals);
205: END If;
206:
207: AS_GAR.LOG(G_ENTITY || l_proc || AS_GAR.G_END);
200: l_sub_exist := AS_GAR.exist_subscription(G_BUSINESS_EVENT);
201: IF l_sub_exist = 'Y' THEN
202: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CBE_EXISTS);
203: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CBE_RAISE);
204: AS_GAR.Raise_BE(l_terr_globals);
205: END If;
206:
207: AS_GAR.LOG(G_ENTITY || l_proc || AS_GAR.G_END);
208: EXCEPTION
203: AS_GAR.LOG(G_ENTITY || AS_GAR.G_CBE_RAISE);
204: AS_GAR.Raise_BE(l_terr_globals);
205: END If;
206:
207: AS_GAR.LOG(G_ENTITY || l_proc || AS_GAR.G_END);
208: EXCEPTION
209: WHEN OTHERS THEN
210: AS_GAR.LOG_EXCEPTION(G_ENTITY, SQLERRM, TO_CHAR(SQLCODE));
211: l_status := FND_CONCURRENT.SET_COMPLETION_STATUS('ERROR', SQLERRM);
206:
207: AS_GAR.LOG(G_ENTITY || l_proc || AS_GAR.G_END);
208: EXCEPTION
209: WHEN OTHERS THEN
210: AS_GAR.LOG_EXCEPTION(G_ENTITY, SQLERRM, TO_CHAR(SQLCODE));
211: l_status := FND_CONCURRENT.SET_COMPLETION_STATUS('ERROR', SQLERRM);
212: END GAR_WRAPPER;
213:
214: /************************** End GAR Wrapper *****************************/
216: /************************** Start Explode Teams PROPOSALS ******************/
217: PROCEDURE EXPLODE_TEAMS_PROPOSALS(
218: x_errbuf OUT NOCOPY VARCHAR2,
219: x_retcode OUT NOCOPY VARCHAR2,
220: p_terr_globals IN AS_GAR.TERR_GLOBALS,
221: x_return_status OUT NOCOPY VARCHAR2)
222: IS
223:
224: /*-------------------------------------------------------------------------+
263: AND rules.source_id = -1001
264: AND rsc.terr_rsc_id = acc.terr_rsc_id;
265:
266: BEGIN
267: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CEX_TEAMS || AS_GAR.G_START);
268: x_return_status := FND_API.G_RET_STS_SUCCESS;
269: l_request_id := p_terr_globals.request_id;
270: l_worker_id := p_terr_globals.worker_id;
271: l_resource_type := 'RS_TEAM';
279: FETCH c_get_res_type_count INTO l_res_type_count;
280: CLOSE c_get_res_type_count;
281: END IF;
282:
283: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CEX_TEAMS || AS_GAR.G_N_ROWS_PROCESSED || l_res_type_count);
284: IF l_res_type_count > 0 THEN
285: /* Get resources within a resource team */
286: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CEX_TEAMS || AS_GAR.G_INS_WINNERS || AS_GAR.G_START);
287: /** Note
282:
283: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CEX_TEAMS || AS_GAR.G_N_ROWS_PROCESSED || l_res_type_count);
284: IF l_res_type_count > 0 THEN
285: /* Get resources within a resource team */
286: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CEX_TEAMS || AS_GAR.G_INS_WINNERS || AS_GAR.G_START);
287: /** Note
288: Hard coding RS_EMPLOYEE INSTEAD OF resource_category IN following SQL
289: because JTA returns RS_EMPLOYEE AND NOT EMPLOYEE
290: **/
468: AND rt1.trans_object_id = t.trans_object_id
469: AND NVL(rt1.trans_detail_object_id,-1) =
470: NVL(t.trans_detail_object_id,-1));
471:
472: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CEX_TEAMS || AS_GAR.G_INS_WINNERS || AS_GAR.G_N_ROWS_PROCESSED || SQL%ROWCOUNT);
473: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CEX_TEAMS || AS_GAR.G_INS_WINNERS || AS_GAR.G_END);
474:
475:
476: COMMIT;
469: AND NVL(rt1.trans_detail_object_id,-1) =
470: NVL(t.trans_detail_object_id,-1));
471:
472: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CEX_TEAMS || AS_GAR.G_INS_WINNERS || AS_GAR.G_N_ROWS_PROCESSED || SQL%ROWCOUNT);
473: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CEX_TEAMS || AS_GAR.G_INS_WINNERS || AS_GAR.G_END);
474:
475:
476: COMMIT;
477:
477:
478: END IF; /* if l_res_type_count > 0 */
479: EXCEPTION
480: WHEN others THEN
481: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CEX_TEAMS, SQLERRM, TO_CHAR(SQLCODE));
482: x_errbuf := SQLERRM;
483: x_retcode := SQLCODE;
484: x_return_status := FND_API.G_RET_STS_ERROR;
485: RAISE;
489: /************************** Start Explode Groups PROPOSALS ******************/
490: PROCEDURE EXPLODE_GROUPS_PROPOSALS(
491: x_errbuf OUT NOCOPY VARCHAR2,
492: x_retcode OUT NOCOPY VARCHAR2,
493: p_terr_globals IN AS_GAR.TERR_GLOBALS,
494: x_return_status OUT NOCOPY VARCHAR2)
495: IS
496: -------------RS_GROUP---------
497: /*-------------------------------------------------------------------------+
545: FETCH c_get_res_type_count INTO l_res_type_count;
546: CLOSE c_get_res_type_count;
547: END IF;
548:
549: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CEX_GROUPS || AS_GAR.G_N_ROWS_PROCESSED || l_res_type_count);
550: IF l_res_type_count > 0 THEN
551: /* Get resources within a resource group */
552: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CEX_GROUPS || AS_GAR.G_INS_WINNERS || AS_GAR.G_START);
553: /** Note
548:
549: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CEX_GROUPS || AS_GAR.G_N_ROWS_PROCESSED || l_res_type_count);
550: IF l_res_type_count > 0 THEN
551: /* Get resources within a resource group */
552: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CEX_GROUPS || AS_GAR.G_INS_WINNERS || AS_GAR.G_START);
553: /** Note
554: Hard coding RS_EMPLOYEE INSTEAD OF resource_category IN following SQL
555: because JTA returns RS_EMPLOYEE AND NOT EMPLOYEE
556: **/
650: AND rt1.worker_id = t.worker_id
651: AND rt1.trans_object_id = t.trans_object_id
652: AND NVL(rt1.trans_detail_object_id,-1) = NVL(t.trans_detail_object_id,-1));
653:
654: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CEX_GROUPS || AS_GAR.G_INS_WINNERS || AS_GAR.G_N_ROWS_PROCESSED || SQL%ROWCOUNT);
655: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CEX_GROUPS || AS_GAR.G_INS_WINNERS || AS_GAR.G_END);
656:
657: COMMIT;
658: END IF; /* if l_res_type_count > 0 */
651: AND rt1.trans_object_id = t.trans_object_id
652: AND NVL(rt1.trans_detail_object_id,-1) = NVL(t.trans_detail_object_id,-1));
653:
654: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CEX_GROUPS || AS_GAR.G_INS_WINNERS || AS_GAR.G_N_ROWS_PROCESSED || SQL%ROWCOUNT);
655: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CEX_GROUPS || AS_GAR.G_INS_WINNERS || AS_GAR.G_END);
656:
657: COMMIT;
658: END IF; /* if l_res_type_count > 0 */
659:
658: END IF; /* if l_res_type_count > 0 */
659:
660: EXCEPTION
661: WHEN others THEN
662: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CEX_GROUPS, SQLERRM, TO_CHAR(SQLCODE));
663: x_errbuf := SQLERRM;
664: x_retcode := SQLCODE;
665: x_return_status := FND_API.G_RET_STS_ERROR;
666: RAISE;
687:
688: PROCEDURE SET_TEAM_LEAD_PROPOSALS(
689: x_errbuf OUT NOCOPY VARCHAR2,
690: x_retcode OUT NOCOPY VARCHAR2,
691: p_terr_globals IN AS_GAR.TERR_GLOBALS,
692: x_return_status OUT NOCOPY VARCHAR2)
693: IS
694:
695: TYPE num_list is TABLE of NUMBER INDEX BY BINARY_INTEGER;
729: WIN.full_access_flag;
730:
731:
732: BEGIN
733: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_STLEAD || AS_GAR.G_START);
734: x_return_status := FND_API.G_RET_STS_SUCCESS;
735: l_worker_id:=p_terr_globals.worker_id;
736: l_var :=p_terr_globals.bulk_size;
737: l_MAX_fetches := p_terr_globals.cursor_limit;
742: l_resource_id.DELETE;
743: l_resource_group_id.DELETE;
744: l_faf.DELETE;
745: l_loop_count := l_loop_count + 1;
746: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_STLEAD || 'LOOPCOUNT :- ' || l_loop_count);
747:
748: --------------------------------
749: OPEN team_leader(l_worker_id);
750: FETCH team_leader BULK COLLECT INTO
760:
761: IF l_proposal_id.COUNT < l_MAX_fetches THEN
762: l_limit_flag := TRUE;
763: END IF;
764: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_STLEAD || AS_GAR.G_BULK_UPD || AS_GAR.G_START);
765:
766: IF l_proposal_id.COUNT > 0 THEN
767: l_flag := TRUE;
768: l_first := l_proposal_id.FIRST;
784: AND ACC.resource_id = l_resource_id(i)
785: AND NVL(ACC.resource_group_id,-777) = NVL(l_resource_group_id(i),-777);
786: COMMIT;
787: l_attempts := 3;
788: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS ||AS_GAR.G_STLEAD || AS_GAR.G_BULK_UPD || AS_GAR.G_N_ROWS_PROCESSED || l_first || '-'|| l_last);
789: EXCEPTION
790: WHEN DEADLOCK_DETECTED THEN
791: BEGIN
792: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_STLEAD || AS_GAR.G_DEADLOCK ||l_attempts);
788: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS ||AS_GAR.G_STLEAD || AS_GAR.G_BULK_UPD || AS_GAR.G_N_ROWS_PROCESSED || l_first || '-'|| l_last);
789: EXCEPTION
790: WHEN DEADLOCK_DETECTED THEN
791: BEGIN
792: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_STLEAD || AS_GAR.G_DEADLOCK ||l_attempts);
793: ROLLBACK;
794: l_attempts := l_attempts +1;
795: IF l_attempts = 3 THEN
796: FOR i IN l_first .. l_last
806: AND ACC.resource_id = l_resource_id(i)
807: AND NVL(ACC.resource_group_id,-777) = NVL(l_resource_group_id(i),-777);
808: EXCEPTION
809: WHEN OTHERS THEN
810: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_STLEAD || AS_GAR.G_IND_UPD || AS_GAR.G_GENERAL_EXCEPTION);
811: AS_GAR.LOG('PROPOSAL_ID/RESOURCE_id/SALESGROUP_ID/ORG_ID - ' || l_proposal_id(i) || '/' || l_resource_id(i) || '/' || l_resource_group_id(i));
812: END;
813: END LOOP; -- for each record individually
814: COMMIT;
807: AND NVL(ACC.resource_group_id,-777) = NVL(l_resource_group_id(i),-777);
808: EXCEPTION
809: WHEN OTHERS THEN
810: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_STLEAD || AS_GAR.G_IND_UPD || AS_GAR.G_GENERAL_EXCEPTION);
811: AS_GAR.LOG('PROPOSAL_ID/RESOURCE_id/SALESGROUP_ID/ORG_ID - ' || l_proposal_id(i) || '/' || l_resource_id(i) || '/' || l_resource_group_id(i));
812: END;
813: END LOOP; -- for each record individually
814: COMMIT;
815: END IF;
814: COMMIT;
815: END IF;
816: END; -- end of deadlock exception
817: WHEN OTHERS THEN
818: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_STLEAD || AS_GAR.G_BULK_UPD, SQLERRM, TO_CHAR(SQLCODE));
819: x_errbuf := SQLERRM;
820: x_retcode := SQLCODE;
821: x_return_status := FND_API.G_RET_STS_ERROR;
822: END;
828: l_flag := FALSE;
829: END IF;
830: END LOOP; -- loop for more records within the bulk_size
831: END IF; --l_proposal_id.count > 0
832: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_STLEAD || AS_GAR.G_END);
833: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_STLEAD || AS_GAR.G_N_ROWS_PROCESSED || l_proposal_id.COUNT);
834: END LOOP; -- loop for more bulk_size fetches
835: l_proposal_id.DELETE;
836: l_resource_id.DELETE;
829: END IF;
830: END LOOP; -- loop for more records within the bulk_size
831: END IF; --l_proposal_id.count > 0
832: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_STLEAD || AS_GAR.G_END);
833: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_STLEAD || AS_GAR.G_N_ROWS_PROCESSED || l_proposal_id.COUNT);
834: END LOOP; -- loop for more bulk_size fetches
835: l_proposal_id.DELETE;
836: l_resource_id.DELETE;
837: l_resource_group_id.DELETE;
837: l_resource_group_id.DELETE;
838: l_faf.DELETE;
839: EXCEPTION
840: WHEN OTHERS THEN
841: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_STLEAD, SQLERRM, TO_CHAR(SQLCODE));
842: x_errbuf := SQLERRM;
843: x_retcode := SQLCODE;
844: x_return_status := FND_API.G_RET_STS_ERROR;
845: END SET_TEAM_LEAD_PROPOSALS;
850:
851: PROCEDURE INSERT_ACCESSES_PROPOSALS(
852: x_errbuf OUT NOCOPY VARCHAR2,
853: x_retcode OUT NOCOPY VARCHAR2,
854: p_terr_globals IN AS_GAR.TERR_GLOBALS,
855: x_return_status OUT NOCOPY VARCHAR2)
856: IS
857: TYPE num_id_list is TABLE of NUMBER INDEX BY BINARY_INTEGER;
858: TYPE faf_list is TABLE of VARCHAR2(20) INDEX BY BINARY_INTEGER;
901: | will always be null.
902: | Try bulk inserting into accesses. If this fails, insert records one by one.
903: |
904: +-------------------------------------------------------------------------*/
905: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSACC || AS_GAR.G_START);
906: x_return_status := FND_API.G_RET_STS_SUCCESS;
907: l_worker_id:=p_terr_globals.worker_id;
908: l_var :=p_terr_globals.bulk_size;
909:
915: l_resource_id.DELETE;
916: l_resource_group_id.DELETE;
917: l_faf.DELETE;
918: l_loop_count := l_loop_count + 1;
919: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSACC || 'LOOPCOUNT :- ' || l_loop_count);
920:
921: FETCH ins_acc2 BULK COLLECT INTO
922: l_resource_id,l_resource_group_id,l_proposal_id,l_faf
923: LIMIT l_MAX_fetches;
939: IF l_last > l_proposal_id.last THEN
940: l_last := l_proposal_id.last;
941: END IF;
942: BEGIN
943: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSACC || AS_GAR.G_BULK_INS || AS_GAR.G_N_ROWS_PROCESSED ||l_first||' to '||l_last);
944: FORALL i IN l_first .. l_last
945: INSERT INTO PRP_PROPOSAL_ACCESSES
946: (
947: proposal_access_id
977: AND AA.resource_id = l_resource_id(i)
978: AND NVL(AA.resource_group_id,-777)= NVL(l_resource_group_id(i),-777)
979: )
980: );
981: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSACC || AS_GAR.G_BULK_INS || AS_GAR.G_N_ROWS_PROCESSED || SQL%ROWCOUNT);
982: COMMIT;
983: EXCEPTION
984: WHEN DUP_VAL_ON_INDEX THEN
985: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSACC || AS_GAR.G_IND_INS || AS_GAR.G_N_ROWS_PROCESSED ||l_first||' - '||l_last);
981: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSACC || AS_GAR.G_BULK_INS || AS_GAR.G_N_ROWS_PROCESSED || SQL%ROWCOUNT);
982: COMMIT;
983: EXCEPTION
984: WHEN DUP_VAL_ON_INDEX THEN
985: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSACC || AS_GAR.G_IND_INS || AS_GAR.G_N_ROWS_PROCESSED ||l_first||' - '||l_last);
986: FOR i IN l_first .. l_last LOOP
987: BEGIN
988: INSERT INTO PRP_PROPOSAL_ACCESSES
989: (
1027: END;
1028: END LOOP; /* loop for DUP_VAL_ON_INDEX individual insert */
1029: COMMIT;
1030: WHEN OTHERS THEN
1031: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSACC || AS_GAR.G_BULK_INS, SQLERRM, TO_CHAR(SQLCODE));
1032: x_errbuf := SQLERRM;
1033: x_retcode := SQLCODE;
1034: x_return_status := FND_API.G_RET_STS_ERROR;
1035: RAISE;
1048: l_faf.DELETE;
1049: IF ins_acc2%ISOPEN THEN CLOSE ins_acc2; END IF;
1050: EXCEPTION
1051: WHEN others THEN
1052: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSACC, SQLERRM, TO_CHAR(SQLCODE));
1053: x_errbuf := SQLERRM;
1054: x_retcode := SQLCODE;
1055: x_return_status := FND_API.G_RET_STS_ERROR;
1056: IF ins_acc2%ISOPEN THEN CLOSE ins_acc2; END IF;
1063:
1064: PROCEDURE INSERT_TERR_ACCESSES_PROPOSALS(
1065: x_errbuf OUT NOCOPY VARCHAR2,
1066: x_retcode OUT NOCOPY VARCHAR2,
1067: p_terr_globals IN AS_GAR.TERR_GLOBALS,
1068: x_return_status OUT NOCOPY VARCHAR2)
1069: IS
1070: TYPE num_id_list IS TABLE of NUMBER INDEX BY BINARY_INTEGER;
1071:
1107: | Almost the same as accesses, except the insertion is into prp_territory_accesses
1108: | and there is no involvement of role.
1109: |
1110: +-------------------------------------------------------------------------*/
1111: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSTERRACC || AS_GAR.G_START);
1112: x_return_status := FND_API.G_RET_STS_SUCCESS;
1113: l_worker_id := p_terr_globals.worker_id;
1114: l_var := p_terr_globals.bulk_size;
1115: OPEN ins_tacc(l_worker_id);
1120: l_proposal_id.DELETE;
1121: l_resource_id.DELETE;
1122: l_resource_group_id.DELETE;
1123: l_terr_id.DELETE;
1124: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSTERRACC || 'LOOPCOUNT :- ' || l_loop_count);
1125: BEGIN
1126:
1127: FETCH ins_tacc BULK COLLECT INTO l_terr_id,
1128: l_proposal_id, l_resource_id, l_resource_group_id
1141: IF l_last > l_proposal_id.last THEN
1142: l_last := l_proposal_id.last;
1143: END IF;
1144: BEGIN
1145: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSTERRACC || AS_GAR.G_BULK_INS || AS_GAR.G_N_ROWS_PROCESSED ||l_first||' - '||l_last);
1146: FORALL i IN l_first .. l_last
1147: INSERT INTO PRP_TERRITORY_ACCESSES
1148: ( proposal_access_id
1149: ,territory_id
1187: WHERE AST.proposal_access_id = A.proposal_access_id
1188: AND AST.territory_id = l_terr_id(i))
1189: ) V
1190: );
1191: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSTERRACC || AS_GAR.G_BULK_INS || AS_GAR.G_N_ROWS_PROCESSED || SQL%ROWCOUNT);
1192: COMMIT;
1193: EXCEPTION
1194: WHEN DUP_VAL_ON_INDEX THEN
1195: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSTERRACC || AS_GAR.G_IND_INS || AS_GAR.G_N_ROWS_PROCESSED ||l_first||' - '||l_last);
1191: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSTERRACC || AS_GAR.G_BULK_INS || AS_GAR.G_N_ROWS_PROCESSED || SQL%ROWCOUNT);
1192: COMMIT;
1193: EXCEPTION
1194: WHEN DUP_VAL_ON_INDEX THEN
1195: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSTERRACC || AS_GAR.G_IND_INS || AS_GAR.G_N_ROWS_PROCESSED ||l_first||' - '||l_last);
1196: FOR i IN l_first .. l_last LOOP
1197: BEGIN
1198: INSERT INTO PRP_TERRITORY_ACCESSES
1199: ( proposal_access_id
1243: WHEN Others THEN
1244: NULL;
1245: END;
1246: END LOOP;
1247: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSTERRACC || AS_GAR.G_IND_INS || AS_GAR.G_N_ROWS_PROCESSED || SQL%ROWCOUNT);
1248: COMMIT;
1249: WHEN Others THEN
1250: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSTERRACC || AS_GAR.G_BULK_INS, SQLERRM, TO_CHAR(SQLCODE));
1251: x_errbuf := SQLERRM;
1246: END LOOP;
1247: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSTERRACC || AS_GAR.G_IND_INS || AS_GAR.G_N_ROWS_PROCESSED || SQL%ROWCOUNT);
1248: COMMIT;
1249: WHEN Others THEN
1250: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSTERRACC || AS_GAR.G_BULK_INS, SQLERRM, TO_CHAR(SQLCODE));
1251: x_errbuf := SQLERRM;
1252: x_retcode := SQLCODE;
1253: x_return_status := FND_API.G_RET_STS_ERROR;
1254: IF ins_tacc%ISOPEN THEN CLOSE ins_tacc; END IF;
1262: END LOOP;
1263: END IF; --l_proposal_id.count > 0
1264: EXCEPTION
1265: WHEN Others THEN
1266: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSTERRACC , SQLERRM, TO_CHAR(SQLCODE));
1267: IF ins_tacc%ISOPEN THEN CLOSE ins_tacc; END IF;
1268: x_errbuf := SQLERRM;
1269: x_retcode := SQLCODE;
1270: x_return_status := FND_API.G_RET_STS_ERROR;
1275: l_resource_id.DELETE;
1276: l_resource_group_id.DELETE;
1277: l_terr_id.DELETE;
1278: IF ins_tacc%ISOPEN THEN CLOSE ins_tacc; END IF;
1279: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSTERRACC || AS_GAR.G_END);
1280: EXCEPTION
1281: WHEN others THEN
1282: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSTERRACC, SQLERRM, TO_CHAR(SQLCODE));
1283: x_errbuf := SQLERRM;
1278: IF ins_tacc%ISOPEN THEN CLOSE ins_tacc; END IF;
1279: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSTERRACC || AS_GAR.G_END);
1280: EXCEPTION
1281: WHEN others THEN
1282: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_INSTERRACC, SQLERRM, TO_CHAR(SQLCODE));
1283: x_errbuf := SQLERRM;
1284: x_retcode := SQLCODE;
1285: x_return_status := FND_API.G_RET_STS_ERROR;
1286: IF ins_tacc%ISOPEN THEN CLOSE ins_tacc; END IF;
1293:
1294: PROCEDURE Perform_Proposal_Cleanup(
1295: x_errbuf OUT NOCOPY VARCHAR2,
1296: x_retcode OUT NOCOPY VARCHAR2,
1297: p_terr_globals IN AS_GAR.TERR_GLOBALS,
1298: x_return_status OUT NOCOPY VARCHAR2)
1299: IS
1300:
1301: TYPE num_id_list is TABLE of NUMBER INDEX BY BINARY_INTEGER;
1329: FROM JTF_TAE_1001_PROP_NM_TRANS
1330: WHERE worker_id=c_worker_id;
1331:
1332: BEGIN
1333: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CC || AS_GAR.G_START);
1334: x_return_status := FND_API.G_RET_STS_SUCCESS;
1335: l_worker_id := p_terr_globals.worker_id;
1336: l_var := p_terr_globals.bulk_size;
1337: l_MAX_fetches := p_terr_globals.cursor_limit;
1335: l_worker_id := p_terr_globals.worker_id;
1336: l_var := p_terr_globals.bulk_size;
1337: l_MAX_fetches := p_terr_globals.cursor_limit;
1338:
1339: IF p_terr_globals.run_mode = AS_GAR.G_TOTAL_MODE THEN
1340: OPEN del_acct_totalmode(l_worker_id);
1341: ELSE
1342: OPEN del_acct_newmode(l_worker_id);
1343: END IF;
1344: LOOP --{L1
1345: IF (l_limit_flag) THEN EXIT; END IF;
1346:
1347: l_loop_count := l_loop_count + 1;
1348: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CC || 'LOOPCOUNT :- ' ||l_loop_count);
1349: BEGIN
1350: IF p_terr_globals.run_mode = AS_GAR.G_TOTAL_MODE THEN
1351: EXIT WHEN del_acct_totalmode%NOTFOUND;
1352: FETCH del_acct_totalmode BULK COLLECT INTO l_proposal_id
1346:
1347: l_loop_count := l_loop_count + 1;
1348: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CC || 'LOOPCOUNT :- ' ||l_loop_count);
1349: BEGIN
1350: IF p_terr_globals.run_mode = AS_GAR.G_TOTAL_MODE THEN
1351: EXIT WHEN del_acct_totalmode%NOTFOUND;
1352: FETCH del_acct_totalmode BULK COLLECT INTO l_proposal_id
1353: LIMIT l_MAX_fetches;
1354: ELSE
1365: IF l_proposal_id.COUNT < l_MAX_fetches THEN
1366: l_limit_flag := TRUE;
1367: END IF;
1368:
1369: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CC || AS_GAR.G_UPD_ACCESSES || AS_GAR.G_START);
1370: IF l_proposal_id.count > 0 THEN --{I1
1371: l_flag := TRUE;
1372: l_first := l_proposal_id.first;
1373: l_last := l_first + l_var;
1370: IF l_proposal_id.count > 0 THEN --{I1
1371: l_flag := TRUE;
1372: l_first := l_proposal_id.first;
1373: l_last := l_first + l_var;
1374: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CC || AS_GAR.G_UPD_ACCESSES || AS_GAR.G_N_ROWS_PROCESSED ||
1375: l_proposal_id.FIRST || '-' ||
1376: l_proposal_id.LAST);
1377: IF l_last > l_proposal_id.LAST THEN
1378: l_last := l_proposal_id.LAST;
1383: IF (l_del_flag) THEN EXIT; END IF;
1384: l_del_flag := FALSE;
1385: WHILE l_attempts < 3 LOOP --{L4
1386: BEGIN
1387: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CC || AS_GAR.G_UPD_ACCESSES || AS_GAR.G_BULK_UPD || AS_GAR.G_START);
1388: FORALL i in l_first..l_last
1389: DELETE PRP_PROPOSAL_ACCESSES ACC
1390: WHERE ACC.PROPOSAL_ID=l_proposal_id(i)
1391: AND ACC.KEEP_FLAG = 'N'
1401: IF l_proposal_id.COUNT < G_NUM_REC THEN l_del_flag := TRUE; END IF;
1402: EXCEPTION
1403: WHEN deadlock_detected THEN
1404: BEGIN --{I2
1405: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CC || AS_GAR.G_UPD_ACCESSES || AS_GAR.G_BULK_UPD || AS_GAR.G_DEADLOCK || l_attempts);
1406: ROLLBACK;
1407: l_attempts := l_attempts +1;
1408: IF l_attempts = 3 THEN
1409: FOR i IN l_first .. l_last LOOP --{L5
1407: l_attempts := l_attempts +1;
1408: IF l_attempts = 3 THEN
1409: FOR i IN l_first .. l_last LOOP --{L5
1410: BEGIN
1411: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CC || AS_GAR.G_UPD_ACCESSES || AS_GAR.G_IND_UPD || AS_GAR.G_START);
1412: DELETE PRP_PROPOSAL_ACCESSES ACC
1413: WHERE ACC.PROPOSAL_ID=l_proposal_id(i)
1414: AND ACC.KEEP_FLAG = 'N'
1415: AND NOT EXISTS (SELECT 'X'
1425: l_del_flag := TRUE;
1426: END IF;
1427: END; --}I2 end of deadlock exception
1428: WHEN OTHERS THEN
1429: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CC || AS_GAR.G_GENERAL_EXCEPTION, SQLERRM, TO_CHAR(SQLCODE));
1430: IF del_acct_totalmode%ISOPEN THEN CLOSE del_acct_totalmode; END IF;
1431: IF del_acct_newmode%ISOPEN THEN CLOSE del_acct_newmode; END IF;
1432: x_errbuf := SQLERRM;
1433: x_retcode := SQLCODE;
1434: x_return_status := FND_API.G_RET_STS_ERROR;
1435: RAISE;
1436: END;
1437: END LOOP; --}L4 l_attempts loop 3 trys
1438: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CC || AS_GAR.G_UPD_ACCESSES || AS_GAR.G_N_ROWS_PROCESSED || l_first || '-' || l_last);
1439: l_first := l_last + 1;
1440: l_last := l_first + l_var;
1441: IF l_first > l_proposal_id.LAST THEN
1442: l_flag := FALSE;
1442: l_flag := FALSE;
1443: END IF;
1444: END LOOP; --}L2 while l_flag loop (10K cust loop)
1445: END IF;--}I1
1446: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CC || AS_GAR.G_END);
1447: COMMIT;
1448: EXCEPTION
1449: WHEN Others THEN
1450: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CC || AS_GAR.G_GENERAL_EXCEPTION, SQLERRM, TO_CHAR(SQLCODE));
1446: AS_GAR.LOG(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CC || AS_GAR.G_END);
1447: COMMIT;
1448: EXCEPTION
1449: WHEN Others THEN
1450: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CC || AS_GAR.G_GENERAL_EXCEPTION, SQLERRM, TO_CHAR(SQLCODE));
1451: IF del_acct_totalmode%ISOPEN THEN CLOSE del_acct_totalmode; END IF;
1452: IF del_acct_newmode%ISOPEN THEN CLOSE del_acct_newmode; END IF;
1453: x_errbuf := SQLERRM;
1454: x_retcode := SQLCODE;
1459: IF del_acct_totalmode%ISOPEN THEN CLOSE del_acct_totalmode; END IF;
1460: IF del_acct_newmode%ISOPEN THEN CLOSE del_acct_newmode; END IF;
1461: EXCEPTION
1462: WHEN OTHERS THEN
1463: AS_GAR.LOG_EXCEPTION(G_ENTITY || AS_GAR.G_PROCESS || AS_GAR.G_CC || AS_GAR.G_GENERAL_EXCEPTION, SQLERRM, TO_CHAR(SQLCODE));
1464: x_errbuf := SQLERRM;
1465: x_retcode := SQLCODE;
1466: x_return_status := FND_API.G_RET_STS_ERROR;
1467: RAISE;
1468: END Perform_Proposal_Cleanup;
1469:
1470: /************************** End proposal Cleanup ***********************/
1471:
1472: END AS_GAR_PROPOSALS_PUB;