• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Sorting arrays nightmare
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Sorting arrays nightmare


  • Subject: Sorting arrays nightmare
  • From: Louis Demers <email@hidden>
  • Date: Sun, 20 Feb 2011 15:01:54 -0500

Hi, i'v been banging my head for hours on this strange behavior...

Background:  My inventory transaction system allows people to make transaction on exactly the same date (they use cut and paste to put exactly the same date/time in a bunch of transactions). But I need to process them chronologically and those transactions EO contain some data such as cumulated values, average costs cumulated quantities....

Fetching EO  sorted by date will not guarantee the same order each time its executed, so I taught I would additionally sort by primary keys to fix the order once and for all.

Part 1) I use  a fetchspec named "updateTransactionCost" that is defined in EOModeler and in the tab "Sort Orderings", my first item is "dateEnd" ascending and the second line is "id" ascending. That technique seems to work.

PNG image


Part 2) I need a support method to find the latest transaction before a specific date. To do so I use a fetchspec also defined in EOModeler define the Qualifier as "dateEnd < $beforeDate and part = $part and part.spec = $spec" and the sort ordering tab as "dateEnd" descending and the second line is "id" descending. I set the mac rows in the option's tab to 1 as I'm interested only in the latest transaction before the date.

PNG image


I then use the Wonder generated Transaction.fetchTransactionBefore() to get the array, but it is not sorted properly by id. It seems that only the first sort order key (date) is being used...

Here is sample debug output when enumerating in chronological order <> are primary keys

<35474> 2011-01-10 19:07:36 Etc/GMT  Q: 1/1
<35475> 2011-01-10 19:07:36 Etc/GMT  Q: 1/2
<35472> 2011-01-20 19:07:36 Etc/GMT  Q: 1/3
<35473> 2011-01-20 19:07:36 Etc/GMT  Q: 1/4
<35478> 2011-01-20 19:07:36 Etc/GMT  Q: 1/5
<35476> 2011-01-30 19:07:36 Etc/GMT  Q: 1/6
<35477> 2011-01-30 19:07:36 Etc/GMT  Q: 1/7

and if I print the latest

latest before 2011-01-25 19:07:36 Etc/GMT  <35472>2011-01-20 19:07:36 Etc/GMT Q: 1/3

Any clues ? or alternative algorithm to find my latest transaction method ?

Thanks in advance...

PS: using latest of everything...



Louis Demers eng.
www.obzerv.com


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: Sorting arrays nightmare
      • From: Q <email@hidden>
    • Re: Sorting arrays nightmare
      • From: Miguel Arroz <email@hidden>
  • Prev by Date: Re: How to get maximum of a column in oracle by using EOQualifier
  • Next by Date: Dumb Deployment Question #6,467
  • Previous by thread: Re: How to get maximum of a column in oracle by using EOQualifier
  • Next by thread: Re: Sorting arrays nightmare
  • Index(es):
    • Date
    • Thread