Yeah, I see what you’re saying. That’s why I mentioned in my first that the component contains things that I wouldn’t want to do by hand. I’ll have to examine the component and remind myself of which WOComponents require a session. I may be able to replace bits and pieces.
Tim Worman UCLA GSE&IS > On Apr 23, 2015, at 3:56 PM, Chuck Hill <[email protected]> wrote: > > I think you are missing my point. It is not ERMailUtils.instantiatePage that > is creating a session, it is the content of your component. The component > you are e-mailing is using component actions, or referencing > session.something, that is why it is creating a session (I think, this is > what the cause usually is). You can log out a stack trace (new > RuntimeException(“Session Created HERE”).printStackTrace() ) in the session > constructor to see why and where they are being created. If you examine the > component you should be able to see what needs to be changed. If you are > mailing out component actions, the recipients are not going to be able to use > them. > > Chuck > > > On 2015-04-23, 3:47 PM, "Timothy Worman" wrote: > > Hi Chuck! > > The component that is being emailed isn’t being sent as the result of a user > action. It is being sent as part of a quartz job. For a bunch of fetched > EO’s, their global ID’s are passed to a method that uses > ERMailUtils.instantiatePage to create an instance of the component for each > EO. This all happens outside of userland. > > One thing I did was add Session.terminate in the finally block after > > try {_mailDelivery.sendEmail()} > > is called. Not sure if that is necessary. > > Tim Worman > UCLA GSE&IS > > > On Apr 23, 2015, at 3:07 PM, Chuck Hill <[email protected]> wrote: > Hi Tim, > It is probably because your email is using component actions instead of > direct actions. Component actions require a session and are definitely not > what you want in an email. For WOHyperlink, as an example, you need to bind > directActionName instead of action. > Chuck > On 2015-04-23, 12:25 PM, "Timothy Worman" wrote: > In my app I am tracking session creation - as a way to sniff out some issues > I’ve had with some going stray. Anyhow, I am sending NSArray<EOGlobalID> to a > background task that sends emails using ERMailDeliveryHTML. These are > component based emails. > Low and behold, each and every one creates a new session. Certainly I > understand why this could/would happen depending on the contents of the > component/page. > I am most curiouser about what approaches decent WO folk might use to avoid > this. This is how I’m abusing things: > for(Object aPersonGlobalIdObject : approverIds.toArray()) { > EOGlobalID aGlobalID = (EOGlobalID)aPersonGlobalIdObject; > MyComponent _component = (MyComponent) > ERMailUtils.instantiatePage("MyComponent", null); > _component.setGlobalId(aGlobalID); > try { > _component.sendThisComponentToPerson(); > } > other stuff…. > } > I had thought ERMailUtils.instantiatePage was made for doing this without > creating a session? But I must have fooled myself. > Tim Worman > UCLA GSE&IS > > _______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [email protected]
