Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Informações
titleExplicação da estrutura do SchemaDefinition
{
    "id": "Identificador: UUID",
    "version": "Versão",
    "name": "Nome",
    "description": "Descrição",
    "status": "Status: PRODUCTION ou DEVELOPMENT",
    "createdAt": "Data de criação",
    "updatedAt": "Data da última atualização",
    "attributes": [ -- Array que contém objetos Schema Attributes
        {
            "name": "Nome do atributo",
            "required": true -- se o atributo é obrigatório,
            "type": "Tipo: ELEMENT ou ARRAY",
            "entityPrimaryKey": false -- se o atributo é a primary key da entidade,
            "foreignKeyType": "Tipo de chave estrangeira: NONE, PARENT_SCHEMA ou OTHER_SCHEMA",
            "attributeProducts": -- Array de objetos Schema Attribute Product [
                {
                    "productName": "Nome do produto",
                    "tableName": "Nome da tabela",
                    "foreignTableName": "Nome da tabela de referência a chave estrangeira",
                    "columns": -- Array de objetos Schema Attribute Columns [
                        {
                            "columnName": "Nome da coluna",
                            "parentColumnName": "Nome da coluna na tabela da chave estrangeira",
                            "type": "Tipo da coluna: STRING, NUMBER, DATE e CLOB",
                            "label": "Label da coluna quando o atributo for Primary Key, Parent Schema ou Other Schema"
                        }
                    ]
                }
            ],
            "children": -- Array de objetos Schema Attributes quando o type for ARRAY []
        }
    ]
}

...

Informações
titleExemplo de um SchemaDefinition
{
    "id": "a126a79d-693c-4d2d-bbbd-a3cbff1abfc9",
    "version": "12.1.27",
    "name": "Instancia",
    "description": "Instancia",
    "status": "PRODUCTION",
    "createdAt": null,
    "updatedAt": null,
    "attributes": [
        {
            "name": "nome",
            "required": true,
            "type": "ELEMENT",
            "entityPrimaryKey": false,
            "foreignKeyType": "NONE",
            "attributeProducts": [
                {
                    "productName": "PIMSMC",
                    "tableName": "UNIDADEADM",
                    "foreignTableName": null,
                    "columns": [
                        {
                            "columnName": "DE_UNI_ADM",
                            "parentColumnName": null,
                            "type": "STRING",
                            "label": null
                        }
                    ]
                },
                {
                    "productName": "PIMSCS",
                    "tableName": "PMINSTANCIAS",
                    "foreignTableName": null,
                    "columns": [
                        {
                            "columnName": "DE_INSTANCIA",
                            "parentColumnName": null,
                            "type": "STRING",
                            "label": null
                        }
                    ]
                }
            ],
            "children": []
        },
        {
            "name": "codigo",
            "required": true,
            "type": "ELEMENT",
            "entityPrimaryKey": false,
            "foreignKeyType": "NONE",
            "attributeProducts": [
                {
                    "productName": "PIMSMC",
                    "tableName": "UNIDADEADM",
                    "foreignTableName": null,
                    "columns": [
                        {
                            "columnName": "CD_UNI_ADM",
                            "parentColumnName": null,
                            "type": "STRING",
                            "label": null
                        }
                    ]
                },
                {
                    "productName": "PIMSCS",
                    "tableName": "PMINSTANCIAS",
                    "foreignTableName": null,
                    "columns": [
                        {
                            "columnName": "INSTANCIA",
                            "parentColumnName": null,
                            "type": "STRING",
                            "label": null
                        }
                    ]
                }
            ],
            "children": []
        },
        {
            "name": "id",
            "required": true,
            "type": "ELEMENT",
            "entityPrimaryKey": true,
            "foreignKeyType": "NONE",
            "attributeProducts": [
                {
                    "productName": "PIMSMC",
                    "tableName": "UNIDADEADM",
                    "foreignTableName": null,
                    "columns": [
                        {
                            "columnName": "ID_UNIDADEADM",
                            "parentColumnName": null,
                            "type": "NUMERIC",
                            "label": "id"
                        }
                    ]
                },
                {
                    "productName": "PIMSCS",
                    "tableName": "PMINSTANCIAS",
                    "foreignTableName": null,
                    "columns": [
                        {
                            "columnName": "INSTANCIA",
                            "parentColumnName": null,
                            "type": "STRING",
                            "label": "id"
                        }
                    ]
                }
            ],
            "children": []
        }
    ]
}

...

Os bancos de dados suportados são Oracle (11G e 12C), PostgreSQL e Microsoft SQL Server.

Atributos

  • O atributo id é o identificador único do produto;
  • O atributo productName é o nome do produto;
  • O atributo productVersion é a versão atual do produto;
  • O atributo url é o endereço de conexão com o banco de dados. Para cada baco de dados é um endereço diferente. Abaixo, são apresentados os diferentes endereção para cada banco de dados;
  • O atributo username é o usuário do banco de dados;
  • O atributo password é a senha do usuário do banco de dados;
  • O atributo dataBaseType é o tipo do banco de dados. Abaixo, são apresentados os tipos de cada banco de dados;
  • O atributo enabled representa se a conexão está habilitada ou desabilitada;

IMPORTANTE!

O usuário do banco de dados deve ter 

Exemplo de  ProductConnection com o banco de dados SQL Server:

Informações
titleExemplo de ProductConnection (SQL Server)
{
    "id": "68eaa1a2-aedb-4ba9-9015-a01a31bead89",
    "productName": "PIMS",
    "productVersion": "12.1.27",
    "url": "jdbc:jtds:sqlserver://localhost:1433/PIMS",
    "username": "PIMS",
    "password": "PIMS",
    "dataBaseType": "MSSQLSERVER",
    "enabled": true
}


Exemplo de um ProductConnection com o banco de dados Oracle 11G:

Informações
titleExemplo de um Product Connection (Oracle 11G)
{
    "id": "68eaa1a2-aedb-4ba9-9015-a01a31bead89",
    "productName": "PIMS",
    "productVersion": "12.1.27",
    "url": "jdbc:oracle:thin:@localhost:1521:PIMS",
    "username": "PIMS",
    "password": "PIMS",
    "dataBaseType": "ORACLE11G",
    "enabled": true
}


Exemplo de ProductConnection com o banco de dados PostgreSQL:

Informações
titleExemplo de um Product Connection (PostgreSQL)
{
    "id": "68eaa1a2-aedb-4ba9-9015-a01a31bead89",
    "productName": "PIMS",
    "productVersion": "12.1.27",
    "url": "jdbc:postgresql://localhost:5432/PIMS",
    "username": "PIMS",
    "password": "PIMS",
    "dataBaseType": "POSTGRESQL",
    "enabled": true
}


Product Connection Schema

...

A entidade CarolUser são informações de login da plataforma Carol que deve ser cadastrada no TOTVS Connector Server

Atributos

  • O atributo "organizationSubdomain" corresponde ao atributo "orgDomain" da TOTVS Carol;

  • O atributo "subdomain" corresponde ao atributo "subdomain" da TOTVS Carol, que se refere ao ambiente (tenant) que está se autenticando;

  • Os atributos "username" e "password" são informações do seu login na TOTVS Carol;

...

Portanto, CarolConnector é a relação do connector (connectorId) com o connector token gerado para esse mesmo connector na TOTVS Carol.

Atributos

  • O atributo connectorId é o id do connector na TOTVS Carol;

  • O atributo connectorToken é o identificador gerado para o connectorId na TOTVS Carol;

...

A entidade CarolStagingTable possui dois atributos similares, que representam abstrações diferentes: name e stagingTableName. A diferenciação de cada atributo será explicado a seguir.

Atributos

  • O atributo stagingTableName representa exatamente o nome da StagingTable na TOTVS Carol. Por exemplo, se na TOTVS Carol contém uma StagingTable com o nome "fazenda", o atributo stagingTableName deverá ser, exatamente, "fazenda";

  • O atributo name representa um "apelido" para o TOTVS Connector Server diferenciar dos nomes das StagingTable. Por exemplo, na TOTVS Carol contém uma StagingTable chamada "inspecao" e no TOTVS Connector Server, contém duas CarolStagingTable que apontam para a StagingTable "inspecao" na TOTVS Carol. Para diferenciar as duas CarolStagingTable, utiliza-se o atributo name.

  • O atributo description representa uma descrição sobre a CarolStagingTable;

...

Informações
titleEstrutura de exemplo da entidade CarolStagingTable
{
  "carolConnectorId": "b26a732f-d2fc-47c8-9e0d-545d6e3ef674",
  "stagingTableName": "fazenda",
  "description": "Exemplo de CarolStagingTable, que representa uma StagingTable na TOTVS Carol",
  "name": "apelido_para_fazenda"
}

IMPORTANTE!

Quando enviar uma mensagem para o TOTVS Connector Server, destinada à TOTVS Carol, a entidade EventDataCarolRequest deverá conter, exatamente, o valor do atributo name. Portanto, não deverá mandar o atributo stagingTableName na mensagem.

...

A entidade EventDataCarolRequest é utilizada para encapsular os dados para enviar ao TOTVS Connector Server.

Atributos

  • O atributo environmentToken é o token gerado na entidade Client Environment;

  • O atributo stagingTableName é exatamente o apelido (atributo name) cadastrada na entidade CarolStagingTable;

  • O atributo originApp é o nome do produto que está enviando os dados (produto de origem);

  • O atributo dataList é uma lista de objetos que será enviada para a StagingTable na TOTVS Carol, ou seja, os objetos são as próprias representações da StagingTable;

...

A seguir, são explicados os métodos de envio de dados para o TOTVS Connector Server, direcionados à TOTVS Carol.

IMPORTANTE!

Como os envios de dados são feitos de forma assíncrona, pode-se levar algum tempo até os dados serem processados e enviados.

...

O tipo genérico T é a entidade a ser encapsulada que, no nosso caso, será a EventDataCarolRequest. Portanto, para enviar uma mensagem para o TOTVS Connector Server, destinada à Carol, deverá mandar um objeto TOTVSMessage<EventDataCarolRequest>.

Atributos

  • O atributo header é a classe TOTVSHeader, também da biblioteca TJF, que será enviada no header da mensagem. 
    • O atributo type é o nome da StagingTable a ser enviada.
    • O atributo generatedOn é a data que está enviado os dados
    • O atributo locale é a localização utilizada no cliente.
  • O Atributo content é o tipo genérico T. No nosso caso, será a entidade EventDataCarolRequest.

...

Como as aplicações estão em servidores diferentes, TOTVS Connector Client no On Premise / Nuvem Privada (Private Cloud), TOTVS Connector Server na nuvem e as aplicações de terceiros podendo estar tanto na nuvem quanto On Premise, é possível acontecer atrasos e lentidões no envio dos dados, devido à conexão utilizada. 

...