DBA Data[Home] [Help]

PACKAGE BODY: APPS.JTF_TERR_OKS_PUB

Source


1 Package Body JTF_TERR_OKS_PUB AS
2 /* $Header: jtfptscb.pls 120.0 2005/06/02 18:20:57 appldev ship $ */
3 --    Start of Comments
4 --    ---------------------------------------------------
5 --    PACKAGE NAME:   JTF_TERR_OKS_PUB
6 --    ---------------------------------------------------
7 --    PURPOSE
8 --      Joint task force core Service Contracts territory manager public api's.
9 --      This package is a public API for getting winning territories
10 --      or territory resources.
11 --
12 --      Procedures:
13 --         (see below for specification)
14 --
15 --    NOTES
16 --      This package is publicly available for use
17 --
18 --    HISTORY
19 --          07/21/00    EIHSU       Created
20 --          02/15/01    SP          Modified to make it backward compatible
21 --                                  Changed datatypes of lp_rec and lx_rec
22 --
23 --    End of Comments
24 --
25 -- ***************************************************
26 --              GLOBAL VARIABLES
27 -- ***************************************************
28    G_PKG_NAME      CONSTANT VARCHAR2(30):='JTF_TERR_OKS_PUB';
29    G_FILE_NAME     CONSTANT VARCHAR2(12):='jtfptscb.pls';
30 
31    G_NEW_LINE        VARCHAR2(02) := FND_GLOBAL.Local_Chr(10);
32    G_APPL_ID         NUMBER       := FND_GLOBAL.Prog_Appl_Id;
33    G_LOGIN_ID        NUMBER       := FND_GLOBAL.Conc_Login_Id;
34    G_PROGRAM_ID      NUMBER       := FND_GLOBAL.Conc_Program_Id;
35    G_USER_ID         NUMBER       := FND_GLOBAL.User_Id;
36    G_REQUEST_ID      NUMBER       := FND_GLOBAL.Conc_Request_Id;
37    G_APP_SHORT_NAME  VARCHAR2(15) := FND_GLOBAL.Application_Short_Name;
38 --
39 --    Start of Comments
40 
41 --    ***************************************************
42 --    start of comments
43 --    ***************************************************
44 --    api name       : Get_WinningTerrMembers
45 --
46 -- end of comments
47 procedure Get_WinningTerrMembers
48 (   p_api_version_number       IN    number,
49     p_init_msg_list            IN    varchar2  := fnd_api.g_false,
50     p_TerrKRen_Rec             IN    JTF_TERRITORY_PUB.JTF_KRen_rec_type,
51     p_Resource_Type            IN    varchar2,
52     p_Role                     IN    varchar2,
53     x_return_status            OUT NOCOPY   varchar2,
54     x_msg_count                OUT NOCOPY   number,
55     X_msg_data                 OUT NOCOPY   varchar2,
56     x_TerrResource_tbl         OUT NOCOPY   JTF_TERRITORY_PUB.WinningTerrMember_tbl_type
57 )
58 AS
59       l_api_name                   CONSTANT VARCHAR2(30) := 'Get_WinningTerrMembers_Kren';
60       l_api_version_number         CONSTANT NUMBER       := 1.0;
61       l_return_status              VARCHAR2(1);
62       l_Counter                    NUMBER := 0;
63       l_RscCounter                 NUMBER := 0;
64       l_NumberOfWinners            NUMBER ;
65       l_RetCode                    BOOLEAN;
66 
67       lp_rec                       JTF_TERR_ASSIGN_PUB.bulk_trans_rec_type;
68       lx_rec                       JTF_TERR_ASSIGN_PUB.bulk_winners_rec_type;
69  BEGIN
70       --dbms_output.put_line('J_T_O_P.Get_WinningTerrMembers: BEGIN');
71 
72       -- Standard call to check for call compatibility.
73       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
74                                            p_api_version_number,
75                                            l_api_name,
76                                            G_PKG_NAME)
77       THEN
78           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
79       END IF;
80 
81 
82       -- Initialize message list if p_init_msg_list is set to TRUE.
83       IF FND_API.to_Boolean( p_init_msg_list )
84       THEN
85           FND_MSG_PUB.initialize;
86       END IF;
87 
88       -- Debug Message
89       IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
90       THEN
91           FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_MEMBERS_KREN_START');
92           FND_MSG_PUB.Add;
93       END IF;
94 
95     -------------------
96     ----- API body ----
97     -------------------
98 
99       x_return_status := FND_API.G_RET_STS_SUCCESS;
100 
101      lp_Rec.trans_object_id.EXTEND ;
102      lp_Rec.trans_detail_object_id.EXTEND;
103      lp_Rec.squal_char01.EXTEND;
104      lp_Rec.squal_char04.EXTEND;
105      lp_Rec.squal_char07.EXTEND;
106      lp_Rec.squal_num01.EXTEND;
107 
108      /* initialise trans_object_id and trans_detail_object_id:
109      ** required in JTF_TERR_1500_KREN_DYN.SEARCH_TERR_RULES
110      */
111      lp_Rec.trans_object_id(1)          := -1501;
112      lp_Rec.trans_detail_object_id(1)   := -1501;
113 
114      /* initialise BULK tables with SINGLE record values */
115      lp_Rec.squal_char01(1) := p_TerrKRen_Rec.comp_name_range;
116      lp_Rec.squal_char04(1) := p_TerrKRen_Rec.state;
117      lp_Rec.squal_char07(1) := NULL;
118      lp_Rec.squal_num01(1)  := p_TerrKRen_Rec.party_id;
119 
120      jtf_terr_1500_kren_dyn.search_terr_rules(
121                p_rec                => lp_rec
122              , x_rec                => lx_rec
123              , p_role               => p_role
124              , p_resource_type      => p_resource_type );
125 
126      l_counter := lx_rec.terr_id.FIRST;
127 
128      WHILE (l_counter <= lx_rec.terr_id.LAST) LOOP
129 
130         x_TerrResource_tbl(l_counter).TERR_RSC_ID          := lx_rec.terr_rsc_id(l_counter);
131         x_TerrResource_tbl(l_counter).RESOURCE_ID          := lx_rec.resource_id(l_counter);
132         x_TerrResource_tbl(l_counter).RESOURCE_TYPE        := lx_rec.resource_type(l_counter);
133         x_TerrResource_tbl(l_counter).GROUP_ID             := lx_rec.group_id(l_counter);
134         x_TerrResource_tbl(l_counter).ROLE                 := lx_rec.role(l_counter);
135         x_TerrResource_tbl(l_counter).PRIMARY_CONTACT_FLAG := lx_rec.full_access_flag(l_counter);
136         x_TerrResource_tbl(l_counter).FULL_ACCESS_FLAG     := lx_rec.primary_contact_flag(l_counter);
137         x_TerrResource_tbl(l_counter).TERR_ID              := lx_rec.terr_id(l_counter);
138 
139         l_counter := l_counter + 1;
140 
141      END LOOP;
142 
143     IF (l_Counter = 1) THEN
144       NULL;
145       --dbms_output.put_line('No records returned');
146     END IF;
147 
148       --
149       -- Debug Message
150       IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
151       THEN
152           FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_MEMBERS_KREN_END');
153           FND_MSG_PUB.Add;
154       END IF;
155 
156       -- Standard call to get message count and if count is 1, get message info.
157       FND_MSG_PUB.Count_And_Get
158       (   p_count           =>      x_msg_count,
159           p_data            =>      x_msg_data
160       );
161       --dbms_output.put_line('Get_Escalation_TerrMembers: Exiting the API');
162   EXCEPTION
163   --
164       WHEN OTHERS THEN
165            x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
166            IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
167               FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
168            END IF;
169            FND_MSG_PUB.Count_And_Get
170            ( p_count         =>      x_msg_count,
171              p_data          =>      x_msg_data
172            );
173   --
174   End  Get_WinningTerrMembers;
175 --
176 END JTF_TERR_OKS_PUB;