Dans mon article d'aujourd'hui, j'aimerais explorer l'utilisation de l'API REST d'Acumatica pour créer des allocations d'expédition, ainsi que pour créer des paquets et les détails de leurs postes individuels.
Plus précisément, j'ai l'intention de me concentrer sur trois tâches distinctes :
- Affecter des allocations de transport à des lignes de transport individuelles ;
- Créer des paquets pour l'expédition ; et
- Affecter le contenu du paquet à certains paquets
Nous commencerons par un envoi ouvert qui attend des allocations de lignes d'expédition. Voyons ce que le point d'accès par défaut peut faire pour accomplir les tâches.
Lors du premier examen du point de terminaison par défaut, nous voyons des entités spécifiques qui nous aident à accomplir les deux premières tâches :
- Détails / Allocations
- Emballages
Malheureusement, le point d'accès par défaut n'expose pas l'entité pour le contenu du paquet, comme vous pouvez le voir ci-dessous.
Puisque le point de terminaison Default n'expose pas cette entité, nous devons l'étendre. C'est ce que nous allons faire tout de suite.
Utilisez l'option pour étendre le point de terminaison par défaut. Ou créez votre propre point de terminaison personnalisé si vous le souhaitez.
Dans notre cas, nous allons étendre l'entité Default. Descendez jusqu'à l'entité Shipment. En utilisant l'entité de détail Packages comme base, créez une nouvelle entité de détail enfant qui nous permettra d'inclure un tableau de type Packages.
Veillez à attribuer les champs de l'entité.
Utilisez l'option Valider l'entité pour vous assurer qu'il n'y a pas de problème avec votre nouvelle extension de point final.
Nous disposons à présent d'un point d'arrivée qui nous permettra d'accomplir toutes nos tâches.
Nous sommes maintenant prêts pour la première tâche : affecter les allocations à la ligne de transport. Voici un exemple de création de dotations pour un envoi. Il s'agit de créer deux attributions pour un poste d'expédition. Nous utilisons l'entité Shipment et soumettons un payload qui contient le tableau Details ainsi que le tableau Allocation. Veillez à inclure le numéro de l'envoi dans votre fichier JSON :
Exécutez l'appel API et observez les résultats dans l'écran de saisie des envois. Lorsque nous examinons la répartition de l'article de transport, nous voyons les résultats de la répartition pour la ligne de transport.
Jusqu'à présent, tout va bien. Ensuite, nous allons créer les paquets de transport. Voici un exemple de création de deux colis de transport pour l'enregistrement de transport. Vous remarquerez que nous allons créer une nouvelle requête PUT pour la ressource Shipment. L'URI comprend également deux paramètres, indiquant le numéro de l'envoi et permettant de développer l'entité packages. Nous avons besoin des résultats de l'entité packages, afin de spécifier les packages particuliers qui recevront les détails du package. Enfin, nous incluons les détails du paquet dans notre charge utile. Voici notre prochain PUT.
Traitez avec l'appel API et observez les résultats dans l'écran de saisie des envois. Nos deux colis sont créés.
Remarquez le corps renvoyé par la méthode PUT. Le tableau Packages contient des informations clés dont vous aurez besoin dans un instant.
En consultant le portail d'aide Acumatica, nous voyons la description de l'entité ID :
L'ID de l'entité est un GUID attribué à chaque entité avec laquelle vous travaillez au cours d'une session Acumatica ERP. Vous pouvez obtenir la valeur de l'ID de l'entité à partir de la propriété ID d'une entité renvoyée par Acumatica ERP. Les enregistrements des entités de premier niveau que vous récupérez par le biais de l'API basée sur les contrats ont des ID persistants, qui sont les valeurs de la colonne NoteID des tables de base de données correspondantes. Cela signifie que vous pouvez utiliser la valeur de la propriété ID d'une entité de premier niveau renvoyée par Acumatica ERP au cours de différentes sessions avec Acumatica ERP. Cependant, si un enregistrement n'a pas d'ID de note (ce qui peut être le cas pour les entités détaillées, les entités qui correspondent à des demandes génériques ou les entités personnalisées), cet enregistrement se voit attribuer l'ID d'entité qui est nouveau pour chaque nouvelle session. Cela signifie qu'après une nouvelle connexion à Acumatica ERP, vous ne pouvez pas utiliser l'identifiant d'entité que vous avez reçu lors de la session précédente pour travailler avec l'entité.
Dans ce cas, l'entité ID nous aide à définir les différents paquets qui ont été créés. Nous utiliserons ces valeurs d'identification dans un instant.
Ensuite, nous sommes prêts à ajouter un poste d'allocation à un paquet particulier, n'est-ce pas ? Il manque un détail important. Chaque enregistrement de contenu de colis d'expédition nécessite la connaissance préalable du numéro de fractionnement de la ligne d'expédition. Ce champ constitue la clé primaire de chaque enregistrement dans la grille des contenus de colis.
À moins que vous ne connaissiez par cœur les numéros de ligne de fractionnement, vous devez les rechercher. L'API REST à la rescousse !
Créons une simple requête GET et incluons le paramètre expand. Nous devons afficher les détails de tous les enregistrements d'allocation, dans la cargaison.
GET / entity/ExtendedDefault/18.200.001/Shipment/0000032?$expand=Details/Allocations HTTP/1.1
Hôte : Votre instance ERP
Content-Type : application/json
Corps de retour (partiel)
Remarquez que notre corps contient deux éléments d'information dont nous avons besoin pour notre demande d'API finale.
ID - il représente de manière unique le numéro de l'envoi.
SplitLineNbr - il s'agit du numéro de la ligne de répartition, pour une ligne d'expédition particulière.
Grâce à ces informations, nous pouvons identifier toutes les allocations. Cela nous permet de créer un enregistrement détaillé du paquet et d'affecter l'allocation à un paquet particulier. Nous allons construire la requête PUT finale et assigner les allocations à un paquet. Jetons un coup d'œil à l'exemple suivant
Dans la charge utile, veillez à affecter l'entité "shipment ID", l'entité "package", ainsi qu'un tableau "Packages". Dans votre tableau de paquets, vous transmettez les numéros de ligne de répartition de l'envoi, représentés par l'entité ShipmentSplitLineNbr.
Les allocations sont ajoutées au paquet :
Résumé
Aujourd'hui, nous avons vu comment utiliser l'API REST d'Acumatica pour créer des allocations de transport. Nous avons également montré comment créer les colis et les détails des colis. Notre objectif principal était d'accomplir les trois tâches suivantes :
- Affecter des allocations de transport à des lignes de transport individuelles ;
- créer des paquets pour l'envoi ; et
- Affecter le contenu du paquet à certains paquets
En ajoutant l'entité "shipment package contents" au point de terminaison de votre API REST, vous pourrez exposer les éléments nécessaires à la création des détails du paquet d'expédition. L'API Acumatica basée sur les contrats nous permet de nous connecter au point de terminaison qui attribue les lignes d'expédition. En outre, elle vous permet de créer les paquets d'expédition. Grâce à des appels API supplémentaires, vous pouvez demander les valeurs de l'identifiant unique pour les détails de l'attribution de l'expédition. Ces valeurs vous permettent d'attribuer les numéros de série aux colis d'expédition.
J'espère que cet article vous a été utile et qu'il vous a permis de comprendre comment vous pouvez attribuer des allocations de transport à des colis spécifiques.