Automating a survey utilizing SQL data and abstracting results - tsql

At my workplace there is a weekly test taken by employees using a web application which collects results in a SQL database. My ask is How can I use these results and create a survey on survey monkey/SharePoint etc. that they can take and feed the results back in to SQL? The survey would only have to be tailored to get feedback only on incorrect results collected by the test. If I could do this with a data driven survey using a query it seems manageable. Just not sure what web application would be the most efficient to use. Or even Report Builder?

Related

Zend Framework - How to manage subscription plan privileges

I'm developing a REST API using Zend Framework 1.12.3.
I have to implement subscriptions for different types of plans (i.e. Basic and Premium), each plan having different privileges (e.g. Premium may offer instant, daily and weekly SMS notifications, while Basic may offer only weekly SMS notifications).
Also, there may be custom plans only for certain clients.
I've added a column in the users table called subscription, but what I cannot figure out is where to save the privileges for each subscription plan.
Should I save these privileges directly into the DB (i.e. create a table called subscriptions, and another one called subscriptions_privileges having as columns subscription_id, privilege_name and privilege_value), or would it be better if I save them into the config file?
Thanks
Note: Actually this question is not linked with Zend Framework, it is system architecture question.
Short answer:
it is much more easy to hardcode your subscription plans in your source code configuration files;
it is much more flexible to store this data in database (you can create some administration panel to allow managers to manage them, track history of plan changes, use these data in analytical SQL queries). Theoretically you can deal with all this stuff through reading and writing to your config files, but databases are just the exact tool for these tasks.
P.S.: You can add separate layer of abstartion in your application. Use model objects for your subscriptions which can be populated either from database or from your hard-coded config files using different adapters.

QBFC: Custom Reporting - Filter by custom field

In reference to a previous question of mine:
qbfc CustomerQuery based on email address?
Is it possible to create a custom detail report of customers, and using a custom field to "filter" the report. I must admit, I am not really clued in on CustomDetailReports, as I have no need for implementing them, and never had.
It does however look like its supposed to do just what it says, a custom report feeding you info form quickbooks?
What I am attempting to do, is get a list of customers in a detailed report, and filtering that report based on a custom field value. This way I can narrow down my possibilities of customers I need to check for, and get their ListID's or FullNames.
Currently I am returning all the customers using a customerquery, and iterating through them one by one to get the guy I am looking for. This is becoming a slow process as the customers increase.
I can store my own reference in an external DB, and use that to reference an email address to a customer ListID, but I would really like to achieve this with the data stored in Quickbooks only, as per the Quickbooks philosophy of, "Store Data Once"
Before I spend resources on trying to implement a custom report, can something like the above be achieved with Custom Detail Reports?
Thanks in advance.
Is it possible to create a custom detail report of customers, and using a custom field to "filter" the report.
Nope. QuickBooks does not support this.
It does however look like its supposed to do just what it says, a custom report feeding you info form quickbooks?
It will display a custom report, yes... but it won't allow you to filter it by custom fields.
Currently I am returning all the customers using a customerquery, and iterating through them one by one to get the guy I am looking for. This is becoming a slow process as the customers increase.
Have you considered instead caching the customers in your app? That would be much faster. Then you can just periodically run a query against QuickBooks to get customers that have been updated since the last time you ran the query (e.g. incremental sync of data).
I can store my own reference in an external DB, and use that to reference an email address to a customer ListID, but I would really like to achieve this with the data stored in Quickbooks only, as per the Quickbooks philosophy of, "Store Data Once"
My personal experience has been that, unfortunately, the query syntax that QuickBooks allows/uses is too restrictive for that to be realistic.

How to automate integration tests of FQL queries against different sets of test data?

Are there any frameworks or tools or other methods for automating integration tests of FQL queries?
By integration tests I mean I want to run the queries against the production facebook graph API.
I can use the Graph API Explorer, or just hit endpoints, to test a query manually against my own profile data - but I want to test a query against different test users with different volumes, types and patterns of data than exist in my personal profile, and verify that the result is what I expect in each different case.
I.E. the standard automated testing pattern..
Set up test data (presumably on a test user)
Run query against test data
Verify expectations on results
..and repeat for as many test cases as necessary.
There is no widely known or used framework to achieve this.
Thus, you'll need to create a test user. Populate it with what it is you want. Authenticate that test user. and then run the FQL on it. Thats your only option to run the tests you are looking for.

Programmatic export/dump/mass data retrieval (BaaS)

Does anyone have experiences with programmatic exports of data in conjunction with BaaS providers like e.g. parse.com or StackMob?
I am aware that both providers (as far as I can tell from the marketing talk) offer a REST API which will allow for queries against the database, not only to be used by mobile clients but also by e.g. custom web apps.
I am also aware that both providers offer a manual export of data (parse.com via their web interface, StackMob via support).
But lets say I would like to dump all data nightly, so that I can import it into a reporting system for instance. Or maybe simply to have an up-to-date backup.
In this case, I would need a programmatic way to export/replicate the data stored in the backend. Manual exports are not an option for obvious reasons.
The REST APIs offered however seem to be designed for specific queries, not for mass reads (performance?). Let alone the pricing - I assume none of the providers would be happy about a nightly X Gigabyte data export via their REST API, so their probably will be a price tag.
I just couldn't find any specific information on this topic so far, so I was wondering if anyone else has already gone through this. Also, any suggestions on StackMob/parse alternatives are welcome, especially if related to the data export topic.
Cheers, Alex
Did you see the section of the Parse REST API on Batch operations? Batch operations reduce the number of API calls needed to grab data so that you are not using a call for every row you retrieve. Keep in mind that there is still a limit (the default is 100, but you can set it to a maximum of 1000). That means you are still limited to pulling down 1000 rows per API call.
I can't comment on StackMob because I haven't used it. At my present job, we are using Parse and we wrote a C# app which compares the data in a Parse class with a SQL table and pulls down any changes.

Looking for an email/report templating engine with database backend - for end-users

We have a number of customers that we have to send monthly invoices too. Right now, I'm managing a codebase that does SQL queries against our customer database and billing database and places that data into emails - and sends it.
I grow weary of maintaining this every time we want to include a new promotion or change our customer service phone numbers. So, I'm looking for a replacement to move more of this into the hands of those requesting the changes.
In my ideal world, I need :
A WYSIWYG (man, does anyone even say that anymore?) email editor that generates templates based upon the output from a Database Query.
The ability to drag and drop various fields from the database query into the email template.
Display of sample email results with the database query.
Web application, preferably not requiring IIS.
Involve as little code as possible for the end-user, but allow basic functionality (i.e. arrays/for loops)
Either comes with it's own email delivery engine, or writes output in a way that I can easily write a Python script to deliver the email.
Support for generic Database Connectors. (I need MSSQL and MySQL)
F/OSS
So ... can anyone suggest a project like this, or some tools that'd be useful for rolling my own?
(My current alternative idea is using something like ERB or Tenjin, having them write the code, but not having live-preview for the editor would suck...)
I think your looking for a reporting tool which is also capable of sending email. Sending a generared report in html or pdf shouldn't be to hard to do as well.
I've used JasperReports in the past for which I think it should fit your needs.
Another good solution is the pentaho reporting tool
You could easily write something on your own.. give them a basic edit control and allow them to use psuedo variables like {customername} {anothercustomerattribute} within the mail body.
On submit either send directly or save as template.
When the template is sent away the script automatically parses stuff like {customername} into the real customers name from the database.
Your own very very simple custom scriptlanguage :)
Everything else like loops and so on would be maintained on serverside. And if you want particular groups of customers to receive the letter, allow the enduser to select from selectboxes or whatever and do the rest on the serverside with pre-defined rules.