- class FMAdminMBS
- class FMDataMBS
- class FMConnectionMBS
- class FMDataSourceMBS
- class FMRequestMBS
- class FMResponseMBS
- class FMContainerUploadMBS
Lets connect to a server via Data API using user name and password:
// connect Dim connection As New FMDataMBS connection.Password = "admin" connection.Username = "admin" connection.Server = "localhost" connection.Database = "test" Dim r As FMResponseMBS = connection.Login If r = Nil Then MsgBox "Failed?" Else MsgBox r.ErrorMessage return End If
To learn what databases are available, please use ListDatabases method in FMAdminMBS class.
Next you may want to create a new record. For this we provide a dictionary with keys and values. The plugin passes data to the server in JSON and you may need to provide values as text or numbers as variants. If you need to upload a file to a container field, please use a second call with UploadToContainerField method later.
We specify the layout to use. This layout defines what fields are available to set. The request may include more parameters like a script to run. But here a simple create record example:
// now create a record connection.Layout = "Testing" Dim request As New FMRequestMBS Dim fieldData As New Dictionary fieldData.Value("First Name") = "Joe" fieldData.Value("Last Name") = "Smith" fieldData.Value("Title") = "Mr." fieldData.Value("Company") = "Test Ltd." fieldData.Value("Website") = "http://www.mbs-plugins.com/" request.fieldData = fieldData r = connection.CreateRecord(request) If r.ErrorCode = 0 Then // okay Else MsgBox r.ErrorMessage Return End If
To query records, please specify the layout to use as that one defines which fields. With request object you can specify the limit and offset for the query to get paged results. Otherwise the default setting is to return first 50 records.
For a lot of operations, a layout must be specified. The layout defines which fields are available to set or query. Optionally you can specify a script to run before the query to gather the records. e.g. by doing a find operation in the script. You can also run a script to sort and specify in your request which portals to return.
// and query records on that layout request = New FMRequestMBS r = connection.GetRecords(request) If r.ErrorCode = 0 Then // okay Else MsgBox r.ErrorMessage Return End If Dim Result As Dictionary = r.Result Dim dataInfo As Dictionary = Result.Lookup("dataInfo", Nil) If dataInfo = Nil Then Break Return End If Dim returnedCount As Integer = dataInfo.Value("returnedCount") Title = Str(returnedCount)+" records." Dim Data() As Variant = result.Lookup("data", Nil) Dim fields() As String Dim List As Listbox // some listbox to fill Dim recordID As Integer For Each record As Dictionary In data recordID = record.Value("recordId") fieldData = record.Value("fieldData") Dim c As Integer = fieldData.Count If fields.Ubound < 0 Then // first time Dim keys() As Variant = fieldData.keys For Each key As String In keys fields.Append key Next // set listbox heading List.ColumnCount = c For i As Integer = 0 To c-1 List.Heading(i) = fields(i) Next End If List.AddRow "" For i As Integer = 0 To c-1 List.Cell(List.LastIndex, i) = fieldData.Value(fields(I)) Next Next
Please check our example projects for Data API and Admin API queries. You may write your own server monitoring application using the Admin API.
For all queries and data transferred, FileMaker Server counts data going out and applies a 2 GB per user and per month limit. As a server has minimum 5 users, you have 120 GB/year or more available.
Please do not hesitate to contact us with your questions.