Un regard sur l’API basée sur REST dans les activités de développement liées à l’expédition

Chris Hardgrove | 21 août 2022

Un regard sur l’API basée sur REST dans les activités de développement liées à l’expédition

Dans mon post d’aujourd’hui, je voudrais explorer l’utilisation de l’API REST d’Acumatica pour créer des allocations d’expédition, ainsi que la création des colis et de leurs détails de ligne connexes.

Plus précisément, je prévois de me concentrer sur trois tâches discrètes:

  1. Attribuer des allocations d’expédition à des lignes d’expédition individuelles;
  2. Créer des colis pour l’expédition; et
  3. Affecter le contenu du package à certains packages

Nous commencerons par un envoi ouvert qui prévoit des allocations de lignes d’expédition. Voyons ce que le point de terminaison par défaut a à sa disposition pour accomplir les tâches.

Lors du premier examen du point de terminaison par défaut, nous voyons des entités spécifiques qui aident avec les deux premières tâches :

  • Détails / Allocations
  • Forfaits

Un regard sur l’API basée sur REST dans les activités de développement liées à l’expédition

Malheureusement, le point de terminaison par défaut n’expose pas l’entité pour le contenu du package, comme vous pouvez le voir ci-dessous.

Un regard sur l’API basée sur REST dans les activités de développement liées à l’expédition

Puisque le point de terminaison par défaut n’expose pas cette entité, nous devons l’étendre. Accomplissons cette tâche 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 étendrons l’entité Default. Explorez jusqu’à l’entité d’expédition. 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 packages de type.

Un regard sur l’API basée sur REST dans les activités de développement liées à l’expédition

Veillez à affecter les champs d’entité.

Un regard sur l’API basée sur REST dans les activités de développement liées à l’expédition

Utilisez l’option Valider l’entité pour vous assurer qu’il n’y a aucun problème avec votre nouvelle extension de point de terminaison.

Maintenant, nous avons un point final qui accomplira toutes nos tâches.

Nous sommes maintenant prêts pour la première tâche : attribuer les allocations à la ligne d’expédition. Voici un exemple : comment créer des allocations pour une cargaison. Cela crée deux allocations pour un article d’expédition.

Nous utilisons l’entité Expédition et soumettons une charge utile qui contient le tableau de détails, ainsi que le tableau d’allocation. Assurez-vous d’inclure le numéro d’expédition dans votre charge utile JSON :

Exécutez l’appel d’API et notez les résultats dans l’écran de saisie de l’expédition. Lorsque nous examinons l’allocation pour l’article d’expédition, nous voyons les résultats de l’allocation pour la ligne d’expédition.

Un regard sur l’API basée sur REST dans les activités de développement liées à l’expédition

Jusqu’ici, tout va bien. Ensuite, nous allons créer les colis d’expédition. Voici un exemple pour créer deux colis d’expédition pour l’enregistrement d’expédition.

Notez que nous allons créer une nouvelle demande PUT pour la ressource Expédition. L’URI inclut également deux paramètres, indiquant le numéro d’expédition et pour étendre l’entité de colis. Nous avons besoin des résultats de l’entité packages afin de spécifier certains packages 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 notez les résultats dans l’écran de saisie de l’expédition. Nos deux paquets sont créés.

Un regard sur l’API basée sur REST dans les activités de développement liées à l’expédition

Remarquez que le corps est revenu de la méthode PUT. Il y a des éléments d’information clés dans le tableau Packages, et vous en aurez besoin dans un instant.

Un regard sur l’API basée sur REST dans les activités de développement liées à l’expédition

Après examen du portail d’aide Acumatica, nous voyons la description de l’entité ID:

L’identifiant de l’entité est un GUID qui est attribué à chaque entité avec laquelle vous travaillez lors d’une séance ERP d’Acumatica. Vous pouvez obtenir la valeur de l’ID d’entité à partir de la propriété ID d’une entité retournée d’Acumatica ERP. Les enregistrements des entités de premier niveau que vous récupérez via l’API basée sur contrat ont des ID persistants, qui sont les valeurs dans la colonne NoteID des tables de base de données correspondantes.

C’est-à-dire que vous pouvez utiliser la valeur de la propriété ID d’une entité de haut niveau revenue d’Acumatica ERP lors de différentes séances 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 correspondant à des requêtes génériques ou des entités personnalisées), cet enregistrement se voit attribuer l’ID d’entité qui est nouveau pour chaque nouvelle session. C’est-à-dire qu’après une nouvelle connexion à Acumatica ERP, vous ne pouvez plus utiliser l’identifiant d’entité 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 packages individuels qui ont été créés. Nous utiliserons ces valeurs d’identification dans un instant.

Ensuite, nous sommes prêts à ajouter un élément d’allocation à un paquet particulier, oui? Il manque un détail important. Chaque enregistrement de contenu de colis d’expédition nécessite la connaissance de l’avant-main du numéro de fractionnement de la ligne d’expédition. Ce champ constitue la clé primaire de chaque enregistrement dans la grille de contenu du package.

Un regard sur l’API basée sur REST dans les activités de développement liées à l’expédition

À moins que vous ne connaissiez les numéros de ligne fractionnés par cœur, vous devez les interroger. API basée sur REST à la rescousse !!

Créons une demande GET simple et incluons le paramètre expand. Nous devons voir les détails de tous les enregistrements d’allocation, dans l’expédition.

GET / entity/ExtendedDefault/18.200.001/Shipment/0000032?$expand=Details/Allocations HTTP/1.1

Animateur : YourERPInstance

Type de contenu : application/json

Corps de retour (partiel)

Notez qu’il y a deux éléments d’information dans notre corps dont nous avons besoin pour notre demande d’API finale.

ID - cela représente de manière unique le numéro d’expédition.

SplitLineNbr - cela représente le numéro de ligne d’allocation, pour une ligne d’expédition particulière.

Avec ces informations, nous pouvons identifier toutes les allocations. Cela nous permet de créer un enregistrement de détails de package et d’affecter l’allocation à un package particulier. Nous allons construire la demande put finale et affecter les allocations à un paquet. Jetons un coup d’œil à l’exemple suivant

Dans la charge utile, veillez à affecter l’entité d’ID d’expédition, l’entité de package, ainsi qu’un tableau Packages. Dans votre tableau de colis, vous transmettez les numéros de ligne d’allocation d’expédition, représentés en tant qu’entité ShipmentSplitLineNbr.

Les allocations sont ajoutées à l’ensemble :

Un regard sur l’API basée sur REST dans les activités de développement liées à l’expédition

Résumé

Aujourd’hui, nous avons examiné comment utiliser l’API REST d’Acumatica afin de créer une allocation d’expédition. Nous avons également montré comment vous pouvez créer les packages et les détails du package.  Notre objectif principal était de savoir comment nous allions accomplir les trois tâches suivantes:

  1. Attribuer des allocations d’expédition à des lignes d’expédition individuelles;
  2. Créer des colis pour l’envoi; et
  3. Affecter le contenu du package à certains packages

En ajoutant l’entité contenu du colis d’expédition à votre point de terminaison API REST, vous pourrez exposer les éléments nécessaires pour créer les détails du colis d’expédition.  L’API basée sur les contrats Acumatica nous permet de nous connecter au point d’arrivée et d’allouer les lignes d’expédition.  De plus, cela vous donne le pouvoir de créer les colis d’expédition. 

Avec des appels API supplémentaires, vous pouvez interroger les valeurs d’identifiant uniques pour obtenir les détails de l’allocation des expéditions.  Avec ces valeurs, vous pouvez attribuer les numéros de série aux colis d’expédition.

J’espère que ce post est utile et vous a fourni la base sur la façon dont vous pouvez attribuer des allocations d’expédition à des colis spécifiques.

Auteur du blog

Chris développe des solutions sur la plateforme Acumatica xRP depuis 2012. Au cours de ces premières années pour Acumatica, il a reçu « d’innombrables » instructions en tête-à-tête de « la » Mikhail Chtchelkonogov via Skype, apprenant tout sur l’Acumatica et le cadre de développement xRP. En 2018, Chris a rejoint NexTech en tant que consultant en développement.

Recevez des mises à jour de blog dans votre boîte de réception.