Installations-Log

Fragen und Problemen zur Inbetriebnahme, Konfiguration und Wartung von AvERP und der Datenbank

Moderator: SYNERPY

Antworten
cpr
Beiträge: 137
Registriert: Mi Sep 01, 2010 9:31 pm

Installations-Log

Beitrag von cpr »

Guten Tag,

gestern kam die bestellte Dokumentation und ich versuche mich dieses Wochenende an den wichtigsten Schritten Richtung "Zeiterfassung mit AvERP".
Wenn es erlaubt ist, würde ich hier Auszüge meines "Maschinenlogbuches" posten. (Wenn's net erlaubt ist, kanns ja ein Mod löschen. ;)

Der verwendete Server läuft unter Windows Server 2003, hat verhältnismäßig magere 1GB RAM.
Der User "vorm Keyboard" ist Kaufmann und Datenbank-Hobbyist.

Auf derm Server ist AvERP 2001-A.02 als leere Datenbank installiert, auf meinem Laptop eine Client-Installation. Die leere Datenbank habe ich gleich als AVERP_TEST.FDB und AVERP_WGPRIOR.FDB ('produktiv') kopiert und auf Server wie Client die AVERPCONNECT.CFG um diese Einträge ergänzt/verändert. Die Verbindung klappt auf Server und Client.

Bislang ist als Warenwirtschaft Lexware im Einsatz, aber das können wir uns nun wirklich nicht länger leisten. Wei auch Buchhaltung und der Rest des "financial office" Paketes im Einsatz ist, kann ich aber eigentlich alle Stammdaten kopieren.
Die Zeiterfassung läuft über Reiner SCT RFID-Chips. Ich will die Verwendung der Barcode-Funktionalität testen und einführen, um niedrige Hürden für Fertigungsauftrags-BDE zu haben.
cpr
Beiträge: 137
Registriert: Mi Sep 01, 2010 9:31 pm

Beitrag von cpr »

Die Firmenstammdaten habe ich verändert: Die vordefinierte Firma editiert, Logo angepasst, Fusszeile+AGB+der Vollständigkeit halber auch das Kassenlogo (wir sind Fertigungsbetrieb/Metallverarbeiter und v.a. Zulieferer).

Den Mandanten ebenfalls editiert, ein Ausdruck "Briefvorlage" zeigt schonmal nur eigene Daten, nix mehr von den vordefinierten.
Im Mandant nur "Eigene Daten" und "Formular" verändert, sonst nur in "Allgemein" die Kapazitätsplanung an und "Wochenende verfügbar" (ich bin ja schliesslich da, wa *g*)

Ich weiß, es ist bescheuert, aber ich probier immer erstmal alles im Testsystem, damit ich bei (Eingabe-) Fehlern die ID inkrementell 'sauber halte'. Aber spätestens bei der Anlage der Mitarbeiter will ich keine Lücken und Sprünge haben: In der Demodatenbank habe ich gesehen, dass die ID als laufende Nummer auf dem MA-Barcode ausgedruckt wird. Und ich will verhindern, dass "Befindlichkeiten" die Einführung erschweren.
Muss mir noch überlegen, wen ich in welcher Reihenfolge anlege... *GGG* (In den Firmen-Nummernkreisen kann P00000000 nicht angepasst werden.)

Ausserdem ist das heute kein Wettbewerb auf Zeit, sondern ich will ja nur spielen…
cpr
Beiträge: 137
Registriert: Mi Sep 01, 2010 9:31 pm

Beitrag von cpr »

Also "Lieferbedingungen" und "Versandbedinungen" haben mir jetzt ganz schön den Kopp durcheinandergebracht!
cpr
Beiträge: 137
Registriert: Mi Sep 01, 2010 9:31 pm

Beitrag von cpr »

In den Firmenangaben Istzeitrundung auf 0, die Istzeitauswertung auf A.
Das Feld "Autom. Ist Komm u. Gehen best." verstehe ich nicht, finde es nirgends dokumentiert und belasse es auf N.

10 Mitarbeiter angelegt, eine rudimentäre Hierarchie aufgebaut (hey, ich bin BWLer!)

Einem MA (das Testobjekt) Wochenarbeitszeiten für KW 201000 zugewiesen, plus ein Pausenmodell 10:00-10:30 Uhr. Und eine Überstundenbehandlung (die standard-Vorbelegungen mit den "ab 99999 Std auszahlen".

Das utility Planzeiten für Mta. ein- nachtragen für diesen MA ausgeführt.

Druck "Stundenzettel" für laufenden Monat bringt Sollstunden. Für November bringt er am 1. Lohnart VF, wir haben aber keinen Feiertag. Also in Stammdaten->Zeiterfassungsvorgaben->Feiertage Allerheiligen auf aktiv=N gesetzt und das utility Planzeiten neu ausgeführt. Danach (erst danach) kein Feiertag mehr im "Stundenzettel".

Für unseren Lehrling eine neue Lohnart angelegt:
SC Beerufsschule volle Tage (er ist im Zweiwochenturnus immer ganztags in der Berufsschule); Kategorie 4 Schule, [N]icht anwesend erforderlich, Soll-Std. [J], Abzug fix/Monat [N] (weil ich den Punkt net versteh), Zutritt erlaubt [J] (vielleicht schwänzt er ja und will lieber arbeiten *g* / verwende die Zutrittskontrolle eh net), Konst StdSatz verw [J] und Stundenzettel ausweisen [J]: In Spalte 5 Schule (neu angelegt).

Noch eine Druckspalte 6 Diverses angelegt, und eine Lohnart "Kurzarbeit" als Exot angelegt, um zu sehen, ob ich AvERP verstanden hab:
Hm, seltsam, die Kategorien kann ich nur auswählen, nicht anlegen. Hab man "normal sonst" gewählt, obwohl es auch nach "Krank" im Sinne von Lohnfortzahlungen-mit-Einschränkungen passen würde? Anwesenheit [N]icht erforderlich, Soll-Std. [N], Abzug fi/Monat [N], Zutritt erlauben [J], Konst.Std:Satz verwenden [J], Stundenzettel ausweisen [J] in Spalte Drucknr 6
cpr
Beiträge: 137
Registriert: Mi Sep 01, 2010 9:31 pm

Beitrag von cpr »

Die IBEXpert-Bestellung habe ich gestern abgesetzt. Die Demo-Version runtergeladen und die Zeiterfassungs-bezogenen Inhalte der AvERP-DB inspiziert.

Der Standard-Export unseres Terminals ist extrem häßlich:

Code: Alles auswählen

Mitarbeiter:;John Doe;;;;;;;;;;;;;;;
MA-Nr.:;2;;;;;;;;;;;;;;;
Zeitraum:;01.10.10 bis  31.10.10;;;;;;;;;;;;;;;

Tag;KO;KO;KO;GE;GE;GE;Abwesenheit;AZProfil;Pause;Sollzeit;GZZ;Anw.;Gleitzeit;Gleitzeit;Gleitzeit;
;gest.;ger.;bew.;gest.;ger.;bew.;;;;;;;Tag;Monat;gesamt;
Vormonat;;;;;;;;;;;;;;;-170,72;
01   Fr;;;;;;;Urlaub;KU6h_AZ8h-GZ;0,00;8,00;;8,00;0,00;0,00;-170,72;
Glücklicherweise komme ich via Kommandozeilenexport an ein schöneres Format, und bei frei wählbarer Zeitspanne:

Code: Alles auswählen

Booking

Employees number;Pass card number;Date;Time;Type of booking;Account of absence;Text;

# Meiser, Hans


# Ray, Johnny

14;374692690;20.01.2010;10:35;KO;IST;COM-Terminal;
14;374692690;20.01.2010;20:12;GE;IST;COM-Terminal;
14;374692690;04.02.2010;11:21;KO;IST;COM-Terminal;
Die Prozedur P_ZEITEN_IMPORT_MA05 will in einer Zeile Import-Datei kommen und gehen.
Die Tabelle BSMB dagegen arbeitet mit der Spalte `ISTKZ` und den Werten K|G.

Ich denke, ich mach es mir einfach und vergebe Mitarbeiternummern analog zur Zeiterfassungs-Software. Damit könnte ich mir "down the road" zwar mal 'in den Fuß schiessen', aber was soll's.

Ich probier jetzt: Einen "Universellen Import" in AvERP, damit die Tabelle TIMPORT beladen, und lasse mir eine eigene Prozedur drüberlaufen.
cpr
Beiträge: 137
Registriert: Mi Sep 01, 2010 9:31 pm

Beitrag von cpr »

In diesem Fall ist es nicht notwendig, aber mal so als Tip in den (virtuellen) "Raum gestellt": Wer wiederkehrend Daten transformieren muss, sollte mal pentaho.com ansurfen. Grafische Oberfläche, /alle/ Input- und Output-Formate die man sich denken kann (inkl. from and to database conns!) und dazwischen Transformationen mit SQL, RegEx, Konvertern u.v.a.m.
cpr
Beiträge: 137
Registriert: Mi Sep 01, 2010 9:31 pm

Beitrag von cpr »

Hey - IBExpert ist ja besser als phpMyAdmin!!1!
cpr
Beiträge: 137
Registriert: Mi Sep 01, 2010 9:31 pm

Beitrag von cpr »

Komisch:

Testdatei zu importieren:

10;374692690;20.01.2010;10:35;KO;IST;COM-Terminal;
10;374692690;20.01.2010;20:12;GE;IST;COM-Terminal;
Universeller Import-Konfiguration: (sic)

Datenspalten 1,3,4,5,6 => Ergebnis wie gewünscht mit KO|GE und IST

Datenspalten 1,3,4
Textspalten 5,6
=> 'IST' und 'COM-Terminal' lendet in der Datenbank!?!
cpr
Beiträge: 137
Registriert: Mi Sep 01, 2010 9:31 pm

Beitrag von cpr »

Shiny object!

Code: Alles auswählen

begin
  /* PROTOKOLLIEREN, DASS AKTION HIER DURCHGELAUFEN IST */
  IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
    INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('P_ZEITEN_IMPORT_TIMECARD');

  -- Wurden Datensätze importiert?
  SELECT FIRST 1 AKTIV_USER_ID
  FROM TIMPORT
  WHERE AKTIV_USER_ID = :NEINLOGID AND
        KONFIG_ID = :BIMPKONF_ID
  INTO :TEST_ID;

  IF (TEST_ID IS NULL) THEN EXIT;

  -- alle importierten Daten durchlaufen
  FOR SELECT DATEN1,--empl.#
             cast(CAST(DATEN2 AS DATE) + CAST(DATEN3 AS TIME) AS timestamp),
             left(CAST(DATEN4 AS VARCHAR(2)),1)--KO oder GE (KEINE " Texttrenner!?!)
  FROM P_TIMPORTDATEN(:NEINLOGID,:BIMPKONF_ID)
  WHERE DATEN1 IS NOT NULL AND
        F_LRTRIM(DATEN1) <> '' AND
        (F_LRTRIM(DATEN4) LIKE 'KO' OR F_LRTRIM(DATEN4) LIKE 'GE') AND
        F_LRTRIM(DATEN5) LIKE 'IST' AND-- DARAUS FOLGT: Ich setze Lohnkz 2 = normal
        left(F_LRTRIM(DATEN1),1) <> '#'
      INTO :EMPNO,
       :DATUM,
       :ISTKZ
  DO
  BEGIN

    -- Gibt es diesen Mitarbeiter überhaupt
    BSM_ID = NULL;
    --FIXME Ich habe in TimeCard den Mitarbeitern die IDs aus AvERP gegeben
    --Das geht irgendwann SCHIEF!
    SELECT ID
    FROM BSM
    WHERE MASKENKEY = F_PADLEFT(:EMPNO,' ',10)
    INTO :BSM_ID;

    IF (BSM_ID IS NOT NULL) THEN
    BEGIN

      -- Kommenzeit eintragen
      INSERT INTO BSMB (
        BSM_ID_PER_NR,
        ART,
        DATUM,
        ISTKZ)
      VALUES (
        :EMPNO,
        'M',
        :DATUM,
        :ISTKZ);
    END
  END

  --delete from TIMPORT WHERE
  -- temporäre Daten löschen --
  DELETE FROM TIMPORT
  WHERE AKTIV_USER_ID = :NEINLOGID AND
        KONFIG_ID = :BIMPKONF_ID;  

end
OK, 90% cut'n'paste, dafür aber auch mit Datum&Zeit-Berechnung, das ist in jedem RDBMS wieder ein wenig tückisch anders.


Sooo, jetzt hab ich zwar nicht wirklich an der Zeiterfassung gearbeitet (Wochenarbeitszeitmodelle und so), aber ich kann jetzt IM-POR-TIE-REN! *yay* Keinen einzigen Datensatz der ~2750 Buchungssätze Ist-Buchungen mit der Hand eingetragen. Die Tage noch Urlaub/Krankenstand/etc & die Historiebeginnt zu wachsen...
Ich hab noch ne Access-Datenbank mit Zeiten-auf-Kostenstellen rumliegen, vielleicht krieg ich die auch noch abgekippt…
Da mach ich beruhigt Feierabend! *G*
cpr
Beiträge: 137
Registriert: Mi Sep 01, 2010 9:31 pm

Beitrag von cpr »

Der Job(!) im Screenshot macht exakt das, wonach es aussieht:
Bild

Pentaho Kettle Community(!) Edition. Stichwort ETL. Zur Nachahmung empfohlen! :D
cpr
Beiträge: 137
Registriert: Mi Sep 01, 2010 9:31 pm

Beitrag von cpr »

Heute morgen habe ich die Zeiterfassung produktiv einzusetzen begonnen.
Die Mitarbeiter haben Barcode-Scanner-Ausweise und ein provisorischer Monitor zeigt die Maske für den User BARCODE.
Ich habe für jeden MA heute Vormittag manuell bzw per Stundenauswertungs-Druck eine Monatsauswertung angelegt und dort die Salden des Urlaubskontos eingetragen.
Ausserdem eine Abrechnung des Vormonats mit dem Überstundenvortrag (Auszahlung Fixstunden N).
Aus der Listenansicht des Mitarbeiterstamms bekomme ich eine Urlaubsliste mit korrekten Jahreswerten.
Für den Übertrag in den Februar habe ich im MAStamm "Ü.Stunden ausbez. ab" auf 9999 (Stunden) gesetzt. Wäre auch per Unterprogramm gegangen und dort sogar mit Schlüssel "Jahr-Monat", aber das brauche ist nicht. Im Mitarbeiterstamm scheint es mir besser zu passen. SOLLTE ich später mal eine abweichende, neue Vereinabrung treffen, hoffe ich, dass das Unterprogramm die höhere Priorität hat.

Mir scheint, dass erstmal alles läuft.

Alle Schritte, auch die der Vorbereitung seit Anfang Dez in der Version AvERP_2011A02 dokumentiere ich in einem "Maschinenbuch" durch Notizen und Screenshots.
cpr
Beiträge: 137
Registriert: Mi Sep 01, 2010 9:31 pm

Beitrag von cpr »

Hab in den letzten Wochen mit "Pentaho Kettle" einige Stammdaten aus Lexware nach AvERP geschaufelt (Die "insert/update" Funktionalität macht genau das, was man dem Namen nach erwarten würde *g*) und gerade im Testsystem einen Artikel vom Verkauf in die Fertigung aufs Lager und wieder auf Lieferschein durch"prozessiert". *juchu*
cpr
Beiträge: 137
Registriert: Mi Sep 01, 2010 9:31 pm

Beitrag von cpr »

Klasse, dieses SQL-basierende "Programmieren": Ich hab versehentlich 12 Artikel in AvERP importiert, die nicht da rein sollten.
In IBExpert einen passenden DELETE FROM BSA ausgeführt, und die trigger erledigen für mich den Rest. Keine Logik im "Frontend" oder einer anderen .exe :)
cpr
Beiträge: 137
Registriert: Mi Sep 01, 2010 9:31 pm

Beitrag von cpr »

Ah, im Menupunkt "Verkauf" ist eine klasse Hilfestellung enthalten:
- ich habe eine Menge Stücklisten und Arbeitsstammpläne angelegt
- in Verkauf > Verkaufsübersicht gibt es einen Punkt "fehlende Stückliste" oder "fehlender Arb-Plan"
Darin sind alle enthalten, bei denen ich vergessen habe, auch "Freigabe" zu klicken! :)
cpr
Beiträge: 137
Registriert: Mi Sep 01, 2010 9:31 pm

Beitrag von cpr »

Zwei Tage Kopfkratzen und Zähneklappern, jetzt hab ich es gefunden: In P-CZEITIST wird nicht auf die Einstellung im Firmenstamm "Mitarbeiter Istzeitauswertung" geprüft -- sondern munter

Code: Alles auswählen

IF (IGDATUM <= PGDATUM) THEN TGDATUM = IGDATUM;
gesetzt.

Eigentlich kann kein Anwender von AvERP andere Planstunden als 0:00 bis 23:59 verwenden, oder wie?
Antworten