Using MFS_Installer
Compile the following subroutine (called MFS_Installer), in your SYSPROG account. You will be able to run this subroutine from the System Monitor, or call it as a subroutine from your customized MFS installer, as you prefer.
- MFS_INSTALLER
Compile subroutine MFS_Installer(TargetTable,MFS_Name,Action) /* --> RUN MFS_INSTALLER 'CUSTOMERS','SIMPLE_MFS*EXAMPLES',2 <--- 2 is default MFS Installer Original Author Cameron Purdy Revised R T Bright 1. Develop your MFS in the SYSPROG application. That is the only supported application for developing an MFS/BFS in. (This routine can be run in Application at owner's risk) 2. The FILE.SYSTEM.EQUATES and FILE.SYSTEM.ONGOSUB inserts are often used to help implement an MFS. 3. Always remove the MFS before adding it, and always save the database definition after adding it. This fixes a synchronization issue if you have added the MFS to the table (i.e. put it in the mediamap) but have not saved the database definition. */ Declare subroutine Set_Status , Set_MFS, Define_Database, Message_Box $Insert logical debug Equ AddMFSEnd$ to 1 Equ AddMFSBegin$ to 2 Equ AddMFSNearBegin$ to 3 Equ RemoveMFS$ to 5 Equ RemoveAllMFS$ to 6 If Index(MFS_Name,'*':@AppID<1>,1) Else MFS_Name :='*':@AppID<1> End /* first remove MFS (in case it is already in the media map)*/ Set_Status(FALSE$) Set_MFS(TargetTable, MFS_NAME, RemoveMFS$) Convert @Lower_Case to @Upper_Case in Action If Action = 5 or Action = 'REMOVE' then Return End * add the MFS Set_Status(FALSE$) Set_MFS(TargetTable, MFS_NAME, AddMFSBegin$) if Get_Status(Code) then Error = "An error occurred adding the MFS to the ": TargetTable: " table." Error := "Error Code: ": Code<1,1,1> gosub ErrMsg end /* update database definition*/ Set_Status(FALSE$) Define_Database(@dbid, TRUE$, "", "") if Get_Status(Code) then Error = "An error occurred saving the ": @dbid: " database definition." Error := "Error Code: ": Code<1,1,1> gosub ErrMsg end Return 1 ErrMsg: Call Msg(@Window,Error) Return 0