- Beiträge: 10
Anwendungsmöglichkeit
- Altermatt Thomas
- Autor
- Offline
- Benutzer
Weniger
Mehr
12 Jahre 1 Monat her #1083
von Altermatt Thomas
Anwendungsmöglichkeit wurde erstellt von Altermatt Thomas
Hallo zusammen
Ich bin in der Artikelstamm-Datenpflege tätig. Ich habe eine große Access Datenbank mit allen Artikeln aller Lieferanten. Die Lieferantendaten kommen sehr unterschiedlich zu mir (Excel, Text...).
Ich möchte nun die Lieferanten-Datei (ev. vorbearbeitet) mit der Gesamtliste abgleichen: Neue Datensätze hinzulesen und geänderte Datensätze updaten.
Ich möchte sodann protokolliert haben, welche Datensatzfelder (sprich Artikeleigenschaften) geändert haben und welche Datensätze neu hinzugekommen sind.
Dieses Protokoll soll ausgewertet und dem Enduser zur Verfügung gestellt werden. So muss er sich nur mit den geänderten und neuen Artikeln beschäftigen, zum Beispiel, um neue Etiketten zu drucken.
Das Mengengerüst:
- Anzahl Lieferanten: ca. 10 (steigend)
- Anzahl Artikel pro Lieferant: 100 - 15'000
- Anzahl Artikel insgesamt: ca. 50'000 (steigend)
Zur Frage:
Ist dafür diese Tool geeignet bzw. welche Arbeiten kann dieses Tool übernehmen?
Besten Dank für eure Infos.
Thomas
Ich bin in der Artikelstamm-Datenpflege tätig. Ich habe eine große Access Datenbank mit allen Artikeln aller Lieferanten. Die Lieferantendaten kommen sehr unterschiedlich zu mir (Excel, Text...).
Ich möchte nun die Lieferanten-Datei (ev. vorbearbeitet) mit der Gesamtliste abgleichen: Neue Datensätze hinzulesen und geänderte Datensätze updaten.
Ich möchte sodann protokolliert haben, welche Datensatzfelder (sprich Artikeleigenschaften) geändert haben und welche Datensätze neu hinzugekommen sind.
Dieses Protokoll soll ausgewertet und dem Enduser zur Verfügung gestellt werden. So muss er sich nur mit den geänderten und neuen Artikeln beschäftigen, zum Beispiel, um neue Etiketten zu drucken.
Das Mengengerüst:
- Anzahl Lieferanten: ca. 10 (steigend)
- Anzahl Artikel pro Lieferant: 100 - 15'000
- Anzahl Artikel insgesamt: ca. 50'000 (steigend)
Zur Frage:
Ist dafür diese Tool geeignet bzw. welche Arbeiten kann dieses Tool übernehmen?
Besten Dank für eure Infos.
Thomas
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
12 Jahre 1 Monat her #1084
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Aw: Anwendungsmöglichkeit
Hallo Herr Altermatt,
dafür gibt es mehrere Möglichkeiten. Ich schildere hier mal eine Möglichkeit wie das umzusetzen ist ohne dass Tabellenänderungen (zusätzliche Felder) notwendig sind. In der Anlage finden Sie ein kleines Beispiel dazu.
Im Beispiel wird ein zusätzliche Datei Protokoll.txt über den File Heater geschrieben. In die Datei wird pro Datensatz die ArtikelNr, Datum und Uhrzeit der Änderung sowie ob es ein Insert oder ein Update war, festgehalten.
Um zu prüfen ob es sich um eine Neuanlage (INSERT) oder eine Aktualisierung (UPDATE) handelt wird für jede Zeile über den SQL Heater ein "select count (*) from t_Artikel where ArtikelNr = "ArtikelNr der aktuellen Zeile" ausgeführt. Die Rückgabe wird dann über einen IF-THEN-ELSE Heater geprüft. Ist die Rückgabe 0 handelt es sich um eine Neuanlage, ist die Rückgabe größer 0 liegt eine Aktualisierung vor. Die anderen Heater formatieren dann nur noch den Ausgabetext, der dann über den File Heater in die Protokolldatei geschrieben wird.
Hinweis: Die Protokolldatei wird nicht im Testmodus geschrieben!
dafür gibt es mehrere Möglichkeiten. Ich schildere hier mal eine Möglichkeit wie das umzusetzen ist ohne dass Tabellenänderungen (zusätzliche Felder) notwendig sind. In der Anlage finden Sie ein kleines Beispiel dazu.
Im Beispiel wird ein zusätzliche Datei Protokoll.txt über den File Heater geschrieben. In die Datei wird pro Datensatz die ArtikelNr, Datum und Uhrzeit der Änderung sowie ob es ein Insert oder ein Update war, festgehalten.
Um zu prüfen ob es sich um eine Neuanlage (INSERT) oder eine Aktualisierung (UPDATE) handelt wird für jede Zeile über den SQL Heater ein "select count (*) from t_Artikel where ArtikelNr = "ArtikelNr der aktuellen Zeile" ausgeführt. Die Rückgabe wird dann über einen IF-THEN-ELSE Heater geprüft. Ist die Rückgabe 0 handelt es sich um eine Neuanlage, ist die Rückgabe größer 0 liegt eine Aktualisierung vor. Die anderen Heater formatieren dann nur noch den Ausgabetext, der dann über den File Heater in die Protokolldatei geschrieben wird.
Hinweis: Die Protokolldatei wird nicht im Testmodus geschrieben!
Anhang Import_Update_Protokoll.zip wurde nicht gefunden.
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Anhänge:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Altermatt Thomas
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 10
12 Jahre 1 Monat her #1085
von Altermatt Thomas
Altermatt Thomas antwortete auf Aw: Anwendungsmöglichkeit
Besten Dank, Herr Stark
Ich werde die Anwendung prüfen.
Gruss, Th.Altermatt
Ich werde die Anwendung prüfen.
Gruss, Th.Altermatt
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Altermatt Thomas
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 10
12 Jahre 1 Monat her #1098
von Altermatt Thomas
Altermatt Thomas antwortete auf Aw: Anwendungsmöglichkeit
Hallo Herr Stark
Ich versuche mich wieder an Ihrem Programm. Ich habe Ihre Vorlage mit einer IF-THEN-ELSEIF - Struktur ergänzt. Ein Erfolgserlebnis
Die Ausgabe in die Protokoll-Datei möchte ich einschränken, da sonst viel zu viele Datensätze 'nutzlos' darin stehen. Ich möchte nur echte Updates in die Datei schreiben lassen.
Beispiel:
19.10.2012 10:00;Neuanlage;999;
19.10.2012 10:00;Update;123;Artikel;Maus2;Maus1;
19.10.2012 10:00;Update;123;Preis;7.88;8.11;
Bei der Neuanlage nur die Artikelnummer.
Bei Updates zur Artikelnummer zusätzlich <Wert_ALT> und <Wert_NEU> und den zugehörigen Spaltennnamen.
Ich bin noch am Ueberlegen, was ich machen soll, wenn ein Artikel nicht mehr in der READ-Datei ist. Das aktuelle Datum als Ablaufdatum in die DB schreiben?
Wenn obige Protokoll-Struktur nicht möglich ist: ist es möglich, nur echte Updates zu protokollieren?
Besten Dank für Ihre Hilfe.
Freundliche Grüsse aus dem sonnigen Basel
Thomas
Ich versuche mich wieder an Ihrem Programm. Ich habe Ihre Vorlage mit einer IF-THEN-ELSEIF - Struktur ergänzt. Ein Erfolgserlebnis
Die Ausgabe in die Protokoll-Datei möchte ich einschränken, da sonst viel zu viele Datensätze 'nutzlos' darin stehen. Ich möchte nur echte Updates in die Datei schreiben lassen.
Beispiel:
19.10.2012 10:00;Neuanlage;999;
19.10.2012 10:00;Update;123;Artikel;Maus2;Maus1;
19.10.2012 10:00;Update;123;Preis;7.88;8.11;
Bei der Neuanlage nur die Artikelnummer.
Bei Updates zur Artikelnummer zusätzlich <Wert_ALT> und <Wert_NEU> und den zugehörigen Spaltennnamen.
Ich bin noch am Ueberlegen, was ich machen soll, wenn ein Artikel nicht mehr in der READ-Datei ist. Das aktuelle Datum als Ablaufdatum in die DB schreiben?
Wenn obige Protokoll-Struktur nicht möglich ist: ist es möglich, nur echte Updates zu protokollieren?
Besten Dank für Ihre Hilfe.
Freundliche Grüsse aus dem sonnigen Basel
Thomas
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Altermatt Thomas
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 10
12 Jahre 1 Monat her #1099
von Altermatt Thomas
Altermatt Thomas antwortete auf Aw: Anwendungsmöglichkeit
Hallo Herr Stark
Ich habe es konnte den MwST-Code in den MwSt-Wert umwandeln. Bin aber gescheitert beim Versuch, bei Preisgleichheit (Layer Gleichheit) einen entsprechenden Text auszugeben.
Einen unterschiedlichen Preis hat der Artikel '123'.
Können Sie mir da bitte weiter helfen?
Mein Versuch im Anhang.
mfg, Thomas
Ich habe es konnte den MwST-Code in den MwSt-Wert umwandeln. Bin aber gescheitert beim Versuch, bei Preisgleichheit (Layer Gleichheit) einen entsprechenden Text auszugeben.
Einen unterschiedlichen Preis hat der Artikel '123'.
Können Sie mir da bitte weiter helfen?
Mein Versuch im Anhang.
mfg, Thomas
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Altermatt Thomas
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 10
12 Jahre 1 Monat her #1100
von Altermatt Thomas
Altermatt Thomas antwortete auf Aw: Anwendungsmöglichkeit
Habe noch schnell eine Fehlermeldung gesehen. Falls der Anhang nicht übermittelt wurde, hier die Datei im zip-Format.
mfg, Thomas
mfg, Thomas
Anhang Prot_3.zip wurde nicht gefunden.
Anhänge:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
12 Jahre 1 Monat her #1101
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Aw: Anwendungsmöglichkeit
Hallo Herr Altermatt,
ich hab Ihre Definition etwas angepasst. Bei der Prüfung ob der Preis bereits vorhanden ist habe ich lediglich die Formatierung angepasst, der Preis wird jetzt ohne Tausendertrennzeichen sowie mit Punkt als Dezimaltrennzeichen formatiert. Schauen Sie sich dazu einmal den Format Heater sowie das Parameterformat des Parameters "rPreis" an. Hinweis: Die Preise aller Produkte sind in der CVS Datei sowie in der Access Datebank.mdb identisch!
Zum Protokoll) Dazu habe ich Ihre Definition ebenfalls etwas angepasst. Bei Update wird der Alte Preis sowie der Neu Preis ausgegeben. Bei Insert wird lediglich die Artikelnummer ausgegeben. Anmerkung: Was nicht geht bzw. nur schwer durchführbar ist nur wirklich geänderte Werte zu Protokollieren!
Hinweis: Aufgrund Ihrer Anforderung plane ich eine komfortablere Protokollfunktion in den FlowHeater zu integrieren. Ca. Anfang nächsten Jahres könnte es soweit sein.
ich hab Ihre Definition etwas angepasst. Bei der Prüfung ob der Preis bereits vorhanden ist habe ich lediglich die Formatierung angepasst, der Preis wird jetzt ohne Tausendertrennzeichen sowie mit Punkt als Dezimaltrennzeichen formatiert. Schauen Sie sich dazu einmal den Format Heater sowie das Parameterformat des Parameters "rPreis" an. Hinweis: Die Preise aller Produkte sind in der CVS Datei sowie in der Access Datebank.mdb identisch!
Zum Protokoll) Dazu habe ich Ihre Definition ebenfalls etwas angepasst. Bei Update wird der Alte Preis sowie der Neu Preis ausgegeben. Bei Insert wird lediglich die Artikelnummer ausgegeben. Anmerkung: Was nicht geht bzw. nur schwer durchführbar ist nur wirklich geänderte Werte zu Protokollieren!
Hinweis: Aufgrund Ihrer Anforderung plane ich eine komfortablere Protokollfunktion in den FlowHeater zu integrieren. Ca. Anfang nächsten Jahres könnte es soweit sein.
Anhang protokoll.fhd wurde nicht gefunden.
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Anhänge:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Altermatt Thomas
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 10
12 Jahre 2 Wochen her #1114
von Altermatt Thomas
Altermatt Thomas antwortete auf Aw: Anwendungsmöglichkeit
Hallo Herr Stark
Für meinen Artikelabgleich habe ich in einem separaten Layer einige IF-THEN-Anweisungen eingebaut. Und es solle noch mehr werden.
Ich denke, mit einem Heater NET-Script würde ich besser fahren.
Wie müsse ein solchen Script in VB ausschauen?
mfg, Thomas
Für meinen Artikelabgleich habe ich in einem separaten Layer einige IF-THEN-Anweisungen eingebaut. Und es solle noch mehr werden.
Ich denke, mit einem Heater NET-Script würde ich besser fahren.
Wie müsse ein solchen Script in VB ausschauen?
mfg, Thomas
Anhang produkte.fhd wurde nicht gefunden.
Anhänge:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
12 Jahre 2 Wochen her #1115
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Aw: Anwendungsmöglichkeit
Hallo Herr Altermatt,
ich habe in Ihrem Beispiel das Ganze mal für die Artikelbezeichnung über einen .Net Script Heater durchgeführt. Hier das VB.NET Skript das verwendet wurde.
Achtung: Mangels Testdaten nicht getestet!
Sie benötigen für jedes Feld einen .Net Script Heater sowie oben stehendes VB Skript. Im Skript müssen Sie die Tabellenfelder anpassen die Sie abfragen möchten sowie müssen Sie darauf achten, dass Sie bei der SQL WHERE Bedingung die richtige Formatierung (Zahlen, Datum, String) verwenden. Das nimmt Ihnen bei der Datenbank Lookup Variante der
Lookup Heater
anhand der Eingehenden
Datentypen
ab!
ich habe in Ihrem Beispiel das Ganze mal für die Artikelbezeichnung über einen .Net Script Heater durchgeführt. Hier das VB.NET Skript das verwendet wurde.
Achtung: Mangels Testdaten nicht getestet!
Code:
Public Function DoWork() As Object
Dim ArtNr as String
Dim ArtBez as String
' 1. Eingangsparameter = ArtikelNr
ArtNr = InValues(0).GetString()
' 2. Eingangsparameter = Artikelbezeichnung
ArtBez = InValues(1).GetString()
' Zugriff auf den Write (Access) Adapter
Dim write as AccessAdapter
write = AdapterWrite
' SQL Select aufbauen
Dim SQL as String
SQL = "select Bezeichnung from Produkte where "
SQL = SQL + "ARTNr = '" + ArtNr + "' AND "
SQL = SQL + "Bezeichnung = '" + ArtBez + "'"
Dim result as Object
' SQL Statement ausführen
result = write.Execute(SQL, true) ' SQL ausführen, 2. Parameter true = mit Rückgabe
' Rückgabe prüfen
If result is Nothing Then
DoWork = "Ja"
Else
DoWork = "Nein"
End if
End Function
Anhang produkte-20121105.fhd wurde nicht gefunden.
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Anhänge:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Altermatt Thomas
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 10
12 Jahre 1 Woche her #1120
von Altermatt Thomas
Altermatt Thomas antwortete auf Aw: Anwendungsmöglichkeit
Vielen Dank, Herr Stark
Ich habe da einiges machen können.
Ich stehe nun vor folgendem Problem:
Auf der READ-Seite habe ich den String "1234567890123,12345678,,"
Der String symbolisiert 3 Barcodes. Ich möchte nun einen .NET Script -Heater schreiben, der mir den String in 3 separate Spalten abfüllt.
Ich habe einen Heater bis auf des Grundgerüst auskommentiert:
Public Function DoWork() As Object
Dim EAN as String
' 1. Eingangsparameter = EAN 3x
EAN = InValues(0).GetString()
' Rückgabe
DoWork = EAN
End Function
Ich erhalte die Fehlermeldung:
Index was outsite the bounds of the array.
Was bedeutet diese Meldung? Außerhalb der Indexgrenzen - klar - aber ??
Vielen Dank für die Hilfe.
Gruss, Thomas
Ich habe da einiges machen können.
Ich stehe nun vor folgendem Problem:
Auf der READ-Seite habe ich den String "1234567890123,12345678,,"
Der String symbolisiert 3 Barcodes. Ich möchte nun einen .NET Script -Heater schreiben, der mir den String in 3 separate Spalten abfüllt.
Ich habe einen Heater bis auf des Grundgerüst auskommentiert:
Public Function DoWork() As Object
Dim EAN as String
' 1. Eingangsparameter = EAN 3x
EAN = InValues(0).GetString()
' Rückgabe
DoWork = EAN
End Function
Ich erhalte die Fehlermeldung:
Index was outsite the bounds of the array.
Was bedeutet diese Meldung? Außerhalb der Indexgrenzen - klar - aber ??
Vielen Dank für die Hilfe.
Gruss, Thomas
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
12 Jahre 1 Woche her #1122
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Aw: Anwendungsmöglichkeit
Hallo Herr Altermatt,
die Meldung bedeutet, dass Sie mit der Anweisung
EAN = InValues(0).GetString()
auf den ersten Inputparameter zugreifen wollen und sie keinen Eingangsparameter mit dem Heater verbunden haben.
Sie können das über folgenden Code etwas eleganter abfragen/melden.
Um die 3 EAN Codes auf 3 Einzelwerte aufzuteilen können Sie auch den
String Split Heater
(3x) verwenden!
PS: Bitte eröffnen Sie für neue Themen jeweils einen separaten Thread, Danke.
die Meldung bedeutet, dass Sie mit der Anweisung
EAN = InValues(0).GetString()
auf den ersten Inputparameter zugreifen wollen und sie keinen Eingangsparameter mit dem Heater verbunden haben.
Sie können das über folgenden Code etwas eleganter abfragen/melden.
Code:
If InValues.Length = 0 Then
Throw new Exception("Keine Eingangsparamter vorhanden!")
End If
PS: Bitte eröffnen Sie für neue Themen jeweils einen separaten Thread, Danke.
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.335 Sekunden