E10配置ShareData培训教材_第1页
E10配置ShareData培训教材_第2页
E10配置ShareData培训教材_第3页
E10配置ShareData培训教材_第4页
E10配置ShareData培训教材_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ShareData2第一章:Sharedata介绍第二章:如何配置和使用变量第三章:如何配置和使用关系第四章:调整后的验证方法第五章:配置的注意事项和常见问题分析目录目录3第一章:Sharedata介绍4背景相同的取值逻辑和数据无法共享在批量操作中,无意义或重复的业务逻辑会被执行GetEntityProperty消耗了近乎一半的远程调用远程调用次数太多SQL 语句数量太多5 关系模型 解决GetEntityProperty广泛使用造成的效能问题 变量模型 解决在公式、校验、条件格式、数据跟踪切片中频繁调用远程服务造成的效能问题组成6原理合并单身开窗带回50笔,同一个服务会发起50次远程调用,现

2、在合并为1次远程调用,在服务端还是执行50次服务压缩50次服务执行中,如果参数相同,可压缩减少服务执行次数缓存服务执行返回的结果进行缓存,下次需再调用服务时,如果输入参数相同,直接取缓存7配置文件Server端ShareDataContainer.dcxmlShareData变量 VL_GetTax= Context.GetTax ITEM_IDCUSTOMER_IDSALES_CENTER_ID9ShareData关系销售订单单身SALES_ORDER_DOC_D报价单单身QUOTATION_DRL_QuotationDSOURCE_ID.ROidQUOTATION_D_ID10应用范围Sh

3、areData公式校验条件格式数据跟踪切片11第二章:如何配置和使用变量第二章:如何配置和使用变量12新旧函数的调用方式对比 1. 旧的函数调用格式所属TypeKey函数名称函数名称函数所需参数值13新旧函数的调用方式对比 2. 变量替换后的函数使用格式变量实体对象14配置变量 在对应的实体对象节点下新增按钮:添加变量按钮:添加变量变量信息区域15配置变量 确定函数所在的接口DLL1)在CM的CI列表中查找2)在规格中查找3)在以下公共服务的接口DLL查找:Digiwin.ERP.CommonSupplyChain.Business.dllDigiwin.ERP.CommonRetail.Bu

4、siness.dllDigiwin.ERP.CommonManufacture.BusinessDigiwin.ERP.CommonFinance.BusinessDigiwin.ERP.Common.Business4) 平台函数的接口DLL是:Digiwin.Mars.Business.Utils.dll5)在本作业的接口DLL中查找6)在功能包中排查7)咨询SD配置变量16例如: 配置函数CurrencyConvert的变量,确定其所在的dll是: Digiwin.ERP.Common.Business.dll点击方法名称开窗选择E10环境下的Digiwin.ERP.Common.Bus

5、iness.dll配置变量17设计器自动加载dll里边的函数列表函数列表选择CurrencyConvert函数配置变量18设计器自动把CurrencyConvert函数信息加载到变量区域配置变量19变量名称命名规范必须以“VL_”为前缀。显示名称:建议设置为公式或者校验的显示名称,便于排查核对。公式变量配置变量20配置参数列表配置变量21配置参数前置条件1.从服务规格中函数的参数使用说明确定(参数的条件要求)参数条件作为前置条件的一部分配置变量22 2 .从作业规格中描述的业务逻辑确定根据业务逻辑这部分可作为变量的触发条件配置变量23 3 .综合1和2的判断确定变量的前置条件配置变量24变量配

6、置完成数据跟踪切片中使用变量251.DependencyItems 加入要使用的变量对象 DependencyItems = ActiveObject.BUSINESS_QTY;ActiveObject.VL_TryGetConvertedQty_01;ActiveObject.VL_TryGetConvertedQty_02;ActiveObject.BUSINESS_UNIT_ID, IsRunAtInitialized = false)2.调用格式 obj = entity.GetValueOrDefault(ActiveObject.VL_TryGetConvertedQty_01,

7、new object ItemId, PreUnit, PreQty, uiSTOCK_UNIT_ID );变量对象使用格式26第三章:如何配置和使用关系第三章:如何配置和使用关系新旧取值方式对比27例如:按Owner_Org.ROid,CURRENCY_ID为条件获取CURRENCY_PRECISION对象的CONV_TOLERANCE属性值1. GetEntityProperty方式实体对象要获取的属性条件属性条件属性值新旧取值方式对比282. Sharedata关系方式实体对象Sharedata关系名属性配置Sharedata关系29按钮:新增sharedata关系Sharedata关系

8、信息区域配置Sharedata关系301.设置关联实体对象设置关联实体对象点击开窗选择关联实体对象CURRENCY_PRECISION配置Sharedata关系312.设计器自动生成关系名称,命名规范以“RL_”为前缀关系名称配置Sharedata关系323.配置条件关联信息配置条件关联信息配置Sharedata关系334.sharedata关系配置完成34第四章:调整后的验证方法第四章:调整后的验证方法35 启动E10客户端,加上d /l参数,以debug模式启动检查方法如下:检查方法如下:36取得要分析典型业务场景的事件日志l打开要测试的建档作业,新建一笔单据l选择以下典型业务场景之一:单

9、身开窗20笔,或单身上引20笔l启动事件日志,记录单身开窗或单身上引操作时的事件日志以销货单身品号开窗选择20笔为例:373839事件日志的分析事件日志的分析查询分类为远程调用的事件将事件日志窗口拉大40查找远程调用关键字,下方会列出所有远程调用事件查找远程调用关键字,下方会列出所有远程调用事件41查看是否存在可继续优化的远程调用正常的远程调用事件:ICallbackPrepareService:回调引擎数据准备服务42IQueryAdvancedService、IBrowseService:开窗服务43可优化的远程调用事件:IGetEntityPropertyService,此服务应该使用,

10、此服务应该使用ShareData关系代替关系代替44IValidatorSnippetService.CommonValidateIEnhancedValidateService.OoqlValidateIPurchasePriceService.GetPurchasePriceICurrencyPrecisionService.AmendPricePrecision以上校验服务和业务服务,应该使用以上校验服务和业务服务,应该使用ShareData变量代替变量代替45如果事件日志中出现了如果事件日志中出现了IGetEntityPropertyService、IValidatorSnippetS

11、ervice、IEnhancedValidateService、IPurchasePriceService、ICurrencyPrecisionService服务服务请检查公式、校验、条件格式的配置,使用请检查公式、校验、条件格式的配置,使用ShareData关系或变量,代关系或变量,代替对远程服务的直接调用替对远程服务的直接调用 。46数据准备与批的概念数据准备与批的概念 在没有引用智能计算之前,回调引擎会根据业务逻辑,逐笔发起远程调用。以销货单单身品号为例,品号改变后,有以下操作:a品号带值、b公式调用取价服务给单价赋值。如果单身开窗带回20笔品号,使用智能计算之前的远程调用顺序如下:品号

12、1:a品号带值远程调用、b取价服务远程调用品号2:a品号带值远程调用、b取价服务远程调用.品号20:a品号带值远程调用、b取价服务远程调用总共发起20 * 2 = 40次远程调用47使用智能计算后,会将开窗带回20笔的所有远程调用收集起来,进行分析,将同类型的远程调用的输入参数进行压缩,并按照远程调用之间的依赖关系,分批次发起数据准备远程调用。销货单单身开窗带回20笔品号,使用智能计算之后的远程调用顺序如下:如果以下两个远程调用:a品号带值远程调用、b取价服务远程调用 之间没有依赖关系,只需发起1次(批)远程调用即可。(此次远程调用,会将10笔品号带值,10笔取价的输入参数全部传到服务端,服务

13、端会计算10笔品号带值,10笔取价,并将全部结果返回)如果b取价服务远程调用 依赖于a品号带值远程调用,则将发起2次(批)远程调用。这种批量的远程调用请求,称为ICallbackPrepareService:回调引擎数据准备服务,目的为后续的带值及公式准备数据。4849远程调用总次数远程调用总次数 使用智能计算后,远程调用收集起来,同类型的远程调用的输入参数进行压缩,会明显减少远程调用次数。并且远程调用次数不会随业务场景数据笔数的增加而增加。远程调用次数基本恒定在一定的数量。如果出现远程调用总次数会随着数据笔数的增加而增加的情况,就应该检查是否功能实现上存在问题。50第五章:配置的注意事项和常

14、见问题分析第五章:配置的注意事项和常见问题分析配置注意事项:51 1.确保传值类型和变量的参数类型匹配确保传值类型和变量的参数类型匹配 例如:TryGetConvertedQty 参数为Decimal类型在传值时:不能直接写无小数格式的数值,因为这会被视为int型,需用Decimal(Vaule)强转。 52 报错信息参考报错信息参考: 53 2.传值是从传值是从DependencyObject对象获取时,格式需要转换。对象获取时,格式需要转换。例如: 原公式格式:Context.GetPurchasePrice.RecommendedPrice 变量格式: ActiveObject. VL_

15、GetPurchasePrice “RecommendedPrice” 同时IF条件中需要对DependencyObject对象做判空543.服务端功能包需配置函数的服务接口和实现服务端功能包需配置函数的服务接口和实现例如付款计算GetPaymentTerm函数: 接口:Digiwin.ERP.Common.Business.IPaymentTermService,Digiwin.ERP.Common.Business 实现:Digiwin.ERP.PaymentTermService.Business.Implement.PaymentTermService,Digiwin.ERP.Paym

16、entTermService.Business.Implement55报错信息参考报错信息参考564. 参数用到虚字段,需要转为参数用到虚字段,需要转为sharedata关系使用关系使用574. 参数用到虚字段,需要转为参数用到虚字段,需要转为sharedata关系使用关系使用1. 带值部分的虚字段,可以转为sharedata关系放到参数项中。2. 公式计算出的虚字段,可以把表达式逻辑放到参数项中。585. GetEntityProperty函数也可以被变量替换596. 参数为数组时,需要使用参数为数组时,需要使用“ ”括起传值括起传值607. 所属所属TypeKey要设置正确要设置正确61报

17、错信息参考628.Sharedata关系关联条件不支持使用虚字段和关系关联条件不支持使用虚字段和V.参数参数可以考虑使用GetEntityProperty变量替代639.撰写可被变量调用的服务和方法撰写可被变量调用的服务和方法注意点:参数是数组类型时,请使用Icollection类型类型XX6410.变量的参数值前不能有空格变量的参数值前不能有空格X报错信息参考6511.公式组中的依赖项要保证变量能正确执行公式组中的依赖项要保证变量能正确执行案例1. QueryPrice函数变量配置信息6611.公式组中的依赖项要保证变量能正确执行公式组中的依赖项要保证变量能正确执行原公式组中使用变量时未把T

18、AX_RATE作为依赖项,造成变量取值错误6711.公式组中的依赖项要保证变量能正确执行公式组中的依赖项要保证变量能正确执行原因分析:添加sharedata功能后回调引擎计算顺序的改变,导致原有公式组需增加依赖项,公式定义如下:需把变量的参数ActiveObject.TAX_RATE作为依赖项场景1.原公式组(不使用sharedata变量)没有依赖项税率: ActiveObject.TAX_RATE,计算顺序如下: 税种改变,税率为0 税种带值税率,税率为0.05 税种触发公式,传入税率0.05, QueryPrice函数返回回单价不为0场景2.现公式组(使用sharedata变量)如果不加依赖项税率:ActiveObject.TAX_RATE,计算顺序如下: 税种改变,税率为0 公式使用sharedata变量,税种改变,引发变量数据准备,传入税率0, QueryPrice函数返回单价0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论