Search the FirstSpirit Knowledge Base
Hallo Community,
ich habe nun bereits einige andere Einträge nach diesem Thema durchforstet und komme leider nicht zum erwünschten Ergebnis.
Ich habe die Aufgabe ein Script in FS zu erstellen das bei Rechtsklick auf einem Datenquelleneintrag ausgewählt und ausgeführt werden soll. Dabei soll eine E-Mail an verschiedene Adressen versendet werden. Die Adressen sowie Inhalte befinden sich alle im ausgewählten Datenquelleneintrag.
Ich weiß leider im Moment nicht so richtig wie ich das mit den FS Bordmitteln alles lösen kann, da ich auch noch ziemlich neu im FS Umfeld bin.
Ich möchte mich schonmal im vorraus für eure bemühungen bedanken.
VG Michael
Hi,
wie gesagt direkt im ChannelSourceProvider:
Example usage:
final TemplateStoreRoot templatestore = (TemplateStoreRoot) userService.getStore(Store.Type.TEMPLATESTORE, false);
ChannelSourceProvider csp = templatestore.getPageTemplates().getTemplate("standard");
csp.setLock(true, false);
// e.g. use default (first) template set
final TemplateSet templateSet = userService.getProject().getTemplateSets().get(0);
try {
final String source = csp.getChannelSource(templateSet);
csp.setChannelSource(templateSet, "$-- (c) e-Spirit AG 2007 --$\n" + source);
csp.save("channel source set via API", false);
} finally {
csp.setLock(false, false);
}
Hallo,
in der API gibt es den MailService:
MailService service = this.connection.getService(MailService.class);
service.sendMail(mailAdress, mailSubject, mailText);
Viele Grüße
Dennis
Hallo Dennis,
diese Möglichkeit hatte ich auch schon gefunden. Leider bekomme ich eine ClassNotFoundException.
Ich dachte mir, dass das eventuell an der FS Version liegt (Derzeit: 4.2.488.56504).
Gibt es noch andere Möglichkeiten? Außer direkt über die Java API.
VG Michael
Hallo,
Zeig mal den ganzen StackTrace warum du das nicht findest und am besten ein schnipsel aus dem Skript. Ich benutze das oft und es geht wudnerbar in gleicher FS Version.
Du kannst Java Mail API integrieren und das selber bauen aber es ist ja in FS bereits fertig.
Viele Grüße
Dennis
Das steht im Script:
MailService service = this.connection.getService(MailService.class);
service.sendMail("albert@webfox01.de", "mailSubject", "mailText");
Hier der StackTrace:
Client Version: 4.2.488.56504
Java Version: 1.6.0_33 Sun Microsystems Inc.
FSVersion=4.2.488.56504#2498;JDK=1.6.0_33 32bit Sun Microsystems Inc.;OS=Windows 7 6.1 x86;Date=21.08.2013 10:09:57
de.espirit.firstspirit.access.script.ExecutionException: Typed variable declaration : Class: MailService not found in namespace at line 39
at de.espirit.firstspirit.server.script.BeanshellScriptEngine$BeanshellExecutable.execute(BeanshellScriptEngine.java:122)
at de.espirit.firstspirit.client.gui.applications.ApplicationTabRegistry$IdentifiableExecutable.execute(ApplicationTabRegistry.java:150)
at de.espirit.firstspirit.common.ScriptUtil.execute(ScriptUtil.java:97)
at de.espirit.firstspirit.client.action.ScriptMenuAction$ScriptAction.actionPerformed(ScriptMenuAction.java:213)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue.defaultDispatchEvent(AWTDispatchingEventQueue.java:132)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue._dispatchEvent(AWTDispatchingEventQueue.java:116)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue.dispatchEvent(AWTDispatchingEventQueue.java:109)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Hi,
Hast du den MailService importiert?
import de.espirit.firstspirit.access.MailService;
Viele Grüße
Dennis
Hallo Dennis,
ich sollte vielleicht mal länger schlafen. Vielen Dank für deine Hilfe, es funktioniert.
Vielleicht kannst du mir noch bei einer zweiten Sache helfen, wäre nett von dir.
Ich muss in einem Script eine Vorlage laden. Denn ich benötige den HTML Teil dieser Vorlage. Sprich ich muss diesen Auslesen um in im Script weiter zu verarbeiten. Hättest du für mich ein Codeschnipsel oder ähnliches? Vielen Dank für deine Bemühungen.
VG Michael
statt "this" sollte hier immer das "context" Objekt benutzt werden.
context.getConnection()
Hi,
@Sebastian bei mir gibt es eine Connection im Objekt, klar das man das an "Besnshell" anpassen muss.
@Michael du meinst den HTML Reiter?
Da gibt es ein fertiges Beispiel im ChannelSourceProvider in der API.
Viele Grüße
Dennis
Hallo Dennis,
korrekt den meine ich.
VG Michael