3 Replies Latest reply on Jul 15, 2007 5:39 PM by harpritt

    Trouble with my Business Prosse scoped Data

    harpritt

      Hi everyone

      ... im drowning again

      2 weeks into SEAM and im loving it....but im find this problem a bit much for me, any help is appreciated.

      Ive basically taken the "ticketing" example and moded it for my change request system.

      i use the @Create to populate my changerequest object by using the changeRequestId that i have bound to the business scope.... only problem is that changeRequestId is never anything but null..... im really stuck and am in noob hell





      
      
      @Stateful
      @Name("ticketSystem")
      @Conversational
      public class TicketSystemAction implements TicketSystem {
      
       @In(required = false)
       @Out(required = false)
       ChangeRequest changerequest;
      
      
       @In(required = false)
       @Out(scope = BUSINESS_PROCESS, required = false)
       String changeRequestId;
      
       @In(required = false)
       GsmsMetaData gsmsMetaData;
      
       @In(required = false)
       NewGSMSData newGsmsData;
      
       @In(required = false)
       RequestState requestState;
      
       @In(required = false)
       RequestReference requestReference;
      
       @In
       User user;
      
       @Create
       public void getChangeRequestId() {
       if (changerequest == null) {
       changerequest = getChangeRequestDAO().findCrById(Integer.parseInt(changeRequestId));
       }
       }
      
       @Begin
       public String newTicket() {
       if (changerequest.getCrAction().equals("EDIT")) {
       return "editdoc";
       }
       if (changerequest.getCrAction().equals("NEW")) {
       return "newdoc";
       }
       if (changerequest.getCrAction().equals("MOVE")) {
       return "movedoc";
       }
       if (changerequest.getCrAction().equals("DELETE")) {
       return "deletedoc";
       }
       if (changerequest.getCrAction().equals("OTHER")) {
       return "other";
       }
       //throw exception
       return "home";
       }
      
       @End
       @CreateProcess(definition = "changerequestprocess")
       public String submitTicket() {
      
       // here is what we take what we have from the client and turn it into a change request
      
       //Need to persist the request ref before we create the CR.
       if (requestReference == null) {
       requestReference = new RequestReference();
       requestReference.setReferenceId("IDREQUIRED");
       getChangeRequestDAO().saveReqRef(requestReference);
       } else {
       getChangeRequestDAO().saveReqRef(requestReference);
       }
      
      
       StateFileAttachment fileAtt = new StateFileAttachment();
      
       //TODO GET PRINCIPLE
       changerequest.setCrEditor(user.getUsername());
       changerequest.setCrApprover("Barrie");
      
       //This will be defined later when amaniel takes the change request
       //and adds it to his tasklist
       //changerequest.setCrProcessor("Amaniel");
      
       //crs1.setCrReason("Hate the content");
       //crs1.setCrTargetAudience("everyone");
       //crs1.setCrTargetAudienceReviewalUrgency("not really");
       //crs1.setCrAction("EDIT");
      
       changerequest.getRequestStates().add(requestState);
      
       //reqState.setReqStateDetail("Change this to that");
       java.util.Date today = new java.util.Date();
       requestState.setReqStateTimestamp(new java.sql.Timestamp(today.getTime()));
      
       //TODO
       requestState.setReqStateEditor(user.getUsername());
       requestState.setChngRequest(changerequest);
       requestState.getReqStateFileAttachments().add(fileAtt);
       requestState.getNewData().put(newGsmsData.getReqReference(), newGsmsData);
       requestState.setReqStateType(StateType.SUBMITTED);
      
       newGsmsData.setReqReference(getChangeRequestDAO().findReqRefByReferenceId(requestReference.getReferenceId()));
       newGsmsData.setReqState(requestState);
       newGsmsData.getDocumentMetaData().put("keywords", gsmsMetaData.getDataValue());
      
       fileAtt.setFileAttName("Name");
       fileAtt.setFileAttPath("Path");
       fileAtt.setReqState(requestState);
      
      
       changeRequestId = getChangeRequestDAO().saveCr(changerequest) + "";
      
      
       return "home";
       }
      
      .......... More and more
      



      PS is it ok for a class to work in both business and conversational contexts?

      Many Many Many Thanks

      Lasard..... police academy