• 视图名称:维修工单实际成本数据 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

CDS标准视图:维修工单实际成本数据 I_MaintOrderActualCostDataCube的更多相关文章

  1. 【ASP.NET MVC系列】浅谈ASP.NET MVC 视图与控制器传递数据

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  2. HTML5(字符标准,表单)

    字符标准 <meta charset="utf-8"> 表单 1.HTML 表单用于搜集不同类型的用户输入. 实例——创建文本字段 <form action=&q ...

  3. django做form表单的数据验证

    我们之前写的代码都没有对前端input框输入的数据做验证,我们今天来看下,如果做form表单的数据的验证 在views文件做验证 首先用文字描述一下流程 1.在views文件中导入forms模块 2. ...

  4. MySQL单表数据不超过500万:是经验数值,还是黄金铁律?

    今天,探讨一个有趣的话题:MySQL 单表数据达到多少时才需要考虑分库分表?有人说 2000 万行,也有人说 500 万行.那么,你觉得这个数值多少才合适呢? 曾经在中国互联网技术圈广为流传着这么一个 ...

  5. MySQL单表数据不要超过500万行:是经验数值,还是黄金铁律?

    本文阅读时间大约3分钟. 梁桂钊 | 作者 今天,探讨一个有趣的话题:MySQL 单表数据达到多少时才需要考虑分库分表?有人说 2000 万行,也有人说 500 万行.那么,你觉得这个数值多少才合适呢 ...

  6. odoo 给列表视图添加按钮实现数据文件导入

    实践环境 Odoo 14.0-20221212 (Community Edition) 代码实现 模块文件组织结构 说明:为了更好的表达本文主题,一些和主题无关的文件.代码已略去 odoo14\cus ...

  7. from表单提交数据之后,后台对象接受不到值

    如果SSH框架下,前段页面通过from表单提交数据之后,在后台对象显示空值,也就是接收不到值得情况下.首先保证前段输入框有值,这个可以在提交的时候用jQuery的id或者name选择器alert弹出测 ...

  8. 视图(View)与部分视图(Partial View)之间数据传递

    写ASP.NET MVC程序,我们经常需要把数据从视图(View)传递至部分视图(Partial View) 或者相反. 今天Insus.NET使用 ControllerBase.TempData 进 ...

  9. HTML中表单提交数据GET、POST的区别

    表单提交数据Get和Post的区别: GET和POST是表单提交数据其中的两种方式,除此之外还有PUT.DELETE等. GET: GET的请求起因于正常的URL请求,或是没有指定METHOD的HTM ...

  10. struts_表单得到数据

    在大家学习struts表达式语言的时候经常会遇到,从表单的提交上面得到数据, 而如何将表单的数据得到呢? 下面就介绍其中的一种方式: :以类的方式进行注入我们以login为例子 首先可以在struts ...

随机推荐

  1. NOIP2024模拟11:忠于自我

    NOIP2024模拟11:忠于自我 T1 一句话题意:有若干个容量为 \(L\) 的包,从左往右装物品,当前包还能装则装,否则必须重开一个包装进去,对于\(\forall i \in [1,n]\), ...

  2. 学校官网应该使用哪种SSL证书?

    学校官网在选择SSL证书时,应考虑多个因素,包括网站的性质.安全要求.预算以及证书的管理便捷性等.以下是关于学校官网应使用哪种SSL证书的详细分析: 多域名和子域名需求: 如果学校官网有多个子域名或者 ...

  3. Linux系统搭建性能测试监控体系

    一.安装Grafana 1.Grafana介绍(默认端口3000): Grafana是一个开源的监控和可视化工具,用于显示和跟踪各种指标,数据和日志,支持多种源,包括influxDB.promethe ...

  4. ubuntu的apt源更新后只能装php8新版本,无法安装php7老版本了

    新电脑更新apt源以后,发现新装的都是php8.1,而且apt源update后,search也找不到php7了. 于是找到了这篇文章 然后按照他说的做 sudo apt-get update sudo ...

  5. mkdir递归创建文件夹

    mkdir -p  能递归创建文件夹 mkdir 只能创建一级文件夹,如果父文件夹不存在 则报错,所以如果你想用一个很确定的路径 在SHELL脚本里面可以直接写 mkdir -p /home/log/ ...

  6. 返璞归真!使用 alpinejs 开发交互式 web 应用,抛弃 node_modules 和 webpack 吧!

    前言 最近一直在使用 DjangoStarter 开发各种小项目,之前我是比较喜欢前后端分离的,后端用 Ninja API,前端 nextjs,开发起来也挺舒服的,交互体验也比较好. 不过我在网上冲浪 ...

  7. ElementUI Select单选切换多选无法清除历史数据的解决方案

    背景: 有一个tab切换,每一个tab下都有一个 下拉框,只是一个是多选一个是单选,问题是当切换tab标签的时候,下拉框的样式不会被清空. 解决方案: 只需要在 el-select 上加一个 key ...

  8. 移动端自动化之uiautomator2

    github: https://github.com/openatx/uiautomator2 [安装] pip3 install -U uiautomator2# 安装UI Inspector -- ...

  9. WxPython跨平台开发框架之参数配置管理界面的设计和实现

    我曾经在2014年在随笔<Winform开发框架之参数配置管理功能实现-基于SettingsProvider.net的构建>介绍过基于.NET开发的参数配置管理界面,本篇随笔基于类似的效果 ...

  10. Visual Studio 使用IISprofile进行远程部署

      ​