Administrador de complementosDescripción
Administrador de complementos le permite crear y reconstruir fácilmente archivos de complementos, administrar versiones de un complemento a lo largo del tiempo, acceder directamente a archivos de origen y tener personalizaciones adicionales para su complemento. Ahora con la versión 2.0 de Administrador de complementos , puede controlar todo su ciclo de vida de desarrollo de aplicaciones JSL ahora que puede implementar sus complementos para sus usuarios directamente desde Administrador de complementos !
Cree complementos rápidamente
La característica fundamental de Administrador de complementos es la capacidad de crear un archivo de complemento JMP directamente desde los archivos de origen. Esta función se incluyó inicialmente en mi Generador de complementos personalizados complemento y Administrador de complementos ha tomado los conceptos básicos de ese complemento y lo ha mejorado.

Implementar un complemento para los usuarios
Con la versión 2.0 de Administrador de complementos , ahora puede implementar (o enviar) complementos a sus usuarios directamente desde Administrador de complementos . Puede implementar en una ubicación de PRUEBA para que sus usuarios prueben su complemento y también puede implementar en una ubicación PROD.

Al implementar en PROD, un script JSL con una matriz asociativa se actualiza automáticamente con la última fecha/hora de publicación. Esta matriz asociativa puede ser utilizada por un script 'updateCheck.jsl' generado automáticamente que puede comparar la fecha de compilación del complemento del usuario con la fecha de compilación de acuerdo con la matriz asociativa. Si hay disponible una versión más reciente del complemento, el usuario verá la siguiente ventana, donde puede optar por actualizar a la última versión. Este concepto que utiliza una matriz asociativa para buscar actualizaciones se adaptó de @brady_brady El método de usar una tabla con fechas de publicación. Este método se describe en @Jeff_Perkinson publicación de Cómo escribir complementos JMP de actualización automática .

Administrar versiones de un complemento
Administrador de complementos tiene la capacidad de mantener automáticamente un historial de versiones de un archivo de complemento cada vez que se crea uno nuevo. Le permite instalar, restaurar o eliminar una versión anterior de un complemento. Opcionalmente, puede incluir un comentario para cada compilación para que pueda realizar un seguimiento de los cambios que se realizaron en cada versión.

Realización de personalizaciones de complementos adicionales
Administrador de complementos le permite realizar algunas personalizaciones en su complemento que anteriormente requerían cambios manuales en XML. A continuación se muestran las personalizaciones adicionales disponibles en Administrador de complementos .
- Versión máxima de JMP
- Iconos JMP integrados para elementos de menú
- Insertar antes de la posición para especificar una posición para un elemento de menú
- Barra de menú personalizada: cree su propio menú o use un menú existente que no sea "Complementos"
- Nuevo en Administrador de complementos 2.0: Múltiples menús principales dentro de un solo complemento

Acceso a archivos de origen directamente desde JMP
En la pestaña Archivos dentro Administrador de complementos , puede abrir archivos en su carpeta de origen directamente desde JMP haciendo doble clic en el archivo deseado en la tabla.

Gestión automática de metadatos personalizados
Con Administrador de complementos versión 2.0, puede crear sus propios metadatos personalizados además de los metadatos incluidos y administrados automáticamente por Administrador de complementos .

Administrar complementos instalados previamente
Desde la pestaña Instalado, puede habilitar, deshabilitar o registrar complementos instalados, así como registrar complementos que no están instalados.

Requisitos del sistema
Este complemento es compatible con los sistemas operativos Windows y Mac con JMP 13 o superior.
Serie de blogs
Administrador de complementos, parte 1: definición y creación de un complemento JMP
Administrador de complementos, parte 2: implementación de complementos de actualización automática para los usuarios
Administrador de complementos, Parte 3: Personalización avanzada
registro de cambios
Versión 1.1-1.3 (16 de octubre de 2017)
- Se corrigieron algunos casos que causaron que el complemento arrojara un error.
- Se agregaron nuevas preferencias para controlar si se muestran los menús y las barras de herramientas.
Versión 2.0 (22 de noviembre de 2017)
- Se agregó compatibilidad para implementar complementos en ubicaciones de PRUEBA y PROD.
- Se agregó soporte para metadatos personalizados a través de una matriz asociativa que se puede incluir en sus scripts.
- Se agregó la capacidad de tener múltiples menús principales en un solo complemento.
- Se agregó la capacidad de copiar y pegar elementos de menú en el árbol de elementos de menú.
- Se agregó soporte para establecer una carpeta de origen a partir de un archivo 'jmpaddin' existente.
- Se agregó la capacidad de buscar una nueva versión, extraída directamente de la comunidad JMP.
- Preferencia agregada para instalar complementos automáticamente después de compilarlos.
- Se eliminó la compatibilidad para compilar varios complementos a la vez, por varios motivos.
- Aplastó otros varios errores.
Versión 2.1 (26 de febrero de 2018)
- Preferencia agregada para excluir archivos y carpetas invisibles (es decir, archivos/carpetas que comienzan con un punto). Esto es útil si está utilizando un sistema de control de versiones, como Git.
- El archivo customMetadata.jsl ahora se ignora al determinar si tiene instalada la última versión.
Versión 2.2 (8 de marzo de 2018)
- Se solucionó un problema al agregar más de dos menús principales de nivel superior.
- Se agregaron nuevos íconos a la pantalla de selección. Los iconos eliminados solo están disponibles en un sistema operativo.
Versión 2.3 (6 de abril de 2018)
- Se corrigió el error en Mac causado cuando se renombró o eliminó una carpeta de origen
- La ventana de preferencias ahora funciona incluso si no tiene instalada la fuente Consolas en su computadora.
Versión 2.4 (9 de enero de 2020)
- Permitir la inserción de elementos de menú antes o después de otros elementos, en lugar de solo permitir la inserción después.
- Agregue 15 y 16 como números de versión mínimo/máximo de JMP.
Versión 2.5 (5 de febrero de 2020)
- Mejore la legibilidad al usar el modo oscuro de macOS y el modo de alto contraste de Windows en JMP 15.
- Arreglar la alerta que se muestra al abrir las preferencias en Mac.
Versión 2.6 (4 de junio de 2020)
- Se corrigió el error con el análisis de complementos con menús personalizados.
- Se agregó información de diagnóstico para analizar errores para ayudar con problemas futuros.
Versión 2.7 (10 de junio de 2020)
- Agregue una solución para el error temporal en JMP 16 EA
Versión 2.8 (24 de septiembre de 2020)
- Se solucionó el problema al descomprimir complementos con subcarpetas
- Opción agregada para crear automáticamente una carpeta cuando se usa una plantilla de complemento (activada de forma predeterminada).
Versión 2.9 (4 de febrero de 2021)
- Cambió algunos formatos de fecha a formatos locales
- Se corrigió la función de verificación de actualizaciones.
Versión 3.0 (18 de enero de 2022)
- Los caracteres especiales XML (como '&') ya no deberían interrumpir los archivos addin.jmpcust.
Versión 3.1 (4 de marzo de 2022)
- Advertencia de formato de fecha fija para algunas configuraciones regionales al archivar complementos.
¡Avísame si encuentras algún problema!
Versión actual=3.1
2.9
El Administrador de complementos le permite crear y reconstruir fácilmente archivos de complementos, administrar versiones de un complemento a lo largo del tiempo, acceder directamente a archivos de origen, tener personalizaciones adicionales para su complemento e implementar sus complementos en tus usuarios

UtilidadesRe: Administrador de complementos@Justin_Chilton JMP17 muestra estructuras de menú vacías para mis complementos donde JMP16 muestra elementos de menú. Es lo mismo para los tres complementos. Vea mi mensaje anterior el 14 de septiembre de 2021.

Re: Administrador de complementos@Justin_Chilton , @nathan-clark Finalmente estoy volviendo a mi función de actualización automática del complemento TEST. Creo que lo hice funcionar correctamente con la excepción de que el administrador de complementos no está escribiendo la carpeta de metadatos para la configuración de PRUEBA.
¿Alguna posibilidad de habilitar esto? de lo contrario, es necesario actualizar manualmente estos archivos cada vez, lo que es bastante propenso a errores.
Henning
Re: Administrador de complementosHola @Justin_Chilton
Mientras intentaba varias cosas después de publicar la pregunta, sospeché que el archivo estaba dañado por el sistema de seguridad interno de la industria.
Cuando recibí el archivo desde el exterior y procedí con la reinstalación, se instaló normalmente.

Me quedo con las preguntas y respuestas para el mismo caso.
Gracias siempre Justin
Dave_Ryu.
Re: Administrador de complementosHola @Justin_Chilton
Recibo mucha ayuda para crear con el Administrador de complementos.
Lo estaba usando bien hasta v2.9, pero ocurre el siguiente error al reinstalar.
Este error ocurre tanto en v2.9 como en la última versión de v3.1.
Cuando ejecuto el archivo de instalación, el error ocurre inmediatamente y no continúa.
¿Me puede decir cómo tomar medidas para el error?

Muchas gracias.
Dave_Ryu.
Re: Administrador de complementosHOLA @Justin_Chilton , me encontré con este error a continuación cuando estaba implementando en una carpeta de PRUEBA. ¡Aprecie el complemento de lo contrario! Esta debería haber sido una característica estándar en JMP 
Mensaje de error:
{"el argumento debe ser un carácter"(1, 2, "Concat", Bad Argument(currentAddinInfo["Name"]), "No ha guardado su información actualizada para " || /*###*/currentAddinInfo[" Nombre"] || /*###*/" complemento". /*###*/)}
Error: el argumento debe ser un carácter
1 vez).
Error de tecleado
Nombre de la función: Concat
Argumento incorrecto: currentAddinInfo["Nombre"]
Función en ejecución: "No ha guardado su información actualizada para el " || /*###*/currentAddinInfo["Nombre"] || /*###*/" complemento". /*###*/
Pila de llamadas:
GuardarBotónComprobar
actualizarAddinTableBox
desplegarSeleccionado
Re: Administrador de complementos@Justin_Chilton Gracias por la sugerencia. Tienes razón en que lo que quería puede ser manejado por include().Gracias por el consejo sobre <
No estoy seguro de por qué mi zip no funcionó, pero lo estaba haciendo en una Mac y todas las entradas desaparecieron después de mi intento manual.Ahora que tengo trabajo incluido, no hay necesidad de ediciones manuales de todos modos.
Re: Administrador de complementos@steveylin , simplemente comprimir el contenido del complemento y cambiar el nombre a xxx.jmpaddin debería funcionar, solo debe asegurarse de que los archivos jmpcust y def estén en la raíz del archivo zip jmpaddin.
Alternativamente, sugeriría agregar su ruta como include() para "Ejecutar thi JSL" en lugar de usar el script directamente usando una ruta. Esto evitaría la necesidad de editar manualmente el archivo jmpcust. No estoy seguro de por qué la ruta no funcionaría para usted, pero esta es la configuración que realmente uso para mis complementos.

Me gusta usar <
Re: Administrador de complementosSoy un novato tratando de hacer que Addin funcione.Conseguí que funcionara haciendo referencia a un directorio, pero el valor predeterminado es "texto" y tengo que cambiar manualmente a "ruta"
"sendero" >$ADDIN_HOME(com.cirrus.pejmpscriptsMac)\pe-jmp-scripts\Check_Duplicate_Measurements.jsl
El problema que tengo es que puedo modificar .jmpcust para que funcione en mi computadora, pero no puedo exportarlo.¿Hay alguna manera fácil de tomar addin.def/addin.jmpcust y comprimirlo yo mismo?Espero que sea algo fácil y no tenga que usar el administrador de complementos.
Intenté usar zip y cambiar el nombre, pero eso no funcionó.
Saludos,
Steve
Re: Administrador de complementosHola @Justin_Chilton , Recientemente recibí este error al implementar una nueva versión de Prod.
Mensaje de error:
{"el argumento debe ser un carácter"(1, 2, "Concat", Bad Argument(currentAddinInfo["Name"]), "No ha guardado su información actualizada para " || /*###*/currentAddinInfo[" Nombre"] || /*###*/" complemento". /*###*/)}
Error: el argumento debe ser un carácter
1 vez).
Error de tecleado
Nombre de la función: Concat
Argumento incorrecto: currentAddinInfo["Nombre"]
Función en ejecución: "No ha guardado su información actualizada para el " || /*###*/currentAddinInfo["Nombre"] || /*###*/" complemento". /*###*/
Pila de llamadas:
GuardarBotónComprobar
actualizarAddinTableBox
desplegarSeleccionado
Re: Administrador de complementosHola Nathan,
Sí, lo construí primero y no obtuve ningún error. Pero recibo el mensaje de implementación de todos modos.
John
Re: Administrador de complementos@Gido_vanderStar ,
Parece que probablemente esté usando una configuración regional diferente a la mía, lo que está causando el error de formato desconocido. Acabo de actualizar el complemento (v3.1) que hace que el formato de fecha utilizado durante el proceso de archivado respete el formato de fecha de su configuración regional.
Re: Administrador de complementos@John Madden ¿Hiciste clic en el botón de compilación primero? Ese es el botón al lado del icono de guardar. Eso construirá el complemento y lo colocará en la carpeta de desarrollo.
Entonces puedes instalar DEV .... O puede implementar una compilación TEST o PROD del complemento. (debe implementar un complemento TEST o PROD antes de poder instalar el complemento TEST o PROD.
Re: Administrador de complementosHola Justin,
Cuando intento instalar mi complemento (que AIM construye correctamente), aparece el error "El complemento DEV/TEST/PROD no existe". ¿Qué podría estar haciendo mal?
John
AIM 3.0, JMP Pro EA 17.0b6, OS X 12.2.1
Re: Administrador de complementosHola @Justin_Chilton ,
Gracias por este complemento. Solo quería reportar una molestia. Al instalar o implementar un complemento, recibo el siguiente mensaje unas 50 veces en el registro:
Unknown format: m/d/y h:m
Usando la versión más reciente (v3.0) del complemento, en JMP 16.0.0, Windows10.
Re: Administrador de complementos@vohwinkelh0 Recopilé el código de actualización automática de Justin, y creo que sería bastante fácil hacer algunas actualizaciones para permitir lo que estás hablando.
Dependiendo de cómo lo haya integrado, es posible que pueda jugar con su código local para realizar esas actualizaciones. Tal como está, el código tiene un paso que básicamente ve si la versión instalada es PROD y luego busca una versión más nueva. Creo que podría hacer el proceso si la versión instalada es PROD O TEST ... y verificar los metadatos del área de implementación para ver si hay una versión PROD más nueva.
Puede ser algo que podría considerar para cubrir sus necesidades hasta que se abra el ancho de banda 
Re: Administrador de complementos@pauldeen , gracias por informar eso! Debería arreglarse en v3.0.
Re: Administrador de complementos@vohwinkelh0 , suena como una gran idea para una función en el Administrador de complementos. ¿Parece que necesitaría algún tipo de versión de PRUEBA (o beta) por separado? Desafortunadamente, actualmente no tengo el ancho de banda para implementar algo así, pero estoy seguro de que podría hacerse agregando algunos campos de metadatos personalizados y usándolos en su código para saber si es una compilación de PRUEBA.
Re: Administrador de complementos@Justin_Chilton ingresar un & en el campo de información sobre herramientas provoca un mal funcionamiento al escribir en addin.jmpcust, lo que hace que ya no se pueda analizar. (JMP 16.1 Windows 10).
Re: Administrador de complementos@Justin_Chilton ¿Sabe si hay alguna manera de implementar la función de actualización automática también en TEST? Con frecuencia me tropiezo con el hecho de que entrego la PRUEBA a los usuarios para probar una función, sin embargo, una vez que se actualiza PROD, no se implementa esa actualización ya que el complemento de PRUEBA no verifica automáticamente si hay una nueva versión de PROD.
Re: Administrador de complementosGracias @pauldeen ! No sabía que la funcionalidad addinLoad.jsl está disponible (oculta en la guía). ¡Esa solución funciona para mi problema!
Re: Administrador de complementos@Djtjhin Puede implementar un complemento vacío en todas las computadoras con un addinLoad.jsl que incluye sus funciones personalizadas
O
Puede usar su departamento de TI para ejecutar un archivo jmpStartAdmin.jsl que contiene sus funciones personalizadas como se describe aquí , no se necesita complemento.
Re: Administrador de complementosOye @Justin_Chilton , estoy tratando de usar el administrador de complementos para implementar una función personalizada definida por el usuario que idealmente se ejecuta al inicio. ¿Podría recomendar la mejor manera de hacer esto utilizando el administrador de complementos?
Re: Administrador de complementos@Justin_Chilton JMP17EA2 vuelve a mostrar estructuras de menú vacías, sin errores en el registro. ¡Gracias por este complemento, debe integrarse directamente en JMP!
Re: Administrador de complementos@Justin_Chilton @MikeD_Anderson
¡Muchas Gracias por la respuesta! De hecho, me topé con la capacidad de hacer eso el otro día, pero me ganaste para publicarlo aquí.
@MikeD_Anderson - La información sobre el inicio rápido de JMP es realmente buena, los scripts de la aplicación definitivamente comenzaban a ser bastante grandes, por lo que esto ayuda mucho.
Parte de lo que esperaba lograr con el Administrador de complementos era saltarme el paso de tener que exportar el .jmpappsource a un .jsl o .jmpapp cada vez que quería probar algo, así que terminé con el siguiente código . No estoy muy seguro de cómo funciona, pero cuando se usa OpenFile(), .jmpappsource no inicia el generador de aplicaciones y la aplicación se puede ejecutar directamente. ¡Exactamente lo que necesitaba!
app = JMPApp();
app << OpenFile("$ADDIN_HOME(com.example.addin)\MyApp.jmpappsource");
app << Run;Re: Administrador de complementos@mringqui & @Justin_Chilton - solo un pequeño comentario de color sobre el método que menciona Justin. Primero debe compilar el archivo fuente de la aplicación jmp en un archivo .jmpapp. Esto se puede hacer en Archivo > Exportar cuando esté en el generador de aplicaciones. A continuación, incluya el archivo .jmpapp en el paquete del complemento y abra el archivo .jmpapp:
open("$ADDIN_HOME(com.example.me.myaddin)/MyApp.jmpapp");
Así es como se ve el asistente de complemento predeterminado de JMP.

Tenga en cuenta que esto tiene algunos buenos efectos colaterales sobre simplemente incrustar el JSL directamente. Lo más importante es que, para aplicaciones realmente grandes, evitará que JMP sea lento al iniciarse. Todo el código debe analizarse al inicio, por lo que si su script es realmente grande o tiene muchos, puede ralentizar las cosas, un problema que tuve con el STK. Incrustarlo como una aplicación significa que JMP solo tiene que analizar una línea de código al inicio. Hay algunos otros, pero ese es el más importante de la OMI.
Re: Administrador de complementos@mringqui , Gracias por contactarnos. Estaba pensando que esto requeriría algunos cambios en el complemento Administrador de complementos, pero @MikeD_Anderson me mostró cómo hacer esto con la forma en que ya funciona el administrador de complementos.
En lugar de configurar un archivo para que se ejecute, utilice un script que ejecute el archivo fuente de la aplicación JMP. Simplemente pegue esto en el cuadro de texto para "Ejecutar este JSL".
Include("$ADDIN_HOME(com.example.me.myaddin)/MyApp.jmpappsource");</CODE></PRE></LINGO-BODY><LINGO-SUB id="lingo-sub-394777" slang="en-US">Re: Administrador de complementos</LINGO-SUB><LINGO-BODY id="lingo-body-394777" slang="en-US"><P>¡Hola, gran trabajo! Espero crear un complemento que use un archivo .jmpappsource como la acción "Ejecutar JSL en este archivo" para el elemento del menú. ¿Es esto algo que podría agregarse fácilmente? En este momento, verme obligado a usar un archivo .jsl limita mi capacidad de usar el administrador de complementos de una manera conveniente. ¡Gracias!</P></LINGO-BODY><LINGO-SUB id="lingo-sub-386516" slang="en-US">Re: Administrador de complementos</LINGO-SUB><LINGO-BODY id="lingo-body-386516" slang="en-US"><P><A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/1855" target="_blank">@Justin_Chilton</A><BR /> Utilizo una combinación de $ADDIN_HOME y Get Default Directory() dependiendo de dónde/cómo necesito incluir cosas. Y para muchas de mis inclusiones, tengo un conjunto de bibliotecas que son comunes a muchas de mis herramientas y las trato como un complemento completamente separado. Luego, cualquier herramienta que haga simplemente incluye el archivo de $ADDIN_HOME y todas las funciones de la biblioteca están disponibles para mí o para cualquier otra persona que quiera usarlas.<BR /><BR /> no estoy seguro de por qué<A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/2173" target="_blank"> @tsl</A> tiene que agregar esa capa adicional a la cremallera. Desde mi perspectiva, dejarlo como la organización en su primera jerarquía simplificaría las cosas en general, pero al no conocer todos los detalles de esa infraestructura, puede haber algo que me esté perdiendo.<BR /> Por lo general, la única actualización que necesito hacer en un archivo .jmpcust, una vez que se configuran las cosas originales, es actualizar el nombre para mostrar para una actualización de versión (lo que hago en mi repositorio, pero podría hacerse en el administrador de complementos).</P></LINGO-BODY><LINGO-SUB id="lingo-sub-386499" slang="en-US">Re: Administrador de complementos</LINGO-SUB><LINGO-BODY id="lingo-body-386499" slang="en-US"><P>gracias por la aclaración<A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/2173" target="_blank"> @tsl</A> . Me parece que podría funcionar con algunos cambios en su proceso.</P>
<OL>
<LI>No cambie la carpeta $ADDIN_HOME y, en su lugar, use rutas relativas y Obtener directorio predeterminado(). Esto también facilita el desarrollo del complemento porque cualquier referencia a eso sería para la versión instalada.</LI>
<LI>Use una variable para determinar la ubicación de ruta relativa de CommonFiles y utilícela en sus inclusiones, ya que la ubicación varía entre un complemento de producción y el repositorio de desarrollo.</LI>
</OL>
<P>Alternativamente, puede descartar la idea de copiar CommonFiles en cada complemento. Puede crear una entrada de complemento separada para CommonFiles (no tendría elementos de comando) y requerir que el usuario la instale además del complemento. Esto significaría que solo hay una copia de CommonFiles para el usuario (esto puede ser algo bueno o malo según la frecuencia con la que pruebe todos los complementos después de actualizar CommonFiles. Con esto, podría incluir los archivos usando la variable de ruta $Addin_Home, pero aún tendría que descubrir cómo incluirlos desde el desarrollo. Esto podría ser similar a lo que<A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/6649" target="_blank"> @nathan-clark</A> está haciendo, pero no estoy seguro.</P>
<P>Otra alternativa más es que, en lugar de que yo implemente la copia por usted (alguien restrictivo), puedo implementar un script de posprocesamiento muy flexible que puede definir. Digamos que define una función que toma una referencia a ZipArchive y puede manipularla como mejor le parezca. Esta solución probablemente requiera el menor cambio por parte de usted y de mí.</P>
<P>Perdón por todas las divagaciones, ¡pero espero que una de estas sugerencias nos lleve en la dirección correcta!</P></LINGO-BODY><LINGO-SUB id="lingo-sub-386453" slang="en-US">Re: Administrador de complementos</LINGO-SUB><LINGO-BODY id="lingo-body-386453" slang="en-US"><P><A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/1855" target="_blank">@Justin_Chilton</A> , sí, estás describiendo algo muy cercano a lo que hago. Permítanme elaborar un poco, mostrando lo que sucede si uso el Administrador de complementos. (¡Y todavía estoy explorando y aprendiendo cómo funciona, así que perdónenme si no estoy representando lo que puede hacer!)</P><P> </P><P>Después de compilar el complemento, donde dejé que la carpeta de origen sea Addin_1\Source, tengo un archivo que llamaremos Addin_1.jmpaddin que se encuentra en la carpeta Addin_1\Release.</P><P>Le cambio el nombre a una extensión .zip, lo abro y echo un vistazo. Encuentro que se parece a esto:</P><P> </P><P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Addin_Initial_Folder_Structure.png" style="width: 217px;"><span class="lia-inline-image-display-wrapper" image-alt="Addin_Initial_Folder_Structure.png" style="width: 217px;"><img src="https://us.v-cdn.net/6038925/uploads/images/32932i1AD28B843A933FC3/Addin_Initial_Folder_Structure.png" role="button" title="Addin_Initial_Folder_Structure.png" alt="Addin_Initial_Folder_Structure.png" /></span></SPAN></P><P> </P><P>(También hay un par de archivos XML que uso para administrar algunas cosas, pero podemos omitirlos por simplicidad)</P><P>Luego cambio manualmente el zip creando una nueva carpeta dentro del .zip y arrastrando todos los archivos Source_1, etc. a esa nueva subcarpeta. Dejo addin.jmpcust y add.def en el nivel raíz porque, de lo contrario, el complemento no se instalará. También dejo CustomMetaData.jsl en el nivel raíz porque supongo que ahí es donde debe estar.</P><P>Luego arrastro al .zip la carpeta CommonFiles que también necesito. Mi estructura Zip final se ve así:</P><P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Addin_Final_Folder_Structure.png" style="width: 220px;"><span class="lia-inline-image-display-wrapper" image-alt="Addin_Final_Folder_Structure.png" style="width: 220px;"><img src="https://us.v-cdn.net/6038925/uploads/images/32933i3C14631B2CA97BE7/Addin_Final_Folder_Structure.png" role="button" title="Addin_Final_Folder_Structure.png" alt="Addin_Final_Folder_Structure.png" /></span></SPAN></P><P>Luego tengo una cosa más que hacer: las líneas <ACTION type=""path""> en el archivo .jmpcust deben editarse ahora. mientras que dice</ACTION></P><P>$ADDIN_HOME(com.xyz)\Source_1\Code_1.jsl</P><P>necesito cambiarlo para que se lea</P><P>$ADDIN_HOME(com.xyz)\Addin_1\Source_1\Code_1.jsl</P><P>Lo cual puedo hacer con Buscar/Reemplazar en un editor de texto.</P><P>Con todos estos pasos realizados, puedo implementar e instalar el complemento y todo funciona.</P><P> </P><P>Para su último comentario, debido a que este complemento es un conjunto de herramientas, cada una tiene su propia subcarpeta "Fuente" dentro de Addin_1, por lo que para hacer referencia a CommonFiles, mis declaraciones de inclusión () en Code_1.jsl, etc. tienen un extra "..\" para subir un nivel adicional para encontrar correctamente los archivos de inclusión.</P><P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-385991" slang="en-US">Re: Administrador de complementos</LINGO-SUB><LINGO-BODY id="lingo-body-385991" slang="en-US"><P><A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/2173" target="_blank">@tsl</A><BR /> Hago algo similar con subversion, y uso el administrador de complementos para publicar cualquier actividad de Repo. Una vez que todo el código está confirmado, lo exporto a una ubicación que se convierte en la "fuente" del complemento (una carpeta local o de red). Personalmente, administro mis archivos .jmpcust y .def en mi repositorio para que también se exporten, pero puede exportar el código y crear los archivos .def y .jmpcust con Addin Manager (creará los archivos en la carpeta de origen , y en mi caso, exportar cosas nuevas del repositorio solo sobrescribirá los archivos que se exportan).<BR /><BR /> Luego utilizo su herramienta para manejar todo el empaquetado, archivado y distribución a mis carpetas de producción (esto es siempre lo que me llevó más tiempo hacer manualmente, de todos modos). Para facilitarme las cosas, ya que también tenía muchos complementos administrados antes del Administrador de complementos, también edité manualmente el archivo jmp que almacena toda la información (complemento, nombre, carpetas de origen, etc.) así que tenía todos mis complementos listos para ir cuando comencé el complemento en lugar de agregarlos a través de esa interfaz manualmente).</P><P> </P><P>Además del complemento en sí, también hay algunas funciones incluidas que he actualizado para permitir que mis usuarios reciban notificaciones y actualicen automáticamente los complementos a medida que se ponen en producción nuevas versiones.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-385979" slang="en-US">Re: Administrador de complementos</LINGO-SUB><LINGO-BODY id="lingo-body-385979" slang="en-US"><P><A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/2173" target="_blank">@tsl</A> , ¿cómo se ve la estructura de archivos del complemento cuando lo comprime manualmente?</P>
<P>Me imagino que, dado que su código incluye rutas relativas al directorio CommonFiles, su complemento se parece a esto.<SPAN style="font-family: inherit;">¿La carpeta Release no está incluida en el archivo del complemento?</SPAN></P>
<P> </P>
<PRE>Addin_1.jmpaddin
|_Addin
|_Source<BR /> |_Code.jsl<BR /> |_Release<BR /> |_Something?<BR /> |_CommonFiles</PRE>
<P>En la estructura anterior, la carpeta 'Addin' solo existe para mantener la misma estructura de carpetas para sus rutas relativas. ¿Es este tu caso?</P>
<P>Creo que puedo agregar una nueva ruta de directorio opcional que se puede copiar en el archivo de complemento como parte del proceso de compilación. Sin embargo, todavía tenemos que resolver el problema del directorio. Para resolver eso, la idea que tengo es agregar un pequeño fragmento para establecer la ubicación del directorio CommonFiles y usarlo para todos sus archivos comunes incluidos. Alternativamente, podría crear una función 'IncludeCommonFile()' que intentara incluir desde la ubicación de producción y la conmutación por error a la ubicación de desarrollo</P>
<P> </P>
<PRE><CODE class=" language-jsl">commonFilesDir = Directory Exists("../CommonFiles/",
"../CommonFiles/", // production location
"../../CommonFiles/" // development location
);
//or
IncludeCommonFile = Function({file},
Try(Include("../CommonFiles/" || file), Include("../../CommonFiles/" || file));
);
Esto le daría la siguiente estructura, y *creo* que funcionaría si tuviera que agregar una función de carpeta compartida. El único contratiempo que se me ocurre es que si tiene carpetas adicionales dentro de Fuente, entonces la función Incluir no funcionaría, o necesitaría '../' adicional en sus inclusiones usando la variable de directorio.
Addin_1.jmpaddin
|_Source
|_Code.jsl
|_CommonFiles
Re: Administrador de complementosHola @Justin_Chilton ,
Acabo de descubrir su Administrador de complementos y estoy intrigado. He estado administrando complementos manualmente durante años, hasta e incluyendo la edición manual de archivos .jmpcust. Veo la oportunidad de hacer mi vida mucho más fácil con su administrador de complementos. Sin embargo, me pregunto cómo hacer que sea compatible con lo que quiero hacer.
Me referiré a la imagen adjunta de la estructura de carpetas propuesta. La idea es que hay una carpeta que contiene el código JMP, lo llamaremos RepositoryRoot aquí. Esta carpeta está en un repositorio de laboratorio GIT y se comparte y sincroniza entre dos o más desarrolladores de JSL.
Cada desarrollador posee un complemento en el repositorio. Llamémoslos Addin_1 y Addin_2. Esos complementos están en sus propias subcarpetas respectivas dentro del Repositorio.
También hay una carpeta que llamaremos CommonFiles dentro del Repositorio que contiene algunos archivos de biblioteca JSL estándar que usan ambos complementos.
Estos archivos de biblioteca estándar se incluyen en los complementos individuales, por ejemplo, un archivo JSL dentro de Addin_1\Source podría tener una línea como
include("..\..\CommonFiles\LibraryFile1.jsl");

Entonces, la pregunta es ¿cómo podemos aprovechar esta estructura con el Administrador de complementos? Me encuentro con problemas con dos opciones posibles:
1) Si en el Administrador de complementos dejo que "RepositoryRoot" sea la carpeta de origen, entonces crea Addin.def y Addin.jmpcust en RepositoryRoot. Esto no funciona porque solo podemos tener un addin.def en una carpeta de origen dada y queremos tener complementos separados con desarrolladores separados, pero compartiendo código.
2) Si dejo que "RepositoryRoot\Addin_1\Source" sea la carpeta de origen, entonces addin.def y addin.jmpcust se crean en la carpeta de origen de la subcarpeta de Addin_1. Y eso es bueno porque está contenido en su propia carpeta. PERO, no veo ninguna forma de agregar la carpeta CommonFiles desde dos niveles hacia arriba en el árbol de directorios al complemento. El código requiere esa carpeta de archivos comunes, pero queremos mantenerla en el nivel superior para compartir código y sincronizar.
Entiendo que, en última instancia, la carpeta "CommonFiles" tiene que duplicarse en cada archivo .jmpaddin final antes de que se publique el complemento.
La esperanza era que pudiéramos encontrar una capacidad de administrador de complementos que pudiera administrar eso por nosotros. Nuestra alternativa es crear manualmente un archivo .zip y configurar la estructura de carpetas de la manera que la necesitamos, luego cambiar la extensión a .jmpaddin antes de publicar.
Si tiene ideas o consideraría que el administrador de complementos admita esta capacidad, sería genial.
muchas gracias
Tomás
Re: Administrador de complementosGracias por su respuesta @Justin_Chilton ! Terminé aplicando un tema de luz para jmp para evitar el problema del color por completo. Probaré sus sugerencias, haciendo clic en la tecla de escape para resolver el tiempo de retraso.
Re: Administrador de complementosHola @alavy ,
No estoy seguro de qué está pasando con el tiempo de respuesta lento. Tendré que investigar un poco más para ver si se trata de un problema con mi complemento o un problema con JMP. Sin embargo, encontré una solución decente. La primera vez que haga clic en un cuadro de edición de texto, mantenga presionada la tecla Escape hasta que el texto ya no esté enfocado. Ahora todos los cuadros de edición deberían funcionar sin demora después de hacer clic en ellos.
En cuanto a la combinación de colores, no estoy seguro de qué podría causar esto. Cualquier versión del complemento posterior a la 2.5 debe tener el color adecuado para los temas oscuros. Creo que la única forma de reproducir ese problema es cambiar de tema claro a oscuro mientras JMP está abierto. Siempre obtengo la vista a continuación con el tema gris.

Re: Administrador de complementosOye @Justin_Chilton ,
Estoy usando la versión 2.9 del complemento en JMP 15.1 que se ejecuta en MacOS. Encuentro un tiempo de respuesta MUY lento cada vez que necesito ingresar texto en cualquiera de los cuadros de texto del complemento. Esto es tan lento que inutiliza el complemento.
Un segundo problema más pequeño es que ninguno de los esquemas de color funciona correctamente con JMP configurado en modo oscuro. El color del texto en los cuadros de texto es demasiado claro y no se puede leer contra el color de fondo.

Re: Administrador de complementos@Justin_Chilton Creo que tengo acceso de escritura porque puedo ver que el antiguo complemento se archivó correctamente y el nuevo complemento se actualizó, pero sigo viendo el error. No estoy seguro de qué paso específicamente falló. Con respecto a la unidad de red montada, desafortunadamente, probablemente no estoy muy familiarizado con eso. No estoy seguro de ese estado, pero tal vez pueda preguntar a mis colegas para obtener más información.
Re: Administrador de complementos@Djtjhin , parece que es muy probable que esté relacionado con que sea una ubicación de Sharepoint. ¿Puede confirmar que tiene acceso de escritura a esa ubicación creando un archivo en el Explorador de archivos? Incluso si tiene permiso, es posible que JMP no tenga permiso como aplicación. ¿Está utilizando una ruta de red regular o está guardando a través de una unidad de red montada? Montar su servidor Sharepoint como una unidad de red puede resolver problemas relacionados con los permisos, ya que JMP puede simplemente guardar en la unidad montada. Con la ruta de red normal, es posible que se requieran credenciales, algo que JMP no admite.
Re: Administrador de complementosGracias por aclarar Justin!
Pregunta de seguimiento, recibo el siguiente mensaje de error mientras intentaba implementar en producción. La carpeta de destino es en realidad un punto compartido. No estoy seguro si esa es la razón o tal vez hay una solución.
Mensaje de error:
{"Archivo no abierto en modo Escritura. "(1, {1}, 2, "Guardar archivo de texto", Guardar archivo de texto /*###*/(ruta de archivo, str))}
Error: el archivo no se abre en el modo de escritura.
1 vez).
Índices de la tabla de datos: 1
Error de tecleado
Nombre de la función: Guardar archivo de texto
Función que se está ejecutando: Guardar archivo de texto /*###*/(filepath, str)
Pila de llamadas:
desplegarSeleccionado
Re: Administrador de complementos@Djtjhin ,
Recomendaría poner la declaración en cada comando para tener la verificación siempre que se use el complemento y no cada vez que el usuario inicie JMP. Además, ha habido problemas con la actualización de complementos al inicio, por lo que hacerlo cuando un usuario hace clic y el comando de complemento es una forma más segura de hacerlo.
Re: Administrador de complementos@Justin_Chilton ¿Puedo aclarar una respuesta que le diste a Sebastien anteriormente? Entonces, ¿funcionará la declaración de actualización automática (a continuación) si la coloco en el "Script de inicio" (instantánea)? ¿O solo deberíamos incluir la declaración de actualización automática debajo de cada script de comando?
Include( "$ADDIN_HOME(com.jmp.myaddin)\updateCheck.jsl" );
com.jmp.juchil.addinmanager:checkForUpdate();

Gracias
Daniel
Re: Administrador de complementosConfirmado, funciona de nuevo, gracias!
Re: Administrador de complementosGracias @pauldeen .Creo que hubo varios factores diferentes que chocaron para esto. Por un lado, el error debería resolverse en la versión final de JMP 16.0, pero estaba allí para EA8. Además, es probable que este error se deba a que su configuración regional no es compatible con el formato de fecha que utilicé. Para solucionar esto y ser más amigable con la configuración regional, actualicé algunos lugares donde formateo las fechas para usar la fecha y hora de la configuración regional en lugar de formatos específicos. Esto debería corregir el error y poner las fechas en un formato más amigable.
Re: Administrador de complementos¡Gracias por la corrección de 2.8 en las carpetas!
Tengo uno nuevo para ti:
Administrador de complementos abierto, seleccionó un complemento:

Ejecutando JMP 16EA8.
No hay problema con lo mismo en JMP 15.2.0 ambos bajo Windows 10
Re: Administrador de complementos@Justin_Chilton ¡Gracias! Intentaré eso.
Re: Administrador de complementos@pauldeen , acabo de subir una nueva versión (v2.8) que soluciona el problema de la subcarpeta que estaba viendo. También agregué una opción de casilla de verificación para crear automáticamente una carpeta para usted, como originalmente esperaba que funcionara.
Re: Administrador de complementos@Sburel , Puede agregar ese código en cualquier lugar donde le gustaría buscar una actualización, como al comienzo de un comando de elemento de menú. Esto podría hacer que cuando un usuario haga clic en el comando, busque una nueva versión antes de iniciar el complemento.
Si no recuerdo mal, hubo un problema con el uso de este código en el archivo addinLoad.jsl, lo que haría que se verificara en el momento de inicio de JMP, pero hubo problemas con la reinstalación del complemento mientras el complemento todavía se está cargando. Este problema puede o no seguir siendo un problema.
-Justino
Re: Administrador de complementos@Justin_Chilton
Complemento realmente genial. Funciona muy bien.Sin embargo, he tenido problemas para usar la función de actualización automática. En particular, estoy confundido con el archivo/ubicación apropiado para agregar el siguiente fragmento de código
Include( "$ADDIN_HOME(com.jmp.myaddin)\updateCheck.jsl" );
com.jmp.juchil.addinmanager:checkForUpdate();
Mejor
Sebastián
Re: Administrador de complementos@Justin_Chilton Ah, sí, crear una carpeta vacía te lleva más allá de esta pantalla. El nombre de la carpeta parece no ser importante, solo el hecho de que esté vacía.
Al probar encontré este otro error:
Si tomo su Administrador de complementos v2.7.jmpaddin y creo la carpeta vacía y luego la cargo de esta manera, paso la pantalla de agregar pero con un gran error: lo mismo sucede con otros complementos que tienen subcarpetas dentro de ellos .

Re: Administrador de complementos@pauldeen La carpeta de origen es donde también se descomprimirá el archivo jmpaddin (probablemente debería haber creado automáticamente la carpeta, pero supongo que no lo hice). Sugiero crear una carpeta llamada "Material de capacitación de ASM" dentro de la carpeta "Escritorio" y configurarla como la carpeta de origen. La carpeta de origen no puede contener nada porque todo terminaría comprimido en el complemento.
Re: Administrador de complementos@Justin_Chilton Al agregar un complemento desde un archivo .jmpaddin existente, tenemos un error en esta pantalla:

No puede dejar la carpeta de origen en blanco y si coloca algo allí, recibirá una advertencia de que debe estar en blanco al comenzar desde un archivo jmpaddin.
Re: Administrador de complementosFunciona de maravilla. gracias Henning
Re: Administrador de complementosHola @vohwinkelh0 ,
Gracias por informar esto. Vi ese error hace unos días y tu comentario me lo recordó, así que finalmente pude rastrear el problema hasta un error con una de las funciones de archivo/directorio.
Actualicé el complemento en esta página para solucionar este problema por ahora, pero también anoté el problema en JMP para que podamos abordarlo antes de que se publique JMP 16.
Gracias,
justin
Re: Administrador de complementosjustin,
Recibo un error con su complemento como parte de los programas JMP16EA. ¿Quiere que presente un informe de error allí o debería publicarlo aquí?
Henning
Re: Administrador de complementosMuchas gracias por compartir ... lo intentaré la próxima semana.
Re: Administrador de complementos@guilaumebugnon Así que uso esta función en un bucle for para cifrar los scripts.
encryptScript = Function({filepath},
{defaultLocal},
errortxt = "";
winCount = N Items (Window ());
scriptWin = Open (filePath);
scriptWin << Bring Window to Front;
Wait (1);
Main Menu ("Encrypt Script");
windowList = Window ();
encryptedWin = windowList[nitems(windowList)]; // get reference to encrypted script window (i.e. the last window)
//TODO: Implement without Try
Try (
encryptedScript = encryptedWin[Script Box(1)] << Get Text;
save text file(filePath, encryptedScript);
ConsoleMsg("File Encrypted: "||filepath); // hoping this goes to stdout
,
errortxt ||= char(exception_msg) || "\!r\!n";
);
Try (scriptWin << Close WIndow());
Try (encryptedWin << Close WIndow());
Return (errortxt)
);
luego tengo otra autoit script que pasa y escribe la contraseña y presiona enter.
Definitivamente no es una solución perfecta y su elemento de la lista de deseos sería mucho mejor.
Re: Administrador de complementos@pauldeen ,
Gracias por informar ese problema con los complementos del menú personalizado. Acabo de subir una nueva versión que debería arreglar esto.
-Justino
Re: Administrador de complementos@Justin_Chilton gracias por tu respuesta.
podría ser útil tener una función capabale jsl que pueda cifrar otros archivos jsl (o alguna otra forma de hacerlo).
observé @vince_faller presentación esta mañana (hora francesa). Buena esa.
También tenemos algunos procesos de DevOps, pero necesitamos automatizar más.
Guillaume
Re: Administrador de complementos
@guilaumebugnon ,
@vince_faller podría tener algunos consejos sobre el cifrado de scripts. Sin embargo, necesitaría agregar una función al Administrador de complementos para poder modificar los archivos que se agregarán antes del proceso de compresión.
pienso @vince_faller También hice una presentación/transmisión por Internet ayer que podría serle útil aquí: https://www.brighttalk.com/webcast/18305/412912
- Justino
Re: Administrador de complementosHola todos,
¿Alguien tiene algún consejo o experiencia para cifrar scripts antes de que se compriman en el archivo jmpaddin?
Gracias
Saludos,
Guillaume
Re: Administrador de complementos
Al ejecutarse en JMP15 Windows 10, el administrador de complementos ya no puede analizar la estructura del menú de un complemento existente.
Para reproducir: cree un nuevo complemento y cambie el nombre del menú de nivel superior usando personalizado. Cree un comando y guarde la definición del complemento.
Cierre el administrador de complementos, vuelva a abrir e intente ver la pestaña de elementos de menú para el complemento recién creado (asegúrese de ver este primero antes de ver cualquier otra estructura de menú de complementos).
Para que esto funcione, cree un segundo complemento en el que no cambie el elemento del menú superior, sino que lo deje en los "Complementos" predeterminados. Guarde este complemento. Cierre el administrador de complementos, ábralo de nuevo, primero vea la estructura de menú del que tiene el nombre de nivel superior predeterminado y luego vaya a ver la estructura de menú del personalizado. Todo funciona de nuevo.
Re: Administrador de complementos#2 comenzó con JMP15/OSX15, pero aún no probé 2.4 y me pondré en contacto con usted.
Re: Administrador de complementos¡¡Gracias Justino!!
Re: Administrador de complementosHola @John Madden ,
Gracias por contactarte y disculpa la demora.
# 1 debe abordarse en v2.4 que acabo de cargar aquí.
Para el n.° 2, no puedo replicar este problema en Windows, pero investigaré más a fondo en Mac. ¿Sabe si este problema comenzó con un número de versión de JMP específico (es decir, JMP 14/15) o con una versión de macOS (10.14/15) o siempre le ha sucedido?
Gracias,
justin
Re: Administrador de complementosHola Justin,
Tengo un par de problemas con el administrador de complementos en JMP 15/Mac OS 10.15.
(1) Las opciones de versión máxima/mínima [trivial] de JMP deben incluir 15
(2) [menos trivial] La introducción de texto en cuadros de texto en una serie de paneles dentro del administrador parece (parcialmente) rota. Puedo ingresar texto (por ejemplo, nombre del complemento, versión, etc.) pegándolo, pero no tipeándolo.
Gracias.
John Madden
Re: Administrador de complementosHola, comencé a usar el administrador de complementos después de muchos años de administrar cambios manualmente. Sin embargo, recientemente tuve un problema con los elementos del menú que no estaban visibles. Actualicé a JMP 14.3.0 recientemente, no estoy seguro de si esto está relacionado. No tuve problemas con esto antes.
Como puede ver, no hay errores en la compilación o la implementación marcada, por lo que no sé qué está sucediendo.
Se agradece cualquier ayuda o sugerencia, ya que realmente no quiero tener que reconstruirlo desde cero.
Saludos,
Derek.

Re: Administrador de complementosHola adam,
Disculpas por la respuesta tardía. Según el mensaje de error que ve al eliminar el intento, parece que mi suposición acerca de que el script updateCheck pudo encontrar el archivo customMetadata era correcta. Veo donde tienes la'
aa = incluir ( "$ADDIN_HOME(com.jmpTest.myjmpaddin)\customMetadata.jsl" ) ;' parte de su guión. Sin embargo, en realidad no necesita incluir el archivo allí. En su lugar, desea cambiar la inclusión dentro del script updateCheck.jsl. Debería verse como lo siguiente (alrededor de la línea 11).
customMetadata_aa = Include( "<SPAN>$ADDIN_HOME(com.jmpTest.myjmpaddin)\</SPAN>customMetadata.jsl" );
Dejame saber si tienes algunas preguntas adicionales.
Saludos,
justin
Re: Administrador de complementosHo `la Justin,
Como este es mi primer complemento y soy un bebé en lo que respecta a la experiencia de JMP (alrededor de 11 meses de uso), puedo comenzar a hacer preguntas simples ahora mientras trabajo en la activación de la función de verificación de actualización.Creé un complemento de prueba simple para enfocarme solo en la función de actualización para poder entender esta funcionalidad antes de aplicarla a mi programa más sólido.
LA SECUENCIA DE COMANDOS:
aa = Include( "$ADDIN_HOME(com.jmpTest.myjmpaddin)\customMetadata.jsl" );
Include( "$ADDIN_HOME(com.jmpTest.myjmpaddin)\updateCheck.jsl" );
com.jmp.juchil.addinmanager:checkForUpdate();
New Window ("Test 3",
Panel Box ("Test 3",
Text Box("Test 3")
)
);
Respondiendo a sus preguntas:
- ¿Tenía configurada la preferencia "Crear archivo de metadatos"?
- Tenía la casilla de verificación seleccionada para "Crear archivo de metadatos", pero no tenía el código de metadatos personalizado que contenía la declaración de inclusión dentro de mi secuencia de comandos.Agregué esta línea de código a la fila inmediatamente antes del código de verificación de actualización, como puede ver arriba, pero no corrigió el problema.
- ¿Cuál es la estructura de directorios de mi complemento?
- En la sección central de la ventana Administrador de complementos, en la pestaña Archivos, addin.def, addin.jmpcust, customMetadata.jsl y updateCheck.jsl se encuentran dentro de la misma carpeta.Esa carpeta existe en la misma carpeta principal que el propio archivo del complemento (.jmpaddin).
- Esta carpeta existe en mi unidad C, NO en el servidor.¿Debería haber guardado estos archivos en el servidor también?
- En la sección inferior, pestaña Producción, tengo las tres opciones guardadas en una ubicación de servidor.Cada uno tiene su propia carpeta y las tres carpetas existen dentro de la misma carpeta principal.
- ARCHIVO: solo contiene iteraciones anteriores del complemento a medida que implemento.
- META: solo contiene el archivo PublishedAddins.jsl
- PROD: solo contiene el archivo de instalación del complemento .jmpaddin
- ¿Qué mensaje de error recibo al comentar "Probar()"?
- Recibo el mensaje de error "Error con el archivo: la ruta no es válida: \customMetadata.jsl"
- Intenté cambiar la ruta de ubicación anterior del idioma $ADDIN_HOME... a la ubicación exacta en mi unidad C, como se indica en la pestaña Archivo (sección central).No ayudó, recibí el mismo mensaje de error.
¡Gracias por su asistencia!
-Adán
Re: Administrador de complementosHola @Adam_R ,
¡Gracias por todo el trabajo en los detalles! Algunas preguntas y cosas para probar:
- ¿Tiene la preferencia "Crear archivo de metadatos" establecida en el grupo de preferencias "Metadatos personalizados"? Este archivo es necesario para que pase el script de actualización.
- ¿Cómo es la estructura de directorios de tu complemento? ¿El script llama a 'com.jmp.juchil.addinmanager:checkForUpdate' en una carpeta de nivel inferior? Si es así, el archivo updateCheck.jsl espera que esté en la misma carpeta desde donde se llama a la carpeta, lo que hace que la función no funcione. Una solución para esto es agregar otro archivo JSL en el nivel raíz de su complemento (igual que customMetadata.jsl y updateCheck.jsl) que llama a la función updateCheck y simplemente incluye ese archivo en el script JSL de nivel inferior. Otra opción es editar el script updateCheck.jsl para usar '$addin_home(com.jmp.myaddin)/customMetadata.jsl' en lugar de solo el nombre de archivo relativo. Si este es el problema, puedo actualizar el complemento para que sea más flexible donde no depende tanto del directorio predeterminado donde llama a la función.
- La secuencia de comandos updateCheck.jsl está implementada, por lo que falla silenciosamente al usar Try() para no interferir con el flujo de trabajo de su complemento. Entonces, si ninguna de las dos primeras sugerencias lo soluciona, ¿podría comentar Try() dentro del archivo updateCheck.jsl y decirme qué mensaje de error recibe cuando intenta buscar una actualización?
Hazme saber si tienes alguna pregunta.
Saludos,
justin
Re: Administrador de complementosHo `la Justin,
Add-In Manager v2.3 está funcionando maravillosamente en todos los aspectos para mí, excepto uno, no puedo obtener el updateCheck para enviar actualizaciones correctamente.Algunos hechos:
- Mi código fuera de la comprobación de actualizaciones se ejecuta correctamente.
- Mis carpetas PROD "Metadatos" e "Implementación" están en ubicaciones de servidor en la misma carpeta principal y he verificado que los usuarios tienen acceso a ambas.
- Dentro de la sección Preferencias, seleccioné "Incluir secuencia de comandos de verificación de actualización" y copié la declaración de inclusión provista en esta sección en mi código.Edité la sección de ID del complemento de esta declaración de (com.jmp.myaddin) para que coincida con mi complemento.No edité nada más dentro de esta declaración y no edité nada dentro del script updateCheck.jsl.
- Al realizar cambios en el complemento e implementarlo en PROD, verifiqué que la "fecha de publicación" dentro del archivo addedAddins.jsl ubicado en el archivo del servidor de metadatos cambió con cada implementación.
- He hecho que los usuarios descarguen una versión existente del archivo ubicado dentro de la carpeta PROD, cierren JMP, vuelvan a abrir JMP y ejecuten el complemento con éxito.
- Implementé una iteración más reciente en PROD, verifiqué que la fecha de publicación cambió y solicité al usuario anterior que reabriera JMP y ejecutara el complemento existente.Nunca se le pide al usuario que actualice el complemento.
- El mismo usuario ingresó a la carpeta PROD y reinstaló el complemento, que actualizó correctamente el complemento.
Re: Administrador de complementosHola aubrey,
La declaración de inclusión dentro del script updateCheck.jsl usa una ruta relativa al archivo customMetadata.jsl. Siempre que ambos archivos estén en la misma carpeta, debería funcionar correctamente. ¿Cómo es la estructura de carpetas de su complemento?
Siéntete libre de enviarme un mensaje privado si necesitas enviar algo que no quieras en esta publicación pública.
Gracias,
justin
Re: Administrador de complementosjustin,
Tengo un problema con la función de actualización automática.He rastreado el problema hasta el script updateCheck.jsl.
La siguiente línea falla, luego sale la declaración de prueba.
customMetadata_aa = Include("customMetadata.jsl" );
Si agrego lo siguiente a la ruta del archivo, no hay problemas y parece que todo funciona como se anuncia.
$ADDIN_HOME(my_addin_here)
¿Se supone que debo hacer esto para cada complemento o debería ser automático?
Gracias,
aubrey
Re: Administrador de complementosjustin,
¡La versión 2.3 funciona de maravilla en mi Mac!¡¡¡Gracias!!!
John
Re: Administrador de complementos@Justin_Chilton ¡Gracias! Lo intentaré.
Re: Administrador de complementos@John Madden ,
¡Gracias por informar esto! Parece que está utilizando una Mac y debe haber cambiado el nombre o eliminado una de sus carpetas de origen. He agregado una verificación para esto ahora (v2.3) por lo que no debería fallar más.
Re: Administrador de complementos@nathan-clark ,
Si aún tiene la versión 1.3 del complemento, puede cambiar el ID y el nombre del elemento de menú para esa versión y usarlo junto con la nueva versión. La versión 1 le permite usar casillas de verificación para construir múltiples a la vez y debería poder conectarse con la tabla de datos utilizada por la versión 2. Hubo muchos cambios de arquitectura en v2.0, así que desafortunadamente tuve que eliminar las casillas de verificación. Lo tengo en mi lista para agregarlos en el futuro.
Re: Administrador de complementosHola Justin,
En JMP 14.0.1, sigo recibiendo este error:
Mensaje de error: {"el argumento debe estar en la lista"(1, 2, "Elementos de concatenación", Elementos de concatenación /*###*/(lista de errores, " "))} Error: el argumento debe estar en la lista 1 vez(es). Tipo: Error Nombre de la función: Elementos de concatenación Función que se está ejecutando: Elementos de concatenación /*###*/(lista de errores, " ") Pila de llamadas: getLastModifiedDateOfNewestFile getStatusIcon refreshAddinTableBox initialize
¿Algunas ideas? Este es el Administrador 2.2.
John
Re: Administrador de complementos@Justin_Chilton
Gracias de nuevo por este complemento. Finalmente me estoy poniendo al día con la nueva versión y estoy aprovechando algunas de sus mejoras en lo que estaba haciendo manualmente
Mi única pregunta, y no estoy seguro de si esto es posible, es poder construir varios complementos a la vez. Sé que los paneles inferiores para información y directorios son específicos de complementos, pero tal vez podrían desaparecer si se selecciona más de un complemento. Entonces todo lo seleccionado podría ser DEVd/Implementado/etc.
Administro más de 40 complementos en este momento y, a menudo, hago actualizaciones en lotes, por lo que poder hacer un montón de todos los complementos a la vez sería increíble.
Re: Administrador de complementos¡Gracias por esto! Ahora, crear y actualizar complementos es tan fácil que desarrollo y mejoro mis propios complementos con más frecuencia que en la época oscura anterior a esta herramienta.
Re: Administrador de complementosQuiero ser tan bueno y caritativo y agradecer a los desarrolladores de JMP por la versión 13 de un programa de software con el que me encanta enseñar. Lo he tenido desde la versión 5.0, con sus manuales en papel bien hojeados y, para ser honesto, no se ha agregado nada que sea de valor para mí desde esa versión. Pero amando la versión 5.0 como lo hice, he actualizado feliz y voluntariamente cada año. y luego el Análisis de curva ROC y área parcial bajo la curva apareció un guión que era hermoso en JMP12. Configuré una sesión de enseñanza para mostrarles a mis alumnos las curvas ROC... y actualicé a v13... y ahora no muestra las curvas. abucheo.
Re: Administrador de complementosHola @tejvishnu ,
Sí, se requiere JMP 13 para instalar este complemento. Desafortunadamente, no pude hacer que este complemento fuera compatible con JMP 12. He actualizado la publicación para incluir esta información.
Gracias,
justin
Re: Administrador de complementosEl complemento no parece instalarse en mi computadora. Este parece ser el problema con algunos de los complementos cargados recientemente. ¿Este complemento requiere JMP-13?
Tengo JMP 12.2 en mi computadora.