ANS-1415 · DéVELOPPEMENT SUITESCRIPT

Comment rechercher les rôles attribués aux déploiements de scripts NetSuite ?

Apprenez à récupérer par programmation les attributions de rôles pour les déploiements de scripts, y compris celles qui ne sont pas directement consultables via les méthodes standard.

Solution courte

Pour identifier les rôles attribués aux déploiements de scripts NetSuite, y compris ceux figurant dans des champs non consultables, vous pouvez effectuer une recherche SuiteScript. Cela implique de créer une recherche sur les déploiements de scripts, de parcourir les résultats et de charger chaque enregistrement de déploiement afin d’extraire les valeurs des champs « allroles » ou « audslctrole », puis de consigner le nom du script et les rôles associés.

Scénario

Les administrateurs et développeurs NetSuite ont souvent besoin d’identifier les rôles associés à des déploiements de scripts spécifiques. Les recherches standard peuvent ne pas faire apparaître directement toutes les affectations de rôles, en particulier pour les champs qui ne sont pas consultables. Cela peut compliquer l’audit ou la gestion efficace des autorisations d’accès aux scripts.

Solution

Pour récupérer par programmation les affectations de rôles pour les déploiements de scripts, y compris celles figurant dans des champs non consultables, une recherche SuiteScript peut être effectuée. L’extrait de code générique suivant peut être exécuté dans la console du navigateur ou dans le cadre d’un script SuiteScript afin de charger chaque déploiement de script et de vérifier les rôles qui lui sont associés :

/*n* This code snippet is designed to load each script deployment so we mayn* check unsearchable fields, such as roles.n*/nn//Add filters and columns if necessary. Search works on internalid, so notn//necessary if not needed.nvar filters = [];nnvar columns = [];nn//Create searchnvar deploymentSearch = searchModule.create({ntype: searchModule.Type.SCRIPT_DEPLOYMENT,nfilters: filters,ncolumns: columnsn});nnvar deploymentResults = deploymentSearch.run();nvar deploymentIds = [];nndeploymentResults.each(function (row){//10 GovernancendeploymentIds.push(row.id);n//*** PUT HANDLING HERE ***//nvar deploymentRecord = recordModule.load({ //5 Governance (because notntransaction record or custom record)ntype: recordModule.Type.SCRIPT_DEPLOYMENT,nid: row.idn});nvar scriptName = deploymentRecord.getText({
fieldId:'script'
});nvar allRoles = deploymentRecord.getValue({
fieldId: 'allroles'
});nif(allRoles){
console.log('*** ' + scriptName + ' / ' + row.id + ' ***');nconsole.log(" -> ALL ROLES");n}else{
//For manually selected rolesnvar allRoles = deploymentRecord.getValue({
fieldId: 'audslctrole'
});nconsole.log('*** ' + scriptName + ' / ' + row.id + ' ***');nif(allRoles){
console.log(allRoles);n}else{
console.log(' -> ' + deploymentRecord.getText({fieldId: 'status'}));
}
}nreturn true;n});

Ce script parcourt chaque déploiement de script, charge son enregistrement et vérifie le champ allroles. Si allroles est faux, il vérifie alors le champ audslctrole pour les rôles sélectionnés manuellement. Le script consigne le nom du script, l’ID de déploiement ainsi que les rôles attribués ou le statut. Les utilisateurs doivent tenir compte des limites de gouvernance de NetSuite lorsqu’ils effectuent de telles recherches, car chaque chargement d’enregistrement consomme des unités de gouvernance.

Support expert NetSuite

Besoin d’aide pour cet enjeu NetSuite ?

Accompagnement-conseil et configuration pour Développement SuiteScript

Parler à un consultant