Jump to content

Recommended Posts

I'm reframing a question that I posted in a confusing way. Using variables seems so simple to me, but I know I'm missing something. I'll just post exactly what I'm trying to do so you guys can tell me why it isn't working.

The project is a db that will handle shift schedules for employees. In the one-day view I'm looking at, the essential live field is a global date field called gDate_of_work. A portal is looking through to related records and returning a list of employees (from a table called staff_schedule_match), identified here by unique serials, who are scheduled to work that day. There is a second portal, located on the same layout, that is (correctly) showing a separate related list, of employees who are available to work on the day of the week.

I, of course, want to be able to click on the name of an available employee and pass her serial number, along with the date in the global date field, to a new record in staff_schedule_match. In the distant past, I've sometimes solved this by opening layouts in offscreen windows and having extra fields dedicated to this data transaction, sometimes even by using the computer's clipboard (i.e. copy/paste).

The script I'm trying to execute here goes:

Set variable ($shift_add_nuid; employee's serial number from related record two)
Set variable ($work_date; date displayed in this global date field)
Freeze window
Go to layout staff_schedule_match
New Record
Set Field (staff_schedule_match:nUID; $shift_add_nuid)
Set Field (staff_schedule_match:StartDate; $work_date)
Set Field (staff_schedule_match:EndDate; $work_date)
Commit Record
Go to layout (original)
Refresh window

Stepping through the script watching Data Viewer, I can see that the correct data is getting loaded into the variable values, but I can also see that the destination fields show up with an Unrelated table error. I don't understand why - I expected the behavior to be destination-agnostic, like my computer's clipboard, where if I copy some text in an email, I can paste it into a word processor or a browser or whatever.

Share this post

Link to post
Share on other sites

Check if your "staff_schedule_match" layout is pulling the data from the right table.

In FileMaker everything is context-dependent, aka not "destination-agnostic", unless you do SQL calculations. 

Share this post

Link to post
Share on other sites

I know it's hard to tell because I threw so much information in there, but staff_schedule_match is one table, containing shift data that looks like

StartDate: 3/22/2017
StartTime: 7:30 AM
EndDate: 3/22/2017
EndTime: 4:45 PM
nUID: V204

A second table is the one I'm working in, staff_schedule_interface, intended to be the neutral "window" through which employees view and print the data in above (organized by day, by week, or by name).

Given the use I described above, I don't understand what context I should establish.

(At least once, I solved a problem by creating a field called "1" in both tables, defining it as a calculation whose value was 1, and using that to build an "everything is related to everything" relationship. Not proud of that.)

Share this post

Link to post
Share on other sites
23 minutes ago, Richmilnix said:

Go to layout staff_schedule_match

That's not how the Go to Layout [] step looks like. If you take a look at your actual script, you'll see it's structured like this:

Go to Layout [ “Layout Name” (Table Occurrence Name) ] 

In your example, that should translate to:

Go to Layout [ “staff_schedule_match” (staff_schedule_match) ] 

Judging by your error, you are seeing something like this instead:

Go to Layout [ “staff_schedule_match” (Some Other Table Occurrence) ] 

because the layout named "staff_schedule_match" is defined to show records from Some Other Table Occurrence.


BTW, this has nothing to do with variables. You will get the same error if you try to set any of the fields to a constant value.

Share this post

Link to post
Share on other sites

I might have confused things (again) by typing the script manually. The script step actually reads

Go to Layout [ “staff_schedule_match” (Date_match) ] 

where Date_match is the named relationship through which my portal is seeing the employees working on a given date.

. . . and therefore, I now realize, I need the relationships in the script to be defined through Date_match as well!

I gotta admit, I still get confused in trying to map this out. But the solution is working now. Thanks for your input.

Share this post

Link to post
Share on other sites
12 minutes ago, Richmilnix said:

where Date_match is the named relationship

No, There are no named relationships in Filemaker. Date_match is the TO to which the layout named "staff_schedule_match" belongs. When you execute this step, you are placed in the context of the Date_match TO. I don't see your graph, so I am not sure what exactly that means. And I am afraid I don't follow your initial explanation well enough to understand what you want to do. But I can tell for sure that you are trying to set fields in the staff_schedule_match TO, while you are in the context of the Date_match TO - and since these two are unrelated, you are getting an error.

And I can also say that relating them artificially is not the solution, because while you are in Date_match, the only record in staff_schedule_match you'll be ever able to modify is the first one.

Share this post

Link to post
Share on other sites

I'm reframing a question that I posted in a confusing way. Using variables seems so simple to me, but I know I'm missing something. I'll just post exactly what I'm trying to do so you guys can tell me why it isn't working.

This is still confusing and still jumping into the middle of something without describing the basics.

Please begin by describing your data structure. What tables are involved; what does your graph look like.

Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By docasar
      I am still very amateur on Filemaker so i hope my question does make any sense.
      I am trying to write a script that would basically import order information from an email and convert it, first in a new account (if the customer does not exist) and later create a Sale Order. So far, I have managed to do that, but the problem i find is when trying to convert the sale order into an invoice. Since this order comes from our webshop when we receive the email means it is paid, so my aim is that when creating the invoice from the Sale order, this would be marked as paid and set the amount due to zero.
      This would sound a very easy task, but since our solution incorporates a payments module to manage the payment of an invoice, when i try to incorporate the payment entry within my script, there is when all the trouble starts. For some reason, it gets lost in its way when runnig the script and returns a partial payment all the time. The weirdest thing is thet if I run the script on debug mode, then all works perfectly, so my guess is that the issue may be related to the speed of the script.
      So, is there any recomendation as for where to put a pause script step so the script will work also when run automatically?
      I have tried every possible combination of long script, shorter with other scripts inside, perform script on server... and all the time something is wrong ;(
      Thanks a lot for any insight thst would help us move forward, since we have been trying to solve this for a week already.
    • By Richmilnix
      For an inventory management database, I'd like my main screen to be able to accept pulls from three related databases:
      - Serialized (valuable tools, which I track and want back - the paintbrush);
      - Replenishable (cheap tools that I buy by the yard and if one gets left behind I don't care - the paint-mix sticks);
      - Perishable  (disposable tools that are left on the job site - the paint).
      These will handle their related requests differently. The serialized I'll be tracking properly to make sure we keep track; the latter two I'm looking for more like a system of 'tick marks' to help me know what we use on job sites.
      We print our barcodes. For ease of use, I'd like staff to scan into a single field in an interface that is smart enough to do the right thing based on a key digit in the barcode. So when I scan barcode 'S1234', my db knows to move it to the Serialized relation field; when I scan 'P1234,' it knows we're in Perishables.
      Looking for the elegant approach. My thought is that that central hot field (Scan_Here) will, when entered, store a variable and trigger a script built within the context of the related table, but I'm sometimes prone to reinventing wheels and doing stuff the long way, so I'm asking for suggestions / examples.
    • By JH Howland
      I have created an "opener" file called "OpenMP" that is located on the Windows Desktop.  Also, a global variable for the directory where the FMP14 files are located called "$$marinaDir" = "MarinaPro v17".
      When activated the launcher opens but does not open the target file using the following file path, "filewin:/C:/$$marinaDir/Marina.fmp12."  However if I substitute with the following, "filewin:/C:/MarinaPro v17/Marina.fmp12"; all is good.
      The script elements follow:
      #Create variable...
      Set Variable [$$marinaDir; Value: "MarinaPro v17"]
      #Start MarinaPro...
      Open File ["Marina"] (Marina File Path: filewin:/C:/$$marinaDir/Marina.fmp12)
      What am I missing?
    • By davidrichards
      I am having a tough time getting the set field by name script step to work and hoping someone can help me with this.
      I have a file of sales transactions over many years.  I have a related file for customers.  The customer file has counters for how many times a customer visits each year, how many suits, sportcoats, etc. they buy each year ( visits_2017, visits_2016, visits_2015, suit_count_2017, suit_count_2016, suit_count_2015 and so forth). I would like my script to evaluate the year of the transaction in sales and update the appropriate counter in customers.
      I have been unsuccessful in defining a variable and set field by name combination to accomplish this task.  Any recommendations?
    • By Richmilnix
      My goal here is to write a database with tidier relationships than I've used in the past, so I'm intending to use discrete table occurrences of the same data. Here's the roadblock:
      In layout 2_week_schedule, I have 14 portals that display a staff schedule (two weeks' worth) and can't be edited. My goal is that a logged-in administrator can click on the date field of any one of those fourteen days and go to a layout 1_day_schedule that is displaying the same information, though with more details and one day at a time.
      The underlying table of each layout is the same, though the layouts are based on different TOs.
      I wrote this with a script trigger in the date field in 2_week that fires a script to copy its value as date to variable $date, switch to the 1 day layout, and set the pertinent date field there to variable $date (and then commit).I don't know if it's my error, but I think of variables as being like my computer's clipboard - any value can be copied & pasted to/from. But the script fails with the message The operation could not be completed because the target is not part of a related table.
      I did try a simple redundant relationship (connecting the two pertinent fields), but that was a hail Mary, and didn't do the trick anyway. Is there a better way to accomplish what I want? In short, I want administrator who's scrolling through the existing schedules to be able to look at any date where she wants to make a change, click on it, grab its contents, and be brought to a more flexible interface where its contents get inserted into a portal that will then show her the results.
      This file is web-accessible, so I can post its address if it helps to see what I'm talking about.
  • Who Viewed the Topic

    1 member has viewed this topic:
    Nico Kobes 
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.