07-29-2024 07:47 AM
I have an Epicor BAQ report I use in Workato that gives me a list of all SKUs in an order and their shipping information
99.9% of the time all the SKUs in an order will be on the same pricebook but on rare occasions 2 SKUs might on pricebook X and 1 SKU on pricebook Y so each record in the BAQ report will have a pricebook field
is there a way in workato to count the number of different prciebooks or do i have to loop through each record to count them?
thanks
Solved! Go to Solution.
07-29-2024 08:25 AM
I don't know how your data is structured, but you can use a combination of pluck and uniq to accomplish what you need.
Here's how they work:
list = [
{"book": "a"},
{"book": "a"},
{"book": "b"}
]
books = list.pluck("book")
## outputs ["a","a","b"]
uniqbooks = list.pluck("book").uniq
## outputs ["a","b"]
uniqbooks.size
## outputs 2, the number of items in the array
07-29-2024 10:03 AM - edited 07-29-2024 10:06 AM
You can do it directly from the output of the Epicor action.
Also, just a heads up that will hopefully save you some time...
When you use .pluck you need to refer to a data pill by its "API key", which is the schema key and NOT it's readable label. This usually trips people up when using methods on connector data pills with really long labels, or when the label and the key are completely different.
To see the API key, just hover over the data pill. If you were to pluck the pill below, you would use .pluck("field_1") and not .pluck("blah blah blah...")
I'm mentioning this because you might have to pluck "Price list 2 of price book ID 18 char c" and I would be very surprised if that label was also the API key.
2 weeks ago - last edited 2 weeks ago
When data is missing, it should be missing in a few different ways:
If the key is always present and a blank value is "", then this will work!
08-16-2024 04:48 PM
this is working great but now I'm curios if there is a way to see if there are any blanks
if I do this and test [Value Step3}.pluck('PriceLstParts_SfPriceBookEntryId18Char_c')
I get a list of tehse fields such as
"A" "B" "C"
but sometimes its "A" "B" "" "C"
where one is blank I just want tos ee if Blanks are greater than 0
played around with scan and blank etc can't seem to get it to work
[Value Step3}.pluck('PriceLstParts_SfPriceBookEntryId18Char_c').blank?
08-16-2024 08:17 PM
It's not published in Workato, but "count" is a standard Ruby method that you can use.
@meghan-legaspi Could someone add "count" to the formula helper and also to the Ruby docs?
https://docs.workato.com/developing-connectors/sdk/sdk-reference/ruby_methods.html
08-21-2024 01:08 PM
Hey @gary1 – great thought! I can pass this along, though I also recommend submitting that feedback through the portal. Our team loves to keep in touch with the folks that make these requests to let them know when it's done! 🙂
08-21-2024 03:59 PM
Is the portal the one where users have to vote on which requests get prioritized?
08-23-2024 08:19 AM
Hey Gary,
You can submit feedback via AssistIQ when you are logged into your Workato account (see screenshot below). This should go straight to our support team – user voting shouldn't affect that.