zoukankan      html  css  js  c++  java
  • 第九章:XML文档集成定制已存在的XML文档

    本文仅供AX从业者和爱好者学习交流之用,请勿转载。
    作为定制已存在的XML文档的例子,假定在针对客户的一个解决方案中有一张表用来存放每一个库存商品的多个图片(译注:原文为illustrations,翻译成图解有点别扭),想在以XML文档发送采购订单的时候包含这些图片。这张表的结构如图9-8所示:

    图9-8自定义表的结构
    第一步是修改AxdPurchaseRequisition 这个Query使其包含ItemIllustration 这张表,也就是定制解决方案中的新建的表。图9-9显示了在添加了新建的表后,该Query的样子。被框起来的区域是必须向Ax4.0中发布的该Query中添加的部分。

    图9-9.添加表ItemIllustration 后的Query
    定制XML文档过程的第二步是通过Axd向导运行Query。向导的第二页提示解决方案所基于的Query的名称,在本例中,Query的名称为AxdPurchaseRequisition。在向导的下一页,如图9-10所示,可输入类的名称,默认与Query的名称相同。

    图9-10.向导页,在该页可以选择XML文档应该支持的操作
    剩余的字段对该过程来说是无关紧要的,因为不会更改已经存在的Axd<Document>类。如果在Query中创建了关系,向导会在方法prepareForSave 中构造所有需要的代码。
    在下一页中,选择第一项以创建新的Ax<Table>类,第二个选项,是可选的,更新已存在的Ax<Table>类,该类有可能已经是最新的了。
    在运行完向导后,需要修复可能有的编译错误和Axd向导产生的to-dos。首先,如果不需要缓存(caching)的话去掉它,通过移除两个方法CacheObjectCacheRecordRecord。当移除这些类(译注:原文为classes,感觉用Methods会更好些),必须移除类声明中的两个变量cacheRecordIdxcacheObjectIdx。假定InventDim不影响图片,移除这个可选参数,这样parmItemId方法看起来如下所示:

    public str parmItemId(str _itemId = '')
    {
        DictField dictField;
        ;
        
    if (!prmisdefault(_itemId))
        
    {
            dictField 
    = new DictField(tablenum(ItemIllustration),fieldnum(ItemIllustration,
    ItemId));
            
    this.validateInboundItemIdString(_itemId,dictField);
            
    if(this.valueMappingInbound())
            
    {
                item 
    = _itemId;
            }


            
    this.setField(fieldNum(ItemIllustration,ItemId), _itemId);
        }


        
    if (this.valueMappingOutbound())
        
    {
            
    return conpeek(this.axSalesItemId('',
     itemIllustration.ItemId),
    1);
        }

        
    else
        
    {
            
    return itemIllustration.ItemId;
        }

    }

    这样新创建表的实现就结束了,可以通过基本设置->设置->应用程序框架->操作重新注册AxdPurchaseRequisition 来生成XML架构(Schema).
  • 相关阅读:
    SpringBoot-配置Druid-yml方式
    CentOS7下配置Nginx并实现简单的负载均衡
    用私有构造器或者枚举类型强化Singleton
    virtualenv虚拟环境的使用
    Windows平台安装Python
    window平台基于influxdb + grafana + jmeter 搭建性能测试实时监控平台
    easy-mock本地部署成功,访问报错:EADDRNOTAVAIL 0.0.0.0:7300 解决方案
    npm install 报错: WARN checkPermissions Missing write access to 解决方案
    npm install 报错:ERR! code EINTEGRITY 解决方案
    最新版chrome浏览器如何离线安装crx插件?(转载)
  • 原文地址:https://www.cnblogs.com/Farseer1215/p/828844.html
Copyright © 2011-2022 走看看