You must login to post on this forum, if you are not already registered please fill in the registration form.
If you appreciate the work the OpenQuote team is doing, please give the project a "Thumbs up" on SourceForge, thank you.
- Index
- » User Forums
- » Insurance Product Development
- » pageworkflow problems
pageworkflow problems
pageworkflow problems
Hello. I would like to remove saved quotation from Welcome page to my custom. and I can't do that. I comment line <!-- <savedQuotations id="SavedQuotes" requoteDestinationPageId="LocationPage"/> --> but they are present any wey
Also my requte , confirm and pay, document buttons do nothing in savedquote view.
Tel me pleas about name coventions and defoult page flow. how can i change it.
how can I manage cuotation of other users (as admin). for example search them, delete.
2)I can't change fields in proposer page I create Proposer.xml and registered it as indicated in the forum http://openquote.appliedindustriallogic.com/community-support/support-forum/topic?id=256. but nothing change.
How to bind questions in pageflow to proposer fields in proposer.xml (give an example of xpath selector).
Pleas help I add Proposer.xml, pageflow.xml, Quotation.xml, registry.xml. as ## zipt##
2012-07-16 18:39:07
Re: pageworkflow problems
Hi Yaroslav,
An important concept in OpenQuote is product inheritance. Through this mechanism a product can inherit the features of its parent, grand parent etc., making it easier to define suites of related products. This feature applies to PageFlows and, importantly, to all of the elements within a PageFlow.
Your product, I imagine, extends the Base product (check the Registry.xml to be sure). The definition of the QuotationPageFlow type within your Registry.xml probably includes something like the following: <parameter name="extends">super.QuotationPageFlow</parameter>. This tells OpenQuote to merge your product's QuotationPageFlow with the parent product's QuotationPageFlow. The result of this merge defines what you actually see one screen.
In the case of the <savedQuotations /> element, simply commenting this out in your product's PageFlow will not remove it as it is still defined in the Base product. You have some options depending on your needs:
- Merging is performed with respect to each element's ID. So an element with and ID of "X" in your PagwFlow will always override the corresponding element in the parent's PageFlow. So, you can suppress the <savedQuotations/> element by putting <blank id="SavedQuotes"/> in the welcome page of your PageFlow.
- Make your PageFlow start on another page. If you create a new page in your PageFlow which doesn't correspond to one in the parent it naturally won't inherit anything from the parent. You can then configure your PageFlow to start on your new page rather than the "Welcome" page by adding the attribute startPage="NameOfMyNewPage" to the <pageFlow/> element.
- Modify the Base product and remove the <savedQuotations/> element from it's page definition. This has the effect of removing it from all products which inherit from Base, unless they define it locally too. Make sure you clear the cache after removing it because changes to the base product don't automatically trigger a cache clear.
The effect of the Requote, Confirm and Pay, and Document buttons are defined in the PageFlow's <quotationSummary/> element. Have a look at the Motor Plus demo product to see how they are configured. They simply define the page name that the PageFlow should jump to when the buttons are selected. The Document button is different. This will cause the quotation PDF document to be generated and streamed to the browser. For this to work you will need to have defined a quotation document template. Have a look in Motor Plus again for an example, specifically in the product's Documents sub folder.
If the default proposer page doesn't meet your needs, then you need to define a new page in your PageFlow to specify the layout that you want. Within the PageFlow this will look like any other page, only the bindings will be different. If you have followed the example in the other post, you would be using XPaths in your questions in the form: /proposer/attribute[id='gender'], and /proposer/attribute[id='firstName'], etc.
To answer your question about managing quotations and performing operations like deleting them, OpenQuote doesn't (at least in 1.4) provide that kind of interface - beyond the <saveQuotations/> element which you already know of. The concept for 1.4 is that OpenQuote produces quotations and sends them (via email or other services) to back-office systems that take care of all the administration of quotations from then on. You wouldn't generally want to delete quotations that have been issued because you're likely to be corporately (or legally) required to retain copies, but you could archive them easily enough directly from the OpenQuote database. There are only two tables associated with quotation data so it should be reasonably easy to implement something like that.
Regards,
Dick.
Re: pageworkflow problems
Thank you very much. it help me. But I still can't make my Requote, Confirm and Pay, and Document buttons work in saveQuotes view. id specify page ideas <savedQuotations id="SavedQuotesMY" requoteDestinationPageId="LocationPage" confirmAndPayDestinationPageId="Proposer"/>.
Please take a look.
<?xml version="1.0" encoding="UTF-8"?>
<pageFlow id="QuotationPageFlow" xsi:type="java:com.ail.openquote.ui.PageFlow" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<questionPage id="Welcome" title="Welcome to the AON quotation wizard">
<!-- <action id="Initialise" when="onRenderResponse" commandName="InitialiseNewBusiness"/> -->
<blank id="SavedQuotes"/>
<!-- <action when="onRenderResponse" commandName="InitialiseQuotationCommand"/> -->
<parsedUrlContent id="Content" url="~/HTML/Welcome.html"/>
<navigationSection id="Navigation" order="1" quitDisabled="true">
<commandButtonAction id="Quote" label="Start a New Policy Application" destinationPageId="LocationPage"/>
<commandButtonAction id="ViewPolicyBotton" label="View Policy Application" destinationPageId="ViewPolicyApplication"/>
<commandButtonAction id="ManagePolicyButton" label="Manage Current Policy" destinationPageId="ManageCurrentPolicy"/>
</navigationSection>
</questionPage>
<questionPage id="ViewPolicyApplication" title="View Policy Application">
<savedQuotations id="SavedQuotesMY" requoteDestinationPageId="LocationPage" confirmAndPayDestinationPageId="Proposer"/>
<navigationSection>
<commandButtonAction label="Previous" destinationPageId="Welcome" immediate="true"/>
</navigationSection>
</questionPage>
<questionPage id="ManageCurrentPolicy" title="Manage Current Policy">
<navigationSection>
<commandButtonAction label="Previous" destinationPageId="Welcome" immediate="true"/>
</navigationSection>
</questionPage>
<questionPage id="LocationPage" title="Location of Risk to be Insured">
<questionSection title="Some questions to help us:" binding="/asset[id='locationAsset']">
<question title="Enter State" binding="./attribute[id='state']"/>
<question title="Enter County" binding="./attribute[id='county']"/>
<question title="Enter City" binding="./attribute[id='city']"/>
<question title="Enter Street Adress" binding="attribute[id='street']"/>
<question title="Enter ZIP Code" binding="./attribute[id='zip']"/>
<question title="Enter Territory Code" binding="./attribute[id='tcode']"/>
<question title="Enter Protection class" binding="./attribute[id='protectionclass']"/>
<question title="Enter BCEG Code" binding="./attribute[id='bcegCode']"/>
<question title="Enter Flood zone" binding="./attribute[id='floodzone']"/>
</questionSection>
<parsedUrlContent id="Content" url="~/HTML/Map.html"/>
<navigationSection>
<commandButtonAction label="Previous" destinationPageId="Welcome" immediate="true"/>
<commandButtonAction label="Next" destinationPageId="RiskPage"/>
</navigationSection>
</questionPage>
<questionPage id="RiskPage" title="Risk Description">
<questionSection title="${/asset[id='locationAsset']/attribute[id='street']/value} ${/asset[id='locationAsset']/attribute[id='city']/value} ${/asset[id='locationAsset']/attribute[id='state']/value} ${/asset[id='locationAsset']/attribute[id='zip']/value}">
</questionSection>
<questionSection title="" binding="/asset[id='propertyAsset']">
<question title="Year built" binding="./attribute[id='yearbuild']"/>
<question title="Construction type" binding="./attribute[id='Constructiontype']"/>
<question title="Number of stories" binding="./attribute[id='Numberofstories']"/>
<question title="Number of family units" binding="./attribute[id='Numberoffamilyunits']"/>
<question title="Burglar alarm" binding="./attribute[id='Burglaralarm']"/>
<question title="Fire alarm/sprinklers" binding="./attribute[id='Firealarmsprinklers']"/>
<question title="Seasonal property" binding="./attribute[id='Seasonalproperty']"/>
<question title="Roof shape" binding="./attribute[id='Roofshape']"/>
<question title="Roof covering" binding="./attribute[id='Roofcovering']"/>
<question title="Roof-deck attachment" binding="./attribute[id='Roofdeckattachment']"/>
<question title="Roof-wall connection" binding="./attribute[id='Roofwallconnection']"/>
<question title="Secondary water resistance" binding="./attribute[id='Secondarywaterresistance']"/>
<question title="Opening protection" binding="./attribute[id='Openingprotection']"/>
</questionSection>
<navigationSection>
<commandButtonAction label="Previous" destinationPageId="LocationPage" immediate="true"/>
<commandButtonAction label="Next" destinationPageId="PolicyPage" />
</navigationSection>
</questionPage>
<questionPage id="PolicyPage" title="Policy">
<questionSection title="${/asset[id='locationAsset']/attribute[id='street']/value} ${/asset[id='locationAsset']/attribute[id='city']/value} ${/asset[id='locationAsset']/attribute[id='state']/value} ${/asset[id='locationAsset']/attribute[id='zip']/value}">
</questionSection>
<questionSection title="Some questions to help us:" binding="/asset[id='policyAsset']">
<question title="Policy Form " binding="./attribute[id='PolicyForm']"/>
<question title="Wind deductible" binding="./attribute[id='Winddeductible']"/>
<question title="AOP deductible " binding="./attribute[id='AOPdeductible']"/>
<question title="Inception date " binding="./attribute[id='Inceptiondate']"/>
<question title="Expiration date " binding="./attribute[id='Expirationdate']"/>
<question title="Wind excluded? " binding="./attribute[id='Windexcluded?']"/>
<question title="Sinkhole coverage? " binding="./attribute[id='Sinkholecoverage?']"/>
<question title="Dwelling " binding="./attribute[id='Dwelling']"/>
<question title="Other structures " binding="./attribute[id='Otherstructures']"/>
<question title="Personal property " binding="./attribute[id='Personalproperty']"/>
<question title="Loss of use " binding="./attribute[id='Lossofuse']"/>
<question title="Personal liabiity each occ " binding="./attribute[id='Personalliabiityeachocc']"/>
<question title="Medical payments each per " binding="./attribute[id='Medicalpaymentseachper']"/>
<question title="Screen Encl limit " binding="./attribute[id='ScreenEncllimit']"/>
<question title="Ordinance or Law " binding="./attribute[id='OrdinanceorLaw']"/>
<question title="Replacement cost " binding="./attribute[id='Replacementcost']"/>
</questionSection>
<rowScroller binding="/asset[id='endorsementAsset']" type="EndorsementAsset" minRows="3" maxRows="8">
<attributeField title="Endorsements" binding="./attribute[id='Endorsements']"/>
</rowScroller>
<navigationSection>
<commandButtonAction label="Previous" destinationPageId="RiskPage" immediate="true"/>
<commandButtonAction label="Quote" destinationPageId="Referral">
<action when="onProcessActions" commandName="PremiumCalculation"/>
<pageForwardAction when="onProcessActions" condition="m:test(status[.='QUOTATION'])" destinationPageId="Quotation"/>
</commandButtonAction>
</navigationSection>
</questionPage>
<informationPage id="Quotation">
<quotationSummary termsAndConditionsUrl="~/HTML/TermsAndConditions.html" requoteDestinationPageId="LocationPage" saveDestinationPageId="Welcome" confirmAndPayDestinationPageId="Proposer">
<!-- <answerScroller binding="/asset[id='endorsementAsset']" title="Policy">
<question title="Endorsements" binding="./attribute[id='Endorsements']"/>
</answerScroller>-->
<navigationSection>
<saveButtonAction destinationPageId="Welcome"/>
<requoteButtonAction destinationPageId="LocationPage"/>
<commandButtonAction id="Confirm and Pay" label="i18n_confirm_and_pay_button_label" destinationPageId="Proposer"/>
<commandButtonAction label="Supplemental Information" destinationPageId="SupplementalInfo"/>
</navigationSection>
</quotationSummary>
</informationPage>
<questionPage id="SupplementalInfo" title="Supplemental Information">
<answerSection title="Summary of your cover">
<answer title="Start date" binding="/inceptionDate"/>
<answer title="End date" binding="/expiryDate"/>
</answerSection>
<questionSection title="Insured Location ${/asset[id='locationAsset']/attribute[id='street']/value} ${/asset[id='locationAsset']/attribute[id='city']/value} ${/asset[id='locationAsset']/attribute[id='state']/value} ${/asset[id='locationAsset']/attribute[id='zip']/value}" />
<answerSection title="Summary of answers">
<answerScroller binding="/asset[id='locationAsset']" title="Summary of answers">
<answer title="Enter State" binding="./attribute[id='state']"/>
<answer title="Enter County" binding="./attribute[id='county']"/>
<answer title="Enter City" binding="./attribute[id='city']"/>
<answer title="Enter Street Adress" binding="attribute[id='street']"/>
<answer title="Enter ZIP Code" binding="./attribute[id='zip']"/>
<answer title="Enter Territory Code" binding="./attribute[id='tcode']"/>
<answer title="Enter Protection class" binding="./attribute[id='protectionclass']"/>
<answer title="Enter BCEG Code" binding="./attribute[id='bcegCode']"/>
<answer title="Enter Flood zone" binding="./attribute[id='floodzone']"/>
</answerScroller>
<answerScroller binding="/asset[id='propertyAsset']" title="Properties">
<answer title="Year built" binding="./attribute[id='yearbuild']"/>
<answer title="Construction type" binding="./attribute[id='Constructiontype']"/>
<answer title="Number of stories" binding="./attribute[id='Numberofstories']"/>
<answer title="Number of family units" binding="./attribute[id='Numberoffamilyunits']"/>
<answer title="Burglar alarm" binding="./attribute[id='Burglaralarm']"/>
<answer title="Fire alarm/sprinklers" binding="./attribute[id='Firealarmsprinklers']"/>
<answer title="Seasonal property" binding="./attribute[id='Seasonalproperty']"/>
<answer title="Roof shape" binding="./attribute[id='Roofshape']"/>
<answer title="Roof covering" binding="./attribute[id='Roofcovering']"/>
<answer title="Roof-deck attachment" binding="./attribute[id='Roofdeckattachment']"/>
<answer title="Roof-wall connection" binding="./attribute[id='Roofwallconnection']"/>
<answer title="Secondary water resistance" binding="./attribute[id='Secondarywaterresistance']"/>
<answer title="Opening protection" binding="./attribute[id='Openingprotection']"/>
</answerScroller>
<answerScroller binding="/asset[id='policyAsset']" title="Policy">
<answer title="Policy Form " binding="./attribute[id='PolicyForm']"/>
<answer title="Wind deductible" binding="./attribute[id='Winddeductible']"/>
<answer title="AOP deductible " binding="./attribute[id='AOPdeductible']"/>
<answer title="Inception date " binding="./attribute[id='Inceptiondate']"/>
<answer title="Expiration date " binding="./attribute[id='Expirationdate']"/>
<answer title="Wind excluded? " binding="./attribute[id='Windexcluded?']"/>
<answer title="Sinkhole coverage? " binding="./attribute[id='Sinkholecoverage?']"/>
<answer title="Dwelling " binding="./attribute[id='Dwelling']"/>
<answer title="Other structures " binding="./attribute[id='Otherstructures']"/>
<answer title="Personal property " binding="./attribute[id='Personalproperty']"/>
<answer title="Loss of use " binding="./attribute[id='Lossofuse']"/>
<answer title="Personal liabiity each occ " binding="./attribute[id='Personalliabiityeachocc']"/>
<answer title="Medical payments each per " binding="./attribute[id='Medicalpaymentseachper']"/>
<answer title="Screen Encl limit " binding="./attribute[id='ScreenEncllimit']"/>
<answer title="Ordinance or Law " binding="./attribute[id='OrdinanceorLaw']"/>
<answer title="Replacement cost " binding="./attribute[id='Replacementcost']"/>
</answerScroller>
</answerSection>
<navigationSection>
<saveButtonAction destinationPageId="Welcome"/>
<commandButtonAction label="Previous" destinationPageId="Quotation" immediate="true"/>
</navigationSection>
</questionPage>
<questionPage id="PolicySearch" title="Policy Search">
<questionSection title="Filter on policy status ${/asset[id='locationAsset']/attribute[id='zip']/value}" />
<questionSection title="Retrieve policy applicant. Search on" />
<questionSection title="Applicant name" />
<questionSection title="Policy number" />
<questionSection title="Address" />
<questionSection title="Telephone number" />
<navigationSection>
<commandButtonAction label="Return" destinationPageId="Welcome" immediate="true"/>
<commandButtonAction label="Search" destinationPageId="Welcome" immediate="true"/>
</navigationSection>
</questionPage>
<questionPage id="Referral" title="Referral">
<referralSummary referralNotificationUrl="~/HTML/ReferralNotification.html" requoteDestinationPageId="QuestionPage">
<answerSection title="Summary of your cover">
<answer title="Start date" binding="inceptionDate"/>
<answer title="End date" binding="expiryDate"/>
</answerSection>
<!-- <answerSection title="Summary of answers">
<answer binding="/asset" xsi:type="answerScroller">
<answer title="Enter Street Adress" binding="attribute[id='street']"/>
<answer title="Enter City" binding="attribute[id='city']"/>
<answer title="Year built" binding="attribute[id='yearbuild']"/>
<answer title="Construction type" binding="attribute[id='Constructiontype']"/>
</answer>
</answerSection> -->
</referralSummary>
</questionPage>
<questionPage id="Proposer" title="Contact Details">
<navigationSection id="Navigation">
<commandButtonAction id="Next" destinationPageId="CollectPaymentDetails"/>
</navigationSection>
</questionPage>
<questionPage id="CollectPaymentDetails" title="Payment Details">
<action when="onRenderResponse" commandName="AssessPaymentOptions"/>
</questionPage>
<questionPage id="Finish" title="Thank you">
<action when="onRenderResponse" commandName="AddPolicyNumberAction"/>
<parsedUrlContent id="ThankYou" url="~/HTML/Thankyou.html"/>
<navigationSection id="Navigation" order="2" quitDisabled="true">
<viewQuotationButtonAction label="View quotation document" order="0"/>
<!-- Commented out for 1.4, reinstate for 2.0
<viewCertificateButtonAction label="View certificate document" order="0"/>
<viewWordingButtonAction label="View wording document" order="0"/>
<viewInvoiceButtonAction label="View invoice document" order="0"/>
-->
</navigationSection>
</questionPage>
Re: pageworkflow problems
The PageFlow itself looks fine from what I can see, so the problem must lie elsewhere. Do you get any errors on the console when you select those buttons? If not, perhaps you could export the whole of your product and upload it here? Then I can try to reproduce the problem.
Regards,
Dick.
Re: pageworkflow problems
hello I would like to ask what cache did you mean to clear. (brouser cache?)
" Make sure you clear the cache after removing it because changes to the base product don't automatically trigger a cache clear."
One more question (sory but my deadline is close).
I try to configure email notification. I edited my workflow to contain
<questionPage id="Finish" title="Thank you">
<action when="onRenderResponse" commandName="AddPolicyNumberAction"/>
<action id="SendBrokerNotification" when="onRenderResponse" commandName="SendBrokerEmailNotificationAction"/>
<action id="SendProposerNotification" when="onRenderResponse" commandName="SendProposerEmailNotificationAction"/>
<parsedUrlContent id="ThankYou" url="~/HTML/Thankyou.html"/>
<navigationSection id="Navigation" order="2" quitDisabled="true">
<viewQuotationButtonAction label="View quotation document" order="0"/>
<!--
Commented out for 1.4, reinstate for 2.0 <viewCertificateButtonAction label="View certificate document" order="0"/> <viewWordingButtonAction label="View wording document" order="0"/> <viewInvoiceButtonAction label="View invoice document" order="0"/>
-->
</navigationSection>
and add to registry.xml this:
<group name="SMTPServerProperties">
<parameter name="mail.smtp.host">smtp.gmail.com</parameter>
<parameter name="mail.smtp.port">587</parameter>
<parameter name="mail.smtp.auth">true</parameter>
<parameter name="mail.smtp.starttls.enable">true</parameter>
<parameter name="mail.smtp.user">
This e-mail address is being protected from spambots. You need JavaScript enabled to view it
</parameter>
<parameter name="mail.smtp.password">CC265618</parameter>
</group>
<types>
<command name="SendBrokerEmailNotificationAction" builder="ClassBuilder" key="com.ail.core.product.ExecutePageActionCommandImpl">
<parameter name="Service">SendBrokerEmailNotificationService</parameter>
</command>
<!--
Invoked by pageflow action to send a quotation notification to the proposer
-->
<command name="SendProposerEmailNotificationAction" builder="ClassBuilder" key="com.ail.core.product.ExecutePageActionCommandImpl">
<parameter name="Service">SendProposerEmailNotificationService</parameter>
</command>
I don't recive email on mi proposer email. (tell my how to configure referral email.)
please take a look.
Re: pageworkflow problems
Hi,
If you go into the "Product Manager" tab you'll see a icon to clear the cache in the configure portlet. In effect it causes OpenQuote to clear all it's in memory copies of Registries and anything associated with them (liked cached rules).
On the email subject, are you running an instance of OpenQuote that you have built from source? I ask because configuring it using the SMTPServerProperties group is a feature which is currently only available if you build from source. Let me know on that question, and I'll dig some more.
When you call the SendBrokerNotification service the system will check the quotation's state and send either a quote or referral notification as is appropriate.
Regards,
Dick.
Re: pageworkflow problems
Hi Yaroslav,
You might be interested to know that the lastest release of OpenQuote (1.4SP1) is now available for download from source forge and it includes the support for SMTPServerProperties setting which you need in order to send quotes via gmail.
The easiest upgrade path from 1.4 is simply to unpack the distribution .zip, locate the openquote.ear file and copy it across to your existing installation.
Regards,
Dick.
- Index
- » User Forums
- » Insurance Product Development
- » pageworkflow problems
Board Info
- Board Stats:
- Total Topics:
- 141
- Total Polls:
- 1
- Total Posts:
- 517
- Total Posts Today:
- 1
- User Info:
- Total Users:
- 5297
- Newest User:
- Bicywrinc
- Members Online:
- 2
- Guests Online:
- 19
- Most Active Users:
- dickanderson, matthew.tomlinson
Forum Legend:
Topic
New
Locked
Sticky
Active
New/Active
New/Locked
New Sticky
Locked/Active
Active/Sticky
Sticky/Locked
Sticky/Active/Locked






























