192 63 10MB
German Pages 211 [216] Year 1972
I nf ormations-Systeme " Herausgegeben von S. Dworatschek
Ein integriertes Daten verarbeitungs- und Informationssystem mit Programmen für einen Modellbetrieb
von
Prof. Dr. Gerhard Niemeyer
w DE
G Walter de Gruyter • Berlin • New York • 1972
© Copyright 1972 by Walter de Gruyter & Co., vormals G.J. Göschen'sche Verlagshandlung - J. Guttentag, Verlagsbuchhandlung - Georg Reimer Karl J. Trübner - Veit & Comp., Berlin 30. - Alle Rechte, einschl. der Rechte der Herstellung von Photokopien und Mikrofilmen, vom Verlag vorbehalten. - Satz: Fotosatz Prill, Berlin - Druck: Mercedes, Berlin Printed in Germany ISBN 311Ö03807 2
Vorwort
Neuere Entwicklungen in der kommerziellen Anwendung der elektronischen Datenverarbeitung sind durch das Bestreben gekennzeichnet, zu umfassenden Informationssystemen zu gelangen. Die noch aus den Anfängen der elektronischen Datenverarbeitung resultierende und auch heute noch vorwiegend praktizierte einfache „Umstellung" des betrieblichen Rechnungswesens auf EDV läßt die enormen Möglichkeiten moderner Datenverarbeitungsanlagen weitgehend ungenutzt und geht im Grunde genommen am ständig steigenden Informationsbedarf des Management vorbei. Sicherlich besteht eine wesentliche Funktion der kommerziellen Datenverarbeitung in der Dokumentation des zahlenmäßig erfaßbaren Betriebsgeschehens. Jedoch werden dabei mit konventionell betriebener EDV große Mengen bedruckten Papiers produziert, deren Auswertung durch das Management i.d.R. nicht möglich ist. Die zu aktivierenden Möglichkeiten liegen daher einmal in einer automatisierten Abwicklung des gesamten betrieblichen Rechnungswesens unter weitgehender Verwendung externer elektronischer Speichermedien für die Dokumentation und zum anderen in der automatischen und/oder wahlweisen Versorgung des Management mit aufbereiteten Informationen. Die vorliegende Arbeit will den Versuch unternehmen, ein diesen Anforderungen genügendes Datenverarbeitungs- und Informationssystem anhand eines Modellbetriebes zu entwickeln, so wie es als erste Ausbaustufe für kleinere bis mittlere Unternehmen installiert werden könnte. Dabei wird eine Grundkonzeption mit standardisierten Dateien auf externen Speichern und standardisiertem Zugriff gewählt, die einen nachträglichen Ausbau bzw. eine Ausgestaltung des Systems für die Bedürfnisse von Großunternehmen ohne Schwierigkeiten gestattet. Neben dem Ziel, ein leicht modifizierbares und ausbaufähiges Programmgerüst zu entwickeln, soll diese Arbeit dazu beitragen, das Wissen um die zahlreichen Vorteile der integrierten Datenverarbeitung in die Praxis hineinzutragen. Ferner soll die Erkenntnis vermittelt werden, daß die wichtigsten Voraussetzungen für den sinnvollen Einsatz der EDV im kommerziellen Bereich die vorausschauende Analyse des Informationsbedarfs und die Planung umfassender Datenverarbeitungskonzepte sind; denn nichts ist geeigneter, den Aufbau eines integrierten Datenverarbeitungs- und Informationssystems nachhaltig zu behindern, als die sukzessive Einführung der EDV ohne einheitliches Gesamtkonzept, da die dabei entstehenden Teillösungen nur schwer aufeinander abgestimmt und miteinander verknüpft werden können. Eine vollständige Auswertung dieser Arbeit setzt Kenntnisse der Programmiersprache ASSEMBLER, des IOCS und der Dateiorganisation auf externen Speichern voraus. Um jedoch auch denjenigen Lesern, die über derartige Kennt-
6
Vorwort
nisse nicht verfugen, die Lektüre zu ermöglichen, werden die Programme durch Ablaufdiagramme veranschaulicht. Ferner läßt sich ein Überblick über den Aufbau, die Wirkungsweise und die Möglichkeiten des Systems auch dann gewinnen, wenn man die Lektüre auf die vorwiegend verbalen Teile dieser Arbeit beschränkt, also auf die Kapitel 1, 2, 3, 5 und 6 sowie auf die ProgrammbeSchreibungen in Kapitel 4. An dieser Stelle möchte ich Herrn Wolfgang Streichert für seine Hilfe beim Testen der Programme und Herrn Jürgen Witt für seine Mühe beim Zeichnen der Ablaufdiagramme meinen herzlichen Dank aussprechen. Ferner danke ich der Firma Siemens AG für die großzügige Gewährung von Rechenzeit. Berlin, im September 1971
Gerhard Niemeyer
Inhaltsverzeichnis
Vorwort
5
1. D a s Wesen der integrierten D a t e n v e r a r b e i t u n g u n d ein Ansatz z u ihrer Realisierung 2. D i e B e s c h r e i b u n g d e s M o d e l l s e i n e s Handelsbetriebes 2.1. 2.2.
Allgemeine Prämissen Der Aufbau und die Abwicklung der Buchhaltung
3. D e r A u f b a u u n d die Organisation der D a t e n b a s i s 3.1. 3.2. 3.3.
Der Datenträger Die Dateien Die Einführung von Nummernkreisen und eines Adreßrechnungsalgorithmus
4 . D i e Programme d e s integrierten D a t e n v e r a r b e i t u n g s s y s t e m s 4.1.
4.2.
4.3. 4.4. 4.5.
Programme zur Einrichtung und Verwaltung der Datenbasis 4.1.1. Dienstprogramm zur Etikettierung von Plattenspeichern 4.1.2. Dienstprogramm für die Zuweisung von Plattenbereichen . . . . 4.1.3. Dienstprogramm für das Ausdrucken des Plattenetikettbereichs 4.1.4. Dienstprogramm für das Ausdrucken einzelner Plattenbereiche. . 4.1.5. Anwenderprogramm: LADEN DATEIEN AUF PLATTE 4.1.6. Anwenderprogramm: DATEIVERAENDERUNGEN Programme für die Verarbeitung des Warenumschlags 4.2.1. Anwenderprogramm: WARENEINGANG 4.2.2. Anwenderprogramm: WARENAUSGANG Anwenderprogramm zur Buchung von Kunden- und Lieferantenzahlungen: ZAHLUNGEN Anwenderprogramm zur Abwicklung sonstiger Buchungen: BUCHUNGEN Programme zur Gewinnung von Informationen aus der Datenbasis . . 4.5.1. Anwenderprogramm für den Periodenabschluß (Bilanz und G+V-Rechnung): PERIODENABSCHLUSS 4.5.2. Anwenderprogramm: AUSDRUCKEN VON KONTEN 4.5.3. Anwenderprogramm zur Gewinnung beliebiger Informationen aus der Datenbasis: ANFRAGEN
9 16 16 16 24 24 26 28
32 32 32 33 37 37 41 51 59 59 75 92 102 113 115 142 151
5. B e s c h r e i b u n g e i n e s Testlaufs d e s S y s t e m s
200
6. S c h l u ß b e t r a c h t u n g
210
Literaturverzeichnis
212
1. Das Wesen der integrierten Datenverarbeitung und ein Ansatz zu ihrer Realisierung
Die hohe interne Verarbeitungsgeschwindigkeit moderner elektronischer Datenverarbeitungsanlagen steht im krassen Mißverhältnis zur Geschwindigkeit der konventionellen Dateneingabe per Lochkartenleser und Datenausgabe per Schnelldrucker. Diese Geräte unterliegen im Gegensatz zur rein elektronisch arbeitenden Zentraleinheit den physikalischen Gesetzen der Reibung und der Massenträgheit. Der heute bereits erreichte hohe Entwicklungsstand dieser Geräte läßt ihre Grenzen deutlich werden und zeigt, daß sich die bestehende Geschwindigkeitslücke auch in Zukunft nicht annähernd schließen lassen wird. Diese Tatsache fällt insbesondere bei der kaufmännischen Datenverarbeitung ins Gewicht, bei der, anders als bei der mathematisch-wissenschaftlichen Datenverarbeitung, große Datenmengen ein- und auszugeben sind, die relativ wenigen Verarbeitungsoperationen unterzogen werden. Zwar wird die Situation auf der Eingabeseite durch die in jüngerer Zeit aufkommende Magnetbandeingabe gemildert, jedoch kann auch dieses Verfahren nicht mit der internen Verarbeitungsgeschwindigkeit der Zentraleinheit Schritt halten. Eine nach dem Prinzip der Wirtschaftlichkeit betriebene Datenverarbeitung sollte daher nach Möglichkeit so organisiert werden, daß die Datenein- und ausgabe eingeschränkt und im übrigen weitgehend mit Hilfe der schnellen Speichergeräte der on-line-Peripherie (Trommel-, Platten- und Bandspeicher) abgewickelt wird. Dies betrifft sowohl die eigentlichen, dem Verarbeitungsprozeß zu unterwerfenden Daten, als auch die dazu erforderlichen Programme. Das Mittel zur Erreichung dieses Ziels heißt Integration. Unter integrierter Datenverarbeitung im engeren Sinne1 versteht man die Auswertung eines bestimmten Datenbestandes für alle möglichen Zwecke in möglichst einem einzigen Programmdurchlauf, wobei jede einzelne Information des Datenbestandes möglichst nur einmal in den Kernspeicher geholt werden sollte. Diese Definition läßt zu, daß integrierte Datenverarbeitung auf unterschiedlichen Integrationsstufen betrieben werden kann, wobei die Skala von der einfachen Zusammenfassung mehrer Verarbeitungsschritte in einem Programm bis zur geschlossenen Abwicklung eines ganzen Rechnungswesens reichen kann. Betrachtet 'Unter integrierter Datenverarbeitung im weiteren Sinne versteht man automatisierte Verarbeitung der gewonnenen Informationen in Erklärungs-, Prognose- und Entscheidungsmodellen. Diese hohe Stufe der integrierten Datenverarbeitung wird auch als ManagementInformationssystem (MIS) bezeichnet. Sie wird nicht Gegenstand der vorliegenden Arbeit sein.
10
1. Das Wesen der integrierten Datenverarbeitung und ein Ansatz zu ihrer Realisierung
man z.B. in einem Handelsbetrieb die Verarbeitung der Kundenbestellungen, so wird man die Bestelldaten per Lochkarte oder Magnetband eingeben und u.a. für folgende Zwecke auswerten: a) Feststellen der Lieferfähigkeit und gegebenenfalls Schreiben einer Kundenbenachrichtigung über die Lieferzeit b) Rechnungsschreibung (dabei Berechnung des Warenwertes und der MwSt) c) Buchung im Kundenkontokorrent d) Buchung in den Konten Forderungen, Erlös und Mehrwertsteuer e) Fortschreibung der Lagerbestände f) Steuerung des Lagerbestellwesens (Feststellen der Bestellpunkte, Berechnung der Bestellmengen und evtl. auch Schreiben der Lieferantenaufträge) g) Aufstellung diverser Umsatzstatistiken (nach Artikeln, Kunden, Bezirken etc.) h) Aufstellung diverser Lieferzeitstatistiken (nach Artikeln und nach Kunden) All diese Auswertungen werden bei einer hochintegrierten Datenverarbeitung mit einem einzigen Programm erledigt. Aus diesem Beispiel wird zugleich deutlich, daß eine integrierte Datenverarbeitung nur realisiert werden kann, wenn die folgenden zwei Probleme gelöst sind: Erstens müssen dem Programm neben den auf ein Minimum reduzierten externen Daten - im vorliegenden Beispiel die Bestelldaten: Datum, Kundennummern, Artikelnummern, Mengen — noch weitere interne Daten zur Verfugung gestellt werden; im vorliegenden Beispiel sind dies bestimmte Stammdaten, wie Kundenund Lieferantenadressen, Artikelpreise, Bestellpunkte etc., und bestimmte variable Zustandsdaten des Systems, wie Lagerbestände, Häufigkeitsverteilungen etc. Zum zweiten muß ein Großteil der bei der Datenverarbeitung entstehenden Resultate vorübergehend oder längerfristig auf externe Speicher ausgegeben werden; denn die Zahl der simultan über den Schnelldrucker ausgebbaren Datenkategorien ist eng begrenzt. Für die Lösung dieses vielschichtigen Datenein- und ausgabeproblems bietet sich die Verwendung eines externen Großspeichers mit wahlweisem Zugriff an, also z.B. ein Trommel- oder Plattenspeicher. Derartige Speicher lassen sich leicht zu einer zentralen Datenbasis für die integrierte Datenverarbeitung ausbauen, indem man auf ihnen alle im System vorkommenden stationären Dateien unterbringt, also z.B. die Kundendatei, die Lieferantendatei, die Artikeldatei, die allgemeine Kontendatei (Buchhaltung ohne Kontokorrent und Lagerkonten) etc. Diese Dateien können so organisiert werden, daß flir jeden Kunden, für jeden Lieferanten, für jeden Artikel, für jedes Konto etc. ein eigener Datensatz eingerichtet wird. Ein solcher Datensatz enthält die Stammdaten, ein Kontofeld und diverse Felder für statistische Resultate.
1. Das Wesen der integrierten Datenverarbeitung und ein Ansatz zu ihrer Realisierung
11
Mit dieser Konzeption wird es möglich, einerseits die Informationen der stets on-line geschalteten Datenbasis für die laufende Datenverarbeitung heranzuziehen und andererseits einen Großteil der dabei anfallenden Resultate wieder auf die Datenbasis zu speichern, die dadurch ein laufendes „updating" erfährt. Am eindrucksvollsten läßt sich dieses Zusammenspiel von Datenbasis und integrierter Datenverarbeitung am Beispiel der bereits erwähnten Verarbeitung der Kundenbestellungen erklären. Beschränkt man sich der Einfachheit halber auf die dort genannten Verarbeitungsphasen a bis e, so könnte das betreffende Programm etwa wie folgt ablaufen (vgl. dazu auch das Ablaufdiagramm auf S. 12/13): Zunächst werden die Konten „Journal", „Erlös", „Mehrwertsteuer" und „Forderungen" von der Datenbasis in den Kernspeicher geholt. Dann wird der erste Kundenauftrag per Lochkarte eingelesen. Aufgrund der darin angegebenen Kundennummer wird der zugehörige Kundensatz und aufgrund der angegebenen Artikelnummern werden die zugehörigen Artikelsätze von der Datenbasis in den Kernspeicher geholt. Jetzt wird mit Hilfe der Stammdaten des Kundensatzes der Rechnungskopf geschrieben, also Name und Anschrift. Ferner werden aus dem Kundenauftrag das Auftragsdatum und aus dem System das Datum des betreffenden Tages entnommen und auf die Rechnung geschrieben. Sodann wird Artikel für Artikel geprüft, ob die Bestellungen erfüllt werden können; dies geschieht durch Vergleichen der Bestellungen aus dem Auftrag mit den Salden (Lagerbeständen) der betreffenden Artikelkonten. Ist ein Artikel lieferbar, so wird die Bestellmenge mit dem Preis aus dem Artikelsatz multipliziert und es wird auf der Rechnung eine entsprechende Postenzeile geschrieben. Zugleich wird im Artikelkonto der Abgang gebucht und der neue Saldo (Lagerbestand) berechnet. Ist ein Artikel nicht lieferbar, so wird auf der Rechnung statt der Postenzeile eine Fehlanzeige gedruckt. Zugleich wird im Artikelsatz der Fehlbestand fortgeschrieben, der später für die Berechnung der Lagerbestellmenge benötigt wird. Nach der Verarbeitung einer Artikelnummer wird der betreffende Artikelsatz auf die Datenbasis zurückgeschrieben. Sind alle Artikelnummern einer Kundenbestellung verarbeitet, dann werden der gesamte Wert der Bestellung (Warenwert), die Mehrwertsteuer und die Rechnungssumme berechnet und auf die Rechnung geschrieben. Nun wird die Rechnungssumme im Kundenkonto gebucht und der Kundensatz wird zurück auf die Datenbasis geschrieben. Zugleich wird die Rechnungssumme für eine spätere Sammelbuchung im Konto „Forderungen" kumuliert. Der Warenwert wird auf dem Erlöskonto und die Mehrwertsteuer auf dem Mehrwertsteuerkonto gebucht. Sämtliche Buchungen werden simultan im Journalkonto vorgenommen. Nun wird der nächste Kundenauftrag per Lochkarte eingelesen und der zuvor beschriebene Prozeß wiederholt sich.
12
1. Das Wesen der integrierten Datenverarbeitung und ein Ansatz zu ihrer Realisierung B E I S P I E L E I N E R I N T E G R I E R T E N V E R A R B E I T U N G VON K U N D E N A U F T R A E G E N
1. Das Wesen der integrierten Datenverarbeitung und ein Ansatz zu ihrer Realisierung
13
14
1. Das Wesen der integrierten Datenverarbeitung und ein Ansatz zu ihrer Realisierung
Sind alle Kundenaufträge verarbeitet, dann wird die Sammelbuchung der Forderungen vorgenommen. Danach werden die Konten „Journal", „Erlös", „Mehrwertsteuer" und „Forderungen" auf die Datenbasis zurückgeschrieben. Anhand dieses Beispiels wird das Wesen einer integrierten Datenverarbeitung mit zentraler Datenbasis deutlich: Ein einziges Programm wertet eine nichtstationäre Datei, hier also den Kartenstapel der Kundenaufträge, nach allen möglichen Gesichtspunkten aus. Dabei wird simultan mit und auf eine Vielzahl von stationären Dateien der Datenbasis gearbeitet, hier also u.a. mit der Kundendatei, der Artikeldatei und der allgemeinen Kontendatei. Umgekehrt gilt aber auch, daß eine Vielzahl von Programmen nacheinander mit und auf ein und dieselbe stationäre Datei arbeiten kann; z.B. wird die Kundendatei nicht nur für die Bestellverarbeitung, sondern u.a. auch für die Verarbeitung des Zahlungseinganges und des Auftragsstornos, sowie für die Durchfuhrung der ZahlungsfristenÜberwachung benötigt. Das obige Beispiel macht ferner die Vorteile des beschriebenen Konzeptes deutlich: a) Die zeitraubende Dateneingabe per Lochkarte wird auf das unbedingt erforderliche Minimum reduziert, denn viele der in einem Programm benötigten Daten befinden sich auf der Datenbasis im direkten Zugriff des Systems und können wesentlich schneller als dies per Lochkarte möglich wäre, in den Kernspeicher geholt werden. Es werden also im Idealfall nur noch die Daten zur Initialisierung des Verarbeitungsprozesses und zur Versorgung des Prozesses mit aktuellen Parametern per Lochkarte eingegeben. b) Die zeitraubende Datenausgabe per Schnelldrucker wird reduziert oder läßt sich zumindest auf Zeiten geringerer Auslastung der Anlage verlagern. Sämtliche Buchungen und statistischen Resultate werden während ihrer Entstehung nicht ausgedruckt, sondern in bestimmten Dateien auf der Datenbasis gespeichert. Von dort können sie bei Bedarf vollständig oder teilweise abgerufen und ausgedruckt werden. c) Die zeitraubenden Operatoreingriffe und Systemumrüstungen werden entscheidend reduziert, da eine Vielzahl von Arbeitsgängen mit einem einzigen Programm erledigt wird und ein Großteil der Datenein- und -ausgabe wie gesagt über die Datenbasis abgewickelt wird. d) Sämtliche in einem Programm erzeugten und auf die Datenbasis gebrachten Informationen stehen für andere Programme oder für einen wiederholten Durchlauf desselben Programms direkt zur Verfügung. Viele Programme benutzen diese Informationen nicht nur als Randbedingungen, sondern führen zugleich auch ein updating durch. Dadurch sind die Informationen der Datenbasis bei planvollem Einsatz der betreffenden Programme stets auf dem neuesten Stand.
1. Das Wesen der integrierten Datenverarbeitung und ein Ansatz zu ihrer Realisierung
15
Die genannten Möglichkeiten dieses Konzepts legen es nun nahe, das System zu einem Instrument der Management-Information auszubauen, denn ebenso wie die Informationen der Datenbasis etwa zur Rechnungsschreibung bereitgestellt werden, könnte es Programme geben, die der Bereitstellung von Dispositionsund Entscheidungsdaten dienen. In der Tat eignet sich die hier vorgestellte Konzeption der Dateien mit standardisierten Datensätzen besonders gut für einen selektiven Zugriff zu bestimmten Informationen und kommt damit dem Bedürfnis des Management nach gezielter Information weit entgegen. Im Idealfall — wenn die Datenerfassung und -Verarbeitung in einem Unternehmen vollständig ist und wenn die Routineprogramme in so kurzen Zyklen ablaufen, daß man sich einer realtime-Verarbeitung annähert —, könnte man sich in jedem Augenblick mit Hilfe von Anfragen an die Datenbasis über den neuesten Zustand des Unternehmens informieren, während gleichzeitig im Hintergrund die Routineprogramme weiterlaufen und das updating der Informationen besorgen. Allerdings wäre dazu strenggenommen eine Anlage mit einem multiprogrammingoder timesharing-Betriebssystem und räumlich abgesetzten Datenstationen erforderlich, denn nur so wäre es möglich, neben der Routineverarbeitung simultan noch ein oder mehrere Anfrageprogramme auf die Datenbasis ablaufen zu lassen. Jedoch läßt sich dieses Konzept der Management-Information näherungsweise auch bei Anlagen mit einfachen Betriebssystemen realisieren; denn die laufenden Routineprogramme können jederzeit unterbrochen werden, um ein Anfrageprogramm ablaufen zu lassen. Im Interesse eines rationellen Datenverarbeitungsbetriebes wird man allerdings Anfragen an die Datenbasis bei einfachen Betriebssystemen hauptsächlich in den Zeiten zwischen zwei Routineläufen starten. Nach dieser einleitenden Beschreibung des Systems und der darin gegebenen Möglichkeiten, soll nun versucht werden, dieses System für einen Modellbetrieb aufzubauen. Die Modellbetrachtung wird gewählt, um das Wesentliche und allen Betrieben Gemeinsame, frei von allen individuellen Besonderheiten eines konkreten Betriebes darstellen zu können und um die Programme nicht zu umfangreich und damit unverständlich werden zu lassen. Eine Erweiterung und Anpassung der Programme an die tatsächlichen Erfordernisse eines konkreten Betriebes dürfte einem geübten Programmierer anhand der durch das Modell aufgezeigten Leitlinien nicht schwerfallen. Das System ist für byteorientierte Datenverarbeitungsanlagen konzipiert worden, da diese im Bereich der kommerziellen Datenverarbeitung dominieren. Sämtliche Programme sind in der Sprache 360/ASSEMBLER unter D 0 S abgefaßt. Der Test der Programme wurde mit Siemens-Anlagen vom Typ 4004/35 und 4004/45 durchgeführt; die zentrale Datenbasis war auf einem Plattenspeicher des Typs 4004/564 untergebracht.
2. Die Beschreibung des Modells eines Handelsbetriebes 2.1. Allgemeine Prämissen Dem im folgenden zu entwickelnden integrierten Datenverarbeitungssystem mit zentraler Datenbasis liegt das Modell eines Handelsbetriebes zugrunde. Dieses Modell wurde so primitiv wie irgend möglich gehalten, um die Darstellung der Systemzusammenhänge und Computerprogramme nicht durch Details zu belasten, die keine grundsätzlichen Gesichtspunkte für die Ausgestaltung des Systems liefern. Auf der anderen Seite mußte jedoch ein gewisses Minimum an Einzelheiten in die Modellkonstruktion einbezogen werden, um eine sinnvolle Demonstration der Programme zu ermöglichen. Im einzelnen wurde angenommen, daß der Modellbetrieb 3 feste Lieferanten hat, die je eine Artikelart liefern. Die größte Liefermenge ist 999 Mengeneinheiten, der größte Gesamtwert einer Lieferung beträgt DM 99.999,99. Ferner hat der Betrieb 4 Stammkunden, die jeweils alle 3 Artikel kaufen können. Es wird nur an die Stammkunden verkauft. Alle Posten eines Kundenauftrages passen auf ein Rechnungsformular. Wenn der Lagerbestand eines Artikels nicht ausreicht, um die gesamte Bestellmenge zu decken, wird der betreffende Artikel überhaupt nicht geliefert. Der höchste Artikelpreis beträgt DM 99,99, die höchste Bestellmenge 999 Mengeneinheiten und die höchste Rechnungssumme DM 99.999,99. Es werden nur Artikel gefuhrt, die einem Mehrwertsteuersatz von 11% unterliegen. Außer der Mehrwertsteuer werden für den Betrieb keine weiteren Steuern berücksichtigt. Das Personalwesen und die Lohnbuchhaltung werden aus der Modellbetrachtung ausgeklammert.
2.2. Der Aufbau und die Abwicklung der Buchhaltung Der Aufbau und die Abwicklung der Buchhaltung sind in der nachfolgenden Übersicht schematisch dargestellt, soweit dies die Konten der Bilanz und der Gewinn- und Verlustrechnung, sowie die Lagerbuchhaltung betrifft. Nicht abgebildet sind die Buchungen im Lieferanten- und Kundenkontokorrent, die jedoch bei der Konstruktion der Programme berücksichtigt werden. Zur besseren Orientierung sind die Bestands- und Bewegungsgrößen auf den Konten durch indizierte Symbole dargestellt worden. Der Index 1 bezeichnet Anfangsbestände, der Index 2 Endbestände. Die Bewegungsgrößen sind entweder nicht indiziert oder, sofern es auf einem Konto sowohl Zu- als auch Abgänge gibt, durch die Indices „zu" bzw. „ab" gekennzeichnet. Die Salden auf den Konten der GewinnundVerlustrechnung sind mit (2) indiziert, weil sie am Periodenende ermittelt werden. Die Salden der Gewinn- und Verlustrechnung der Vorperiode sind mit (1) indiziert.
2.2 Der Aufbau und die Abwicklung der Buchhaltung
17
Die verwendeten Symbole bedeuten im einzelnen: Aj:
Anfangsbestand des Anlagenkontos
Azu:
Anlagenzugänge (Kaufwert ohne Vorsteuer)
Aat,:
Anlagenabgänge (Verkaufswert ohne Mehrwertsteuer)
A2:
Endbestand des Anlagenkontos (Saldo)
AVS: Vorsteuer der Anlagenkäufe AMW: Mehrwertsteuer der Anlagenverkäufe Bi:
Anfangsbestand des Warenkontos
B:
Wareneinkauf (Warenwert ohne Vorsteuer)
B2:
Endbestand des Warenkontos aufgrund der Inventur (vorgegebener Saldo)
BVS:
Vorsteuer des Wareneinkaufs
b'i:
Anfangsbestand des Artikels i (Menge)
ba b :
Lagerentnahme des Artikels i (Menge)
b' zu :
Lagerzugang des Artikels i (Menge)
b'2:
Endbestand des Artikels i (Menge) (aufgrund der Inventur bereinigter Saldo)
Ct:
Anfangsbestand der Forderungen
Czu:
Zugang an Forderungen aus Warenverkäufen (M + MMW)
Cat,:
Abnahme der Forderungen durch Kundenzahlungen
C2:
Endbestand an Forderungen (Saldo)
Dx:
Anfangsbestand des Bankkontos
D2:
Endbestand des Bankkontos
Et:
Anfangsbestand des Eigenkapitalkontos
E2:
Endbestand des Eigenkapitalkontos (Saldo)
F!:
Anfangsbestand des Kontos Verbindlichkeiten
Fzu:
Zugang an Verbindlichkeiten aus Wareneinkäufen (B + BVS)
Fab:
Abnahme der Verbindlichkeiten durch Zahlungen an die Lieferanten
F2:
Endbestand an Verbindlichkeiten (Saldo)
Gj:
Anfangsbestand an sonstigen Verbindlichkeiten (MWSteuer-Verbindl.)
Gzu:
Zugang an sonstigen Verbindlichkeiten (Saldo des Mehrwertsteuerkontos)
2 N i e m e y e r , Integr. D a t e n v e r a r b e i t u n g s s y s t e m
18
Gab:
2. Die Beschreibung des Modells eines Handelsbetriebes
Abnahme der sonstigen Verbindlichkeiten durch Zahlung von MW-Steuer an das Finanzamt
G2:
Endbestand an sonstigen Verbindlichkeiten (Saldo)
Hj:
Gewinn (Verlust) der Vorperiode
H a b:
Gewinnauszahlung
H2:
Saldo des Gewinnkontos am Ende der Periode (Gewinnvortrag oder Verlustvortrag)
H:
Bilanzsaldo = G + V-Saldo
I:
Materialkosten während der Periode
I(x):
Materialkosten der Vorperiode
1(2):
Materialkosten am Ende der Periode (I( 2 ) = I, Saldo)
IVS:
Vorsteuer aus Materialeinkäufen
J:
Lohnkosten während der Periode
J(i):
Lohnkosten der Vorperiode
J( 2 ):
Lohnkosten am Ende der Periode (J( 2 ) = J, Saldo)
K:
Abschreibungen(= X% von A t + A zu - Aab)
K(!):
Abschreibungen der Vorperiode
K(2):
Saldo ( K ( 2 ) = K )
L:
Wareneinsatz (einschließlich Schwund) während der Periode (L=B! +B-B2)
Lt:
Wareneinsatz der Vorperiode
L2:
Wareneinsatz am Ende der Periode (L( 2 ) = L, Saldo)
M:
Erlös während der Periode (Warenwert ohne Mehrwertsteuer)
M(!)!
Erlös der Vorperiode
M(2):
Erlös am Ende der Periode (M(2) = M, Saldo)
MMW: Mehrwertsteuer der Warenverkäufe Bilanz! Anlagen Waren Forderungen (sonstige Forderungen Bankguthaben (Verlust
A, Bi Ci -G,) Di -HO
Eigenkapital E, Verbindlichkeiten F, sonst. Verbindlichkeiten G , (Bankschulden -Di) Gewinn
Hi
19
2.2 Der Aufbau und die Abwicklung der Buchhaltung
Gewinn- und Verlustrechnung! Materialkosten Lohnkosten Abschreibungen Wareneinsatz Gewinn
Erlös
M(i)
J(i) K(i) L(i)
(Verlust
Hi
-Ht)
Waren 30000
Anlagen 00000 Ai Azu
bipi Aab K A 2 = Saldo
bV B-b2p2 X
3
b p
3
bipi
Wert der Inventur (= Saldo)
B2 — b | p |
^bipi L = Differenz
Artikel 1
Artikel 2
Artikel 3
bl
b?
b?
bzu
bzu
bL
bab b 2 Inventur Forderungen 10000
Bank 13000
Ci
D,
c
Eigenkapital 00007 E, r
= M + MMW
b|b b 2 Inventur
bab b 2 Inventur
ab
E 2 = Saldo
--ab I + IVS
Cab C2 = Saldo
J A ab + AMW
A zu + AVS Gab (Zahlg. MwSt) H (Gewinnentnahme) D 2 = Saldo
20
2. Die Beschreibung des Modells eines Handelsbetriebes
sonstige Verbindlichkeiten 17500
Verbindlichkeiten 17000
G,
Fi
F Z U = B + BVS
Gab
Fab
Gzu
F 2 = Saldo
G 2 = Saldo
Gewinn 98900 Hi
Materialkosten 40200
Lohnkosten 43000
I
J 1(2) = Saldo
Hab
J(2) = Saldo
H2 Abschreibungen 48000
Wareneinsatz 40100
K
L
M L(2)
K(2)
Erlös 80000 M(2)
Vorsteuer + Mehrwertsteuer 17300 BVS
MMW
IVS AVS AMW G z u = Saldo Bilanz 2 Anlagen Waren Forderungen (sonstige Forderungen Bankguthaben (Verlustvortrag (Verlust
a2 b2 C2 -g2) d2 -H2)
Eigenkapital E2 Verbindlichkeiten f2 sonstige Verbindlichkeiten g2 -d2) (Bankschulden Gewinnvortrag h2 Gewinn H = Saldo
-H)
Gewinn- und Verlustrechnung 2 Materialkosten Lohnkosten Abschreibungen Wareneinsatz Gewinn
1(2) J(2) K(2) L(2)
H = Saldo
Erlös
M ( 2)
2 . 2 Der Aufbau und die Abwicklung der Buchhaltung
21
Im einzelnen funktioniert das Rechnungswesen des Modellbetriebes wie folgt: A. Buchung des Warenumschlages a) Buchung des Wareneingangs Die Buchung des Wareneingangs (B) geschieht Posten für Posten auf dem Warenkonto 3 0 0 0 0 und dem Vorsteuerkonto 17300 (BVS) einerseits und den entsprechenden Lieferantenkonten des Kontokorrent (b'p 1 ) andererseits. Zugleich wird auf den Artikelkonten der mengenmäßige Lagerzugang (b' zu ) gebucht. Die Verbindlichkeiten werden während des Programmablaufs kumuliert und zum Schluß als Sammelbuchung ( F z u = B + BVS) auf das Verbindlichkeitenkonto 17000 übertragen. b) Buchung des Warenausgangs Die Buchung des Warenausgangs (M) geschieht Posten für Posten auf dem Erlöskonto 8 0 0 0 0 und dem Mehrwertsteuerkonto 17300 (MMW) einerseits und den entsprechenden Kundenkonten des Kontokorrent andererseits. Zugleich wird auf den Artikelkonten der mengenmäßige Lagerabgang (bj, b ) gebucht. Die Forderungen werden während des Programmablaufs kumuliert und zum Schluß als Sammelbuchung ( C z u = M + MMW) auf das Forderungskonto 10000 übertragen. B. Buchung der Zahlungen Der gesamte Zahlungsverkehr wird ausschließlich über das Bankkonto abgewickelt. Vorübergehende Schuldsalden sollen durch einen ausreichend großen Kreditrahmen abgedeckt sein. a) Buchung der Kundenzahlungen Die Kundenzahlungen (C a b) gehen auf das Bankkonto 13000. Die Gegenbuchung ( C a b ) erfolgt auf dem Forderungenkonto 10000 und den entsprechenden Kundenkonten des Kontokorrent. b) Buchung der Lieferantenzahlungen Die Lieferantenzahlungen ( F a b ) erfolgen vom Bankkonto 13000. Die Gegenbuchung ( F a b ) erfolgt auf dem Verbindlichkeitenkonto 17000 und den entsprechenden Lieferantenkonten des Kontokorrent. c) Buchung von Anlagenkäufen Anlagenkäufe werden sofort vom Bankkonto 13000 bezahlt ( A z u + AVS). Die Gegenbuchungen erfolgen auf dem Anlagenkonto 0 0 0 0 0 ( A z u ) und dem Vorsteuerkonto 17300 (AVS). d) Buchung von Anlagenverkäufen Anlagenverkäufe werden gegen sofortige Zahlung ( A a b + AMW) auf das Bankkonto 13000 getätigt. Die Gegenbuchungen erfolgen auf dem Anlagenkonto 0 0 0 0 0 ( A a b ) und dem Mehrwertsteuerkonto 17300 (AMW).
22
Die Beschreibung des Modells eines Handelsbetriebes
e) Buchung der Gewinnentnahme Die Gewinnentnahme (H) wird auf dem Gewinnkonto 98900 einerseits und dem Bankkonto 13000 andererseits gebucht. f) Buchung der Mehrwertsteuerzahlungen Die Mehrwertsteuerzahlungen (Gab) an das Finanzamt werden vom Bankkonto 13000 aus vorgenommen. Die Gegenbuchungen (Gab) erfolgen auf dem Konto sonstige Verbindlichkeiten 17500. C. Buchung der Kosten
Für den Modellbetrieb gibt es nur 3 Kostenarten, nämlich Material-, Lohn- und Abschreibungskosten. Es wird angenommen, daß die Entstehung der Materialkosten (Büromaterial, Treibstoff etc.) und der Lohnkosten zeitlich mit den Ausgaben zusammenfällt und daß auch diese Ausgaben über das Bankkonto beglichen werden. Die Buchung der Abschreibungen geschieht im Zuge des Periodenabschlusses. a) Buchung der Materialkosten Die Buchung der Materialkosten (I) erfolgt auf dem Materialkostenkonto 40200 und dem Vorsteuerkonto 17300 (IVS) einerseits und dem Bankkonto 13000 (I + IVS) andererseits. b) Buchung der Lohnkosten Die Buchung der Lohnkosten (J) erfolgt auf dem Lohnkostenkonto 43000 einerseits und dem Bankkonto 13000 andererseits. D. Buchungen im Zuge des Periodenabschlusses
a) Buchung der Abschreibungen Sämtliche Gegenstände des Anlagevermögens sind auf einem Anlagenkonto zusammengefaßt. Die Abschreibungen (K) werden mit einem konstanten Prozentsatz von dem zum Jahresende vorhandenen Buchwert aller Anlagen (Aj + A zu - A ab ) auf dem Anlagenkonto 00000 gebucht. Die Gegenbuchung erfolgt auf dem Abschreibungskostenkonto 48000. b) Abschluß des Warenkontos und der Artikelkonten Zunächst werden durch Inventur die Endbestände (b 2 ) der einzelnen Artikel ermittelt. Dabei sind gegebenenfalls Korrekturbuchungen zur Herbeiführung des Kontenausgleichs auf den Artikelkonten vorzunehmen. Sodann wird die Bewertung der Endbestände (b'2) mit den Preisen (p 2 ) vorgenommen. Die Preise sind für das Programm frei bestimmbare Parameter, um jede beliebige Bewertungspolitik zu ermöglichen. Für die Testläufe wurden die zuletzt gezahlten Einkaufspreise angenommen. Die Summe des Warenwertes (B 2 = 2b 2 p 2 ) wird als Saldo (Endbestand) in das Warenkonto 30000 eingesetzt. Die Differenz
2.2 Der Aufbau und die Abwicklung der Buchhaltung
23
(L = B t + B - B 2 ) auf dem Warenkonto stellt den Wareneinsatz für den Verkauf (+ Schwund + Bewertungsverlust - Bewertungsgewinn) dar. Die Gegenbuchung (L) erfolgt auf dem Wareneinsatzkonto 40100. c) Abschluß des Mehrwert- und Vorsteuerkontos Der Saldo (G z u ) des Mehrwert- und Vorsteuerkontos 17300 wird auf das Konto „sonstige Verbindlichkeiten" 17500 gebucht. d) Aufstellung der Bilanz Die Salden der Konten Anlagen (A 2 ), Waren (B 2 ), Forderungen (C 2 ), Bank (D 2 ), Eigenkapital (E 2 ), Verbindlichkeiten ( F 2 ) und sonstige Verbindlichkeiten (G 2 ) werden ausgedruckt; der Bilanzsaldo (H) wird errechnet und ebenfalls ausgedruckt. e) Aufstellung der Gewinn- und Verlustrechnung Die Salden der Konten Materialkosten (I( 2 )), Lohnkosten (J( 2 )), Abschreibungs: kosten (K( 2 )), Wareneinsatz (L( 2 )) und Erlös (M (2 )) werden ausgedruckt; der Saldo des G + V-Kontos (H) wird errechnet und ebenfalls ausgedruckt. E. Buchungen im Zuge der Bilanzeröffnung Bei der erstmaligen Bilanzeröffnung werden die Anfangsbestände A t bis G j der Bilanzkonten über ein normales Buchungsprogramm eingegeben, wobei die Gegenbuchungen über das Bilanzeröffnungskonto 99999 laufen. Bei späteren Bilanzeröffnungen kann entweder genau so verfahren werden oder aber eine direkte Übernahme der Salden der Vorperiode erfolgen. F. Konvention hinsichtlich der Unterscheidung von Soll- und Habenbuchungen Bei der Konstruktion der Buchungsprogramme sollen aus Gründen der rationellen Speicherplatzausnutzung Sollbuchungen als negative und Habenbuchungen als positive Beträge verarbeitet werden.
3. Der Aufbau und die Organisation der Datenbasis
3.1. Der Datenträger Als Träger für die Datenbasis wird ein Plattenspeicher benutzt. Dieses Speichergerät hat zwar eine etwa lOmal längere Zugriffszeit als die sehr schnellen Trommelspeicher, jedoch bietet es diesen gegenüber folgende Vorteile: (1) leichte Auswechselbarkeit des Speichermediums (Plattenstapel), (2) größere Kapazität und (3) günstigere Kosten je gespeicherter Informationseinheit (Byte). Es wird vereinfachend angenommen, daß die gesamte Datenbasis für den Modellbetrieb auf einem einzigen Plattenstapel untergebracht werden kann, und zwar auf einem Plattenstapel des Bautyps Siemens 4004/564 bzw. IBM 2311. Bei umfangreicheren Datenbasen kann auf die Bautypen Siemens 4004-Großplattenspeicher, IBM 2314 und IBM 2302 oder auf mehrere gleichzeitig on-line geschaltete Platteneinheiten übergegangen werden. Plattenstapel bestehen in ihrer meist verbreiteten Ausführung (Siemens 4004/564, IBM 2311) aus 6 mit magnetisierbaren Schichten versehenen Platten, die auf einer Welle befestigt sind (Abb. 1).
CD
2400 U/min
0 Schreib-/ 1 ^—Leseköpfe
SpurO Spur 1 Spur 2 Spur 3 Spur 4 Spur 5
2 3 4 5 7
Spur 6 Spur 7
8 9
^-Spur9
|6 |
--Spur 8
Zylinder 202 Zylinder 1 Zylinder 0
Abb. 1 Die obere und untere Platte eines solchen Stapels sind nur auf der Innenseite, die übrigen Platten sind doppelseitig beschichtet. Auf diese Weise erhält man 10 Speicherflächen. In diese mit hoher Geschwindigkeit (2400 U/min) rotierenden Flächen greift ein Zugriffskamm mit 10 Schreib-/Leseköpfen, der radial zu den Platten beweglich ist und sich auf 203 verschiedene Positionen einstellen
3.1 Der Datenträger
25
läßt. Jede dieser Positionen bildet, virtuell aus der Sicht der Speicherlogik betrachtet, einen sogenannten Zylinder. Jeder der 203 Zylinder hat 10 Spuren, nämlich die durch die 10 Schreib-/Leseköpfe in einem bestimmten Zylinder überstrichenen Plattenflächen. Jede Spur kann maximal 3625 Bytes aufnehmen. Daraus ergibt sich eine Zylinderkapazität von maximal 3625 mal 10 = 36250 Bytes und eine Stapelkapazität von maximal 36250 mal 203 = 7,36 Mio Bytes. Jedes Byte kann ein alphanumerisches Zeichen (A—Z, 0—9, diverse Sonderzeichen), zwei gepackte Dezimalziffern (0—9, 0—9) oder eine Binärzahl zwischen 0 und 255 darstellen. Gespeichert werden sogenannte physikalische Sätze oder Blöcke; das sind jene Bytefolgen auf den Spuren, die mit einem einzigen Zugriff gelesen oder geschrieben werden. Ein physikalischer Satz kann den Bruchteil einer Spur, eine oder mehrere Spuren bzw. einen oder mehrere Zylinder belegen. Aus programmiertechnischen Gründen sollten physikalische Sätze jedoch nicht mehr als ca. 4000 Bytes haben. Jeder physikalische Satz kann einen oder mehrere logische Sätze enthalten oder auch nur einen Bruchteil eins logischen Satzes bilden. Im vorliegenden Fall werden die Dateien jedoch so organisiert, daß jeder physikalische Satz zugleich auch ein logischer Satz ist, der dann jeweils ein logisches Dateielement beschreibt, also einen Lieferanten, einen Kunden, einen Artikel oder ein Konto. Als Speicherungsform wird ausschließlich die gestreute verwendet. Diese ist dadurch gekennzeichnet, daß jeder Satz eine eigene Plattenadresse hat, über die er angesprochen werden kann. Die Plattenadresse enthält die Nummer der Platteneinheit2, die Zylindernummer, die Spurnummer und die Satznummer auf der Spur. Vor jedem Zugriff zur Datenbasis müssen der Ein- und Ausgabesteuerung diese Informationen durch das Programm bereitgestellt werden. Um die zeitraubenden Bewegungen des Zugriffskamms zu reduzieren, werden die Dateien nach dem sogenannten Zylinderkonzept organisiert. Bei diesem Konzept werden zunächst der Reihe nach alle 10 Spuren eines Zylinders mit den Sätzen eiper Datei belegt, bevor man zu einem neuen Zylinder übergeht. Man beginnt also im Zylinder x z.B. mit der Spur 0, belegt diese mit den ersten Sätzen der Datei, geht zur Spur 1 usw. bis zur Spur 9, geht dann zum Zylinder x + 1 und beginnt dort wieder mit der Spur 0 usw. Auf diese Weise können Dateien, sofern sie nicht den gesamten Plattenstapel belegen, auf wenige Zylinder konzentriert und damit einem möglichst schnellen Zugriff zugänglich gemacht werden. 2 Diese Angabe ist nur nötig, wenn die Datenbasis auf mehreren on-line geschalteten Platteneinheiten untergebracht ist.
26
3. Der Aufbau und die Organisation der Datenbasis
3.2. Die Dateien Die Datenbasis des hier behandelten Modells enthält folgende Dateien: a) b) c) d) e) f) g) h) j)
Lieferantendatei Kundendatei Artikeldatei Kontendatei Journaldatei Archivdatei (dient der Aufnahme der vollen Kontoblätter) Programmbibliothek Arbeitsbereich 1 Arbeitsbereich 2
Die Sätze innerhalb der Dateien a bis f sind standardisiert, d.h. sie sind innerhalb einer Datei gleich lang und gleichartig aufgebaut. Die Sätze haben die angegebenen Formate. (s.S. 27) Denkt man sich die Sätze einer bestimmten Datei zeilenweise untereinander geschrieben, so bilden sie eine sogenannte logische Matrix: Jede Zeile enthält ein logisches Dateielement und alle Spalten enthalten für alle Dateielemente einheitlich dieselben Merkmale. Beispiel: Artikeldatei Merkmale logische Dateielemente
Artikelnr.
Bezeichnung
Preis
Saldo (Bestand)
30001 30002 30003
Schraube Bolzen Splint
0,15 0,27 0,08
10720 13155 9217
Buchungen
Diese Konzeption bildet die Voraussetzung für eine rationelle Programmierung des Zugriffs zu den einzelnen Informationen innerhalb der Sätze.
3.2 Die Dateien
27
28
3. Der Aufbau und die Organisation der Datenbasis
3.3. Die Einführung von Nummernkreisen und eines Adressrechnungsalgorithmus Jeder logische Satz einer Datei muß zu seiner eindeutigen Identifikation mit einer Nummer versehen werden, die zugleich der Adressierung innerhalb der Datenbasis dient. Das einzuführende Numerierungssystem, auch Nummernkreis genannt, ist somit ein entscheidender Bestandteil der Däteiorganisation und bedarf daher sorgfältiger Überlegungen. Bei der Konstruktion von Nummernkreisen können zwei Prinzipien zur Anwendung gelangen: die klassifizierende und die laufende Numerierung. Die klassifizierende Numerierung verschlüsselt eine Vielzahl von Informationen über die zu identifizierenden Sätze nach einem mehrdimensionalen Ordnungsprinzip, während die laufende Numerierung lediglich eine Reihenfolge, also eine eindimensionale Ordnung wiedergibt. Der Informationsgehalt der klassifizierenden Numerierung ist also höher als der der laufenden Numerierung. Die klassifizierende Numerierung ist jedoch in der Regel durch hohe Redundanz, d.h. durch geringe Belegung der möglichen Zahlenkombinationen gekennzeichnet. Dagegen wird bei der laufenden Numerierung zumeist eine weit bessere Ausnutzung der möglichen Zahlenkombinationen erreicht, da hier die Redundanz, abgesehen von Reservestellen, nur von der höchstwertigen Dezimalstelle ausgehen kann. In bezug auf die Ableitung von Plattenadressen aus den Satznummern stehen die beiden Numerierungsprinzipien wie folgt zueinander: Die klassifizierende Numerierung würde bei direkter Ableitung der Plattenadressen zu einer sehr schlechten Ausnutzung des Speicherplatzes führen, da entsprechend der Redundanz des Nummernkreises eine sehr geringe Belegungsdichte auf der Platte erreicht würde. Eine Verdichtung der Belegung kann nur durch komplizierte Adressrechnungsalgorithmen herbeigeführt werden. Die laufende Numerierung erlaubt dagegen schon bei einfachster Adressrechnung eine nahezu vollständige Belegung des Speicherplatzes. Daher ist dieses Numerierungsprinzip für die Zwecke der Dateiorganisation zweifellos am geeignetsten. Um jedoch nicht völlig auf die Vorteile einer mehrdimensionalen Informationsverschlüsselung im Identifikator verzichten zu müssen, bietet sich eine kombinierte Anwendung beider Numerierungsprinzipien an. Die logische Satznummer besteht dann aus einem klassifizierenden und einem laufenden Teil, wobei allein letzterer zur Adressrechnung benutzt wird. Im vorliegenden Modell wurde für die Lieferanten-, Kunden- und Artikeldatei ein fünfstelliger Nummernkreis gewählt, bei dem die zwei höchstwertigen Dezimalstellen die Klassifikation der Sätze innerhalb eines Kontenplanes dienen
3.3 Die Einfiihrung von Nummernkreisen und eines Adressrechnungsalgoiithmus
29
und die restlichen drei Dezimalstellen die laufende Numerierung übernehmen. Mit diesem Nummernkreis können bis zu 999 Sätze je Datei verschlüsselt werden. Im einzelnen wurden folgende Satznummern vergeben:
Lieferantensätze Kundensätze Artikelsätze
logische Nr.
lfd. Nr.
17001-17999 10001-10999 30001-30999
1-999 1-999 1-999
Für die Sätze der Kontendatei wurde ein rein klassifizierendes Nummernsystem gemäß einem Kontenplan vorgesehen, da die Zahl der Konten relativ klein und somit die Zuordnung von logischer zu laufender Satznummer über eine einfache Zuordnungstabelle möglich ist. Im einzelnen wurden folgende Kontonummern vergeben: Konto Bank Forderungen Mehrwertsteuer (Vorsteuer) Verbindlichkeiten Waren Erlös sonstige Verbindlichkeiten (Forderungen) Anlagen Eigenkapital Gewinn Materialkosten Lohnkosten Abschreibungen Wareneinsatz Bilanzeröffnung
logische Nr.
lfd. Nr.
13000 10000 17300 17000 30000 80000 17500 00000 00007 98900 40200 43000 48000 40100 99999
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Sicherlich hätte sich für die Zwecke der Plattenadressierung auch ein Nummernsystem angeboten, welches die Plattenadressen direkt in der logischen Satznummer verschlüsselt, bei dem also die logischen Satznummern zusammengesetzt sind aus der Zylinder-, der Spur- und der laufenden Satznummer auf der Spur. Jedoch würde dieses Konzept eine spätere Erweiterung oder Umorganisation der Dateien auf der Platte erschweren, da durch die unmittelbare Bindung der Sätze an bestimmte Plattenadressen die Verschieblichkeit ausgeschlossen wird. Für das im Modell benutzte Nummernsystem ergibt sich nun folgender auf wiederholter Modulodivision beruhender Adressrechnungsalgorithmus:
3. Der Aufbau und die Organisation der Datenbasis
30
1. Schritt: Berechnung der laufenden Satznummer aus der logischen Satznummer Lieferantensätze: lfd. Nr. = 17XXX-17000 Kundensätze: lfd. Nr. = 10XXX-10000 Artikelsätze: lfd. Nr. = 30XXX—30000 Kontensätze: lfd. Nr. = (Ermittlung aus Zuordnungstabelle) 2. Schritt: Berechnung der laufenden Satznummer auf der Spur, lfd. Satznummer/Zahl der Sätze je Spur3 = Quotient und Rest Quotient = Zahl der vollen Spuren Rest = lfd. Satznummer auf der angefangenen neuen Spur Wenn der Rest = 0 ist, dann ist die lfd. Satznummer auf der Spur gleich der Zahl der Sätze je Spur 3 . Die Zahl der vollen Spuren ist um 1 zu vermindern, weil der Satz noch auf der vorangehenden (vollen) Spur steht, diese aber als angefangene (neue) Spur zu zählen ist. 3. Schritt: Berechnung der relativen Zylindernummer und der absoluten Spurnummer. Zahl der vollen Spuren/Zahl der Spuren je Zylinder (= 10) = Quotient und Rest Quotient = relative Zylindernummer Rest = absolute Spurnummer 4. Schritt: Berechnung der absoluten Zylindernummer relative Zylindernummer + Zylindernummer des Dateianfangs4 = absolute Zylindernummer Beispiel 1
Zylindernummer des Dateianfangs (Untergrenze) = 158, Zahl der Sätze je Spur (Satzzahl) = 10, logische Satznummer = 17142 Schritt 1: Schritt 2: Schritt 3: Schritt 4:
lfd. Satznr. = 17142 - 17000 = 142 lfd. Satznr. auf der Spur = Rest von (142/10) = 2 Zahl der vollen Spuren = [142/10]5 = 14 relative Zylindernummer = [14/10] = 1 absolute Spurnummer = Rest von (14/10) = 4 absolute Zylindernummer = 158 + 1 = 159
Die Plattenadresse des Satzes 17142 ist also: Zylindernummer = 159, Spurnummer = 4, Satznummer auf der Spur = 2. 3
Zur Berechnung der Zahl der Sätze je Spur vgl. S. 31 D i e Zylindernummer des Dateianfangs ergibt sich aus der Zuweisung der Dateien auf bestimmte Plattenbereiche, vgl. Kap. 4.1.2. s D a s Zeichen [ 1 bedeutet: der ganzzahlige Teil von . . . 4
3.3 Die Einfuhrung von Nummernkreisen und eines Adressrechnungsalgorithmus
31
Beispiel 2 Untergrenze = 151, Satzzahl = 5, logische Satznummer = 30140 Schritt 1: Schritt 2:
lfd. Satznr. = 30140 - 30000 = 140 lfd. Satznr. auf der Spur = Rest von (140/5) = 0 Bei Rest = 0 gilt: lfd. Satznr. auf der Spur = Zahl der Sätze je Spur, also lfd. Satznr. auf der Spur = 5 Zahl der vollen Spuren = [140/5] - 1 = 27 relative Zylindernummer = [27/10] = 2 absolute Spurnummer = Rest von (27/10) = 7 absolute Zylindernummer = 151 + 2 = 153
Schritt 3: Schritt 4:
Die Plattenadresse des Satzes 30140 ist also: Zylindernummer = 153, Spurnummer = 7, Satznummer auf der Spur = 5. Die Zahl der Sätze je Spur ist eine dateispezifische Konstante, die sich aus der Spurkapazität (in Bytes) und der standardisierten Satzlänge (in Bytes) ergibt. Dabei gelten für die Platteneinheit Siemens 4004/564 bzw. IBM 2311 bei konstanter Satzlänge und Sätzen ohne Schlüsselfeld folgende Formeln 6 : Zahl der Sätze je Spur = 1 + [ 3 6 2 ^ ~
A
]
B A = 34 + Satzlänge ohne Kennfeld (in Bytes) B = 61 + 1.049 * Satzlänge ohne Kennfeld (in Bytes) Daraus ergeben sich für die Dateien des Modells folgende Satzzahlen je Spur: a) Lieferanten- und Kundendatei Satzzahl = 1 +
= io
b) Artikeldatei
c) Kontendatei e* l i ^ r 3625 - 3 4 - 1 9 6 , ,,, Satzzahl = l + [ 6 1 + L 0 4 9 M 9 6 ] = 13 d) Archivdatei u.
Satzzahl
6
i x r 3625 - 3 4 - 198 = 1 + t 6 l + 1.049 * 1 9 8 ] "
13
Vgl. Siemens Schriftenreihe „data praxis", Seite 6
4. Die Programme des integrierten Datenverarbeitungssystems
4.1. Programme zur Einrichtung und Verwaltung der Datenbasis 4.1.1. Dienstprogramm zur Etikettierung von Plattenspeichern (Siemens Dienstprogramm RAINIT) Das Programm RAINIT bereitet den Plattenspeicher für die Aufnahme der Dateien vor. Neben der Prüfung auf bereits vorhandene Etiketten und schadhafte Spuren wird an den Anfang der Platte zunächst ein Etikett (VOL1) mit dem symbolischen Gerätenamen des Speichers, mit der Archivnummer bzw. dem Archivnamen des Stapels und mit dem Namen des Eigentümers geschrieben. Ferner wird ein Etikettbereich (VTOC) mit Platz für die einzelnen Dateinamen und deren Plattenbereichen sowie deren Einrichtungs- und Freigabedatum reserviert. Schließlich werden an den Anfang einer jeden Spur eine Spuradresse und ein Spurkennsatz geschrieben. Die Spuradresse enthält im wesentlichen einen Anzeiger für die Brauchbarkeit der Spur, die Zylindernummer und die Nummer der betreffenden Spur. Der Spurkennsatz enthält Informationen über die Spur; insbesondere wird auf ihm später, bei der Belegung der Spur mit Datensätzen, der noch jeweils verfügbare Platz auf der Spur vermerkt. 7 Das Programm RAINIT muß zur Erfüllung seiner Funktionen mit bestimmten Parametern versorgt werden. Dazu dient die VOLIN-Steuerkarte. Der allgemeine Aufbau der VOLIN-Karte 8 für den hier interessierenden Zweck lautet wie folgt: 9 _VOLIN_SYSnnn, Archivnr. oder Name (maximal 6 Zeichen), Zylindernr. der Anfangsadresse des Etikettbereichs, Spurnr. der Anfangsadresse des Etikettbereichs, Spurnr. der Endadresse des Etikettbereichs, Zylindernr. der Endadresse des Ersatzspurenbereichs, Spurnr. der Endadresse des Ersatzspurenbereichs, Zahl der gewünschten Ersatzspuren,, ONA = Name des Eigentümers.
7
Weitere Einzelheiten über den Aufbau und die Funktion der Etiketten, der Spuradressen und Spurkennsätze sind den einschlägigen Handbüchern zu entnehmen. Vgl. Siemens System 4004 „Systemkonventionen" und „4004/35, 45, 55 PBS Dienstprogramme" Einzelheiten sind dem Handbuch Siemens „4004/35, 45, 55 PBS Dienstprogramme zu entnehmen. Q — bedeutet „blanc
4.1. Programme zur Einrichtung und Verwaltung der Datenbasis
33
Für das vorliegende Modellbeispiel wurden folgende Parameter gewählt: Symbolischer Name der Platteneinheit:SYS001 Archivname des Plattenstapels: DATBAS Zylindernr. der Anfangsadresse des Etikettbereichs: 0 Spurnr. der Anfangsadresse des Etikettbereichs: 1 Spurnr. der Endadresse des Etikettbereichs: 9 Zylindernr. der Endadresse des Ersatzspurenbereichs: 202 Spurnr. der Endadresse des Ersatzspurenbereichs: 9 Zahl der gewünschten Ersatzspuren: 20 0NA = ZNRZ - BLN Das Programm RAINIT wurde als Monitorlauf durchgeführt und hatte einschließlich der dazu erforderlichen Steuerkarten 10 folgenden Aufbau:
¡um //_ASSGN_SYS001, AI //_ , E iä S
oooooooooooooooooooooooooooooooooooooo© OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
4 . 2 . P r o g r a m m e fur d i e V e r a r b e i t u n g d e s W a r e n u m s c h l a g s
59
4.2- Programme für die Verarbeitung des Warenumschlags 4.2.1. Anwenderprogramm:WARENEINGANG Das Programm WARENEINGANG nimmt aufgrund von zusammensortierten Lieferanten- und Artikelkarten die buchtechnische Verarbeitung des Wareneingangs vor. Es werden gebucht: Kreditoren, Wareneinkauf, Vorsteuer, Bestandsveränderungen im Warenlager und Verbindlichkeiten. Sämtliche Buchungen werden zugleich auf einem Journalkonto vorgenommen. Die Buchungen erfolgen in den betreffenden Dateisätzen auf der Platte; ein Ausdrucken findet nicht statt (das Protokollieren der Journalbuchungen könnte jedoch durch eine einfache Programmerweiterung vorgesehen werden). Die Datenkarten sind so zu sortieren, daß die erste Karte des Stapels die Datumskarte ist, aus der das Buchungsdatum entnommen wird. Bei den nachfolgenden Karten müssen auf eine Lieferantenkarte stets eine oder mehrere Artikelkarten folgen, auf denen die Daten der Lieferungen des betreffenden Lieferanten untergebracht sind. Die Lieferantenkarten lösen dabei nur das Einlesen der Lieferantensätze von der Platte in den Kernspeicher aus. Die Artikelkarten bewirken ebenfalls das Einlesen der betreffenden Artikelsätze von der Platte in den Kernspeicher, liefern aber zugleich die für die Buchungen erforderlichen aktuellen Informationen: Liefermenge, Warenwert, Vorsteuer, Gesamtwert. Für das Modell wurden folgende Kartenformate gewählt: Datumskarte 12
D
1
-
XX Tag
2
9
XX Monat
-
6
XX Jahr
Lieferantenkarte -
7
71
evtl. weitere S t a m m d a t e n für Vergleichsoder Änderungszwecke
logische L Lieferantennummer
Artikelkarte 1 2
s
-
6 7
logische A Lieferantennummer
-
11 12
logische Artikelnummer
-
19 20 - 2 2 2 3 -
Bezeichnung
Liefermenge
leer
2627 - 3435 - 4142 Warenwert
Vorsteuer
48
Gesamtwert
60
4. Die Programme des integrierten Datenverarbeitungssystems Programmablaufschema : WARENEINGANG
Vorbereiten der Buchung im Kreditorkonto: Adr. des Feldes K T 0 K 0 R R nach Reg. 5 und 7 laden. Lieferantennummer in das Feld K T 0 N R , Gesamtwert der Lieferung aus der Artikelkarte in das Feld BETRAG und logische Nummer des Warenkontos 30000 in das Feld G E G K T 0 bringen. A l l dies sind A r beiten zur Aktualisierung der Parameter des Unterprogramms BUCHEN.
in das Unter Spi / Sprung BUCHEN mit // Programm prog (< Rück Rücksprungadressierung ( B A L 11, BUCHEN) \ (Bi
r~
4.2. Programme fur die Verarbeitung des Warenumschlags
r
S p r u n g in d i e L e s e r o u t i n e f ü r S ä t z e d e r Kon tendatei (BAL ll.READK)
Vorbereiten der Buchung im Warenkonto: Adr. d e s F e l d e s K 0 N T 0 nach Reg. 5 und 7 l a d e n . L o g i s c h e N u m m e r des Warenkontos 30000 n a c h K T 0 N R , L i e f e r a n t e n n u m m e r nach GEGK T 0 und N e t t o w a r e n w e r t a u s d e r A r t i k e l k a r t e nach BETRAG bringen
Rückschreiben des W a r e n k o n t o s auf die P l a t t e ; d a z u S p r u n g in d i e S c h r e i b r o u t i n e f ü r Sät. ze d e r Kontendatei (BAL 11, W R I T E K )
61
62
4. Die Programme des integrierten Datenverarbeitungssystems
Löschen von Reg. 6 und Laden der B l a t t nummer
U b e r t r a g e n des Datums aus dem F e l d DATUM in das Feld BUCHDAT des B u c h bereichs. F e r n e r Ubertragen des Saldos, der Z e i l e n nummer und der Blattnumm e r aus dem E i n - / A u e g a b e b e r e i c h der betreffenden Datei in die entsprechenden Felder SALD0, ZEILNR, B L A T T N R des B u c h b e r e i c h s
Inh. (Reg. 6) = Inh. (Reg. 6) + 1, d. h. Erhöhen der B l a t t n u m m e r um 1
X Speichern Inh. (Reg. 6) in das F e l d B L A T T N R
Löschen des R e g i s t e r s 6 und Laden mit d e r Numm e r der e r s t e n f r e i e n Buch zeile
Laden e i n e r 1 nach Reg. 6 (Zeilennumm e r für das neue Kontoblatt)
N0CHGUT1 Umladen Inh. (Reg. 6) nach Reg. 4 (Retten der Z e i l e n n u m m e r ) Ü b e r t r a g e n des Kontob incl. Saldo, Zeilennumm e r und B l a t t n u m m e r in das F e l d A B L A G E (Ein-/Ausgabebereich der Archivdatei)
Retten des Inhalts von R e g i s t e r 12
E i n s t e l l e n von Reg. 7 auf die A d r e s s e der 1. B u c h zeile des betr. Kontos im E i n - / A u s g a b e b e r e i c h der betreffenden Datei
NEXTZEIL
Inh. (Reg. 6) umi 11 \ vermindern und auf Null \ abfragen / (BCT 6, W E I T E R ) / Sprung in das Un ' t e r p r o g r a m m zur Ablage e i n e s Kontoblatts in die Archivdatei ( B A L 12, ARCH)
W i e d e r h e r s t e l l e n des alten Inhalts von Reg. 12
31
Inh. (Reg. 7) = Inh. (Reg. 7) + 19, d. h. Reg. 7 auf die A d r e s s e der nächsten B u c h z e i l e einstellen
4.2. Programme fur die Verarbeitung des Warenumschlags
63
4. Die Programme des integrierten Datenverarbeitungssystems
64
f
Ubertragen des Inhalts des B u c h b e r e i c h s (ohne S a l d o , Z e i l e n n u m m e r und B l a t t n u m m e r ) in d e n E i n - / A u s gabebereich der Journald a t e i ( a d r e s s i e r t m i t Reg. 7)
E r h ö h e n d e r in R e g . 4 g e retteten Zeilennummer um 1 in R e g . 10 und S p e i c h e r n d e r n e u e n Z e i l e n n u m m e r in d i e entsprechende Speicherstelle des Journalkontos
'ftückspeichern des \ . A r c h i v s a t z e s ; dazu S p r u n g in d a s U n t e r p r o g r a m m f ü r das Schrei b e n von A r c h i v s ä t z e n auf d i e P l a t t e v(BAL 11, W R I T E A )
BAL 11, A D R C A L C (Berechnen der Plattena d r e s s e des nächsten freien Archivsatzes)
Ubertragen des Inhalts des F e l d e s ABLAGE ( v o l l e s K o n t o b l a t t ) in das Feld ABL ( E i n - / Ausgabebereich der Archivdatei)
BAL 11, W R I T E A (Schreiben d e s Kontoblatts in d a s A r c h i v )
I— Retten der Registerinhalte 3, 4, 5 u n d 11 s o w i e d e r I n halte der Felder SATZZAHL und U G R E N Z E
E i n l e s e n d e s 1. S a t z e s d e r A r c h i v d a t e i (vgl. a n a l o g D A T E I V E R A EN DERUN GEN)
übertragen der Nummer des nächsten freien Arc h i v s a t z e s a u s d e m 1. A r c h i v s a t z in d a s F e l d R E F E
Erhöhen der Nummer des nächsten freien Archivsatzes um 1
JL. Wiederherstellen a e r alten I n h a l t e d e r R e g i s t e r 3, 4, 5 u n d 11 s o w i e d e r F e l d e r S A T Z Z A H L und U G R E N Z E
4.2. Programme für die Verarbeitung des Warenumschlags
5 N i e m e y e r , Integr. D a t e n v e r a r b e i t u n g s s y s t e m
65
66
4. Die Programme des integrierten Datenverarbeitungssystems
4.2. Programme fur die Verarbeitung des Warenumschlags
WARENEINGANG
IS *
te
¡s
n il
67
4. Die Programme des integrierten Datenverarbeitungssystems WARENEINGANG
4.2. Programme für die Verarbeitung des Warenumschlags WARENEINGANG
69
70
4. Die Programme des integrierten Datenverarbeitungssystems WARENEINGANG
oooooooooooooooooooooooooooooooooooooooooooooooooooooooo NNNN NNNNNNN
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o oo o o o o o o o
4.2. Programme für die Verarbeitung des Warenumschlags
71
WARENEINGANG
l2 i
i
? ISSISSISSSïSISffiliîIIfISIflilfSIISSSIIIIISïfiïSSSfSSfffS I>
72
4. Die Programme des integrierten Datenverarbeitungssystems WARENEINGANG
: ?
2 1
I
s
¡i 1 1
Il 11
4.2. Programme für die Verarbeitung des Warenumschlags
73
WARENEINGANG
o
ooooooooooooooooooooooooooooooooooooooooooooooooooooooo
oooooooooooooooooooooooooooooooooooooooooooooooooooooooo
4. Die Programme des integrierten Datenverarbeitungssystems WARENEINGANG
4.2. Programme fur die Verarbeitung des Warenumschlags
75
4.2.2. Anwenderprogramm: WARENAUSGANG Das Programm WARENAUSGANG nimmt aufgrund von zusammensortierten Kunden- und Artikelkarten die Rechnungsschreibung und die buchtechnische Verarbeitung des Warenausgangs vor. Es werden gebucht: Debitoren, Warenverkauf (Erlös), Mehrwertsteuer, Bestandsveränderungen im Warenlager und Forderungen. Sämtliche Buchungen werden zugleich auf einem Journalkonto vorgenommen. Die Buchungen erfolgen in den betreffenden Dateisätzen auf der Platte; ein Ausdrucken findet nicht statt (beim Vorhandensein eines zweiten Druckers könnte man die Buchungen im Journalkonto simultan protokollieren, was entsprechende Programmerweiterungen erfordern würde). Die Datenkarten sind so zu sortieren, daß die erste Karte des Stapels die Datumskarte ist, aus der das Buchungsdatum und die Nummer der beim vorangehenden Lauf dieses Programms zuletzt geschriebenen Rechnung zu entnehmen ist. Bei den nachfolgenden Karten müssen auf eine Kundenkarte stets eine oder mehrere Artikelkarten folgen, auf denen die Daten der Bestellungen des betreffenden Kunden untergebracht sind. Die Kundenkarten enthalten neben der Kundennummer das für die Rechnungsschreibung benötigte Datum der Bestellung und den Kundennamen, der für die Schreibung des Rechnungskopfes benötigt wird. Im übrigen lösen sie mittels der Kundennummer das Einlesen der Kundensätze von der Platte in den Kernspeicher aus. Die Artikelkarten enthalten die für die Rechnungsschreibung und Buchung erforderlichen Bestellmengen und lösen mit Hilfe der Artikelnummer das Einlesen der Artikelsätze von der Platte in den Kernspeicher aus. Für das Modell wurden folgende Kartenformate gewählt: Datumskarte
letzte D XX Tag
XX Monat
xx Jahr
Rechnungsnummer
Kundenkarte 1415 logische Kundennummer
-
35
D a t u m der Bestellung XX XX XX
Artikelkarte
logische Kundennummer
logische Artikelnummer
leer
Bestellmenge
——J
76
4. Die Programme des integrierten Datenverarbeitungssystems Programmablaufschema
(Übersicht):
WARENAUSGANG
ENDRECHy Rechngs. Summe (netto) s c h r e i b e n ; 11 % MWSt b e r e c h n e n u. s c h r e i ben; Rechnungss u m m e (brutto) b e r e c h n e n und schreiben
Buchen Debitor, E r l ö s , MWSt u. kumulieren der Forderungen Menge • Preis; Lagerbestand abbuchen; kumulieren der Rechnungssumme
SUCH KUND, Kundensatz einlesen
Rechnungskopf und A d r e s s e schreiben
4.2. Programme für die Verarbeitung des Warenumschlags P r o g r a m m a b l a u f s c h e m a (detailliert) : WARENAUSGANG
77
78
4. Die Programme des integrierten Datenverarbeitungssystems
4 . 2 . P r o g r a m m e f ü r die V e r a r b e i t u n g des W a r e n u m s c h l a g s
Retten Inh. (Reg. 11) in das Vollwort R E T T E
Übertragen des Wortes "SUMME" und des Rechnungsbetrages (netto) aus dem Feld SUMME In den Druckbereich
11, DRUCKO BAL (Drucken des Netto-Rechnungsbetrages)
79
80
4. Die Programme des integrierten Datenverarbeitungssystems
4.2. Programme fur die Verarbeitung des Warenumschlags
6 N i e m e y e r . Integr. D a t e n v e r a r b e i t u n g s s y s t e m
81
82
4. Die Programme des integrierten Datenverarbeitungssystems WARENAUSGANG
4.2. Programme für die Verarbeitung des Warenumschlags WARENAUSGANG
6*
83
84
4. Die Programme des integrierten Datenverarbeitungssystems WARENAUSGANG
oooooooooooooooooooooooooooooooooooooooooooooooooooooooo
85
4.2. Programme fur die Verarbeitung des Warenumschlags
WARENAUSGANG
S
s
I
ffSSIIlilISISISfiflSfSIiSSISSffflSIflflSIïSSiSIilSSfSISS
Hi-= I
ï||ls
1
I M I I 1 llïsï
s s
si
ï
w i f e « I Ils S J
«
l '^ïiliâ'ii.
H i ¡I I|
Ahl
i a.
I
s
i
I i i
5
s
î » !
-ssl
S 5
" Ï Î Î Î S Î ^ ;
I
g
! Sïîi?
fj
llllllllllîlllllllllls
Mi h *
i
555Ï
.
i
I J
86
4.D i e
P r o g r a m m e
des integrierten
Datenverarbeitungssystems
WARENAUSGANG
o o e o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o NNNNNMNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNIMNNNNNNNNNNNN OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOQOOOOOOOO
4.2. Programme für die Verarbeitung des Warenumschlags
87
WARENAUSGANG
3
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
>
NNNNNNNNNNNNNNNNNNNNnmfflnnnmnnnmminmmnnmnmnnnnnnmnmnmmmm'itm o o e o o o o o o o o o o o o o o o o o o o o o o o o o o o o e o o o o o o o o o o o o o o o o o o o o o o o o
4. Die Programme des integrierten Datenverarbeitungssystems WARENAUSGANG
IflIlilflffilSfifiïflSIIfiiiïIïîIflSflISîiSSiïiSlSIflfiî
4.2. Programme für die Verarbeitung des Warenumschlags
89
WARENAUSGANG
)o e o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
ooooooooooooco
90
4. Die Programme des integrierten Datenverarbeitungssystems
WARENAUSGANG
ooooooooooooooooooooooooooooooooooooo - 0-G0*>0
> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
98
4. Die Programme des integrierten Datenverarbeitungssystems ZAHLUNGEN
Io of ol ol oso so ol os ol osolo fo lo oi ol ol o^o o o o o o o- o-o-o- o- o- o- o- - - ^OOOOOOOOOOOOOOOOOOOO
* £ HÂsïi
r 3 ! 1
Î
r^-zÄ*
S Si 5
I o S
sj m m I ipi j«!,..... Î I i n ^ î û ^ ï m û î I * u* • \
I
1
I l î û ^ i î î â î =
1
i I
H s s
I §1 I
n ^ i - i
4.3. Anwenderprogramm Kunden- und Lieferantenzahlungen: ZAHLUNGEN
ZAHLUNGEN
I
11 !I
5 I
99
100
4. Die Programme des integrierten Datenverarbeitungssystems
ZAHLUNGEN
oo o o o o o o o
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOCOOOO oO o o o o o o o o o o o c o — - — "r-ajOO-'Nr'l^iri
MOI CM iNNiMNNNNNNNNNNNNNNAm mm!'im«iimwm(«(c>i'»mmci((i>m rt Jim « a* U- >. ... ^ » i>- m o. _» _i >_» -i
140
4. Die Programme des integrierten Datenverarbeitungssystems
PERI0DENABSCHLUSS
o o o o o o o o o o o o o o o o o o o o o o o o o o os^Nn^AONavo^ivn^inAr-«» o o o o o o o e o o o o o o o o o o o oo o—•o - a i l UllUrilIttU MIUK40IUMa4U. MMflceOILliUI st > c 4 4 u u i k . J U I K OUIUIIU >• 4 O u. »o
10'
«t Z Ut o Z 3 sc « tu » — tL tt k 4 a ^ 4 te UI3 KO. oo>w«i ^ ^H 4 »« ^n Z Ul IL Ho
Z s 4 c
O
Z «ZZ JhQI 4M&4 a 3 • -i
Ui »M SC ui a z at U UJ •• — — — — • « a _i x < o "i Ul 4 • ^ o U «_» «J hJ K« « •» « M uict eC tC tC et X U. HIUILUIOUIXIU«-WKM m ttaivazai-aza3M »4 4M43i4K4040M z w u S u * O 4 H tt H« M M M M (A O M -» Ul Ul -i Ul _» Ul UJ o z O u « o a o a o a u a a
» — -» -« -h o m »«O o « o o »— O — hz o x Q ac Q M |n I ï • \ « Zw -» 4 * «t Z Z 3 OC * Z " Mt tf OOl/l tt «N3D-» 9 » w Q O H'O* a •* -o -* -» r» >IU444
z III »z • ^ Z ui IZ 4 OC 111 u. Ul -I
O rt Wrt O O o— oo n u o o — o rfOa« e «a Ot r- I«» % u ui + «t -i a • -I 4 4 4XZWU ^ • 4M« » oNZ O UIIUNU14 u. u. »- oc % U1U40H c c m s h
Z * O U J > 4 k > > 4 ^ m z z *
4. Die Programme des integrierten Datenverarbeitungssystems AUSDRUCKEN V 0 N K 0 N T E N
oooooooooooooooooooooooooooooooooooooooooooooooooooooooo
I
149
4.5. Programme zur Gewinnung von Informationen aus der Datenbasis
AUSDRUCKEN V 0 N K0NTEN
S
SSISifSSISIflflfIIISISSIIfïIIlISIIïfISISfflliSSSISfSSSlS
I I E5Îil I s Il II I HkL zJkn x il l « lûLtsl =1 s IllISSilllllilIeiglIlIfllllIPllglsIlll «
©
•1 l! ¡1
h
•
m
1
r « ) c n
^
I I
«
s ^
o n
S j o ' - o t
m
m
«
• •
«
«M 4 » m « « M 1 I Q
s i il
*
MX
N
150
4. Die Programme des integrierten Datenverarbeitungssystems AUSDRUCKEN V 0 N K0NTEN
oooooooooooooooooooooooooooooooooooooooooooooooo NNNNNIMNnlNNIMNNNNNN NNNNNNNNNNNNNNNNN NNNNNNNNNNNN NN
oooooooooooooooooooooooooooooooooooooooooooooooo
4.5. Programme zur Gewinnung von Informationen aus der Datenbasis
151
4.5.3. Anwenderprogramm zur Gewinnung beliebiger Informationen aus der Datenbasis: ANFRAGEN Das Programm ANFRAGEN dient dem wahlweisen Zugriff zu den Informationen der Datenbasis mit Hilfe einfacher und komplexer Anfragen, die der Anwender im Rahmen bestimmter syntaktischer Regeln frei formulieren kann. Das Programm schöpft dabei die in diesem Modell gewählte Organisationsform der Datenbasis voll aus: Jede Datei der Datenbasis, die dem Zugriff dieses Programms unterliegt (Lieferanten-, Kunden-, Artikel-, Konten- und Archivdatei), ist als logische Matrix aufgebaut; d.h. jeder Satz einer Datei beschreibt ein logisches Dateielement mit Hilfe bestimmter Merkmale, weswegen die Dateielemente im folgenden auch als Merkmalsträger bezeichnet werden. Merkmalsträger sind also z.B. der Kunde Meyer, der Artikel XYZ oder das Konto 13000. Versteht man die einzelnen Sätze einer Datei als Zeilen der logischen Matrix, so findet man in einer bestimmten Matrixspalte für alle Merkmalsträger die Konkretisierungen eines bestimmten, allen Merkmalsträgern gemeinsamen Merkmals. Merkmale sind z.B. der Name, der Wohnort, der Saldo etc. Die Konkretisierungen, im folgenden auch Ausprägungen genannt, sind z.B. für das Merkmal „Name": Müller, Meyer etc. Die hier beschriebene Dateiorganisation gestattet ein relativ einfaches Durchsuchen einer Datei nach bestimmten Merkmalsträgern und ein relativ einfaches Aufsuchen und Ausdrucken bestimmter Merkmalsausprägungen. Einfache Anfragen: Anfragen an die Datenbasis können in der Weise formuliert werden, daß man bestimmte Sätze einer Datei mit Hilfe der logischen oder laufenden Satznummer anspricht und sich die Ausprägungen bestimmter Merkmale ausdrucken läßt; z.B. könnte man den Satz des Kunden mit der Nummer 10003 suchen und sich die Adresse und den Saldo des Kontos ausdrucken lassen. Anfragen dieser Art nennt man einfach. Man spricht nun allerdings auch dann von einer einfachen Anfrage, wenn mit ihr mehrere Sätze gleichzeitig gesucht werden, also z.B. die Artikelsätze 30001 bis 30005. Die begriffsbestimmenden Kennzeichen der einfachen Anfrage sind also nicht die Zahl Eins, sondern die Determiniertheit der Anzahl und die eindeutige Adressierbarkeit der gesuchten Sätze. Komplexe Anfragen: Komplexe Anfragen sind dagegen solche, bei denen sämtliche Sätze einer Datei daraufhin untersucht werden, ob sie bestimmte, vom Anwender vorgegebene Bedingungen erfüllen; z.B. werden alle Kunden gesucht, deren Name mit dem Buchstaben K anfängt und deren Wohnort Berlin ist. Erfüllt ein Satz die Bedingungen nicht, so wird er übergangen; erfüllt er sie, dann werden, wie bei der einfachen Anfrage, die Ausprägungen bestimmter, vom Anwender zu nennender Merkmale ausgedruckt.
152
4. Die Programme des integrierten Datenverarbeitungssystems
Suchausdruck (nur bei komplexen Anfragen): Die Bedingungen werden als Ausdrücke der Ereignisalgebra formuliert, und zwar wegen der besseren Übersichtlichkeit für den Anwender nur mit Hilfe einfacher Buchstaben- und Operationssymbole. Zugelassen sind die Buchstaben A bis Z und die Operatoren ( ) + und *. Es bedeuten: A bis Z: Merkmale (: Klammer auf ): Klammer zu +: logisches „Oder" (z.B. A+B+C: entweder A oder B oder C) *: logisches „Und" (z.B. B*D: sowohl B als auch D) Es gilt analog der gewöhnlichen Algebra, daß „*"-Operationen vor .^"-Operationen ablaufen. Diese Reihenfolge kann durch Klammern abgeändert werden. Beispiel: ((A + C) * D + B) * E. Parameterdefinitionen (nur bei komplexen Anfragen): Im Anschluß an den Suchausdruck müssen die Buchstabensymbole erklärt werden. Diese sogenannten Parameterdefinitionen haben folgendes Format: Buchstabe = Merkmalsname (Liste der Ausprägungen), Buchstabe = Merkmalsname (Liste der Ausprägungen), , Buchstabe = Merkmalsname (Liste der Ausprägungen) Im Modell sind folgende Merkmalsarten für die Parameterklammer vorgesehen: Textmerkmale (z.B. Namen), Zahlenmerkmale gepackt (z.B. Salden) und Zahlenmerkmale ungepackt (z.B. Satznummern). Für beide Arten von Zahlenmerkmalen ist die Angabe halboffener und geschlossener Intervalle zugelassen. Dabei gelten folgende Konventionen: — Zahl : Merkmalsausprägung im Plattensatz muß kleiner oder gleich „Zahl" sein Zahl : Merkmalsausprägung im Plattensatz muß größer oder gleich „Zahl" sein Zahl 1 — Zahl 2: Merkmalsausprägung im Plattensatz muß größer oder gleich „Zahll" und kleiner oder gleich „Zahl2" sein Wichtig ist zu beachten, daß für das vorliegende Modellbeispiel ungepackte Zahlenmerkmale stets 5-stellig und gepackte Zahlenmerkmale stets 7-stellig angegeben werden müssen, also daß nötigenfalls führende Nullen zu ergänzen sind. Die Ausprägungen von Textmerkmalen werden entweder in ihrer vollen Länge oder, falls gewünscht, von hinten verkürzt in die Parameterklammer eingesetzt. Letzteres gestattet z.B. das Suchen von Sätzen, bei denen die Ausprägungen eines Textmerkmals mit einem bestimmten Anfangsbuchstaben oder einer Anfangsbuchstabenkombination beginnen.
4.5. Programme zur Gewinnung von Informationen aus der Datenbais
153
Bei allen Merkmalsarten gilt, daß mehrere Ausprägungen (bzw. bei den Zahlenmerkmalen auch Ausprägungsintervalle) in logischer „Oder"-Verknüpfung in die Parameterklammer eingesetzt werden können. Beispiele: C = NAME (MEYER + MEIER + MAYER + MAIER) Es werden also beispielsweise Lieferanten gesucht, deren Name Meyer oder Meier oder Mayer oder Maier ist. B = NAME (A + B) Es werden beispielsweise Kunden gesucht, deren Name mit A oder B anfängt. A = KNR (-10003 + 10006 - 10010 + 10015 + 10018-) Es werden Kunden gesucht, deren Kundennumer kleiner/gleich 10003 oder von 10006 bis 10010 oder 10015 oder größer/gleich 10018 ist. Suchbefehl: Die Anfragen werden vom Anwender mit Hilfe standardisierter Suchbefehle gestellt, in denen die anzusprechende Datei, die Art der Anfrage, die auszudruckenden Merkmale und die Auswahlbedingungen für die zu suchenden Sätze verschlüsselt sind. Ein Suchbefehl kann (aufgrund der vorliegenden Programmauslegung) bis zu 320 Zeichen (Bytes) lang sein, die fortlaufend (ohne blancs) in bis zu 4 Lochkarten abgelocht werden. Dabei gelten folgende Befehlsformate: Einfache Anfragen (Format): Dateiname; Liste der Satznummern; Liste der auszudruckenden Merkmale Beispiele: KUNDEN ;10004,10001-10003;NAME,0RT, STRASSE WAREN;30003;BEZNG, PREIS K 0 NTEN;OOOO1;SALD0 LIEFER;17003,17002,17001;NAME,BZ1,BZ2,BZ3,BZ4,BZ5,BZ6,BZ7,BZ8, BZ9 ,BZ10,S A L D 0 Komplexe Anfragen (Format): Dateiname gereich aller vorhandenen Satznummern ;Liste der auszudruckenden Merkmale ;Suchausdruck;Parameterdefinitionen Beispiele: KUNDEN;1OOO1-1OOO4;NAME,SALD0;(A*B+C)*D ;A=N AME( AB+AC) ,B=0 RT (STUTTGART),C=NAME(A+B+C+D+E),D=SALD0(-OO2OOOO)
154
4. Die Programme des integrierten Datenverarbeitungssystems
K 0 NTEN;00001-00015 ;BZ 1 ,BZ2,BZ3,BZ4,BZ5 ,BZ6,BZ7,BZ8 ,BZ9,BZ10,SAL D0 ;A;A=KT0NR(13OOO+1OOOOH7OOO) ARCHIV ;00001-00020;BZ;BZ1,BZ2,BZ3,BZ4,BZ5,BZ6,BZ7,BZ8,BZ9,BZ10, SALD0 ;A*B;A=KT0 NR(13OOO),B=SALD0(999999R-) Aufgrund des Aufbaus der vorliegenden Modelldatenbasis ergeben sich für die verwendbaren Dateinamen und Merkmals- bzw. Parameternamen folgende Restriktionen: Dateinamen LIEFER KUNDEN WAREN K0NTEN ARCHIV
Merkmals-/Parameternamen LNR, NAME, 0RT, STRASSE, SALD0, BZ1, KNR, NAME, 0 R T , STRASSE, SALD0, BZ1, ANR, BEZNG, PREIS, SALD0, BZ1, , BZ10 KT0NR, SALD0, BZ1, , BZ10 KT0NR, SALD0, BZ1, BZ10
, BZ10 , BZ10
Die Merkmale BZ1 bis BZ 10 (Buchzeilen 1 bis 10) sollten jedoch nicht als Parameter verwendet werden. Wichtige Besonderheiten gelten bei einfachen und komplexen Anfragen an die K0NTEN- und die ARCHIV-Datei: Im Feld der Satznummern sind stets die laufenden Satznummern, niemals die logischen Kontonummern einzusetzen. Wird hingegen bei komplexen Anfragen der Parameter KT0NR verwendet, so sind im Parameterfeld die logischen Kontonummern einzusetzen. Eine andere Besonderheit ist zu beachten, wenn bei der komplexen Anfrage der Parameter SALD0 verwendet wird: Bei der Vorgabe der Ausprägungen dieses Merkmals muß berücksichtigt werden, daß die Salden positiv oder negativ sein können. Negative Salden (Sollsalden) sind daher in der niederwertigsten Stelle mit einem 11-er Überloch zu versehen. Außerdem müssen etwaige Intervallangaben in umgekehrtem Sinne erfolgen. Beispiele: a) Gesucht werden Sätze mit Sollsalden (absolut) größer oder gleich 1000,00: A= SALD0(-100000) b) Gesucht werden Sätze mit Sollsalden zwischen (absolut) 1000,00 und 2000,00: A=SALD0(0200000-0100000) c) Gesucht werden Sätze mit Sollsalden (absolut) kleiner oder gleich 1000,00: A=SALD0(O1OOOOÖ-) Schließlich gilt für komplexe Anfragen an die ARCHIV-Datei folgende Besonderheit: Sollen die „abgelegten Blätter" eines bestimmten Kontos (ausgenommen das Journalkonto) aufgesucht werden, so sind im Suchausdruck stets 2 Parameterangaben nötig, die durch ein logisches „Und" zu verknüpfen sind:
4.5. Programme zur Gewinnung von Informationen aus der Datenbasis
155
a) A=KT0NR(eine oder mehrere logische Kontonummern) b) B=SALD0(999999R-) Beispiel: ARCHIV; 00001-00020; SALD0; A*B; A=KT0NR (98900+13000),B=SAL D0(999999R-) Diese Maßnahme ist erforderlich, um zu verhindern, daß Blätter des Journalkontos ausgewählt werden, die zufällig in der ersten Buchzeile die Kontonummer des (bzw. der) gesuchten Kontos (bzw. Konten) enthalten. Sollen hingegen die Blätter des Journalkontos in der Archivdatei aufgesucht und ausgedruckt werden, so ist die Anfrage wie folgt zu formulieren: ARCHIV;00001-00020;BZ1,BZ2,BZ3,BZ4,BZ5,BZ6,BZ7,BZ8,BZ9,BZ10;A;A= SALD0(J0UR) Der Saldo darf dabei keinesfalls als auszudruckendes Merkmal erscheinen. Das Programm ANFRAGEN wurde für folgende Maximalgrößen des Suchbefehls und seiner Komponenten ausgelegt: a) b) c) d) e) f)
Suchbefehl: maximale Länge 320 Bytes Zahl der auszudruckenden Merkmale: maximal 11 Zahl der Parametersymbole im Suchausdruck: maximal 10 Zahl der Klammern im Suchausdruck (auf und zu = 1 Klammer): maximal 9 Inhalt einer Klammer bei den Parameterdefmitionen: maximal 200 Bytes Zahl der „Oder"-verknüpften Merkmalsausprägungen in der Parameterklammer: beliebig unter Beachtung von e) und a)
Diese Restriktionen sind durch einfache Programmänderungen abwandelbar. Die Grundidee für das Programm ANFRAGEN besteht darin, aufgrund der Angaben des jeweiligen Suchbefehls ein Suchprogramm zu kompilieren, und zwar als Unterprogramm desselben Programms ANFRAGEN. In dieses Unterprogramm kann dann unmittelbar nach Beendigung der Kompilation verzweigt werden, so daß die zeitraubenden Lade- und Bindephasen entfallen, was für eine möglichst kurze Antwortzeit von entscheidender Bedeutung ist. Der grundsätzliche Aufbau des Programms ANFRAGEN kann am besten aus dem nachfolgenden globalen Ablaufdiagramm entnommen werden. Für ein intensiveres Studium des Programms ist das anschließende ausfuhrliche Ablaufdiagramm gedacht.
4. Die Programme des integrierten Datenverarbeitungssystems
156
P r o g r a m m a L l a u f s c h e m a (Obersicht):
oooooooooooooooeoooooooooooooeoooecoeooooooooooooooeoooo oooooooooooooooooooooooooooooooooooooooooooooooooooooooo
188
4. Die Programme des integrierten Datenverarbeitungssystems
ANFRAGEN
Z» —t
ooooooooooooooooooooocooooooooooooooooooooooooc oocoooooo o-4N n 4 «« oe »-• w* w» H F< z - —• o u»n 4 4n ca « » U M n v a i U ' « « or« o ro TCM -J NM «h N» «4 m > «o O> tu »«IL«cao Z O- 4 O - Ot O — O — « O - MO» MO— MO" MO — NO> MO — MO — MO — MO — MO* x oazeHoeswoaneoaeaaoaao«aoaao«aoa>ao*aoaaoaaoa »o«» UXaXUUXUUXUUXUUXWUXVUKUUKUUXUUXUUXUUKUUXUUXUUXUUXU UXÖ
13*
4 OO
196
4. Die Programme des integrierten Datenverarbeitungssystems
ANFRAGEN
o o o o o o o o o o o o o o o o o oso»oo^Nn^n^sis» e o o o o e o o o ooo or«o MO O © oO CoOO zm MO IUP« a« 40 - MONN ff»O — «n n« «h MO* h« mO— K O 20>U10>KO>40* MM40u»a OM&oemoi b o a a o BM s o a a oMaOa-oMO» a c o a a o aM a X UUX UUX JXUUXUUXUUXUUXUOXUOKUUKOUXUUXUUXU
U l - >4 O Z« Ii o OO oo KMXO Z 4 0 0 »OO OOOO O --*o «Oite^oMïowweo uxaxouxuuxu
4.5. Programme zur Gewinnung von Informationen aus der Datenbasis
197
ANFRAGEN
o o o o o o o o o o o o o e ooo o^ ono ome oo o^o oo ot o mo o o © o o o o oo^omcmo o« ® o © e oe ^eNomc c o o« hc sc©oo ia«^ » o -•
or-«» o ^ N n « 0> » » » 0 0 O O O O O O O
N N M NNNNMNAmn«tim