Árvore de páginas

Índice

Objetivo


Listar e detalhar as funções utilizadas nos adapters para manipulação do InternalId. Para mais informações sobre o conceito de InternalId, consulte a documentação correspondente aqui.


register


Cadastra a estrutura de um InternalId que será utilizado pelos Adapters. Será cadastrado por ambos os aplicativos, porém, cada um com seus respectivos nomes de tabelas e valores que compõem o campo de chave primária.


Uso da tabela no InternalId

A informação da tabela interna é uma necessidade conceitual do InternalId, pois em alguns sistemas, pode ocorrer de um mesmo identificador de InternalId estar associado a mais de uma tabela. Por exemplo: O identificador "CustomerVendor" pode estar associado às tabelas "cliente" e "fornecedor".

Parâmetros:

ParâmetroTipoDescrição
internalIdStringCódigo que identificará o InternalId. Utiliza-se o nome da mensagem para esse campo. Exemplo: "Invoice".
internalTableStringNome da tabela interna que possui os campos que serão utilizados para fazer a conversão de valores da InternalId. Exemplo: "nota-fiscal".
internalColumnString

Colunas da tabela utilizada para fazer a conversão de valores da InternalId. Todas as colunas serão registradas nesse campo separadas pelo caractere “|”.

Exemplo: “cod_empresa|nota_fiscal|serie_nota_ fiscal”.


Retorno:

ValorDescrição
TRUECadastrou corretamente o registro.
FALSEHouve problemas durante o cadastro.


Exemplo de utilização em Progress:

USING com.totvs.datasul.eai.internalid.*.

oMapper = InternalIdMapperProvider:getMapper().

IF oMapper:register("CustomerVendor","clientes","cod_empresa|cod_cliente") = TRUE THEN DO:
	MESSAGE "Cadastro efetuado com sucesso" VIEW-AS ALERT-BOX.
END.
ELSE DO:
    MESSAGE "Problemas durante o cadastro" VIEW-AS ALERT-BOX.
END.


Exemplo de utilização em Java:

if(!internalIdMapperImpl.register("CustomerVendor","clientes", "cod_empresa|cod_cliente")) {        
	System.out.println("Problemas durante o cadastro");
} else {
    System.out.println("Cadastro efetuado com sucesso;");
}

existMapping (Progress) ou exists (Java)


Verifica se a estrutura do InternalId está cadastrada.

Parâmetros:

ParâmetroTipoDescrição
internalIdStringCódigo do InternalId a ser consultado. Ex: "CustomerVendor".
internalTableStringNome da tabela que será pesquisada juntamente com o InternalId. Ex: "clientes".


Retorno:


ValorDescrição
TRUEExiste internalId consultado
FALSENão existe o internalId consultado


Exemplo de utilização em Progress:

USING com.totvs.datasul.eai.internalid.*.

oMapper = InternalIdMapperProvider:getMapper().

IF oMapper:existMapping("CustomerVendor", "clientes") = TRUE THEN DO:    
	MESSAGE "Encontrou o registro" VIEW-AS ALERT-BOX.
END.
ELSE DO:
    MESSAGE "Não encontrou o registro" VIEW-AS ALERT-BOX.
END.


Exemplo de utilização em Java:

if(internalIdMapperImpl.exists("CustomerVendor", "clientes")) {        
	System.out.println("Encontrou o registro");
} else {
        System.out.println("Não encontrou o registro");
}


setValue


Função responsável por adicionar os valores relacionados ao InternalId do aplicativo interno e do aplicativo externo.

Utilizada pelo aplicativo destino da mensagem, ou seja, quando receber uma mensagem de Evento, o aplicativo verificará a necessidade da utilização do InternalId e, caso necessário, cadastrará um registro utilizando essa função.


Esta verificará se o argumento dos campos internos possui a mesma quantidade de campos do registro do InternalId (feito pela função register), garantindo a integridade dos campos do InternalId.

Parâmetros:

ParâmetroTipoDescrição
internalIdStringCódigo do InternalId dos valores a ser incluído. Ex: "CustomerVendor".
internalTableStringNome da tabela interna a qual está associado o InternalId. Ex: "clientes".
internalValueStringValores das colunas da tabela associada. Todas as colunas serão registradas nesse campo separadas pelo caractere “|”. Exemplo: “01|234”.
externalApplicationStringCódigo do aplicativo externo que identifica de quem é o valor dos campos externos. O código do aplicativo externo vem da mensagem de origem (BussinessMessage ou ReturnMessage) e deve ser extraído pela função do Adapter.
externalValueStringCódigo dos valores do InternalId utilizado pelo aplicativo externo.


Retorno:

ValorDescrição
TRUECadastrou o registro com sucesso
FALSEProblemas durante o cadastro do registro


Exemplo de utilização em Progress:

USING com.totvs.datasul.eai.internalid.*.

oMapper = InternalIdMapperProvider:getMapper().

IF oMapper:setValue("CustomerVendor", "clientes", "01|20", "DATASUL_EAI","02|30|40|12345678") = TRUE THEN DO:
	MESSAGE "Cadastro efetuado com sucesso" VIEW-AS ALERT-BOX.
END.
ELSE DO:
    MESSAGE "Problemas durante o cadastro" VIEW-AS ALERT-BOX.
END.


Exemplo de utilização em Java:

if (!internalIdMapperImpl.setValue("CustomerVendor", "clientes", "01|20", "DATASUL_EAI","02|30|40|12345678")) {
	System.out.println("Problemas durante o cadastro");
} else {
    System.out.println("Cadastro efetuado com sucesso");
}

getValue


Função responsável por resgatar o valor interno relacionado ao InternalId do aplicativo externo. Passa-se o código do InternalId e o nome do aplicativo externo.


Parâmetros:

ParâmetroTipoDescrição
internalIdStringCódigo do internalId. Ex: "CustomerVendor".
externalApplicationStringCódigo do aplicativo externo da mensagem. Ex: "DATASUL11".
externalValueStringValor do internalId do aplicativo externo. Ex: "01|123456".


Retorno:

ValorDescrição
Valor do InternalId do aplicativo internoRetornará o valor do internalId do aplicativo interno
nulo (?)Caso não encontre o internalId


Exemplo de utilização em Progress:

USING com.totvs.datasul.eai.internalid.*.

DEFINE VARIABLE valor AS CHARACTER NO-UNDO. 

oMapper = InternalIdMapperProvider:getMapper(). 

valor = oMapper:getValue("CustomerVendor", "clientes", "DATASUL_EAI","02|30|40|123456789").
MESSAGE "Valor retornado " + valor + " = 01|20" VIEW-AS ALERT-BOX.


Exemplo de utilização em Java:

String valor = internalIdMapperImpl.getValue("CustomerVendor", "clientes", "DATASUL_EAI","02|30|40|123456789");
System.out.println("Valor retornado " + valor + " = 01|20");

internalIdGetValue


Função responsável por extrair o valor de uma coluna de um campo interno do InternalId utilizando o nome da coluna registrada.


Passa-se o código do InternalId e o aplicativo externo para fazer o rastreamento do relacionamento da chave dos valores externos.

Parâmetros:

ParâmetroTipoDescrição
internalIdStringCódigo do internalId
internalValueString

Valor dos campos do internalId do aplicativo interno que deseja extrair a informação.

Uso da forma antiga

Anteriormente, a tabela associada do InternalId era incorporada ao valor. Exemplo: “01|234@pedidos”. Com a inclusão de campo próprio para a tabela, esta forma perdeu utilidade, mas ainda é suportada.

internalTableStringValor da tabela utilizada pelo internalId. Caso o nome da tabela seja passado no campo InternalValue, o valor passado como parâmetro para internalTable poderá ser nulo ( ? ).
columnStringNome da coluna utilizada para extrair valor de internalValue.


Retorno:

ValorDescrição
columnValueStringValor correspondente a coluna informada no parâmetro "column".
nulo ( ? )

Quando não encontrar o valor correspondente aos parâmetros fornecidos.


Exemplo de utilização em Progress:

USING com.totvs.datasul.eai.internalid.*.

DEFINE VARIABLE valor AS CHARACTER NO-UNDO.

oMapper = InternalIdMapperProvider:getMapper().

valor = oMapper:internalIdGetValue("CustomerVendor","01|20@clientes",?,"cod_empresa").
MESSAGE "Valor retornado " + valor + " = '01'" VIEW-AS ALERT-BOX.
  
valor = oMapper:internalIdGetValue("CustomerVendor","01|20","clientes","cod_cliente").
MESSAGE "Valor retornado " + valor + " = '20'" VIEW-AS ALERT-BOX.


Exemplo de utilização em Java:

String valor = internalIdMapperImpl.internalIdGetValue("CustomerVendor", "01|20@clientes", null, "cod_empresa");
System.out.println("Valor retornado " + valor + " = '01'");
                
valor  = internalIdMapperImpl.internalIdGetValue("CustomerVendor", "01|20", "clientes", "cod_cliente");
System.out.println("Valor retornado " + valor + " = '20'");

deleteValue


Função responsável por excluir o(s) registro(s) que contenha(m) os valores do InternalId com os parâmetros selecionados.


Parâmetros:

ParâmetroTipoDescrição
internalIdStringCódigo do internalId utilizado como filtro para exclusão. Ex: "CustomerVendor"
internalValueCHAR (200)Utilizará o código do valor interno como filtro para exclusão. Ex: "01|10".
externalApplicationCHAR (200)

Utilizará o código do aplicativo externo como filtro para exclusão. Ex: "P1299".

Observação

A versão da função sem este argumento excluirá todos os registros do “internalId” e “internalValue” informados.


Retorno:

RetornoValor
TRUEExcluiu o(s) registro(s) com sucesso
FALSEHouve problemas durante a exclusão do registro.


Exemplo de utilização em Progress:

USING com.totvs.datasul.eai.internalid.*.

oMapper = InternalIdMapperProvider:getMapper().

/* Exclusão de TODOS os registros do valor de internalId informado */
IF oMapper:deleteValue("CustomerVendor","01|20") = TRUE THEN DO:    
	MESSAGE "Exclusão do internalid com o valor: '01|20@clientes' para todos os Aplicativos externos." VIEW-AS ALERT-BOX.
END.
ELSE DO:
    MESSAGE "Problemas com a exclusão." VIEW-AS ALERT-BOX.
END.

/* Exclusão do valor de internalId de determinado aplicativo externo. */  
IF oMapper:deleteValue("CustomerVendor","01|20","P1299") = TRUE THEN DO:
    MESSAGE "Exclusão do internalid com o valor: '01|20@clientes' para a aplicativo externo: 'P1299'." VIEW-AS ALERT-BOX.
END.
ELSE DO:
    MESSAGE "Problemas com a exclusão." VIEW-AS ALERT-BOX.
END.


Exemplo de utilização em Java:

// Exclusão de TODOS os registros do valor de internalId informado 
if(internalIdMapperImpl.deleteValue("CustomerVendor", "01|20@clientes")) {
	System.out.println("Exclusão do internalid com o valor: '01|20@clientes' para todos os Aplicativos externos.");
} else {
    System.out.println("Problemas com a exclusão.");
}
                
// Exclusão do valor de internalId de determinado aplicativo externo.
if(internalIdMapperImpl.deleteValue("CustomerVendor", "01|20@clientes", "P1299")) {
    System.out.println("Exclusão do internalid com o valor: '01|20@clientes' para a aplicativo externo: 'P1299'.");
} else {
    System.out.println("Problemas com a exclusão.");
}

deleteMapping (Progress) e delete (Java)


Função responsável por excluir a estrutura do InternalId com os parâmetros selecionados.


Parâmetros:

ParâmetroTipoDescrição
internalIdStringCódigo do internalId utilizado como filtro para exclusão. Ex: "CustomerVendor".
internalTableStringUtilizará o código da tabela interna como filtro para exclusão. Ex: "clientes".


Retorno:

RetornoValor
TRUEExcluiu o registro com sucesso
FALSEHouve problemas durante a exclusão do registro


Exemplo de utilização em Progress:

USING com.totvs.datasul.eai.internalid.*.

DEFINE VARIABLE valor AS CHARACTER NO-UNDO.

oMapper = InternalIdMapperProvider:getMapper().

IF oMapper:deleteMapping("CustomerVendor","fornecedores") = TRUE THEN DO:    
	MESSAGE "Exclusão do internalid efetuada com sucesso" VIEW-AS ALERT-BOX.
END.
ELSE DO:
    MESSAGE "Problemas com a exclusão." VIEW-AS ALERT-BOX.
END.


Exemplo de utilização em Java:

if(internalIdMapperImpl.delete("CustomerVendor","fornecedores")) {        
	System.out.println("Exclusão do internalid efetuada com sucesso");
} else {
    System.out.println("Problemas com a exclusão.");
}