【问题标题】:Customization Default library自定义默认库
【发布时间】:2021-03-19 05:28:39
【问题描述】:

有人可以帮我学习 acumatica 吗?我有一个应用程序,女巫使用 acumatica 库连接到 acumatica:Auth,Default_18.200.001,RESTClient 从这里:https://github.com/Acumatica/AcumaticaRESTAPIClientForCSharp 我像子模块一样使用它 - 如果某些内容会在 git 上发生变化 - 我总是可以更新它

我需要在项目表单中添加自定义字段。我做到了 - 添加字段,发布更改。之后,我创建了一个从默认端点继承它的新端点——当使用 Project 实体时,我可以使用新字段。我通过创建继承自 api 的类和覆盖 GetEntityName() 方法的基本模型来实现这一点。

如果我需要更改字段,我将不得不创建新的继承类。

也许有一些标准的方法来支持自定义字段?而我就是没找到。

我的 Api 扩展:

public class ProjectExtApi : EntityAPI<ProjectExt>
    {
        public ProjectExtApi(Configuration configuration) : base(configuration)
        { }

        protected override string GetEntityName()
        {
            return "Project";    //base code: return typeof(EntityType).Name;
        }
    }

和型号:

[DataContract]
public class ProjectExt : Project
{
    [DataMember(Name = "TestDate", EmitDefaultValue = false)]
    public DateTimeValue TestDate { get; set; }
}

【问题讨论】:

    标签: acumatica


    【解决方案1】:

    我的回答与 Acumatica 产品中的自定义字段有关。应使用 DAC 扩展(PXCacheExtension 类)添加自定义字段,例如:

    public class MyContractExt : PXCacheExtension<Contract>
    {
       #region UsrDateTime
       [PXDBDateAndTime]
       public virtual DateTime? UsrDateTime { get; set; }
       public abstract class usrDateTime : BqlDateTime.Field<usrDateTime> { }
       #endregion
    }
    

    请注意,Acumatica 中的 PMProject DAC 继承自 Contract DAC,并且该字段将保留在 Contract 表中。 如果该字段需要持久保存在数据库中(使用 PXDBxyz.. 属性而不是 PXxyz..),则需要一个数据库脚本。

    建议使用自定义添加自定义字段。在自定义的数据访问部分创建自定义字段时,向导将自动创建数据库脚本以将列添加到表中。

    外部链接,教程: https://www.acu-connect.com/2019/02/27/customizing-acumatica-erp-adding-a-new-field-to-an-existing-screen/

    【讨论】:

    • 你能告诉我在哪里可以找到 PXCacheExtension 类吗?它在 AcumaticaRESTAPIClientForCSharp 库中吗?我看到合同表中添加了新字段。我根据您添加的本手册对 aсumatica 进行了更改,还使用了 265 页面上的文档 acumatica.com/media/2020/09/… = 0 添加新端点
    • 也许我在使用 Acumatica 时根本就错了。目前,我需要的数据可以使用对 *** / entity / Default / 18.200.001 / Project / ProjectID 的请求获得端点 *** / entity / DefaultTEST / 18.200.001 / Project / ProjectID 我使用 Project 模型获得自定义字段这不是正确的方法还是只是另一种方式?我不需要额外的数据,Contract 模型包含很多额外的数据——我不需要
    • 而且我在 Acumatica.Default_18.200.001 中也找不到实体合同。而且我只能在 swagger.json 上找到默认 API 端点的 ContractUsage 实体,但它是不同的实体..
    • 合约 DAC 在 Acumatica 服务器端。 REST 客户端请求 Project 实体,但数据最终取自 Contract 数据库表。您所指的模型类是 GitHub 项目的一部分,而不是 Acumatica 核心产品的一部分。与 REST API 交互不需要这些模型。 REST API 返回 JSON 文本数据。您可以根据需要阅读 JSON。使用来自 GIT hub 的模型类是可选的。查看此页面以供参考:help-2021r1.acumatica.com/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-08
    • 2017-06-14
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多