S4 HANA中的MATDOC和MATDOC_EXTRACT
- 格式:docx
- 大小:102.96 KB
- 文档页数:12
SAP MD4C是SAP S/4HANA系统中用于调用物料相关信息的函数模块。
它提供了多种功能和选项,可以帮助用户快速准确地获取所需的物料信息。
在使用SAP MD4C时,可以根据具体的业务需求选择合适的函数进行调用,以实现各种物料管理和控制操作。
一、SAP MD4C的基本概念1.1 物料信息的获取SAP MD4C提供了丰富的函数和选项,可以帮助用户获取各种物料相关的信息,包括物料描述、单位、库存状况、价格等。
这些信息对于企业的物料管理和采购决策非常重要。
1.2 函数的调用在使用SAP MD4C时,用户可以通过调用相应的函数来实现对特定物料信息的获取。
不同的函数可以实现不同的功能,用户可以根据实际情况选择合适的函数进行调用。
二、SAP MD4C的常用函数2.1 MD_STOCK_REQUIREMENTS_LIST_APIMD_STOCK_REQUIREMENTS_LIST_API函数可以帮助用户获取特定物料的库存需求清单。
用户可以通过该函数查看某一物料的当前库存情况、未来需求量以及建议的补货计划,从而进行合理的物料采购和库存管理。
2.2 MD_MATERIAL_VALUATION_APIMD_MATERIAL_VALUATION_API函数可以帮助用户获取特定物料的价值评估信息。
用户可以通过该函数查看某一物料的当前市场价值、成本价值以及其他价值相关的信息,从而进行合理的物料定价和成本控制。
2.3 MD_MATERIAL_M本人NTENANCE_APIMD_MATERIAL_M本人NTENANCE_API函数可以帮助用户进行物料的维护管理。
用户可以通过该函数对物料的描述、分类、单位等信息进行管理和维护,保证物料信息的准确性和完整性。
2.4 MD_MATERIAL_AV本人LABILITY_APIMD_MATERIAL_AV本人LABILITY_API函数可以帮助用户查询特定物料的供应可用性。
用户可以通过该函数查看某一物料的供应状态、交货情况以及提前订单的可用性,从而进行合理的物料调度和交货安排。
维护供应商主数据
创建/修改/显示供应商
BP
注:创建供应商需要三步
来完成。
1。
创建业务伙伴
2创建FLVN00F1
3创建FLVN01
首先创建1点击组织以
后,对话框显示如左图
所示,根据实际需求填
写相应的数据.
例如左图参数的设置。
根据实际需求填写相应参数.
做完前面步骤以后,点击保存按钮,业务伙伴编码自动填充。
如左图红框部分所示
至此第一步业务伙伴创建成功
2.FLV00 FI供应商(新)的建立
点击修改按钮如图标1,把业务伙伴角色更改为图2所示样式.然后点击保存。
点击公司代码按钮如图所示1,然后依次按照数字编码依次操作。
注:在此步骤3可以切换公司代码同时把多个工厂维护进去
例如下图所示
按统御项目标签对勾,弹出总账科目,选择红框中的文本。
完成后如下图所示.
完成后,点击保存按钮。
3.创建FLN01
点击修改按钮,页面变为修改业务角色状态,变成如左图1所示。
依次按实际需要进行参数设置
例左图和下图所示
做完此步骤后点击保存. 到此供应商建立完毕。
©2016 SAP SE or an SAP affiliate company. All rights reserved.1CustomerSAP S/4HANA Analytics + SAP Business Warehouse全面的、操作层面+ 历史层面的分析与计划powered by SAP HANAAll analytics requirements fulfilled with one unified solution Data Integration Scenarios are possible in multiple hybrid system setupsStrategic and tactical 战略和战术 Integration, harmonization, cross-system consistency 集成、统一、跨系统Consumption Planning 计划Multi-sourced data 多数据源Preconfigured content 预配置内容 Data lifecycle 数据生命周期 Data governance 数据治理Full-blown analytical suite 全面分析Operational data 操作性数据 Real-time 实时Lightweight modeling and consumption 轻量建模 Extensible 可扩展Uniform 统一 Basis for multiple embedded use cases Model reuse in analytical applicationsSAP Business Warehouse on SAP HANASAP S/4HANA AnalyticsMulti-channel Unified User ExperienceSAP S/4HANA(incl. Virtual Data Model)SAP NetWeaverN e w S A P A p p sP a r t n e r A p p sSAP HANA PLATFORM S A P N e t W e a v e r B WDatabase Services (include SAP HANA Views)Synchronizations ServicesApplication ServicesS/4HANA嵌入分析S/4HANA分析与BW集成场景2016 SAP SE or an SAP affiliate company. All rights reserved.SAP BW on HANA 与S/4HANA Analytics 集成:含所有SAP BW SchemaSAP BW on HANABEx 查询(Query)HANA CompositeProvider业务数据Open ODS ViewOpen ODS View Open ODS ViewMaster DataBW DSO业务数据主数据主数据SDAS/4HANA SystemS/4HANA Open CDS Views(Interface Layer)SAP HANABEx 查询(Query)HANA CompositeProviderInfoObject 主数据业务数据主数据BW aDSO抽取到BWBEx QueryGenerated ODP transient provider场景A场景B场景CBWD的BW端建模,使用CompositeProvider,定义CDS View和历史数据联合5Customer场景A:S/4HANA 的嵌入式Modeling-free via generated ODP transient providerS/4HANABEx QueryGenerated ODP transient providerS/4HANA SchemaS/4HANA Open CDS Views (Interface Layer)Customer 集成场景B :SAP BW 与S/4HANA HANA Smart Data Access & Modeling via Open ODS ViewsSAP BW SchemaSAP BW on HANABEx 查询(Query)HANA CompositeProvider业务数据Open ODS ViewOpen ODS View Open ODS ViewMaster DataBW DSO业务数据主数据主数据SDAS/4HANA SystemS/4HANA Open CDS Views (Interface Layer)SAP HANA2016 SAP SE or an SAP affiliate company. All rights reserved.集成场景B1:HANA Smart Data Access & Modeling via Open ODS ViewsSAP BW SchemaSAP BW on HANABEx QueryHANA CompositeProviderOpen ODS ViewMaster DataBW DSO主数据SDAS/4HANA SystemS/4HANA Open CDS Views (Interface Layer)SAP HANA业务数据业务数据I2016 SAP SE or an SAP affiliate company. All rights reserved.集成场景B2:HANA Smart Data Access & Modeling via Open ODS ViewsSAP BW SchemaSAP BW on HANABEx QueryHANA CompositeProviderOpen ODS ViewMaster Data主数据SDAS/4HANA SystemS/4HANA Open CDS Views (Interface Layer)SAP HANA业务数据业务数据BW DSOII2016 SAP SE or an SAP affiliate company. All rights reserved.集成场景B3: HANA Smart Data Access & Modeling via Open ODS ViewsSAP BW SchemaSAP BW on HANABEx QueryHANA CompositeProviderOpen ODS ViewMaster DataMaster DataSDAS/4HANA SystemS/4HANA Open CDS Views (Interface Layer)SAP HANATransactional Data Transactional DataBW DSOOpen ODS View Open ODS ViewMaster DataIIICustomer 集成场景C:SAP BW 与S/4HANA SAP HANA SAP BW on HANA BEx 查询(Query)HANA CompositeProviderInfoObject 主数据S/4HANA SystemS/4HANAOpen CDS Views(Interface Layer)SAP HANA业务数据主数据BW aDSO 抽取到BW景。
SAP HANA™ 数据库–基础入门指南–如何使用SQL和SQLScript数据建模2017年10月版1.简介1.1什么是SAP HANA1.2相关文档2.SAP HANA数据库概念2.1 基本概念2.1.1 现代化硬件对数据库系统架构的影响2.1.2 基于列式和行式的存储2.1.3 列式表的优势2.2 架构概览2.3 SAP HANA数据库概念:表,模型和视图处理2.3.1 表,试图和星型结构2.3.2 SAP HANA模型视图2.3.3 SAP HANA视图处理3. 教程3.1 使用SAP HANA studio3.2 如何使用SAP HANA modeler3.2.1 如何建立分析试图3.2.2 查看表3.2.3 建立分析试图3.2.4 MANDT属性3.2.5 过滤器的应用3.2.6 创建属性试图3.2.7 创建简单的星型架构3.2.8计算属性3.2.9 多语种属性视图(文本视图)3.2.10 图形化计算视图3.2.11 如何创建脚本计算视图3.3 使用SAP HANA studio执行SQL和SQLScript 语句3.4 如何显示查询计划3.4.1 查询计划中的列3.4.2 查询计划中的OPERATOR_NAME列3.5 使用jdbc驱动3.5.1 安装驱动3.5.2 系统必备3.5.3 jdbc驱动的整合3.5.4 加载jdbc驱动3.5.5 连接地址3.5.6 jdbc4.0标准扩展api3.5.7 jdbc跟踪记录3.5.8 匹配SQL和java类型4. 最佳实践4.1 列式存储引擎的特点4.2 SQL查询代价的估算4.2.1 行式搜索代价模型4.2.2 列式搜索代价模型4.3 SQL查询列引擎的优化技巧4.3.1 表达式4.3.2 联接4.3.3 EXISTS / IN运算符4.3.4 set操作4.4 SQLScript推荐实践4.4.1 减少SQL语句的复杂度4.4.2 识别共同的子表达式4.4.3 多层聚集4.4.4 理解语句执行的代价4.4.5 充分利用底层引擎4.4.6 减少依赖性4.4.7模拟SQL语句中的函数调用4.4.8 避免混合使用计算引擎操作符和SQL查询4.4.9 避免使用游标4.4.10 避免使用动态SQL4.4.11 跟踪和调试免责声明本文档为预览版本,文档中的内容均不是来自SAP AG公司发布的任何关于SAP的产品,策略,或未来的发展的官方声明。
正文最近做了销售和物料管理方面的一些需求,因此对S/4中的MM的数据模型有了一定的了解。
目前网络已经有一些介绍物料凭证表MATDOC的文章,内容好像不是很详细,另外也没发现介绍库存变更数据表MATDOC_EXTRACT的文章。
我打算把自己知道的一点东西写下来分享。
水平所限,如有不正确的地方,请务必评论指正。
本文将介绍2点内容,以看出区别:MKPF表的replacement object是NSDM_E_MKPF,这个CDS entity是直接从MATDOC中取数的,条件为record_type = 'MDOC'和header_counter = 1,代码如下,可以重点看where语句部分,@AbapCatalog.sqlViewName: 'NSDM_V_MKPF'@bel: 'MKPF Compatibility View'@DataAging.noAgingRestriction: 'false'@ageType.sizeCategory: 'L'@ageType.serviceQuality: #C@ageType.dataClass: #TRANSACTIONAL@ClientHandling.algorithm: #AUTOMATED@AccessControl.authorizationCheck: #NOT_ALLOWED@AbapCatalog.viewEnhancementCategory: #PROJECTION_LISTdefine view nsdm_e_MKPF asselectkey mandt,key mblnr,key mjahr,vgart,blart,blaum,bldat,budat,cpudt,cputm,aedat,usnam,tcode,xblnr,bktxt,frath,frbnr,wever,xabln,awsys,bla2d,tcode2,bfwms,exnum,spe_budat_uhr,spe_budat_zone,le_vbeln,spe_logsys,spe_mdnum_ewm,gts_cusref_no,/*Fields which do belong to APPENDs on MSEG will be provided via EXTEND VIEW to this view. Hence, Industries having also APPENDs can use the same techniqueand just because the alphabetical sequence of APPENDs is also valid for EXTEND VIEW the compability will be ensured.The name of the IS EXTEND VIEW has to be the same as the APPEND. Rules are:ABAP Catalog Objekt: <Append>_VDDL Source <Append>_DDLCDS View = <Append>_EThe alphabetical order of the EXTEND VIEW in the final proxy view is according to the name of sqlViewAppendNameand not accroding to DDL source name or the EXTEND VIEW name! Hence there is still a restriction on 16 chars!*//*DDL sources of known extensions so far:JVMKPF_DDLMILL_MKPF_DDL*/from matdocwhere record_type ='MDOC'and header_counter =1MSEG和它差不多,replacement object是NSDM_E_MSEG,同样从MATDOC中获取数据,条件则只有record_type = 'MDOC',代码略过不贴。
使用MATDOC代替MKPF和MSEG,可以减少不必要的关联次数。
另外,也有stock_qty和consumption_qty等方便计算的字段,利用它们可以减少相关逻辑处理代码,提高开发速度。
回到顶部库存一些文章提到S4中的库存数据是从MATDOC中实时汇总得出的,的确,MATDOC中包含计算库存所需的全部数据。
但是这个表的数据在物料凭证级别的,随着时间的进行,SAP系统内会积累大量的物料凭证,从这样海量的数据中汇总库存,似乎有些奢侈。
例如FICO模块中的ACDOCA表,就是从年初余额开始汇总,来获取余额的(见前文:S/4 HANA中的ACDOCT和FAGLFLEXT),而不是汇总历史上的通过对各个库存表的replacement object的阅读追踪,我发现实际上库存数据来自于另一个表:MATDOC_EXTRACT。
这是一个实在的透明表,并不存在replacement object:NOTE 2246602 中提到了这个表:为了减轻(从MATDOC中进行聚合运算时因数据量大导致的性能下降的)影响,SAP引入了第二个表MATDOC_EXTRACT,从中计算实际库存数据。
MATDOC_EXTRACT有一小部分来自MATDOC的字段,在物料凭证过账时,每当有数据被插入到MATDOC中,也会有数据被插入MATDOC_EXTRACT中。
MATDOC_EXTRACT里的数据会被定期压缩,比如,假设有以下两条数据:∙Date:20.11.2015; Material:4711; Plant:0001; StorageLocation:0001; StockIdentifier:01; SpecialSto ck:blank; Quantity: 10,0; Unit: PC∙Date:23.11.2015; Material:4711; Plant:0001; StorageLocation:0001; StockIdentifier:01; SpecialSto会被压缩为:Date:PrecompactingDate; Material:4711; Plant:0001; StorageLocation:0001; StockIdentifier:01; S pecialStock:blank; Quantity: 7,0; Unit: PC新的压缩后的数据会被插入MATDOC_EXTRACT,两条被压缩的数据会被从中删除。
通过这种做法,表MATDOC_EXTRACT中的总记录数和用于聚合的记录数都会定期减少,因此,对库存的查询(相比从MATDOC中进行)会有更好的性能。
该过程被称为“预压缩”(precompacting),默认作为期末结算(period end closing)的一部分运行。
如果因此导致期末结算性能下降,也可以自行安排定期后台作业。
以下通过MARD的replacement object,NSDM_E_MARD为例,我们来观察下它是如何从MATDOC_EXTRACT中获取数据的。
源代码:@AbapCatalog.sqlViewName: 'NSDM_V_MARD'@bel: 'MARD Compatibility View'@DataAging.noAgingRestriction: 'false'@ageType.sizeCategory: 'L'@ageType.serviceQuality: #C@ageType.dataClass: #TRANSACTIONAL@ClientHandling.algorithm: #AUTOMATED@AccessControl.authorizationCheck: #NOT_ALLOWED@AbapCatalog.viewEnhancementCategory: #PROJECTION_LISTdefine view nsdm_e_mardas select from mard as tleft outer join nsdm_e_mard_diff as m on t.mandt = m.mandtand t.matnr = m.matnrand t.werks = m.werksand t.lgort = m.lgortassociation [0..1]to E_Productstoragelocation as _ActiveExtension on $projection.matnr = _ActiveExtension.Productand $projection.werks = _ActiveExtension.Plantand $projection.lgort = _ActiveExtension.StorageLocation{key t.mandt,t.pstat,t.lvorm,casewhen m.gjper ='0000000'or m.gjper is null thent.lfgjaelsecast(substring(m.gjper, 1, 4) as abap.numc(4))end as lfgja,casewhen m.gjper ='0000000'or m.gjper is null thent.lfmonelsecast(substring(m.gjper, 6, 2) as abap.numc(2))end as lfmon,t.sperr,case when bst is null then0else bst end as labst, // vvv note 2249780case when m.umlme is null then0else m.umlme end as umlme,case when m.insme is null then0else m.insme end as insme,case when m.einme is null then0else m.einme end as einme,case when m.speme is null then0else m.speme end as speme,case when m.retme is null then0else m.retme end as retme,case when m.vmlab is null then0else m.vmlab end as vmlab,case when m.vmuml is null then0else m.vmuml end as vmuml,case when m.vmins is null then0else m.vmins end as vmins,case when m.vmein is null then0else m.vmein end as vmein,case when m.vmspe is null then0else m.vmspe end as vmspe,case when m.vmret is null then0else m.vmret end as vmret, //^^^ note 2249780t.kzill,t.kzilq,t.kzile,t.kzils,t.kzvll,t.kzvlq,t.kzvle,t.kzvls,t.diskz,t.lsobs,t.lminb,t.lbstf,t.lgpbe,case when m.klabs is null then0else m.klabs end as klabs, // vvv note 2249780case when m.kinsm is null then0else m.kinsm end as kinsm,case when m.keinm is null then0else m.keinm end as keinm,case when m.kspem is null then0else m.kspem end as kspem, //^^^ note 2249780t.dlinl,t.prctl,t.ersda,case when m.vklab is null then0else m.vklab end as vklab, // note 2249780case when m.vkuml is null then0else m.vkuml end as vkuml, // note 2249780t.lwmkb,t.bskrf,'X'as mdrue,t.mdjin,--field added for extensibilityt.dummy_stl_incl_eew_ps,--Fields added for EA-RETAIL(FASHION)t.fsh_salloc_qty_s,case when m./cwm/labst is null then0else m./cwm/labst end as/cwm/labst, //note 2413597 case when m./cwm/insme is null then0else m./cwm/insme end as/cwm/insme, //note 2413597 case when m./cwm/einme is null then0else m./cwm/einme end as/cwm/einme, //note 2413597 case when m./cwm/speme is null then0else m./cwm/speme end as/cwm/speme, //note 2413597 case when m./cwm/retme is null then0else m./cwm/retme end as/cwm/retme, //note 2413597 case when m./cwm/umlme is null then0else m./cwm/umlme end as/cwm/umlme, //note 2413597 case when m./cwm/klabs is null then0else m./cwm/klabs end as/cwm/klabs, //note 2413597 case when m./cwm/kinsm is null then0else m./cwm/kinsm end as/cwm/kinsm, //note 2413597 case when m./cwm/keinm is null then0else m./cwm/keinm end as/cwm/keinm, //note 2413597 case when m./cwm/kspem is null then0else m./cwm/kspem end as/cwm/kspem, //note 2413597 case when m./cwm/vmlab is null then0else m./cwm/vmlab end as/cwm/vmlab, //note 2413597 case when m./cwm/vmins is null then0else m./cwm/vmins end as/cwm/vmins, //note 2413597 case when m./cwm/vmein is null then0else m./cwm/vmein end as/cwm/vmein, //note 2413597 case when m./cwm/vmspe is null then0else m./cwm/vmspe end as/cwm/vmspe, //note 2413597 case when m./cwm/vmret is null then0else m./cwm/vmret end as/cwm/vmret, //note 2413597 case when m./cwm/vmuml is null then0else m./cwm/vmuml end as/cwm/vmuml //note 2413597}可以看到,labst等度量,完全来自于与透明表MARD左连接的CDS entity:nsdm_e_mard_diff,观察这个entity,可以看到,labst等entity其实原本都是stock_qty,只是根据lbbsa字段和sobkz字段的值的不同,被分成不同的度量列。