Dokumentation des Schnittstellensynchronisierungs- und Umbenennungsskripts (Batch)

Dieses Windows-Batch-Skript (.bat) automatisiert den Übertragungs- und Bereitstellungsfluss von Schnittstellendateien zwischen einem lokalen Server (D:\FOX4WORK) und einer entfernten Netzwerkfreigabe (\\10.252.31.55). Seine Hauptaufgabe besteht darin, Einkaufs- und Kommissionieraufträge zu zentralisieren und anschließend die ERP-Dateien (insbesondere die „Picking“-Datenströme) vor ihrer endgültigen Bereitstellung korrekt zu formatieren.

Ordnerstruktur

Quellordner (Netzwerk)

  • \\10.252.31.55\interface\243A\PICK_ORDERS\ : Eingehende Kommissionieraufträge (Picking).

  • \\10.252.31.55\interface\243A\PURCHASE_ORDERS\ : Eingehende Einkaufsaufträge.

Lokale Arbeitsordner

  • D:\FOX4WORK\EXCHANGE\IN FOX\ : Lokaler Empfangsbereich für die Verarbeitung.

  • D:\FOX4WORK\EXCHANGE\IN ERP\ : Bereitstellungsbereich für Dateien, die für das ERP-System bestimmt sind.

Zielordner (Netzwerk)

  • \\10.252.31.55\interface\243A\TO-ERP\ : Endgültiger Einstiegspunkt für das ERP.

  • \\10.252.31.55\interface\243A\TO-ERP\source\ : Archiv- / Sicherungsordner für die gesendeten Rohdateien.

Funktionsweise des Skripts

Schritt 1: Erfassung eingehender Dateien

Das Skript beginnt damit, alle in den Netzwerkordnern PICK_ORDERS und PURCHASE_ORDERS vorhandenen Dateien in den lokalen Verarbeitungsordner IN FOX zu übertragen.

Schritt 2: Normalisierung der Kommissionierdateien (Picking)

Dieser Abschnitt verarbeitet gezielt Dateien in IN ERP, die die Zeichenkette _picking_ im Namen enthalten (Erwartetes Eingabeformat: [Präfix]_picking_[RechnungsNr].csv).

  • Logik der Umbenennung: Das Ziel besteht darin, das Schlüsselwort „picking“ ganz an das Ende des Dateinamens zu verschieben, um das standardisierte Format zu erhalten: [Präfix]_[RechnungsNr]_picking.csv.

  • Schutz vor Endlosschleifen: Das Skript enthält eine Sicherheitsbedingung (if /i not "!fullname:~-8!"=="_picking"). Wenn eine Datei bereits umbenannt wurde und auf _picking endet, wird sie automatisch übersprungen, um zu verhindern, dass ihr Name bei einer späteren Ausführung beschädigt wird.

Schritt 3: Verteilung und Archivierung

Sobald die Dateien im lokalen Ordner IN ERP bereitstehen:

  1. Werden sie zunächst zu Archivierungszwecken in den Unterordner \source kopiert.

  2. Werden sie anschließend in den Zielordner TO-ERP verschoben (lokal gelöscht), damit das Zielsystem sie verarbeiten kann.

Technische Besonderheiten

  • Windows-Voraussetzungen: Das Skript verwendet die verzögerte Variablenexpansion (setlocal enabledelayedexpansion). Dies ermöglicht es, Variablen (!prefix!, !numfact!) innerhalb der FOR-Schleife in Echtzeit zu ändern und auszulesen.

  • Variablenextraktion per Trennzeichen: Um den Dateinamen zu zerlegen, ersetzt das Skript vorübergehend die Zeichenkette _picking_ durch einen Backslash \. Anschließend werden Tokens (tokens=1,2) verwendet, um das Präfix und die Rechnungsnummer sauber zu isolieren.

Script

@echo off
setlocal enabledelayedexpansion

:: 1. Déplacement des fichiers d’entrée
move „\\10.252.31.55\interface\243A\PICK_ORDERS\*.*“ „D:\FOX4WORK\EXCHANGE\IN FOX“
move „\\10.252.31.55\interface\243A\PURCHASE_ORDERS\*.*“ „D:\FOX4WORK\EXCHANGE\IN FOX“

:: 2. Boucle sur les fichiers du dossier IN ERP afin de placer Picking en fin de script
for %%F in („D:\FOX4WORK\EXCHANGE\IN ERP\*_picking_*.csv“) do (
set „fullname=%%~nF“

:: Vérification de sécurité : on traite le fichier UNIQUEMENT s’il ne se termine PAS déjà par „_picking“
if /i not „!fullname:~-8!“==“_picking“ (

:: On sépare proprement le préfixe et le numéro via le séparateur temporaire „\“
for /f „delims=“ %%A in („!fullname:_picking_=\!“) do (
set „temp_var=%%A“
for /f „tokens=1,2 delims=\“ %%B in („!temp_var!“) do (
set „prefix=%%B“
set „numfact=%%C“
)
)

:: Renommer le fichier avec le format exact
echo Renommage de : %%F en : !prefix!_!numfact!_picking.csv
ren „%%F“ „!prefix!_!numfact!_picking.csv“
) else (
echo Fichier deja au bon format, ignore : %%~nxF
)
)

:: 1. Déplacement des fichiers de sortie
copy „D:\FOX4WORK\EXCHANGE\IN ERP\*.*“ „\\10.252.31.55\interface\243A\TO-ERP\source“
move „D:\FOX4WORK\EXCHANGE\IN ERP\*.*“ „\\10.252.31.55\interface\243A\TO-ERP“