anmelden  registrieren 
  Suchen
Home
 
Wer wir sind
 
Produkte
 
Service
 
Stiftung
 
Impressum
 
Shop
 Blog     Februar 5, 2012  
Anker Blog minimieren
Jun 1

Erstellt von: SuperUser
01.06.2010 19:24  RssIcon

Es ist manchmal wirklich nicht zu glauben, wie eng die Dinge miteinander verknüpft sind und wie vermeintliche Nichtigkeiten zu einem Problem werden können. Wir haben aus der nachfolgenden Begebenheit jedenfalls wieder etwas gelernt, das wir gerne mit Ihnen teilen möchten.

Zum Hintergrund: Wir verwenden bei Anker die SQL Reporting Services, um aus unserem ERP-System Berichte zu erstellen. Ein solcher Bericht, den es zu erstellen galt, hat mit unserer ERP-Zertifizierung zu tun. Wir haben ein sogenanntes MSC “Chain of Custody” – Zertifikat, was besagt, dass wir die notwendigen Kompetenzen haben, um Teil einer MSC Lieferkette zu sein, was insbesondere heißt, dass wir sicherstellen können, dass in einem Produkt, das als MSC-Produkt gekennzeichnet ist, auch wirklich MSC-Rohware enthalten ist.

Dieses Zertifikat wird einmal jährlich durch einen externen Auditor überprüft und ggf. erneuert. Dem Prüfer muss lückenlos die Verwendung der eingesetzten Rohware dokumentiert werden ebenso wie ein Plausibilitätsprüfung der eingesetzten Mengen.

Dieses wollten wir mit einem Report auf Basis der SQL Reporting Services automatisieren. Der Report greift auf die Fertigungsaufträge im ERP-System zu und stellt die IST-Meldungen den gebuchten Verbräuchen gegenüber. Sodann soll in einer Fußzeile für jeden Fertigungsauftrag die Ausbeute, also der Verbrauch pro hergestellter Einheit berechnet werden. Es ist dies die Summe aller Verbräuche dividiert durch die Summe aller Istmeldungen. Siehe nachfolgenden Screenshot.

image

Das Problem bestand in der Berechnung des Verbrauchs pro Einheit. Da die Istmeldungs- und die Verbrauchszeilen alle in einer Tabelle stehen und nur durch die Spalte “Art” oder das Vorzeichen der Menge unterschieden werden konnten, wurde so etwas wie eine SUMIF – Funktion bei Excel benötigt, die die SQL Reporting Services aber nicht haben.

Wir haben diese Verhalten in den Reporting Services durch folgenden Ausdruck nachgebaut:

=ABS(Sum(IIF(Fields!Entry_Type.Value = 5, Fields!Quantity.Value, 0))/Sum(IIF(Fields!Entry_Type.Value = 6, Fields!Quantity.Value, 0)))

Verbrauchsbuchungen werden im Feld [Entry_Type] mit 5 gekennzeichnet, Istmeldungen mit 6. Ist also im Feld [Entry_ Type] eine 5, wird das Feld Quantity in die zu bildende Summe einbezogen, ansonsten 0. Gleiches wird für die Istmeldungen mit [Entry_ Type] 6 gemacht. Beide Summen werden dividiert und daraus der positive Wert gebildet.

Dieser Ausdruck wird vom SQL Reporting Services Compiler als gültig erkannt und doch wird statt der 0,14 im obigen Beispiel #Error ausgegeben.

Es ist nicht eindeutig, warum.

Nach einigem Probieren kamen wir zu dem Schluss, dass es sich evtl. um ein Typenproblem handeln könnte, da der Ausdruck funktionierte, wenn wir statt des Feldes eine Integerzahl hart codierten.

Wir wandelten den Ausdruck wie folgt um und casteten alle Ausdrücke explizit in einen Integer – Value

=ABS(Sum(IIF(Fields!Entry_Type.Value = 5, CInt(Fields!Quantity.Value), CInt(0)))/Sum(IIF(Fields!Entry_Type.Value = 6, CInt(Fields!Quantity.Value), CInt(0))))

und siehe da. Es funktioniert wie oben zu sehen.

Eines wird deutlich, was formal richtig ist, muss noch lange nicht in der Ausführung richtig sein. Uns wurde jedenfalls vor Augen geführt, wie wichtig die explizite Typenkonvertierung ist. Man muss sicher sein können, was in einer Variablen steckt.

Dieses Beispiel lässt sich interessanterweise auch auf unsere Produkte übertragen. Aber Sie können sicher sein, dass in unseren Verpackungen immer die ANKER-Premiumprodukte stecken. Das “Casten” übernehmen wir.

Tags:
Categories: EDV_ORGA, MSC
Weblog-Pfad: Blogs Parent Separator Michael Steffen GF

Ihr Name:
Gravatar Preview
Ihre E-Mail-Adresse:
(Optional) Geben Sie Ihre E-Mail-Adresse an, um ein Gravatar-Bild festzulegen.
Ihre Web-Site:
Überschrift:
Kommentar:
Sicherheitscode
CAPTCHA image
Geben Sie die angegebenen Zeichen darunter ein.
Kommentar hinzufügen   abbrechen 
 
Kürzliche Einträge minimieren
Aktuelle Informationen zur Bestandssituation
Neue Hash-Absicherung in der B2B-Kundenkommunikation
Spezifikationen in der Lebensmittelverpackungskette
Humor – Ein Gedicht über Brathering
SQL Server Startup Parameter
Fehler bei Windows Benutzeranmeldung
Probleme mit Umlauten
Genauere Fanggebietskennzeichnung
IFS und MSC Zertifizierung bestanden
 
Suche minimieren
 
 Copyright 2012 by Anker GmbH   Nutzungsbedingungen  Datenschutzerklärung