A_Equipment

DDL: A_EQUIPMENT Type: view_entity COMPOSITE

Equipment

A_Equipment is a Composite CDS View that provides data about "Equipment" in SAP S/4HANA. It reads from 2 data sources (I_Equipment, I_EquipmentTimeSeg) and exposes 104 fields with key fields Equipment, ValidityEndDate. It has 8 associations to related views.

Data Sources (2)

SourceAliasJoin Type
I_Equipment I_Equipment left_outer
I_EquipmentTimeSeg I_EquipmentTimeSeg from

Associations (8)

CardinalityTargetAliasCondition
[0..*] A_EquipmentText _Text $projection.Equipment = _Text.Equipment
[0..1] I_EquipmentStatus _EquipmentStatus $projection.Equipment = _EquipmentStatus.Equipment
[0..1] P_EquipHasSubOrdinateEquipment _EquipHasSubOrdinateEquipment _EquipHasSubOrdinateEquipment.Equipment = $projection.Equipment -- Extensions, do not expose as association:
[0..1] E_Equipment _EquipmentExtension _EquipmentExtension.Equipment = $projection.Equipment
[0..*] A_EquipmentClfnClass _Classification
[0..*] A_EquipmentPartner _Partner
[1..1] A_EquipmentLongText _LongText
[0..*] A_EquipmentWarrantyAssgmt _Warranty

Annotations (8)

NameValueLevelField
AccessControl.authorizationCheck #CHECK view
EndUserText.label Equipment view
Metadata.ignorePropagatedAnnotations true view
VDM.lifecycle.contract.type #PUBLIC_REMOTE_API view
VDM.viewType #COMPOSITE view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #MASTER view

Fields (104)

KeyFieldSource TableSource FieldDescription
KEY Equipment I_EquipmentTimeSeg Equipment
KEY ValidityEndDate I_EquipmentTimeSeg ValidityEndDate
ValidityEndTime I_EquipmentTimeSeg ValidityEndTime
clientNULLasEquipmentValidityEndDateTime
ValidityStartDate I_EquipmentTimeSeg ValidityStartDate
EquipmentOID I_Equipment EquipmentOID
EquipmentName
EquipmentCategory I_Equipment EquipmentCategory
TechnicalObjectType I_Equipment TechnicalObjectType
AuthorizationGroup I_Equipment AuthorizationGroup
GrossWeight I_Equipment GrossWeight
GrossWeightUnit I_Equipment GrossWeightUnit
SizeOrDimensionText I_Equipment SizeOrDimensionText
InventoryNumber I_Equipment InventoryNumber
OperationStartDate I_Equipment OperationStartDate
AcquisitionValue I_Equipment AcquisitionValue
Currency I_Equipment Currency
AcquisitionDate I_Equipment AcquisitionDate
AssetManufacturerName I_Equipment AssetManufacturerName
ManufacturerPartTypeName I_Equipment ManufacturerPartTypeName
ManufacturerCountry I_Equipment ManufacturerCountry
ConstructionYear I_Equipment ConstructionYear
ConstructionMonth I_Equipment ConstructionMonth
ManufacturerPartNmbr I_EquipmentTimeSeg ManufacturerPartNmbr
ManufacturerSerialNumber I_Equipment ManufacturerSerialNumber
EquipmentEndOfUseDate I_Equipment EquipmentEndOfUseDate
MaintenancePlant
AssetLocation
AssetRoom
PlantSection
WorkCenter
WorkCenterInternalID
WorkCenterPlant
WorkCenterTypeCode I_EquipmentTimeSeg WorkCenterTypeCode
ABCIndicator
MaintObjectFreeDefinedAttrib
AddressID
FormOfAddress
BusinessPartnerName1
BusinessPartnerName2
CityName
HouseNumber
HouseNumberSupplementText
Building
Floor
RoomNumber
PostalCode
StreetName
Region
Country
PhoneNumber
FaxNumber
CompanyCode
BusinessArea
MasterFixedAsset
FixedAsset
CostCenter
ControllingArea
WBSElementExternalID
SettlementOrder
MaintenancePlanningPlant I_EquipmentTimeSeg MaintenancePlanningPlant
MaintenancePlannerGroup I_EquipmentTimeSeg MaintenancePlannerGroup
MainWorkCenter
MainWorkCenterInternalID I_EquipmentTimeSeg WorkCenterInternalID
MainWorkCenterPlant
CatalogProfile I_EquipmentTimeSeg CatalogProfile
FunctionalLocation
FunctionalLocationLabelName
FunctionalLocationName
EquipInstallationPositionNmbr I_EquipmentTimeSeg EquipInstallationPositionNmbr
SuperordinateEquipment I_EquipmentTimeSeg SuperordinateEquipment
TechnicalObjectSortCode I_EquipmentTimeSeg TechnicalObjectSortCode
ConstructionMaterial I_EquipmentTimeSeg ConstructionMaterial
Material I_Equipment Material
SerialNumber I_Equipment SerialNumber
UniqueItemIdentifier I_Equipment UniqueItemIdentifier
UniqueItemIdentifierStrucType I_Equipment UniqueItemIdentifierStrucType
UniqueItemIdentifierRespPlant I_Equipment UniqueItemIdentifierRespPlant
SalesOrganization
DistributionChannel
OrganizationDivision
SalesGroup
SalesOffice
CreationDate I_Equipment CreationDate
CreatedByUser I_Equipment CreatedByUser
LastChangedByUser I_Equipment LastChangedByUser
NextEquipUsagePeriodSqncNmbr I_EquipmentTimeSeg NextEquipUsagePeriodSqncNmbr
MaintObjectLocAcctAssgmtNmbr I_EquipmentTimeSeg MaintObjectLocAcctAssgmtNmbr
MaintObjectInternalID I_Equipment MaintObjectInternalID
EquipUsagePeriodSequenceNumber I_EquipmentTimeSeg EquipUsagePeriodSequenceNumber
EquipmentIsAtCustomer _EquipmentStatus EquipmentIsAtCustomer
EquipmentIsAvailable _EquipmentStatus EquipmentIsAvailable
EquipmentIsInWarehouse _EquipmentStatus EquipmentIsInWarehouse
EquipmentIsAssignedToDelivery _EquipmentStatus EquipmentIsAssignedToDelivery
EquipmentIsMarkedForDeletion _EquipmentStatus EquipmentIsMarkedForDeletion
EquipmentIsInstalled _EquipmentStatus EquipmentIsInstalled
EquipIsAllocToSuperiorEquip _EquipmentStatus EquipIsAllocToSuperiorEquip
EquipmentIsInactive _EquipmentStatus EquipmentIsInactive
EquipHasSubOrdinateEquipment _EquipHasSubOrdinateEquipment EquipHasSubOrdinateEquipment
_Text _Text
_Classification _Classification
_Partner _Partner
_LongText _LongText
_Warranty _Warranty
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Equipment'

@Metadata.ignorePropagatedAnnotations: true
@VDM.lifecycle.contract.type: #PUBLIC_REMOTE_API
@VDM.viewType: #COMPOSITE
@VDM.usage.type: [#TRANSACTIONAL_PROCESSING_SERVICE]
@ObjectModel.usageType: {serviceQuality: #C, sizeCategory: #L, dataClass: #MASTER}

define root view entity A_Equipment
  as select from    I_EquipmentTimeSeg
    left outer join I_Equipment on I_Equipment.Equipment = I_EquipmentTimeSeg.Equipment

  composition [0..*] of A_EquipmentClfnClass           as _Classification
  composition [0..*] of A_EquipmentPartner             as _Partner
  composition [1..1] of A_EquipmentLongText            as _LongText
  composition [0..*] of A_EquipmentWarrantyAssgmt      as _Warranty

  association [0..*] to A_EquipmentText                as _Text                         on $projection.Equipment = _Text.Equipment

  association [0..1] to I_EquipmentStatus              as _EquipmentStatus              on $projection.Equipment = _EquipmentStatus.Equipment

  association [0..1] to P_EquipHasSubOrdinateEquipment as _EquipHasSubOrdinateEquipment on _EquipHasSubOrdinateEquipment.Equipment = $projection.Equipment

  /* Introduced  for 2108 CE */
  //  association [0..1] to I_MaintenancePlannerGroup      as _MaintenancePlannerGroupText on _MaintenancePlannerGroupText.MaintenancePlanningPlant = $projection.MaintenancePlanningPlant

  //                                                                                      and _MaintenancePlannerGroupText.MaintenancePlannerGroup  = $projection.MaintenancePlannerGroup


  -- Extensions, do not expose as association:
  association [0..1] to E_Equipment                    as _EquipmentExtension           on _EquipmentExtension.Equipment = $projection.Equipment

{
      //Header & General Fields

  key I_EquipmentTimeSeg.Equipment,

      @Semantics.businessDate.to: true
  key I_EquipmentTimeSeg.ValidityEndDate,

      I_EquipmentTimeSeg.ValidityEndTime,

      /* Introduced For 2208 CFD */
      @Semantics.dateTime: true
      dats_tims_to_tstmp( I_EquipmentTimeSeg.ValidityEndDate, I_EquipmentTimeSeg.ValidityEndTime,
                        abap_system_timezone( $session.client,'NULL' ),
                        $session.client, 'NULL' )                                                                 as EquipmentValidityEndDateTime,

      @Semantics.businessDate.from: true
      I_EquipmentTimeSeg.ValidityStartDate,

      //MDI_ODM

      I_Equipment.EquipmentOID,

      I_Equipment._EquipmentText[1:Language=$session.system_language].EquipmentName,

      I_Equipment.EquipmentCategory,

      I_Equipment.TechnicalObjectType,

      I_Equipment.AuthorizationGroup,

      @Semantics.quantity.unitOfMeasure: 'GrossWeightUnit'
      I_Equipment.GrossWeight,

      //      @Semantics.unitOfMeasure: true

      I_Equipment.GrossWeightUnit,

      I_Equipment.SizeOrDimensionText,

      I_Equipment.InventoryNumber,

      I_Equipment.OperationStartDate,

      //Reference Data

      @Semantics.amount.currencyCode: 'Currency'
      I_Equipment.AcquisitionValue,

      //      @Semantics.currencyCode:true

      I_Equipment.Currency,

      I_Equipment.AcquisitionDate,

      //Manufacturer Data

      I_Equipment.AssetManufacturerName,

      I_Equipment.ManufacturerPartTypeName,

      I_Equipment.ManufacturerCountry,

      I_Equipment.ConstructionYear,

      I_Equipment.ConstructionMonth,

      I_EquipmentTimeSeg.ManufacturerPartNmbr,

      I_Equipment.ManufacturerSerialNumber,

      I_Equipment.EquipmentEndOfUseDate, //Added EndOfUseDate - 2308 changes


      //Location Fields

      I_EquipmentTimeSeg._LocationAccountAssignment.MaintenancePlant,

      I_EquipmentTimeSeg._LocationAccountAssignment.AssetLocation,

      I_EquipmentTimeSeg._LocationAccountAssignment.AssetRoom,

      I_EquipmentTimeSeg._LocationAccountAssignment.PlantSection,

      I_EquipmentTimeSeg._LocationAccountAssignment._WorkCenter.WorkCenter,

      I_EquipmentTimeSeg._LocationAccountAssignment.WorkCenterInternalID,

      I_EquipmentTimeSeg._LocationAccountAssignment._WorkCenter.Plant                                             as WorkCenterPlant,

      @Consumption: { hidden: true }
      I_EquipmentTimeSeg.WorkCenterTypeCode,

      I_EquipmentTimeSeg._LocationAccountAssignment.ABCIndicator,

      I_EquipmentTimeSeg._LocationAccountAssignment.MaintObjectFreeDefinedAttrib,

      //Address

      @Consumption: { hidden: true }
      I_EquipmentTimeSeg._LocationAccountAssignment.AddressID,

      //      I_EquipmentTimeSeg._LocationAccountAssignment._Address.FormOfAddress, // new field 2108

      I_EquipmentTimeSeg._LocationAccountAssignment._Address2.FormOfAddress, //Added : 2302 CE - Consider fields from I_Address_2


      //      I_EquipmentTimeSeg._LocationAccountAssignment._Address.BusinessPartnerName1,

      I_EquipmentTimeSeg._LocationAccountAssignment._Address2.OrganizationName1                                   as BusinessPartnerName1, //Added : 2302 CE - Consider fields from I_Address_2


      //      I_EquipmentTimeSeg._LocationAccountAssignment._Address.BusinessPartnerName2, // new field 2108

      I_EquipmentTimeSeg._LocationAccountAssignment._Address2.OrganizationName2                                   as BusinessPartnerName2, //Added : 2302 CE - Consider fields from I_Address_2


      //      I_EquipmentTimeSeg._LocationAccountAssignment._Address.CityName,

      I_EquipmentTimeSeg._LocationAccountAssignment._Address2.CityName, //Added : 2302 CE - Consider fields from I_Address_2


      //      I_EquipmentTimeSeg._LocationAccountAssignment._Address.HouseNumber,

      I_EquipmentTimeSeg._LocationAccountAssignment._Address2.HouseNumber, //Added : 2302 CE - Consider fields from I_Address_2


      //      I_EquipmentTimeSeg._LocationAccountAssignment._Address.HouseNumberSupplementText, // new field 2108

      I_EquipmentTimeSeg._LocationAccountAssignment._Address2.HouseNumberSupplementText, //Added : 2302 CE - Consider fields from I_Address_2


      //      I_EquipmentTimeSeg._LocationAccountAssignment._Address.Building, // new field 2108

      I_EquipmentTimeSeg._LocationAccountAssignment._Address2.Building, //Added : 2302 CE - Consider fields from I_Address_2


      //      I_EquipmentTimeSeg._LocationAccountAssignment._Address.Floor, // new field 2108

      I_EquipmentTimeSeg._LocationAccountAssignment._Address2.Floor, //Added : 2302 CE - Consider fields from I_Address_2


      //      I_EquipmentTimeSeg._LocationAccountAssignment._Address.RoomNumber, // new field 2108

      I_EquipmentTimeSeg._LocationAccountAssignment._Address2.RoomNumber, //Added : 2302 CE - Consider fields from I_Address_2


      //      I_EquipmentTimeSeg._LocationAccountAssignment._Address.PostalCode,

      I_EquipmentTimeSeg._LocationAccountAssignment._Address2.PostalCode, //Added : 2302 CE - Consider fields from I_Address_2


      //      I_EquipmentTimeSeg._LocationAccountAssignment._Address.StreetName,

      I_EquipmentTimeSeg._LocationAccountAssignment._Address2.StreetName, //Added : 2302 CE - Consider fields from I_Address_2


      //      I_EquipmentTimeSeg._LocationAccountAssignment._Address.Region,

      I_EquipmentTimeSeg._LocationAccountAssignment._Address2.Region, //Added : 2302 CE - Consider fields from I_Address_2


      //      I_EquipmentTimeSeg._LocationAccountAssignment._Address.Country,

      I_EquipmentTimeSeg._LocationAccountAssignment._Address2.Country, //Added : 2302 CE - Consider fields from I_Address_2


      //      I_EquipmentTimeSeg._LocationAccountAssignment._Address.PhoneNumber,

      I_EquipmentTimeSeg._LocationAccountAssignment._Address2._PhoneNumber.PhoneAreaCodeSubscriberNumber          as PhoneNumber, //Added : 2302 CE - Consider fields from I_Address_2


      //      I_EquipmentTimeSeg._LocationAccountAssignment._Address.FaxNumber,

      I_EquipmentTimeSeg._LocationAccountAssignment._Address2._FaxNumber.FaxAreaCodeSubscriberNumber              as FaxNumber, //Added : 2302 CE - Consider fields from I_Address_2


      //Organization Fields--Account Assignment

      I_EquipmentTimeSeg._LocationAccountAssignment.CompanyCode,

      I_EquipmentTimeSeg._LocationAccountAssignment.BusinessArea,

      I_EquipmentTimeSeg._LocationAccountAssignment.MasterFixedAsset,

      I_EquipmentTimeSeg._LocationAccountAssignment.FixedAsset,

      I_EquipmentTimeSeg._LocationAccountAssignment.CostCenter,

      I_EquipmentTimeSeg._LocationAccountAssignment.ControllingArea,

      I_EquipmentTimeSeg._LocationAccountAssignment._WBSElementBasicData.WBSElementExternalID,

      I_EquipmentTimeSeg._LocationAccountAssignment.SettlementOrder,

      //Responsibilities

      I_EquipmentTimeSeg.MaintenancePlanningPlant,

      I_EquipmentTimeSeg.MaintenancePlannerGroup,

      cast( I_EquipmentTimeSeg._WorkCenter.WorkCenter as gewrk preserving type )                                  as MainWorkCenter,

      I_EquipmentTimeSeg.WorkCenterInternalID                                                                     as MainWorkCenterInternalID,

      cast( I_EquipmentTimeSeg._WorkCenter.Plant as wergw preserving type )                                       as MainWorkCenterPlant,

      I_EquipmentTimeSeg.CatalogProfile,

      //Structure Fields

      cast(I_EquipmentTimeSeg._LocationAccountAssignment.FunctionalLocation as eams_ui_oid_name preserving type ) as FunctionalLocation,

      I_EquipmentTimeSeg._LocationAccountAssignment._FunctionalLocation._FunctionalLocationLabel.FunctionalLocationLabelName,

      I_EquipmentTimeSeg._LocationAccountAssignment._FunctionalLocation._FunctionalLocationText[1:Language=$session.system_language].FunctionalLocationName,

      I_EquipmentTimeSeg.EquipInstallationPositionNmbr,

      I_EquipmentTimeSeg.SuperordinateEquipment,

      I_EquipmentTimeSeg.TechnicalObjectSortCode,

      I_EquipmentTimeSeg.ConstructionMaterial,

      //Serial Data

      I_Equipment.Material,

      //      cast(I_Equipment.SerialNumber as char18 preserving type )                                                   as SerialNumber,

      I_Equipment.SerialNumber,

      I_Equipment.UniqueItemIdentifier,

      I_Equipment.UniqueItemIdentifierStrucType, // new UII field 2111


      I_Equipment.UniqueItemIdentifierRespPlant, // new UII field 2111


      //Sales Data

      I_EquipmentTimeSeg._LocationAccountAssignment.SalesOrganization,

      I_EquipmentTimeSeg._LocationAccountAssignment.DistributionChannel,

      I_EquipmentTimeSeg._LocationAccountAssignment.OrganizationDivision,

      I_EquipmentTimeSeg._LocationAccountAssignment.SalesGroup,

      I_EquipmentTimeSeg._LocationAccountAssignment.SalesOffice,

      //User Fields

      I_Equipment.CreationDate,

      I_Equipment.CreatedByUser,

      I_Equipment.LastChangedByUser,

      /* Additional fields */
      /* If record is latest record (today's), then the timestamp comes from equipment.
         This is because timestamp on equipment catches changes done to EQUI AND EQUZ. Example: AcquisitionValue changed
         If record is an old record (i.e. its validity end date is not in the future), then that time segments timestamp is used.
         This will also prevent any later changes of EQUI to be detected by ODP extractor. However this was discussed to be intended. */
      case when I_EquipmentTimeSeg.ValidityEndDate = '99991231' then I_Equipment.LastChangeDateTime
           else I_EquipmentTimeSeg.LastChangeDateTime end                                                         as LastChangeDateTime,

      I_EquipmentTimeSeg.NextEquipUsagePeriodSqncNmbr,

      I_EquipmentTimeSeg.MaintObjectLocAcctAssgmtNmbr,

      I_Equipment.MaintObjectInternalID,

      I_EquipmentTimeSeg.EquipUsagePeriodSequenceNumber,

      //Status Fields

      _EquipmentStatus.EquipmentIsAtCustomer,

      _EquipmentStatus.EquipmentIsAvailable,

      _EquipmentStatus.EquipmentIsInWarehouse,

      _EquipmentStatus.EquipmentIsAssignedToDelivery,

      _EquipmentStatus.EquipmentIsMarkedForDeletion,

      _EquipmentStatus.EquipmentIsInstalled,

      _EquipmentStatus.EquipIsAllocToSuperiorEquip,

      _EquipmentStatus.EquipmentIsInactive,

      _EquipHasSubOrdinateEquipment.EquipHasSubOrdinateEquipment,

      /* Associations */
      _Text,
      _Classification,
      _Partner,
      _LongText,
      _Warranty
}
where
  I_EquipmentTimeSeg.EquipUsagePeriodSequenceNumber = '001'
//Consider latest entry in the EquipmentUsage in a particular day for an equipment

/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ADDRESSDEFAULTREPRESENTATION",
"I_ADDRESSFAXNUMBER_2",
"I_ADDRESSPHONENUMBER_2",
"I_EQUIPMENT",
"I_EQUIPMENTSTATUS",
"I_EQUIPMENTTEXT",
"I_EQUIPMENTTIMESEG",
"I_FUNCTIONALLOCATION",
"I_FUNCTIONALLOCATIONLABEL",
"I_FUNCTIONALLOCATIONTEXT",
"I_LOCATIONACCOUNTASSIGNMENT",
"I_WBSELEMENTBASICDATA",
"I_WORKCENTER",
"P_EQUIPHASSUBORDINATEEQUIPMENT"
],
"ASSOCIATED":
[
"A_EQUIPMENTCLFNCLASS",
"A_EQUIPMENTLONGTEXT",
"A_EQUIPMENTPARTNER",
"A_EQUIPMENTTEXT",
"A_EQUIPMENTWARRANTYASSGMT"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/