删除 arraykey 中所有行的最佳方法是什么?

What is best way to delete all rows within an arraykey?

我有一个实体 Contact,它有一个数组实体 Specialties。只是一个标准的一对多关系。一接触多专业。 (专业实体有几列,可能不相关)。我有一个屏幕可以将专业列表添加到 PCF 上的联系人。我想在“联系人”屏幕上添加一个自定义“全部删除”按钮,该按钮将针对特定联系人删除数组中的所有值。一个联系人可以有大量的专业(~10000) 删除数组中所有元素的最佳方法是什么?

目前,我在按钮的动作属性上有以下功能,它正在计时和超时。

for(spec in contact.Specialties) 
{contact.removeFromSpecialties(spec) //OOTB remove from array method}

从数组实体中删除约 10000 条记录还有其他更好的方法吗?

根据您上面的问题,我假设您将在 PCF 屏幕中有一个“全部删除”按钮,其中的操作会删除与该特定联系人关联的所有专业记录,但您不会删除部分记录(如一条或几条记录)。

我还假设“Speciality”实体的实体类型是“Editable”或“Retireable”。

牢记以上假设,您可以创建一个新函数并从“全部删除”按钮操作调用该函数 属性。

下面给出的代码将从数据库 table 中硬删除整个记录,就像您对数据库 table、

执行删除查询一样
function removeAllSpecialitiesForContact(contactFromPCF : Contact){
 
  var specialityQuery = Query.make(entity.Speciality).compare(Speciality#Contact, Equals, contactFromPCF.ID)      
  var deleteBuilder = new com.guidewire.pl.system.database.query.DeleteBuilder.DeleteBuilder(specialityQuery)
  deleteBuilder.execute() 
 
}

这种新方法可能不会像您已经遇到的那样在 PCF 操作后超时。