Do you want a process, which runs prior to the already known sort process?
Hmm, the following expression should deliver all items, ...
which are member of the input list, but not member of the basic list of sorted items.
$regexp(%LIST_IN%,'(?>\b('%LIST_SORT%')\b)',)
DD.20150628.1918.CEST
Example:
The input list to work on ...
LIST_IN <== 'BAD1|111|101|01|09|WATER|WATERFALL|BAD2|04|VILLAGE|06|UNDERWATER|03|10|11|BAD3'
Note: The bad values are 'BAD1','BAD2','BAD3' ... and should be removed.
The basic sorted list of allowed items ...
LIST_SORT <== '01|02|03|04|05|06|07|08|09|10|11|101|111|UNDERWATER|VILLAGE|WATER|WATERFALL'
Get all items from LIST_IN, which are not member of LIST_SORT ...
LIST_TMP1 <== $regexp($regexp($regexp(%LIST_IN%,'(?>\b('%LIST_SORT%')\b)',),'\|+','|'),'^\||\|$',)
LIST_TMP1 = BAD1|BAD2|BAD3
Remove all items from LIST_IN, which are member of LIST_TMP1 ...
LIST_TMP2 <== $regexp($regexp($regexp(%LIST_IN%,'(?>\b('%LIST_TMP1%')\b)',),'\|+','|'),'^\||\|$',)
LIST_TMP2 = 111|101|01|09|WATER|WATERFALL|04|VILLAGE|06|UNDERWATER|03|10|11
Get all items from LIST_SORT, which are not member of LIST_TMP2 ...
LIST_TMP3 <== $regexp($regexp($regexp(%LIST_SORT%,'(?>\b('%LIST_TMP2%')\b)',),'\|+','|'),'^\||\|$',)
LIST_TMP3 = 02|05|07|08
Remove all items from LIST_SORT, which are member of LIST_TMP3, so get the sorted list output ...
LIST_OUT <== $regexp($regexp($regexp(%LIST_SORT%,'(?>\b('%LIST_TMP3%')\b)',),'\|+','|'),'^\||\|$',)
LIST_OUT = 01|03|04|06|09|10|11|101|111|UNDERWATER|VILLAGE|WATER|WATERFALL
Remove tag-fields LIST_TMP1, LIST_TMP2, LIST_TMP3, LIST_SORT, LIST_IN ...
LIST_TMP1 <== $char(0)
LIST_TMP2 <== $char(0)
LIST_TMP3 <== $char(0)
LIST_SORT <== $char(0)
LIST_IN <== $char(0)
Test2015_20150701.zerow.sort.mta (1.14 KB)
DD.20150701.1006.CEST, DD.20150701.1532.CEST
Test2015_20150701.zerow.sort.mta (1.14 KB)