Search to get sales orders that does not have at least any of the given items

var salesorderSearchObj = search.create({
   type: "salesorder",
   filters:
   [
      ["type","anyof","SalesOrd"], 
      "AND", 
      ["cogs","is","F"], 
      "AND", 
      ["shipping","is","F"], 
      "AND", 
      ["taxline","is","F"], 
      "AND", 
      ["datecreated","within","3/1/2025 12:00 am","3/10/2025 11:59 pm"], 
      "AND", 
      ["sum(formulanumeric: CASE WHEN {item.internalid} IN (36496,36473,36470,36488,36486,36476,36490,36499,36477,36475,36483,36481,36479,36498,36480,36368,36492,36491,36494,36487,36482,36489,36627,36469,36485,36484,36478,36495,36472,36471,38291,36493,675,676,677,678,680,681,682,683,684,685,686,687,688,38311,691,693,694,36194,38287,38285,695,696,697,698,699,36188,700,38289,38290,36185,36186,707,708,36628,36189,711,713,714,36191,717,719,36363,720,721,36184,722,726,621) THEN 1 ELSE 0 END)","equalto","0"]
   ],
   columns:
   [
      search.createColumn({
         name: "tranid",
         summary: "GROUP",
         label: "Document Number"
      }),
      search.createColumn({
         name: "internalid",
         summary: "GROUP",
         label: "Internal ID"
      }),
      search.createColumn({
         name: "entity",
         summary: "MAX",
         label: "Name"
      }),
      search.createColumn({
         name: "trandate",
         summary: "MAX",
         label: "Date"
      }),
      search.createColumn({
         name: "subsidiary",
         summary: "MAX",
         label: "Subsidiary"
      }),
      search.createColumn({
         name: "email",
         summary: "MAX",
         label: "Email"
      }),
      search.createColumn({
         name: "custbody_jj_type_of_delivery",
         summary: "MAX",
         label: "Type of Delivery"
      }),
      search.createColumn({
         name: "location",
         summary: "MAX",
         label: "Location"
      }),
      search.createColumn({
         name: "custbody_aha_sales_location",
         summary: "MAX",
         label: "Sales Location"
      }),
      search.createColumn({
         name: "custbody45",
         summary: "MAX",
         label: "Sales Associate"
      })
   ]
});
var searchResultCount = salesorderSearchObj.runPaged().count;
log.debug("salesorderSearchObj result count",searchResultCount);
salesorderSearchObj.run().each(function(result){
   // .run().each has a limit of 4,000 results
   return true;
});

Leave a comment

Your email address will not be published. Required fields are marked *