Beispiele

Vor-, Haupt- und Nachselektion

Beispiel für eine Adressauswertung mit Vor-, Haupt- und Nachselektion über folgende Adressen:
Adresse 3013
Adresse 5000
Adresse 5001
Adresse 5002
Adresse-Stammdaten
Adresse 3013, PLZ = 6006, keine Kontaktperson
Adresse 5000, PLZ = 6000, Kontaktperson 1, Selektions-Kriterium 1 = B
Adresse 5000, PLZ = 6000, Kontaktperson 2, Selektions-Kriterium 1 = C
Adresse 5001, PLZ = 6002, Kontaktperson 1, Selektions-Kriterium 1 = A
Adresse 5001, PLZ = 6002, Kontaktperson 2, Selektions-Kriterium 1 = B
Adresse 5002, PLZ = 6003, Kontaktperson 2, Selektions-Kriterium 1 = A
Adresse 5002, PLZ = 6003, Kontaktperson 3, Selektions-Kriterium 1 = A

Vorselektion mit dem Bo-Typ = Adresspooleintrag

Folgende Selektionen wurden für die Vorselektion getroffen:

Bo-Typ-Pool

4000

Aktives Bo verwenden

passiv

Auswahl Attribute

keine

Ausgabe Attribute

Pool-Nummer

Hauptselektion mit BO-Typ = Addr

Folgende Selektionen wurden für die Hauptselektion getroffen:

Bo-Typ

Addr

Auswahl Attribute

PLZ von 6000 bis 6003

Ausgabe Attribute

Adressnummer, Vor- und Nachname, Adresszeile 1, Adresszeile 2, Land, PLZ, Ort

Nachselektion

Folgende Selektionen wurden für die Vorselektion getroffen:

Sub-BO

Kontaktperson mit Index 1 (Adresse)

Auswahl Attribute

Selektion 1: von A bis A

Ausgabe Attribute

Briefanrede (Kontaktperson), Name (Kontaktperson), Vorname (Kontaktperson),

Bo-Übernahme

  • Wenn Sub-Bo gefunden: "mindestens ein Sub-Bo erfüllt die Kriterien"
  • Wenn Sub-Bo nicht gefunden: "die Kriterien sind als erfüllt anzunehmen"
  • Übernahme: "die Sub-Bo, welche Kriterien erfüllen"

Resultat (ausgewertete BOs)

Pool-Nr. AdrNr. Adressname Adresszeile 1 Adresszeile 2 Land PLZ Ort Briefanr. Vorname Name
4000 5001 Vorname_5001 Kunde_5001 Adresszeile 1 Adresszeile 2 CH 6002 Luzern Sehr geehrter Herr KP_Vorname_1 KP_Name_1
4000 5002 Vorname_5002 Kunde_5002 Adresszeile 1 Adresszeile 2 CH 6003 Luzern Sehr geehrter Herr KP_Vorname_2 KP_Name_2
4000 5002 Vorname_5002 Kunde_5002 Adresszeile 1 Adresszeile 2 CH 6003 Luzern Sehr geehrter Herr KP_Vorname_3 KP_Name_3

ApplicationServerAttributes

In dieser F-Script Subroutine können alle Spalten definiert werden, die als zusätzliche Attribute ins Result übernommen werden.
  • Mit «AS(SET:BriefAdr.Zeile1,xxx)» füllt man den Wert xxx in die Spalte BriefAdr.Zeile1 ab (siehe Beispiel unten).
  • Mit «AS(APPEND:BriefAdr.Zeile1,xxx)» ergänzt man die Spalte BriefAdr.Zeile1 um den Wert xxx.
  • Mit «AS(ATTACH)» wird nun die ganze aktuelle Zeile ins Result übernommen.
Beispiel ST-AD100.FSS
# Postanschrift für Einzel- und Serienbriefe aufbereiten
# Datei:      ST-AD100.FSS
# Programm:   Serverscript
# Kunde:      Standard (Version 9.10.7)
# Autor:      Opacc Software AG, Kriens
# Erstellt:   15.07.2002 /ch
# ***************************************************************************
/ApplicationServerAttributes
BriefAdr.Zeile1
BriefAdr.Zeile2
BriefAdr.Zeile3
BriefAdr.Zeile4
BriefAdr.Zeile5
BriefAdr.Zeile6
BriefAdr.Zeile7
BriefAnr.Zeile1
/

/body
«NO(NULL)»«MEA(-)»
«zKP-ADR-NR\I»«zADR-ACTIVE(«KP-ADR-NR»)\I»
# Sprache abfüllen für Postfach
«MEA(98,«SPRACHE\A»)»«z~POS(│«MEA(98)»│,│D│F│E│I│)\I»«MEA(98,E)»
# Adresse abfüllen
«zADRAR-ACTIVE(«ADR-ADRAR-NR»)\I»
«                        »«MEA(«NO»,«s~KP-NR\I»[«ADRAR-ANR(£«SPR-NR(«SPRACHE»)»)»])»
«VORNAME\I»«zNAME\I      »«MEA(«NO»,[«sVORNAME» ]«NAME»)»
«zZEILE1\I               »«MEA(«NO»,«ZEILE1»)»
«zKP-NAME\I»«ADRAR-ACTIVE(«KP-ADRAR-NR»)\I»
«zKP-NAME\I              »«MEA(«NO»,[«sADRAR-ANR(£«SPR-NR(«SPRACHE»)»)» ][«sKP-VORNAME\A» ]«KP-NAME»)»
«zADR-BOX\I              »«MEA(«NO»,«sPOS(«ADR-BOX\A1»,0123456789)\I»[«LIB(Postfach-«MEA(98)\A»│)» ]«ADR-BOX»)»
«z~ADR-BOX\I»«zZEILE2\I  »«MEA(«NO»,«ZEILE2»)»
«z~ADR-BOX\I»«zZEILE3\I  »«MEA(«NO»,«ZEILE3»)»
«zADR-BOX-ORT\I          »«MEA(«NO»,«s~ADR-LAND=«MAND-LAND»»[«ADR-LAND»-][«sADR-BOX-PLZ» ]«ADR-BOX-ORT»)»
«z~ADR-BOX-ORT\I»«z ORT\I»«MEA(«NO»,«s~ADR-LAND=«MAND-LAND»»[«ADR-LAND»-][«sPLZ» ]«ORT»)»
«z~ADR-BOX-ORT\I»«z~ORT\I»«MEA(«NO»,[«sPLZ» ]«LAND-BEZ(«ADR-LAND»)»)»
#
«z KP-NAME\I             »«MEA(99,«ADRAR-TXT(«KP-ADRAR-NR»,£«SPR-NR(«SPRACHE»)»)» «sPOS(│«ADRAR-PLUS»│,│2│3│)\I»[«KP-VORNAME»«sADRAR-PLUS=3\I»[ ]]«sPOS(│«ADRAR-PLUS»│,│1│3│)\I»[«KP-NAME»])»
«z~KP-NAME\I             »«MEA(99,«ADRAR-TXT(«ADR-ADRAR-NR»,£«SPR-NR(«SPRACHE»)»)» «sPOS(│«ADRAR-PLUS»│,│2│3│)\I»[«VORNAME»«sADRAR-PLUS=3\I»[ ]]«sPOS(│«ADRAR-PLUS»│,│1│3│)\I»[«NAME»])»
«AS(SET:BriefAdr.Zeile1,«MEA(1)»)»
«AS(SET:BriefAdr.Zeile2,«MEA(2)»)»
«AS(SET:BriefAdr.Zeile3,«MEA(3)»)»
«AS(SET:BriefAdr.Zeile4,«MEA(4)»)»
«AS(SET:BriefAdr.Zeile5,«MEA(5)»)»
«AS(SET:BriefAdr.Zeile6,«MEA(6)»)»
«AS(SET:BriefAdr.Zeile7,«MEA(7)»)»
«AS(SET:BriefAnr.Zeile1,«MEA(99)»)»
«AS(ATTACH)»
/

/LIBRARY
Postfach-D│Postfach
Postfach-E│P.O.Box
Postfach-F│Case postale
Postfach-I│Casa postale
/

/ANMERKUNG
┌────┬──────────────────────────────────────────────────────────────────────┐
│    │ Variablen und Konstanten                                             │
├────┴──────────────────────────────────────────────────────────────────────┤
│ Globale Variablen:                                                        │
│ AS  = übergabe an Applikationsserver                                      │
│ MEA = temporär für Daten aufzubereiten verwendet                          │
│ NO  = temporär für Abfüllen des MEAs verwendet                            │
└───────────────────────────────────────────────────────────────────────────┘
/

Hinweis Format

Die Attributnamen (in der Subroutine /ApplicationServerAttributes) dürfen keine UnderScore ( _ ) enthalten.

ApplicationServerArguments

In dieser Subroutine können Abfrage-Elemente definiert werden, die zusätzlich zu den definierten Auswahl-Attributen in der Runtime abgefragt werden.
Spezifikation
Beschreibung
@
Definitonen von diesem OpaccERP Attribut übernehmen.
%
Vorgabe des Typs.
  • A - Alphanumerisch
  • D - Datum
  • B - Boolean (Checkbox)
  • N - Numerisch
[...]
Vorgabewert (d.h. der hier eingegebene Wert wird im UI als Vorgabe/Vorschlag angezeigt).
@Art.Number
Attribut Art.Number mit Default-Bezeichnung (in entsprechender Sprache).
@Stock.StockGoodsTypeCd Bestandesart
Attribut Stock.StockGoodsTypeCd mit Bezeichnung Bestandesart.
%D Anfangs-Datum
Datum mit Bezeichung "Anfangs-Datum".
%N6.2[100'000] Umsatz
Numerisches Eingabefeld mit Bezeichnung "Umsatz" und Vorgabe 100'000.00
%A20 Bemerkung
Alphanumerisches Eingabefeld mit Bezeichnung Bemerkung und 20 Zeichen Länge.
Clipboards
«CB(20)» enthält den vom Benutzer eingegebenen Wert des ersten Attributes, «CB(21)» denjenigen des zweiten Attributes, etc.
Hinweis
Wichtig
Wichtig
Diese Subroutine darf nicht leer sein. Wenn keine ApplicationServerArguments definiert werden, ist die ganze Sektion wegzulassen.
Folgende Subroutine ist folglich falsch bzw. unzulässig:
/ApplicationServerArguments

/
Beispiel ST-LA100.FSS (Auszug)
/ApplicationServerArguments
%B[1] Eigenbestand
%B[1] Fremdbestand
/

/body
«zLAGBU-EIGENE-JN\I»«z~CB(20)\I»«GOTO(/)»
«z~LAGBU-EIGENE-JN\I»«z~CB(21)\I»«GOTO(/)»
/

Bearbeiten des Scripts

Mit dem Button <Bearbeiten> wird das im Feld Applikationsserver-Script eingetragene Script in einem Texteditor zur Bearbeitung geöffnet.

Ausgabe Attribute

am Beispiel der MIS Auskünfte im WS 71000:

Auswahl der Periode

Bei der Anzeige im Workspace 71000 erfolgt die Anzeige der Daten aufgrund der im Workspace ausgewählten Periode:
  • Geschäftsjahr / Kalenderjahr
  • Monat von/bis
Werden MIS-Daten in andern Business-Objekten angezeigt (z.B. Kunde 10001) muss die gewünschte Periode bei der Definition der Ausgabe-Attribute mitgegeben werden:
Beispiel für die indirekte Aktivierung
Verkaufsumsatz für das aktuelle Geschäftsjahr: MisSal.Turnover(",B:2003:1:12")

Indirekte Aktivierung

Das Attribut muss wie beschrieben ergänzt werden:
  • Das Attribut, das den Verkaufs-Umsatz enthält: MisSal.Turnover
  • Es muss indirekt über die Relation zum MIS aktiviert werden: ( )
  • Die Werte müssen in Anführungs- und Schlusszeichen stehen: " "
  • Bei Eingabe eines Wertes vor dem Doppelpunkt wird der Wert für das eingetragene BO angezeigt, ohne Eingabe eines Wertes vor dem Doppelpunkt wird der Wert für das aktive BO angezeigt.

Periodendefinition:

Periodentyp:

Folgende Einträge sind möglich:
  • leer =aktuelles Geschäftsjahr, C: = Kalenderjahr, B: = Geschäftsjahr

Jahr:

Folgende Einträge sind möglich:
  • leer = aktuelles Jahr (Default)
  • JJJJ = bestimmtes vorgegebenes Jahr
  • relativ (-1 = Vorjahr, -2 = Vorvorjahr etc.)

Periodenbeginn:

Folgende Einträge sind möglich:
  • leer = aktueller Monat (Default)
  • MM = Monat (1-12), Q1 = Quartal 1 (Q2, Q3, Q4), S1 = Semester 1 (S2)
  • relativ: -MM = Anzahl Monate zurück, Q-1 = 1 Quartal zurück, S-2 = 2 Semester zurück

Periodenlänge

Folgende Einträge sind möglich:
  • leer: wenn Periodenbeginn ebenfalls leer, Daten des aktuellen Monats, wenn Periodenbeginn gefüllt: Daten der im Beginn angegebenen Periode
  • Monat (1-12), Q1 = Quartal 1 (Q2, Q3, Q4), S1 = Semester 1 (S2)

Beispiele für Umsätze Hauptgruppe

  • MisSal.Turnover("[ArtMisC2.MisSalLink],B:-1:Q1:") = Erstes Quartal des vorherigen Geschäftsjahres.
  • MisSal.Turnover("[ArtMisC2.MisSalLink],C::S-1:3") = Drei Semester ab dem vorherigen Semester des aktuellen Kalenderjahres.
  • MisSal.Turnover("[ArtMisC2.MisSalLink],C") = aktuelles Jahr, Aktueller Kalendermonat
  • MisSal.Turnover("[ArtMisC2.MisSalLink],C::-2:9") = aktuelles Jahr, aktueller Monat -2 bis zum Monat 9
  • MisSal.Turnover("[ArtMisC2.MisSalLink],C:2009:5:9") = Jahr 2009, Monat 5 bis 9

               
Hinweis
Hinweis
Die Attribute MisSal. Turnover, MisSal.Quantity, MisSal.CoverCont usw. zeigen immer die Gesamtwerte der in der Periodenauswahl gewählten Periode.
Für das Vorjahr gibt es die korrespondierenden Attribute: MisSal.TurnoverPrev, MisSal.QuantityPrev, MisSal.CoverContPrev usw.