Inclusão de Financeiros

Para incluirmos titulos financeiros devemos fazer uso do serviço CRUDServiceProvider.saveRecord do módulo mge.

Esse exemplo demonstra a inclusão de um registro (INSERT), mas o mesmo serviço com a mesma estrutura pode ser usado para realizar modificações em registros existentes (UPDATE), bastando para isso enviar um elemento a mais (conforme comentários) no XML.

Parâmetros de chamada

dataSet

Elemento XML com campos solicitados, filtro, etc. Cada sub-elemento está detalhado no exemplo abaixo.

Dados modificados

Quando bem sucedida, a chamada deste serviço inclui um novo registro na tabela de títulos financeiros.

Geração de chave

A entidade de dados 'Financeiro' (tabela TGFFIN) possui geração de chave automática, portanto o campo NUFIN será gerado automaticamente e retornado na resposta do serviço. Isso significa que esse campo não deve fazer parte do XML de chamada do serviço.

Transação

Método de requisição: POST
URL:
https://api.sankhya.com.br/gateway/v1/mge/service.sbr?serviceName=CRUDServiceProvider.saveRecord


Headers HTTP:

- Content-Type: text/xml;charset=ISO-8859-1
- Autorization: bearerToken=[TOKEN gerado no serviço de autenticação]

Estrutura básica da requisição:

<dataSet>
<entity>
<fieldset/>
<field/>
</entity>
<dataRow>
	<localFields>
		<!-- campos com os dados a serem salvos -->
</localFields>
<!-- 
O elemento 'key' só deve estar presente caso seja uma atualização de registro já existente.
Quando ausente, o sistema entende ser um INSERT
-->
<key>
<!-- 
campos da chave primaria devem ser colocados		aqui em caso de UPDATE.
Neste exemplo, o titulo financeiro de nro.único 9988 teria os dados alterados (campos presentes em 'localFields')
-->
<NUFIN>9988</NUFIN>
</key>
	</dataRow>
</dataSet>

Estrutura básica da resposta:

<entities total='1'>
<entity>
<!-- campos retornados, inclusive NUFIN gerado -->
</entity>
</entities>

Exemplo de uso (financeiros vinculados à Pedido/Nota)

Exemplo de corpo da requisição:

<serviceRequest serviceName="CRUDServiceProvider.saveRecord">
	<requestBody>
		<dataSet rootEntity="Financeiro" includePresentationFields="S"  datasetid="1444487520009_1">
			<entity path="">
				<fieldset list="*"/>
			</entity>
<!--
Deve haver apenas um elemento 'dataRow' por chamada, o que limita o serviço a incluir um título financeiro por vez
-->
			<dataRow>
				<localFields>
					<!-- campos explicados mais abaixo-->
<NUMNOTA>0</NUMNOTA>				    
<RECDESP>1</RECDESP>
<CODPARC>1</CODPARC>
<CODTIPOPER>421</CODTIPOPER>
<CODTIPTIT>1</CODTIPTIT>
<CODEMP>1</CODEMP>
<CODCENCUS>0</CODCENCUS>
<CODPROJ>0</CODPROJ>
<CODNAT>0</CODNAT>
<DTNEG>14/10/2015</DTNEG>
<DTVENC>01/12/2015</DTVENC>
<VLRDESDOB>250.25</VLRDESDOB>
<DESDOBRAMENTO>2</DESDOBRAMENTO>
<NUNOTA>103206</NUNOTA>
<ORIGEM>E</ORIGEM>
<PROVISAO>S</PROVISAO>
				</localFields>
			</dataRow>
		</dataSet>
	</requestBody>
</serviceRequest>

Resposta bem sucedida:

<?xml version="1.0" encoding="UTF-8"?>
<serviceResponse serviceName="CRUDServiceProvider.saveRecord" status="1" pendingPrinting="false" transactionId="ce27a42e-f8d7-40c2-902d-d6c78f27f348">
    <responseBody>
        <entities total="1">
            <entity>
<!--
Campo de chave primária foi gerado pelo sistema e retornado junto com as outras colunas.
-->
			<NUFIN>5571</NUFIN>
			<!-- varias colunas omitidas aqui -->
            </entity>
        </entities>
    </responseBody>
</serviceResponse>

Principais campos

Nome do campoValorDescrição
NUMNOTA0Número da nota. Quando financeiro de nota/pedido esse nro. é gerado na confirmação da nota e atualizada no financeiro
RECDESP11 = Receita, -1 = Despesa
CODPARC1Código do Parceiro. Se financeiro de nota/pedido, esse código deve ser igual ao CODPARC da nota
CODTIPOPER421Cód.Tipo operação. Se financeiro de pedido/nota, então deve ter o mesmo valor da nota/pedido
CODTIPTIT1Cód. do Tipo de título (Dinheiro, cheque, cartão, etc)
CODEMP1Cód.empresa. Se financeiro de pedido/nota então a empresa deve ser a mesma da nota.
CODCENCUS0Cód. do Centro de resultados
CODPROJ0Cód. do Projeto
CODNAT0Cód. da Natureza de receitas/despesas
DTNEG14/10/2015Data da negociação. Se financeiro de nota/pedido então deve ser a mesma data de neg. da nota
DTVENC01/12/2015Data de vencimento.
VLRDESDOB250.52Valor do titulo.
DESDOBRAMENTO1Nro. do desdobramento. Para financeiros de nota/pedidos esse nro deve ser sequencial começando por 1
NUNOTA103206Nro.único da nota com a qual esse titulo financeiro está vinculado
ORIGEMEOrigem do titulo financeiro. E = Estoque (nota), F = Financeiro avulso.
PROVISAOSDetermina se o título é uma provisão financeira ou um título real. S = Provisão, N = Real