[Home] [Help]
PACKAGE BODY: APPS.IEX_STRATEGY_WF_PUB
Source
1 PACKAGE BODY IEX_STRATEGY_WF_PUB AS
2 /* $Header: iexpstwb.pls 120.3 2006/01/16 22:47:40 kasreeni ship $ */
3 /*
4 * This procedure needs to be called with an itemtype and workflow process
5 * which'll launch workflow .Start Workflow will call workflow based on
6 * Meth_flag in methodology base table
7 */
8
9 G_PKG_NAME CONSTANT VARCHAR2(30):= 'IEX_STRATEGY_WF_PUB';
10 PG_DEBUG NUMBER(2);
11
12 PROCEDURE start_workflow
13 (
14 p_api_version IN NUMBER := 2.0,
15 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
16 p_commit IN VARCHAR2 := FND_API.G_FALSE,
17 p_strategy_rec IN IEX_STRATEGY_PVT.STRATEGY_REC_TYPE,
18 x_return_status OUT NOCOPY VARCHAR2,
19 x_msg_count OUT NOCOPY NUMBER,
20 x_msg_data OUT NOCOPY VARCHAR2,
21 bConcProg IN VARCHAR2
22 ) IS
23 l_result VARCHAR2(10);
24 itemtype VARCHAR2(10) ;
25 itemkey VARCHAR2(30);
26 workflowprocess VARCHAR2(30);
27 rolename VARCHAR2(200);
28 roledisplayname VARCHAR2(200);
29
30 l_error_msg VARCHAR2(2000);
31 l_return_status VARCHAR2(20);
32 l_msg_count NUMBER;
33 l_msg_data VARCHAR2(2000);
34 l_api_name VARCHAR2(100) ;
35 l_api_version_number CONSTANT NUMBER := 2.0;
36
37
38 BEGIN
39 l_api_name := 'START_WORKFLOW';
40 -- Standard Start of API savepoint
41 SAVEPOINT START_WORKFLOW;
42
43 -- Standard call to check for call compatibility.
44 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
45 p_api_version,
46 l_api_name,
47 G_PKG_NAME) THEN
48 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
49
50 END IF;
51 if (bConcProg = 'YES') then
52 -- Debug Message
53 write_log(FND_LOG.LEVEL_STATEMENT, 'Public API: IEX_STRATEGY_WF_PUB.' || l_api_name || ' start');
54 write_log(FND_LOG.LEVEL_STATEMENT, 'Start time: ' || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
55 else
56
57 -- Initialize message list IF p_init_msg_list is set to TRUE.
58 IF FND_API.to_Boolean( p_init_msg_list ) THEN
59 FND_MSG_PUB.initialize;
60 END IF;
61
62 -- Debug Message
63 IEX_DEBUG_PUB.LogMessage( 'API: IEX_STRATEGY_WF_PUB.' || l_api_name || ' start');
64 end if;
65
66 -- Initialize API return status to SUCCESS
67 x_return_status := FND_API.G_RET_STS_SUCCESS;
68
69 itemtype := 'IEXSTRY';
70 workflowprocess := 'STRATEGY_WORKFLOW';
71
72 itemkey := p_strategy_rec.strategy_id;
73
74 -- wf_directory.GetRoleName(Orig_System, User_ID, role_name, role_displayname);
75 -- call engine API to set the owner.
76 --- wf_engine.SetItemOwner(ItemType, ItemKey, role_name);
77 wf_engine.createprocess ( itemtype => itemtype,
78 itemkey => itemkey,
79 process => workflowprocess);
80
81 if (bConcProg = 'YES') then
82 write_log(FND_LOG.LEVEL_STATEMENT, 'IEX_STRATEGY_WF_PUB.start_workflow: Create Process done');
83 else
84 IEX_DEBUG_PUB.LogMessage( 'IEX_STRATEGY_WF_PUB.start_workflow: Create Process done');
85 end if;
86
87 wf_engine.setitemattrnumber( itemtype => itemtype,
88 itemkey => itemkey,
89 aname => 'STRATEGY_ID',
90 avalue => p_strategy_rec.strategy_id);
91
92 wf_engine.setitemattrnumber( itemtype => itemtype,
93 itemkey => itemkey,
94 aname => 'STRATEGY_TEMPLATE_ID',
95 avalue => p_strategy_rec.strategy_template_id);
96
97 wf_engine.setitemattrnumber( itemtype => itemtype,
98 itemkey => itemkey,
99 aname => 'DELINQUENCY_ID',
100 avalue => p_strategy_rec.delinquency_id);
101
102
103 wf_engine.setitemattrnumber( itemtype => itemtype,
104 itemkey => itemkey,
105 aname => 'PARTY_ID',
106 avalue => p_strategy_rec.PARTY_ID);
107
108 if (bConcProg = 'YES') then
109 write_log(FND_LOG.LEVEL_STATEMENT, 'Set Attrib. sucess');
110 else
111 IEX_DEBUG_PUB.LogMessage( 'Set Attr sucess');
112 end if;
113
114 wf_engine.startprocess(itemtype => itemtype, itemkey => itemkey);
115
116 wf_engine.ItemStatus( itemtype => ItemType,
117 itemkey => ItemKey,
118 status => l_return_status,
119 result => l_result);
120
121 if (l_return_status in ('COMPLETE', 'ACTIVE', 'SUSPEND')) THEN
122 x_return_status := 'S';
123 else
124 x_return_status := 'F';
125 fnd_file.put_line(FND_FILE.LOG, 'Failed Workflow: STATUS = ' || l_return_status || ' l_result= ' || l_result);
126 fnd_file.put_line(FND_FILE.LOG, 'Database Error if any ' || 'sqlcode = ' || sqlcode || ' sqlerrm = ' || sqlerrm);
127 raise fnd_api.g_exc_unexpected_error;
128 end if;
129
130 if (bConcProg = 'YES') then
131 write_log(FND_LOG.LEVEL_STATEMENT, 'GET ITEM STATUS = ' || l_return_status);
132
133 -- Debug Message
134 write_log(FND_LOG.LEVEL_STATEMENT, 'PUB: ' || l_api_name || ' end');
135 write_log(FND_LOG.LEVEL_STATEMENT, 'End time:' || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
136 else
137 IEX_DEBUG_PUB.LogMessage( 'GET ITEM STATUS = ' || l_return_status);
138
139 -- Debug Message
140 IEX_DEBUG_PUB.LogMessage( 'PUB: ' || l_api_name || ' end');
141 IEX_DEBUG_PUB.LogMessage( 'End time:' || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
142
143 end if;
144
145 EXCEPTION
146 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
147 if (bConcProg = 'YES') then
148 fnd_file.put_line(FND_FILE.LOG, 'UNEXPECTED ERROR. PUB: ' || ' sqlcode = ' || sqlcode || ' sqlerrm = ' || sqlerrm);
149 fnd_file.put_line(FND_FILE.LOG, 'UNEXPECTED ERROR. PUB: ' || l_api_name || ' end');
150 fnd_file.put_line(FND_FILE.LOG, 'PUB: ' || l_api_name || ' end');
151 fnd_file.put_line(FND_FILE.LOG, 'End time:' || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
152 else
153 IEX_DEBUG_PUB.LogMessage( 'UNEXPECTED ERROR. PUB: ' || l_api_name || ' end');
154 IEX_DEBUG_PUB.LogMessage( 'PUB: ' || l_api_name || ' end');
155 IEX_DEBUG_PUB.LogMessage( 'End time:' || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
156 end if;
157 raise FND_API.G_EXC_UNEXPECTED_ERROR;
158
159 WHEN OTHERS THEN
160 if (bConcProg = 'YES') then
161 fnd_file.put_line(FND_FILE.LOG, 'UNHANDLED WORKFLOW EXCEPTION ERROR: ' || ' sqlcode = ' || sqlcode || ' sqlerrm = ' || sqlerrm);
162 fnd_file.put_line(FND_FILE.LOG, 'UNHANDLED WORKFLOW EXCEPTION. Strategy ID ' || p_strategy_rec.strategy_id);
163 fnd_file.put_line(FND_FILE.LOG, 'PUB: ' || l_api_name || ' end');
164 fnd_file.put_line(FND_FILE.LOG, 'End time:' || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
165 else
166 IEX_DEBUG_PUB.LogMessage( 'UNHANDLED WORKFLOW EXCEPTION. Strategy ID ' || p_strategy_rec.strategy_id);
167 IEX_DEBUG_PUB.LogMessage( 'PUB: ' || l_api_name || ' end');
168 IEX_DEBUG_PUB.LogMessage( 'End time:' || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
169 end if;
170 raise FND_API.G_EXC_UNEXPECTED_ERROR;
171
172 END start_workflow;
173
174 PROCEDURE write_log(mesg_level IN NUMBER, mesg IN VARCHAR2) is
175 BEGIN
176 if (mesg_level >= PG_DEBUG) then
177 fnd_file.put_line(FND_FILE.LOG, mesg);
178 -- fnd_file.put_line(FND_FILE.LOG, my_timestamp || ' ' || mesg);
179 end if;
180 END;
181
182
183 BEGIN
184 PG_DEBUG := TO_NUMBER(NVL(FND_PROFILE.value('IEX_DEBUG_LEVEL'), '20'));
185
186
187 END IEX_STRATEGY_WF_PUB;