ANS-1197 · DéVELOPPEMENT SUITESCRIPT

Comment automatiser le téléchargement des dossiers du classeur dans NetSuite ?

Mettez en place un script côté client afin d'automatiser le téléchargement de tous les fichiers d'un dossier du « File Cabinet » de NetSuite sous la forme d'une seule archive ZIP.

Solution courte

Automatisez les téléchargements des dossiers du « File Cabinet » de NetSuite à l’aide d’un script côté client qui redirige vers une URL spécifique : « /core/media/downloadfolder.nl?id={folderid} ». Cette méthode génère dynamiquement l’URL spécifique à l’environnement, ce qui déclenche le téléchargement de l’intégralité du contenu du dossier sous forme de fichier ZIP, à l’instar de la fonctionnalité de téléchargement native de NetSuite.

Scénario

Les utilisateurs ont souvent besoin d’une méthode simplifiée pour télécharger simultanément plusieurs fichiers à partir d’un dossier du « File Cabinet » de NetSuite, plutôt que de télécharger chaque fichier individuellement. Ce besoin se fait sentir lors de la consolidation de documents, de l’archivage de données ou de la réalisation d’opérations en masse pour lesquelles une seule action de téléchargement automatisée s’avère avantageuse.

Solution

La solution consiste à mettre en œuvre un script côté client qui déclenche par programmation le téléchargement du contenu d’un dossier spécifique du « File Cabinet ». Pour ce faire, il faut créer une URL interne NetSuite spécifique et y accéder, ce qui lance le téléchargement de tous les fichiers contenus dans le dossier sous forme d’archive ZIP. Le principe de cette fonctionnalité repose sur la structure d’URL suivante : « /core/media/downloadfolder.nl?id{folderid} ». Il s’agit de la même URL que celle utilisée en interne par NetSuite lorsqu’un utilisateur clique manuellement sur le bouton « Télécharger » dans le « File Cabinet ». Pour mettre cela en œuvre, un bouton « Télécharger » peut être ajouté en mode affichage, ce qui déclenche la fonction côté client suivante :

javascript
var DOWNLOAD_URL  '/core/media/downloadfolder.nl?id{folderid}';
var SANDBOX_ENVIRONMENT  'SANDBOX';
var SANDBOX_BASE_URL  'https://system.sandbox.netsuite.com';
var PRODUCTION_BASE_URL  'https://system.netsuite.com';

function downloadFiles(folder){
if (folder ! null && folder ! '') {
    var environment  nlapiGetContext().getEnvironment();
    var url  '';
    var downloadUrl  DOWNLOAD_URL.replace('{folderid}', folder);

    if (environment  SANDBOX_ENVIRONMENT) {
        url  SANDBOX_BASE_URL + downloadUrl;
    } else {
        url  PRODUCTION_BASE_URL + downloadUrl;
    }

    window.location  url;
}
}

Cette fonction détermine dynamiquement l’environnement NetSuite actuel (Sandbox ou Production) et construit l’URL de base appropriée. Elle ajoute ensuite downloadUrl, en remplaçant {folderid} par l’identifiant réel du dossier cible. Enfin, window.location = url; redirige le navigateur, lançant ainsi le téléchargement du fichier ZIP contenant l’intégralité du contenu du dossier spécifié.

Support expert NetSuite

Besoin d’aide pour cet enjeu NetSuite ?

Accompagnement-conseil et configuration pour Développement SuiteScript

Parler à un consultant