Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.
Kommentar: Migrated to Confluence 5.3

...

Mit dem erfolgreichen Abschluss eines Auftrags soll automatisch eine Bestätigungsmail an den Kunden verschickt werden. Das vom PrintoutProvider erzeugte Formular wird dabei als NuclosFile an die Email gehängt.

Anzumerken ist, dass durchaus mehrere NuclosFiles hinzugefügt werden können. Auch die Angabe von BCC- und CC-Empfängern ist möglich.

Im Falle eines Laufzeit-Fehlers wird eine BusinessException geworfen.

 

MethodeBeispiel
getSystemParameter
Codeblock
package org.nuclet.businessentity; 
 
import org.nuclos.nucletapi.printoutannotation.FormularAbschlussAuftragPORule;
import org.nuclos.api.commoncontext.NuclosFileUpdateContext;
import org.nuclos.api.mailexception.NuclosMailBusinessException;
import org.nuclos.api.provider.PrintoutProviderParameterProvider;
import org.nuclos.api.provider.MailProvider.rule.UpdateRule;
import org.nuclos.parameter.NuclosSystemParameter;
 
/** @name       
  * @description
  * @usage      
  * @change     
*/
@Rule(name="SendConfirmationEmail", description="SendConfirmationEmail")
public class AbschlussAuftragRegelSendConfirmationEmail implements InsertFinalRuleUpdateRule {

    public void insertFinalupdate(InsertContextUpdateContext context) throws BusinessException {
     
        
		Auftrag a = context.getBusinessObject(Auftrag.class);
 
     	
		NuclosFile result = PrintoutProvider.run(FormularAbschlussAuftragPO.Deutsch_PDF, if(a.getIdisApproved()); {
        
		NuclosMail newMail   String useEmail = new NuclosMail(ParameterProvider.getSystemParameter(NuclosSystemParameter.ConfirmationEmailIsActive);
           
		newMail.setSubject("Abschluss eines Auftrags");
   // First check, if the value of this parameter is not null
           if (useEmail != null) {
            newMail.setFrom("automatic@meineFirma.de");
    if (usrEmail.equals("Y")) {
                newMail.addRecipient("Max.Mustermann@meinKunde.de");
    // Following method creates a NuclosEmail and sends it to the user mentioned in "Auftrag" a.
                    // For lack of space this method is not implemented in this example. Suppose it does exist.
                    sendConfirmationEmail(a);
                newMail.setMessage("Der Auftrag wurde erfolgreich abgeschlossen.");
        newMail.addAttachment(result);
      
        MailProvider.send(newMail}
           }       
       }
    }
}

Erläuterung: Für einen abgeschlossenen Auftrag soll eine Bestätigungsemail versandt werden. In den Systemparametern wurde nun ein Parameter namens "ConfirmationEmailIsActive" hinterlegt, der festlegt, ob das System (unabhängig von Aufträgen) im aktuellen Zustand überhaupt den Versandt ermöglicht oder nicht. Findet die Regel den Wert "Y" (steht für Yes), dann kann die Email verschickt werden.

Systemparameter zur Konfiguration des Emailservers siehe Parameter

getNucletParameter
Codeblock
package org.nuclet.zahlungsverkehr; 

import org.nuclos.api.annotation.Rule;
import org.nuclos.api.context.UpdateContext;
import org.nuclos.api.exception.BusinessException;
import org.nuclos.api.provider.ParameterProvider;
import org.nuclos.api.rule.UpdateRule;

import org.nuclet.zahlungsverkehr.ZahlungsverkehrNucletParameter;

/** @name        
  * @description 
  * @usage       
  * @change      
*/
@Rule(name="ValidatePayment", description="ValidatePayment")
public class ValidatePayment implements UpdateRule {
    public void update(UpdateContext context) throws BusinessException {
    
		// Dateiverzeichnis für den Eingang von MT940-Dateien
        String dirMT940Files = ParameterProvider.getNucletParameter(ZahlungsverkehrNucletParameter.MT940_DIRECTORY);
        
    }
}

Erläuterung:

...

Das Nuclet "Zahlungsverkehr" umfasst einen bestimmen Funktionsumfang an Businessobjekt, Statusmodellen und Regeln (wie auch diese), zu dem fachlich auch der SWIFT-Standard zur elektronischen Übermittlung von Kontoauszug-Daten gehört. Der Parameter "MT940_DIRECTORY" wurde angelegt, diesem Nuclet zugewiesen und beinhaltet das Verzeichnis, in welches eingegangene MT940-Dateien abgelegt werden sollen. Im Beispiel wird der Wert ausgelesen.