Page 1 of 1
hierarchy path
Posted: Fri Nov 27, 2015 4:10 pm
by kmcrae
Hi,
how can use hierarchy path with three first digit (is the page number) of file for download on the good folder match?!!
101_CAT2016_CLUB_FRNET.pdf ------> CAT16_CX_ANDET_MachineConsumables_100-118
102_CAT2016_CLUB_FRNET.pdf ------> CAT16_CX_ANDET_MachineConsumables_100-118
228_CAT2016_CLUB_FRNET.pdf ------> CAT16_CX_ANNET_OfficeSupplies_209-262
229_CAT2016_CLUB_FRNET.pdf ------> CAT16_CX_ANNET_OfficeSupplies_209-262
Help Thank!!
Re: hierarchy path
Posted: Fri Nov 27, 2015 4:17 pm
by sander
I'm not quite sure what you mean.
Do you want to move e.g. the file 101_CAT2016_CLUB_FRNET.pdf to folder CAT16_CX_ANDET_MachineConsumables_100-118?
And due to 101 in the filename, it is in range 100-118 and needs to be moved to that folder? Correct?
Re: hierarchy path
Posted: Fri Nov 27, 2015 4:29 pm
by kmcrae
yes that i want!!
Re: hierarchy path
Posted: Fri Nov 27, 2015 4:40 pm
by sander
Is there a way to indentify the destination folder, is it somehow attached as metadata to the file?
If not, I'll go for a script expression in your path segment, which will check if the first 3 digits in the filename are 101 to 118 then set path segment to CAT16_CX_ANDET_MachineConsumables_100-118, if 228-262 set to CAT16_CX_ANNET_OfficeSupplies_209-262 etc.
But, in my opinion, this is only good manageable if these folders don't change (e.g. for every order) and there's not a couple of 100 of them.
Re: hierarchy path
Posted: Fri Nov 27, 2015 4:59 pm
by kmcrae
the best solution is the script expression but i don't no create the script!? can you with the script?
Re: hierarchy path
Posted: Sun Nov 29, 2015 1:07 pm
by sander
Use this as your script expression in your Set hierarchy path;
Code: Select all
// Set first three charachters of jobName as variable pageNumber
var pageNumber = job.getVariableAsNumber("[Job.Name:Segment=\"1-3\"]");
// Default path is Unknown, in case of non defined
var hierarchyPath = "Unknown";
switch (true) {
case (pageNumber >= 100 && pageNumber <= 118): // Check if pageNumber is equal or greater than 100, and equal or less than 118
hierarchyPath = "CAT16_CX_ANDET_MachineConsumables_100-118"; // Set path to CAT16_CX_ANDET_MachineConsumables_100-118
break;
case (pageNumber >= 209 && pageNumber <= 262): // Same here, check if pageNumber is equal or greater than 209, and equal or less than 262
hierarchyPath = "CAT16_CX_ANNET_OfficeSupplies_209-262"; // Set path to CAT16_CX_ANNET_OfficeSupplies_209-262
break;
}
hierarchyPath;
Result:
Hope it helps,
Re: hierarchy path
Posted: Mon Nov 30, 2015 9:45 pm
by kmcrae
WOW its work and with this sample script enlighten me in my learning!! thank!
Re: hierarchy path
Posted: Mon Nov 30, 2015 10:04 pm
by sander
No problem, glad I could help you out!
Re: hierarchy path
Posted: Tue Dec 01, 2015 1:35 pm
by sander
Hm, somehow I copied a slightly different code as I wanted it to be.
Code: Select all
// Set first three charachters of jobName as variable pageNumber
var pageNumber = job.getVariableAsNumber("[Job.Name:Segment=\"1-3\"]");
var hierarchyPath;
switch (true) {
case (pageNumber >= 100 && pageNumber <= 118): // Check if pageNumber is equal or greater then 100, and equal or less then 118
hierarchyPath = "CAT16_CX_ANDET_MachineConsumables_100-118"; // Set path to CAT16_CX_ANDET_MachineConsumables_100-118
break;
case (pageNumber >= 209 && pageNumber <= 262): // Same here, check if pageNumber is equal or greater then 209, and equal or less then 262
hierarchyPath = "CAT16_CX_ANNET_OfficeSupplies_209-262"; // Set path to CAT16_CX_ANNET_OfficeSupplies_209-262
break;
default:
hierarchyPath = "Unknown"; // Default path is Unknown, in case of non defined
break;
}
hierarchyPath;
Added default: in the switch case, so it defaults the 'correct' way.
Re: hierarchy path
Posted: Tue Dec 01, 2015 5:39 pm
by bens
That's an interesting use of a switch statement. Any reason you don't use an if/else?
Code: Select all
var pageNumber = job.getVariableAsNumber("[Job.Name:Segment=\"1-3\"]");
var hierarchyPath = "Unknown";
if (pageNumber >= 100 && pageNumber <= 118)
hierarchyPath = "CAT16_CX_ANDET_MachineConsumables_100-118";
else if (pageNumber >= 209 && pageNumber <= 262)
hierarchyPath = "CAT16_CX_ANDET_MachineConsumables_100-118";
hierarchyPath;
Re: hierarchy path
Posted: Tue Dec 01, 2015 8:59 pm
by sander
Not really, based on my experience so far.
My Switch experience, and with that Javascript / Switch scripting, is nearly over a year by now. Once when I had to do a compare with like 10 values I came up with the thoughts it is not efficient to check e.g. 9 if's before I reach if 10. That's why I used switch. It looked faster to me, however since I am learning through reading the manual and minimalize Googling scripting solutions it might not be the best way.
So all based on my own logic, and with this topic issue I notice, by automatism, I go with switch right away. If, else if, it doesn't sound bad in this case haha.
In this particular case, the only other thing I can lie off; I think it's better readable
