
Votre guide d'intégration V5 !

L’intégration des transferts entre V5 Traceability et le système ERP d’un client permet d’envoyer les détails du transfert, les éléments de transfert et les informations de planification à V5 Traceability. Ces transferts peuvent ensuite être envoyés et reçus via le logiciel V5 WMS, après quoi des informations telles que les lots envoyés et reçus, la quantité envoyée, sur quelle palette il s'agissait, etc. peuvent être renvoyées à l'ERP.
Dans ce cas, V5 peut également faire office de maître des données et envoyer les transferts créés au sein du système vers l'ERP.
Pour plus d'informations sur le fonctionnement du module de transferts dans V5 Traçabilité, veuillez consulter notre guide du module ici.
En ce qui concerne la façon dont nous pouvons communiquer ‘Transfers’ et ‘Transfer Lines’ par rapport à ce que nous voyons dans Control Center, nous pouvons voir que le panneau supérieur ici est destiné aux transferts, où vers/depuis les sites, les numéros de référence externes, etc., peuvent tous être importés.
Le panneau inférieur gauche est alors l'endroit où nous pouvons ajouter nos lignes de transfert, contenant des données relatives aux produits et aux quantités requises pour le transfert.
En utilisant la passerelle V5, nous pouvons facilement remplir les deux panneaux, séparément ou ensemble.
Le panneau inférieur droit contient des données relatives à l'endroit où les éléments du transfert ont été récupérés à l'emplacement « d'origine » et reçus à l'emplacement « destination ». Ces données feront partie de l'exportation que nous pourrons recevoir en retour de la passerelle V5.
Pour en savoir plus sur les définitions de ces classes de base de données, veuillez consulter les liens suivants :
Le modèle d'intégration pour les transferts peut être téléchargé ici.
Les clés primaires sont l'identifiant unique de chaque table dans l'API V5. Pour Transfers, c'est:
reference – Le numéro de référence unique du virement. Essentiellement le numéro d’ordre de transfert.
Pour TransferLines, la clé primaire est non plus:
reference + commodity.code – La référence/numéro du transfert ainsi que la marchandise à transférer.
or
lineID – À des fins avancées où la même marchandise peut apparaître sur plusieurs lignes, vous pouvez spécifier un ID de ligne comme identifiant unique au lieu de la référence de transfert et du code de marchandise. Ceci est requis si plus d’une ligne du même produit figure sur le transfert.
Les autres champs requis par SG pour remplir une entrée valide dans Control Center sont :
Pour TransferLines:
quantityOrdered – la quantité de ce produit commandé.
Pour Transfers:
fromLocation.code - l'endroit à partir duquel le transfert sera envoyé.
toLocation.code - l'endroit où le transfert sera envoyé.
Les champs préférés servent à ajouter plus de données au transfert et, bien qu'ils ne soient pas obligatoires, sont utiles en ce qui concerne les fonctionnalités de V5 Traceability. Ceux-ci sont:
lineID - s'il n'est pas utilisé comme clé primaire ci-dessus, ce champ doit être inclus.
commodity.code – s’il n’est pas utilisé comme clé primaire ci-dessus, ce champ doit être inclus. Le code de la marchandise à transférer.
transfer.reference - s'il n'est pas utilisé comme clé primaire ci-dessus, ce champ doit être inclus.
Ce qui précède s'applique à «transferLines'. Nous pouvons appliquer les mêmes champs à 'transfers' en ajoutant ‘transferLine’ aux 2 premières entrées, et en supprimant ‘transfer’ du dernier.
Des champs supplémentaires peuvent également être inclus, par exemple pour ‘transfer’:
comment – tout commentaire complémentaire pour le virement.
fromAddress – l’adresse à partir de laquelle le virement est envoyé. Ceux-ci sont peuplés ‘Site Addresses‘.
toAddress – l’adresse à laquelle le virement est reçu.
directTransfer – si ce transfert doit être un transfert direct ou non.
Semblable à ci-dessus, si vous créez un 'transferLine', nous pouvons simplement accéder à la classe de transfert en ajoutant ‘transfer’ au début des paramètres ci-dessus.
Étant donné la nature de la ‘Transfer’ et ‘TransferLine’, nous pouvons choisir d'importer les données de 2 manières :
Lequel de ces points de terminaison nous utiliserons dépendra en grande partie de l'utilisation d'une importation JSON ou CSV. Nous pouvons maintenant les regarder ci-dessous.
Transfert:
‘Transfer’ importer le point de terminaison/URI –
http://host:port/V5-API/api/integrate/import/transfer
Pour cet exemple d'importation, nous utiliserons le ‘Transfer’ point final, et en structurant un fichier d'importation de base d'un transfert avec 2 lignes, cela pourrait ressembler à ceci :

Cet exemple de fichier JSON peut être téléchargé ici.
Nous pouvons voir pourquoi nous utiliserions le ‘Transfer’ point de terminaison pour ce format, compte tenu de la capacité des fichiers JSON à contenir des données imbriquées, ce qui nous permet d'inclure des ‘TransferLines’ listes, puis ‘Commodity’ points de données dans l'importation, qui peuvent être déterminés à l'aide du manuel de l'API SG. Par exemple, le ‘commodity code’ Le point de données peut être trouvé en utilisant le chemin suivant dans le manuel de l'API :

Nous pouvons construire le reste de nos points de données requis en utilisant une méthode de recherche de chemin similaire.
En utilisant le fichier ci-dessus, nous pouvons voir que notre nouveau transfert a été créé dans Control Center.

Lignes de transfert :
‘TransferLine’ importer le point de terminaison/URI –
http://host:port/V5-API/api/integrate/import/transfer_line
Comme indiqué ci-dessus, nous pouvons utiliser le ‘TransferLine’ point final pour ajouter ou modifier des lignes d’un transfert existant. Nous pouvons également ajouter des transferts à l'aide de ce point de terminaison, mais il est important de se rappeler que nous ne pouvons modifier un en-tête de transfert qu'en utilisant le ‘Transfer’ URI ci-dessus. Notez également que les informations de transfert devront être imbriquées ici pour chaque ligne de transfert.
Nous pouvons voir un exemple de ‘TransferLine’ Fichier JSON ci-dessous, où nous ajouterons une autre ligne à transférer ‘TR-1882’ que nous avons créé ci-dessus :

Cet exemple de fichier JSON peut être téléchargé ici.
Une fois cette demande postée, nous pouvons revenir au Control Center et constater qu'une troisième ligne a été ajoutée à ce transfert.

Concernant la réception des fichiers relatifs aux transferts retour depuis l'API V5, si l'on vérifie les résumés de méthodes sous la rubrique ‘IntegrationExport‘ classe, alors nous avons quelques options différentes ici:
Transferts:
Exporter le point de terminaison/URI –
http://host:port/V5-API/api/integrate/export/transfers
Ce point de terminaison exportera les fichiers JSON de transfert complet à l'aide de la classe de base de données de transfert et inclura chaque transfert qui n'a pas déjà été marqué comme exporté par le système ou qui a été modifié depuis sa première exportation. Cela n'inclura aucune donnée sur les mouvements de stock, mais fournira plutôt un retour pour chaque point de données dans le ‘Transfer’ classe.
Un exemple de ce type de fichier JSON peut être téléchargé ici.
Transfert:
Exporter le point de terminaison/URI –
http://host:port/V5-API/api/integrate/export/transfer/{referenceNumber}
Ce point de terminaison exportera les fichiers JSON de transfert complet à l'aide de la classe de base de données de transfert, mais uniquement pour le transfert spécifié, et uniquement si ce transfert n'a pas déjà été marqué comme exporté par le système. Comme ci-dessus, cela n'inclura aucune donnée sur les mouvements de stock, mais fournira plutôt un retour pour chaque point de données dans le ‘Transfer’ classe.
Un exemple de ce type de fichier JSON peut être téléchargé ici.
Nous pouvons également utiliser points de terminaison transactionnels et de journalisation pour récupérer des informations plus pertinentes sur les produits reçus sur les bons de commande.
Pour les transferts, nous avons 1 Journal du système point final que nous pouvons utiliser :
Journaux du système:
Exporter le point de terminaison/URI –
http://host:port/V5-API/api/integrate/export/system_logs
L'utilisation de ce point de terminaison renverra une liste complète des événements du journal système qui n'ont pas été marqués comme précédemment exportés. Plus d’informations sur ce point de terminaison peuvent être trouvées ici. Ces résultats peuvent être filtrés pour rechercher des informations spécifiques au transfert. descripteurs tels que ‘MOVED OUT/IN’, ‘PALLET MOVED OUT/IN’ et ‘PALLET TRANSFER OUT/IN’.
Un exemple de ce type de fichier JSON peut être téléchargé ici.
Notez que pour les importations CSV, nous utiliserions normalement uniquement le ‘TransferLine’ point de terminaison, nous permettant de générer des transferts et leurs éléments de campagne grâce à l'utilisation d'une seule importation CSV.
Nom du fichier de définition d'en-tête/colonne : “transferLine.csvh”
Les fichiers d'en-tête complétés doivent être placés dans : “<installdir>\SG Control Center\gateway\import\column_defs”
Importer le nom du fichier CSV : “transferLine-datetime.csv”
Les fichiers CSV à importer doivent être placés dans : “<installdir>\SG Control Center\gateway\import”
En tête de fichier:
Les fichiers d'en-tête seront généralement compilés par SG Systems avant les intégrations CSV, mais nous pouvons voir ci-dessous un exemple de base de celui que nous pouvons utiliser pour les transferts :

Pour plus d'informations sur la manière dont nous structurons ces fichiers, veuillez consulter le page d'intégration principale. Cet exemple de fichier d'en-tête peut être téléchargé ici.
Fichier d'importation CSV :
Nous pouvons ensuite utiliser l'ordre défini des points de données dans l'en-tête pour structurer notre fichier d'importation. SG Systems peut fournir un fichier modèle pour cela, répertoriant les points de données pour chaque colonne afin de clarifier les choses lors du remplissage de la liste. Notez que cette première ligne peut être ignorée par Control Center et peut donc être conservée dans le fichier lors de la soumission pour importation.

Ici, nous pouvons voir que nous visons à créer un transfert similaire à celui que nous avons créé en utilisant la méthodologie JSON. Cet exemple de fichier d'importation peut être téléchargé ici.
Une fois l'importation terminée, nous pouvons voir que ce transfert, ainsi que les éléments de campagne requis, ont été ajoutés au Control Center. Notez que si le ‘Created Date’ les données ne sont pas incluses dans l’importation, la date placée fera référence à la date d’aujourd’hui.

Lorsque l'on cherche à exporter des informations de transfert via cette méthode, cela ferait partie d'un ‘SystemLog’ exporter. Nous pouvons voir les définitions de classe pour ce point de terminaison ici.
Nom du fichier de définition d'en-tête/colonne : “SystemLog.csvh”
Les fichiers d'en-tête complétés doivent être placés dans : “<installdir>\SG Control Center\gateway\export\order”
Exporter le nom du fichier CSV : “SystemLog-datetime.csv”
Les CSV pour les exportations seront générés dans : “<installdir>\SG Control Center\gateway\export”
Ce point de terminaison peut être utilisé pour extraire une grande variété de données en parcourant les points de données disponibles qui y sont liés.
Entête:
Nous pouvons utiliser des points de données tels que ‘user’, ‘timestamp’ et ‘quantity’ sur ce haut ‘System Log’ niveau, mais nous pouvons alors traverser jusqu'au ‘TransferLine’ classe pour ajouter des champs tels que le numéro de référence et les marchandises qui ont été demandés lors du transfert, ainsi qu'à la classe ‘Stock’ classe pour récupérer des informations telles que les emplacements vers lesquels les éléments ont été déplacés.
À un niveau très basique, notre partie de l'en-tête du journal système qui traite des transferts pourrait ressembler à ceci :

Cet exemple de fichier d'en-tête peut être téléchargé ici.
Avec cet en-tête en place, nous devons également nous assurer que nous avons choisi d'exporter ‘System Logs’ dans l'onglet Exporter de la Passerelle du Control Center.

Avec notre en-tête en place et l'exportation activée (n'oubliez pas de redémarrer le Control Center pour appliquer les modifications apportées dans la passerelle !), nous obtiendrons par la suite un fichier de retour pour ce transfert (ainsi que tout autre transfert précédemment non exporté) qui ressemble à ce:
