2017-08-17 3 views
0

J'utilise le script suite (la version de l'API est 1.0). J'ai créé une recherche sauvegardée pour la transaction dans le compte netsuite. Maintenant, je veux tirer les données de la recherche enregistrée dans ma base de données, mais avant cela, je veux juste lister les colonnes présentes dans la recherche sauvegardée sur mon écran de cartographie.Colums nom de la recherche enregistrée avec suitescript

Pour cela, je l'ai écrit ci-dessous le script:

function GetColumnName() 
{ 
     var s = nlapiLoadSearch('transaction', 'customsearchtestsavedsearchwithcustfield'); 
     var columns = s.getColumns(); 
     return columns; 
} 

mais en fonction getColumns de code ci-dessus ne fonctionne pas et NetSuite donner ci-dessous erreur (erreur ne dit pas grand-chose)

TITLE 
**UNEXPECTED_ERROR** 
TYPE 
System 
DATE & TIME 
8/17/2017 4:34 am 
DETAILS 

peut une aidez-moi s'il vous plaît à ce sujet.

Merci

+0

Quelles sont les colonnes que vous avez configuré dans cette recherche sauvegardée? – erictgrubaugh

+0

Compte, département, montant et certains autres, y compris les segments personnalisés, les corps personnalisés – user2626026

+0

aujourd'hui, je suis capable de déboguer mon script dans le débogueur Netsuite et trouvé plus de détails sur l'erreur, maintenant l'erreur dit: UNEXPECTED_ERROR \t 8/17/2017 21:54 : 25.887 \t RéférenceError: "nlapiLoadSearch" n'est pas défini. (adhoc $ -1 $ debugger.user # 26). désolé pour mon commentaire ci-dessus. l'erreur ne vient qu'avec SuiteScript 2.0, dans SuiteScript 1.0 cela fonctionne. – user2626026

Répondre

0

Je crois que cela vous donnera le résultat que vous recherchez. Passez simplement l'objet nlobjSearch et il retournera un tableau des noms de colonnes. Ceci est vérifié comme fonctionnel, si vous recevez toujours une erreur, alors il y a quelque chose de mal avec la recherche en cours de chargement et vous devriez diagnostiquer cette recherche dans l'interface utilisateur.

function searchColTitles(search) { // search is the nlobjSearch from an nlapiLoadSearch(), or nlapiCreateSearch() 

var columns = []; 
var c; 
var cName; 
var columnNames = []; 


columns = search.getColumns(); 

for (c = 0; columns.length && c < columns.length; c += 1) { 
    cName = columns[c].label; 
    if (!cName) { 
     cName = columns[c].name; 
    } 
    columnNames.push(cName); 
} 

return columnNames; 

}

+0

Merci, au-dessus du script fonctionne bien dans SuiteScript 1.0, mais dans 2.0, l'erreur dit "nlapiLoadSearch n'est pas défini" – user2626026

+0

@ user2626026 Correct, tout ce qui commence par nlapi est un 1.0 api. Pour 2.0, vous devez charger le module de recherche, puis utiliser search.loadSearch ({options}). Consultez la documentation d'aide pour plus d'informations sur 2.0 si nécessaire. –

+0

Merci. Mon script sur netsuite a le niveau d'API 1.0. Donc, lors du débogage sur netsuite avec 1.0 cela fonctionne, mais lors de l'accès à mon script déployé à partir de mon application C# échantillon, ce qui me donne l'erreur ci-dessus. Y at-il un moyen de savoir quel api netsuite utilise quand j'appelle Restlet de C# – user2626026