In AREV I have used a simple program to refresh the Master Flag by using this piece of code:
open "DICT.DOC_CLIENTS" to dictFile else null
delete dictFile, "%FIELDS%"
perform "COPYROW DICT.DOC_CLIENTS * TO:(DICT.DOC_CLIENTS (OSE)
This works well in AREV, but when I go into OI and view the dictionary, a new field has been added as "*"; it appears to be random and forces the actual field to SYN.
Leigh,
We tried to recreate the error here without luck. We are using AREV 3.1.2 and OpenInsight 4.1.3.
The SYN will show up when no position has been assigned or the same position has been assigned twice. Have you tried the copyrow with a space or a null instead of the asterick?
Sean
Here is the program I used to get the * records in the dictionaries.
*Reads every dictionary and copies rows onto themselves.
DECLARE SUBROUTINE MSG, PROGRESS
PATH='
MSG('Enter Path','RC',PATH,
) IF PATH=' THEN STOP OPEN 'SYSVOLUMES' TO SV.FILE ELSE STOP READ SVD FROM SV.FILE, PATH THEN KEYS=SVD CONVERT @VM TO @FM IN KEYS PROGRESS(0,0,HOLD) QTY=COUNT(KEYS,@FM) + (KEYS #
)X=1
LOOP UNTIL KEYS='
FILENAM=KEYSIF FILENAM1,5=DICT.' THENPERFORM 'DELETEROW ':FILENAM:' %FIELDS% (OSE)'PERFORM 'COPYROW ':FILENAM:' * TO: * (OSE)'ENDPROGRESS(1, X:@FM:QTY, ' %P%% Thru ')X += 1REPEAT
PROGRESS(3,0,HOLD)
Try it and see. No, I have not tried blank or null, will do so but am hesitant as I may stuff up more dictionaries.
Blank fails as AREV reports that there are no records to copy.