• 视图名称:维修工单实际成本数据 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. C:二进制向十进制变换

    #include<stdio.h> int main() { char z[66]; scanf("%s",z); unsigned long long sum=0; ...

  2. 【填算符】(log 值域的做法)

    比赛在这里呢 填算符 下发题解说的神马东西,赛时根本想不到 讲一个赛时想得到的 \(O(n\log 值域)\) 的思路,很好理解 我们处理出二进制下每一位上的 1 的最后一次出现的位置,将第 \(i\ ...

  3. 终于找到了英特尔CPU缩缸的原因!如何自救?

    地址: https://www.youtube.com/watch?v=D0wOiillq_A

  4. 本地代理web端口

    先配置 使用ssh 通过ProxyCommand:利用跳板机让不在同一局域网的机器ssh直连 代理访问 ssh -qTfnND 127.0.0.1:$代理端口 代理机器主机名

  5. python岭迹图绘制函数

    一.岭迹图是什么? 岭迹图(Ridge Trace Plot)是一种可视化工具,用于展示岭回归中正则化参数($\alpha$)对回归系数的影响.它能帮助我们理解特征的稳定性和正则化在控制模型复杂度中的 ...

  6. tsconfig配置详解

    { "compilerOptions": { /* Basic Options */ "target": "es5" /* target用于 ...

  7. 【多线程】Java并发中的锁(草稿)

    可重入锁Synchronized 1 public class DemoTest { 2 public static void main(String[] args) { 3 final DemoTe ...

  8. springgateway 路由转发

    有些情况下,我们希望不直接访问后端地址,这个时候可以通过springgateway网关进行处理.下面只是一个简单的例子. 至于URL,变化,我们可以通过编写程序逻辑来实现. 实现步骤: 1.新建项目 ...

  9. ZCMU-1038

    其实感觉不太难,读懂题意就行,我一开始没有仔细去读感觉就很懵.其题目意思就是一段字符串含有数字和'<'或者'>',一开始从左开始遍历,遇到'>'这类东西换方向,如果有多次遇到就删之前 ...

  10. (系列十四)Vue3+WebApi 搭建动态菜单

    说明 该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发). 该系统文章,我会尽量说的非常详细,做到不管新手.老手都能看懂. 说明:OverallAuth2 ...