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.

  1. 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');
        }
    }
  1. 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

Parler à un consultant