Dynamische E-Mail-Verteiler mit "isNull" filtern

Alles was sich mit dem Thema dynamische XML Formulare auf Basis des LiveCycleDesigners beschäftigt
Antworten
Mike78
Beiträge: 12
Registriert: 25.09.2016, 09:30

Dynamische E-Mail-Verteiler mit "isNull" filtern

Beitrag von Mike78 » 13.02.2021, 19:29

Hallo zusammen,

ich habe ein Formular erstellt, welches die Personalabteilung ausfüllen muss, um einen Arbeitsvertrag zu erstellen.
Manche Personengruppen erhalten ein Firmenhandy oder Firmenwagen, manche Abteilungen haben auch einen Teamleiter.
Entsprechend sollten alle Abteilungen informiert werden, wenn der Arbeitsvertrag erstellt wurde. Dieser Personenkreis soll in CC genommen werden.
Insgesamt habe ich folgende Felder hier vorgesehen:
topmostSubform.Page0_Formular_PA.txtCC1 (Teamleiter)
topmostSubform.Page0_Formular_PA.txtCC2 (IT-Abteilung)
topmostSubform.Page0_Formular_PA.txtCC3 (Lohnbuchhaltung)
topmostSubform.Page0_Formular_PA.txtCC4 (Einkauf)
topmostSubform.Page0_Formular_PA.txtCC5 (Fuhrpark)

Ich habe folgende Optionsfelder im Formular erstellt:

Firmenwagen optJa / optNein

Code: Alles auswählen

optJa == true
{
 topmostSubform.Page0_Formular_PA.txtCC4 = 'Einkauf@abc.de';
 topmostSubform.Page0_Formular_PA.txtCC5 = 'Fuhrpark@abc';
}
optNein == true
{
 topmostSubform.Page0_Formular_PA.txtCC4 = '';
 topmostSubform.Page0_Formular_PA.txtCC5 = '';
}
Handy optJa / optNein

Code: Alles auswählen

optJa == true
{
 topmostSubform.Page0_Formular_PA.txtCC4 = 'Einkauf@abc.de';
}
optNein == true
{
 topmostSubform.Page0_Formular_PA.txtCC4 = '';
}
Zusätzlich habe ein Dopdownfeld in diesem der Teamleiter evtl. mit ausgegeben wird. Nicht jeder Bereich hat einen Teamleiter.

Code: Alles auswählen

if (this.rawValue == 'Abrechnungscontrolling')
{
topmostSubform.Page0_Formular_PA.txtCC1 = 'Max.Mustermann@abc.de';
}
else if (this.rawValue == 'Personal')
{
topmostSubform.Page0_Formular_PA.txtCC1 = '';
}
Bis hierhin funktioniert auch alles bestens.

Beim Click-Event für die E-Mail benutze folgenden Code:

Code: Alles auswählen

app.mailMsg({
			bUI: false,
			cTo: topmostSubform.Page0_Formular_PA.txtVGMail.rawValue,
			cCc: topmostSubform.Page0_Formular_PA.txtCCGesamt.rawValue,
			cBcc: '',
			cSubject: 'Arbeitsvertrag für ' + topmostSubform.Page0_Formular_PA.txtAnrede.rawValue + ' ' + topmostSubform.Page0_Formular_PA.txtVorname.rawValue + ' ' + topmostSubform.Page0_Formular_PA.txtNachname.rawValue,
			cMsg: topmostSubform.Page0_Formular_PA.txtVGAnrede.rawValue + ' ' + topmostSubform.Page0_Formular_PA.txtVGName.rawValue + ',\r\rdie Personalabteilung hat den Arbeitsvertrag für folgenden Mitarbeiter heute erstellt:\r\r' + topmostSubform.Page0_Formular_PA.txtAnrede.rawValue +'\r' + topmostSubform.Page0_Formular_PA.txtVorname.rawValue + ' ' + topmostSubform.Page0_Formular_PA.txtNachname.rawValue +'\r' + topmostSubform.Page0_Formular_PA.txtStrasseNr.rawValue + '\r' + topmostSubform.Page0_Formular_PA.txtPlzOrt.rawValue + '\rEintritt zum: ' + topmostSubform.Page0_Formular_PA.txtEintrittsdatum.formattedValue  + ' als ' + topmostSubform.Page0_Formular_PA.txtStellenbezeichnung.rawValue,
			}) ;
			
	}

Zuerst hatte ich folgenden Verteiler:

Code: Alles auswählen

cCc: topmostSubform.Page0_Formular_PA.txtCC1.rawValue + ';' + topmostSubform.Page0_Formular_PA.txtCC2.rawValue + ';' + topmostSubform.Page0_Formular_PA.txtCC3.rawValue + ';' + topmostSubform.Page0_Formular_PA.txtCC4.rawValue + ';' + topmostSubform.Page0_Formular_PA.txtCC5.rawValue,
Outlook konnte die leeren z.B. topmostSubform.Page0_Formular_PA.txtCC1.rawValue nicht aufrufen und es kam zum Fehler.

Deswegen habe ich im Formular ein weiteres Textfeld "txtCCGesamt" hinzugefügt. Ich wollte mit einer if;else if die leeren Felder filtern und nur die gefüllten Felder in das Textfeld "txtCCGesamt" schreiben. Leider funktioniert meine Abfrage nicht. Folgenden Code habe ich verwendet:

Code: Alles auswählen

if ((topmostSubform.Page0_Formular_PA.txtCC1.rawValue.length > null) && (topmostSubform.Page0_Formular_PA.txtCC4.rawValue.length > null) && (topmostSubform.Page0_Formular_PA.txtCC5.rawValue.length > null))
{
topmostSubform.Page0_Formular_PA.txtCCGesamt = topmostSubform.Page0_Formular_PA.txtCC1.rawValue + ';' + topmostSubform.Page0_Formular_PA.txtCC2.rawValue + ';'+ topmostSubform.Page0_Formular_PA.txtCC3.rawValue + ';' + topmostSubform.Page0_Formular_PA.txtCC4.rawValue + ';' + topmostSubform.Page0_Formular_PA.txtCC5.rawValue;
}

else if ((topmostSubform.Page0_Formular_PA.txtCC1.isNull && (topmostSubform.Page0_Formular_PA.txtCC4.rawValue.length > null) && (topmostSubform.Page0_Formular_PA.txtCC5.rawValue.length > null))
{
topmostSubform.Page0_Formular_PA.txtCCGesamt = topmostSubform.Page0_Formular_PA.txtCC2.rawValue + ';'+ topmostSubform.Page0_Formular_PA.txtCC3.rawValue + ';' + topmostSubform.Page0_Formular_PA.txtCC4.rawValue + ';' + topmostSubform.Page0_Formular_PA.txtCC5.rawValue;
}

else if ((topmostSubform.Page0_Formular_PA.txtCC1.rawValue.length > null) && (topmostSubform.Page0_Formular_PA.txtCC4.isNull && (topmostSubform.Page0_Formular_PA.txtCC5.rawValue.length > null))
{
topmostSubform.Page0_Formular_PA.txtCCGesamt = topmostSubform.Page0_Formular_PA.txtCC1.rawValue + ';' + topmostSubform.Page0_Formular_PA.txtCC2.rawValue + ';'+ topmostSubform.Page0_Formular_PA.txtCC3.rawValue + ';' + topmostSubform.Page0_Formular_PA.txtCC4.rawValue + ';' + topmostSubform.Page0_Formular_PA.txtCC5.rawValue;		
}

else if ((topmostSubform.Page0_Formular_PA.txtCC1.isNull) && (topmostSubform.Page0_Formular_PA.txtCC4.isNull) && (topmostSubform.Page0_Formular_PA.txtCC5.isNull))
{
topmostSubform.Page0_Formular_PA.txtCCGesamt = topmostSubform.Page0_Formular_PA.txtCC2.rawValue + ';'+ topmostSubform.Page0_Formular_PA.txtCC3.rawValue;		
}

else if ((topmostSubform.Page0_Formular_PA.txtCC1.isNull) && (topmostSubform.Page0_Formular_PA.txtCC4.rawValue.length > null) && (topmostSubform.Page0_Formular_PA.txtCC5.isNull))
{
topmostSubform.Page0_Formular_PA.txtCCGesamt = topmostSubform.Page0_Formular_PA.txtCC2.rawValue + ';'+ topmostSubform.Page0_Formular_PA.txtCC3.rawValue + ';' + topmostSubform.Page0_Formular_PA.txtCC4.rawValue;		
}

else if ((topmostSubform.Page0_Formular_PA.txtCC1.rawValue.length > null) && (topmostSubform.Page0_Formular_PA.txtCC4.rawValue.length > null) && (topmostSubform.Page0_Formular_PA.txtCC5.isNull))
{
topmostSubform.Page0_Formular_PA.txtCCGesamt = topmostSubform.Page0_Formular_PA.txtCC1.rawValue + ';' + topmostSubform.Page0_Formular_PA.txtCC2.rawValue + ';' + topmostSubform.Page0_Formular_PA.txtCC3.rawValue + ';' + topmostSubform.Page0_Formular_PA.txtCC4.rawValue;		
}

else if ((topmostSubform.Page0_Formular_PA.txtCC1.rawValue.length > null) && (topmostSubform.Page0_Formular_PA.txtCC4.isNull) && (topmostSubform.Page0_Formular_PA.txtCC5.isNull))
{
topmostSubform.Page0_Formular_PA.txtCCGesamt = topmostSubform.Page0_Formular_PA.txtCC1.rawValue + ';' + topmostSubform.Page0_Formular_PA.txtCC2.rawValue + ';' + topmostSubform.Page0_Formular_PA.txtCC3.rawValue;		
}


Wenn die folgenden Felder nicht null:
topmostSubform.Page0_Formular_PA.txtCC1 (Teamleiter)
topmostSubform.Page0_Formular_PA.txtCC4 (Einkauf)
topmostSubform.Page0_Formular_PA.txtCC5 (Fuhrpark)

sind funktioniert der Code. Sonst leider nicht.

Hat irgendwer eine Idee wie ich mein Problem lösen kann?

Zudem möchte ich auf einem Schaltfläche verzichten "E-Mail versenden", besteht die Möglichkeit die mit der Schaltfläche "Drucken" einzubindeln?

Für eure Hilfe wäre ich euch sehr dankbar.

VG
Mike

Antworten