cancel
Showing results for 
Search instead for 
Did you mean: 

Creando el Primer Addon

Former Member
0 Kudos

Holas... tengo un problema con un Addon que trae el Sdk que no he podido instalar a pesar de seguir todas las recomendaciones...le cuento un poco lo que hago...

en mi empresa tenemos instalado el SBO 2005 el cual trae los ejemplos del SDK, estos vienen en VS2003... al abrirlo (por ejemplo el HelloWorld) lo primero que tengo que hacer es convertirlo a VS2005... luego genero el .exe (HelloWorld.exe)... en otro VS abro el AddonInstaller que viene tambien en el SDK...

a éste proyecto agrego el HelloWorld.exe como recurso incrustado y ejecuto el instalador... el cual finaliza con éxito...

Luego ejecuto el .exe para crear el Archivo ARD... lleno los campos correspondientes y tambien genero correctamente el ARD.

Luego entro a SBO, Gestión de Addons-->Registrar Addon y cargo el archivo ARD...(no me da el path de la aplicación, lo hace cuando voy a instalar).... hasta acá ok.

Luego entro a SBO, Gestor de Addons y en Addon instalados le pongo iniciar (me pide el path de la aplicación la cual obviamente se la doy) e instala... luego intento iniciarlo y es aquí donde lanza el error diciendo que la aplicación a generado un error y debe cerrarse (no SBO sino el HelloWorld)... y no inicia el Addon (el Status queda S/Éxito) y hasta aca no mas llegamos....

Alguien sabe porque sucede esto??

Ahora supongamos que tengo abierto el SBO... y estoy depurando mi Addon en VS2005... y Funciona!!! aparece la ventanita "Hola Mundo"... y blablabla.. .el problema es que funciona depurando pero no instalado...

Alguien puede ayudarme????

Saludos

Accepted Solutions (0)

Answers (7)

Answers (7)

Former Member
0 Kudos

Bueno..efectivamente incruste en el instalador todos los archivos dependientes del Addon e instaló sin ningún problema...(quedó en addons instalados del Gestor de Addons)

ahora no lo puedo iniciar.. ja...

me sale el tipico error de windows cuando se cae un programa:

"Project1" ha detectado un error y debe cerrarse

Como puede ser tan complicado algo que se supone son aplicaciones de prueba especialmente hechas para testing...

Lo extraño es que si funcionan cuando estoy depurando el Addon y tengo el SBO ejecutándose... me muestra la venta con las opciones y todo eso... (probé con el proyecto SimpleForm del SDK)

Seguiremos batallando...

Saludos

Former Member
0 Kudos

Hola .. gracias por la respuesta... antes de probar quiero aclarar una duda... supongamos que mi Addon usa un archivo xml para generar un menu o una imagen para mostrar en la ventana... ¿deben estos archivos estar anexados al Installer? ¿o basta con anexar el .exe del Addon como archivo incrustado?

si deben ir anexados ¿como archivos incrustados?

O debería, una vez creado el .exe del Addon, dejarlo en una carpeta junto a todos los archivos de mi proyecto, y de ahí generar mi archivo .ADR...

Saludos

y otra vez gracias...

Former Member
0 Kudos

Despues de pasar los parametros fijos aparece el mensaje siguiente:

"No existe archivo Addon Ejecutable"

Saludos...

Former Member
0 Kudos

Claudio, tambien me dio un error de instalación, pero modifique esta función(la encontré en el foro en Ingles)

intenta con esto.

Private Sub ExtractFiles(ByVal path As String)

If Not IO.Directory.Exists(strDest) Then

IO.Directory.CreateDirectory(strDest) ' Create installation folder

End If

Dim thisExe As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()

For Each resourceName As String In thisExe.GetManifestResourceNames()

Dim AddonExeFile As IO.FileStream

Dim file As System.IO.Stream = thisExe.GetManifestResourceStream(resourceName)

' Create a tmp file first, after file is extracted change to exe

AddonExeFile = IO.File.Create(path & "HelloWorld.tmp")

Dim buffer() As Byte

ReDim buffer(file.Length)

file.Read(buffer, 0, file.Length)

AddonExeFile.Write(buffer, 0, file.Length)

AddonExeFile.Close()

Dim FileName As String = Replace(resourceName, thisExe.GetName().Name + ".", "")

IO.File.Move(path & "HelloWorld.tmp", path & "" & FileName)

Next

End Sub

suerte

Former Member
0 Kudos

otro Thread al respecto

Former Member
0 Kudos

Todo de nuevo y nada... el problema siguen siendo las mismas lineas de código que dejé antes... los argumentos de la línea de comandos están OK, no se que mas pueda ser...

Se supone que al generar el installer.exe esos valores deben quedar guardados como parte del .exe... raro que después no los reconozca...

y si le paso los parametros fijos??

Probaré.. que mas da!!

Saludos...

Former Member
0 Kudos

Efectivamente el mensaje aparece por las siguientes líneas en el codigo fuente del instalador:

-

-


NumOfParams = Environment.GetCommandLineArgs.Length

If NumOfParams = 2 Then

'Si argumentos de la línea de comandos = 2

Else

MessageBox.Show("This installer must be run from Sap Business One", _

"Instalacion Incorrecta", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

Windows.Forms.Application.Exit()

End If

-

-


el problema es que si están los parámetros en los argumentos de la línea de comandos y además también existen en el archivo ARD.

cual puede ser el problema??

Saludos

Former Member
0 Kudos

esto es lo que dice el ejemplo

'// This sample creates an add-on installer for SBO.

'// An installation for SBO should be build in a spesific way.

'// 1) It should be able to accept a command line parameter from SBO.

'// This parameter is a string built from 2 strings devided by "|".

'// The first string is the path recommended by SBO for installation folder.

'// The second string is the location of "AddOnInstallAPI.dll".

'// For example, a command line parameter that looks like this:

'// "C:\MyAddon|C:\Program Files\SAP Manage\SAP Business One\AddOnInstallAPI.dll"

'// Means that the recommended installation folder for this addon is "C:\MyAddon"

'// and the location of "AddOnInstallAPI.dll" is -

'// "C:\Program Files\SAP Manage\SAP Business One\AddOnInstallAPI.dll"

'// 2) When the installation is complete the installer must call the function

'// "EndInstall" from "AddOnInstallAPI.dll" to inform SBO the installation is complete.

'// This dll contains 3 functions that can be used during the installation.

'// The functions are:

'// 1) EndInstall - Signals SBO that the installation is complete.

'// 2) SetAddOnFolder - Use it if you want to change the installation folder.

'// 3) RestartNeeded - Use it if your installation requires a restart, it will cause

'// the SBO application to close itself after the installation is complete.

'// All 3 functions return a 32 bit integer. There are 2 possible values for this integer.

'// 0 - Success, 1 - Failure.

'// 3) The installer must be one executable file.

'// 4) After your installer is ready you need to create an add-on registration file.

'// In order to create it you have a utility - "Add-On Registration Data Creator"

'// you can find it in -

'// "..\SAP Manage\SAP Business One SDK\Tools\AddOnRegDataGen\AddOnRegDataGen.exe".

'// This utility creates a file with the extention 'ard', you will be asked to

'// point to this file when you register your addon.

tienes la linea de comando de manera correcta ??

"C:\MyAddon|C:\Program Files\SAP\SAP Business One\AddOnInstallAPI.dll"

o trata de realizar nuevamente toda la operacion de generar el instalador.

Former Member
0 Kudos

Hola... sabes.. ya logré solucionar ese problema...ahora efectivamente aparece mi Addon en el gestor de Addons.. el problema ahora es que al presionar instalar (en Addons Pendientes), aparece el mensaje de error siguiente: "This installer must be run from Sap Business One"... sin embargo desde ahi lo estoy ejecutando... será esto porque los argumentos de la linea de comandos de la aplicación no están (al menos ahí aparece el mensaje en el codigo fuente del instalador).. pero esto se supone que al generar la aplicacion deberian existir.. o tambien deben esta en el ARD? recuerdo que lo coloqué pero vamos a revisar...

Saludos...

Former Member
0 Kudos

Hola Claudio,

puede ser que restes dando mal las rutas en el Add-on Registration Data Generator.

verifica que :

AddOn Exe Full Path = a la ruta del Exe del addon HelloWord.Exe

y en el Installer y Unistaller Exe Full Path = a la ruta del exe del instalador InstaladorHelloWord.exe

ese ejemplo solo ocupa el UI (SAPbouiCOM)

verifica que cuando se instale el add-on (en la ruta) el instalador debe incorporar todas las referencias (DLL) que ocupes y deben quedar en el directorio que se instalo el add-on.

suerte.