0

Okay, so the setup here might be a little bit long, but I'll try and get to the punch line.

Essentially, I'm trying to enhance QuickBase in order to accommodate tracking of compensation history for employees. Approval for comp changes is done on a quarterly basis, for employees with an anniversary date that falls in that quarter. The idea is that managers would pull up a report with all relevant reviewees for that quarter, enter in their proposed comp changes, and then that would go on to the approvers for confirmation.

To accomplish this, we have an "Employees" table related to a "Comp Records" table, one to many. An example of a Comp Record would be Bob's Q1/2015 review, his Q1/2016 review, his Q3/2016 merit increase, and his Q1/2017 review, etc.

My hope is that the act of filling in proposed compensation changes is a matter of doing a grid-edit of comp records, fill in the proposed "new salary", and hit save. Sounds easy enough.

It's easy enough to create a report around "Employees" that shows all employees with an anniversary date in the coming quarter. It's easy enough to create a report of all "Comp Records" for a given time period, for a given location, or for a given approver.

However, the problem is that if there are (for example) 20 people up for review in Q2, we'd need to generate 20 blank "Comp Records" for the appropriate dates, for those specific Employees. In other words, I don't necessarily want people to have to go in and hit "New Comp Record", pick an employee name, fill in the information, and hit save, 20 times.

I know the HTTP API has an Add Record function which I've seen other people drive via a button within QuickBase. That doesn't seem to handle it for more than one Employee at a time.

I've also seen that it's possible to host pages within QB and embed javascript on those pages in order to do the dirty work. That seems more likely a solution, but I'm not entirely sure how to go about using this.

Is there a way to use JS to query from QB "all Employee IDs for Employees that have an anniversary date in the coming quarter" and then loop through that list using Add Record to add Comp Records for each employee? I think an example of this is really the core of what I'm looking for.

In that case, I would end up with a button something to the effect of "Start Q2 Comp Reviews", click it one time to add the appropriate blank records, then let managers start filling in their proposed changes. That seems like a pretty reasonable experience.

If there's a more graceful overall solution, I'm also open to that. Any help is much appreciated :)

Lance
  • 23
  • 1
  • 4

1 Answers1

0

Not sure if this is helpful, but saw it when I was looking for an answer to a question I had and had a thought, so I figured I'd share. I agree generally that if you want to generate multiple records programmatically, you generally end up going with embedded javascript. That being said, two potential alternatives:

Possible

  1. QuickBase Actions - if you're guaranteed to have a record modification (or can force one), then you can use the new QuickBase actions to generate a child record. This is a longer shot, but would be nice if you've got

Better

  1. Editable Embedded Forms - you've mentioned using the grid edit function to add records. If you're open to using grid edit functionality, what you could do is:

    • Create a new form for employees, which displays only information you want them to view / edit while doing a compensation review

    • Create an report on the compensation history table which shows the subset of records for an employee you want them to see when adding a new record

      • embed this report on the form you created above, marking it as "editable"
    • Create a button for the "employees up for review report" which takes you to the employee's record, and the form you created above

I think editable embedded forms are probably the way to go to get closest to your workflow without custom scripting. That way, a manager can create new records without either the add button or custom scripts. Yeah, it's another click, but a) you can show them other info you'd want them to take into consideration when filling it in, and b) it avoids the custom scripting.

Adam Bethke
  • 1,028
  • 2
  • 19
  • 35