The Process of Development

I hope you find this article interesting and, even better, useful to you in your efforts.

WIN A COPY OF MY NEXT  EBOOK, FILEMAKER™ & YOU, VOLUME 2

After you’ve read the post, please take a moment to add a comment.  (It helps me to know if I’m hitting the target with what I’m posting about).  Anybody who comments will automatically be entered into a monthly drawing for a copy of my new book, due for release at the end of 2017.  (1 out of 10 people will win a copy)

If you have bought either of my two previous books and haven’t yet written a review on the iTunes store, please do so and then email me a copy of the review (so I know your email address) and you’ll also be entered into a different monthly drawing where 1 out of 10 will also get a free copy).

Thanks and please don’t hesitate to get in touch if I can help you.

Michael Rocharde
(303) 856-5778

For any piece of FileMaker™ functionality to work properly, there are, often, a lot of different steps that have to be completed for it to look easy.  Since most people who don’t work with FileMaker™, or any database program for that matter, are completely unfamiliar with what is happening behind the scenes or, as we developers refer to it, ‘under the hood’, I thought that I would take you through what is actually involved in adding functionality to an existing system.

The first step is to analyze the problem and think about it.  This can take anywhere from a few seconds to an hour or more; it simply depends on the level of complexity of the problem and how many moving parts there are.  This may also happen in front of the computer but it is just as likely to be accomplished elsewhere as the subconscious does its work while the conscious mind is doing something else.  For me, many times, I let my subconscious work on it while I’m asleep and then wake up with the answer ready for me to actually do the coding.

The ‘thinking’ process takes place multiple times and it is also multi-dimensional in that you are not only thinking of the best way to solve the problem, you’re also considering how and where that solution will be implemented.  You’re also wondering about the ramifications of what you are doing?  Where is going to be affected?  Where also?  What new relationships will I need to add?  Where do I need to add them?  How does everything tie together?  Plus a myriad of other questions.

In simple terms, the brain is moving at lightning speed.

Much of this time is un-billable since it is happening in the background while other things are being worked on.  Now, obviously, there are times when you are actually working on the problem and stop coding to think something through, which is billable time.

Like everything else, there is a balance between what is fair and what is not and, sometimes, it is difficult to draw the line precisely and accurately.

So now that we’ve discussed the mental aspect of development, let’s do a step by step examination of how the process actually goes.

THE PROBLEM

The client has a Purchase Order (PO) system where they order items from a specific vendor.  Some of the items being ordered are for a specific order and client and others are for stock replenishment.  Each PO can have an unlimited number of products being ordered and the quantity can be any number.  On the PO are three fields; two date fields; Confirmation Date and Estimated Delivery Date.  The 3rd field is for the Tracking # of the shipment.

Originally all POs were delivered in a single shipment but it is becoming more common to have them split into multiple shipments so there is a need to record those.

SOLVING THE PROBLEM

We could just add more fields for multiple shipments but this is not the correct way to do it since we don’t know many shipments there might be and we would either end up with too many fields or not enough.  (In either case, this is not considered normalization and/or good database design so we’re not going to do it).

What we need to do is create a new, related table called Shipments.  We add the three fields from the PO table to the new one and then add a primary key field and a field called PO_ID which is used to link the PO table to the new table.  We also allow the creation of related records via the key fields.

We can now add an unlimited number of shipments, displaying them in a portal, and fill in the relevant information as it is received.  (I’ve also added a couple of other fields; one to automatically insert a Serial # into each new shipment record and the other to take that Serial # and concatenate (link) it with the Tracking # (if one has been entered) or put TBA if not).

SOLVING THE  NEXT PROBLEM

So we’ve got our unlimited number of shipments but we now need to know what is being included in each shipment so that we can track those items as they come in.

To do that, we need to add another new table which we are going to call Shipment Items.  We are going to link (relate) that table to both the PO and to the Shipments table and we are then going to link it to the Shipments table by using the Primary key.  We do that by selecting a Shipment # for each individual item being added as a shipment.  (Without doing that, the individual shipment items are just tied to the PO and are really superfluous since we already have a table for the PO items).

Having added our two new tables, we now have to build the set of relationships for it all to work.  (in the illustration below, the two new tables are shown in yellow and green – we also need new relationships to multiple other existing tables for a variety of purposes).

It’s not necessary to cover all of the reasons why these relationships are there but one relationship allows us to select items from the current PO in our new shipment items table, and another allows us to insert the customer order # (where there is one) into each line item – this is so Production can see what parts they have coming in and when they are due.  The Production will also require another new set of relationships but we’ll get to that later.

Let’s now look at the data entry screen.

In the top half of the next screen shot, you see all the items for the current PO.

Below that are two sections, the one on the left is for the individual shipments and the one on the right are for the items that are being shipped.  (You’ll notice that each item has an item # which links it to the shipment.  You may also notice a filter field at the top (next to the Clear button) which shows items on a selected shipment).

And below you’ll see the two sections enlarged.

Earlier on, I mentioned that one of the relationship was to extract the part #s so that the user could simply select from a drop down list.  This is called a related value list and there are two steps to it; the first is to create the relationship which is from the PO to the PO items and yes, I would already have that relationship but I’ve created a new one here, simply for the purposes of illustration.

Remember that we only want the user to be able to add individual shipment items for items that are on the PO they are working on.

We’ve now completed the 1st stage of the development process.  The next stage which we’re not going to cover, since it is more of the same, is to link the individual shipment items for customers to their orders so that Production knows what is coming in and when.

And, of course, you have to make sure that you haven’t forgotten anything.

And then, there is this stage.

I hope you’ve found this breakdown of the development process interesting and easy to follow.  None of it is particularly complicated but it does require experience to know how to do it and how to get it right.

 

This technique and many others will be in my new book, FileMaker™ & You, Volume 2 which is due to be published by the end of the year.  In the meantime, my other 2 books (FileMaker & Me; FileMaker & You, Volume 1) are on sale at the iTunes store.  At $14.99 each, they contain a wealth of ideas and techniques and they come with a money back guarantee.  If you buy one or both and don’t feel they are worth the money you paid for them, simply email me with your reason and I’ll refund you the full purchase price.  If you write a review of them, you’ll also be entered to win one of 50 copies of the new book when it is published.

 

$14.99 at the iTunes store.

Click cover to order.

Money Back Guarantee

$14.99 at the iTunes store.

Click cover to order.

Money Back Guarantee

Leave a Reply

Subscribe To Our FileMaker Tips & Tricks

Join our mailing list to receive the latest FileMaker tips, tricks and video how tos from Michael Rocharde

You have Successfully Subscribed!

Subscribe To Our
Video Posts

Join our mailing list to receive info on new videos as we post them

You have Successfully Subscribed!

Website Apps