| Title: | *OLD* ALL-IN-1 (tm) Support Conference | 
| Notice: | Closed - See Note 4331.l to move to IOSG::ALL-IN-1 | 
| Moderator: | IOSG::PYE | 
| Created: | Thu Jan 30 1992 | 
| Last Modified: | Tue Jan 23 1996 | 
| Last Successful Update: | Fri Jun 06 1997 | 
| Number of topics: | 4343 | 
| Total number of notes: | 18308 | 
    Hi,
    
    Moving an account from 3.0 to 3.0 failes when a user
    modified his main drawer name. Updating FILECAB.DAT results in
    
        do oa$lib:sm_mas_archive
Starting processing SCHOLLAERT
Opening logfiles...
NEWDIR to SCHOLTRANS
Updating UTRACK: BASIS drawer...
Cannot find user's UTRACK: BASIS drawer
Error writing to FILECAB.DAT
Complete.
        exit
    
    Had a look in SM_MAS_ARCHIVE.SCP ...
    
!-
        GET #source_default_drawer  = filecab:indicator.name["1"]
        .TEXT "Updating " #source_default_drawer " drawer..."
        GET #old_draw = "[" CLI$FULL_ACCOUNT_NAME "]" #source_default_drawer
        GET #new_draw = "[" CLI$NEW_NAME "]" cli$target_default_drawer
        GET #key=""
        FOR FIRST FILECAB WITH .UNIQUE_NAME eqs #old_draw DO -
                                        GET #key = .%key
    The FOR loop checks for .UNIQUE_NAME, while the #old_draw
    contains .NAME. These two can be different. Is there a reason 
    not to GET #old_draw = filecab:indicator.UNIQUE_name["1"] ?
    
    Regards,
    
    Jan
| T.R | Title | User | Personal Name | Date | Lines | 
|---|---|---|---|---|---|
| 3226.1 | POSSIBLE SOLUTION | COL01::KLOCKE | J�rg Klocke, RPS-OIS Cologne, GY | Wed Sep 15 1993 10:09 | 77 | 
| I have had the same problem with one of my customers and found following 
solution:
I had to modify 2 files (sm_mas_archive.scp, sm_mas_drawer.scp) and the form
mua$partition.frm. In this form (at least in the German version of ALL-IN-1)
the language-field is too short, I've extended it to 20 chars. so if you try to
move the account to another system be sure to have the  modified form there as
well!!
In script sm_mas_archive I've changed following line:
    GET #source_default_drawer  = filecab:indicator.name["1"]
TO:
   !       GET #source_default_drawer  = filecab:indicator.name["1"]
    GET #source_default_drawer  = FN$ELEMENT(1,"]",filecab:indicator.name["1"])
In script sm_mas_drawer I've changed following lines:
.LABEL ADD_TO_PART
        .TEXT "Add drawer " #new_name " to system partition file..."
        WRITE ADD PARTITION UNIQUE_NAME = #new_name, -
                ABSTRACT = .ABSTRACT, -
                FORMAT = .FORMAT, -
                LANGUAGE = .LANGUAGE, -
                VERSION = .VERSION, -
                DIRECTORY = #new_dir,-
                DRAWER_IUID = "",-
                OWNER = CLI$NEW_VMSNAME
        .IF OA$STATUS NE 1 THEN .GOTO NO_DRAWER
TO: 
.LABEL ADD_TO_PART
!       .TEXT "Add drawer " #new_name " to system partition file..."
!       WRITE ADD PARTITION UNIQUE_NAME = #new_name, -
!               ABSTRACT = .ABSTRACT, -
!               FORMAT = .FORMAT, -
!               LANGUAGE = .LANGUAGE, -
!               VERSION = .VERSION, -
!               DIRECTORY = #new_dir,-
!               DRAWER_IUID = "",-
!               OWNER = CLI$NEW_VMSNAME
!       .IF OA$STATUS NE 1 THEN .GOTO NO_DRAWER
!
        GET #IS_ALREADY_THERE = "0"
        .TEXT "Add drawer " #new_name " to system partition file..."
        FOR FIRST PARTITION WITH .unique_name EQS #new_name do -
            GET #IS_ALREADY_THERE = "1"
        .IF #IS_ALREADY_THERE EQS "0"
        .THEN
           WRITE ADD PARTITION UNIQUE_NAME = #new_name, -
                ABSTRACT = .ABSTRACT, -
                FORMAT = .FORMAT, -
                LANGUAGE = .LANGUAGE, -
                VERSION = .VERSION, -
                DIRECTORY = #new_dir,-
                DRAWER_IUID = "",-
                OWNER = CLI$NEW_VMSNAME
        .ELSE
           WRITE CHANGE PARTITION UNIQUE_NAME = #new_name, -
                ABSTRACT = .ABSTRACT, -
                FORMAT = .FORMAT, -
                LANGUAGE = .LANGUAGE, -
                VERSION = .VERSION, -
                DIRECTORY = #new_dir,-
                DRAWER_IUID = "",-
                OWNER = CLI$NEW_VMSNAME
        .END_IF
        .IF OA$STATUS NE 1 THEN .GOTO NO_DRAWER
I hope this will help you as well!
J�rg
 | |||||
| 3226.2 | MUA$PARTITION language too short | GIDDAY::JOYCE | Burn me kangaroo down sport | Fri Feb 18 1994 03:05 | 21 | 
|     
    Ermm...
    
    Has the fact that the length of the Language field in MUA$PARTITION is
    only 4 characters (i.e. too short!) been reported officially?
    
    One of my customers has transferred a whole bunch of accounts to
    another system and all drawers (apart from their MAIN ones) now have a
    language of "BRIT" instead of "BRITISH"!  This doesn't seem to upset
    IOS but Teamlinks spits the dummy.
    
    I presume that the following is okay to fix the existing drawers?
    
    FOR PARTITION WITH .LANGUAGE EQS "BRIT" DO -
    	WRITE CHANGE PARTITION UNIQUE_NAME=.UNIQUE_NAME,LANGUAGE="BRITISH"
    
    Any problems with increasing the length of the language field in 
    MUA$PARTITION to something sensible?  Is the form used anywhere else?
    
    Thanks, Andy 
                                                        
 | |||||
| 3226.3 | don't change Partition | IOSG::TYLDESLEY | Fri Feb 18 1994 09:23 | 15 | |
|     Andy.
    The problem is known. I do not think that there is a problem with the
    size of the language field in the Partition. The problem lies in the
    fact that the language field should be loaded with a language code,
    not the user's language as in the Profile.
    
    So, what you need to do, is to translate the language into a language
    code, e.g.
     <get #LANG_CODE=OA$FOLDERS.CODE[PROFIL.LANGUAGE[oa$user]]
    and then write change #LANG_CODE into the Partition.
    
    This is a Transfer User problem, and should be fixed in a possible
    future release.
    regards
    DaveT
 | |||||