DBA Data[Home] [Help]

PACKAGE BODY: APPS.MSD_DP_DIMENSION_PKG

Source


1 PACKAGE BODY msd_dp_dimension_pkg AS
2 /* $Header: msddpdmb.pls 120.0 2005/05/25 19:02:58 appldev noship $ */
3 
4 /* Public Procedures */
5 
6 
7 PROCEDURE LOAD_ROW(P_DEMAND_PLAN_NAME          in VARCHAR2,
8                              P_DP_DIMENSION_CODE         in VARCHAR2,
9                              P_DIMENSION_CODE            in VARCHAR2,
10                              P_OWNER                     in VARCHAR2,
11                              P_DELETEABLE_FLAG           in VARCHAR2,
12                              P_LAST_UPDATE_DATE          in VARCHAR2,
13                              P_ENABLE_NONSEED_FLAG             in VARCHAR2,
14 			     P_CUSTOM_MODE             in VARCHAR2
15 			     )
16 is
17 
18 l_demand_plan_id number;
19 f_luby    number;  -- entity owner in file
20 f_ludate  date;    -- entity update date in file
21 db_luby   number;  -- entity owner in db
22 db_ludate date;    -- entity update date in db
23 
24 BEGIN
25 
26 	-- translate values to IDs
27         select DEMAND_PLAN_ID
28         into l_demand_plan_id
29         from MSD_DEMAND_PLANS
30         where DEMAND_PLAN_NAME = P_DEMAND_PLAN_NAME;
31 
32 
33 
34         -- Translate owner to file_last_updated_by
35         f_luby := fnd_load_util.owner_id(P_OWNER);
36 
37         -- Translate char last_update_date to date
38         f_ludate := nvl(to_date(P_LAST_UPDATE_DATE, 'YYYY/MM/DD'), sysdate);
39         begin
40           select LAST_UPDATED_BY, LAST_UPDATE_DATE
41           into db_luby, db_ludate
42           from msd_dp_dimensions
43           where DEMAND_PLAN_ID = l_demand_plan_id
44           and DP_DIMENSION_CODE = P_DP_DIMENSION_CODE
45 	  and DIMENSION_CODE = P_DIMENSION_CODE;
46 
47 	  -- Test for customization and version
48           if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
49                                         db_ludate, P_CUSTOM_MODE)) then
50 	    -- Update existing row
51             update msd_dp_dimensions
52 	    set  last_update_date = f_ludate            ,
53             deleteable_flag = P_DELETEABLE_FLAG             ,
54             enable_nonseed_flag = P_ENABLE_NONSEED_FLAG             ,
55 	    last_updated_by = f_luby             ,
56 	    last_update_login = 0
57 	    where demand_plan_id = l_demand_plan_id
58             and dp_dimension_code = p_dp_dimension_code
59      	    and dimension_code = p_dimension_code;
60 
61           end if;
62         exception
63           when no_data_found then
64             -- Record doesn't exist - insert in all cases
65             insert into msd_dp_dimensions
66             (DEMAND_PLAN_ID            ,
67             DP_DIMENSION_CODE               ,
68             DIMENSION_CODE               ,
69             CREATION_DATE	       ,
70             CREATED_BY                  ,
71             LAST_UPDATE_DATE            ,
72             LAST_UPDATED_BY             ,
73             LAST_UPDATE_LOGIN           ,
74 	    ENABLE_NONSEED_FLAG ,
75 	    DELETEABLE_FLAG
76             )
77             values
78             (l_demand_plan_id            ,
79             P_DP_DIMENSION_CODE               ,
80             P_DIMENSION_CODE               ,
81             f_ludate	       ,
82 	    f_luby                  ,
83 	    f_ludate            ,
84 	    f_luby             ,
85 	    0           ,
86 	    P_ENABLE_NONSEED_FLAG ,
87 	    P_DELETEABLE_FLAG
88 	    );
89         end;
90 
91 END;
92 
93 END msd_dp_dimension_pkg ;