我们都知道,在窗体上保存记录时,会像在表上保存时一样,触发很多方法.这里Reinhard找到了一个流程图,看看都触发了哪些方法,并且这些方法是以怎样的顺序被触发的. 窗体上数据源的Validate()方法被调用. 当Validate()方法里的Super()被调用时,该表的ValideField()  方法会被每个字段调用. Vlidate()方法里,Super()下面的代码被调用. 窗体上数据源的ValidateWrite()方法被调用. 当ValidateWrite()方法中的Super()…
今天Reinhard在VS中部署SSRS报表时,接到以下错误: 部署因错误而被取消.在报表服务器上,验证:-SQL Server Reporting Services 服务是否正在运行. 接着,Reinhard进入到AX中,检查系统的报表服务器配置是否正确.不知道怎么配置的同学可以查看Reinhard之前的博文 Dynamics AX 2012 R2 配置报表服务器  .检查发现,报表服务器中的配置也正确.Reinhard点击了一下 验证设置 按钮,收到以下错误: 无法连接到位于MSDynAX的…
当处理的数据量较多,逻辑比较复杂时,报表可能会超时.为了解决这个问题,Reinhard一直使用SrsReportDataProviderPreProcess来做预处理报表.它会在调用SSRS前,在AX会话中处理数据.预处理过的数据存储在常规表中,该表是所有用户会话共享的,通过会话id标识.这样的方法在多用户并发时,会有瓶颈. 在Dynamics AX 2012 R2中,其实还有一个类,SrsReportDataProviderPreProcessTempDB,他可以使用临时表,来持有跨会话(从数…
Dynamics AX 2012 R2 电子邮件广播错误 0x80040213 今天Reinhard在新环境做邮件广播测试时,发现无法发送邮件,并报以下错误: 类"CDO.Message"的 COM 对象中的方法"send"返回了错误代码 0x80040213 (),此错误代码表示: 与服务器的传输连接失败.. Reinhard检查了电子邮件参数里的配置,与老环境中的配置一致,并没有问题.电子邮件参数和邮件模板配置方法可以参考Reinhard之前的博文 Dynami…
众所周知,AX系统分为三层:Client,Application Server,Database Server. 我们添加额外的Application Server主要是出于以下两个原因: 使用多台服务器,分担不同的角色(如批处理任务,报表,服务). 增加基础架构的弹性. AX中的集群服务器,并不依托于Windows服务器,而是通过自己的技术实现的.它可以提高性能,但没有提高可用性.当一台服务器挂了,客户端会失去连接,任何正在处理的任务都会被回滚.重启客户端后,会连接到集群中的另一台服务器. 下…
在博文Dynamics AX R2 业务系列中,Reinhard对这个系列做了一个规划,下面我们就按照规划开始说业务吧. 1.销售的主要职责 其实这里说的职责主要是针对销售文员,并非整天外面满世界跑业务的销售业务员. 简单点说,销售的主要职责,是为客户提供产品. 全面点说,销售负责报价.接单,把客户订单传达给生产计划部门,跟踪订单的生产进度,组织发货,跟客户对账结算,跟催收款,维护好客户关系. 2.销售的主要工作内容 报价 合同评审 签订合同 跟踪采购.生产进度 组织发货 月底对账 跟催收款 3…
在博文Dynamics AX R2 业务系列中,Reinhard对这个系列做了一个规划,下面我们就按照规划开始说业务吧. 国际惯例,从采购开始. 1.采购的主要职责 简单点说,采购的主要职责,是从供应商那里获取原料,以保证企业生产.运营. 全面点说,采购的主要职责,是保质保量.适时适价地为企业生产和运营提供原料.保质,主要是指采购要做好供应商资历评估,并配合质检做好原料品质控制工作.保量,主要是指在保证企业生产.运营的同时,不多买也不少买.适时,主要是指采购要跟踪采购进度,保证企业生产.运营的同…
Reinhard在AIF中使用DateTime作为服务契约的参数,与DotNet程序进行交互时,总是因为时区的问题,导致DotNet提交的System.DateTime与AIF中接收的DateTime 不一致. 这个问题着实困扰了Reinhard 许久.为了解决这个问题,Reinhard这次专门写一篇博文,通过一系列的实验,找到通过AIF服务契约,对DateTime进行存储.获取.比较的最佳方式. 1.DateTime存储实验 在AX中,Reinhard写了三个存储DateTime方法,分别测试…
    在这个系列里,Reinhard将和大家一起探索在AX的窗体上执行操作时,都会触发窗体.窗体数据源和表上的哪些方法,并且是以怎样的顺序触发的.     这次,我们来看看在窗体上修改或录入数据的情况.图中所示的流程,是在理想情况下的完整触发过程.如果窗体控件.窗体数据源字段或表的验证方法返回False,也可能会提前结束流程. 用户在窗体上修改或录入数据后,首先触发了该字段的Form.Control.Validate()方法,如果该方法返回的是False,流程到此结束,用户修改或录入数据失败…
在之前的一系列博文里,Reinhard介绍了Dynamics AX Demo的安装与配置.相信同学们看完后,都已经成功拥有了一个测试环境. 众所周知的是,ERP作为一个特殊的软件系统,他有着背后的业务逻辑作为指导.如果只单纯地去学习软件本身的使用,而忽略了软件背后的业务逻辑,那一切的努力注定是在修筑空中花园,浪费时间. 而我们看到,社区中分享的博文,又以开发方面的博文为主,鲜有业务方面的分享.(这能不能说明做开发的同学乐于分享,做业务的同学在闷声赚钱呢?) 在接下来的一系列博文里,Reinhar…