Section | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Embedding Forms & Workflows for Anonymous Use
...
form/workflow embedded in your web site
If you do not require access control or authentication for other purposes, i.e. your forms are public forms on your Extranet, you can simply use built-in Share Dialog and copy and paste the code into your HTML, JSP, ASP, PHP or other web page. An example is ' s own contact form. No authentication is required and the form is completed and submitted anonymously.You You can find instructions for embedding forms and flows here.
Integrating authentication with your web application (using the
...
API)
...
...
The basic steps are shown in the above Figure. You'll need to be familiar with creating and managing tenants including creating a tenant using the Delegating Security Manager.
...
The examples below use the API to authenticate to . Before using the API, you will need to install the client libraries for your language. frevvo offers Java and .NET client libraries. The examples below use the Java client libraries; the .NET versions are very similar. Click here for instructions on installing the Java client library.
Authentication & Session Management
...
Code Block |
---|
<%@ page import="java.util.*,com.frevvo.forms.client.*,com.frevvo.forms.client.util.*" %> FormsService service = (FormsService) session.getAttribute ( "frevvo.forms.service" ); if (service == null) { service = new FormsService("http", "localhost", 8082, null); service.loginAs (request.getParameter( "username" ), tenantAdminUserId, tenantAdminPassword, true, null, request.getParameter( "firstname" ), request.getParameter( "lastname" ), request.getParameter( "email" ), null); } session.setAttribute ("frevvo.forms.service", service); |
...
Embed a form or workflow with authentication
...
Info |
---|
Make sure you have read and understood the documentation on |
...
...
. |
...
Now that you have logged in, you must use the FormsService created above to get an embed URL for the form/flow that you want to embed.<pre>
Code Block |
---|
FormTypeEntry ftEntry = (FormTypeEntry) service.getEntry( |
...
service.getEntryURL(FormTypeEntry.class, "_iAMawOa4Ed-TkpzYF5hpcQ!_MOrvYeV9Ed-6Ft_YAwCXMQ!designer"), |
...
FormTypeEntry.class); |
...
String formUrl = ftEntry.getFormTypeEmbedLink(null).getHref(); |
...
The ID is constructed using the syntax: formTypeId!applicationId!ownerId where:*
- formTypeId is the ID of the form/flow.
...
- applicatioinId is the ID of the frevvo application containing the form/flow.
...
- ownerId is the ID of the designer user who owns the form/flow.
You can find the IDs using the Share dialog for the form or flow in question. In the Figure below, the Share URL contains:<pre>
Code Block |
---|
http://localhost:8080/frevvo/web/tn/myt.com/user/designer/app/_Eo5BUQndEeCBmoiAt_ZHPg/flowtype/_BgfQgAneEeCBmoiAt_ZHPg/ |
...
popupfor |
</pre> *
- The formTypeId (in this case it is actually a flowTypeId) is _BgfQgAneEeCBmoiAt_ZHPg
...
- The application Id is _Eo5BUQndEeCBmoiAt_ZHPg
...
- The ownerId is designer
[[Image:Flow_Share_Dialog.png|frame|left|Share Flow Wizard]]
<br style="clear: both" />
Once you have the embed URL, embed it in your JSP as:<pre>
Code Block |
---|
<script src="<%= formUrl %>" type="text/javascript" language="Javascript"></script> |
...
...
Finding an existing saved form/flow
...
Info |
---|
Make sure you have read and understood the documentation on |
...
...
. |
...
...
Make sure you have read and understood the documentation on |
...
...
. |
...
If your user has a saved form/flow, you can find it and render the saved form/flow instead of creating a new one as described above.<pre>
Code Block |
---|
Map<String, Object> params = new HashMap<String, Object>(); |
...
params.put("container", true); // Creates a container (HTML table or div) around the form. |
...
params.put("center", false); // Center the container on the page if desired. |
...
params.put("resize", true); // Automatically resize the container as the form's height changes. |
...
// First, check if there is a SAVED task for the formTypeId in question. |
...
String formUrl = null; |
...
TaskFeed sFeed = service.getFeed(service.getFeedURL(TaskFeed.class), TaskFeed.class); |
...
for (TaskEntry sEntry : sFeed.getEntries()) { |
...
if (!("SAVED".equals(sEntry.getState()))) |
...
continue; |
...
if (!sEntry.getFormTypeEmbedLink(null).getHref().contains("_iAMawOa4Ed-TkpzYF5hpcQ")) |
...
continue; |
...
formUrl = sEntry.getFormTypeEmbedLink(params).getHref(); |
...
break; |
...
} |
...
if (formUrl == null) |
...
{ // No saved task found. Create a new form instance. |
...
FormTypeEntry ftEntry = (FormTypeEntry) service.getEntry( |
...
service.getEntryURL(FormTypeEntry.class, "_iAMawOa4Ed-TkpzYF5hpcQ!_MOrvYeV9Ed-6Ft_YAwCXMQ!designer"), |
...
FormTypeEntry.class); |
...
formUrl = ftEntry.getFormTypeEmbedLink(params).getHref(); |
...
} |
...
<script src="<%= formUrl %>" type="text/javascript" language="Javascript"></script> |
...