I am looking for a a form builder - forms

I am searching for a form builder that completes the following requirement.
It should have API to handle form submission. Meaning I can submit data from an API as well, mainly for bulk entries as selecting multiple values and pressing submit button takes a lot of time. So a way through which we can either import some csv/xlsx file into the database directly. Let me explain this situation, suppose I am a manager and I have to evaluate 5 staff members on 15 skill levels. This means that I will have to click on submit button and wait for page refresh for 5 * 15 = 75 times and not just that, I will have to select the same values multiple times. This is a huge interface problem. In short a tabular form in which if I have to create a new entry I will press a button "Add New Row" or Delete the current row and once I am done with this tabular form, I will press the submit button once and my time & data will be saved.
Also API's for getting the stored data so I can use this data for other purposes as well like Visualizing with Microsoft Power BI.
It should also be able to create some reports from that data or have Microsoft Power BI connectors so I can generate reports from that myself. Jotforms creates reports based on the submitted form data. Form.io provides API for accessing the submitted data
It should have a feature for creating resources. Example:- As a form creator I don't want to be manually entering all my staff member names or skills into the dropdown, instead this should come dynamically. Form.io does that.
Also the forms and reports must be protected from SSO.
What I have done so far?
Tried form.io which gives me the ability to create resources and forms. The ability to access and store data through API. But the problem is I cannot submit multiple records with one POST request and it also has no feature of creating reports
Tried JotForms which can create promising reports but there is no
functionality to create resources and access those into other forms.
Tried Custom Tool but this will take a lot of time in development, testing, reviews so I want to opt for an already crafted and maintained by an enterprise tool.
Every Suggestion is Appreciated.

Related

API Call Returns Numerous Sheets but None That I Need

My use case at high level is - get the sheet out of Smartsheet via API (with GET), transform data in a ETL tool and load into a relational db for further manipulation and reporting.
All I'm trying to do is retrieve data for sheets that have been shared with me (a couple as Viewer, 2 as Editor (cannot edit), 2 as Editor (can edit) and 2 as Owner). I'm making a pretty basic API call to get a list of sheets https://api.smartsheet.com/2.0/sheets (with auth token and other header attrs) and the problem is that I'm getting all kinds of sheets back (~18,000) in the results but none are the ones I need (see above).
What am I doing wrong?
Thank you!
P.S. Using specific sheet IDs is not going to be feasible as I won't know them when extracting data anyways. Another thing - I will be filtering out the sheets I don't need with the ETL tool's help anyways, just need to understand why the ones I'm after aren't coming back since I'm using the token of that user.
The command https://api.smartsheet.com/2.0/sheets?includeAll=true will return every sheet that you can access.

Angular 4 - Saving form data of highly complex form

We have highly complex form in Angular 4 and we want to be able to save form data as an object to be able to send to our DB and also to external APis in json.
Form has tabbed form wizard format and each tab had lot of form controls and each tab itself is very complex.
So we plan to create a data service where at each step, we plan to put data in an object, and keep updating as we nagivate till the end. If user clicks save drafts at any time in form wizard, current state of form data object will go in DB.
Form next, previous work same way, retrieve or updating form data object.
When saving form or submitting form, we will have post http call to backend.
Is there any better approach to achieve this? or we are following right direction. Any examples will be great.
No better approach. You put your complete model in the service. Than create sub-models inside that model that correspond to your individual tabs. In each component, get the model from the service, and keep updating the appropriate model for the tab you are on.

Can end user write data back to database?

Is it possible to allow a JasperReports/JasperReports Server end user to write data back to the source database? For example, if a user is viewing a report that lists customer information, could the report be designed to allow the user to edit or write to a database field, such as a "Notes" field?
In general the answer to this is no - it's a reporting tool. If you have Jasperserver embedded into your web app you could have an html form which allows writing to the db and you may be able to link this to a report manually. If you really wanted to hack something together you could probably use a hyperlink to the backend and pass the note in as a parameter but this isn't what the tool is designed to do.

How to show campaign based on data tracked/reported by adobe sitecatalyst?

We are implementing SiteCatalyst on flat HTML files. There is a requirement where we need to show campaigns based on the data that we reported from Analytics. e.g. There is a form having multiple fields. If user have not filled the form/or filled the form, we will track this event and report it to omniture. Now if he presses back button without filling the form completely, we need to show him some campaign/offers. The same will happen when he presses the submit button only the campaign will be different this time. Can this be achieved ? Can we integrate sitecatalyst and campaigning ?
I know that the vice-versa is possible. We can track campaigns and report the campaign id's. But is there any way to display offers based on the analytics data. That too in real time.
Any help would be great !
Thanks in advance.
It sounds like what you are looking for is Adobe Target.
Adobe Target is a tool that allows you to do AB/MV testing, but also target visitors by set rules and criteria.
Very simple example:
"If user came from foo.com, show <h1>foo</h1>. If user came from bar.com, show <h1>bar</h1>"
There is a level of integration between Adobe Target and Adobe Analytics. However, it is not real-time for data that has already been collected.
For example, if you have logic that pops s.prop10 on page with "foo" then that can be integrated with Adobe Target and you can setup a rule that says something like "If s.prop10 is 'foo' then show '<h1>foo</h1>'".
But, it does not let you make a rule like "if prop10 was 'foo' for this visitor at any point in the time in the past, show '<h1>foo</h1>'". In other words, there is no real-time evaluation of data already collected on Adobe's servers.
But, if you were simply wanting to make rules based off the current visit, you can store information in cookies look at cookies to make rules in Adobe Target easy enough.
Also note that there are no built-in tools or hooks or methods etc.. for the actions you described. For example, there's no way to natively say in Adobe Target (or Adobe Analytics) "If a visitor clicks the back button or does this other action, track that". You need to write your own code to define those actions and trigger relevant tracking code at relevant times. Adobe Analytics (and other tracking tools) can help automate some basic stuff like simple link clicks or form field focusing - IOW direct 1:1 actions, but baking in complex actions like that is not feasible for a tracking tool, because every site and scenario is unique.
I guess the TL;DR here is that there is no magic wand for this sort of thing, not for Adobe or any other analytics/tracking tool; you're going to have to write your own code (be it server-side, client-side, or mix of both) to meet your business needs.
You can use Reporting API exposed by adobe sitecatalyst.
Through the Reporting API, you’re able to access the reports generated for your Form events. If you’re using SiteCatalyst 15, you’ll be able to generate reports based on segments also. Recently the Reporting API was updated and given the ability to perform multi-level breakdowns across reports. For more information on this method, go to the API documentation within the Adobe Developer Connection.
Sample Real time access API:
// Real-Time Report
// Note the inclusion of "source" equals "realtime"
// Make sure you configure Real-Time reports for the report suite
https://api.omniture.com/admin/1.4/rest/?method=Report.Run
{
"reportDescription": {
"source": "realtime",
"reportSuiteID": "rsid",
"metrics": [
{ "id": "revenue" }
]
}
}

Lotus Notes how to get a calculated value from another form using formula language

I have Lotus Notes application, deployed only as modifications (new forms, views, and adding a button to one of the "standard" views) in the main mail template (R7).
All these "new" forms and views are inherited in turn from my main application template.
Now, for one of these forms to function properly, it have to have a field, which is different from customer (not end user, but organization) to customer.
I do not want to break the inheritance from our template, so we can update the application easily by just sending a new template. So, I can't ask the client admin just to break the inheritance for this particular form, as it will stop all updates (or they have to be done manually).
So, let's say I have MainAppForm, which has a calculated field ClientCustomData. I'd like to have another form, which only has only one "default" field ClientCustomData. I can break the inheritance for this second form, as it has no really design elements which may change, and then the client can modify this default value to whatever they need w/o fearing that it'll be overwritten.
The question is - how from MainAppForm I can read the value from the other form?
Or - is there a way to store 2 data elements only in a mail template (I dunno, shared file, or something), so it becomes available to each user, and MainAppForm can get them, w/o a need to remove the inheritance dependency of MainAppForm from our template.
I can envision even a class library with just to functions to return this (I don't know why this approach smells to me).
Any best practices or advices?
I'm not sure if I have understood your querstion correctly, but it sounds like you want to have a small part of a larger form configurable per client. If this is the case, I think computed subforms could do the trick.
Consider the following scenario: Your application ships with the subform ClientCustomData that contains just sensible defaults for the client settings. The form MainAppForm includes this as a computed subform. It is then possible for the local admin to disable inheritance on the subform and changing the custom data without affecting inheritance on MainAppForm.
The obvious drawback is that you cannot update the ClientCustomData subform automatically once inheritance is disabled; Keep this subform as small as possible. If you find that you need more client-custom values, you can always add another subform in the same manner.
First a clarification: In Lotus Notes, you don't have forms reading from other forms. Forms are just UI objects. However, you do have back-end and front-end documents that get created with the help of Forms.
When you create a new document based on a form (for instance, a new email), you are creating a front-end document that hasn't been saved yet. That document can access other parts of itself or it can access any back-end document that has been saved.
If I'm following you correctly, you need some bit of data that is different per client/customer to be brought into documents based on MainAppForm. There are a few ways to do that. My suggestion is to use Database Profiles, which are special documents that can easily be accessed from anywhere in your database via Notes Formula language or LotusScript. Granted, you can't push data within those documents out via a template, but if you use a database profile to store your database settings your client admin can set options once and they won't get altered when the template changes.
Have a look at the #SetProfileField and #GetProfileField functions.
To answer my own question (still I do not know if I'm right in terms of Notes way of thinking, but looks promising):
I found the "Shared fields". So, I create 2 such a fields with a computed values (the ones I want to pass on), and make my MainAppForm use them. Upon installation, the admin will change the values and mark them to not refresh with the template.
I'd respect any pros and cons, provided from a Notes expert.
Thanks