Documentatie van het script voor interfacesynchronisatie en hernoemen (batch)

Dit Windows Batch-script (.bat) automatiseert de overdracht en voorbereiding van interfacebestanden tussen een lokale server (D:\FOX4WORK) en een externe netwerkmap (\\10.252.31.55). De hoofdtaak is het centraliseren van inkoop- en voorbereidingsorders en het correct formatteren van ERP-bestanden (met name “Picking”-stromen) voordat ze definitief beschikbaar worden gesteld.

Maparchitectuur

Bronmappen (Netwerk)

  • \\10.252.31.55\interface\243A\PICK_ORDERS\ : Binnenkomende voorbereidingsorders.

  • \\10.252.31.55\interface\243A\PURCHASE_ORDERS\ : Binnenkomende inkooporders.

Lokale Werkmappen

  • D:\FOX4WORK\EXCHANGE\IN FOX\ : Lokale ontvangstzone voor verwerking.

  • D:\FOX4WORK\EXCHANGE\IN ERP\ : Voorbereidingszone voor bestanden bestemd voor het ERP-systeem.

Doelmappen (Netwerk)

  • \\10.252.31.55\interface\243A\TO-ERP\ : Definitief toegangspunt voor het ERP.

  • \\10.252.31.55\interface\243A\TO-ERP\source\ : Archief- / back-upmap voor de verzonden onbewerkte bestanden.

Werking van het Script

Stap 1: Verzamelen van Binnenkomende Bestanden

Het script begint met het overbrengen van alle bestanden uit de netwerkmappen PICK_ORDERS en PURCHASE_ORDERS naar de lokale verwerkingsmap IN FOX.

Stap 2: Normalisatie van Picking-bestanden

Dit gedeelte verwerkt specifiek de bestanden in IN ERP die de tekenreeks _picking_ in hun naam bevatten (Verwacht invoerformaat: [Voorvoegsel]_picking_[FactuurNr].csv).

  • Hernoemingslogica: Het doel is om het trefwoord “picking” naar het absolute einde van de bestandsnaam te verplaatsen om het gestandaardiseerde formaat te verkrijgen: [Voorvoegsel]_[FactuurNr]_picking.csv.

  • Beveiliging tegen Oneindige Lus: Het script bevat een veiligheidsvoorwaarde (if /i not "!fullname:~-8!"=="_picking"). Als een bestand al is hernoemd en eindigt op _picking, wordt het automatisch overgeslagen om te voorkomen dat de naam bij een volgende uitvoering beschadigd raakt.

Stap 3: Distributie en Archivering

Zodra de bestanden klaar staan in de lokale map IN ERP:

  1. Worden ze eerst gekopieerd naar de submap \source voor archiveringsdoeleinden.

  2. Worden ze vervolgens verplaatst (verwijderd van de lokale schijf) naar de hoofdmap TO-ERP om door het doelsysteem te worden verwerkt.

Technische Specificaties

  • Windows-vereisten: Het script maakt gebruik van uitgestelde variabele-expansie (setlocal enabledelayedexpansion). Hierdoor kunnen variabelen (!prefix!, !numfact!) binnen de FOR-lus in realtime worden gewijzigd en gelezen.

  • Variabele-extractie via Scheidingsteken: Om de bestandsnaam te splitsen, vervangt het script tijdelijk de tekenreeks _picking_ door een backslash \. Vervolgens worden tokens (tokens=1,2) gebruikt om het voorvoegsel en het factuurnummer netjes te isoleren.

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”