Acumatica 将供应商查找添加到自定义字段
我在SO行中为vendorid添加了一个自定义字段。是的,我知道有一个,但我们正在建立一些新的逻辑。我添加了整数字段,它显示在网格上。我正在查找供应商。我是从这个开始的Acumatica 将供应商查找添加到自定义字段,acumatica,Acumatica,我在SO行中为vendorid添加了一个自定义字段。是的,我知道有一个,但我们正在建立一些新的逻辑。我添加了整数字段,它显示在网格上。我正在查找供应商。我是从这个开始的 Where<AP.Vendor.type, NotEqual<BAccountType.employeeType>>>))] 有人有什么想法吗 评论太长,但更多的是建议而不是答案。尝试构建自己的PX选择器。我有一个自定义DAC,它需要存储两个供应商,我不得不放弃AP.Vendor属性来创建一个自定
Where<AP.Vendor.type, NotEqual<BAccountType.employeeType>>>))]
有人有什么想法吗 评论太长,但更多的是建议而不是答案。尝试构建自己的PX选择器。我有一个自定义DAC,它需要存储两个供应商,我不得不放弃AP.Vendor属性来创建一个自定义PXSelector,以使我的工作正常。这是我的一本书。在我的例子中,我需要能够看到哪一个被定义为仓库的首选供应商,我只想看到与我的InventoryID关联的供应商。SSiNitBranch是一个自定义DAC,也可在此DAC的使用范围内使用。关键是,如果您需要一个从头开始创建自己的示例,请使用此示例。如果这不是您想要完成任务的方式,那么至少您可以确定问题是AP.Vendor属性的用例还是其他问题
[PXSelector(
typeof(Search2<
Vendor.bAccountID,
InnerJoin<POVendorInventory,
On<POVendorInventory.vendorID, Equal<Vendor.bAccountID>,
And<POVendorInventory.inventoryID, Equal<Current<SSINItemBranch.inventoryID>>>>,
LeftJoin<INItemSite, On<INItemSite.inventoryID, Equal<POVendorInventory.inventoryID>,
And<INItemSite.preferredVendorID, Equal<POVendorInventory.vendorID>,
And<INItemSite.preferredVendorLocationID, Equal<POVendorInventory.vendorLocationID>,
And<INItemSite.preferredVendorOverride, Equal<True>>>>>>>,
Where<Vendor.type, Equal<BAccountType.vendorType>>>),
typeof(Vendor.acctCD),
typeof(Vendor.acctName),
typeof(POVendorInventory.vendorLocationID),
typeof(INItemSite.preferredVendorOverride),
typeof(POVendorInventory.vendorInventoryID),
typeof(POVendorInventory.vLeadTime),
SubstituteKey = typeof(Vendor.acctCD),
DescriptionField = typeof(Vendor.acctName),
Filterable = true
)]
TL;博士
从字段中删除PXDBInt属性
这里的问题不是Where条件,而是字段的属性定义
[PXDBInt]
[PXUIField(DisplayName="Vendor ID")]
[AP.Vendor(typeof(Search<BAccountR.bAccountID, Where<AP.Vendor.type,
NotEqual<BAccountType.employeeType>>>))]
实际上,这里有两个DBField属性。您拥有包含PXDBIntAttribute的PXDBIntAttribute和供应商属性。
因此,框架具有错误的字段到db列的映射,这导致了奇怪的错误
如果您使用Visual studio,我建议您尝试Acuminator扩展
它突出显示了这类错误
能否为错误添加堆栈跟踪?这可能会使我们对错误有所了解。完整字段定义也可能有帮助[PXDBInt][PXUIFieldDisplayName=供应商ID][AP.VendortypeofSearch]您确定这是唯一可能导致问题的原因吗?也许还有别的东西。好吧,如果我把它取下来,它会很好用的。如果我加上它,它就会失败。我想可能是我的代码,所以我清除了自定义项中的所有代码并发布了该自定义项,但我仍然遇到了问题。所以,有趣的是,我去掉了所有自定义项,然后在poorder表中添加了一个具有相同属性的字段。同样的错误。这是关于查找不起作用的东西。
[PXSelector(
typeof(Search2<
Vendor.bAccountID,
InnerJoin<POVendorInventory,
On<POVendorInventory.vendorID, Equal<Vendor.bAccountID>,
And<POVendorInventory.inventoryID, Equal<Current<SSINItemBranch.inventoryID>>>>,
LeftJoin<INItemSite, On<INItemSite.inventoryID, Equal<POVendorInventory.inventoryID>,
And<INItemSite.preferredVendorID, Equal<POVendorInventory.vendorID>,
And<INItemSite.preferredVendorLocationID, Equal<POVendorInventory.vendorLocationID>,
And<INItemSite.preferredVendorOverride, Equal<True>>>>>>>,
Where<Vendor.type, Equal<BAccountType.vendorType>>>),
typeof(Vendor.acctCD),
typeof(Vendor.acctName),
typeof(POVendorInventory.vendorLocationID),
typeof(INItemSite.preferredVendorOverride),
typeof(POVendorInventory.vendorInventoryID),
typeof(POVendorInventory.vLeadTime),
SubstituteKey = typeof(Vendor.acctCD),
DescriptionField = typeof(Vendor.acctName),
Filterable = true
)]
[PXDBInt]
[PXUIField(DisplayName="Vendor ID")]
[AP.Vendor(typeof(Search<BAccountR.bAccountID, Where<AP.Vendor.type,
NotEqual<BAccountType.employeeType>>>))]