• 视图名称:维修工单实际成本数据 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. CSP 2024-S 游记 黑暗的枷锁

    09-21 今天考完了初赛,明显感觉数学门槛变高了一些,有高中数学知识才能保证看得懂题意,只是苦了小学和初中同学,看数据参加人数还涨了50%,权当拉低分数线了吧.用小图灵估分70.应该是稳过. 09- ...

  2. 4. jenkins的配置

    Maven安装和配置 ​ 在Jenkins集成服务器上,我们需要安装Maven来编译和打包项目. 安装Maven 先上传Maven软件到192.168.66.101 tar -xzf apache-m ...

  3. 居然都到 7.x版本了!!!雷池 WAF 社区版 7.x 的体验记录

    雷池 WAF 简介 雷池 WAF,英文名 "SafeLine",由长亭科技出品的一款 Web 应用防火墙,可以保护 Web 服务不受黑客攻击,早年就以 "智能语义分析技术 ...

  4. delphi Image32 图像采样

    图像数据采样 代码: 1 unit uFrmImageResampling; 2 3 interface 4 5 uses 6 Winapi.Windows, Winapi.Messages, Win ...

  5. 微服务探索之路05篇jenkins构建net6和vue docker镜像到Harbor自动更新k8s服务镜像

    从1-4篇已经学习了docker Harbor k8s的基本用法.接下来进阶一下使用jenkins结合起来做到自动部署项目. 1 安装jenkins 1.1前提条件 docker环境,可参考第01篇安 ...

  6. 黑盒视角下的RESTful API安全测试

    目录 前言 关于OWASP API TOP 10 REST API接口测试思路 接口权限测试 接口校验测试 接口滥用测试 总结 前言 RESTful API(或称RESTful Web API)在线开 ...

  7. 实现 Java 多线程并发控制框架

    Java 提供了语言级别的线程支持,所以在 Java 中使用多线程相对于 C,C++ 来说更简单便捷,但本文并不是介绍如何在 Java 中使用多线程来来解决诸如 Web services, Numbe ...

  8. 指针, C语言的精髓

    指针, C语言的精髓 莫队先咕几天, 容我先讲完树剖 (因为后面树上的东西好多都要用树剖求 LCA). 什么是指针 保存变量地址的变量叫做指针. 这是大概的定义, 但是Defad认为这个定义不太好理解 ...

  9. seldom-platform:颠覆传统的自动化测试平台

    seldom-platform:颠覆传统的自动化测试平台 seldom-platform是一个自动化测试平台,其特点是让会写代码的测试人员能够通过seldom框架高效地完成自动化用例的编写,并将剩下的 ...

  10. ArkTs布局入门01——线性布局(Row/Column)

    1.概述 布局指用特定的组件或者属性来管理用户页面所放置UI组件的大小和位置.组件按照布局的要求依次排列,构成应用的页面. 在声明式UI中,所有的页面都是由自定义组件构成,开发者可以根据自己的需求,选 ...