1: package body AK_ON_OBJECTS_PVT as
2: /* $Header: akdvonb.pls 120.6.12020000.2 2012/07/27 17:19:16 tshort ship $ */
3:
4: --
5: -- Type definitions (only used within this package body)
193: -- p_application_id or p_application_short_name must
194: -- be provided.
195: -- p_download_by_object : IN required
196: -- Must be one of the following literal defined in
197: -- AK_ON_OBJECTS_PVT package:
198: -- G_ATTRIBUTE - Caller is DOWNLOAD_ATTRIBUTE API
199: -- G_OBJECT - Caller is DOWNLOAD_OBJECT API
200: -- G_REGION - Caller is DOWNLOAD_REGION API
201: -- G_FLOW - Caller is DOWNLOAD_FLOW API
318: where name = 'db_name';
319:
320: -- determine sub-phase
321: --
322: if ( p_download_by_object = AK_ON_OBJECTS_PVT.G_REGION ) then
323: l_sub_phase := '24';
324: elsif ( p_download_by_object = AK_ON_OBJECTS_PVT.G_FLOW or p_download_by_object = AK_ON_OBJECTS_PVT.G_SECURITY) then
325: l_sub_phase := '20';
326: elsif ( p_download_by_object = AK_ON_OBJECTS_PVT.G_ATTRIBUTE ) then
320: -- determine sub-phase
321: --
322: if ( p_download_by_object = AK_ON_OBJECTS_PVT.G_REGION ) then
323: l_sub_phase := '24';
324: elsif ( p_download_by_object = AK_ON_OBJECTS_PVT.G_FLOW or p_download_by_object = AK_ON_OBJECTS_PVT.G_SECURITY) then
325: l_sub_phase := '20';
326: elsif ( p_download_by_object = AK_ON_OBJECTS_PVT.G_ATTRIBUTE ) then
327: l_sub_phase := '16';
328: elsif ( p_download_by_object = AK_ON_OBJECTS_PVT.G_CUSTOM_REGION ) then
322: if ( p_download_by_object = AK_ON_OBJECTS_PVT.G_REGION ) then
323: l_sub_phase := '24';
324: elsif ( p_download_by_object = AK_ON_OBJECTS_PVT.G_FLOW or p_download_by_object = AK_ON_OBJECTS_PVT.G_SECURITY) then
325: l_sub_phase := '20';
326: elsif ( p_download_by_object = AK_ON_OBJECTS_PVT.G_ATTRIBUTE ) then
327: l_sub_phase := '16';
328: elsif ( p_download_by_object = AK_ON_OBJECTS_PVT.G_CUSTOM_REGION ) then
329: l_sub_phase := '25';
330: end if;
324: elsif ( p_download_by_object = AK_ON_OBJECTS_PVT.G_FLOW or p_download_by_object = AK_ON_OBJECTS_PVT.G_SECURITY) then
325: l_sub_phase := '20';
326: elsif ( p_download_by_object = AK_ON_OBJECTS_PVT.G_ATTRIBUTE ) then
327: l_sub_phase := '16';
328: elsif ( p_download_by_object = AK_ON_OBJECTS_PVT.G_CUSTOM_REGION ) then
329: l_sub_phase := '25';
330: end if;
331:
332: --
387: -- Check if the Object type is valid values
388: l_index := l_index + 1;
389: l_header_tbl(l_index) := ' ';
390:
391: if (p_download_by_object in (AK_ON_OBJECTS_PVT.G_OBJECT,
392: AK_ON_OBJECTS_PVT.G_REGION, AK_ON_OBJECTS_PVT.G_CUSTOM_REGION,
393: AK_ON_OBJECTS_PVT.G_FLOW, AK_ON_OBJECTS_PVT.G_ATTRIBUTE)) then
394:
395: l_index := l_index + 1;
388: l_index := l_index + 1;
389: l_header_tbl(l_index) := ' ';
390:
391: if (p_download_by_object in (AK_ON_OBJECTS_PVT.G_OBJECT,
392: AK_ON_OBJECTS_PVT.G_REGION, AK_ON_OBJECTS_PVT.G_CUSTOM_REGION,
393: AK_ON_OBJECTS_PVT.G_FLOW, AK_ON_OBJECTS_PVT.G_ATTRIBUTE)) then
394:
395: l_index := l_index + 1;
396: l_header_tbl(l_index) := 'DEFINE ATTRIBUTE ';
389: l_header_tbl(l_index) := ' ';
390:
391: if (p_download_by_object in (AK_ON_OBJECTS_PVT.G_OBJECT,
392: AK_ON_OBJECTS_PVT.G_REGION, AK_ON_OBJECTS_PVT.G_CUSTOM_REGION,
393: AK_ON_OBJECTS_PVT.G_FLOW, AK_ON_OBJECTS_PVT.G_ATTRIBUTE)) then
394:
395: l_index := l_index + 1;
396: l_header_tbl(l_index) := 'DEFINE ATTRIBUTE ';
397: l_index := l_index + 1;
499: l_index := l_index + 1;
500: l_header_tbl(l_index) := ' ';
501:
502: -- Check if the Object type is valid values
503: if (p_download_by_object in (AK_ON_OBJECTS_PVT.G_OBJECT,
504: AK_ON_OBJECTS_PVT.G_REGION, AK_ON_OBJECTS_PVT.G_CUSTOM_REGION,
505: AK_ON_OBJECTS_PVT.G_FLOW)) then
506: l_index := l_index + 1;
507: l_header_tbl(l_index) := 'DEFINE OBJECT';
500: l_header_tbl(l_index) := ' ';
501:
502: -- Check if the Object type is valid values
503: if (p_download_by_object in (AK_ON_OBJECTS_PVT.G_OBJECT,
504: AK_ON_OBJECTS_PVT.G_REGION, AK_ON_OBJECTS_PVT.G_CUSTOM_REGION,
505: AK_ON_OBJECTS_PVT.G_FLOW)) then
506: l_index := l_index + 1;
507: l_header_tbl(l_index) := 'DEFINE OBJECT';
508: l_index := l_index + 1;
501:
502: -- Check if the Object type is valid values
503: if (p_download_by_object in (AK_ON_OBJECTS_PVT.G_OBJECT,
504: AK_ON_OBJECTS_PVT.G_REGION, AK_ON_OBJECTS_PVT.G_CUSTOM_REGION,
505: AK_ON_OBJECTS_PVT.G_FLOW)) then
506: l_index := l_index + 1;
507: l_header_tbl(l_index) := 'DEFINE OBJECT';
508: l_index := l_index + 1;
509: l_header_tbl(l_index) := ' KEY DATABASE_OBJECT_NAME VARCHAR2(30)';
1409: l_index := l_index + 1;
1410: l_header_tbl(l_index) := ' ';
1411: end if;
1412:
1413: if (p_download_by_object = AK_ON_OBJECTS_PVT.G_CUSTOM_REGION) then
1414: l_index := l_index + 1;
1415: l_header_tbl(l_index) := 'DEFINE CUSTOMIZATION';
1416: l_index := l_index + 1;
1417: l_header_tbl(l_index) := ' KEY CUSTOMIZATION_APPLICATION_ID NUMBER(15)';
1564: l_index := l_index + 1;
1565: l_header_tbl(l_index) := ' ';
1566: end if;
1567:
1568: if (p_download_by_object = AK_ON_OBJECTS_PVT.G_FLOW) then
1569: l_index := l_index + 1;
1570: l_header_tbl(l_index) := 'DEFINE FLOW';
1571: l_index := l_index + 1;
1572: l_header_tbl(l_index) := ' KEY FLOW_APPLICATION_ID NUMBER(15)';
1871:
1872: end if;
1873: end if; -- the first if for checking Attribute, Flow, Region and Object
1874:
1875: if (p_download_by_object = AK_ON_OBJECTS_PVT.G_SECURITY) then
1876: l_index := l_index + 1;
1877: l_header_tbl(l_index) := 'DEFINE EXCLUDED_ITEMS';
1878: l_index := l_index + 1;
1879: l_header_tbl(l_index) := ' KEY RESPONSIBILITY_ID NUMBER(15)';
1924: l_header_tbl(l_index) := ' ';
1925: end if;
1926:
1927: -- Check if the Object type is valid values
1928: if (p_download_by_object = AK_ON_OBJECTS_PVT.G_QUERYOBJ) then
1929:
1930: l_index := l_index + 1;
1931: l_header_tbl(l_index) := 'DEFINE QUERY_OBJECT';
1932: l_index := l_index + 1;
1978:
1979: end if; -- if G_QUERYOBJ
1980:
1981: -- Check if the Object type is valid values
1982: if (p_download_by_object = AK_ON_OBJECTS_PVT.G_AMPARAM_REGISTRY) then
1983:
1984: l_index := l_index + 1;
1985: l_header_tbl(l_index) := 'DEFINE AMPARAM_REGISTRY';
1986: l_index := l_index + 1;
2003:
2004: --
2005: -- Write the header information out to the flat file
2006: --
2007: AK_ON_OBJECTS_PVT.WRITE_FILE (
2008: p_return_status => l_return_status,
2009: p_buffer_tbl => l_header_tbl,
2010: p_write_mode => AK_ON_OBJECTS_PUB.G_OVERWRITE
2011: );
2136: --dbms_output.put_line('**** Processing pass # ' || to_char(l_index) || ' ****');
2137:
2138: -- Open Upload Loader Cursor
2139: OPEN l_upl_loader_cur FOR SELECT TBL_INDEX,LINE_CONTENT FROM ak_loader_temp
2140: where session_id = AK_ON_OBJECTS_PVT.G_SESSION_ID
2141: order by tbl_index;
2142:
2143: while (l_buffer is null and l_eof_flag = 'N' and l_tbl_index <= G_UPL_TABLE_NUM) loop
2144: AK_ON_OBJECTS_PVT.READ_LINE (
2140: where session_id = AK_ON_OBJECTS_PVT.G_SESSION_ID
2141: order by tbl_index;
2142:
2143: while (l_buffer is null and l_eof_flag = 'N' and l_tbl_index <= G_UPL_TABLE_NUM) loop
2144: AK_ON_OBJECTS_PVT.READ_LINE (
2145: p_return_status => l_return_status,
2146: p_index => l_tbl_index,
2147: p_buffer => l_buffer,
2148: p_lines_read => l_lines_read,
2195: --
2196: -- - get next token from buffer
2197: --
2198:
2199: AK_ON_OBJECTS_PVT.GET_TOKEN(
2200: p_return_status => l_return_status,
2201: p_in_buf => l_buffer,
2202: p_token => l_token
2203: );
2267: elsif (l_state = 2) then
2268: if (l_column = 'LANGUAGE') then
2269: l_language := UPPER(l_token);
2270: elsif (l_column = 'EXTRACT_BY_OBJECT') then
2271: if (UPPER(l_token) NOT IN (AK_ON_OBJECTS_PVT.G_ATTRIBUTE,
2272: AK_ON_OBJECTS_PVT.G_FLOW,
2273: AK_ON_OBJECTS_PVT.G_OBJECT,
2274: AK_ON_OBJECTS_PVT.G_REGION,
2275: AK_ON_OBJECTS_PVT.G_CUSTOM_REGION,
2268: if (l_column = 'LANGUAGE') then
2269: l_language := UPPER(l_token);
2270: elsif (l_column = 'EXTRACT_BY_OBJECT') then
2271: if (UPPER(l_token) NOT IN (AK_ON_OBJECTS_PVT.G_ATTRIBUTE,
2272: AK_ON_OBJECTS_PVT.G_FLOW,
2273: AK_ON_OBJECTS_PVT.G_OBJECT,
2274: AK_ON_OBJECTS_PVT.G_REGION,
2275: AK_ON_OBJECTS_PVT.G_CUSTOM_REGION,
2276: AK_ON_OBJECTS_PVT.G_SECURITY,
2269: l_language := UPPER(l_token);
2270: elsif (l_column = 'EXTRACT_BY_OBJECT') then
2271: if (UPPER(l_token) NOT IN (AK_ON_OBJECTS_PVT.G_ATTRIBUTE,
2272: AK_ON_OBJECTS_PVT.G_FLOW,
2273: AK_ON_OBJECTS_PVT.G_OBJECT,
2274: AK_ON_OBJECTS_PVT.G_REGION,
2275: AK_ON_OBJECTS_PVT.G_CUSTOM_REGION,
2276: AK_ON_OBJECTS_PVT.G_SECURITY,
2277: AK_ON_OBJECTS_PVT.G_QUERYOBJ,
2270: elsif (l_column = 'EXTRACT_BY_OBJECT') then
2271: if (UPPER(l_token) NOT IN (AK_ON_OBJECTS_PVT.G_ATTRIBUTE,
2272: AK_ON_OBJECTS_PVT.G_FLOW,
2273: AK_ON_OBJECTS_PVT.G_OBJECT,
2274: AK_ON_OBJECTS_PVT.G_REGION,
2275: AK_ON_OBJECTS_PVT.G_CUSTOM_REGION,
2276: AK_ON_OBJECTS_PVT.G_SECURITY,
2277: AK_ON_OBJECTS_PVT.G_QUERYOBJ,
2278: AK_ON_OBJECTS_PVT.G_AMPARAM_REGISTRY) ) then
2271: if (UPPER(l_token) NOT IN (AK_ON_OBJECTS_PVT.G_ATTRIBUTE,
2272: AK_ON_OBJECTS_PVT.G_FLOW,
2273: AK_ON_OBJECTS_PVT.G_OBJECT,
2274: AK_ON_OBJECTS_PVT.G_REGION,
2275: AK_ON_OBJECTS_PVT.G_CUSTOM_REGION,
2276: AK_ON_OBJECTS_PVT.G_SECURITY,
2277: AK_ON_OBJECTS_PVT.G_QUERYOBJ,
2278: AK_ON_OBJECTS_PVT.G_AMPARAM_REGISTRY) ) then
2279: if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2272: AK_ON_OBJECTS_PVT.G_FLOW,
2273: AK_ON_OBJECTS_PVT.G_OBJECT,
2274: AK_ON_OBJECTS_PVT.G_REGION,
2275: AK_ON_OBJECTS_PVT.G_CUSTOM_REGION,
2276: AK_ON_OBJECTS_PVT.G_SECURITY,
2277: AK_ON_OBJECTS_PVT.G_QUERYOBJ,
2278: AK_ON_OBJECTS_PVT.G_AMPARAM_REGISTRY) ) then
2279: if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2280: FND_MESSAGE.SET_NAME('AK','AK_INVALID_COLUMN_VALUE');
2273: AK_ON_OBJECTS_PVT.G_OBJECT,
2274: AK_ON_OBJECTS_PVT.G_REGION,
2275: AK_ON_OBJECTS_PVT.G_CUSTOM_REGION,
2276: AK_ON_OBJECTS_PVT.G_SECURITY,
2277: AK_ON_OBJECTS_PVT.G_QUERYOBJ,
2278: AK_ON_OBJECTS_PVT.G_AMPARAM_REGISTRY) ) then
2279: if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2280: FND_MESSAGE.SET_NAME('AK','AK_INVALID_COLUMN_VALUE');
2281: FND_MESSAGE.SET_TOKEN('COLUMN','EXTRACT_BY_OBJECT');
2274: AK_ON_OBJECTS_PVT.G_REGION,
2275: AK_ON_OBJECTS_PVT.G_CUSTOM_REGION,
2276: AK_ON_OBJECTS_PVT.G_SECURITY,
2277: AK_ON_OBJECTS_PVT.G_QUERYOBJ,
2278: AK_ON_OBJECTS_PVT.G_AMPARAM_REGISTRY) ) then
2279: if FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2280: FND_MESSAGE.SET_NAME('AK','AK_INVALID_COLUMN_VALUE');
2281: FND_MESSAGE.SET_TOKEN('COLUMN','EXTRACT_BY_OBJECT');
2282: FND_MSG_PUB.Add;
2721: -- Get the next non-blank, non-comment line if current line is
2722: -- fully parsed
2723: --
2724: while (l_buffer is null and l_eof_flag = 'N' and l_tbl_index <= G_UPL_TABLE_NUM) loop
2725: AK_ON_OBJECTS_PVT.READ_LINE (
2726: p_return_status => l_return_status,
2727: p_index => l_tbl_index,
2728: p_buffer => l_buffer,
2729: p_lines_read => l_lines_read,
3333: return FALSE;
3334: end if;
3335: end if;
3336: AK_UPLOAD_GRP.G_UPLOAD_DATE := p_last_update_date;
3337: AK_ON_OBJECTS_PVT.SET_WHO (
3338: p_return_status => l_return_status,
3339: p_loader_timestamp => p_loader_timestamp,
3340: p_created_by => l_created_by,
3341: p_creation_date => l_creation_date,
3647: session_id
3648: ) values (
3649: G_TBL_INDEX,
3650: p_buffer,
3651: AK_ON_OBJECTS_PVT.G_SESSION_ID
3652: );
3653:
3654: if SQL%ROWCOUNT = 0 then
3655: -- dbms_output.put_line('no rows has been inserted into ak_loader_temp');
3849: begin
3850: return ((p_value = 'Y') or (p_value = 'N'));
3851: end VALID_YES_NO;
3852:
3853: end AK_ON_OBJECTS_PVT;