Le script d'alarme n'écrit pas dans un fichier.Salut,
Je suis aux prises avec un script d'alarme, comme celui ci-dessous. Ce graphique CuSum génère 7 alarmes et devrait donc générer le fichier journal, mais ce n'est pas le cas, ou pas à chaque fois que le script est exécuté, ce qui est étrange. Avez-vous une idée de ce qui se passe ? J'utilise la version 17.2 pro.
Les noms par défaut sont ici (1) ;
dt = Open( "$SAMPLE_DATA/Contrôle qualité/Oil1 Cusum.jmp" );
obj = dt << Graphique de contrôle CUSUM(
Y( :poids ),
H( 2 ),
Côté inférieur (1),
Cible ( 8.1 ),
K( 0,025 ),
Sigma( 0,02 ),
Longueur d'avance (0,05),
Script d'alarme (
contenu = Substitute( "^QCTEST dans la colonne ^QCCOL dans l'échantillon ^QCSAMPLE.",
"^QCTEST", Choisissez( qc_test,
« Un point au-delà des limites de contrôle » ),
"^QCCOL", qc_col,
"^QCSAMPLE", char( qc_sample ));
nom de fichier = Chemin du fichier de conversion ("$TEMP/test log.txt", absolu);
si (le fichier existe( nom de fichier ), Enregistrer le fichier texte( nom de fichier, contenu, Mode("Append") ), Enregistrer le fichier texte( nom de fichier, contenu) );
),
);
// Activer le test 1
obj << Test 1(1);
Automatisation et scriptsRe : Le script d'alarme n'écrit pas dans un fichier.Je ne suis pas un expert en cartes de contrôle, cependant, j'ai pu déclencher l'écriture du fichier en ajoutant
Test beyond limits( 1 )
à la spécification de la carte de contrôle CUSUM
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Quality Control/Oil1 Cusum.jmp" );
obj = dt << CUSUM Control Chart(
Y( :weight ),
H( 2 ),
Lower Side( 1 ),
Target( 8.1 ),
K( 0.025 ),
Sigma( 0.02 ),
Head Start( 0.05 ),
Test beyond limits( 1 ),
Alarm Script(
contents = Substitute( "^QCTEST in column ^QCCOL in sample ^QCSAMPLE.",
"^QCTEST", Choose( qc_test, "One point beyond the control limits" ),
"^QCCOL", qc_col,
"^QCSAMPLE", Char( qc_sample )
);
filename = Convert File Path( "$TEMP/test log.txt", absolute );
If( File Exists( filename ),
Save Text File( filename, contents, Mode( "Append" ) ),
Save Text File( filename, contents )
);
),
);
// Turn on Test 1
obj << Test 1( 1 );

PS Veuillez utiliser l'icône JSL en haut de la page d'aperçu lorsque vous ajoutez votre code JMP. Elle fournit un affichage de votre JSL beaucoup plus facile à lire et à comprendre.
Re : Le script d'alarme n'écrit pas dans un fichier.Salut Jim,
Merci pour ça. Mais ce n'est pas exactement ce que je cherchais. Dans le graphique de contrôle ci-dessous, il y a 7 points sur lesquels un décalage est détecté, comme indiqué par les lignes verticales ci-dessous. 
Je m'attendais alors à ce que mon code ci-dessous remplisse la table de données ReportOut, avec 7 lignes de données, avec le script d'alarme exécuté une fois pour chaque décalage détecté.
Names Default To Here( 1 );
ReportOutDataTable = New Table( "ReportOut",
//Add Rows(1),
New Column( "Name",
Character,
"Nominal",
)
);
dt = Open( "$SAMPLE_DATA/Quality Control/Oil1 Cusum.jmp" );
ReportOUtDataTable = Data Table("ReportOut");
obj = dt << CUSUM Control Chart(
Y( :weight ),
H( 2 ),
Lower Side( 1 ),
Target( 8.1 ),
K( 0.025 ),
Sigma( 0.02 ),
Head Start( 0.05 ),
//Test beyond limits( 1 ),
Alarm Script(
ReportOutDataTable<<ADD rows=""></ADD>However looks like the alarm script wont run at all, unless Test beyond limits (1) is used. This then results in all points out of control in the chart being circled (71 in my example) , and therefore 71 rows of data being added to my ReportOut Data table.
Ultimately, I want the alarm script to run only when a shift is detected, and then output information on the shift to a ReportOut Data table, with information like the Sample Number on which the shift was detected. Maybe I'm misunderstanding how the Alarm script is indented to function?
Re : Le script d'alarme n'écrit pas dans un fichier.Peut-être que le décalage « test » n'est pas considéré comme une alarme et ne déclenchera donc pas le script d'alarme.
Re : Le script d'alarme n'écrit pas dans un fichier.c'est possible, mais cela semblerait étrange, étant donné que le but d'un graphique CuSum est de détecter un décalage dans les données, et cela est indiqué dans Jmp avec les lignes violettes verticales comme ci-dessus. C'est lors d'un décalage dans les données qu'un utilisateur voudrait que le script d'alarme s'exécute.
Re : Le script d'alarme n'écrit pas dans un fichier.C'est peut-être le cas, mais il semble actuellement qu'il ne se déclenche que sur les alarmes, pas sur les changements d'équipe. Peut-être créer un élément de liste de souhaits dans l'espoir d'obtenir une prise en charge du « script de changement d'équipe » ou quelque chose de similaire ? Actuellement, vous pouvez les placer dans un tableau séparé et déclencher vos propres actions en fonction du tableau
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Quality Control/Oil1 Cusum.jmp");
obj = dt << CUSUM Control Chart(
Y(:weight),
H(2),
Lower Side(1),
Target(8.1),
K(0.025),
Sigma(0.05),
Head Start(0.05)
);
dt_summary = obj << Save Summaries;
r = dt_summary << Get Rows Where(Is Missing(:Shift Start));
dt_summary << Delete Rows(r)