La différence entre data() et buf2Buf() dans Dynamics AX 2012
Publié : 15 février 2025 à 22:53:44 UTC
Dernière mise à jour : 12 janvier 2026 à 08:41:01 UTC
Cet article explique les différences entre les méthodes buf2Buf() et data() dans Dynamics AX 2012, notamment quand il est approprié d'utiliser chacune d'elles et un exemple de code X++.
The Difference Between data() and buf2Buf() in Dynamics AX 2012
Les informations contenues dans cet article sont basées sur Dynamics AX 2012 R3. Elles peuvent ne pas être valides pour d'autres versions.
Lorsque vous devez copier la valeur de tous les champs d'une mémoire tampon de table à une autre dans Dynamics AX, vous procédez généralement comme suit :
Cela fonctionne bien et, dans la plupart des cas, c'est la solution à privilégier.
Vous avez toutefois également la possibilité d'utiliser la fonction buf2Buf à la place :
Cela fonctionne aussi très bien. Alors, quelle est la différence ?
La différence réside dans le fait que buf2Buf ne copie pas les champs système. Ces champs incluent notamment RecId, TableId et, surtout dans ce contexte, DataAreaId. Ce dernier est crucial car l'utilisation la plus courante de buf2Buf() plutôt que de data() est la duplication d'enregistrements entre comptes d'une même société, généralement via le mot-clé changeCompany.
Par exemple, si vous travaillez dans la société « dat » et que vous possédez une autre société appelée « com » dont vous souhaitez copier tous les enregistrements de la table CustTable :
{
buf2Buf(custTableFrom, custTableTo);
custTableTo.insert();
}
Dans ce cas précis, cela fonctionnera car buf2Buf copie toutes les valeurs des champs, à l'exception des champs système, dans le nouveau tampon. Si vous aviez utilisé data() à la place, le nouvel enregistrement aurait été inséré dans les comptes de la société « com », car cette valeur aurait également été copiée dans le nouveau tampon.
(En fait, cela aurait entraîné une erreur de clé dupliquée, mais ce n'est pas ce que vous souhaitez non plus).
Lectures complémentaires
Si vous avez apprécié cet article, vous aimerez peut-être aussi ces suggestions :
- Erreur "Aucune classe de métadonnées définie pour l'objet contrat de données" dans Dynamics AX 2012
- Supprimer une entité juridique (comptes d'entreprise) dans Dynamics AX 2012
- Identification de la classe de document et de la requête pour le service AIF dans Dynamics AX 2012
