Recientemente creamos código JSL para recopilar datos de una llamada a la API REST. Actualmente estoy usando la versión 18.01 de JMP.
En esencia, nuestro desarrollador de aplicaciones ha creado un escenario en el que, para un departamento de fabricación específico, solicitamos los datos en bloques mensuales para simplificar el trabajo. Abarcamos 24 meses de datos desde hoy. Luego, combinamos los datos de cada mes en una tabla de datos y realizamos nuestro análisis en la tabla completa.
Finalmente, pretendemos publicar este informe en JMP-Live, y ahí radica nuestro problema. Realicé una publicación rápida en JMP-Live, donde se utiliza la llamada a la API REST, pero no se ejecutó. Sospecho que se debe al complemento del analizador JSON que instalamos en JMP.
En el código a continuación, puede ver dos líneas críticas donde el complemento JSON Parser entra en juego...
// Analizar JSON y construir una tabla
json = JSON:Parse(resultado);
tempDT = JSON:Crear Tabla(json);
Quizás haya una mejor manera de lograr nuestros resultados finales, ¿o necesitamos hacer que el complemento JSON Parser esté disponible en el entorno JMP-Live?
Atentamente,
John
Names Default To Here(1);
// Create empty Combined Results table
finalTable = New Table("Combined Results");
// Loop through month offsets
For(month = 1, month <= 24, month++,
Try(
// Build and send request
request_url = "https://XXXX-XXX.XXXXXXX.net/XXXX/api/xX.X.X./XXX/dept/dt/month_offset/" || Char(month) || "/met_test_results" ;
result = New HTTP Request(URL(request_url), Method("GET")) << Send;
// Parse JSON and build table
json = JSON:Parse(result);
tempDT = JSON:Make Table(json);
// Append only if rows exist
If(NRow(tempDT) > 0,
// Add MonthOffset column
tempDT << New Column("MonthOffset", Numeric, Set Each Value(month));
// Append to final table
finalTable << Concatenate(tempDT, Append to First Table);
Write("Month " || Char(month) || ": Data added to Combined Results.\n");
,
Write("Month " || Char(month) || ": No data returned — skipping.\n");
);
// Always close the temp table
Close(tempDT, NoSave);
,
Write("Skipping month offset " || Char(month) || " due to error or bad response.\n");
);
Wait (0.25) ;
);
// Show final table if it has any rows
If(NRow(finalTable) > 0,
finalTable << Set Name("Combined Results");
finalTable << Show Window,
New Window("No Data", Text Box("No valid data returned from selected months."))
);
// Assuming finalTable is already your active data table
dt = finalTable;¿Has visto JSON a tabla de datos()?
result = "\[[
{
"name" : "KATIE",
"age" : 12,
"sex" : "F",
"height" : 59,
"weight" : 95
},
{
"name" : "LOUISE",
"age" : 12,
"sex" : "F",
"height" : 61,
"weight" : 123
},
{
"name" : "LAWRENCE",
"age" : 17,
"sex" : "M",
"height" : 70,
"weight" : 172
}
]]\";
dt = JSON to Data Table( result );

Esa sugerencia funcionó muy bien en la aplicación de escritorio JMP, gracias por la ayuda.
Sin embargo, no se actualizó con el mismo script que la aplicación de escritorio en el entorno JMP-Live. ¡Desafortunadamente, queda mucho trabajo por hacer!