2017-03-09 2 views
1

J'ai une liste personnalisée qui est utilisée comme option matricielle de l'élément d'inventaire. Sa "couleur". Cette liste personnalisée a une colonne d'abréviation. Je crée une recherche enregistrée sur l'élément et en utilisant le champ Couleur (joindre) et en essayant d'accéder au champ de couleur "Abréviation". L'abréviation de la liste personnalisée est disponible lorsque «Liste d'options matricielles» est cochée. Quelqu'un peut-il m'aider s'il vous plaît à atteindre cet objectif? J'ai essayé de le faire à travers le script et il semble que nous ne pouvons pas accéder à la colonne "Abréviation" à travers le script. J'ai également essayé d'utiliser un script pour écrire une recherche directement dans la liste 'Color' - personnalisée et obtenir l''abréviation' à travers les colonnes de recherche. Cela n'a pas fonctionné. Existe-t-il un moyen d'accéder à 'Abréviation' à partir des listes personnalisées?Comment accéder au champ 'Abréviation' d'une liste personnalisée dans les listes personnalisées NetSuite

Merci à l'avance

Répondre

1

Vous pouvez y accéder via suitescript en utilisant le type d'enregistrement « CustomList » et l'identifiant interne de la liste comme ceci:

var rec = nlapiLoadRecord('customlist', 5); 
var abbreviation = rec.getLineItemValue('customvalue', 'abbreviation', 1); 
nlapiLogExecution('DEBUG', 'abbreviation', abbreviation); 

Gardez à l'esprit que le troisième argument de getLineItemValue est le numéro de ligne, pas l'ID interne de l'élément dans la liste. Si vous souhaitez rechercher un élément de campagne spécifique, vous pouvez utiliser rec.findLineItemValue(group, fldnam, value).


Malheureusement, il ne semble pas que cela se traduise par des recherches sauvegardées. Le suiteanswer à https://netsuite.custhelp.com/app/answers/detail/a_id/10653 a le code suivant:

var col = new Array(); 
col[0] = new nlobjSearchColumn('name'); 
col[1] = new nlobjSearchColumn('internalid'); 
var results = nlapiSearchRecord('customlist25', null, null, col); 
    for (var i = 0; results != null && i < results.length; i++) 
    { 
     var res = results[i]; 
     var listValue = (res.getValue('name')); 
     var listID = (res.getValue('internalid')); 
     nlapiLogExecution('DEBUG', (listValue + ", " + listID)); 
    } 

Cependant, quelle partie de la couche d'application se traduit cela en une requête ne gère pas le champ abréviation. Une chose à garder à l'esprit est que l'enregistrement «liste personnalisée» est essentiellement un enregistrement d'en-tête, et chaque entrée individuelle est son propre enregistrement qui lui est lié. Vous pouvez voir une partie de la structure sous-jacente here, mais le point à retenir est que vous auriez besoin d'un moyen de descendre dans les entrées de la liste, et l'interface de recherche sauvegardée ne le supporte pas vraiment. Je peux me tromper, mais je ne pense pas qu'il existe un moyen de l'exécuter dans une recherche enregistrée telle quelle. Je pensais que la première partie de ma réponse pourrait vous aider à trouver une solution de contournement.