本文仅供AX从业者和爱好者交流之用,由于原文版权问题,请勿转载。
Axd向导的目的是简化,自动化开发和维护Axd和Ax<Table>类,降低由于Ax<Table>与Ax底层的表不同步而导致错误的风险。向导通过去除开发的机械部分来确定人工分析和编码的任务,可以将精力集中在业务逻辑上。向导的交互过程如图9-7所示
图9-7.Axd向导
必须提供一个已存在的Query做为输入,为Axd类指定名称和标签,选择要生成的操作(read, readList, create, createList, findEntityKeys, findList).一个Axd类生成了。向导会从模板生成所有方法并在需要人工操作的地方插入to-do注释。如果只选择了出站操作(read,readList,findEntityKeys,findList),可以选择是否生成Ax<Table>类。
如果Ax<Table>是新创建的,生成的代码框架包含具有正确参数类型和返回值类型的parm<FieldName>方法,这些方法对应于底层表的字段,这些表的字段标记为可见,并且既不是系统表也没有被标记为删除(前缀为DEL的字段)。对已经存在的Ax<Table>类,Ax<Table>类生成器添加所有未添加的parm<Field>方法,校验已存在的Parm<Field>方法签名,可以选择更正方法签名的差异。Ax<Table>类生成器不会删除已存在的类Ax<Table>中已经存在的parm<FieldName>,即使相应的字段已经从底层表中删除了。不必为删除的元素产生任何to-do注释,如果这样做的话,类Ax<Table>将不能通过编译,会自动产生一个错误。
类Ax<Table>类生成器提供如下服务:
1.为生成的类Ax<Table>框架添加to-dos,标志出所有需要手动做的分析和编码任务。
2.为每一个字段确定写引用。这意味着必须使用AX的交叉引用工具确定在应用源代码中为该字段赋值或者更新该字段值的地方。这个信息在反向工程每一个字段的默认和校验逻辑时需要用到。产生的框架包含指向所有更新该字段值的代码片段的可点击链接。如果交叉引用不是最新的Ax<Table>类生成器会记录警告信息。
3.为每一个字段确定值映射。确定该字段的扩展数据类型是否是Ax<Table>必须执行值映射的扩展数据类型的一个(译注:这些类型的列表可以查看类AxGenerateAxBCClass的valueMapMethod方法),如果是的话,它更新parm<Field>方法的签名。
除了前面提到的输出外,Axd向导会产生一个为新创建的Axd类生成XML架构(Schema)的job。