Acumatica 如何在全文实体索引中包含自定义字段?

Acumatica 如何在全文实体索引中包含自定义字段?,acumatica,acumatica-kb,Acumatica,Acumatica Kb,客户希望使用通用搜索框在自定义字段中搜索值。如何做到这一点 在本例中,我为InventoryItem创建了一个简单的自定义文本字段。目前,它在UI中不可见。让我们参考在中创建的自定义USRALTernateID字段,并将其包含到Acumatica的全文实体索引中 将USRALTernateId字段包含到全文实体索引中所需的唯一修改是替换InventoryItemDAC中NoteID字段上使用的PXSearchableAttribute的原始声明。如下面的代码片段所示,UsrAlternateID

客户希望使用通用搜索框在自定义字段中搜索值。如何做到这一点


在本例中,我为InventoryItem创建了一个简单的自定义文本字段。目前,它在UI中不可见。

让我们参考在中创建的自定义USRALTernateID字段,并将其包含到Acumatica的全文实体索引中

将USRALTernateId字段包含到全文实体索引中所需的唯一修改是替换InventoryItemDAC中NoteID字段上使用的PXSearchableAttribute的原始声明。如下面的代码片段所示,UsrAlternateIDs现在包含在字段中类型数组中,该数组作为第三个参数传递给新的PXSearchableAttribute构造函数:

[PXNonInstantiatedExtension]
public class InventoryItemExt : PXCacheExtension<PX.Objects.IN.InventoryItem>
{
    [PXMergeAttributes(Method = MergeMethod.Append)]
    [PXRemoveBaseAttribute(typeof(PXSearchableAttribute))]
    [PXSearchable(SM.SearchCategory.IN, "{0}: {1}", 
        new Type[] {
            typeof(InventoryItem.itemType),
            typeof(InventoryItem.inventoryCD) },
        new Type[] {
            typeof(InventoryItem.descr),
            typeof(InventoryItemExt.usrAlternateIDs) },
        NumberFields = new Type[] {
            typeof(InventoryItem.inventoryCD),
            typeof(InventoryItemExt.usrAlternateIDs) },
        Line1Format = "{0}{1}{2}", 
        Line1Fields = new Type[] {
            typeof(INItemClass.itemClassCD),
            typeof(INItemClass.descr),
            typeof(InventoryItem.baseUnit) },
        Line2Format = "{0}", 
        Line2Fields = new Type[] {
            typeof(InventoryItem.descr) },
        WhereConstraint = typeof(Where<Current<InventoryItem.itemStatus>, 
            NotEqual<InventoryItemStatus.unknown>>)
     )]
     public Guid? NoteID { get; set; }
}
[PXNonInstantiatedExtension]
公共类InventoryItemExt:PXCacheExtension
{
[PXMergeAttributes(Method=MergeMethod.Append)]
[PXRemoveBaseAttribute(类型(PXSearchableAttribute))]
[PXSearchable(SM.SearchCategory.IN,“{0}:{1}”,
新类型[]{
类型(InventoryItem.itemType),
类型(InventoryItem.inventoryCD)},
新类型[]{
类型(InventoryItem.descr),
类型(InventoryItemExt.usralternateId)},
NumberFields=新类型[]{
类型(InventoryItem.inventoryCD),
类型(InventoryItemExt.usralternateId)},
Line1Format=“{0}{1}{2}”,
Line1Fields=新类型[]{
类型(INItemClass.itemClassCD),
类型(INItemClass.descr),
类型(InventoryItem.baseUnit)},
Line2Format=“{0}”,
Line2Fields=新类型[]{
类型(InventoryItem.descr)},
WhereConstraint=typeof(其中)
)]
公共Guid?NoteID{get;set;}
}
在按照上述示例实现了一个InventoryItem扩展并在Acumatica ERP实例上重建全文实体索引后,应该可以根据库存项目的备用ID搜索库存项目