Loading

CDS标准视图:维修工单实际成本数据 I_MaintOrderActualCostDataCube

  • 视图名称:维修工单实际成本数据 I_MaintOrderActualCostDataCube
  • 视图类型:基础
  • 视图代码:
点击查看代码
@VDM.viewType: #COMPOSITE
@AbapCatalog.sqlViewName: 'IMTORDACTCOSTDC'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Maint Order Actual Cost Data - Cube'
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.dataClass:  #MIXED
@ObjectModel.usageType.serviceQuality: #C
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.supportedCapabilities: [#ANALYTICAL_PROVIDER] -- ATC check
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API
@Analytics: {
    dataCategory: #CUBE,
    dataExtraction: {
        enabled: true
    }
}
@Metadata: {
  ignorePropagatedAnnotations,
  allowExtensions
}

define view I_MaintOrderActualCostDataCube
  as select from I_JournalEntryItem
  //association [0..1] to I_Currency                  as _DisplayCurrency           on  _DisplayCurrency.Currency = $projection.displaycurrency
  association [0..1] to I_Currency                  as _Currency           on  _Currency.Currency = $projection.CompanyCodeCurrency
                                                                                        and _Currency.Currency = $projection.GlobalCurrency
                                                                                        and _Currency.Currency = $projection.TransactionCurrency
//  association [0..1] to I_Indicator                 as _MaintenanceOrderIsPlanned on  _MaintenanceOrderIsPlanned.IndicatorValue = $projection.MaintenanceOrderIsPlanned
  //association [0..1] to P_EquipmentClfnStandardClass as _EquipmentClfnStandardClass on  _EquipmentClfnStandardClass.Equipment = I_JournalEntryItem.Equipment
  association [0..1] to I_MaintenanceOrder          as _MaintenanceOrder          on  _MaintenanceOrder.MaintenanceOrder = I_JournalEntryItem.OrderID
  association [0..1] to E_MaintenanceOrder          as _MaintenanceOrderExtension          on  _MaintenanceOrderExtension.MaintenanceOrder = I_JournalEntryItem.OrderID
//  association [0..1] to I_TechnicalObject           as _TechnicalObject           on  _TechnicalObject.TechnicalObject           = $projection.technicalobject
//                                                                                  and _TechnicalObject.TechObjIsEquipOrFuncnlLoc = $projection.techobjisequiporfuncnlloc
//  association [0..1] to I_TechObjIsEquipOrFuncnlLoc as _TechObjIsEquipOrFuncnlLoc on  _TechObjIsEquipOrFuncnlLoc.TechObjIsEquipOrFuncnlLoc = $projection.techobjisequiporfuncnlloc
  association [0..1] to I_GLAccountLineItem         as _GLAccountLineItem         on  _GLAccountLineItem.SourceLedger       = $projection.SourceLedger
                                                                                  and _GLAccountLineItem.CompanyCode        = $projection.CompanyCode
                                                                                  and _GLAccountLineItem.FiscalYear         = $projection.FiscalYear
                                                                                  and _GLAccountLineItem.AccountingDocument = $projection.AccountingDocument
                                                                                  and _GLAccountLineItem.LedgerGLLineItem   = $projection.LedgerGLLineItem
                                                                                  and _GLAccountLineItem.Ledger             = $projection.Ledger
  //  association [0..*] to I_GLAccountHierarchyNodeT    as _GLAccountHierarchyNodeText on  _GLAccountHierarchyNodeText.GLAccountHierarchy = $projection.GLAccountHierarchyID
  //                                                                                    and _GLAccountHierarchyNodeText.HierarchyNode = $projection.CostElementGroup
  //                                                                                    and _GLAccountHierarchyNodeText.ValidityEndDate >= $session.system_date
//  association [0..*] to I_GLAccountHierarchyNodeT   as _CostElementGroupText      on  $projection.GLAccountHierarchy        = _CostElementGroupText.GLAccountHierarchy
//                                                                                  and $projection.CostElementGroup          = _CostElementGroupText.HierarchyNode
//                                                                                  and _CostElementGroupText.ValidityEndDate = '99991231'

  --and _CostElementGroupText.Language           = $session.system_language
{
      //I_JournalEntryItem
  key SourceLedger,
  key CompanyCode,
      @ObjectModel.foreignKey.association: null -- association hidden to prevent Fiscal Year-to-Company Code aggregation
  key FiscalYear,
  key AccountingDocument,
  key LedgerGLLineItem,
  key Ledger,

      _CalendarDate.CalendarMonth                                                                                                                                                                                                                                                                                                      as PostingMonth,
//      @Consumption.hidden: true
      PostingDate,
      FiscalPeriod,
      FiscalYearVariant,
      OrderID                                                                                                                                                                                                                                                                                                                          as MaintenanceOrder,
      _MaintenanceOrder.MaintenanceOrderType                                                                                                                                                                                                                                                                                           as MaintenanceOrderType,

//      @ObjectModel.foreignKey.association: '_MaintenanceOrderIsPlanned'
      MaintenanceOrderIsPlanned,
      MaintenanceOrderPlanningCode,

      @Semantics.currencyCode:true
      @ObjectModel.foreignKey.association: '_Currency'
      CompanyCodeCurrency,

//      @Semantics.currencyCode:true
//      @ObjectModel.foreignKey.association: '_DisplayCurrency'
//      cast(:P_DisplayCurrency as vdm_v_display_currency preserving type )                                                                                                                                                                                                                                                              as DisplayCurrency,

      // @Consumption.valueHelpDefinition: [{ entity: { name: 'I_ClfnClassVH', element: 'Class' }}]
      // _EquipmentClfnStandardClass.Class                                                                                                                                                                    as EquipmentType,
      // @Consumption.valueHelpDefinition: [{ entity: { name: 'I_ClfnClassVH', element: 'Class' }}]
      // _EquipmentClfnStandardClass.ParentClass                                                                                                                                                              as EquipmentClassFromClfn,
      // @Consumption.hidden: true
      // _EquipmentClfnStandardClass.ClassInternalID,
      // @Consumption.hidden: true
      // _EquipmentClfnStandardClass.ValidityStartDate,
      // @Consumption.hidden: true
      // _EquipmentClfnStandardClass.ValidityEndDate,

//      @Consumption.hidden: true
      _MaintenanceOrder.WorkCenterInternalID                                                                                                                                                                                                                                                                                           as MainWorkCenterInternalID,
      _MaintenanceOrder._MainWorkCenter.WorkCenter                                                                                                                                                                                                                                                                                     as MaintOrdMainWorkCenter,
      @ObjectModel.foreignKey.association: '_MaintOrdMainWorkCenterPlant'
//      @Consumption.groupWithElement: 'MaintenanceOrder'
      _MaintenanceOrder._MainWorkCenter.Plant                                                                                                                                                                                                                                                                                          as MaintOrdMainWorkCenterPlant,
      _MaintenanceOrder.MaintenancePlannerGroup,
      _MaintenanceOrder.MaintenancePlan,
      _MaintenanceOrder.MaintenanceItem,
      _MaintenanceOrder._LocationAccountAssignment.PlantSection,
      _MaintenanceOrder._LocationAccountAssignment.AssetLocation,
      _MaintenanceOrder._LocationAccountAssignment.ABCIndicator,

      I_JournalEntryItem._WorkCenter.WorkCenter,
      I_JournalEntryItem._WorkCenter.Plant                                                                                                                                                                                                                                                                                             as WorkCenterPlant,
//      @Consumption.hidden: true
//      I_JournalEntryItem.Equipment,
//      @Consumption.hidden: true
      WorkCenterInternalID,
      MaintenanceActivityType,
//      @EndUserText.label: 'Operation'
      OrderOperation,
//      @EndUserText.label: 'Suboperation'
      OrderSuboperation,

      case when ControllingDebitCreditCode = 'A' then 'X' else '' end                                                                                                                                                                                                                                                                  as IsSettlement,

//      @ObjectModel.foreignKey.association: '_TechnicalObject'
//      @UI.hidden
//      case when Equipment = '' then
//                  cast( FunctionalLocation as eams_tec_obj )
//           else cast( Equipment as eams_tec_obj ) end                                                                                                                                                                                                                                                                                  as TechnicalObject,
//
//      @ObjectModel.text.element: ['TechnicalObjectDescription']
//      @Consumption.valueHelpDefinition: [{ entity: { name : 'C_TechnicalObjectLabelVH', element: 'TechnicalObjectLabel' },
//                                           additionalBinding: [{ localElement: 'TechObjIsEquipOrFuncnlLoc', element: 'TechObjIsEquipOrFuncnlLoc' }] }]
//      case when Equipment = '' then
//                  cast( _FunctionalLocation._FunctionalLocationLabel.FunctionalLocationLabelName as eams_tech_obj_conv )
//           else cast( Equipment as eams_tech_obj_conv ) end                                                                                                                                                                                                                                                                            as TechnicalObjectLabel,
//
//      @Semantics.text
//      case when Equipment = '' then
//                  cast( _FunctionalLocation._FunctionalLocationText[1: Language = $session.system_language ].FunctionalLocationName as eams_tec_obj_des preserving type )
//           else cast( _Equipment._EquipmentText[1: Language = $session.system_language ].EquipmentName as eams_tec_obj_des preserving type ) end                                                                                                                                                                                       as TechnicalObjectDescription,
//
//      @ObjectModel.foreignKey.association: '_TechObjIsEquipOrFuncnlLoc'
//      cast( case when Equipment = '' and FunctionalLocation = '' then ''
//            else case when Equipment = '' then 'EAMS_FL'
//            else 'EAMS_EQUI' end end as eams_tec_obj_type_value )                                                                                                                                                                                                                                                                      as TechObjIsEquipOrFuncnlLoc,
      I_JournalEntryItem.Equipment,
      I_JournalEntryItem._Equipment._EquipmentText[1: Language = $session.system_language ].EquipmentName,
      I_JournalEntryItem.FunctionalLocation,
      I_JournalEntryItem._FunctionalLocation._FunctionalLocationLabel.FunctionalLocationLabelName,
      I_JournalEntryItem._FunctionalLocation._FunctionalLocationText[1: Language = $session.system_language ].FunctionalLocationName,
      cast( coalesce( _Equipment.ManufacturerPartTypeName, _FunctionalLocation.ManufacturerPartTypeName ) as typbz preserving type )                                                                                                                                                                                                   as ManufacturerPartTypeName,
      Assembly,
      cast( coalesce(_Equipment.TechnicalObjectType, _FunctionalLocation.TechnicalObjectType) as eqart preserving type )                                                                                                                                                                                                               as TechnicalObjectType,
      cast( coalesce(_Equipment.AssetManufacturerName, _FunctionalLocation.AssetManufacturerName) as herst preserving type )                                                                                                                                                                                                           as AssetManufacturerName,
      _MaintenanceOrder.MaintenancePlanningPlant,
      _MaintenanceOrder._LocationAccountAssignment.MaintenancePlant,
      GLAccount,
      ControllingArea,
      CostCenter,
      _MaintenanceOrder._LocationAccountAssignment.ControllingArea as LocAcctAssgmtControllingArea,
      _MaintenanceOrder._LocationAccountAssignment.CostCenter as LocAcctAssgmtCostCenter,
      _MaintenanceOrder.ResponsibleCostCenter,
      _MaintenanceOrder._MaintenanceNotification.CatalogProfile,
      _Equipment._CurrentTimeSegment.ConstructionMaterial,
//      @UI.hidden: true
      ChartOfAccounts,
//      @UI.hidden
//      @Consumption.filter.mandatory: null
      _GLAccountInChartOfAccounts._GLAccountHierarchyNode[ 1: GLAccountHierarchy = GLAccountHierarchy and NodeType = 'L' and ValidityEndDate = '99991231' ].GLAccountHierarchy as GLAccountHierarchy,
//      @ObjectModel.text.association: '_CostElementGroupText'
      _GLAccountInChartOfAccounts._GLAccountHierarchyNode[ 1: GLAccountHierarchy = GLAccountHierarchy and NodeType = 'L' and ValidityEndDate = '99991231' ].ParentNode                                                                                                                                                   as CostElementGroup,
      @Semantics.systemDateTime.lastChangedAt: true
      LastChangeDateTime,

      @DefaultAggregation: #SUM
      @Semantics.amount.currencyCode: 'CompanyCodeCurrency'
//      @EndUserText.quickInfo: 'Costs in Company Code Currency'
      AmountInCompanyCodeCurrency,
      @Semantics.currencyCode:true
      @ObjectModel.foreignKey.association: '_Currency'
      GlobalCurrency,
      @Semantics.amount.currencyCode: 'GlobalCurrency'
//      @EndUserText.quickInfo: 'Costs in Global Currency'
      @DefaultAggregation: #SUM
      AmountInGlobalCurrency,
      @Semantics.currencyCode:true
      @ObjectModel.foreignKey.association: '_Currency'
      TransactionCurrency,
      @Semantics.amount.currencyCode: 'TransactionCurrency'
//      @EndUserText.quickInfo: 'Costs in Transaction Currency'
      @DefaultAggregation: #SUM
      AmountInTransactionCurrency,

//      @DefaultAggregation: #SUM
//      @Semantics.amount.currencyCode: 'DisplayCurrency'
//      @EndUserText.quickInfo: 'Costs in Display Currency'
//      currency_conversion(
//        amount => AmountInCompanyCodeCurrency,
//        source_currency => CompanyCodeCurrency,
//        target_currency => :P_DisplayCurrency,
//        exchange_rate_date => PostingDate,
//        exchange_rate_type => :P_ExchangeRateType,
//        round => 'true',
//        decimal_shift => 'true',
//        decimal_shift_back => 'true'
//      )                                                                                                                                                                                                                                                                                                                                as AmountInDisplayCurrency,

//      _MaintenanceOrderIsPlanned,
      _CompanyCodeCurrency,
      _MaintenanceOrder,
      _MaintenanceOrder._MaintenanceOrderType,
      _MaintenanceOrder._MaintenancePlanningPlant,
      _MaintenanceOrder._MainWorkCenter._Plant                                                                                                                                                                                                                                                                                         as _MaintOrdMainWorkCenterPlant,
      _FiscalYear,
      _CalendarDate._CalendarMonth,
      _MaintenanceOrder._LocationAccountAssignment._MaintenancePlant,
      _MaintenanceOrder._MaintenanceNotification._TechnicalObjectCodeCatalog,
      _Equipment._CurrentTimeSegment._ConstructionMaterial,
      _CostCenter,
      _CalendarDate,
      _GLAccountInChartOfAccounts,
      _GLAcctInChartOfAccountsText,
      _ChartOfAccounts,
      _MaintOrdPlngDegreeCode,
      _MaintenanceOrder._LocationAccountAssignment._PlantSection,
      _Ledger,
      _GLAccountLineItem,
//      _EquipmentClfnStandardClass,
//      _TechnicalObject,
//      _TechObjIsEquipOrFuncnlLoc,
      _Currency,
//      _CostElementGroupText,
      _GlobalCurrency,
      _TransactionCurrency,
      _FunctionalLocation,
      _Equipment
}
where
       OrderCategory              = '30'
  and  _Order.OrderCategory       = '30' -- ensures that we are not selecting historical orders, where the category would be '31'.
  and(
       ControllingDebitCreditCode = 'H'
    or ControllingDebitCreditCode = 'L'
    or ControllingDebitCreditCode = 'S'
  )
//  and ControllingDebitCreditCode != replace(
//    $parameters.P_OpIsIncludedInCosting, 'NO', 'A'
//  )
  • 事务代码:IW33/IW39

  • 视图结构:

字段名称 技术名称
源分类账 SOURCELEDGER
公司代码 COMPANYCODE
会计年度 FISCALYEAR
日记账分录 ACCOUNTINGDOCUMENT
日记账分录项目 LEDGERGLLINEITEM
分类账 LEDGER
日历月 POSTINGMONTH
过账日期 POSTINGDATE
会计期间 FISCALPERIOD
会计年度变式 FISCALYEARVARIANT
订单标识 MAINTENANCEORDER
订单类型 MAINTENANCEORDERTYPE
计划部分/工作 MAINTENANCEORDERISPLANNED
订单计划标识 MAINTENANCEORDERPLANNINGCODE
公司代码货币 COMPANYCODECURRENCY
工作中心 MAINWORKCENTERINTERNALID
工作中心 MAINTORDMAINWORKCENTER
工厂 MAINTORDMAINWORKCENTERPLANT
计划人员组 MAINTENANCEPLANNERGROUP
维护计划 MAINTENANCEPLAN
维护项目 MAINTENANCEITEM
厂区 PLANTSECTION
位置 ASSETLOCATION
ABC 标识 ABCINDICATOR
工作中心 WORKCENTER
工厂 WORKCENTERPLANT
对象标识 WORKCENTERINTERNALID
维护作业类型 MAINTENANCEACTIVITYTYPE
活动 ORDEROPERATION
子工序 ORDERSUBOPERATION
ISSETTLEMENT
设备 EQUIPMENT
描述 EQUIPMENTNAME
功能位置 FUNCTIONALLOCATION
功能位置 FUNCTIONALLOCATIONLABELNAME
描述 FUNCTIONALLOCATIONNAME
型号 MANUFACTURERPARTTYPENAME
装配 ASSEMBLY
对象类型 TECHNICALOBJECTTYPE
制造商 ASSETMANUFACTURERNAME
计划工厂 MAINTENANCEPLANNINGPLANT
维护工厂 MAINTENANCEPLANT
总账科目 GLACCOUNT
成本控制范围 CONTROLLINGAREA
成本中心 COSTCENTER
成本控制范围 LOCACCTASSGMTCONTROLLINGAREA
成本中心 LOCACCTASSGMTCOSTCENTER
负责成本中心 RESPONSIBLECOSTCENTER
类别参数文件 CATALOGPROFILE
构造类型 CONSTRUCTIONMATERIAL
科目表 CHARTOFACCOUNTS
总账科目层次结构 GLACCOUNTHIERARCHY
父节点 COSTELEMENTGROUP
最后更改时间 LASTCHANGEDATETIME
以公司代码货币计金额 AMOUNTINCOMPANYCODECURRENCY
全球货币 GLOBALCURRENCY
以全球货币计的金额 AMOUNTINGLOBALCURRENCY
交易货币 TRANSACTIONCURRENCY
以交易货币计的金额 AMOUNTINTRANSACTIONCURRENCY

posted @ 2025-01-07 11:35  观兴  阅读(1)  评论(0编辑  收藏  举报