Weekly Challenges

Solve the challenge, share your solution and summit the ranks of our Community!

Also available in | Français | Português | Español | 日本語
IDEAS WANTED

Want to get involved? We're always looking for ideas and content for Weekly Challenges.

SUBMIT YOUR IDEA

Challenge #66: My Wine Problem

SeanAdams
17 - Castor
17 - Castor

:-) included 3 variants (like 3 different kinds of cheese to go with the wine)

- the standard macro

- the iterative macro

- the batch macro

 

sadly, my neighbours have a strict "no singing old UB 40 songs after 11:30 at night" rule so I couldn't add any music to this experience...

toddhowl
7 - Meteor

I'm having some trouble getting my head around this. Looking at the input, we have at least 801 distinct bottles of wine. But it appears that we've sold bottles 1 through 5 to 3 different customers (orders 1,2, & 3) and bottles 6 through 12 to two different customers (orders 2 & 3). Shouldn't the macro check for that? We can't send the same bottle out in multiple orders. What am I missing?

SeanAdams
17 - Castor
17 - Castor

great idea @toddhowl - that does add an extra challenge to this, I like your suggestion.

So are you thinking of building a macro that has an extra output with the errors/duplicate sales (I'm thinking of a batch macro that spits out your packing manifest on one output, a summary on the second, and possibly this kind of error on the third)?

 

Give it a bash - would be very interested to see your approach!

NaiLou
5 - Atom

I didn't have a chance to create a batch macro, unfortunately I only had white wine stocked in the fridge ;) 

 

Spoiler
Challenge 66.png   

 

alex
11 - Bolide

I completed mine as a Batch Macro and did not use a multi-row tool.  Tested for 3 scenarios and set to stop passing records if they are encountered.

Edit: The workflow has a sixth order to test errors.  Delete row 6 from Text input to see a completed workflow.

 

Spoiler
66A.JPG
66B.JPG

 

alex
11 - Bolide

@toddhowl@SeanAdams- based on my understanding of the challenge it is limited quantities, not distinct ids - more like UPC than VIN.  $.02

Joe_Mako
12 - Quasar

I attempted a Batch Macro with the Error checking, and aimed for the least amount of tools in the Macro. I got 7 including interface tools.


You can rewire the input to use the Text Input tool that has the error causing situations (or Union both inputs to see how it handles a mix of good and bad records).

 

Spoiler

 Challenge 66.png

in the Macro:
1- Macro Input, set to not show field map, to allow for non-integer fields be used as input (so we can capture the error)

2- Message, set to Before Rows Where Expression is True:

IsNull([StartingBottleID])
OR

IsNull([EndingBottleID])
OR

NOT IsInteger([StartingBottleID])
OR

NOT IsInteger([EndingBottleID])
OR

ToNumber([EndingBottleID],1)<ToNumber([StartingBottleID])

I decided to just Error and let it continue to work, so all errors can be seen, and acceptable records will continue to be processed.

3- Generate Rows, will create a RecordID for each Bottle, starts counting at 0, and ends at the difference between the start and end. I made use of the optional arguments in the ToNumber() function.

4- Control Patameter, to bring in BoxSize

5- Formula, to calculate:

BoxSize:
Max(ToNumber([#1]),1)
If an invalid value is entered, BoxSize will become 1

BoxNumberForOrder:
FLOOR(([RecordID])/[BoxSize])+1
Bin RecordID based on BoxSize

BottleID:
[RecordID]+ToNumber([StartingBottleID])
Convert RecordID into BottleID

6- Summarize, aggregate data to desired level of detail.

7- Macro Output, no config needed

I did not change any of the defaults in the Interface Designer.

 

SeanAdams
17 - Castor
17 - Castor

Thank you @alex and @Joe_Mako for spotting that I posted the wrong file. 

 

Correct file attached now (part 1 of 2)

SeanAdams
17 - Castor
17 - Castor

correct files part 2 of 2

JoeM
Alteryx Alumni (Retired)

This week we will give you some different ways to execute the problem. Solutions posted!