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:
- Attribuer des allocations d’expédition à des lignes d’expédition individuelles;
- Créer des colis pour l’expédition; et
- 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
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.
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.
Veillez à affecter les champs d’entité.
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 un envoi. Il 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 Détails, ainsi que le tableau 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.
Jusqu’ici tout va bien. Ensuite, nous allons créer les colis d’expédition. Vous trouverez ci-dessous un exemple de création de deux colis d’expédition pour le dossier d’expédition. Notez que nous allons créer une nouvelle demande PUT pour la ressource d’expédition. L’URI comprend également deux paramètres, indiquant le numéro d’expédition et pour développer l’entité des colis. Nous avons besoin des résultats de l’entité des paquets, afin de spécifier des paquets particuliers qui recevront les détails du paquet. Enfin, nous incluons les détails du package dans notre charge utile. Vous trouverez ci-dessous 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.
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.
Après examen du portail d’aide Acumatica, nous voyons la description de l’entité ID:
L’ID d’entité est un GUID affecté à chaque entité avec laquelle vous travaillez au cours d’une session ERP Acumatica. Vous pouvez obtenir la valeur de l’ID d’entité à partir de la propriété ID d’une entité retournée par Acumatica ERP. Les enregistrements des entités de niveau supérieur que vous récupérez via l’API basée sur un contrat ont des identificateurs persistants, qui sont les valeurs de 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 niveau supérieur renvoyée par Acumatica ERP tout au long de différentes sessions avec Acumatica ERP. Toutefois, si un enregistrement n’a pas d’ID de note (ce qui pourrait être le cas pour les entités de détail, les entités qui correspondent à des enquêtes 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. Autrement dit, 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 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.
À 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 :
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:
- Attribuer des allocations d’expédition à des lignes d’expédition individuelles;
- Créer des colis pour l’envoi; et
- Affecter le contenu du package à certains packages
En ajoutant l’entité de contenu du colis d’expédition à votre point de terminaison d’API REST, vous pourrez exposer les éléments nécessaires afin de créer les détails du colis d’expédition. L’API basée sur un contrat Acumatica nous permet de nous connecter avec le point de terminaison allouer les lignes d’expédition. En outre, vous fournit la puissance de créer les colis d’expédition. Avec des appels d’API supplémentaires, vous pouvez interroger les valeurs d’ID d’identificateur unique pour les détails de l’allocation d’expédition. Avec ces valeurs, vous pouvez affecter 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.