• 视图名称:I_EquipmentData
  • 视图类型:基础视图
  • 视图代码:
点击查看代码
@EndUserText.label: 'Equipment Data'
@VDM.viewType: #COMPOSITE
@AbapCatalog.sqlViewName: 'IEQUIPMENTATTR'
@AbapCatalog.compiler.compareFilter: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.representativeKey: 'Equipment' @AccessControl: {
authorizationCheck: #CHECK,
privilegedAssociations: ['_Location', '_Address', '_EquipmentHierarchyNode','_LOCATIONACCOUNTASSIGNMENT']
} @Analytics: {
dataCategory: #DIMENSION,
dataExtraction: {
enabled: true,
delta.byElement: {
name: 'LastChangeDateTime'
}
}
} @ObjectModel: {
usageType: {
dataClass: #MASTER,
serviceQuality: #C,
sizeCategory: #L
},
supportedCapabilities: [ #EXTRACTION_DATA_SOURCE ]
} @Metadata: {
ignorePropagatedAnnotations,
allowExtensions
} // A more comprehensive view for equipment data, created as a replacement for BW extractor 0EQUIPMENT_ATTR define view I_EquipmentData
as select from I_EquipmentTimeSeg
inner join I_Equipment on I_Equipment.Equipment = I_EquipmentTimeSeg.Equipment
association [0..1] to I_WorkCenterBySemanticKey as _MainWorkCenterBySemanticKey on $projection.MainWorkCenter = _MainWorkCenterBySemanticKey.WorkCenter
and $projection.MainWorkCenterPlant = _MainWorkCenterBySemanticKey.Plant
association [0..1] to I_WorkCenterBySemanticKey as _WorkCenterBySemanticKey on $projection.workcenter = _WorkCenterBySemanticKey.WorkCenter
and $projection.WorkCenterPlant = _WorkCenterBySemanticKey.Plant
association [0..1] to I_WorkCenter as _WorkCenter on $projection.WorkCenterInternalID = _WorkCenter.WorkCenterInternalID
and _WorkCenter.WorkCenterTypeCode = 'A'
association [0..1] to I_Plant as _WorkCenterPlant on $projection.WorkCenterPlant = _WorkCenterPlant.Plant
association [0..1] to I_FunctionalLocationData as _FunctionalLocation on $projection.functionallocation = _FunctionalLocation.FunctionalLocation
association [0..1] to I_Indicator as _EquipmentIsMarkedForDeletion on $projection.EquipmentIsMarkedForDeletion = _EquipmentIsMarkedForDeletion.IndicatorValue
association [0..*] to I_EquipmentHierarchyNode as _EquipmentHierarchyNode on $projection.Equipment = _EquipmentHierarchyNode.Equipment
association [0..1] to I_WBSElementBasicData as _WBSElementBasicData on $projection.WBSElementInternalID = _WBSElementBasicData.WBSElementInternalID
association [0..*] to I_EquipmentText as _EquipmentText on $projection.Equipment = _EquipmentText.Equipment
-- Extensions, do not expose as association:
association [0..1] to E_Equipment as _EquipmentExtension on _EquipmentExtension.Equipment = $projection.Equipment
{
@ObjectModel.text.association: '_EquipmentText'
@ObjectModel.hierarchy.association: '_EquipmentHierarchyNode'
key I_EquipmentTimeSeg.Equipment,
@Semantics.businessDate.to: true
key I_EquipmentTimeSeg.ValidityEndDate,
I_EquipmentTimeSeg.EquipUsagePeriodSequenceNumber, /* Fields, as they appear in InfoObject 0EQUIPMENT */
@ObjectModel.foreignKey.association: '_ABCIndicator'
I_EquipmentTimeSeg._LocationAccountAssignment.ABCIndicator,
@Semantics.amount.currencyCode: 'Currency'
I_Equipment.AcquisitionValue,
@ObjectModel.foreignKey.association: '_Address'
I_EquipmentTimeSeg._LocationAccountAssignment.AddressID,
@ObjectModel.foreignKey.association: '_MasterFixedAsset'
I_EquipmentTimeSeg._LocationAccountAssignment.MasterFixedAsset,
@ObjectModel.foreignKey.association: '_CompanyCode'
I_EquipmentTimeSeg._LocationAccountAssignment.CompanyCode,
@ObjectModel.foreignKey.association: '_CostCenter'
I_EquipmentTimeSeg._LocationAccountAssignment.CostCenter,
@ObjectModel.foreignKey.association: '_ControllingArea'
I_EquipmentTimeSeg._LocationAccountAssignment.ControllingArea,
@Semantics.currencyCode:true
I_Equipment.Currency,
I_Equipment.OperationStartDate,
@ObjectModel.foreignKey.association: '_TechnicalObjectType'
I_Equipment.TechnicalObjectType,
@ObjectModel.foreignKey.association: '_FunctionalLocation'
I_EquipmentTimeSeg._LocationAccountAssignment.FunctionalLocation,
I_Equipment.InventoryNumber,
@ObjectModel.foreignKey.association: '_Location'
I_EquipmentTimeSeg._LocationAccountAssignment.AssetLocation,
@ObjectModel.foreignKey.association: '_MaintenancePlant'
I_EquipmentTimeSeg._LocationAccountAssignment.MaintenancePlant,
I_EquipmentTimeSeg._LocationAccountAssignment.AssetRoom,
@ObjectModel.foreignKey.association: '_Material'
I_Equipment.Material,
@ObjectModel.foreignKey.association: '_MaintenancePlanningPlant'
I_EquipmentTimeSeg.MaintenancePlanningPlant,
@ObjectModel.foreignKey.association: '_PlantSection'
I_EquipmentTimeSeg._LocationAccountAssignment.PlantSection,
I_EquipmentTimeSeg.MaintenancePlannerGroup,
cast( I_EquipmentTimeSeg._LocationAccountAssignment._WBSElementBasicData.WBSElement as ps_posid preserving type ) as WBSElement,
@ObjectModel.foreignKey.association: '_EquipmentCategory'
I_Equipment.EquipmentCategory,
@Semantics.systemDate.createdAt: true
I_Equipment.CreationDate,
@ObjectModel.foreignKey.association: '_Plant'
I_Equipment.Plant,
@ObjectModel.foreignKey.association: '_MainWorkCenter'
I_EquipmentTimeSeg.WorkCenterInternalID as MainWorkCenterInternalID,
@ObjectModel.foreignKey.association: '_MainWorkCenterBySemanticKey'
cast( I_EquipmentTimeSeg._WorkCenter.WorkCenter as gewrk preserving type ) as MainWorkCenter,
@ObjectModel.foreignKey.association: '_MainWorkCenterPlant'
cast( I_EquipmentTimeSeg._WorkCenter.Plant as wergw preserving type ) as MainWorkCenterPlant,
@ObjectModel.foreignKey.association: '_SettlementOrder'
I_EquipmentTimeSeg._LocationAccountAssignment.SettlementOrder,
@ObjectModel.foreignKey.association: '_WorkCenter'
I_EquipmentTimeSeg._LocationAccountAssignment.WorkCenterInternalID,
@ObjectModel.foreignKey.association: '_WorkCenterBySemanticKey'
I_EquipmentTimeSeg._LocationAccountAssignment._WorkCenter.WorkCenter,
@ObjectModel.foreignKey.association: '_WorkCenterPlant'
I_EquipmentTimeSeg._LocationAccountAssignment._WorkCenter.Plant as WorkCenterPlant, /* Additional fields */
/* If record is latest record (today's), then the timestamp comes from equipment.
This is because timestamp on equipment catches changes done to EQUI AND EQUZ. Example: AcquisitionValue changed
If record is an old record (i.e. its validity end date is not in the future), then that time segments timestamp is used.
This will also prevent any later changes of EQUI to be detected by ODP extractor. However this was discussed to be intended. */
@Semantics.systemDateTime.lastChangedAt: true
case when I_EquipmentTimeSeg.ValidityEndDate = '99991231' then I_Equipment.LastChangeDateTime
else I_EquipmentTimeSeg.LastChangeDateTime end as LastChangeDateTime, @ObjectModel.foreignKey.association: '_EquipmentIsMarkedForDeletion'
--@Semantics.booleanIndicator: true
cast( case when _Status[ StatusCode = 'I0076' and StatusIsInactive = '' ].StatusCode is not null then 'X' else ' ' end as eam_is_deleted preserving type ) as EquipmentIsMarkedForDeletion, //I_EquipmentTimeSeg
I_EquipmentTimeSeg.NextEquipUsagePeriodSqncNmbr,
I_EquipmentTimeSeg.MaintObjectLocAcctAssgmtNmbr,
@ObjectModel.foreignKey.association: '_WorkCenterType'
I_EquipmentTimeSeg.WorkCenterTypeCode,
I_EquipmentTimeSeg.CatalogProfile,
I_EquipmentTimeSeg.SuperordinateEquipment,
I_EquipmentTimeSeg.TechnicalObjectSortCode,
@ObjectModel.foreignKey.association: '_ConstructionMaterial'
I_EquipmentTimeSeg.ConstructionMaterial,
@Semantics.businessDate.from: true
I_EquipmentTimeSeg.ValidityStartDate,
I_EquipmentTimeSeg.ValidityEndTime,
I_EquipmentTimeSeg.ManufacturerPartNmbr, //I_Equipment
@ObjectModel.foreignKey.association: '_Division'
I_Equipment.Division,
@ObjectModel.foreignKey.association: '_StorageLocation'
I_Equipment.StorageLocation,
I_Equipment.AssetManufacturerName,
I_Equipment.ManufacturerPartTypeName,
@Semantics.address.country: true
@ObjectModel.foreignKey.association: '_ManufacturerCountry'
I_Equipment.ManufacturerCountry,
I_Equipment.ConstructionYear,
I_Equipment.ConstructionMonth,
I_Equipment.AcquisitionDate,
I_Equipment.MaintObjectInternalID,
I_Equipment.SerialNumber,
@ObjectModel.foreignKey.association: '_Customer'
I_Equipment.Customer,
I_Equipment.AuthorizationGroup,
@Semantics.quantity.unitOfMeasure: 'GrossWeightUnit'
I_Equipment.GrossWeight,
@ObjectModel.foreignKey.association: '_GrossWeightUnit'
@Semantics.unitOfMeasure: true
I_Equipment.GrossWeightUnit,
I_Equipment.SizeOrDimensionText,
I_Equipment.Batch,
@ObjectModel.foreignKey.association: '_Supplier'
I_Equipment.Supplier, //I_LocationAccountAssignment
_LocationAccountAssignment.MaintObjectFreeDefinedAttrib,
_LocationAccountAssignment.BusinessArea,
@ObjectModel.foreignKey.association: '_WBSElementBasicData'
cast( I_EquipmentTimeSeg._LocationAccountAssignment.WBSElementInternalID as ps_psp_pnr preserving type ) as WBSElementInternalID,
I_EquipmentTimeSeg._LocationAccountAssignment.FixedAsset, //I_LinearAssetManagementData
cast( cast( I_Equipment._LinearAssetManagementData.LinearDataStartPoint as abap.dec(11, 3) ) as eaml_start_point ) as LinearDataStartPoint,
cast( cast( I_Equipment._LinearAssetManagementData.LinearDataEndPoint as abap.dec(11, 3) ) as eaml_end_point ) as LinearDataEndPoint,
@Semantics.quantity.unitOfMeasure: 'LinearDataUnitOfMeasure'
I_Equipment._LinearAssetManagementData.LinearDataLength,
@Semantics.unitOfMeasure: true
I_Equipment._LinearAssetManagementData.LinearDataUnitOfMeasure, /* Associations */
//I_EquipmentTimeSeg
I_EquipmentTimeSeg._WorkCenter as _MainWorkCenter,
I_EquipmentTimeSeg._Equipment,
I_EquipmentTimeSeg._ConstructionMaterial,
I_EquipmentTimeSeg._LocationAccountAssignment,
I_EquipmentTimeSeg._MaintenancePlanningPlant,
I_EquipmentTimeSeg._WorkCenterType,
I_EquipmentTimeSeg._WorkCenter._Plant as _MainWorkCenterPlant, //I_Equipment
I_Equipment._ManufacturerCountry,
I_Equipment._StorageLocation,
I_Equipment._Division,
I_Equipment._EquipmentCategory,
I_Equipment._Material,
I_Equipment._Plant,
I_Equipment._Currency,
I_Equipment._TechnicalObjectType,
I_Equipment._GrossWeightUnit,
I_Equipment._Customer,
I_Equipment._Supplier, //I_LocationAccountAssignment
I_EquipmentTimeSeg._LocationAccountAssignment._ABCIndicator,
I_EquipmentTimeSeg._LocationAccountAssignment._Address,
I_EquipmentTimeSeg._LocationAccountAssignment._CompanyCode,
I_EquipmentTimeSeg._LocationAccountAssignment._ControllingArea,
I_EquipmentTimeSeg._LocationAccountAssignment._CostCenter,
I_EquipmentTimeSeg._LocationAccountAssignment._Location,
I_EquipmentTimeSeg._LocationAccountAssignment._MaintenancePlant,
I_EquipmentTimeSeg._LocationAccountAssignment._MasterFixedAsset,
I_EquipmentTimeSeg._LocationAccountAssignment._PlantSection,
I_EquipmentTimeSeg._LocationAccountAssignment._SettlementOrder,
_WBSElementBasicData, _WorkCenterBySemanticKey,
_WorkCenterPlant,
_WorkCenter,
_MainWorkCenterBySemanticKey,
_FunctionalLocation,
_EquipmentHierarchyNode,
_EquipmentIsMarkedForDeletion,
_EquipmentText
}
where
I_EquipmentTimeSeg.EquipUsagePeriodSequenceNumber = '001'
  • 事务代码:

    IE03/IH08

    设备主数据的位置、组织结构、结构视图信息

  • 视图结构:

字段名称 设备名称
设备 EQUIPMENT
有效期至 VALIDITYENDDATE
连续号码 EQUIPUSAGEPERIODSEQUENCENUMBER
ABC 标识 ABCINDICATOR
购置价值 ACQUISITIONVALUE
地址编号 ADDRESSID
资产 MASTERFIXEDASSET
公司代码 COMPANYCODE
成本中心 COSTCENTER
成本控制范围 CONTROLLINGAREA
货币 CURRENCY
开始日期 OPERATIONSTARTDATE
对象类型 TECHNICALOBJECTTYPE
功能位置 FUNCTIONALLOCATION
库存号 INVENTORYNUMBER
位置 ASSETLOCATION
维护工厂 MAINTENANCEPLANT
房间 ASSETROOM
物料 MATERIAL
计划工厂 MAINTENANCEPLANNINGPLANT
厂区 PLANTSECTION
计划人员组 MAINTENANCEPLANNERGROUP
WBS 要素 WBSELEMENT
设备种类 EQUIPMENTCATEGORY
创建日期 CREATIONDATE
工厂 PLANT
工作中心 MAINWORKCENTERINTERNALID
主工作中心 MAINWORKCENTER
工厂工作中心 MAINWORKCENTERPLANT
结算订单 SETTLEMENTORDER
PP工作中心 WORKCENTERINTERNALID
工作中心 WORKCENTER
工厂 WORKCENTERPLANT
时戳 LASTCHANGEDATETIME
已删除 EQUIPMENTISMARKEDFORDELETION
下一个使用期间 NEXTEQUIPUSAGEPERIODSQNCNMBR
位置/科目分配 MAINTOBJECTLOCACCTASSGMTNMBR
对象类型 WORKCENTERTYPECODE
类别参数文件 CATALOGPROFILE
上级设备 SUPERORDINATEEQUIPMENT
技术标识号 TECHNICALOBJECTSORTCODE
构造类型 CONSTRUCTIONMATERIAL
有效期自 VALIDITYSTARTDATE
时间 VALIDITYENDTIME
制造商零件号 MANUFACTURERPARTNMBR
产品组 DIVISION
地点 STORAGELOCATION
制造商 ASSETMANUFACTURERNAME
型号 MANUFACTURERPARTTYPENAME
制造国家/地区 MANUFACTURERCOUNTRY
制造年份 CONSTRUCTIONYEAR
制造月份 CONSTRUCTIONMONTH
购置日期 ACQUISITIONDATE
对象编号 MAINTOBJECTINTERNALID
序列号 SERIALNUMBER
当前客户 CUSTOMER
授权组 AUTHORIZATIONGROUP
重量 GROSSWEIGHT
重量单位 GROSSWEIGHTUNIT
大小/尺寸 SIZEORDIMENSIONTEXT
批次 BATCH
供应商 SUPPLIER
分类字段 MAINTOBJECTFREEDEFINEDATTRIB
业务范围 BUSINESSAREA
WBS 要素 WBSELEMENTINTERNALID
子编号 FIXEDASSET
起点 LINEARDATASTARTPOINT
终点 LINEARDATAENDPOINT
LINEARDATALENGTH
计量单位 LINEARDATAUNITOFMEASURE

CDS标准视图:设备信息 I_EquipmentData的更多相关文章

  1. Atitit.获取主板与bios序列号获取硬件设备信息  Wmi wmic 的作用

    Atitit.获取主板与bios序列号获取硬件设备信息  Wmi wmic 的作用 1 获取硬件核心基础核心基础Wmi1 2 其他资料2 3 Wmic WMI 命令行接口2 4 Atitit.获取主板 ...

  2. 【iOS开发系列】UIDevice设备信息

    [1] 推断是否是横向屏: BOOL b=UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation); 获取设备uniqu ...

  3. EasyNVR网页摄像机无插件H5、谷歌Chrome直播方案-Onvif(一)使用Onvif协议进行设备发现以及指定设备信息探测

    背景分析 众所周知,EasyNVR不拘泥.不受限于摄像机的品牌厂商及其配套平台,只要是网络监控摄像机IPC.硬盘录像机NVR.且设备支持标准的RTSP/Onvif协议,都可以接入实时视频流进入Easy ...

  4. Seeker:一款可获取高精度地理和设备信息的工具分析

    Seeker是一款可以获取高精度地理和设备信息的工具.其利用HTML5,Javascript,JQuery和PHP来抓取设备信息,以及Geolocation接口实现对设备高精度地理位置的获取. See ...

  5. uni-app开发经验分享十二: Android平台应用启动时读写手机存储、访问设备信息(如IMEI)等权限策略及提示信息

    Android平台从6.0(API23)开始系统对权限的管理更加严格,所有涉及敏感权限都需要用户授权允许才能获取.因此一些应用基础业务逻辑需要的权限会在应用启动时申请,并引导用户允许. 读写手机存储权 ...

  6. 整理UWP中网络和设备信息获取的帮助类,需要的拿走。

    网络(运营商信息,网络类型) public static class NetworkInfo { /// <summary> /// 网络是否可用 /// </summary> ...

  7. C#:基于WMI查询USB设备信息 及 Android设备厂商VID列表

    /* ---------------------------------------------------------- 文件名称:WMIUsbQuery.cs 作者:秦建辉 MSN:splashc ...

  8. win7下用python3.3获取cable modem的设备信息

    毕业一年多了,一直做cable modem的测试,总是觉得在国内这一行的人才很少,想找个师傅真的很不容易. 苦闷了许久之后,终于决定,自己去写点东西,万一就找到同行了呢? 下面就是本小姐写的第一篇博客 ...

  9. Android 获取设备信息 异常

    /**获取设备信息 * @param c * @return */ public static void setDeviceInfo(Context c,RequestParams params){ ...

  10. Windows下USB磁盘开发系列三:枚举系统中U盘、并获取其设备信息

    前面我们介绍了枚举系统中的U盘盘符(见<Windows下USB磁盘开发系列一:枚举系统中U盘的盘符>).以及获取USB设备的信息(见<Windows下USB磁盘开发系列二:枚举系统中 ...

随机推荐

  1. sort()的函数参数 —— function(a,b){return a -b} 相关问题_20220114

    sort()的函数参数--function(a,b){return a -b} 相关问题 sort()的定义和用法 sort() 方法用于对数组的元素进行排序. 排序顺序可以是字母或数字,并按升序或降 ...

  2. UniswapV2Factory细节

    UniswapV2Factory合约是Uniswap V2协议中的关键部分,负责管理和创建所有的流动性池(交易对).以下是对UniswapV2Factory合约中所有主要方法及其参数的详细讲解. 方法 ...

  3. C# 将PDF文档转换为Markdown文档

    将PDF文件转换为Markdown格式是一个非常实用的需求,尤其是在需要将内容从固定布局的PDF文件中提取出来,并转换为更易于编辑和处理的文本格式时.本文将介绍如何通过C#代码将PDF文档转换Mark ...

  4. 让性能提升56%的Vue3.5响应式重构之“版本计数”

    前言 Vue3.5响应式重构主要分为两部分:双向链表和版本计数.在上一篇文章中我们讲了 双向链表 ,这篇文章我们接着来讲版本计数. 欧阳年底也要毕业了,加入欧阳的面试交流群(分享内推信息).高质量vu ...

  5. 树莓派开机自启动热点(使用有线eth0上网,使用wlan0进行热点)

    一.背景内容 其实就是接了一单,有人需要我帮忙配置一下树莓派开机启动热点.这边做个记录,该方式树莓派4B.3B都可以使用. 二.实际操作 1.使用网线连接路由器和树莓派 树莓派的网络接口一共有三个,分 ...

  6. IIC通信协议详解 & PCF8591应用(Verilog实现)

    该文章结合PCF8591 8-bit AD/DA 模数/数模转换器来详细介绍IIC通信协议,尽量做到条理清晰,通俗易懂.该文图片均从PCF8591手册中截取,一定程度上引导读者学习阅读data she ...

  7. 基于Java+SpringBoot心理测评心理测试系统功能实现九

    一.前言介绍: 1.1 项目摘要 心理测评和心理测试系统在当代社会中扮演着越来越重要的角色.随着心理健康问题日益受到重视,心理测评和心理测试系统作为评估个体心理状态.诊断心理问题.制定心理治疗方案的工 ...

  8. 题解:CF1301B Motarack's Birthday

    CF1301D Time to Run 题解 思维题. 分析 把一个格子视作一个点,每个点的度数都是偶数,所以这是一张欧拉图.而需要走遍整个方格图,可以证明只要 \(k\) 不超过 \(4nm-2n- ...

  9. PbRL | Christiano 2017 年的开山之作,以及 Preference PPO / PrefPPO

    PrefPPO 首次(?)出现在 PEBBLE,作为 pebble 的一个 baseline,是用 PPO 复现 Christiano et al. (2017) 的 PbRL 算法. For eva ...

  10. 使用免费的SVN服务器

    在本地环境中安装SVN window版本自行搜索图文教程. linux版本(以我的 ubuntu 为例子) 我尝试直接敲SVN svn 报错 Command 'svn' not found, but ...