I_MAINTENANCEORDERCOMPONENT

CDS View

Maintenance Order Component

I_MAINTENANCEORDERCOMPONENT is a CDS View in S/4HANA. Maintenance Order Component. It contains 1 fields. 3 CDS views read from this table.

CDS Views using this table (3)

ViewTypeJoinVDMDescription
I_MaintOrderOpCompLongText view inner BASIC Maintenance Order Op Component Long Text
P_MaintOrdCompScheduleLine view inner COMPOSITE
R_MaintOrderOpComponentTP view_entity from TRANSACTIONAL Maintenance Order Operation Component TP

Fields (1)

KeyField CDS FieldsUsed in Views
KEY MaintenanceOrder MaintenanceOrder 1
@AbapCatalog.sqlViewName: 'IMAINTORDCOMP'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Maintenance Order Component'
@VDM.viewType: #BASIC

@ObjectModel.representativeKey: 'MaintenanceOrderComponent'
@ObjectModel.semanticKey:  [ 'MaintenanceOrder', 'MaintenanceOrderOperation', 'MaintenanceOrderComponent' ]

@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@ObjectModel.usageType.serviceQuality: #B
@ObjectModel.usageType.sizeCategory: #XL
@VDM.lifecycle.status: #DEPRECATED
@VDM.lifecycle.successor: 'I_MaintenanceOrderComponent_2'
define view I_MaintenanceOrderComponent
  as select from           resb
    left outer to one join aufk               on resb.aufnr = aufk.aufnr
    left outer join        rsdb as rsdb_banfn on  rsdb_banfn.rsnum =  resb.rsnum
                                              and rsdb_banfn.rspos =  resb.rspos
                                              and rsdb_banfn.rsart =  resb.rsart
                                              and rsdb_banfn.banfn <> ''
    left outer join        rsadd              on  resb.rsnum = rsadd.rsnum
                                              and resb.rspos = rsadd.rspos
                                              and resb.rsart = rsadd.rsart
  association [0..1] to I_MaintenanceOrder            as _MaintenanceOrder            on  _MaintenanceOrder.MaintenanceOrder = $projection.MaintenanceOrder
  association [0..1] to I_MaintenanceOrderOperation   as _MaintenanceOrderOperation   on  _MaintenanceOrderOperation.MaintenanceOrder           = $projection.MaintenanceOrder
                                                                                      and _MaintenanceOrderOperation.MaintOrderRoutingNumber    = $projection.MaintOrderRoutingNumber
                                                                                      and _MaintenanceOrderOperation.MaintOrderOperationCounter = $projection.MaintOrderOperationCounter
  association [0..1] to I_Material                    as _Material                    on  _Material.Material = $projection.Material
  association [0..*] to I_MaterialText                as _MaterialText                on  _MaterialText.Material = $projection.Material
  association [0..1] to I_MaterialGroup               as _MaterialGroup               on  _MaterialGroup.MaterialGroup = $projection.MaterialGroup
  association [0..1] to I_StorageLocation             as _StorageLocation             on  _StorageLocation.Plant           = $projection.Plant
                                                                                      and _StorageLocation.StorageLocation = $projection.StorageLocation
  association [0..1] to I_Supplier                    as _Supplier                    on  _Supplier.Supplier = $projection.Supplier
  association [0..1] to I_StatusObject                as _StatusObject                on  _StatusObject.StatusObject = $projection.MaintOrderComponentInternalID
  association [0..1] to I_Plant                       as _Plant                       on  _Plant.Plant = $projection.Plant
  association [0..1] to I_PMUnitOfMeasureVH           as _UnitOfMeasure               on  _UnitOfMeasure.UnitOfMeasure = $projection.BaseUnit
  association [0..1] to I_PMUnitOfMeasureVH           as _UnitOfMeasureEntry          on  _UnitOfMeasureEntry.UnitOfMeasure = $projection.UnitOfEntry
  association [0..1] to I_SafetyRelevance             as _SafetyRelevance             on  _SafetyRelevance.SafetyRelevantObjectType = 'MA'
                                                                                      and _SafetyRelevance.SafetyRelevantObject     = $projection.Material
  association [0..*] to I_BomItemCategoryText         as _ItemCategoryText            on  _ItemCategoryText.BillOfMaterialItemCategory = $projection.ItemCategory
  association [0..1] to I_Purchaserequisitionitem     as _PurchaseRequisitionItem     on  _PurchaseRequisitionItem.PurchaseRequisition     = $projection.PurchaseRequisition
                                                                                      and _PurchaseRequisitionItem.PurchaseRequisitionItem = $projection.PurchaseRequisitionItem
  association [0..1] to I_Indicator                   as _ReservationIsFinallyIssued  on  $projection.ReservationIsFinallyIssued = _ReservationIsFinallyIssued.IndicatorValue
  association [0..1] to I_ProductTypeCode             as _ProductTypeCode             on  _ProductTypeCode.ProductTypeCode = $projection.ProductTypeCode
  association [0..1] to I_ReservationItem             as _ReservationItem             on  _ReservationItem.Reservation     = $projection.Reservation
                                                                                      and _ReservationItem.ReservationItem = $projection.ReservationItem
                                                                                      and _ReservationItem.RecordType      = $projection.ReservationType
  association [0..1] to I_PurReqnOrResvnGeneration    as _PurReqnOrResvnGeneration    on  $projection.PurReqnOrResvnGeneration = _PurReqnOrResvnGeneration.PurReqnOrResvnGeneration
  association [0..*] to I_StatusObjectActiveStatus    as _StatusObjectActiveStatus    on  $projection.MaintOrderComponentInternalID = _StatusObjectActiveStatus.StatusObject
  association [0..*] to I_MaintOrdCompDelivDateAdjmtT as _MaintOrdCompDelivDateAdjmtT on  $projection.MaintOrdCompDeliveryDateAdjmt = _MaintOrdCompDelivDateAdjmtT.MaintOrdCompDeliveryDateAdjmt
{
      @ObjectModel.foreignKey.association: '_MaintenanceOrder'
  key resb.aufnr                                              as MaintenanceOrder,
  key resb.vornr                                              as MaintenanceOrderOperation,
      //  key resb.uvorn                                              as MaintenanceOrderSubOperation,

  key resb.posnr                                              as MaintenanceOrderComponent,
      resb.rsnum                                              as Reservation,
      @ObjectModel.foreignKey.association: '_ReservationItem'
      resb.rspos                                              as ReservationItem,
      resb.rsart                                              as ReservationType,
      resb.uvorn                                              as MaintenanceOrderSubOperation,

      @ObjectModel.text.association: '_MaterialText'
      resb.matnr                                              as Material,
      resb.potx1                                              as ComponentDescription,

      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      @DefaultAggregation: #NONE
      resb.bdmng                                              as RequirementQuantityInBaseUnit,
      @ObjectModel.foreignKey.association: '_UnitOfMeasure'
      @Semantics.unitOfMeasure:true
      resb.meins                                              as BaseUnit,

      @Semantics.quantity.unitOfMeasure: 'UnitOfEntry'
      @DefaultAggregation: #NONE
      resb.erfmg                                              as QuantityInUnitOfEntry,
      @ObjectModel.foreignKey.association: '_UnitOfMeasureEntry'
      @Semantics.unitOfMeasure:true
      resb.erfme                                              as UnitOfEntry,

      resb.bdter                                              as RequirementDate,
      resb.bdztp                                              as RequirementTime,
      resb.lifnr                                              as Supplier,

      @ObjectModel.foreignKey.association: '_Plant'
      resb.werks                                              as Plant,
      @ObjectModel.foreignKey.association: '_StorageLocation'
      resb.lgort                                              as StorageLocation,
      //      @ObjectModel.foreignKey.association: '_MaintenanceOrderOperation'

      resb.aufpl                                              as MaintOrderRoutingNumber,

      resb.aplzl                                              as MaintOrderOperationCounter,

      resb.objnr                                              as MaintOrderComponentInternalID,
      @ObjectModel.text.association: '_ItemCategoryText'
      resb.postp                                              as ItemCategory,
      @ObjectModel.foreignKey.association: '_MaterialGroup'
      resb.matkl                                              as MaterialGroup,
      -- careful: XLOEK refers to the reservation! After confirmation of order, reservation is always "deleted"
      -- --> see logic in composite view, where we check the system status
      resb.xloek                                              as IsDeleted,
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      @DefaultAggregation: #NONE
      resb.enmng                                              as QuantityWithdrawnInBaseUnit,

      @ObjectModel.foreignKey.association: '_PurReqnOrResvnGeneration'
      cast(
        case
            when resb.no_disp = '1' then '1'
            when resb.no_disp = 'X' then '2'
            when resb.no_disp = '' then '3'
        end as purreqnorresvngeneration)                      as PurReqnOrResvnGeneration,


      @ObjectModel.foreignKey.association: '_ReservationIsFinallyIssued'
      resb.kzear                                              as ReservationIsFinallyIssued,

      //      cast(

      //        case when resb.dbskz = 'F' then 'X' else ' ' end as xfeld

      //      )                                             as MaterialCompIsProcuredDirectly,

      cast(
        case when resb.dbskz = 'F' then 'X'
        end as xfeld )                                        as MaterialCompIsProcuredDirectly,
      //_DirectProcurement.PurchaseRequisition,

      //_DirectProcurement.PurchaseRequisitionItem,

      //      coalesce( rsdb_banfn.banfn, resb.banfn )      as PurchaseRequisition,

      //      coalesce( rsdb_banfn.bnfpo, resb.bnfpo )      as PurchaseRequisitionItem,

      rsdb_banfn.banfn                                        as PurchaseRequisition,
      rsdb_banfn.bnfpo                                        as PurchaseRequisitionItem,

      @ObjectModel.foreignKey.association: '_ProductTypeCode'
      resb.producttype                                        as ProductTypeCode,
      resb.startdate                                          as PerformancePeriodStartDate,
      resb.enddate                                            as PerformancePeriodEndDate,
      resb.performanceperiodstarttime                         as PerformancePeriodStartTime,
      resb.performanceperiodendtime                           as PerformancePeriodEndTime,
      @Semantics.quantity.unitOfMeasure: 'LeanServiceDurationUnit'
      resb.serviceduration                                    as LeanServiceDuration,
      resb.servicedurationunit                                as LeanServiceDurationUnit,
      resb.funct                                              as DistributionFunction,
      cast(
        case
            when resb.kzmpf = 'X' then 'M'
            when resb.funct = 'S10' then ''
            when resb.funct = 'S50' then 'X'
        end as cc4_delvry_date_adj preserving type )          as MaintOrdCompDeliveryDateAdjmt,
      resb.operationworkcenteralignment                       as SrvcSchedgIsAlignedWthOpWrkCtr,
      resb.serviceperformer                                   as ServicePerformer,
      resb.bwart                                              as GoodsMovementType,

      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      cast(resb.enmng as pph_enmng preserving type)           as WithdrawnQuantity,
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      cast(resb.vmeng as pph_vmeng preserving type)           as ConfirmedAvailableQuantity,
      // Debit-Credit Indicator

      resb.shkzg                                              as MaintOrderCompDebitCreditCode,
      -- Field Logistics:
      @Feature: 'BF:FIELD_LOGISTICS'
      // Note: After removal of feature toggle, @Feature shall be switched to BF:FIELD_LOGISTICS

      resb.fldlogsdelivisheldonshore                          as FldLogsDelivIsHeldOnShore,
      @Feature: 'BF:FIELD_LOGISTICS'
      resb.fldlogssupplyprocess                               as FldLogsSupplyProcess,

      //      case when resb.banfn != '' then resb.banfn

      //        else rsdb_banfn.banfn end                                as  PurchaseRequisition,

      //

      //      case when resb.bnfpo != '00000' then resb.bnfpo

      //        else rsdb_banfn.bnfpo end                                as  PurchaseRequisitionItem,

      //

      //      '' as PurchaseOrder,

      //      '' as PurchaseOrderItem,


      resb.xwaok                                              as GoodsMovementIsAllowed,
      resb.charg                                              as MaintenanceOrderComponentBatch,
      resb.fmeng                                              as QuantityIsFixed,
      @Semantics.currencyCode: true
      resb.waers                                              as MaintOrdOpComponentCurrency,
      //resb.kdauf                                        as SalesOrderNumber,

      //resb.kdpos                                        as SalesOrderItemNumber,

      resb.saknr                                              as MaintOrdOpComponentGLAccount,
      //      @Semantics.quantity.unitOfMeasure: 'BaseUnit'

      //      resb.nomng                                        as QUANTITYINUNITOFENTRY,

      resb.sanka                                              as MaintOrdOpCompCostingRelevancy,
      resb.ewahr                                              as MaintCompAltvProdUsgeRateInPct,
      resb.sortf                                              as MaintOrderOpComponentSortText,
      resb.schgt                                              as MaintOrdOpCompIsBulkProduct,
      resb.beikz                                              as MaterialProvisionType,
      cast( resb.pspel as ps_s4_pspnr preserving type )       as MaintOrdOpCompAssgdWBSElmntInt,
      @Semantics.amount.currencyCode: 'MaintOrdOpComponentCurrency'
      @DefaultAggregation: #NONE
      resb.gpreis                                             as MaintOrderOpComponentPrice,
      resb.peinh                                              as MaintOrdOpCompPriceUnitQty,
      resb.rgekz                                              as MatlCompIsMarkedForBackflush,
      resb.ekgrp                                              as PurchasingGroup,
      resb.lifzt                                              as DeliveryTimeInDays,
      resb.wempf                                              as MaintOrdOpCompGdsRecipientName,
      resb.ablad                                              as MaintOrdOpCompUnloadingPtTxt,
      resb.webaz                                              as GoodsReceiptDurationInWorkDays,
      resb.infnr                                              as PurchasingInfoRecord,
      @Semantics.quantity.unitOfMeasure: 'OpsLeadTimeOffsetUnit'
      resb.nlfzv                                              as OperationLeadTimeOffset,
      @Semantics.unitOfMeasure:true
      resb.nlfmv                                              as OpsLeadTimeOffsetUnit,
      //      rsdb.afnam                                       as MaintOrdOpCompRequisitioner,

      rsadd.bednr                                             as MaintOrdOpCompProcmtTrckgNmbr,
      rsadd.ekorg                                             as ResponsiblePurchaseOrg,
      resb.ebeln                                              as MaintOrdOpCompPurOutlineAgrmt,
      resb.ebelp                                              as MaintOrdCompPurOutlineAgrmtItm,
      //rsdb_banfn.ebeln                                  as AgreementNumber,

      //rsdb_banfn.ebelp                                  as AgreementItem,

      cast( rsdb_banfn.aobar as ps_s4_aobar preserving type ) as OrderOpRelationshipIntType,
      @Semantics.unitOfMeasure:true
      rsdb_banfn.zeinh                                        as OpRelshpOffsetDurationUnit,
      @Semantics.quantity.unitOfMeasure: 'OpRelshpOffsetDurationUnit'
      rsdb_banfn.dauer                                        as OpRelshpOffsetDuration,
      resb.dbskz                                              as MaintOrdCompIsDirectlyProcured,
      resb.sobkz                                              as MaintOrdOpCompSpecialStockType,
      @Semantics.quantity.unitOfMeasure: 'VariableSizeDimensionUnit'
      resb.roms1                                              as VariableSizeDimension1,
      @Semantics.unitOfMeasure:true
      resb.romei                                              as VariableSizeDimensionUnit,
      resb.rform                                              as VariableSizeCompFormulaKey,
      @Semantics.quantity.unitOfMeasure: 'VariableSizeDimensionUnit'
      resb.roms2                                              as VariableSizeDimension2,
      cast(resb.roanz as vdm_roanz)                           as NumberOfVariableSizeItem,
      @Semantics.quantity.unitOfMeasure: 'VariableSizeDimensionUnit'
      resb.roms3                                              as VariableSizeDimension3,
      @Semantics.quantity.unitOfMeasure: 'VariableSizeComponentUnit'
      resb.romen                                              as VariableSizeItemQuantity,
      @Semantics.unitOfMeasure:true
      resb.rokme                                              as VariableSizeComponentUnit,
      resb.kzmpf                                              as RqmtDateIsEnteredManually,
      rsadd.idnlf                                             as SupplierProduct,
      rsadd.afnam                                             as MaintOrdOpCompRequisitioner,
      @Semantics.amount.currencyCode: 'MaintOrdOpComponentCurrency'
      rsadd.overalllimitamount                                as OverallLimitAmount,
      @Semantics.amount.currencyCode: 'MaintOrdOpComponentCurrency'
      rsadd.expectedoveralllimitamount                        as ExpectedOverallLimitAmount,
      resb.maintordcompcmtdqtyiskept                          as MaintOrdCompCmtdQtyIsKept,
      rsadd.catalogid                                         as MaintOrdOpCompProcmtCatalog,
      rsadd.catalog_prod_id                                   as MaintOrdOpCompProcmtCatalogItm,

      // associations:

      _MaintenanceOrder,
      _MaintenanceOrderOperation,
      _Material,
      _MaterialText,
      _MaterialGroup,
      _StorageLocation,
      _Plant,
      _ItemCategoryText,
      _UnitOfMeasure,
      _UnitOfMeasureEntry,
      _StatusObject,
      _SafetyRelevance,
      _Supplier,
      _PurchaseRequisitionItem,
      _ReservationIsFinallyIssued,
      _ProductTypeCode,
      _ReservationItem,
      _PurReqnOrResvnGeneration,
      _StatusObjectActiveStatus,
      _MaintOrdCompDelivDateAdjmtT
}
where
  aufk.autyp = '30'