【问题标题】:Acumatica: Conflict between customization projectsAcumatica:定制项目之间的冲突
【发布时间】:2019-08-12 23:41:44
【问题描述】:

由于项目之间的冲突,验证自定义时出错。

我将一个项目的级别设置为 99。

我的代码很简单。如果某些字段在供应商维护中更新,我会将供应商维护中的状态翻转为“H”,但它与自定义几个 CS 屏幕的项目冲突。

<Graph ClassName="VendorMaint" Source="#CDATA" IsNew="True" FileType="ExistingGraph">
<CDATA name="Source"><![CDATA[
using PX.Data;
using PX.Objects.CS;

namespace PX.Objects.AP
{
    public class VendorMaint_Extension : PXGraphExtension<VendorMaint>
    {
        protected void CSAnswers_Value_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e)
        {
            Base.BAccount.SetValueExt<VendorR.status>(Base.BAccount.Current, "H");
        }
        protected void Address_AddressLine1_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e)
        {
            Base.BAccount.SetValueExt<VendorR.status>(Base.BAccount.Current, "H");
        }
    }
}]]></CDATA>
    </Graph>
    <DAC type="PX.Objects.CR.BAccount">
        <Field FieldName="Status" TypeName="string" OverrideClassName="PX.Objects.AP.Vendor" StorageName="ExistingColumn" />
    </DAC>
</Customization>

错误:自定义项目之间存在冲突。 Thay 正在尝试从 PX.Objects.CR.BAccount 自定义相同的 DataField 状态

验证失败。

我是 Acumatica 的新手,我发现的所有帖子似乎都是针对早期版本的。任何指导将不胜感激。

【问题讨论】:

  • 我建议将基本方法处理程序添加到您的事件处理程序中,并在您的代码之前调用它们。还有,你是二次定制的代码吗?

标签: customization project acumatica merge-conflict-resolution


【解决方案1】:

您没有从第二个定制项目上传代码,但查看您的代码,您似乎不需要更改 BAccount DAC 中的任何内容,因此您可以通过删除该定制来简化您的项目,这应该可以解决正在报告的冲突。此外,通过告诉您的覆盖在设置新状态值之前调用基本处理程序来保留任何现有事件也是有意义的。

尝试像这样更改您的项目(注意第一行应该与您的描述和 Acumatica 版本匹配):

<Customization level="99" description="" product-version="18.212">
<Graph ClassName="VendorMaint" Source="#CDATA" IsNew="True" FileType="ExistingGraph">
<CDATA name="Source"><![CDATA[
using PX.Data;
using PX.Objects.CS;

namespace PX.Objects.AP
{
    public class VendorMaint_Extension : PXGraphExtension<VendorMaint>
    {
        protected void CSAnswers_Value_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e, PXFieldUpdated InvokeBaseHandler)
        {
            if (InvokeBaseHandler != null) InvokeBaseHandler(cache, e);

            Base.BAccount.SetValueExt<VendorR.status>(Base.BAccount.Current, "H");
        }
        protected void Address_AddressLine1_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e, PXFieldUpdated InvokeBaseHandler)
        {
            if (InvokeBaseHandler != null) InvokeBaseHandler(cache, e);

            Base.BAccount.SetValueExt<VendorR.status>(Base.BAccount.Current, "H");
        }
    }
}]]></CDATA>
</Graph>
</Customization>

【讨论】:

    猜你喜欢
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多