Versões comparadas
Chave
- Esta linha foi adicionada.
- Esta linha foi removida.
- A formatação mudou.
Abaixo as principais funções do EAI Protheus
Âncora | ||||
---|---|---|---|---|
|
Veja os tópicos IntegDef em rotinas MVC Protheus e IntegDef em rotinas Não-MVC Protheus.
Âncora | ||||
---|---|---|---|---|
|
Função de geração de mensagem Única de forma manual, acionando a IntegDef do programa indicado.
FWIntegDef( cSourceCode, cTypeMessage, cType, cXml, cFunName, lOnlyReturn, cVersion )
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório | |||||
---|---|---|---|---|---|---|---|---|---|
cSourceCode | Caracter | Nome do fonte onde se encontra a rotina static IntegDef | GetRotInteg() | ||||||
cTypeMessage | Caracter | Tipo da Mensagem (BusinessMessage, BusinessMessage, Etc. ) | '20'(EAI_MESSAGE_BUSINESS) | ||||||
cType | Caracter | Envio ou Recepcao | '1' (TRANS_SEND) | ||||||
cXml | Caracter | XML a ser tratado quando Recepção | |||||||
cFunName | Caracter | Força o GetRotInteg(), indicando para o EAI qual é a rotina que possui o adapter | GetRotInteg() | ||||||
lOnlyReturn | Lógico | Quando for um Envio: .T. Define que sera gerado apenas o retorno da INTEGDEF e nao sera fetio o Envio | .F. | ||||||
cVersion | Caracter | Versão da mensagem Única | 1.000 |
Âncora | ||||
---|---|---|---|---|
|
Cria bloco de XML referente a Business Event da Business Message da Mensagem Única
FWEAIBusEvent( cEntity, nOperation, aKeys )
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório | |||||
---|---|---|---|---|---|---|---|---|---|
cEntity | Caracter | Entidade da mensagem (nome da mensagem única) | |||||||
nOperation | Numérico | Operação: 3 ou 4 = upsert / 5 = delete | 2 | ||||||
aKeys | Array | Vetor bidimensional com campos no formato {Campo, Conteúdo} | { }
|
Exemplo:
cXMLRet := FWEAIBusEvent( "ITEM", 5, { { "Code", SB1->B1_COD } } )
Retorno:
XML a ser utilizado:
<BusinessEvent>
<Entity>ITEM</Entity>
<Event>delete</Event>
<Identification>
<key name="code">0000000001</key>
</Identification>
</BusinessEvent>
Âncora | ||||
---|---|---|---|---|
|
Cria bloco de XML referente à Business Request da Business Message da Mensagem Única
FWEAIBusRequest( cRequest )
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório | |||||
---|---|---|---|---|---|---|---|---|---|
cRequest | Caracter | Nome da requisição (nome da mensagem) |
Exemplo:
cXMLRet := FWEAIBusRequest( "AccountBalance" )
Retorno:
XML a ser utilizado :
<BusinessRequest>
<Operation>AccountBalance </Operation>
</BusinessRequest>
Âncora | ||||
---|---|---|---|---|
|
Função para geração de múltiplas mensagens de retorno na Response Message da mensagem única
FWEAILOfMessages( aMessages )
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório | |||||
---|---|---|---|---|---|---|---|---|---|
aMessages | Array | Vetor bidimensional com os dados para a criação da mensagem no formato: [1] Caracter - Mensagem [2] Numérico - Tipo da mensagem: 1=error ou 2=warning [3] Caracter - Codigo de Erro da mensagem conforme a mensagem | X |
Exemplo:
aMessages := {}
aAdd( aMessages, { 'Estado nao existe' , 1, '001' } )
aAdd( aMessages, { 'CNPJ invalido' , 1, 'A10' } )
aAdd( aMessages, { 'Nao informado tipo', 2, '500' } )
cRet := FWEAILOfMessages( aMessages )
// cRet será
//<Message type="error" code="001">Estado nao existe</Message>
//<Message type="error" code="A10">CNPJ invalido</Message>
//<Message type="warning" code="500">Nao informado tipo</Message>
Âncora | ||||
---|---|---|---|---|
|
Verifica e retorna o de/para de empresa filial no Protheus para o CompanyId e BranchId das Mensagem Única no recebimento , caso seja encontrado.
FWEAIEMPFIL( cCompanyID, cBranchId, cProduct )
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório | |||||
---|---|---|---|---|---|---|---|---|---|
cCompanyID | Caracter | Codigo da companhia (CompanyID) recebido no XML da mensagem | X | ||||||
cBranchId | Caracter | Codigo da unidade (BranchID) recebido no XML da mensagem | X | ||||||
cProduct | Caracter | Codigo do produto (Product) recebido no XML da mensagem | X |
Retorno:
Vetor com { Empresa Protheus, Filial Protheus}
Âncora | ||||
---|---|---|---|---|
|
Obtém um código interno da tabela de/para através de um código externo
CFGA070Int( cRefer, cAlias, cField, cValExt,cTable )
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório | |||||
---|---|---|---|---|---|---|---|---|---|
cRefer | Caracter | Referencia. Normalmente a "marca" da mensagem: PROTHEUS / LOGIX / RM / DATASUL, etc. | X | ||||||
cAlias | Caracter | Alias do de/para (SA1, SA2, etc.) | X | ||||||
cField | Caracter | É o campo de referencia do De/para (A1_COD, B1_COD, etc. ) | X | ||||||
cValExt | Caracter | Código externo para busca do código interno | X | ||||||
cTable | Caracter | Nome físico da tabela de dados ao qual o de-para se refere. Não é necessário que seja passado | RetSqlName(cAlias) |
Retorno:
Código Externo
Âncora | ||||
---|---|---|---|---|
|
Obtém um código externo da tabela de/para através de um código interno
CFGA070Int( cRefer, cAlias, cField, cValInt,cTable)
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório | |||||
---|---|---|---|---|---|---|---|---|---|
cRefer | Caracter | Referencia. Normalmente a "marca" da mensagem: PROTHEUS / LOGIX / RM / DATASUL, etc. | X | ||||||
cAlias | Caracter | Alias do de/para (SA1, SA2, etc.) | X | ||||||
cField | Caracter | É o campo de referencia do De/para (A1_COD, B1_COD, etc. ) | X | ||||||
cValInt | Caracter | Código externo interno para busca do código internoexterno | X | ||||||
cTable | Caracter | Nome físico da tabela de dados ao qual o de-para se refere. Não é necessário que seja passado | RetSqlName(cAlias) |
Retorno:
Código Externo
Âncora | ||||
---|---|---|---|---|
|
Faz a Inclusão /Alteração / Exclusão dos dados na tabela de/para
CFGA070Mnt( cRefer, cAlias, cField, cValExt, cValInt, lDelete, nOrdem,cTable )
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório | |||||
---|---|---|---|---|---|---|---|---|---|
cRefer | Caracter | Referencia. Normalmente a "marca" da mensagem: PROTHEUS / LOGIX / RM / DATASUL, etc. | |||||||
cAlias | Caracter | Alias do de/para (SA1, SA2, etc.) | X | ||||||
cField | Caracter | É o campo de referencia do De/para (A1_COD, B1_COD, etc. ) | X | ||||||
cValExt | Caracter | Código externo para gravacao | |||||||
cValInt | Caracter | Código interno para gravação | X | ||||||
lDelete | Lógico | Indica a deleção do registro | .F. | ||||||
nOrdem | Numérico | Ordem para busca | Se DELETE e não enviada a cRefer, assume 3, senão assume 2. Se for UPSERT assume 1. | ||||||
cTable | Caracter | Nome físico da tabela de dados ao qual o de-para se refere. Não é necessário que seja passado | RetSqlName(cAlias) |
O Delete dos registros pode ser realizado de duas maneiras diferentes.
- Ao chamar a função para excluir os de-para e não passar a variável cRefer (a marca), todos os registros que possuem aquele InternalId, independente de qual foi a marca geradora, serão apagados. Exemplo de chamada:
- CFGA070Mnt( , 'SA1', 'A1_COD', , '18|D MG 01002|01|C', .T. ) - Neste caso, serão excluídos da tabela XXF todo InternalId da tabela SA1, de chave A1_COD que possuam o código 18|D MG 01002|01|C, independente da marca que o gerou;
- Pode-se excluir exclusivamente o de-para de uma única marca, deste modo, esta deve ser passada na chamada da função:
- CFGA070Mnt('RM' , 'SA1', 'A1_COD', , '18|D MG 01002|01|C', .T. ) - Desta maneira, somente serão excluídos os de-para de código interno 18|D MG 01002|01|C que foram gerados em uma integração com o produto RM.
Âncora | ||||
---|---|---|---|---|
|
Ajusta a rotina de integração no EAI (o GetRotInteg()), quando a rotina chamada não é a rotina de contexto da integração. Ao utilizar esta rotina, após a chamada da integração é aconselhável utilizá-la para voltar o GetRotInteg() ao estado original.
SetRotInteg( cFunction )
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório | |||||
---|---|---|---|---|---|---|---|---|---|
cFunction | Caracter | Rotina que se deseja iniciar a integração | X |
Exemplo
SetRotInteg('CTBA030')
Âncora | ||||
---|---|---|---|---|
|
Devolve a rotina de contexto de integração na Mensagem Única
GetRotInteg( )
Exemplo
cRotina:=GetRotInteg()
Âncora | ||||
---|---|---|---|---|
|
Ajusta uma string trocando os caracteres de controle do XML por suas entidades de referência
_NoTags( cTexto)
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório | |||||
---|---|---|---|---|---|---|---|---|---|
cTexto | Caracter | String na qual se deseja mudar os caracteres não permitidos | X |
Exemplo
cRetorno:=_NoTags( 'Quero enviar Pais&Filhos ->"Novo Texto" ')
cRetorno assumirá
Quero enviar Pais&Filhos->"Novo Texto"
Âncora | ||||
---|---|---|---|---|
|
Verifica se uma rotina possui configuração de EAI
FWHasEAI( cFunction, lVerifySend, lVerifyRec, lVerifyUMess )
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório | |||||
---|---|---|---|---|---|---|---|---|---|
cFunction | Caracter | Nome da função para verificação | GetRotInteg() | ||||||
lVerifySend | Lógico | Verifica se está configurado para envio | .F. | ||||||
lVerifyRec | Lógico | Verifica se está configurado para recepção | .F. | ||||||
lVerifyUmess | Lógico | Verifica se está configurada como Mensagem Única Totvs | .F. |
Se todos os parâmetros forem omitidos, será verificado apenas se há uma configuração de EAI para a rotina independentemente de se ter o envio ou recebimento habilitados.
Exemplo
lRetorno:=FWHasEai('MATA020',.T.,,.T.) //verifica se existe a mensagem única do fonte MATA020 cadastrada para envio
Status do documento | Concluído |
---|---|
Data | 18/11/2014 |
Versão | 1.0 |
Versão anterior | 1.0 |
Autores |
Índice resumido | ||||||
|
Índice | ||||||
|