le script après l'importation du fichier ne s'exécute passalut, j'importe un tas de fichiers à partir d'un répertoire et je les ai empilés dans un gros fichier (45 fichiers), après l'importation dans un gros fichier, le script nettoiera l'ensemble de données, ajoutera des colonnes et des lignes, etc. le problème que j'ai rencontré est que le script générera une erreur s'il est exécuté ensemble dans son ensemble ; si j'exécute d'abord l'importation, attends que les fichiers se chargent dans jmp, puis exécute la 2ème partie du code, cela fonctionnera. J'ai dû attendre (150) entre les deux, ce qui est plus que suffisant pour importer les données, mais cela ne fonctionne toujours pas.le message d'erreur indique "argument invalide lors de l'accès ou de l'évaluation de la colonne "Colonne"/*###/(j). J'ai remarqué que le script immédiatement après l'importation pour la mise à jour PVOTC n'était pas non plus exécuté. Ci-dessous mon code, votre aide est grandement appréciée.
files = Files In Directory( loadPath);
For( i = 1, i <= N Items( files ), i++, //previous steps non drb or already parsed)
subLoadPath = loadPath ||files[i];
stepID = num(word(2,word(-1,subLoadPath,"/" ),"_"));
If( Is directory(subLoadPath) & stepID >= 11, // 11 is the step started to parse
tableName = word(-1,subLoadPath,"/" );
tableName_flow = word(-2,subLoadPath,"/" );
dt = Multiple File Import(
<<SET folder="">= 1, j--,
If( (Col N Missing( Column( j ) ) / N Row()) == 1,
dt << delete columns( j )
)
);
Wait(5);
dt << Clear Column Selection(); </SET>Accès aux donnéesRe : Le script après l'importation du fichier ne s'exécute pasProbablement plus d'une table ouverte, essayez d'être explicite, comme ceci
If( (Col N Missing( Column(dt, j ) ) / N Row()) == 1
Je pense que la fonction de colonne utilise une table différente (en fait, la table actuelle) de celle à laquelle vous vous attendez. L'ajout du dt à la fonction column lui indique quelle table, sinon c'est la table actuelle (qui n'a peut-être pas rattrapé son retard lorsque vous l'exécutez en une seule fois.)
Re : Le script après l'importation du fichier ne s'exécute pasCraig
Merci pour votre réponse, maintenant j'ai fait la modification mais le code ne peut toujours pas être exécuté dans son intégralité, la valeur manquante PVOTC n'est pas mise à jour, voir également le même message d'erreur "argument invalide lors de l'accès ou de l'évaluation de 'Colonne', Colonne/* ###*/(j)"
</CODE><CODE class=" language-jsl">dtImpt = Multiple File Import(
<<SET folder="">= 1, j--,
If( (Col N Missing( Column( j ) ) / N Row()) == 1,
dt << delete columns( j )
)
);
dt << Clear Column Selection(); </SET>
</CODE></PRE><P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-390303" slang="en-US" mode="NONE">Re : Le script après l'importation du fichier ne s'exécute pas</LINGO-SUB><LINGO-BODY id="lingo-body-390303" slang="en-US" mode="NONE"><P>Après</P><PRE><CODE class=" language-jsl">dt = Multiple File Import(...) << Import Data;
dt contient une liste de tables de données, même si une seule table est importée.
Vous n'avez pas besoin d'attendre (150).
dt[1] sera la table de données actuelle si une seule table a été importée.
edit : n'utilisez pas la table de données actuelle() si vous pouvez l'éviter. Utilisez un handle explicite comme dt[1] si possible. Current Data Table est une fonction JSL qui tente de se comporter comme JMP, avant l'invention de JSL, où la dernière table touchée serait la table utilisée par la plate-forme suivante.