
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 répartitions à la ligne d'expédition. Voici un exemple illustrant comment créer des répartitions pour une expédition. Cela permet de créer deux répartitions pour un article d'expédition.
Nous utilisons l'entité Shipment et envoyons une charge utile contenant le tableau Details ainsi que le tableau Allocation. Veillez à inclure le numéro d'expédition dans votre charge utile 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'ici, tout va bien. Nous allons maintenant créer les colis d'expédition. Vous trouverez ci-dessous un exemple illustrant comment créer deux colis d'expédition pour l'enregistrement d'expédition.
Notez que nous allons créer une nouvelle requête PUT pour la ressource Shipment. L'URI comprend également deux paramètres : l'un indiquant le numéro d'expédition et l'autre permettant de développer l'entité packages. Nous avons besoin des résultats de l'entité packages afin de spécifier les colis particuliers pour lesquels nous souhaitons obtenir les détails. Enfin, nous incluons les détails des colis dans notre charge utile. Voici notre prochaine requête 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'identifiant d'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'identifiant d'entité à partir de la propriété ID d'une entité renvoyée par Acumatica ERP. Les enregistrements des entités de niveau supérieur que vous récupérez via l'API basée sur les contrats possèdent des identifiants persistants, qui correspondent aux valeurs de la colonne NoteID des tables de base de données correspondantes.
En d'autres termes, vous pouvez utiliser la valeur de la propriété ID d'une entité de niveau supérieur renvoyée par Acumatica ERP tout au long de différentes sessions avec Acumatica ERP. Toutefois, si un enregistrement ne dispose pas d'un ID d'entité (ce qui peut être le cas pour les entités de détail, les entités correspondant à des requêtes génériques ou les entités personnalisées), cet enregistrement se voit attribuer un ID d'entité qui est renouvelé à chaque nouvelle session. En d'autres termes, après une nouvelle connexion à Acumatica ERP, vous ne pouvez pas utiliser l'ID d'entité que vous avez reçu lors de la session précédente pour travailler avec cette 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é « Contenu du colis » à votre point de terminaison API REST, vous pourrez exposer les éléments nécessaires à la création des détails du colis. L'API Acumatica basée sur les contrats nous permet de nous connecter au point de terminaison pour attribuer les lignes d'expédition. De plus, elle vous offre la possibilité de créer des colis.
Grâce à des appels API supplémentaires, vous pouvez récupérer les identifiants uniques (ID) correspondant aux détails d'affectation des envois. À partir de ces identifiants, vous pouvez attribuer des numéros de série aux colis.
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.