@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Reservation Document Object Page'
@ObjectModel.usageType:{
serviceQuality: #X,
sizeCategory: #L,
dataClass: #MIXED
}
@Metadata.allowExtensions: true
@VDM.viewType: #CONSUMPTION
@Search.searchable: false
define view entity C_ReservationDocOPg
as select from I_ReservationDocumentHeader as _ReservationDocumentHeader
association [0..*] to C_ReservationDocItemOPg as _ReservationDocumentItem on $projection.Reservation = _ReservationDocumentItem.Reservation
association [0..1] to I_ResvnCalculatedFilters as _ResvnCalculatedFilters on $projection.Reservation = _ResvnCalculatedFilters.Reservation
association [0..1] to I_UserDescription as _CreatedByUser on $projection.UserID = _CreatedByUser.UserID
association [0..1] to I_ResvnCategoryDetermination as _ResvnCategoryDetermination on $projection.Reservation = _ResvnCategoryDetermination.Reservation
{
key _ReservationDocumentHeader.Reservation,
@ObjectModel.text.element: ['OrderDescription']
_ReservationDocumentHeader.OrderID,
@Semantics.text:true
_ReservationDocumentHeader._Order.OrderDescription as OrderDescription,
@UI.hidden: true
@Semantics.booleanIndicator:true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_IMRS_FIELD_CNTRL_CALC_EXIT'
cast( '' as boole_d) as UICT_OrderID,
@ObjectModel.text.element: ['GoodsMovementTypeName']
@UI.textArrangement: #TEXT_FIRST
_ReservationDocumentHeader.GoodsMovementType,
@Semantics.text:true
_ReservationDocumentHeader._GoodsMovementType._Text[1:Language=$session.system_language].GoodsMovementTypeName as GoodsMovementTypeName,
@ObjectModel.text.element: ['CostCenterName']
_ReservationDocumentHeader.CostCenter,
_ReservationDocumentHeader.ReservationDate,
@Semantics.text:true
// _CostCenterText._Text[1:Language=$session.system_language].CostCenterName as CostCenterName,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_IMRS_FIELD_CNTRL_CALC_EXIT'
cast( '' as abap.char( 30 ) ) as CostCenterName,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_IMRS_FIELD_CNTRL_CALC_EXIT'
cast( '' as boole_d) as UICT_CostCenter,
_ResvnCalculatedFilters.NmbrOfCompletedResvnDocItms,
_ResvnCalculatedFilters.NmbrOfResvnDocItems,
_ResvnCalculatedFilters.ResvnDocCompletionPrgrsCritlty,
_ReservationDocumentHeader.ProfitCenter,
@UI.hidden: true
@Semantics.booleanIndicator:true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_IMRS_FIELD_CNTRL_CALC_EXIT'
cast( '' as boole_d) as UICT_ProfitCenter,
_ReservationDocumentHeader.ProfitabilitySegment_2 as ProfitabilitySegment,
@UI.hidden: true
@Semantics.booleanIndicator:true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_IMRS_FIELD_CNTRL_CALC_EXIT'
cast( '' as boole_d) as UICT_ProfitabilitySegment,
_ReservationDocumentHeader.ControllingArea,
_ReservationDocumentHeader.GoodsRecipientName,
@UI.hidden: true
@Semantics.booleanIndicator:true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_IMRS_FIELD_CNTRL_CALC_EXIT'
cast( '' as boole_d) as UICT_GoodsRecipientName,
_ReservationDocumentHeader.IsCheckedAgainstFactoryCal,
_ReservationDocumentHeader.Customer,
_ReservationDocumentHeader.SalesOrder,
@UI.hidden: true
@Semantics.booleanIndicator:true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_IMRS_FIELD_CNTRL_CALC_EXIT'
cast( '' as boole_d) as UICT_SalesOrder,
_ReservationDocumentHeader.SalesOrderItem,
@UI.hidden: true
@Semantics.booleanIndicator:true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_IMRS_FIELD_CNTRL_CALC_EXIT'
cast( '' as boole_d) as UICT_SalesOrderItem,
_ReservationDocumentHeader.SalesOrderScheduleLine,
@UI.hidden: true
@Semantics.booleanIndicator:true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_IMRS_FIELD_CNTRL_CALC_EXIT'
cast( '' as boole_d) as UICT_SalesOrderScheduleLine,
_ReservationDocumentHeader.AssetNumber,
@UI.hidden: true
@Semantics.booleanIndicator:true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_IMRS_FIELD_CNTRL_CALC_EXIT'
cast( '' as boole_d) as UICT_AssetNumber,
_ReservationDocumentHeader.AssetSubNumber,
@UI.hidden: true
@Semantics.booleanIndicator:true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_IMRS_FIELD_CNTRL_CALC_EXIT'
cast( '' as boole_d) as UICT_AssetSubNumber,
_ReservationDocumentHeader.IssuingOrReceivingPlant,
@UI.hidden: true
@Semantics.booleanIndicator:true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_IMRS_FIELD_CNTRL_CALC_EXIT'
cast( '' as boole_d) as UICT_IssuingOrReceivingPlant,
_ReservationDocumentHeader.IssuingOrReceivingStorageLoc,
@UI.hidden: true
@Semantics.booleanIndicator:true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_IMRS_FIELD_CNTRL_CALC_EXIT'
cast( '' as boole_d) as UICT_IssuingOrReceivingStorage,
cast ( _ReservationDocumentHeader.WBSElementInternalID as ps_s4_pspnr preserving type ) as WBSElementInternalID,
@UI.hidden: true
@Semantics.booleanIndicator:true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_IMRS_FIELD_CNTRL_CALC_EXIT'
cast( '' as boole_d) as UICT_WBSElementInternalID,
//Calculated field for order number visibility
@UI.hidden: true
@Semantics.booleanIndicator:true
@ObjectModel.virtualElement: true
case when _ResvnCategoryDetermination.ReservationCategory = '050' or
_ResvnCategoryDetermination.ReservationCategory = '100' or
_ResvnCategoryDetermination.ReservationCategory = '030' and _ReservationDocumentItem [ 1: ReservationItem = '0001' and RecordType = '' ].ServiceDocument is null or
_ResvnCategoryDetermination.ReservationCategory = '040' or
(_ResvnCategoryDetermination.ReservationCategory = '070' or _ResvnCategoryDetermination.ReservationCategory = '080' or _ResvnCategoryDetermination.ReservationCategory = '090') and _ReservationDocumentHeader.OrderID is null
then 'X'
else cast( '' as boole_d)
end as UICT_ResvnCategoryReference,
/**
* Plant maintenance - 080 - Order Id need to be displayed
* Process Order - 090 - Order Id need to be displayed
* Production Order - 070 - Order Id need to be displayed
* EPPM - 040 - WBS External ID Id need to be displayed
* Service Order - 030 - Service Document Id
* MRP Stock transfer - 050 - Dont display Order id
* Network Reservation - 100 - Dont display Order id
*/
case when _ResvnCategoryDetermination.ReservationCategory = '030'
then _ReservationDocumentItem [ 1: ReservationItem = '0001' and RecordType = '' ].ServiceDocument
// when _ResvnCategoryDetermination.ReservationCategory = '040'
// then _WBSElementBasicData.WBSElementExternalID
when _ResvnCategoryDetermination.ReservationCategory = '070' or
_ResvnCategoryDetermination.ReservationCategory = '080' or
_ResvnCategoryDetermination.ReservationCategory = '090'
then _ReservationDocumentHeader.OrderID
else ''
end as ResvnCategoryReference,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_IMRS_FIELD_CNTRL_CALC_EXIT'
cast( '' as abap.char( 30 ) ) as ResvnCategoryReferenceLabel,
@ObjectModel.text.element: ['WBSDescription']
_ReservationDocumentHeader._WBSElementBasicData.WBSElementExternalID as WBSElement,
_ReservationDocumentHeader._WBSElementBasicData.WBSDescription,
cast ( _ReservationDocumentItem [ 1: ReservationItem = '0001' and RecordType = '' ].Plant as werks_d preserving type) as Plant,
_ReservationDocumentHeader.NetworkNumberForAcctAssgmt,
_ReservationDocumentHeader.ResvnVerificationCompanyCode,
@ObjectModel.text.element: ['CreatedByUserName']
_ReservationDocumentHeader.UserID,
@Semantics.text:true
_CreatedByUser.UserDescription as CreatedByUserName,
_ReservationDocumentHeader.CreationDateTime,
_ReservationDocumentHeader.LastChangedByUser,
_ReservationDocumentHeader.LastChangeDateTime,
@ObjectModel.text.element: ['ReservationCategoryName']
@UI.textArrangement: #TEXT_ONLY
_ResvnCategoryDetermination.ReservationCategory as ReservationCategory,
@Semantics.text:true
_ResvnCategoryDetermination._ReservationCategory._ReservationCategoryText[1:Language=$session.system_language].ReservationCategoryName as ReservationCategoryName,
/* Associations */
_ReservationDocumentHeader._ControllingArea,
_ReservationDocumentHeader._CostCenter,
_ReservationDocumentHeader._Customer,
_ReservationDocumentHeader._GoodsMovementType,
_ReservationDocumentHeader._Order,
_ReservationDocumentHeader._ProfitCenter,
_ReservationDocumentHeader._VerificationCompanyCode,
_ReservationDocumentItem
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"C_RESERVATIONDOCITEMOPG",
"I_GOODSMOVEMENTTYPE",
"I_GOODSMOVEMENTTYPET",
"I_LOGISTICSORDER",
"I_RESERVATIONCATEGORY",
"I_RESERVATIONCATEGORYTEXT",
"I_RESERVATIONDOCUMENTHEADER",
"I_RESVNCALCULATEDFILTERS",
"I_RESVNCATEGORYDETERMINATION",
"I_USERDESCRIPTION",
"I_WBSELEMENTBASICDATA"
],
"ASSOCIATED":
[
"C_RESERVATIONDOCITEMOPG",
"I_COMPANYCODE",
"I_CONTROLLINGAREA",
"I_COSTCENTER",
"I_CUSTOMER",
"I_GOODSMOVEMENTTYPE",
"I_LOGISTICSORDER",
"I_PROFITCENTER"
],
"BASE":
[
"I_RESERVATIONDOCUMENTHEADER"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/