Como aprender SDK

Estimados

Podrían informarme donde puede aprender sdk. Ya que necesito empresar a desarrollar. Gracias

1 me gusta

5 consejos básicos de desarrollo sobre el desarrollo usando el SDK de SAP B1 (DI API y UI API).

Esenciales para todo aquel que esté empezando

1 Usar las herramientas disponibles en la DI API para modificar el contenido y/o el esquema de la base de datos.

Esto más que un consejo, se trata de una “ley”, puesto que como todos sabemos es una condición indispensable para que nuestros clientes no pierdan el soporte de SAP. Usando la DI API, tanto sus objetos de negocio como el objeto Recordset, debemos ser capaces de actualizar y leer la información de las tablas estándar y de nuestras propias tablas (UDTs) o nuestros campos (UDFs).

2 Dejar un log “claro” de los errores que se suceden en nuestro addon.

A la hora de corregir los errores que surgen a un usuario de nuestro addon, es de mucha ayuda el contar con una tabla UDT (por ejemplo) a la que podamos acceder para comprobar el estado de la pila de llamadas del addon en el momento de la excepción.

3 Usar siempre bloques try catch finally.

Debemos tratar de “blindar” nuestro código mediante el uso de bloques “try catch finally”, con el objetivo de que no se produzcan excepciones no controladas que provoquen la interrupción y desconexión de nuestro addon sin dar información al usuario.

Esta captura de excepciones es especialmente sensible a la hora de introducir datos, ya sea a través de la interfaz de usuario o a través de interfaces con otros sistemas.

4 Liberar los objetos COM cuando hayamos terminados de usarlos.
4 Liberar los objetos COM cuando hayamos terminados de usarlos.

Supongamos que necesitamos usar un Recordset para ejecutar una determinada consuta. En el momento en que hayamos ejecutado dicha consulta y extraído la información necesaria, debemos liberar nuestro Recordset, haya o no ocurrido una excepción:

Recordset rs = null;

try

{

rs = kernel.Company.GetBusinessObject(BoObjectTypes.BoRecordset) as Recordset;

rs.DoQuery("SELECT ...");

if (rs.RecordCount > 0)

//Procesar la información del recordset

}

catch (Exception ex)

{

//Procesar la excepción y dejar log del error

}

finally

{

if (rs != null) //Liberamos el Recordset haya habido o no excepción

System.Runtime.Interop.Marshall.ReleaseComObject(rs);

}

5 Congelar y DESCONGELAR los formularios propios durante los momentos de refresco de la información.

Hay que tener en cuenta que si se produce una excepción durante el proceso también debemos descongelar nuestro formulario. Algo así podría valer:

Form oForm = null;

try

{

oForm = kernel.Application.Forms.ActiveForm;

oForm.Freeze(true);

//Trabajar con oForm para (por ejemplo)

//cargar información desde la base de datos

}

catch (Exception ex)

{

//Procesar la excepción y dejar log del error

}

finally

{

if (oForm != null) //Descongelamos el formulario haya habido o no excepción

oForm.Freeze(false);

}

Espero te pueda ayudar

Saludos

8 Me gusta

Buen dia amigos, temo decirles que tengo la biblia para el desarrollo en SDK de SAP B1, creo que son mas de 100 paginas, la tengo bien guardadita, cualquier consulta que tengan le puedo dar una hojeada o si hay alguna forma de compartir les puedo escanear las hojas donde venga la consulta, Saludos!

5 Me gusta

Gracias Nestor por tu ilustración. Podrias proporcionarme los manuales o el Link donde podría aprender.

Al instalar el SAP B1 SDK (SAP Business One Software Development Kit), tendras a disposicion en la carpeta “\Program Files\SAP\SAP Business One SDK” toda la ayudas y ejemplos para aprender a programar con las DI / UI apis. (Carpetas Help y Samples). Incluso hay un SDK tutorial en donde creas un AddOn desde lo mas basico.

El resto se va complementando en los foros oficiales de SAP donde conseguiras respuestas al 99% de tus dudas.

Saludos.

5 Me gusta

Estimad@s @SidV o @Gera_Mendez, a menos que diga algo distinto @wdanichz, creo que la orientación realizada por @Pablo68 y @GabrielGS responden a este tema, en base a ello podría marcarse alguna como respuesta :white_check_mark: Y hasta me dieron ganas de aprender a desarrollar en SDK. :grin:

Salud@s :raised_hand_with_fingers_splayed:t5:

2 Me gusta