Blog

  • 0

FileMaker 16: Card Window

Tags : 

They’re Heeere ….

One of the new features in FileMaker Pro 16 (and one we’re super excited about!) is the Card Window, which is essentially a new window that lives within your current one. So why are we so excited? Cards have all the benefits of popovers plus all the benefits of a new window. In other words, you get to maintain the context you are in by not leaving your current layout, and still work within a different context since a Card can be based on any layout (and table) within your solution. Finally!

How do they work?

Although Cards use the same script steps as regular floating windows, there are some differences in the available options and overall behavior.  So let’s dig in…

Script Steps (look familiar?)
  • New Window
  • Go to Related Record (with the option “Show in new window”)
  • Close Window
  • Move/Resize Window
Options
  • Layout (choose from any layout in your solution, fixed or calculated)- NEW, but not limited to card windows
  • Size (fixed or calculated)
  • Position (fixed or calculated)
  • Dim parent window (on/off) – NEW
  • Close (on/off option to display ‘close’ button) – NEW

Interacting with Cards

The default behavior when a Card first opens is to center itself within your current layout and dim the background. Unlike a floating window, this means you can no longer interact with the underlying layout. You also have the option to leave the background layout visible (not dimmed), however it will still be frozen until the Card is closed.

Here’s the best part: you don’t need to worry about having an existing relationship between the table in your current layout and the table in the Card’s layout, so a Card Window really can be based on any layout.  Cared Windows can even open layouts in another file!

Closing Cards

In FileMaker Go with the ‘close’ option enabled, you can tap anywhere outside of the Card to close the window. If you choose to disable that option, you will need to create a custom button for that purpose using the Close Window script step.

In FileMaker Pro with the ‘close’ option enabled you must click the ‘close’ button found in the top left corner of the Card, otherwise you’ll need to create a custom button.

Note: Keyboard shortcuts work either way in FileMaker Pro: Command+W (OS X) and Ctrl+W (Windows)

Start Using Cards. Right. Now.

Cards will be a welcomed replacement for many popovers, windows and custom dialog boxes.

Here are just a few examples:  

  • Use Cards instead of popovers for ‘pickers’. You can create a separate layout customized specifically for them, without the need to create additional relationships used solely for this functionality. This simplifies the relationship graph and generally has better performance.
  • Create truly Custom Dialog Boxes. Unlike traditional dialog boxes, there is no limit to the amount of button options you can have on a layout, and they can be designed in any shape/size/color.  
  • Use Cards instead of portals to add/edit child records. You can create a customized layout and you won’t be restricted to tiny line item in a portal. You’ll thank yourself later.
  • Use Cards in ways we haven’t even thought of yet!

 


  • 0

FileMaker veterans Matt Navarre and Vincenzo Menannon live at Devcon

Tags : 

 

 

We’re #LIVE with Vincenzo Menannon and Matt Navarre. What do #FileMakerDevCon veterans think of this year’s event? Tune in!

Posted by FileMaker on Tuesday, July 25, 2017

 

FileMaker veterans Matt Navarre and Vincenzo Menanno, from Beezwax, were live at#FileMakerDevCon! Watch it here! Feel free to send us questions.


  • 0

Podcast Episode 135 :: LiveCode for FileMaker

Tags : 

 

For FileMaker Talk Podcast Episode 135 LiveCode for FileMaker, Matt Navarre talks with Kevin from LiveCode about their cool new Plug-In that allows custom UI development for FileMaker Pro. Visit https://filemaker.livecode.com for more information.

Like this? Check out more podcast at FileMaker Talk.


  • 0

Monthly FileMaker Meetup – June 2017

Thank you to everyone who came out for our monthly FileMaker Portland Meetup group that met on Wednesday, June 14, 2017.

We watched a great presentation by Ralf Rainer von Albedyhll about his new app titled ‘NextPitchLA’ (that is now up and ready for download from the Apple App Store) that was created entirely from FileMaker. He walked us through the app which helps users track developments in the new Regulation Crowdfunding world, an online marketplace where non-accredited investors (and just plain regular folk) get to invest in startups. We also gained insight into the process of appraisal and approval from the Apple App Store.

See more of Ralf’s work at iapprentice.com, and check out his website NextPitch.tv for more info about his exciting new startup!

Our many thanks goes out to Ken Skeen and Hanna Anderson for graciously providing a space for the event and to Matt Navarre for hosting and providing Hot Lips pizza and beverages! Also, a special thanks to Joey Grimaldi of ODI Technologies for informing us of the existence of this: Sales Guy vs. Web Dude.

Our next FileMaker Portland Meetup is scheduled for Wednesday, August 9th, 2017 for a DevCon recap. We hope to see all of you there!


  • 0

AppWorks receives Emerging Small Business certification

Credit: Eric Prado

Extra! Extra!  Read all about it!

AppWorks receives an Emerging Small Business (ESB) certification in Oregon.

What does this mean? I’m glad you asked! The ESB program opens the door for small businesses like us to participate in the state’s myriad public contracting procurement programs. 

Some examples of the state agencies we currently work with are the Dept. of Human Services, Epidemiology Division, DAS Surplus Property programDept. of Agriculture and Oregon State University. This certification will provide us with more contracting opportunities with state, county and city government agencies and jurisdictions, such as hospitals and universities.

We look forward to developing custom software for state, county and city agencies and working with the procurement agencies across Oregon.

 


  • 0

Podcast Episode 134 :: Vince Menanno discusses Tableau

Tags : 

 

For FileMaker Talk Podcast Episode 134 Vince Menanno discusses Tableau and the integration within FileMaker 16 with Matt Navarre.

Like this? Check out more podcast at FileMaker Talk.


  • 0

Podcast 133: FileMaker 16 – New Features Galore!

Tags : 

 

Matt Navarre and Matt Petrowsky (aka Matt Squared) talk about the new FileMaker 16 release and what it means for FileMaker developers around the globe. Looking for that deep dive into what the new features mean? Have a listen to this particular episode.

 

Like this? Check out more podcast at FileMaker Talk.


  • 0

FileMaker 16: External Data Sources

One of the new features in FileMaker 16 is the ability to set an external data source dynamically by using a variable.

So, what does that do?  How does it work? What does that mean for FileMaker development?

What it Means

It provides the ability to have multiple customers share a user interface file but each have their own data files.

In previous versions of FileMaker, external data sources were fixed, so each user had to have their own set of files, or record level security had to be used to block access to other user’s records in one data file.

Record level security can really bog down a system, so separate data files have serious performance benefits. However, if each customer has their own file and there are thirty customers, a small UI change meant that you would have to replace thirty different files.

In FileMaker 16, we can have as single UI file that all users login into. The file will look at who is logging in, dynamically set the data file name in a variable accordingly, and make sure they only connect to their data. A small UI update can be achieved by replacing a single file not the server.

How it Works

The UI file will not attempt to open the data file until it “needs” it, whether it is because there is a reference to it in a script that is called, or a field from the data source on a layout. Once that happens, the UI file will “resolve” the relationship and connect.  If this is defined as a variable, the variable needs to be defined before the external data source can be accessed. This means the variable will most likely be defined in a startup script which the purposely accesses the data file to make sure that relationship is resolved correctly.

That would be scripted something like this:

If [ Get ( AccountPrivilegeSetName ) = “Customer1” ]

Set Variable [ $DataFile ; Value: “file:Customer1_Data.fmp12” ]

Else If [ Get ( Account PrivilegeSetName ) = “Customer2” ]

Set Variable [ $DataFile ; Value: “file:Customer1_Data.fmp12” ]

End if

Go to Layout [ “Data” (Data) ; Animation: None ]

The last line of of the script above goes to a layout based on the data source, forcing the relationship to be resolved while the script is still running and the variable still exists. Alternatively, a global variable could be used, whose scope would extend outside of the script, and then the open script wouldn’t necessarily need to force the relationship to be resolved right away.

Issues to Consider

While this new feature has remarkable potential to simplify UI development on vertical market solutions, there are some issues that will have to be addressed. All of the ones that come to mind revolve around security.

A way will have to be developed to handle the accounts between the UI and Data file. Do you have all of the accounts in the UI file and then only the applicable accounts in each data file?  Or do you have an auto-login in the UI file and some other process for logging into the right data file with the right account?

Another issue is the “Re-Login” script step.  Once the connection is made to the data file, it will be fixed until both the UI and Data file are closed and reopened. This means if a user uses re-login to log in as a user who does not have access to the file they are going to remain connected to a file they no longer have access to. Also, what if a user needs access to all of the data files? Letting them pick on login might be an option, but having to close the whole system and start it back up to switch data could become cumbersome for someone managing several customers on a vertical market solution.

Join the Conversation

What potential do you see for this feature? What other benefits might it have? What other drawbacks?  What solutions do you see for dealing with these drawbacks?


  • 5

FileMaker 16: Passing Multiple Parameters Natively Using JSON

Tags : 

With the release of version 16, FileMaker developers finally have the ability to natively pass and parse multiple script parameters . This is made possible by the new JSON functions — specifically, the JSONSetElement function and the JSONGetElement function. There are various methods and syntaxes FileMaker developers have been using for passing multiple parameters to and from scripts, but the most common one I’ve come across is key-value pairs in the format “key1 = value1 ; key2 = value2 ; key3 = value3” etc. This is a nice simple format, but it has some limitations. The new method in 16 is to pass a JSON object, with a series of elements that form the key-value pairs, and parse those elements out of the JSON object in the sub script. So, what once was passed as:

"id = 32313 ;
name = alice ;
address = 123 Main St. ;
member = true"

is now passed as:

{ 
     "id" : 32313, 
     "name" : "alice", 
     "address" : "123 Main St.", 
     "member" : true 
}

And on the receiving end, we parse out each element into a variable and use them from there, using the JSONGetElement function. There’s no longer a need for custom parsing functions, or complex let statements that parse and instantiate each variable.


There are two ways to form the JSON object when passing the parameters. The first, and more clunky way, is to just write the JSON from scratch. I say clunky because you have to do things like escape lots of quotation marks, and insert ampersands, and insert unescaped quotation marks, and insert syntax errors, and (barf) and I wouldn’t recommend it. But this is what you’d write, if you so desired:

"{ 
     \"id\" : " & TableName::ID_Field & ", 
     \"name\" : \"" & TabelName::Name_Field & "\", 
     \"address\" : \"123 Main St.\", 
     \"member\" : true 
}"

 

The second, and more elegant way, is to leverage the JSONSetElement function:

JSONSetElement ( "{}" ;
     [ "id" ; TableName::ID_Field ; "" ] ; 
     [ "name" ; TableName::Name_Field ; "" ] ; 
     [ "address" ; "123 Main St." ; "" ] ; 
     [ "member" ; True ; "" ] 
)

Now when the script into which you’re passing parameters begins running, you (optionally) set a variable to*:

Set Variable [ $param ; Value : JSONFormatElements ( Get ( ScriptParameter ) ) ]

And in the following script steps, you instantiate a variable for each of the incoming JSON elements as needed, using the JSONGetElement function. Since the variable $param is now just a tidy little package of JSON, you can pull out individual elements from it like so:

Set Variable [ $id ; Value: JSONGetElement ( $param ; "id" ) ]
Set Variable [ $name ; Value: JSONGetElement ( $param ; "name" ) ]
Set Variable [ $address ; Value: JSONGetElement ( $param ; "address" ) ]
Set Variable [ $member ; Value: JSONGetElement ( $param ; "member" ) ]

It works beautifully. This is JSON functionality at its most basic, but it’s a pleasure to use, and provides us with a brand-new, simple way to do something we’ve wanted to be able to do natively for years. And what’s cool about the new JSON functions is that FileMaker developers can start natively doing even more complex things, like building arrays of data, with child records and all, right inside variables, and pack and unpack them at will using native functions. All in all, JSON is a welcomed addition to the FileMaker platform’s toolset.

 

*The JSONFormatElements function is nice to have for looking at parameters in the data viewer, but is not actually required. All it does is take the JSON that is passed in and format it neatly with line breaks and indentation. You can just use Get ( ScriptParameter ) alone and everything will work just fine.


  • 0

AppWorks is hiring

Tags : 


AppWorks is hiring! We’re looking for energetic, creative individuals to build and/or maintain custom software for our clients using the FileMaker Platform.

Responsibilities

  • End-to-end development of custom business software, including building data tables and relationships, designing user interface, scripting, and quality assurance testing
  • Maintenance of existing new and/or legacy software systems
  • Interaction directly with clients to assess their needs, and keep them apprised of project status, when necessary
  • Working closely with project managers and other FileMaker developers to design, implement, and maintain systems with a high level of quality
  • Working with internal project management tools
  • Accurately tracking billable hours on a daily basis

Requirements

  • Excellent communications skills
  • 3 years of FileMaker Platform experience
  • Strong understanding of relational database design
  • Solid programming skills
  • Ability to articulate software concepts to non-technical staff
  • Ability to train/instruct end users to use the FileMaker Platform features
  • Exhibit signs of creativity and a positive attitude
  • Team player
  • Ability to perform job functions with a minimum of supervision
  • Basic knowledge of at least three of the following SQL, PHP, HTML, JavaScript, REST, JSON and C++

About AppWorks

AppWorks is a custom app development firm that specializes in creating database solutions to be used on any iOS or desktop device – including the web. We predominantly work with the FileMaker Platform (FileMaker Inc. is a wholly owned Apple subsidiary). We continue to diversify our portfolio while maintaining a strong focus in healthcare and public health, commercial and government databases.

We are pivotal in the FileMaker community – we are one of only three Platinum members in Oregon. We regularly host Apple events and co-host the FileMaker Portland Meetup group that is over 135 people strong.

In addition, we also offer FileMaker training classes four times per year. We offer beginner and intermediate classes. Matt Navarre is a regular speaker on FM Academy; is often asked to speak at conferences (like FileMaker’s annual DevCon); and co-hosts FileMaker Talk.

Working at AppWorks

AppWorks offices are located in downtown Portland, Oregon.

  • High-energy atmosphere
  • Encouraging and supportive work environment
  • Opportunity for professional development and growth
  • Training, mentoring, and opportunity to obtain professional certifications
  • Opportunities to attend annual FileMaker Developer conference
  • Competitive salary, health plan, yearly paid time off, 401K with company match after one year of service.
  • Annual bonuses
  • Team outings

We are looking for a long-term employee. Someone who sees our vision, fits in our culture and wants to help us maintain and build on this momentum as we grow over the years into a larger, flourishing company. We are a work-to-live company, not a live-to-work company.

Please provide samples of your development work.

Send inquiries to kimberly@app.works