Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
l_globalSegTab SegmentRecTyp;
l_contextSegTab SegmentRecTyp;
l_contextTab ContextRecTyp;
l_FunctionName VARCHAR2(50);
BEGIN
l_FunctionName := 'validate_dffs';
l_dff_configured := 'N';
EXCEPTION
WHEN NO_DATA_FOUND THEN
pjb_invoice_generation.WriteLog(PJB_BILLING_UTILS.LEVEL_FINEST,
l_FunctionName, 'No table usage found for the DFF ' || p_dff_code );
x_isValid := 'N';
x_return_status := 'S';
x_msg_data := 'No table usage found for the DFF ' || p_dff_code;
END;
LOOP
l_globalSegTab.application_id,l_globalSegTab.descriptive_flexfield_code,l_globalSeg
Tab.context_code,
l_globalSegTab.segment_code,l_globalSegTab.column_name,l_globalSegTab.enable_flag,
l_globalSegTab.required_flag
LIMIT 100;
FOR i IN l_globalSegTab.segment_code.first ..
l_globalSegTab.segment_code.last
LOOP
l_gseg_enabled := l_globalSegTab.enable_flag(i);
BEGIN
l_gseg_sql := ' SELECT ' || l_yes || '
FROM ' || l_table_name || ' WHERE ' || p_key_col || ' = ' || p_key_col_val
|| ' AND ' ||
l_globalSegTab.column_name(i) || ' IS NULL ';
EXECUTE IMMEDIATE l_gseg_sql into
l_invalid;
EXCEPTION
WHEN OTHERS THEN
pjb_invoice_generation.WriteLog(PJB_BILLING_UTILS.LEVEL_FINEST, l_FunctionName,
'Exception in validating the Global Segs for ' || p_dff_code );
x_isValid := 'N';
x_return_status := 'U';
x_msg_data := 'Exception in validating the Global Segs for '
|| p_dff_code;
END;
END IF;
END LOOP;
ELSE
pjb_invoice_generation.WriteLog(PJB_BILLING_UTILS.LEVEL_FINEST,
l_FunctionName, 'No Global Segments setup for the DFF ' || p_dff_code );
END IF;
----------------------------------------------
------------ Handle Context Segments----------
----------------------------------------------
IF x_isValid <> 'N' THEN -- Any exception in processing the Global Segments
BEGIN
SELECT required_flag INTO l_context_req
FROM fnd_df_segments_b
WHERE descriptive_flexfield_code = p_dff_code
AND column_name = 'ATTRIBUTE_CATEGORY'
AND segment_code = 'Context Segment';
EXCEPTION
WHEN NO_DATA_FOUND THEN
pjb_invoice_generation.WriteLog(PJB_BILLING_UTILS.LEVEL_FINEST,
l_FunctionName, 'No Context/ContextSegments were setup for the DFF ' || p_dff_code
);
END;
--
IF l_invalid <> 'Y' AND l_context_req IS NOT NULL THEN ---- When valid GSeg
and any context seg setup
LOOP
FOR i IN l_contextTab.attribute_category.first ..
l_contextTab.attribute_category.last
LOOP
ELSE
LOOP
l_contextSegTab.application_id,l_contextSegTab.descriptive_flexfield_code,l_context
SegTab.context_code,
l_contextSegTab.segment_code,l_contextSegTab.column_name,l_contextSegTab.enable_fla
g,
l_contextSegTab.required_flag
LIMIT 100;
FOR i IN l_contextSegTab.segment_code.first ..
l_contextSegTab.segment_code.last
LOOP
IF l_contextSegTab.required_flag(i)= 'Y'
and l_contextSegTab.enable_flag(i) = 'Y' THEN
BEGIN
l_contextSeg_sql := ' SELECT '
|| l_yes || ' FROM ' || l_table_name || ' WHERE ' || p_key_col || ' = ' ||
p_key_col_val
EXCEPTION
WHEN NO_DATA_FOUND THEN
END;
END IF;
END LOOP;
END IF;
END LOOP;
END IF;
ELSE
pjb_invoice_generation.WriteLog(PJB_BILLING_UTILS.LEVEL_FINEST, l_FunctionName,
'No DFFs Configured... ');
x_return_status := 'S';
x_isValid := 'Y';
x_msg_data := 'No DFFs Configured';
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
x_return_status := 'S';
x_msg_data := '';
x_msg_count := '' ;
END PJB_UI_UTILS;