guides:programming:programmers_reference_manual:using_mfs_installer

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
  • guides/programming/programmers_reference_manual/using_mfs_installer.txt
  • Last modified: 2024/06/19 20:20
  • by 127.0.0.1