ANS-0883 · DéVELOPPEMENT SUITESCRIPT
Comment récupérer les valeurs des champs d’adresse personnalisés à partir des transactions NetSuite
Ce guide décrit en détail deux méthodes de script permettant d’extraire les valeurs des champs d’adresse personnalisés à partir des enregistrements de transaction NetSuite.
Solution courte
Les valeurs des champs d'adresse personnalisés des transactions NetSuite peuvent être récupérées à l'aide de scripts. Les méthodes consistent notamment à charger la fiche client associée, puis à parcourir son sous-enregistrement « Carnet d'adresses » afin de faire correspondre l'identifiant d'adresse et d'extraire le champ personnalisé. Il est également possible de créer une recherche NetSuite pour joindre la transaction à l'adresse de facturation, ce qui permet d'extraire directement la valeur du champ personnalisé.
Scénario
Les utilisateurs ont souvent besoin d’accéder par programmation aux valeurs des champs d’adresse personnalisés associés aux enregistrements de transaction, tels que les commandes client. Ces champs sont généralement définis dans le sous-enregistrement d’adresse et liés à l’adresse de facturation ou de livraison de la transaction. La difficulté réside dans l’extraction efficace de ces valeurs personnalisées spécifiques en vue d’un traitement ultérieur ou d’un affichage.
Solution
Pour récupérer la valeur d’un champ d’adresse personnalisé à partir d’une transaction NetSuite, deux méthodes de script principales peuvent être utilisées. Il est important de noter que les exemples suivants utilisent les API SuiteScript 1.0, qui sont obsolètes. Pour les nouveaux développements, NetSuite recommande d’utiliser SuiteScript 2.x.
Récupérer la valeur du champ personnalisé en chargeant le sous-enregistrement au sein de l’enregistrement client :
Cette méthode consiste à charger l’enregistrement de transaction, à identifier l’ID client et l’ID d’adresse associés, puis à parcourir la sous-liste du carnet d’adresses du client afin de localiser l’adresse spécifique et d’extraire la valeur du champ personnalisé de son sous-enregistrement.
javascript
var transactionRecord nlapiLoadRecord('salesorder', 554395);
// This should work also when using shipaddresslist
var addressRecordId transactionRecord .getFieldValue('billaddresslist');
var customerRecord nlapiLoadRecord('customer',
transactionRecord.getFieldValue('entity'));
var customFieldValue null;
for (var i 1; i < customerRecord.getLineItemCount('addressbook'); i++)
{
customerRecord.selectLineItem('addressbook', i);
var id customerRecord.getCurrentLineItemValue('addressbook', 'id');
if (id addressRecordId)
{
var subrecord
customerRecord.viewCurrentLineItemSubrecord('addressbook',
'addressbookaddress');
customFieldValue subrecord.getFieldValue('custrecord_contact_id');
}
}Créez une recherche pour obtenir la valeur de votre champ personnalisé :
Cette approche exploite les fonctionnalités de recherche de NetSuite pour interroger directement la transaction et effectuer une jointure avec son adresse de facturation, ce qui permet d’extraire la valeur du champ personnalisé de manière plus fluide.
javascript
var filters [];
filters.push(new nlobjSearchFilter('internalid', null, 'anyof', 554395));
filters.push(new nlobjSearchFilter('mainline', null, 'is', 'T'));
var searchResults nlapiSearchRecord('salesorder', null, filters, new
nlobjSearchColumn('custrecord_contact_id', 'billingaddress'));
var customFieldValue
searchResults[0].getValue('custrecord_contact_id', 'billingaddress');Support expert NetSuite
Besoin d’aide pour cet enjeu NetSuite ?
Accompagnement-conseil et configuration pour Développement SuiteScript
