# ¿Cómo dar de alta una API por código?

**URL:** <https://bc.finneg.com/t/como-dar-de-alta-una-api-por-codigo/2914>\
**Category:** API\
**Tags:** api, cómo-se-hace\
**Created:** [7 Diciembre, 2023 20:09 UTC](https://bc.finneg.com/t/como-dar-de-alta-una-api-por-codigo/2914 "2023-12-07T20:09:04Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![jgonzalez](https://bc.finneg.com/letter_avatar_proxy/v4/letter/j/71e660/32.png) [@jgonzalez](https://bc.finneg.com/u/jgonzalez)\
**Post date:** [7 Diciembre, 2023 20:09 UTC](https://bc.finneg.com/t/como-dar-de-alta-una-api-por-codigo/2914/1 "2023-12-07T20:09:04Z")

</div>

🕰 Duración: 2 min

**¿Para qué sirve?**  
Para dar de alta APIs en el diccionario de APIs mediante script sql.

**¿Quiénes pueden hacerlo?**  
Desarrolladores

_En este cómo se hace veremos ejemplos de scripts sql para crear los distintos tipos de APIs que existen en el sistema_

* * *

**API de tipo Entidad**

 ![ConfiguracionGeneralApi](https://bc.finneg.com/uploads/default/original/2X/2/2b8b3eb6b7a0b269335be6f87862e760884f2c4b.png)  
 ![ConfigDefinicionApi](https://bc.finneg.com/uploads/default/original/2X/d/d927cf705d5465fe6401a0e15274d0866cd474a5.png)

Se deben completar todos los campos que se ven en la pantalla de Configuración General de la Api en el sistema y en la solapa “Definición”. Ejemplo: facturaCompra es una api estándar de tipo Entidad que se puede crear mediante el siguiente script:

```auto
IF NOT EXISTS(SELECT 1 FROM FAFApiCatalog WHERE Codigo = 'facturaCompra3')
BEGIN
	DECLARE @DiccionarioID int
	SELECT @DiccionarioID = DiccionarioID FROM FAFDiccionario WHERE Codigo = 'OperacionVO'
    DECLARE @NucleoFuncionalID INT
    SELECT @NucleoFuncionalID = NucleoFuncionalID FROM FAFNucleoFuncional WHERE Codigo = 'COMPRAS'

	INSERT INTO FAFApiCatalog(Nombre, Codigo, EsEstandar, EsInterna, Activo, Descripcion, Tipo, SoportaGet, SoportaInsert, SoportaUpdate, SoportaList, DiccionarioID,NucleoFuncionalID, AppItem_ID, DefinitionXml)
	VALUES(
            'facturaCompra3', 'facturaCompra3', 1, 0, 1, '', 0, 1, 1, 1, 1, @DiccionarioID, @NucleoFuncionalID,NULL,
	'<?xml version="1.0" encoding="UTF-8"?><root>
	    <entidad id="main">
            <atributo nombre="IdentificacionExterna" alias="IdentificacionExterna" descripcion="Tipo: String, Obligatorio: No, Descripción: Identificación externa"/>
            <atributo nombre="EmpresaID" alias="EmpresaCodigo" descripcion="Tipo: String, Obligatorio: Si, Consulte la API /Empresa/list,Aca se pone el codigo de la sucursal a usar"/>
            <atributo nombre="Fecha" alias="Fecha" descripcion="Tipo: Date, Obligatorio: Si, Descripción: aaaa-mm-dd"/>
            <atributo nombre="FechaComprobante" alias="FechaComprobante" descripcion="Tipo: Date, Obligatorio: Si, Descripción: aaaa-mm-dd"/>
            <atributo nombre="OrganizacionID" alias="Proveedor" descripcion="Tipo: String, Obligatorio: Si, Consulte la API /Proveedor/list"/>
            <atributo nombre="CondicionPagoID" alias="CondicionPagoCodigo" descripcion="Tipo: String, Obligatorio: Si, Consulte la API /CondicionPago/list"/>
            <atributo nombre="TransaccionTipoID" alias="TransaccionTipoCodigo" descripcion="(String) Obligatorio. Valor a completar: OPER "/>
            <atributo nombre="TransaccionSubtipoID" alias="TransaccionSubtipoCodigo" descripcion="(String) Obligatorio. Consulte la API /TransaccionSubtipo/list"/>
            <atributo nombre="WorkflowID" alias="WorkflowCodigo" descripcion="Tipo: String, Obligatorio: Si, Descripción:CPRA-PROD "/>
            <atributo nombre="Nombre" alias="Nombre" descripcion="Tipo: String. Sólo para GET"/>
            <atributo nombre="Descripcion" alias="Descripcion" descripcion="Tipo: String, Obligatorio: No"/>
            <atributo nombre="NumeroDocumento" alias="NumeroComprobante" descripcion="Tipo: String, Obligatorio: Si, Descripción: Numero de documento"/>
            <atributo nombre="MonedaID" alias="MonedaCodigo" descripcion="Tipo: String, Obligatorio: Si, Consulte la API /Moneda/list"/>
            <atributo nombre="ProvinciaIDOrigen" alias="ProvinciaOrigenCodigo" descripcion="Tipo: String, Obligatorio: No, Consulte la API /Provincia/list"/>
            <atributo nombre="ProvinciaIDDestino" alias="ProvinciaDestinoCodigo" descripcion="Tipo: String, Obligatorio: No, Consulte la API /Provincia/list"/>
            <atributo nombre="ComprobanteTipoImpositivoID" alias="ComprobanteTipoImpositivoCodigo" descripcion="Tipo: String, Obligatorio: Si, Consulte la API /ComprobanteTipoImpositivo/list"/>
            <atributo nombre="CAINumero" alias="CAE" descripcion="Tipo: Int, Obligatorio: Si, Descripción: ##############"/>
            <atributo nombre="CAIFechaVto" alias="CAEFechaVto" descripcion="Tipo: Date, Obligatorio: Si, Descripción: aaaa-mm-dd"/>        
            <atributo nombre="OperacionItems" alias="Productos" descripcion=""/>
            <atributo nombre="OperacionConceptos" alias="Conceptos" descripcion=""/>
            <atributo nombre="ItemsRetencion" alias="Retenciones" descripcion=""/>
            <atributo nombre="OperacionCotizaciones" alias="Cotizaciones" descripcion=""/>
            <atributo nombre="ImporteTotalControl" alias="ImporteTotalControl" descripcion="" requerido="false"/>
            <atributo nombre="IdentificacionExternaPadre" alias="IdentificacionExternaPadre" descripcion="Tipo: String, Obligatorio: No, Descripción: Identificación externa Padre"/>
        </entidad>
        <entidad id="OperacionItems">
            <atributo nombre="ProductoID" alias="ProductoCodigo" descripcion="Tipo: String, Obligatorio: Si, Consulte la API /Producto/list"/>
            <atributo nombre="CantidadWorkflow" alias="Cantidad" descripcion="Tipo: Int, Obligatorio: Si, Descripción: ####"/>
            <atributo nombre="Precio" alias="Precio" descripcion="Tipo: Decimal, Obligatorio: Si, Descripción: ##.###"/>
            <atributo nombre="DimensionDistribucion" alias="DimensionDistribucion" descripcion=""/>
            <atributo nombre="ImporteExento" alias="ImporteExento" descripcion="Tipo:Integer, Obligatorio:NO"/>
            <atributo nombre="vinculacionOrigen" alias="vinculacionOrigen" descripcion="(String), No Obligatorio. Identificacion Externa de la transaccion origen a vincular"/>
            <atributo nombre="PrecioTipo" alias="PrecioTipo"/>
            <atributo nombre="PrecioBase" alias="PrecioBase" descripcion="" requerido="false"/>
            <atributo nombre="Descripcion" alias="Descripcion" descripcion="Tipo: String, Obligatorio: No"/>
        </entidad>
        <entidad id="OperacionConceptos">
            <atributo nombre="ConceptoID" alias="ConceptoCodigo" descripcion="(String) Obligatorio. Consulte la API /Concepto/list"/>
            <atributo nombre="Control1" alias="ImporteEditable" descripcion="(Boolean) Indique 1 para que tome en cuenta el ConceptoImporte y el ConceptoImporteGravado. Indique 0 para que se calcule automáticamente según la tasa"/>
            <atributo nombre="Importe" alias="ConceptoImporte" descripcion="(Decimal) Obligatorio si indicó 1 en ImporteEditable. Con formato ##.###"/>
            <atributo nombre="ImporteGravado" alias="ConceptoImporteGravado" descripcion="(Decimal) Obligatorio si indicó 1 en ImporteEditable. Con formato ##.###"/>
        </entidad>
        <entidad id="ItemsRetencion">
            <atributo nombre="TipoRetencion" alias="TipoRetencionCodigo" descripcion=" PADRE Tipo: String, Obligatorio: Si"/>
            <atributo nombre="Retencion" alias="RetencionCodigo" descripcion="Tipo: String, Obligatorio: Si, Consulte la API /Retencion/list"/>        
            <atributo nombre="Importe" alias="RetencionImporte" descripcion="Tipo: Decimal, Obligatorio: Si, Descripción: ##.###"/>
            <atributo nombre="Comprobante" alias="Comprobante" descripcion="Tipo: String, Obligatorio: Si"/>
            <atributo nombre="ISAR" alias="ISAR" descripcion="Tipo: Decimal, Obligatorio: No, Descripción: ##.###"/>
        </entidad>
        <entidad id="OperacionCotizaciones">
        <atributo nombre="MonedaID" alias="MonedaCodigo" descripcion="(Tipo) String"/>
        <atributo nombre="Cotizacion" alias="Cotizacion" descripcion="(Tipo) Float" requerido="false"/>
        </entidad>
    </root>
	'
	)
END
GO

```

* * *

**API de tipo Viewer**

 ![ConfigApiViewer](https://bc.finneg.com/uploads/default/original/2X/5/5aaadb2b09bfd8cbd566f2f81d623907ae1e4b2a.png)  
_Este tipo de apis utiliza una view que debe estar creada para su funcionamiento y se deben completar todos los campos que se ven en la pantalla de Configuración General de la Api en el sistema. Ejemplo: AgroDepositos es una api de tipo Viewer que se puede crear mediante el siguiente script:_

```auto
IF NOT EXISTS(SELECT 1 FROM FAFApiCatalog WHERE Codigo = 'AgroDepositos')
BEGIN
	DECLARE @AppItemID int
	SELECT @AppItemID = AppItem_ID FROM FAFAppItem WHERE Codigo = 'AGRODEPOSITO'
    DECLARE @NucleoFuncionalID INT
    SELECT @NucleoFuncionalID = NucleoFuncionalID FROM FAFNucleoFuncional WHERE Codigo = 'AGRO_BASE'

	INSERT INTO FAFApiCatalog(Nombre, Codigo, EsEstandar, EsInterna, Activo, Descripcion, Tipo, SoportaGet, SoportaInsert, SoportaUpdate, SoportaList, DiccionarioID,NucleoFuncionalID, AppItem_ID, DefinitionXml)
	VALUES(
            'AgroDepositos', 'AgroDepositos', 0, 0, 1, 'Api para vista AgroDepositos', 1, 0, 0, 0, 0, NULL, @NucleoFuncionalID, @AppItemID,''
	)
END
GO

```

* * *

**API de tipo Java Class**

 ![ConfigApiJavaClass](https://bc.finneg.com/uploads/default/original/2X/0/0584d5e73357d1be06e94ced9e853a0e6834b8c2.png)  
_Este tipo de apis utiliza un diccionario de datos para su funcionamiento y se deben completar todos los campos que se ven en la pantalla de Configuración General de la Api en el sistema. Ejemplo: Actividad es una api de tipo Java Class que se puede crear mediante el siguiente script:_

```auto
IF NOT EXISTS(SELECT 1 FROM FAFApiCatalog WHERE Codigo = 'Actividad')
BEGIN
	DECLARE @DiccionarioID int
	SELECT @DiccionarioID = AppItem_ID FROM FAFAppItem WHERE Codigo = 'ACTIVIDAD'

	INSERT INTO FAFApiCatalog(Nombre, Codigo, EsEstandar, EsInterna, Activo, Descripcion, Tipo, SoportaGet, SoportaInsert, SoportaUpdate, SoportaList, DiccionarioID,NucleoFuncionalID, AppItem_ID, DefinitionXml)
	VALUES(
            'Actividad', 'Actividad', 0, 0, 1, 'API de Actividades', 2, 0, 0, 0, 1, @DiccionarioID, NULL, NULL,'
            <?xml version="1.0" encoding="UTF-8"?>
                <root>
                    <entidad id="main">
                        <atributo nombre="Nombre" alias="Nombre" descripcion="" requerido="true"/>
                        <atributo nombre="Codigo" alias="Codigo" descripcion="" requerido="true"/>
                        <atributo nombre="EspecieID" alias="EspecieID" descripcion="" requerido="false"/>
                        <atributo nombre="Descripcion" alias="Descripcion" descripcion="" requerido="false"/>
                        <atributo nombre="ControlHasAsignacion" alias="ControlHasAsignacion" descripcion="" requerido="false"/>
                        <atributo nombre="ActividadTipoID" alias="ActividadTipoID" descripcion="" requerido="true"/>
                        <atributo nombre="CicloIDForestal" alias="CicloIDForestal" descripcion="" requerido="false"/>
                        <atributo nombre="Activo" alias="Activo" descripcion="" requerido="false"/>
                    </entidad>
                </root>'
	)
END
GO

```

* * *

\*\*
