1 PACKAGE BODY Ibc_Content_Item_Nodes_Pkg AS
2 /* $Header: ibctcinb.pls 115.4 2002/11/17 16:05:00 srrangar ship $*/
3
4 -- Purpose: Table Handler for Ibc_Content_Item_Nodes table.
5
6 -- MODIFICATION HISTORY
7 -- Person Date Comments
8 -- --------- ------ ------------------------------------------
9 -- Sri Rangarajan 01/06/2002 Created Package
10 -- shitij.vatsa 11/04/2002 Updated for FND_API.G_MISS_XXX
11
12 PROCEDURE INSERT_ROW (
13 x_rowid OUT NOCOPY VARCHAR2
14 ,px_content_item_node_id IN OUT NOCOPY NUMBER
15 ,p_content_item_id IN NUMBER
16 ,p_directory_node_id IN NUMBER
17 ,p_object_version_number IN NUMBER
18 ,p_creation_date IN DATE --DEFAULT NULL
19 ,p_created_by IN NUMBER --DEFAULT NULL
20 ,p_last_update_date IN DATE --DEFAULT NULL
21 ,p_last_updated_by IN NUMBER --DEFAULT NULL
22 ,p_last_update_login IN NUMBER --DEFAULT NULL
23 ) IS
24 CURSOR C IS SELECT ROWID FROM IBC_CONTENT_ITEM_NODES
25 WHERE content_item_node_id = px_content_item_node_id;
26 CURSOR c2 IS SELECT ibc_content_item_nodes_s1.NEXTVAL FROM dual;
27
28 BEGIN
29
30 -- Primary key validation check
31
32 IF ((px_content_item_node_id IS NULL) OR
33 (px_content_item_node_id = FND_API.G_MISS_NUM))
34 THEN
35 OPEN c2;
36 FETCH c2 INTO px_content_item_node_id;
37 CLOSE c2;
38 END IF;
39
40 INSERT INTO IBC_CONTENT_ITEM_NODES (
41 content_item_node_id,
42 CONTENT_ITEM_ID,
43 DIRECTORY_NODE_ID,
44 OBJECT_VERSION_NUMBER,
45 CREATION_DATE,
46 CREATED_BY,
47 LAST_UPDATE_DATE,
48 LAST_UPDATED_BY,
49 LAST_UPDATE_LOGIN
50 ) VALUES (
51 px_content_item_node_id
52 ,p_content_item_id
53 ,p_directory_node_id
54 ,DECODE(p_object_version_number,FND_API.G_MISS_NUM,1,NULL,1,p_object_version_number)
55 ,DECODE(p_creation_date,FND_API.G_MISS_DATE,SYSDATE,NULL,SYSDATE,p_creation_date)
56 ,DECODE(p_created_by,FND_API.G_MISS_NUM,FND_GLOBAL.user_id,NULL,FND_GLOBAL.user_id,p_created_by)
57 ,DECODE(p_last_update_date,FND_API.G_MISS_DATE,SYSDATE,NULL,SYSDATE,p_last_update_date)
58 ,DECODE(p_last_updated_by,FND_API.G_MISS_NUM,FND_GLOBAL.user_id,NULL,FND_GLOBAL.user_id,p_last_updated_by)
59 ,DECODE(p_last_update_login,FND_API.G_MISS_NUM,FND_GLOBAL.login_id,NULL,FND_GLOBAL.user_id,p_last_update_login)
60 );
61
62 OPEN c;
63 FETCH c INTO x_rowid;
64 IF (c%NOTFOUND) THEN
65 CLOSE c;
66 RAISE NO_DATA_FOUND;
67 END IF;
68 CLOSE c;
69
70 END INSERT_ROW;
71
72 PROCEDURE LOCK_ROW (
73 p_content_item_node_id IN NUMBER,
74 p_CONTENT_ITEM_ID IN NUMBER,
75 p_DIRECTORY_NODE_ID IN NUMBER,
76 p_OBJECT_VERSION_NUMBER IN NUMBER
77 ) IS
78 CURSOR c IS SELECT
79 OBJECT_VERSION_NUMBER
80 FROM IBC_CONTENT_ITEM_NODES
81 WHERE content_item_node_id = p_content_item_node_id
82 FOR UPDATE OF CONTENT_ITEM_ID NOWAIT;
83 recinfo c%ROWTYPE;
84
85 BEGIN
86 OPEN c;
87 FETCH c INTO recinfo;
88 IF (c%NOTFOUND) THEN
89 CLOSE c;
90 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
91 app_exception.raise_exception;
92 END IF;
93 CLOSE c;
94 IF ( (recinfo.OBJECT_VERSION_NUMBER = p_OBJECT_VERSION_NUMBER)
95 ) THEN
96 NULL;
97 ELSE
98 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
99 app_exception.raise_exception;
100 END IF;
101
102 END LOCK_ROW;
103
104 PROCEDURE UPDATE_ROW (
105 p_content_item_node_id IN NUMBER
106 ,p_content_item_id IN NUMBER --DEFAULT NULL
107 ,p_directory_node_id IN NUMBER --DEFAULT NULL
108 ,p_last_updated_by IN NUMBER --DEFAULT NULL
109 ,p_last_update_date IN DATE --DEFAULT NULL
110 ,p_last_update_login IN NUMBER --DEFAULT NULL
111 ,p_object_version_number IN NUMBER --DEFAULT NULL
112 ) IS
113 BEGIN
114 UPDATE IBC_CONTENT_ITEM_NODES SET
115 content_item_id = DECODE(p_content_item_id,FND_API.G_MISS_NUM,NULL,NULL,content_item_id,p_content_item_id)
116 ,directory_node_id = DECODE(p_directory_node_id,FND_API.G_MISS_NUM,NULL,NULL,directory_node_id,p_directory_node_id)
117 ,object_version_number = NVL(object_version_number,0) + 1
118 ,last_update_date = DECODE(p_last_update_date,FND_API.G_MISS_DATE,SYSDATE,NULL,SYSDATE,p_last_update_date)
119 ,last_updated_by = DECODE(p_last_updated_by,FND_API.G_MISS_NUM,FND_GLOBAL.user_id,NULL,FND_GLOBAL.user_id,p_last_updated_by)
120 ,last_update_login = DECODE(p_last_update_login,FND_API.G_MISS_NUM,FND_GLOBAL.login_id,NULL,FND_GLOBAL.user_id,p_last_update_login)
121 WHERE content_item_node_id = p_content_item_node_id
122 AND object_version_number = DECODE(p_object_version_number,
123 FND_API.G_MISS_NUM,
124 object_version_number,
125 NULL,
126 object_version_number,
127 p_object_version_number);
128
129 IF (SQL%NOTFOUND) THEN
130 RAISE NO_DATA_FOUND;
131 END IF;
132
133 END UPDATE_ROW;
134
135 PROCEDURE DELETE_ROW (
136 p_content_item_node_id IN NUMBER
137 ) IS
138 BEGIN
139
140 DELETE FROM IBC_CONTENT_ITEM_NODES
141 WHERE content_item_node_id = p_content_item_node_id;
142
143 IF (SQL%NOTFOUND) THEN
144 RAISE NO_DATA_FOUND;
145 END IF;
146 END DELETE_ROW;
147
148
149 END Ibc_Content_Item_Nodes_Pkg;