Der Daten Import / Export Spezialist
Schauen Sie sich auch die verfügbaren Beispiele zum Access Adapter an evtl. kann Ihre Frage hiermit schon beantwortet werden: CSV Import , Testdaten erzeugen , Automatisierter Batch Export

Anwendungsmöglichkeit

  • Altermatt Thomas
  • Autor
  • Offline
  • Neues Mitglied
  • Neues Mitglied
Mehr
10 Jahre 4 Monate 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 grosse Access-Datei 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 insgesammt: 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.

Mehr
10 Jahre 4 Monate her #1084 von FlowHeater-Team
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!

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
  • Neues Mitglied
  • Neues Mitglied
Mehr
10 Jahre 4 Monate 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

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Altermatt Thomas
  • Autor
  • Offline
  • Neues Mitglied
  • Neues Mitglied
Mehr
10 Jahre 3 Monate 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

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Altermatt Thomas
  • Autor
  • Offline
  • Neues Mitglied
  • Neues Mitglied
Mehr
10 Jahre 3 Monate 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

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Altermatt Thomas
  • Autor
  • Offline
  • Neues Mitglied
  • Neues Mitglied
Mehr
10 Jahre 3 Monate 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

Anhang Prot_3.zip wurde nicht gefunden.

Anhänge:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
10 Jahre 3 Monate her #1101 von FlowHeater-Team
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.

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
  • Neues Mitglied
  • Neues Mitglied
Mehr
10 Jahre 3 Monate 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

Anhang produkte.fhd wurde nicht gefunden.

Anhänge:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
10 Jahre 3 Monate her #1115 von FlowHeater-Team
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!
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
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!

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
  • Neues Mitglied
  • Neues Mitglied
Mehr
10 Jahre 2 Monate 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? Ausserhalb der Indexgrenzen - klar - aber ??

Vielen Dank für die Hilfe.

Gruss, Thomas

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
10 Jahre 2 Monate her #1122 von FlowHeater-Team
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.
Code:
If InValues.Length = 0 Then Throw new Exception("Keine Eingangsparamter vorhanden!") End If
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.

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.414 Sekunden

andere Sprachen

en

FlowHeater Home

de en

Impressum/Kontakt

Datenschutz

Copyright © 2009-2023 by FlowHeater GmbH.
Alle Rechte vorbehalten.

Follow us on

twitter  facebook

YouTube

 de en