[jboss-user] [JBoss Seam] - Re: jBPM can't evaluate method

smithbstl do-not-reply at jboss.com
Tue Apr 10 17:03:55 EDT 2007


I have reworked this a bit but am still having problems getting any methods called from jPdl.  As far as I can tell, I am closely following the DVD Seam example

Here is my pageflow.jdpl.xml

<pageflow-definition 
  |     xmlns="http://jboss.com/products/seam/pageflow"
  |     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  |     xsi:schemaLocation= "http://jboss.com/products/seam/pageflow http://jboss.com/products/seam/pageflow-1.2.xsd" 
  |     name="serviceRequestCreation">
  | 
  |     <start-state name="start">
  |         <transition to="requestSearch"/>
  |     </start-state>
  |     <page name="requestSearch" view-id="/AddressLookup.xhtml">
  |         <redirect/>
  |         <transition name="viewRequests" to="requestListing">
  |             <action expression="#{requestEntry.viewRequests}"/>
  |         </transition>        
  |     </page>
  |     <page name="requestListing" view-id="/AddressRequestListing.xhtml">
  |         <redirect/>
  |         <end-conversation/>
  |     </page>
  | </pageflow-definition>

SFSB
@Stateful
  | @Name("requestEntry")
  | public class RequestEntryAction implements com.stlouiscity.csb.ejb.action.RequestEntry {
  |     
  |     @PersistenceContext(unitName="CSB_Oracle", type=EXTENDED)
  |     private EntityManager em; 
  | 
  |     @In(create=true)
  |     private Address address;
  |     
  |     @In(create=true, required=false)
  |     private AddressLookup addressLookup;
  |     
  |     @DataModel("addresses")
  |     private List<ParcelAddress> addresses;
  |     
  |     @DataModelSelection(value="addresses")
  |     @Out(required=false)
  |     private ParcelAddress selectedAddress;
  | 
  |     @DataModel("requests")
  |     private List<ServiceRequest> requests;
  |     
  |     @DataModelSelection(value="requests")
  |     private ServiceRequest selectedRequest;
  | 
  |     /**
  |      * Creates a new instance of RequestEntryAction
  |      */
  |     public RequestEntryAction() {
  |     }
  | 
  |     @Begin(join=true)
  |     public void findAddresses() {
  | 
  |         if (address.getStreetName() != null) {
  |             System.out.println("Address Is NOT NULL");
  |             //Find ParcelAddress
  |             Query q = em.createQuery("Select a From ParcelAddress a Where" +
  |                         " (a.structureAddress.nlc.streetDirection = :streetDirection OR :streetDirection IS NULL) AND" +
  |                         " (lower(a.structureAddress.nlc.streetName) LIKE :street) AND" +
  |                         " (((a.structureAddress.structureAddressPK.houseNumber = :houseNumber) OR" +
  |                         " (:houseNumber BETWEEN a.structureAddress.houseLow AND a.structureAddress.houseHigh)) OR (:houseNumber IS NULL))");
  |             q.setParameter("houseNumber",address.getHouseNumber());
  |             q.setParameter("streetDirection",address.getStreetDirection());
  |             q.setParameter("street",address.getStreetName().toLowerCase() + "%");
  | 
  |             addresses = q.getResultList();                
  |         } else {
  |             System.out.println("Address IS NULL");
  |         }         
  |     }
  |     
  |     @Begin(nested=true, pageflow="serviceRequestCreation") 
  |     public void viewRequests() {
  |         System.out.println("**********Started PageFlow*************");
  |     }    
  |     
  |     @End
  |     public void findRequests(ParcelAddress address) {
  |         System.out.println("**********Entered findRequests*************");
  |         System.out.println("**********Selected Address: " + address.toString());
  |         Query q = em.createQuery("Select s From ServiceRequest s Where" +
  |                 " s.parcelAddress.parcelAddressPK.houseNumber = :houseNumber AND" +
  |                 " s.parcelAddress.parcelAddressPK.houseSuffix = :houseSuffix AND" +
  |                 " s.parcelAddress.parcelAddressPK.nlc = :nlc AND" +
  |                 " s.parcelAddress.parcelAddressPK.cityBlock = :cityBlock AND" +
  |                 " s.parcelAddress.parcelAddressPK.parcelNumber = :parcelNumber)");
  |         q.setParameter("houseNumber", address.getParcelAddressPK().getHouseNumber());
  |         q.setParameter("houseSuffix", address.getParcelAddressPK().getHouseSuffix());
  |         q.setParameter("nlc", address.getParcelAddressPK().getNlc());
  |         q.setParameter("cityBlock", address.getParcelAddressPK().getCityBlock());
  |         q.setParameter("parcelNumber", address.getParcelAddressPK().getParcelNumber());
  |         requests = q.getResultList();      
  |     }
  |     
  |     @Remove @Destroy
  |     public void destroy() {
  |         
  |     }  


Here is the link I am using to call the Transition.  It is in the context of an h:dataTable column.

        <h:column>
  |             <f:facet name="header">
  |                 <h:outputText value="#{msgs['ServiceRequestList.action']}"/>
  |             </f:facet>
  |             <h:commandLink id="viewRequestsLink" 
  |                     action="viewRequests" 
  |                     rendered="#{not empty addressRow.requestCollection}" 
  |                     value="#{msgs['AddressList.viewRequest']}">
  |            </h:commandLink>
  |         </h:column> 

When I click the link, the page just reloads, the transition is never activated.  Its driving me nuts.

Thanks for any help

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4036132#4036132

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4036132



More information about the jboss-user mailing list