Estoy creando un complemento para SAP B1 y necesito saber cuál es el mejor lugar para crear mis tablas de complementos en la base de datos. Para las próximas versiones, necesito verificar y actualizar las columnas de la tabla.

1
Maykol Rypka 26 jul. 2016 a las 20:18

2 respuestas

La mejor respuesta

Te aconsejo que uses las UserTables de SAP, es lo que recomienda SAP, puedes crearlas en las Herramientas de Aplicación de SAP -> Herramientas de Personalización -> Tablas Definidas por el Usuario - Configuración

Si quieres hacerlo codificando tienes que usar el objeto UserTablesMD. Puede encontrar más información sobre complementos en el foro oficial de SAP http://scn.sap.com/community/business-one-sdk

Si desea verificar si la tabla existe, puede usar el mismo objeto con el método GeyByKey o usar Recordset consultando la tabla OUTB.

2
Teta 27 jul. 2016 a las 13:19

Desarrollé un marco que controla la creación de tablas y campos dentro del complemento, también mapea eventos y hace excepciones al tratamiento, entre otras cosas. Este marco aún está en desarrollo y ya se usa en muchos complementos.

A continuación se muestra un ejemplo de cómo crear las tablas y los campos utilizando el marco.

UserTable

[Tables(nome: "SZACONFIG", descricao: "Configurações plugins", tipo: BoUTBTableType.bott_NoObject, tabelaSistema: false)]
public class Configuracoes : TableBase
{
    [Fields("NomeUsu", "Nome de Usuário", 150, true, BoFldSubTypes.st_None)]
    public string NomeUsuario { get; set; }

    [Fields("NomePlg", "Nome do Plugin", 200, true, BoFldSubTypes.st_None)]
    public string NomePlugin { get; set; }

    [Fields("Ativo", "Ativo", 1, false, BoFldSubTypes.st_None)]
    [ValoresValidos("N", "Não")]
    [ValoresValidos("Y", "Sim")]
    public string Ativo { get; set; }



}

Sistema de mesa

[Tables("OUSR", "Cadastro de Usuários", true)]
    public class OUSR : TableBase
    {


        [Fields("AdmPlg", "Administrar Plugin", 1, "N", false, BoFldSubTypes.st_None)]
        [ValoresValidos( "N", "Não")]
        [ValoresValidos( "S", "Sim")]
        public string AdmPlg { get; set; }




    }

Si está interesado puedo proporcionar

1
Szarblewski 5 ago. 2016 a las 14:24