Trouble with my Business Prosse scoped Data
harpritt Jul 15, 2007 4:12 PMHi 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