Aller au contenu

Soliant Consulting

Membres
  • Compteur de contenus

    154
  • Inscription

  • Dernière visite

    jamais

1 abonné

À propos de Soliant Consulting

  • Rang
    100

Profil général

  • Genre
    Non précisé

Profil FileMaker

  • Certification
    FileMaker 15 Certified Developer

Visiteurs récents du profil

Le bloc de visiteurs récents est désactivé et il n’est pas visible pour les autres utilisateurs.

  1. Soliant Consulting

    FileMaker DevCon 2018: Day 3

    Today was the final day of DevCon, and it has an entirely different flavor. It is Customer Day! Rather than technical topics, the majority of today’s sessions show-and-tell client stories of problems solved by utilizing FileMaker. Success Stories of Soliant's Philanthropy Committee The first session I attended began with a presentation by our own Makah Encarnacao. Makah shared her own story of a chance conversation with Chris Manto during DevCon a few years ago. Over a drink at the bar he shared his experiences in West Africa, working as a film journalist in his early twenties, when he witnessed horrific starvation and death, while all he and his team could do was use their vocation as journalists to tell the story. This serendipitous meeting inspired Makah to do something for others. With the support and encouragement of Bob Bowers, our CEO, Soliant's Philanthropy Committee was born. "FileMaker in Action: Non-Profit Case Studies" session presented by Makah Encarnacao Our team of developers, business analysts, and project managers participate on a voluntary basis to provide services to non-profit organizations who otherwise could not afford custom software. The work is done in addition to their normal workload, often after hours and spans across all our practice areas: FileMaker, Web, and SalesForce. Together with Josie Graham, Makah vets the submissions and pairs them with the perfect volunteer. Makah summarized the story of each organization: what they do, what they needed, how we helped, and the difference it made to their operation. The Luke Commission Operation Comfort Rainforest Trust Prince Albert Food Bank St. Francis Center Altadena Mountain Rescue Team Researching Hope Women's Alliance for Knowledge Exchange These institutions do wonderful work, and now they are more effective, more efficient, more nimble with the help of a little expertise. I've never been prouder to be a part of the Soliant team. Visionary Bar I spent my refreshment break answering the questions in the Visionary Bar. The idea is for DevCon attendees to just walk-up to get answers and advise from FileMaker Business Alliance (FBA) members. I've done this for many years and always find it quite rewarding to help others. Helping at the Visionary Bar FileMaker in Action: Media and Arts Case Studies For the second session of the morning, I saw fantastic examples of FileMaker used by two art and media businesses. The first was Bryn Behrenshausen of Kalisher, a design house that creates and curates comprehensive art collections and has remote teams in six US cities. They have tons of information to keep track of: customers, designers, purchasers, owners, specs, pricing, and employee 100+ people. At the time Bryn joined Kalisher in 2014, Soliant Consulting had already built them a solution for managing their projects, quotes, vendors, and suppliers. Bryn shared his story of learning FileMaker development and now has built several modules of his own as well as refresh the original solution. He then shared some great tips for newer developers such as "Be Consistent with schema naming and script structure." It was great to hear Bryn's story. Matt Greger presented the second portion of the session. He shared how FileMaker was utilized to manage the tv spot traffic for 30 years for "As Seen on TV", the company who brings you those great infomercials for Flex Seal, Snuggie, Copper Fit, and so many other products. It was a fantastic example of something I've seen many times: FileMaker can be a fantastic hub for data. In Matt's solution, FileMaker pulls-in data from a variety of sources including Google AdWords, Amazon, Facebooks, YouTube, Microsoft Bing Ads, and tv vendors. The data is processed and aggregated and then accessed by analytic tools Tableau, Power BI, and TIBC Jaspersoft. Lunch Networking During lunch, I met with Mike Zarin. Mike attended my Wednesday presentation "Tackling Sync." He approached me following the session and asked if we could chat about the sync requirements for his project. It was great to hear about Mike's project and make suggestions for easier ways to solve his data posting needs. As the meal progressed others joined our table. We spent the remainder of the time sharing our story about how we got started using FileMaker. Several of us had been developing in FileMaker for more than 20 years while others were relatively new. Networking lunch: (front row) Mike Zarin, Dawn Heady, Lee Lukehart, Matthew Dahlquist, (back row) Jenna Lee, Jowy Romano, and Stephen Kerkvliet. Jim Medema (not pictured) graciously took the photo. From One to Many: Growing Your Consulting Firm Following lunch, I switched tracks and attended one of the FBA Day sessions. David Knight, the president of Angel City Data, presented a great session on growing your business. I especially liked David's message to "Learn to let go!" It's not stealing the boat; it's rowing the boat when you don't let go. Closing Session & Awards Presentation I was thrilled that the Women of FileMaker were awarded a FileMaker Excellence Award for their work in the community! This year, the Women of FileMaker provided scholarships so five first-timers could attend DevCon this year. They've created a Mentoring program and organized a Buddy program to pair DevCon first-timers with a seasoned pro to help attendees find their way around the conference. I can recall attending my first Women of FileMaker luncheon many years ago. There were maybe twenty of us eating at the hotel's restaurant. This year there were several hundred DevCon attendees at the luncheon. The growth of this group has been tremendous! This year Soliant Consulting was an honorable mention for the Excellence Award for education, an award we won in 2017. During the closing session the location for next year's DevCon was also announced: FileMaker Developer Conference 2019 August 5–9, 2018 Gaylord Palms Resort Kissimmee, Florida This year was my 19th consecutive DevCon, and each one is exciting, tiring, and inspiring. I returned with new ideas and determined to learn even more. I love seeing my friends from around the world and my Soliant family from around the country. Hope to see you there! FileMaker DevCon 2018: Training Day - Part One FileMaker DevCon 2018: Day 1 FileMaker DevCon 2018: Day 2 The post FileMaker DevCon 2018: Day 3 appeared first on Soliant Consulting. Voir le billet d'origine
  2. Soliant Consulting

    FileMaker DevCon 2018: Day 2

    After a busy first day of FileMaker DevCon 2018, day 2 continued the theme of FileMaker being a Workplace Innovation Platform. FileMaker + Tableau, a Match Made in Data Heaven! The morning sessions included an eye-opening Tableau integration session from Vincenzo Menanno. In his session, Vincenzo demonstrated how one could use Tableau charting and graphing tools inside a FileMaker WebViewer and subsequently use Tableau's URL Actions, to call specific FileMaker scripts within your solution, which provided a seamless integration between FileMaker ("The Data Curation Tool") and Tableau ("The Data Slicing Tool"). Under the Hood: FileMaker WebDirect Scalability “Under the Hood: FileMaker WebDirector Scalability” session presented by Emmanuel Thangari (click image to enlarge) The late morning sessions continued with Emmanuel Thangaraj’s session. This session was great for learning the inner workings of FileMaker Server 17’s Multiple Web Publishing Engine (MWPE) and FileMaker Load Balancer (FLB), which increases the number of users that WebDirect can support and enhances server stability at the same time. I find I always come away from FileMaker’s “Under the Hood” sessions with something new and tangible that I can apply to my development projects. Data Cleansing for Data Managers and Consultants “Data Cleansing for Data Managers and Consultants” session presented by Molly Connolly (click image to enlarge) Following a delectable lunch, Molly Connolly had an insightful session on using FileMaker to scrub bad data from dispersant data sources. Using FileMaker’s calculation and scripting capabilities, Molly walked users through how to cleanse text formatting in specific fields and from spreadsheet data. This session was excellent for beginner and intermediate developers, and Molly organized her presentation in a linear way that built upon each technique that she has used over her many years of experience. Under the Hood: Data Migration My second "Under the Hood" session of the day (did I mention I love "Under the Hood" sessions?!?) was with Clay Maeckel on FileMaker's new Data Migration Tool. Earlier this year I wrote a blog post on this tool. He went into detail about the internal implementation of this tool and provided clarity regarding the Rules of Schema Matching between your source and clone files, and explained how this tool could be so fast at migrating your data to a new production file. Clay is one of the original authors of FileMaker's Draco engine (he started working for FileMaker the year I was born!) and his experience shined through in this session. Tackling Sync Later in the afternoon, our very own Dawn Heady presented her session, "Tackling Sync." Dawn started with focusing on five specific strategies for designing your sync solution: such as minimizing historical data, pre-populating the mobile app data, and pushing actions to server side when possible. She then discussed three scripting methodologies for completing a sync, which can be completed using import script step, transactional scripts, or web services. Dawn then uncovered how to use an external data source on the server using a global variable. What a creative solution to this challenge! Next, she demonstrated a working transactional sync solution that will be included with the session materials. From there, Dawn went into well-known FileMaker Sync solutions and discussed their setup process, along with the benefits and drawbacks to each. "Tackling Sync" session presented by Dawn Heady (click image to enlarge) Attendee Dinner Party After our Wednesday sessions, we went to the Attendee Dinner Party and had a wild Texas time! A live band with line dancing lessons, billiards, darts, and ping pong were some of the highlights from this event. Overall, this has been one of my favorite DevCons yet. The variety and polish of sessions have been so impressive and inspiring. The food has been consistently delicious with the bacon being truly remarkable, and I'm a man that knows good bacon. Click to view slideshow. I'm looking forward to what the final day of DevCon can bring to inspire us to create innovative workplace solutions. FileMaker DevCon 2018: Training Day - Part One FileMaker DevCon 2018: Day 1 The post FileMaker DevCon 2018: Day 2 appeared first on Soliant Consulting. Voir le billet d'origine
  3. Soliant Consulting

    FileMaker DevCon 2018: Day 1

    The FileMaker Developer Conference has become, for me, a bit of a reunion. As a remote employee, FileMaker DevCon is a chance to hang out with my co-workers… and it feels like the FileMaker community at large is just an extension of that group. The sessions are good, too. Workplace Innovation Platform The morning kicked off with a Special Session, where Andy LeCates introduced FileMaker as a Workplace Innovation Platform. This framing hits the nail squarely on the head. They’ve summed up what we’ve always known—what we love to do—turning a complex conversation into a succinct story (and a sweet little video): https://www.filemaker.com/workplace-innovation I particularly enjoyed guest speaker Richard Cox Braden, who spoke about the difference between Creativity and Innovation. As a creatively challenged person, it was helpful to see that amorphous blob broken into distinct, progressive elements: Imagination -> Creativity -> Innovation -> Entrepreneurship. (Maybe I CAN do some of that…) Modular Programming with Card Windows My next stop was John Renfrew’s session on card windows. He had great advice on using them for modular, transactional user interaction. He has taken card windows beyond the default centered-highlight use, manipulating their sizing and placement to great effect. Women of FileMaker Luncheon One of the highlights of the day, as it is every year, was the Women of FileMaker luncheon. Our developer population is growing every year, and I love this chance to connect with and support each other. I left the luncheon with a new friend AND a pinkie promise to help each other apply to be speakers next year. Win-win! Afternoon Sessions I attended three fantastic sessions in the afternoon: Professional Development for All Ranges of Experience Molly Connolly helped me think through professional development goals (see the pinkie promise above). I particularly appreciate the encouragement to incorporate personal goals into my development plan. I WILL learn the second half of Für Elise some day… Flexible Reporting with Virtual Lists and ExecuteSQL Martha Zink rocked the virtual lists lesson. Now I’m FINALLY ready to use them all the time myself. Delight Driven Design - Transforming Designs from Good to Great Jordan Watson reminded me of good design principles. As ever, I do best with tangible rules to follow, and his clear Do This/Don’t Do That series was helpful. End of Day Fun The day wrapped up with a solid six hours of socializing. Some of us went to a baseball game, some went kayaking, but I chose to stay in the air conditioning and talk talk talk. (Texas is HOT, yo.) This rate of chatting may not be sustainable, but it's definitely my favorite part of DevCon. Click to view slideshow. There were so many good lessons from today, but the one I think I’ll apply daily: Every session – and workday – should end with Chuck Brown & The Soul Searchers' “I Feel Like Bustin’ Loose.” FileMaker DevCon 2018: Training Day - Part One The post FileMaker DevCon 2018: Day 1 appeared first on Soliant Consulting. Voir le billet d'origine
  4. Soliant Consulting

    FileMaker DevCon: Training Day – Part One

    Although I’ve been going to DevCon for Lo These Many Years, and even had a role in shaping how Training Day has evolved, I’ve never had the chance to assist with a Training Day session, or for that matter even attend one. This year I had the opportunity to join my Soliant team-members assisting Bob Bowers with his advanced session, and I’d like to share a few observations from that. First I want to say that I wish I could have attended all the Training Day sessions, especially the one on User Experience, but sadly I’ve never learned to be in more than one place at a given time. Instead, I’ve accosted a couple of the presenters in the hallway to ask them how things went. I hope to speak with the rest of the presenters before the week is over and write another post sharing what I hear from them. Advanced 1 - Techniques & Advanced - Integration I’ll start with my report on the advanced session: Bob does a great job of taking complex topics and reducing them to their essentials, providing a foundation for exploring them in greater depth. Among other things, he guided people through: Javascript-driven data tables the ExecuteSQL function setting up ODBC connectivity, both with FileMaker pulling data from another data source and acting as a data source itself the structure of JSON data objects and how to use FileMaker Pro’s JSON functions the basics of cURL commands and how to incorporate them into FileMaker Pro’s Insert From URL script step connecting to APIs using the above and parsing the resulting JSON It was a lot of material, but as promised, he stripped it down to concepts that were easy to understand and put into practice. That said, when we came back from lunch, he announced that his strategy for staying on track would be to start talking faster. And so he did. I love helping people understand new concepts, so it was a treat to work as an assistant. My only disappointment was that generally, Bob made things so clear that people didn’t need me much. I learned a few things along the way myself, including an approach to looping through grouped data that involves looking at the first record in a sorted (grouped) record set, working with that record, then calculating the number of records that belong to the group and jumping past them to the next unique record. It’s simple, but I’ve always accomplished the same thing in a different way and was happy to be offered an alternative. Beginner 1 Next, here’s what Jim Medema told me about his beginner session. “My goal was to create a training such that brand-new people – we had people who had been introduced to FileMaker one or two weeks ago – could, by the end of the day, have built an app they could walk away and put into production. And it happened! We were inches away from the point where they could actually sell it. We had a woman come up really happy with the team of assistants – we had great people, Lee Lukeheart, Matthew Dahlquist, and Bill Nienaber – and she said, “Any time anybody raised their hand, they were attended to within moments. Whatever problems they ran into, they got solved.” One of the assistants told me afterward, ‘You were pushing the class pretty hard. I was working on a technical problem with somebody for a while. When I was done, I wondered how the group was doing. When I looked up, and there were people building charts, charging ahead, they were all with you.’ We also had some experienced engineers. One guy said, 'I don’t know if I belong here, I might be kind of bored so don’t be offended if I walk out.' But he stayed all day and told me at the end, ‘You have laid the complete groundwork for everything that I need to know to get started.’ He’d inherited a legacy system built in FileMaker 6 that finally needed to be rebuilt after running for 18 years. 18 years! Can you imagine? And he feels ready to go off and do that now.” I’d like to congratulate Jim for his skilled work as a trainer, and his commitment to helping new users get immediate success on the platform. User Experience 1 - Research, Mapping, and Validation Today I also talked to Matt O’Dell about his User Experience session. Matt was my team lead at FileMaker when I started in the Marketing department, and we’ve become good friends. A couple of years back, we ran off to Denver together to attend a design thinking training put on by Adaptive Path. He’s continued to charge ahead learning more about design and is committed to making it the focus of his work. I had a wonderful time helping out Bob and working with my Soliant colleagues, but my second choice would have been to spend the day with Matt. He has so much passion for user experience design. Here’s what he said to me today: “The full-day training involved following the design process to solve an actual problem. We pretended that we’d hired by FileMaker to improve the process of purchasing a DevCon registration. We started with research and followed all the way through to creating a prototype at the end. We had people build paper prototypes, which was a new experience for most people in the group. After they built them, we said, 'OK, now take that prototype and go out and find someone, just randomly find a DevCon attendee and test your prototype with them.' We taught them the basis of usability testing first and then just sent them out. People were asking, ‘Is this going to work? Are people going to trust us? Will they interact with us?’ -- but you know DevCon people, they’re a helpful bunch. When the trainees came back they said, ‘It was surprising! You just put the paper down in front of them, you tell them what you want them to try, and they just start tapping with their finger. Then you throw the next piece of paper down, and they pretend to type, it was crazy how well that works.’ You got all that feedback after building a prototype in only 30 minutes. The idea was not to prototype in FileMaker or any other software – not to get too invested in a given design – but to make it easy to throw away and try something else. Some people even managed to test more than once. They identified problems with their prototype, drew up new screens, and went out and found someone else to test with again. That’s how you do it! That was the a-ha moment for people. This isn’t just a fun little art project -- it actually works.” Hearing about all this from Matt, I especially liked how he got people on their feet and moving. They never touched their computers, so there was no opportunity to zone out and check their email. They stayed engaged every minute. He had some great assistants too – Alexis Allen, a brilliant design-focused developer, Steve Gleason, who has an advertising background, Karen Craig, who has an industrial design background, and Laramie Erickson, a project manager at iSolutions. I’m sure they made an amazing team. I hope I get the chance to help out in the future myself. Unfortunately, it sounds like the workshop wasn’t as well attended as Matt had hoped. That disappoints me since I strongly believe that a design-centered process really works. Right now I'm working with a pro-bono client through Soliant’s wonderful Philanthropy Program, and I’m incorporating design activities into our work together during the foundation. In the first few meetings, I was getting disjointed requirements that I couldn’t assemble into a clear narrative. But when we switched to a design-centered approach, everything immediately started coming into focus. We also started having a lot more fun. So that’s my report so far. Please stay tuned for another post once I’ve had the chance to talk with the other three trainers: Jeremy Brown, Matt Petrowsky, and Cris Ippolite. Happy DevCon! The post FileMaker DevCon: Training Day – Part One appeared first on Soliant Consulting. Voir le billet d'origine
  5. Over the past few years, FileMaker has started incorporating collapsible sidebar panes into the design of FileMaker Pro. They started with modernizing the Script Workspace, then added a right-hand pane in the Specify Calculation dialog box, and now the canvas in Layout Mode also follows the same design pattern (see Figure 1): A new left-hand pane contains two tabs labeled "Field" and "Object". The Field tab contains the Field Picker, previously a floating palette, and the Object tab replaces the floating Layout Object window that was introduced in FileMaker 16. A new right-hand pane contains the Inspector. If you've ever lost track of where the inspector is, or whether it's open, this should be a welcome change. Figure 1. New sidebar panes in Layout Mode (click image to enlarge) Familiar keyboard shortcuts apply to both panes: If you press command-K (control-K on Windows), the left-hand pane opens and closes. This was previously associated with opening and closing the Field Picker palette. If you press command-I (control-I on Windows), the right-hand pane opens and closes. This was previously associated with showing and hiding the Inspector palette. Since the new panes are part of each window you have open in Layout Mode, they are controlled independently for each one. I like how these changes bring more consistency to the FileMaker Pro user experience and anchor key information in predictable locations. What else has changed? Figure 2. Updated "picker" and Field tab (click image to enlarge) Generally, the contents of each of these panes are the same as in their FileMaker 16 equivalents, with a few notable differences (see Figure 2): The new "picker" includes icons that make it easier to recognize each field type on sight. (As in FileMaker Pro 16, you can change the field type from the picker rather than going to Manage Databases). You can now set field control styles directly from the Field tab, where previously you could only do this using the Inspector. But there’s one other significant change: in the upper left of the screen there is no longer a "book" to page through layouts, or a slider to move through them quickly. I assume that this change was made in the spirit of simplifying the interface and to help prevent confusion between Layout Mode and Browse Mode, which until now used the same interface elements in similar ways. As an advocate for new users, I’m very much in support of making the new user experience more intuitive, but I have to say that I’m going to miss these elements. For me, it's second nature to navigate from one layout to another using the book, or to jump to the first or last layout in the file using the slider. Fortunately, you can still use the same keyboard shortcuts for moving between layouts one at a time: ^↑ (control-up arrow) to move backwards and ^↓ (control-down arrow) to move forwards. If you have trouble with these on Mac, check your Mission Control settings in System Preferences. How does it feel? I'm still getting used to it. For example, here’s a window behavior that caught me off-guard: if your window is positioned in the middle of your screen with ample room to the right and left of the window, then switching to layout mode will expand the window on both sides to accommodate the two docked panes. That’s all well and good. But if for instance your window is positioned all the way to the left of your screen, switching to layout mode will move the content area of your layout to the right. I find this a little disorienting, but it may be something I'll adjust to over time. Additionally, when working on some legacy systems with wide layouts, I feel a little cramped if I have both panes open at once. That said, a well-designed layout shouldn’t get excessively wide, where “excessively” is a subjective term but has to do with how much information the user can scan easily. Most layouts should fit just fine on a modern monitor – even in layout mode showing both panes – while leaving room to work in the “scratch” or non-display area as well. However, if you ever find yourself limited in horizontal screen space, or if you just want to position the inspector close to the objects you are working with, do not despair. You can still work with multiple Inspectors, each of which opens as a familiar floating palette. Simply open a second Inspector by choosing the menu item View > Inspectors > New Inspector, and then close the right-hand pane. Note that there isn't a similar option for opening the Fields tab or Objects tab as a floating window. I’m curious what working habits I’ll develop over time: when the right-panel Inspector will feel solid and reliable, and how often I’ll finally need a floating one. I can tell that opening and closing the left-hand panel as needed will soon become second nature. What do you imagine your preferences will be? If you have any questions about this or any other new features included in FileMaker 17, please contact our team. We’re happy to help your team determine the best way to leverage them within your FileMaker solution. The post Now You See Them, Now You Don’t: Sidebar Panes in Layout Mode appeared first on Soliant Consulting. Voir le billet d'origine
  6. There are many ways to boost your FileMaker solution's capabilities by going outside of the scope of typical platform functionality. For example, you can adopt one of the many plugins available on the market; you could partner with an experienced developer to customize functionality from the ground up and integrate with the tools and APIs provided by other software. A good example is emailing. For this, the FileMaker platform has native capabilities. You can leverage plugins to get additional features or integrate with any of the Outlook APIs. However, you have an often overlooked third option – microservices. Leveraging Microservices in FileMaker Microservices are aptly named – they’re pieces of functionality that perform small tasks. The term refers to a software architecture style of connecting small features together to create one larger cohesive system. Leveraging this type of development makes sense as your business evolves, and your solution requires new functionality for more use cases, or to have functionality shared among different systems built on different platforms. Microservices also restrict one addition or bug from crashing an entire system by limiting access to one small part of it. This simplifies deployment and security of new features. Microservices are tiny web services. The ‘micro’ part refers to the number of lines of code in the functionality. You can write microservices in any language that support web services, including PHP, Ruby, .NET, Python, Java, JavaScript, and more. They promote agile systems, as their structure is lightweight, easy to test, and simple to build onto existing systems. In fact, they’re often recyclable, so you can reuse them and share them across other applications and platforms. Microservices v. Plugins in FileMaker Microservices also presents distinct advantages over plugins in FileMaker: Your choice of code: You can create microservices with a wide variety of coding platforms. You can only create plugins using the C programming language. Available on all FileMaker platform clients: You cannot use plugins in FileMaker Go unless you make special provisions. Similarly, plugins require a special version to work on Filemaker Cloud. However, you can use Microservices with any type of FileMaker client. No platform dependencies: You must compile plugins for Mac, Windows, and Linux to cover the whole platform. Microservices work out-of-the-box and are agnostic to the client’s platform. Limitations of FileMaker Just like plugins, you can use microservices to add functionality to your solution that the FileMaker platform does not offer itself. For example, FileMaker does not provide support for Regular Expressions (RegEx), which work well for finding patterns in text. Say that you have a bunch of text from an email and you need to check if it contains a US or Canadian postal code and extract that from it. A RegEx expression of ^((\d{5}-\d{4})|(\d{5})|([A-Z]\d[A-Z]\s\d[A-Z]\d))$ would find instances such as “60607” and “60607-1710” for Chicago, IL or “L9T 8J5” for Milton, ON. While FileMaker does not do so natively, many other platforms construct a few lines of web service in the following: .NET Java JavaScript PHP Ruby Python In FileMaker, you would use the “Insert From URL” script step to call the microservice and then pass it the text and the expression you’d like to use on it. The microservice would send back the list of matches in JSON format to easily parse with the native JSON functions in FileMaker. New Ease of Adopting Microservices Leveraging microservices within FileMaker has been possible for years but has become much easier. Adopting microservices is easy for two big reasons: Since FileMaker 16, calling a web service and working with its response is extremely easy. The revamped “insert from URL” script step and its support for cURL takes care of that. Every FileMaker Server already enables a web server (IIS on Windows, Apache on macOS). In addition, every FileMaker Server comes with a Node.js server already deployed, ready for you to use. You already have the platform to deploy the microservice on. Examples of Microservices in FileMaker My team and I have built a dozen microservices for clients’ FileMaker solutions over the years. For example, we’ve developed forecasting capabilities and specialized data reporting to fit within a legacy FileMaker solution for a biotechnology research organization. Our team has also worked with a national media company to build a connection between its FileMaker solution and Okta identity management capabilities for secure user login. Other examples include API-to-API mapping when receiving data from SAP systems into FileMaker and pushing data from FileMaker into financial systems. The possibilities are endless and truly depend on your needs and goals within your FileMaker solution. If your FileMaker solution needs functionality related to difficult or specialized computations, XML and JSON parsing, or API-to-API mapping, I recommend considering building microservices for your system. Building Your Microservices If you have questions or would like to add microservices to your FileMaker solution with an experienced partner, contact our team. Our experience in microservices extends well beyond FileMaker, and we’re happy to provide additional insights for your organization and evolving solution. The post How to Enhance Your FileMaker Solution with Microservices appeared first on Soliant Consulting. Voir le billet d'origine
  7. Soliant Consulting

    Women of FileMaker Launches DevCon Buddy

    Women of FileMaker is excited to launch DevCon Buddy, a new program empowering experienced DevCon goers to assist new attendees in maximizing their DevCon experience. The organization welcomes all experienced attendees to sign up on the Women of FileMaker site. All genders welcome! Announcing DevCon Buddy What: New Attendee Meetup at DevCon 2018 When: Monday, August 6, 2018 at 5:00 pm Where: Grapevine B To help DevCon first-time attendees get the most out of the annual FileMaker conference, the Women of FileMaker have launched a new program, intended to assist in the pairing of new attendees with experienced conference attendees. It all starts with the New Attendee Meetup on the first night of DevCon. What to Expect at DevCon Buddy The organization encourages experienced DevCon attendees to join this meetup as a “buddy” who can guide the new attendees throughout the conference. Women of FileMaker will provide a special name tag for the new attendees to identify and connect with the Buddies. They encourage new attendees who are interested in having a buddy to approach anyone with a name tag and vice versa. Once attendees make a connection, they can exchange information and keep in contact during the conference. DevCon Newcomers Women of FileMaker encourages you to attend the New Attendee Meetup on Monday, August 6, at 5 pm in Grapevine B. Look for people with the Buddy name tag, and approach someone you think looks interesting! Then exchange information to keep in touch over the conference. Perhaps you can have lunch together or meet during a break to catch up and discuss upcoming sessions. DevCon Veterans If you would like to help out a new attendee, you can sign up as a buddy here. You will receive email updates and reminders to attend the New Attendee Meetup and instructions on how to get your name tag. Women of FileMaker appreciate your efforts to volunteer your time and make someone else’s DevCon experience more enjoyable! How It All Started The idea for a DevCon buddy system started on the Dream Board at the Women of FileMaker booth at DevCon 2017. A booth attendee took the time to make this suggestion, and the organization was happy to make it a reality. Dreams do come true The post Women of FileMaker Launches DevCon Buddy appeared first on Soliant Consulting. Voir le billet d'origine
  8. Did you know you can do more with pdfs in your FileMaker solution with DynaPDF? Download our complimentary resource to learn about capabilities with this product. This file contains a simple table containing pictures and images of different types of fruit. It helps you create a listing of each fruit with clickable links to different pages throughout the PDF, demonstrating the capabilities of DynaPDF within your FileMaker solution. Read the blog post… Complete the form to receive the demo: Trouble with this form? Click here. The post Extending FileMaker PDF Functionality with DynaPDF Demo appeared first on Soliant Consulting. Voir le billet d'origine
  9. Connecting Your WordPress Website and FileMaker Solution In this post, we demonstrate how you can submit a form built with a freely available WordPress plugin, Ninja Forms. This makes building web forms easy while staying compliant with a WordPress theme. This process also supports responsiveness of your WordPress deployment. You do not need access to the backend MySQL database, which is not always easy or available. This makes it very portable and convenient to add as a WordPress administrator. You only need to add a custom action to the Theme Functions ("functions.php") file in WordPress and specify that custom action in your Ninja Forms configuration. Pre-FileMaker Strategy: Custom Web Publishing Previously in FileMaker 16 and prior, you could send data to a CWP (custom web publishing) script that could include the FM API for PHP and use that to insert to your database. This required a web server running PHP, possibly on the same machine where FileMaker Server was running. Simplified Process with the FileMaker Data API That changes in FileMaker 17. Now, you can communicate directly with the newly available Data API to insert a new record in your database with no other pieces needed or external APIs to load. Both methods use a WordPress function, WP_Http(), to make the external requests and submit all form data entered by end users. In WordPress, go to Appearance->Editor, then select the Theme Functions file and insert the following code, with adjustments made to the variables at the top of the function. add_action( 'fm_WordPress_action', 'fm_data_api_form' ); function fm_data_api_form( $form_data ){ // set variables $myServer = 'https://your_server_name/'; // the url of your server $myUser = 'Username'; // your username $myPass = 'password'; // your password $myFile = 'Your_File'; // your file name $myLayout = 'Your_Layout'; // your layout name // authenticate and get token $myEndpoint = 'fmi/data/v1/databases/' . $myFile . '/sessions'; $post_url = $myServer . $myEndpoint; $headers = array('Authorization' => 'Basic '.base64_encode("$myUser:$myPass") , 'Content-Type' => 'application/json'); $request = new WP_Http(); $response = $request->request($post_url, array( 'method' => 'POST', 'body' => $myJSON, 'headers' => $headers )); if($response){ //inspect response $responseObj = json_decode($response['body'], false); $responseCode = $responseObj->messages[0]->code; if($responseCode == '0'){ $responseToken = $responseObj->response->token; // format json from form data $form_array = array('fieldData'=>array()); foreach( $form_data['fields'] as $field ) { // get key/value pairs into an array by themselves if($field['key'] != 'submit_button'){ $form_array['fieldData'][$field['key']] = $field['value']; } } $myJSON_Data = json_encode($form_array); // insert record $myEndpoint = 'fmi/data/v1/databases/' . $myFile . '/layouts/' . $myLayout . '/records'; $post_url = $myServer . $myEndpoint; $headers = array('Authorization' => 'Bearer ' . $responseToken , 'Content-Type' => 'application/json'); $request = new WP_Http(); $response = $request->post( $post_url, array( 'method' => 'POST', 'body' => $myJSON_Data, 'headers' => $headers ) ); if($response){ // ok } else { // insert err } // log out $myEndpoint = 'fmi/data/v1/databases/' . $myFile . '/sessions/' . $responseToken; $post_url = $myServer . $myEndpoint; $headers = array('Content-Length' => '0'); $request = new WP_Http(); $response = $request->post( $post_url, array( 'method' => 'DELETE', 'headers' => $headers ) ); } else { // authentication err } } } Enabling Ninja Forms To use with Ninja Forms, we configure the "Emails & Actions" configuration (see Figure 1) for the form we are working on, enable the "Web Hook," (see Figure 2) and give it a Name and Hook Tag. The Hook Tag here is important, and it needs to match the action name given in the custom action. In the code above, it is the first parameter of the add_action function, where we name it "fm_WordPress_action". Figure 1- Use "Emails & Actions" to configure your form Figure 2- Use the slider to enable the "Web Hook" action. If we break down the above code, we see the performance of two steps. The first is to authenticate to the database and get a token back. Once we have successfully authenticated and have a token, we use that in the header of our HTTP request to submit JSON to the Data API that completes our record creation. There are RESTful endpoints used to perform both authenticating and record creation. You can find these in the Data API documentation. First, we send credentials using a HTTP header and receive a token upon successfully authenticating to the database. Once we have a token, we do a bit of cleanup work to get our data out of the form, where we reference the "Field Key" from the form builder, and correctly format the JSON we will submit as the body of our request to create a new record. We define the Field Key for each field in the form (see Figure 3). Figure 3 - Define the Field Key for each field. Of course, all field keys need to match with the field names in your database. Also, this assumes that you have correctly set up security in your FileMaker file, and have enabled the "fmrest" privilege set for the account used to perform this action (see Figure 4). Figure 4 - Set up security in your FileMaker file to enable the "fmrest" privilege set. You will see the File and Layout specified in the endpoint we reference, so we only then need to include the JSON containing our record data, in addition to passing our authentication token as a header. All this is simple enough, once you have achieved a cursory understanding of REST architecture and how to work with it. Licensing and Costs FileMaker Server includes an amount of data transfer at no additional cost. The good news is that the amount already provided -- 2GB of data, per user each month -- should be more than enough for most every use case. That does not include container data and only counts toward outbound data transfer. Data is also shared for all users. For example, if you have a FileMaker Server with five licensed users, that would be 10 GB/month, or 120 GB for the year. That far exceeds the amount that most solutions see in data transfer even with FileMaker Pro pushing user interface and containers. If you go beyond this very high threshold, you would likely want to pay additionally for the support to handle that kind of traffic. Considering the cost of FileMaker Server effectively includes this licensing, I would not hesitate to recommend using the Data API in any new development. Building on Your FileMaker-WordPress Integration This is just an example showing a basic integration of a WordPress form used to create a record in your database. You could build on this example to add more robust error handling or additional functionality. Integrating with FileMaker is easier than ever! Hopefully this article gives you some insight into how you can extend your FileMaker applications in ways previously not conceived. If you have any questions or need additional help integrating your FileMaker solution with your website, please contact my team. We’d love to see if we’re a good fit for your next project. References FileMaker Data API Guide http://fmhelp.filemaker.com/docs/17/en/dataapi/ FileMaker Licensing FAQ http://www.filemaker.com/purchase/store/faq-teams.html Ninja Forms https://ninjaforms.com Your Guide to Using the FileMaker Data API to Enhance Your Application https://www.soliantconsulting.com/blog/filemaker-data-api The post How to Use FileMaker 17 to Connect the Data API and Your WordPress Website appeared first on Soliant Consulting. Voir le billet d'origine
  10. Soliant Consulting

    Extending FileMaker PDF functionality with DynaPDF

    Generating PDFs in FileMaker FileMaker Pro has had the ability to generate PDF documents since version 8, providing basic functionality that has remained largely unchanged since its introduction. Using FileMaker Pro’s plugin architecture, we can extend this functionality to provide the following enhancements: Search PDF document text Append multiple PDF documents in non-sequential order Add a watermark to a PDF document Password protect a PDF document Delete pages from a PDF document Add clickable “Page Links” to move to different pages throughout a PDF document Compress a PDF file to prepare them for transmission over the internet An intermediate to advanced FileMaker Pro developer can leverage these features to create even more dynamic PDF documents inside FileMaker Pro. Setup and Installation The MBS FileMaker Plugin by MonkeyBread Software has one of the most feature-packed plugins in the FileMaker community with over 5,000 functions to date and developer Christian Schmitz continues to regularly add new features. As a side note, one of my favorite features is a more colorful script syntax coloring but there are many more that can be useful in a variety of situations. Using the MBS plugin, we can extend its functionality even further using the DynaPDF library. DynaPDF is a popular library for working with PDFs that the MBS plugin allows us to access using functions. For DynaPDF alone, you can use 484 custom functions inside FileMaker Pro. To setup this up, first download the MBS plugin. Included in that download is the DynaPDF library in both macOS and Windows formats. Read the installation documentation to know where to install the DynaPDF library on your computer. It is also worth noting DynaPDF and MBS FileMaker Plugin can also run as a server-side plugin, allowing you to leverage the power of server processing and not require an individual license for DynaPDF on every end user computer. Plugin Functions & Scripting All DynaPDF functions use a dot syntax starting with “DynaPDF.” DynaPDF requires some sequential steps to manipulate a PDF document. Using the “Set Variable” step we can increment the DynaPDF library and create a memory space inside FileMaker Pro. Here is an overview of this process using FileMaker script steps: #Initialize new PDF instance Set Variable [$pdf; Value:MBS ( "DynaPDF.New" )] #Convert path to DynaPDF native path Set Variable [$targetPath; Value:MBS( "Path.FileMakerPathToNativePath"; $fruitPath )] #Open Existing PDF into memory Set Variable [$x; Value:MBS ( "DynaPDF.OpenPDFFromFile" ; $pdf ; $targetPath )] After we call these initialize functions, we can perform any number of DynaPDF functions to this PDF we have brought into memory. Check out a complete listing of DynaPDF functions. To complete the PDF manipulation process and save our changes to the PDF document we perform the following steps: #Denote where to save changes to PDF file, could be same path or different path Set Variable [$x; Value:MBS ( "DynaPDF.OpenOutputFile" ; $pdf ; $targetPath )] #Save will commit those changes to that path Set Variable [$x; Value:MBS ( "DynaPDF.Save" ; $pdf )] #Release clears the memory space, allowing a new instance of "DynaPDF.new" to be created. Set Variable [$x; Value:MBS ( "DynaPDF.Release" ; $pdf )] It is important to note that you can redirect the output of your changes to a different file path than the one you started with in the initialization functions earlier. Download Our Demo File Get the demo file You can use our complimentary demo file to demonstrate a few capabilities of DynaPDF. This file contains a simple table containing pictures and images of different types of fruit. The goal is to create a listing of each fruit with clickable links to different pages throughout the PDF. First, DynaPDF allows us to create two PDFs and then combine them in the reverse order. We can parse the text of each page of the PDF to determine the page number of each fruit in the document. After combining the PDFs, we can add “Page Links” into specific locations on each page, allowing us to hyperlink within our combined PDF document. We use this in two ways -- first, by having a table of contents page that allows us to jump to a specific fruit on a page and second, by having a button on each page that allows us to return to the table of contents page. This minimizes the need to scroll through each page of the PDF, creating a more fluid user experience. Enhancing FileMaker Pro with PDF Document Manipulation With some script steps and external plugin functions, we see how powerful we can make FileMaker Pro by manipulating PDF documents. We can link around a PDF document dynamically, combine multiple PDF documents in different order and parse text from specific pages in a PDF, and much more. PDF functionality has remained the same for almost 15 years in FileMaker Pro. By using FileMaker Pro’s plugin architecture we can extend that functionality to build even more powerful custom applications. What kind of apps could you build with this powerful set of PDF tools? Next Steps for Your FileMaker Solution If you have any questions about this functionality or seek a development partner in using it to take your FileMaker solution to the next step, please contact our team. We’re happy to provide additional insights and determine if we’re a good fit for your next project. References MBS FileMaker Plugin http://www.monkeybreadsoftware.de/filemaker/ DynaPDF from MBS https://www.mbsplugins.eu/component_DynaPDF.shtml FileMaker Hacks Blog Post https://filemakerhacks.com/2017/02/21/pdf-with-embedded-links/ The post Extending FileMaker PDF functionality with DynaPDF appeared first on Soliant Consulting. Voir le billet d'origine
  11. Soliant Consulting

    JSONPath in FileMaker Demo

    Leveraging JSON to pull additional information into FileMaker introduces new opportunities for integration with web services and RESTful APIs. The functionality allows you to strengthen your FileMaker solution by querying specific JSON data elements. Learn more about how this functionality can empower your organization by downloading our complimentary demo file on setting up your JSON path. Read the blog post… Complete the form to receive the file: Trouble with this form? Click here. The post JSONPath in FileMaker Demo appeared first on Soliant Consulting. Voir le billet d'origine
  12. Soliant Consulting

    JSONPath in FileMaker via the Web Viewer

    Getting information from JSON opens up FileMaker for more integration with web services and RESTful APIs. With the Data API (beta in 16, v1 in 17) and Admin API (FileMaker Server 17), JSON will likely continue to become more important and more integrated with FileMaker. Querying JSON Data Elements The JSONGetElement function lets us query specific JSON data elements, using either an object name, an array index, or a path. The key is there that these must be known values. We need to either know something about the JSON structure if we want specific elements. We cannot query or search JSON based on certain criteria. Alternatively, we could get everything from the JSON object into a field or variable, and then apply some rules after the fact. Maybe we want to compare information or look for elements that fit certain requirements, such as a price above or below certain thresholds. Maybe we want to look for arrays that are missing certain elements, such as ISBN numbers in an array with book information. In XML there’s a syntax called XPath that uses expressions to find information in nodes or node-sets. There’s a similar concept that allows us to extend JSON, taking advantage of a JavaScript library called JSONPath, and FileMaker’s own Web Viewer to act as the engine for the JavaScript library. This lets us feed in JSON and a JSONPath expression into a Web Viewer, and return the result via the fmpurl protocol. FileMaker and Web Viewer Integrations Web Viewer and JavaScript integration is nothing new. A Google search for FileMaker and JavaScript integration will likely bring up many examples of such integration. Some examples include FileMaker reaching out to external APIs. Other examples use what’s called a “data uri” to render web pages directly in your web viewer. Using a “data uri” you can include CSS and JavaScript in your HTML code. Setting Up Your JSON Path The included demo file has a field for our jsonpath.js library. This is an open source file and our only dependency. When implementing this in a real solution, you’d likely place this in a resource table and only call it as needed. Next, we have a field for our JSON. This can be an object or array. Your own process may store the JSON in a variable, but the demo file uses a field so that we can see the source values as we’re testing our JSONPath expressions. Additionally, we have an “input” field, which is the JSONPath query. Instead of JSONGetURL, JSONPath uses expressions in a text format to search the JSON for matching results. Then, we have a result field so we can see the result of our JSONPath query for certain values from the JSON using the jsonpath.js library. Both the input and result fields also could be turned into variables. Finally, we have an empty Web Viewer object, with a name of “WebViewer” so we can point to the object as needed. Scripting Your JSON Path There are two short scripts, “JSONPathInput” and “JSONPathWrite.” The first script, “JSONPathInput,” builds HTML and sets this HTML into the Web Viewer. As mentioned above, we can use “fmpurl” inside HTML to call FileMaker scripts. The last action in our “JSONPathInput” script does just this, calling the “JSONPathWrite” with a script parameter. That script parameter is the result of the JSONPath query, and all the script does is set our Result field with this value. The process is simple enough, but the complexity and power lie in the HTML that we create. HTML The HTML inside the script takes up only a few lines of code. (Note: The \ characters are there to escape double quotes inside the text.) Substitute ( "data:text/html, <!DOCTYPE html> <html lang=\"en\"> <head> <script type=\"text/javascript\"> **JS_FUNCTION** </script> <script type=\"text/javascript\"> var json = **JSON**; var p = jsonPath(json, \"**INPUT**\" ); var r = JSON.stringify(p); var url = \"fmp://$/" & Get ( FileName ) & "?script=JSONPathWrite&param=\" + r ; window.location = url ; </script> </head> </html>" ; [ "**JS_FUNCTION**" ; zResources::JSONPath ] ; [ "**JSON**" ; zResources::JSON ] ; [ "**INPUT**" ; zResources::Input ] ) Let’s break this apart into smaller chunks. First, the HTML is wrapped inside a FileMaker substitute function. Skipping briefly to the last lines of code, we see three substitutions. Each bit of text bracketed by the double asterisks gets switched out with values from our fields. These three values, such as **INPUT**, appears in the HTML code as placeholders. We’ll tackle each piece separately. Our text starts with “data:text/html,” which means we’re constructing a web page. Next, we have some HTML specific tags at the beginning and end: <!DOCTYPE html> <html lang=\"en\"> <head> . . . </head> </html> Inside this HTML we have two JavaScript functions. The first function, represented by our **JS_FUNCTION** placeholder, represents the jsonpath.js library. This brings the library into our web page. The second function is where we write out how to apply the jsonpath.js library against our JSON and our JSONPath expression. <script type=\"text/javascript\"> var json = **JSON**; var p = jsonPath(json, \"**INPUT**\" ); var r = JSON.stringify(p); var url = \"fmp://$/" & Get ( FileName ) & "?script=JSONPathWrite&param=\" + r ; window.location = url ; </script> We declare our JSON value as a variable inside JavaScript. Then we declare another variable with the result of sending our **INPUT** or query from the field into the JSONPath function. Ordinarily, this might be enough, but sometimes JSONPath returns objects or arrays, and these might not display properly in certain browsers. Instead, you might see a value like “Object object,” so we use the built-in “JSON.stringify” function to convert objects into strings. Finally, we set a variable to the fmpurl address of our “JSONPathWrite” script, with the stringified variable as the script parameter, and then feed this url into the Web Viewer. How does JSONPath work? Let’s assume we have some JSON: { "store": { "book": [ { "category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.95 }, { "category": "fiction", "author": "Evelyn Waugh", "title": "Sword of Honour", "price": 12.99 }, { "category": "fiction", "author": "Herman Melville", "title": "Moby Dick", "isbn": "0-553-21311-3", "price": 8.99 }, { "category": "fiction", "author": "J. R. R. Tolkien", "title": "The Lord of the Rings", "isbn": "0-395-19395-8", "price": 22.99 } ], "bicycle": { "color": "red", "price": 19.95 } } } With JSONGetElement, to pull out the ISBN we’d need to loop through the “book” array and extract the value using something like: JSONGetElement ( JSON ; "store.book[2]isbn" ) The [2] represents the 3rd index in the book array. The first two indexes contain no value for ISBN, but we’d need to loop through all of them to pull out what we need. With JSONPath, all queries begin with “$” followed by a path with optional operators. The “$” represents the root object or element. Dot and bracket notation is used in ways similar to the JSONGetElement function. The power of JSONPath comes in the ability to traverse JSON and slice out elements, with the logic built into the JSONPath expression. Say you need to know which elements in the above JSON have an ISBN value. You can get the array values with this query. $..book[?(@.isbn)] If you want to find titles of books that don’t have an ISBN, then you flip this around and append the title key: $..book[?(!@.isbn)].title To find books where the price is greater than some value, you can use comparison operators. $..book[?(@.price &gt; 15)] This “stringify” action in our JavaScript function will wrap your result inside a JavaScript array, so some additional manipulation is required. If your result contains a single value, even if this is object, you can use JSONGetElement ( Result ; “[0]” ) to strip off the “[ ]” brackets. For arrays that contain multiple values, you can use JSONListKeys to determine how many values there are in your array and process these with the native JSON functions. This query returns one book object where the book costs more than 15: $..book[?(@.price > 15)] [{"category":"fiction","author":"J.R.R.Tolkien","title":"The Lord of the Rings","isbn":"0-395-19395-8","price":22.99}] In the above example, to get the title, use JSONGetElement ( Result ; “[0]title” ) and this will return “The Lord of the Rings.” For a more complete review of all options and operators available in this JSONPath Javascript library, refer to this article on JSONPath. Get the Demo file Download the JSONPath demo Why Use JSONPath? There is some overlap with JSONPath and JSONGetElement. $.store is the same as JSONGetElement( JSON; “” ) and returns our entire JSON. FileMaker reorders JSON based on the keys, so they might look different, but it’s the same content. JSONPath allows us to extend our applications that use JSON to both analyze and extract information, almost like searching the content, without first pulling apart as we’d need to do with JSONGetElement and additional scripting. Caveats with JSONPath There are a couple of considerations with fmpurl. Security settings will need to be updated to allow the “fmpurlscript” extended privilege set for any accounts that use this process. If you have multiple versions of FileMaker open, running the script with the “wrong” version may fail. If the fmpurl is bound to FileMaker 16, and you try to use it in 17, you might get an error. Leveraging New Features in FileMaker 17 If you have any questions about how to benefit from JSONPath and other new features in FileMaker 17, please contact our team. We’re happy to help your team determine the best way to leverage new functionality for your FileMaker solution. The post JSONPath in FileMaker via the Web Viewer appeared first on Soliant Consulting. Voir le billet d'origine
  13. Soliant Consulting

    FileMaker Server 17 and the Crucial ‘stats.log’

    stats.log on FileMaker Server There is no log file more important on your FileMaker Server then the ‘stats.log’. It delivers invaluable information on how your deployment is behaving across the four traditional bottlenecks of any server: Is the processing power sufficient? Can the disk speed handle the volume? Is there enough memory available? Does the network card give me enough bandwidth? The information in that log will help you troubleshoot performance bottlenecks in your solution. The stats.log also will help you plan and extrapolate whether the current server can handle any new load you have in mind. It will inform you if it is safe to use more PSoS or more server-side schedules or add a few WebDirect users. Without this log, you are, in effect, flying blind. stats.log in FileMaker Server 16 In FileMaker Server 16, the toggle to enable this log was in the Admin Console as shown in Figure 1: Figure 1 - Toggle for stats.log in FileMaker Server 16 Admin Console (click to enlarge) The statistics themselves were visible in the Console too as shown in Figure 2: Figure 2 - Statistics shown in FileMaker Server 16 Admin Console (click to image to enlarge) That is not so anymore in the new FileMaker Server 17 Admin Console. stats.log in FileMaker Server 17 In the FileMaker Server 17 Admin Console, you can only toggle the top call stats log. To view any of the logs, you must download them (see Figure 3): Figure 3 - Download log files in FileMaker Server 17 Admin Console (click image to enlarge) Finding the stats.log in FileMaker 17 As per my previous blog post on missing features in FileMaker 17 illustrates, you may thiink the stats.log is no longer available in FileMaker Server 17. Rest assured: it is still there. However, it is also still turned off by default. (I really wish it wasn’t.) Because we do not get visual reminders of of this in the new Admin Console, you may easily forget about it. Turning on the stats.log in FileMaker 17 The very first thing I do when I install a new FileMaker Server or log into one already running is turn on the stats.log. I do not like flying blind… In FileMaker Server 17, you can only do so from the command line on the server itself – or through a secure tunnel to the command line on the server (see Figure 4): Figure 4 - Turn on the stats.log in FileMaker Server 17 (click image to enlarge) While you are there you can also enable the Client Stats log: fmsadmin enable clientstats Figure 5 - Verifying the logging interval and log size setting (click image to enlarge) That client stats log as well as the top call stats log will turn themselves off on every FileMaker Server restart, but the regular stats.log will remain on after issuing this command. Next, I will verify what the logging interval is and how big the log size setting is: fmsadmin get serverconfig: The default settings of logging every 30 seconds and keeping the log size at 40MB is usually sufficient. If you want to change them, the command would be: fmsadmin set serverconfig statsinterval=15 This, for example, would change the interval to 15 seconds. Accessing Your Data in the stats.log Now that we can sleep easy knowing our server deployment will log valuable performance data, how do we get the data when we need it? You cannot download the stats.log and the ClientStats.log from the Admin Console. You will need to grab them from the FileMaker Server logs folder (see Figure 6). Figure 6 - Get the stats.log and ClientStats.log from the FileMaker Server logs folder (click image to enlarge) Questions About the stats.log As always: post any questions on community.filemaker.com or as a comment on this blog, and we’ll be happy to help out. For a full run-down of the new Admin Console, the configuration options that are available from the command line, the new Admin API and the new Console, and a dedicated Tech Brief on monitoring your FileMaker Server, download comprehensive white papers. Leveraging New Features in FileMaker 17 If you have any questions about how to benefit from the features in FileMaker 17, please contact our team. We’re happy to help your team determine the best way to leverage new functionality for your FileMaker solution. The post FileMaker Server 17 and the Crucial ‘stats.log’ appeared first on Soliant Consulting. Voir le billet d'origine
  14. New FileMaker Server Admin Tools FileMaker Server 17 includes exciting new offerings, including a Data API out of beta and a brand new Admin API. The FileMaker Server 17 Admin Console has been redesigned with a fresh, new look. Now, some features that were available in the Admin Console in previous versions of FileMaker Server are no longer available in it. For instance, “send message” and “verify database” schedules can no longer be created from the console. Setting the maximum number of hosted files, enabling/disabling the stats log, enabling/disabling the XML and the PHP APIs, are no longer available from the Admin Console. Download the tech briefs co-authored by Wim Decorte and Steven H. Blackwell for a comprehensive review of how the FileMaker Admin Console has changed in FileMaker 17. Read the blog posts: FileMaker Server 17 Admin Console, Admin API, and Admin CLI FileMaker Server Monitoring in FileMaker 17 FileMaker Server 17 and SSL Changes You Need to Know As explained in much greater detail in those white papers, most of the functionality in previous versions of the Admin Console has not gone away, but it’s no longer available through the Admin Console; instead, we now need to rely on the Admin CLI and/or the Admin API to use and/or set some of those features and options. Moving Forward in FileMaker 17 At Soliant Consulting we thought it would be nice to have a convenient, web-based means from which to administer more aspects of FileMaker Server than what the stock Admin Console offers. To do so, we are leveraging the new Admin API to simplify tasks that are no longer available via the native Admin Console, but also to do things that were not possible before 17, like visualize and manipulate FileMaker Server schedules in a calendar view. Introducing the FileMaker Server Admin Console Extension We set out to build a web-based extension of the native Admin Console, an app called FMS ACE (FileMaker Server Admin Console Extension). Our team is sharing it with the FileMaker community for free, in an open source form for anyone to modify and extend. This version of FMS ACE provides the following enhancements: Display all schedules on the server in a calendar view Filter the schedule display by schedule type Create "verify database" schedules Create "send message" schedules We do not intend for FMS ACE to replace the native FileMaker Admin Console. Rather, we see it as an easy-to-use complement to the stock Admin Console. You can run both of them side by side in a web browser. FMS ACE is a JavaScript app, just like the native FileMaker Server 17 Admin Console. FMS ACE leverages the new Admin API in FileMaker Server 17 to obtain all schedules in a FileMaker Server, and it displays them in a calendar format for you to see at a glance all schedules defined in your server. You can choose to see them in a “month”, “week”, or “day” view, and you can create and delete schedules right from the calendar in FMS ACE. Your edits are automatically pushed to your FileMaker Server. Sound appealing? Keep on reading! A Few Words on the FMS Admin API The new Admin API in 17 allows us to interact with FileMaker Server via RESTful calls. For a complete list of the calls available, refer to the Admin API documentation installed with FileMaker Server 17 at https://<your_server_here>/fmi/admin/apidoc/ You can also read Anders Monsen's introduction to FileMaker 17's new Admin API. FMS ACE and Schedules Half of the FileMaker Server 17 Admin API calls involve interacting with schedules (backup, script, send message, and verify database schedules). Let’s look at how FMS ACE leverages this new API, and in particular the schedule calls, to work with FileMaker server schedules. When you launch FMS ACE in a web browser, you are prompted for the credentials to connect to your FileMaker Server (the Admin Console credentials). This is very similar to logging into the native Admin Console. Once you log in, FMS ACE automatically pulls the data for all schedules in the FileMaker Server that you connect to, and it displays them in this fashion. Calendar displays "week" view by default (click image to enlarge) Behind the scenes, FMS ACE uses the "schedules" Admin API call to obtain all schedules in the server. It uses the free, open source FullCalendar JavaScript library to visualize data returned by the Admin API in a calendar view. Note that the different schedule types are color-coded, and you can choose to filter by schedule type, displaying only some schedule types at a time. "Month" calendar view filtered to show only Backup and Verify schedules (click image to enlarge) You can also create "verify database" and "send message" schedules from FMS ACE, two schedule types that can no longer be created from the native Admin Console. Popup to add a Verify Database schedule (click image to enlarge) To view the detail for a schedule, click on it. To delete it, click "Delete" in the details popup. Popup showing schedule detail and ability to delete schedule (click image to enlarge) How can you get your hands on this app, you are wondering? Utilizing FMS ACE as an End User Download the latest version of the built JavaScript app from GitHub Copy the "fms-ace" folder to the following location on your FileMaker Server machine: On Windows: C:\Program Files\FileMaker\FileMaker Server\HTTPServer\conf\ On Mac: /Library/FileMaker Server/HTTPServer/htdocs/httpsRoot/ That's it! Now you should be able to access FMS ACE on your FileMaker Server at the /fms-ace route, e.g. https://<your_server_here>/fms-ace Please note that the current version of FMS ACE is only supported on FileMaker Servers with a security certificate signed by a Certificate Authority (not with the self-signed certificate that ships with FMS 17). We have a ticket on our roadmap to try to overcome this limitation. Leveraging the Admin CLI Currently, we are relying entirely on the Admin API to interact with FileMaker Server. In the future, FMS ACE could also leverage the Admin CLI to interact with FileMaker Server. As mentioned earlier, some functionality that previously existed in the native Admin Console is now available in the Admin API and/or Admin CLI. It would be possible to issue Admin CLI commands from FMS ACE, thus making this app a central place from which to interact with FileMaker Server. The future of FMS ACE depends on interest within the FileMaker community, so please let us know what you think. You can even extend FMS ACE yourself, as we are releasing it as an open source project! Contributing to FMS ACE as a Developer The project is available in GitHub Please refer to the Contributing Guidelines if you would like to extend FMS ACE Final thoughts The administrative tools available in FileMaker Server 17 represent a significant departure from previous versions of FileMaker Server. We believe that FMS ACE can grow to be a handy tool for FileMaker Server administrators. Please connect with us on GitHub and let us know what you think about FMS ACE. Could this be a useful tool for you? What new features in FMS ACE would you be most interested in? If you're interested in other ways to integrate web services with your FileMaker solution, contact our team. We can provide insights on the best way to move forward. The post JavaScript App Extension to the FileMaker Server 17 Admin Console appeared first on Soliant Consulting. Voir le billet d'origine
  15. Soliant Consulting

    FileMaker Server 17 – Help with the Helper Tools

    Moving forward with FileMaker 17, the FileMaker Server Command Line Interface (CLI) will play a more prominent role in how we interact with our server. You can only access some settings no longer available through the Admin Console through the CLI or the new Admin API. (Learn more in the tech briefs here.) Helper Tools in the New Admin API We are already exploring plenty of new helper tools to take advantage of the new Admin API and create nice-looking user interfaces to augment the standard Admin Console. You can even expose settings and configuration options that may seem a little hidden. In a pinch though, when you are logged into the FileMaker Server machine and need to check or set some of the options, know that the CLI has a pretty decent built-in help. To get a list of all the available commands for instance type in the folllowing as shown in Figure 1: Note that all of these commands are the same on Windows as on macOS.) Figure 1 - Get a list of the available commands (click image to enlarge) This will give you all of the commands available as shown in Figure 2: Figure 2 - List of available commands (click image to enlarge) To get more help on any of these commands, type in the following: fmsadmin help <the command you are after> As an example, let’s look at the new GET command. This command allows us to see many of the current FileMaker Server settings, including default settings (see Figure 3). Figure 3 - The new GET command (click image to enlarge) Figure 4 shows what this will get us: Figure 4 - Current FIleMaker settings, including default setting (click image to enlarge) Based on what we see in this help section, we can now issue this command as shown in Figure 5: Figure 5 - Using the 'serverconfig' command (click image to enlarge) This allows us to see the settings in the 'serverconfig' area as shown in Figure 6: Figure 6 - Settings shown in the 'serverconfig' area (click image to enlarge) Get Comfortable with the FileMaker 17 CLI with Helper Tools If you are unfamiliar with the CLI, then hopefully these help options will allow you to quickly find what you need. Leveraging New Features in FileMaker 17 As always, post your questions to the FileMaker Community Forum. My team and I are can lend a helping hand. If you have any questions about how to benefit from other new features in FileMaker 17, please contact our team. We’re happy to help your team determine the best way to leverage new functionality for your FileMaker solution. The post FileMaker Server 17 – Help with the Helper Tools appeared first on Soliant Consulting. Voir le billet d'origine
×