I_BlockFuncForEntProject is a Composite CDS View that provides data about "Basic view for block function calculation" in SAP S/4HANA. It reads from 1 data source (I_PPM_ProjectSummaryTask) and exposes 2 fields with key field ProjectUUID.
@AbapCatalog.sqlViewName: 'IROJBLOCKFUNC'
@AbapCatalog.compiler.compareFilter: true@AbapCatalog.preserveKey: true@AccessControl.authorizationCheck: #NOT_REQUIRED@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED@VDM: {
viewType: #COMPOSITE
}@ObjectModel: {
usageType: {
serviceQuality: #C,
dataClass: #MIXED,
sizeCategory: #L
}
}
@ClientHandling.algorithm: #SESSION_VARIABLE@EndUserText.label: 'Basic view for block function calculation'
defineview I_BlockFuncForEntProject asselectfrom I_PPM_ProjectSummaryTask as ProjectElement
leftouter to one join I_EntProjElmntBlockFunc as EntProjTimeRecgIsBlkd
on ProjectElement.ProjectSummaryTaskUUID = EntProjTimeRecgIsBlkd.ParentObjectUUID
and EntProjTimeRecgIsBlkd.EntProjElementFunctionID = 'S001'
leftouter to one join I_EntProjElmntBlockFunc as EntProjStaffExpensePostgIsBlkd
on ProjectElement.ProjectSummaryTaskUUID = EntProjStaffExpensePostgIsBlkd.ParentObjectUUID
and EntProjStaffExpensePostgIsBlkd.EntProjElementFunctionID = 'S003'
leftouter to one join I_EntProjElmntBlockFunc as EntProjServicePostingIsBlkd
on ProjectElement.ProjectSummaryTaskUUID = EntProjServicePostingIsBlkd.ParentObjectUUID
and EntProjServicePostingIsBlkd.EntProjElementFunctionID = 'S002'
leftouter to one join I_EntProjElmntBlockFunc as EntProjOtherExpensePostgIsBlkd
on ProjectElement.ProjectSummaryTaskUUID = EntProjOtherExpensePostgIsBlkd.ParentObjectUUID
and EntProjOtherExpensePostgIsBlkd.EntProjElementFunctionID = 'S004'
leftouter to one join I_EntProjElmntBlockFunc as EntProjProcurementIsBlkd
on ProjectElement.ProjectSummaryTaskUUID = EntProjProcurementIsBlkd.ParentObjectUUID
and EntProjProcurementIsBlkd.EntProjElementFunctionID = 'S005'
{
key ProjectElement.ProjectUUID,
ProjectElement.ProjectSummaryTaskUUID as ParentObjectUUID,
casewhen EntProjTimeRecgIsBlkd.EntProjElementFunctionIsBlkd isnullthen ' '
else EntProjTimeRecgIsBlkd.EntProjElementFunctionIsBlkd
endas EntProjTimeRecgIsBlkd,
casewhen EntProjStaffExpensePostgIsBlkd.EntProjElementFunctionIsBlkd isnullthen ' '
else EntProjStaffExpensePostgIsBlkd.EntProjElementFunctionIsBlkd
endas EntProjStaffExpensePostgIsBlkd,
casewhen EntProjServicePostingIsBlkd.EntProjElementFunctionIsBlkd isnullthen ' '
else EntProjServicePostingIsBlkd.EntProjElementFunctionIsBlkd
endas EntProjServicePostingIsBlkd,
casewhen EntProjOtherExpensePostgIsBlkd.EntProjElementFunctionIsBlkd isnullthen ' '
else EntProjOtherExpensePostgIsBlkd.EntProjElementFunctionIsBlkd
endas EntProjOtherExpensePostgIsBlkd,
casewhen EntProjProcurementIsBlkd.EntProjElementFunctionIsBlkd isnullthen ' '
else EntProjProcurementIsBlkd.EntProjElementFunctionIsBlkd
endas EntProjPurchasingIsBlkd
}
where
ProjectElement.ProjectCategory <> '7'
;