• D365: 添加客制化表作为财务维度


    1,创建表VyaFDCAPEX

    注意事项

    - 必须添加delete,renamePrimaryKey,writeCrossCompany方法

    public void delete()
        {
            // Check to see if the associated dimension attribute value has been used
            // in a way that would prevent deletion.
            if (!DimensionValidation::canDeleteEntityValue(this))
            {
                throw error(strfmt("@SYS134392", this.Code));
            }
    
            ttsbegin;
    
            // Update the associated dimension attribute value.
            DimensionAttributeValue::updateForEntityValueDelete(this);
    
            this.writeCrossCompany(tableMethodStr(VyaFDCAPEX, delete));
    
            super();
    
            ttscommit;
        }
    
        public void renamePrimaryKey()
        {
            Common originalRecord = this.orig();
    
            super();
    
            DimensionValueRename::syncRenamedValue(this, originalRecord);
    
            this.writeCrossCompany(tableMethodStr(VyaFDCAPEX, renamePrimaryKey), originalRecord);
        }
    
        private void writeCrossCompany(str _methodName, Common _originalRecord = null)
        {
            SysDataSharingPolicy policy = SysDataSharingPolicy::findSharingPolicyByCompanyAndTable(curExt(), tableId2name(this.TableId));
            if (policy.RecId && policy.IsEnabled)
            {
                Query       query = SysDataSharingCrossCompanyValidatorQueryBuilder::buildQuery(this.orig(), policy.RecId);
                QueryRun    queryRun = new QueryRun(query);
            
                while (queryRun.Next())
                {
                    VyaFDCAPEX companyCAPEX = queryRun.get(this.TableId);
                    DataAreaId company = companyCAPEX.DataAreaId;
    
                    if (companyCAPEX && company && company != curExt())
                    {
                        changecompany(company)
                        {
                            VyaFDCAPEX capex = VyaFDCAPEX::find(companyCAPEX.Code);
                            if (capex.RecId)
                            {
                                buf2Buf(this, capex);
    
                                switch (_methodName)
                                {
                                    case tableMethodStr(VyaFDCAPEX, delete):
                                        if (!DimensionValidation::canDeleteEntityValue(capex))
                                        {
                                            throw error(strfmt("@SYS134392", capex.Code));
                                        }
    
                                        DimensionAttributeValue::updateForEntityValueDelete(capex);
                                        break;
                                    case tableMethodStr(VyaFDCAPEX, renamePrimaryKey):
                                        DimensionValueRename::syncRenamedValue(capex, _originalRecord);
                                        break;
                                    default:
                                        return;
                                }
                            }
                                
                        }
                    }
                }
            }
        }
    

      

    2,增加创建主表的窗体,菜单

     3,增加View VyaFDCAPEXDimensionAttribute

    注意事项

    - 视图标签必须指定

    - Singular label必须指定

    - 数据源名称”必须为“BackingEntity”

    - 需要包含三个字段Key, Vaule, Name

    - 必须包含Vaule和Name的唯一索引

    - 必须包含方法

    [SubscribesTo(classstr(DimensionEnabledType), delegatestr(DimensionEnabledType, registerDimensionEnabledTypeIdentifiersDelegate))]
    public static void registerDimenionEnabledTypeIdentifier(DimensionIEnabledType _dimensionIEnableType)
    {
    _dimensionIEnableType.registerViewIdentifier(tableStr(VyaFDCAPEXDimensionAttribute));
    }

    - 视图必须要有privilege,并将privilege放入到duty(SysServerAXBasicMaintain)中

     

    4,打开URL清除缓存

    https://*****.sandbox.operations.dynamics.com/?cmp=****&mi=DimensionClearCacheScopes

  • 相关阅读:
    mysqlnd cannot connect to MySQL 4.1+ using old authentication
    nginx中查看关于php的配置和php-fpm的重启等操作
    nginx中查看关于php的配置和php-fpm的重启等操作
    linux面试题1
    linux笔试
    面试题
    shell脚本实例
    shell脚本
    mysql主从复制
    Discuz!NT静态文件缓存(SQUID)
  • 原文地址:https://www.cnblogs.com/dingkui/p/16602099.html
Copyright © 2020-2023  润新知