@VDM.viewType: #CONSUMPTION
@VDM.usage.type:[#TRANSACTIONAL_PROCESSING_SERVICE]
@ObjectModel: { usageType: { serviceQuality: #C,
sizeCategory: #L,
dataClass: #MIXED },
semanticKey: ['SupplyProtectionName', 'Plant', 'Material']
}
@Consumption.dbHints: ['NO_SUBPLAN_SHARING']
@AccessControl: {
authorizationCheck: #MANDATORY
}
@Metadata.allowExtensions: true
@AbapCatalog.extensibility: {
extensible: true,
elementSuffix: 'ASU',
allowNewDatasources: false,
dataSources: ['SupplyProtection'],
quota: {
maximumFields: 204,
maximumBytes: 2040
}
}
@Search.searchable: true
@EndUserText.label: 'Supply Protection'
define root view entity C_SupplyProtectionTP
provider contract transactional_query
as projection on I_SupplyProtectionTP as SupplyProtection
{
@UI.hidden: true
key SupplyProtectionUUID,
@Search.defaultSearchElement: true
SupplyProtectionName,
@Search.defaultSearchElement: true
@ObjectModel.text.element: ['MaterialName']
Material,
@Consumption.filter.hidden: true
@Search.defaultSearchElement: true
_MaterialText.MaterialName : localized,
@Semantics.unitOfMeasure: true
UnitOfMeasure,
@Search.defaultSearchElement: true
@ObjectModel.text.element: ['PlantName']
Plant,
@Consumption.filter.hidden: true
@Search.defaultSearchElement: true
_Plant.PlantName,
SupProtIsPlanningContextSlsOrd,
SupProtIsPlanningContextSTO,
@UI.hidden: true
SupProtCharcCatalogType,
@Search.defaultSearchElement: true
@ObjectModel.text.element: ['SupProtPlanningPeriodTypeText']
SupProtPlanningPeriodType,
@Consumption.filter.hidden: true
@Search.defaultSearchElement: true
_SupProtPlanningPeriodTypeT.SupProtPlanningPeriodTypeText : localized,
@Consumption.filter.selectionType:#INTERVAL
SupProtPlanningPeriodStartDate,
@Consumption.filter.selectionType:#INTERVAL
SupProtPlanningPeriodEndDate,
SupProtAutomActivationIsActive,
@Consumption.filter.selectionType:#INTERVAL
SupProtAutomActivationDate,
@UI.hidden: true
CoreCharc01CtlgPathIntID,
@UI.hidden: true
SupProtCoreCharc01CtlgPathUUID,
SupProtCoreCharc01Text,
@Search.defaultSearchElement: true
SupProtCoreCharc01ValueID,
@UI.hidden: true
CoreCharc02CtlgPathIntID,
@UI.hidden: true
SupProtCoreCharc02CtlgPathUUID,
SupProtCoreCharc02Text,
@Search.defaultSearchElement: true
SupProtCoreCharc02ValueID,
@Search.defaultSearchElement: true
@ObjectModel.text.element: ['SupProtLifecycleStatusText']
SupProtLifecycleStatus,
@Consumption.filter.hidden: true
@Search.defaultSearchElement: true
_SupProtLifecycleStatusText.SupProtLifecycleStatusText : localized,
@UI.hidden: true
Criticality,
@Semantics.quantity.unitOfMeasure: 'UnitOfMeasure'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_ATP_SUP_SADL_EXIT_QUANTITY'
cast(SupProtProtectedQuantity as sup_protected_quantity preserving type) as SupProtProtectedQuantity,
@Semantics.quantity.unitOfMeasure: 'UnitOfMeasure'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_ATP_SUP_SADL_EXIT_QUANTITY'
cast(SupProtConsumedQuantity as sup_consumed_quantity preserving type) as SupProtConsumedQuantity,
@Semantics.quantity.unitOfMeasure: 'UnitOfMeasure'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_ATP_SUP_SADL_EXIT_QUANTITY'
cast(SupProtRemainingProtectedQty as sup_remaining_quantity preserving type ) as SupProtRemainingProtectedQty,
@Search.defaultSearchElement: true
CreatedByUser,
@Search.defaultSearchElement: true
_CreatedByUser.UserDescription as CreatedByUserDescription,
@Consumption.filter.selectionType:#INTERVAL
CreationDate,
@Search.defaultSearchElement: true
LastChangedByUser,
@Search.defaultSearchElement: true
_LastChangedByUser.UserDescription as LastChangedByUserDescription,
@Consumption.filter.selectionType:#INTERVAL
LastChangeDate,
@UI.hidden: true
LastChangeDateTime, //necessary for the eTag handling
@UI.hidden: true
CharcValAuthznGroup,
@Consumption.filter.selectionType:#INTERVAL
SupProtActivationDate,
@ObjectModel.text.element: ['SupProtCnsmpnDateTimeTypeText']
SupProtCnsmpnDateTimeType,
@Consumption.filter.hidden: true
_SupProtCnsmpnDateTimeTypeT.SupProtCnsmpnDateTimeTypeText : localized,
@ObjectModel.text.element: ['SupProtSelfRestrictionTypeText']
SupProtSelfRestrictionType,
@Consumption.filter.hidden: true
_SupProtSelfRestrictionTypeT.SupProtSelfRestrictionTypeText : localized,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_ATP_SUP_SADL_EXIT_PLNG_CONS'
SupProtPlngContextIsConsistent,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_ATP_SUP_SADL_EXIT_PLNG_CONS'
SupProtPlngContextCriticality,
@ObjectModel.text.element: ['StorageLocationName']
StorageLocation,
@Consumption.filter.hidden: true
_StorageLocation.StorageLocationName,
@ObjectModel.text.element: ['SupProtPlanningLevelText']
SupProtPlanningLevel,
@Consumption.filter.hidden: true
_SupProtPlanningLevelText.SupProtPlanningLevelText : localized,
/* Associations */
_SupplyProtectionGroupTP : redirected to composition child C_SupplyProtectionGroupTP,
_SupProtCharacteristicTP : redirected to composition child C_SupProtCharacteristicTP,
_SupProtFlexibleTimeBucketTP : redirected to composition child C_SupProtFlexibleTimeBucketTP,
_SupProtRelatedSupProtTP : redirected to C_SupProtRelatedSupProtTP
}
where
SupplyProtectionIsBlocked = ''
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_MATERIALTEXT",
"I_PLANT",
"I_STORAGELOCATION",
"I_SUPPLYPROTECTIONTP",
"I_SUPPROTCNSMPNDATETIMETYPET",
"I_SUPPROTLIFECYCLESTATUSTEXT",
"I_SUPPROTPLANNINGLEVELTEXT",
"I_SUPPROTPLANNINGPERIODTYPET",
"I_SUPPROTSELFRESTRICTIONTYPET",
"I_USER"
],
"ASSOCIATED":
[
"C_SUPPLYPROTECTIONGROUPTP",
"C_SUPPROTCHARACTERISTICTP",
"C_SUPPROTFLEXIBLETIMEBUCKETTP",
"C_SUPPROTRELATEDSUPPROTTP",
"I_SUPPLYPROTECTIONGROUPTP",
"I_SUPPROTCHARACTERISTICTP",
"I_SUPPROTFLEXIBLETIMEBUCKETTP",
"I_SUPPROTRELATEDSUPPROTTP"
],
"BASE":
[
"I_SUPPLYPROTECTIONTP"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/