I_BlockFuncForEntProjElmnt 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 (R_EnterpriseProjectElement) and exposes 4 fields with key field TaskUUID. Part of development package PS_BLOCK_FUNCTIONS.
@AbapCatalog.sqlViewName: 'IBLOCKFUNC'
@AbapCatalog.compiler.compareFilter: true@AccessControl.authorizationCheck: #NOT_REQUIRED@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED@VDM: {
viewType: #COMPOSITE
}@ObjectModel: {
usageType: {
serviceQuality: #D,
dataClass: #MIXED,
sizeCategory: #L
}
}
@ClientHandling.algorithm: #SESSION_VARIABLE@EndUserText.label: 'Basic view for block function calculation'
// This viewnot to be used for customer access
defineview I_BlockFuncForEntProjElmnt
asselectfrom R_EnterpriseProjectElement as ProjectElement
leftouter to one join I_EntProjElmntBlockFunc as EntProjTimeRecgIsBlkd on ProjectElement.ProjectElementUUID = EntProjTimeRecgIsBlkd.ParentObjectUUID
and EntProjTimeRecgIsBlkd.EntProjElementFunctionID = 'S001'
leftouter to one join I_EntProjElmntBlockFunc as EntProjStaffExpensePostgIsBlkd on ProjectElement.ProjectElementUUID = EntProjStaffExpensePostgIsBlkd.ParentObjectUUID
and EntProjStaffExpensePostgIsBlkd.EntProjElementFunctionID = 'S003'
leftouter to one join I_EntProjElmntBlockFunc as EntProjServicePostingIsBlkd on ProjectElement.ProjectElementUUID = EntProjServicePostingIsBlkd.ParentObjectUUID
and EntProjServicePostingIsBlkd.EntProjElementFunctionID = 'S002'
leftouter to one join I_EntProjElmntBlockFunc as EntProjOtherExpensePostgIsBlkd on ProjectElement.ProjectElementUUID = EntProjOtherExpensePostgIsBlkd.ParentObjectUUID
and EntProjOtherExpensePostgIsBlkd.EntProjElementFunctionID = 'S004'
leftouter to one join I_EntProjElmntBlockFunc as EntProjProcurementIsBlkd on ProjectElement.ProjectElementUUID = EntProjProcurementIsBlkd.ParentObjectUUID
and EntProjProcurementIsBlkd.EntProjElementFunctionID = 'S005'
{
key ProjectElement.ProjectElementUUID as TaskUUID,
ProjectElement.ProjectUUID as ProjectUUID,
ProjectElement.EntProjectElementObjectType as ObjectType,
ProjectElement.IsProjectMilestone as IsProjectMilestone,
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.IsProjectMilestone <> 'X';