Árvore de páginas


01. DADOS GERAIS

Linha de Produto:Microsiga Protheus®
Segmento:Logística
Módulo:SIGATMS - Gestão de Transportes 


02. DESCRIÇÃO

O Ponto de entrada localizado na função MdfeSf30 do rdmake MDFSEFAZ3. Através deste ponto é possível realizar manipulações nos dados do MDF-e, mensagens adicionais, antes da montagem do XML, no momento da transmissão do MDF-e.

Este ponto de entrada que permite alteração dos dados do XML do MDF-e antes que seja enviado ao TSS/TOTVS Colaboração.


Parâmetros:

NomeTipoDescriçãoDefaultObrigatórioReferência
aParamArray of Record

cManif    := PARAMIXB[1]
cSerie     := PARAMIXB[2]
aRetXML := PARAMIXB[3]





Retorno:

Array com o conteúdo alterado.

Qualquer alteração do array como inclusão ou exclusão de tags, será transmitido à SEFAZ. 

aRetXML (array_of_record)


Variáveis:

aXMLMDFe - Array contendo os dados do XML à ser enviado ao TSS para transmissão para a SEFAZ.


Importante

O retorno deve ser exatamente na ordem que será gerado o XML do MDF-e, pois no RDMAKE MDFSEFAZ3 é atribuído o retorno completo para as respectivas variáveis.

A manipulação da string contida no array deve ser feita via busca das tags conhecidas utilizando a linguagem advpl, conforme necessidade e regra de negócio do cliente.

Pode-se acrescentar ou retirar informações não geradas pelo programa padrão, incluindo ou excluindo itens ao array, desde que seja feito na ordem correta (seguindo o manual fornecido pela Sefaz) 


03. EXEMPLO DE UTILIZAÇÃO

TMSMDFESE
User Function TMSMDFESE()
Local cManif  := PARAMIXB[1]
Local cSerie  := PARAMIXB[2]
Local aRetXML := PARAMIXB[3]
Local nPos    := 0
Local cString := ""

//-- Exemplo de alteração do bloco com a tag <autXML>
If (nPos:= aScan(aRetXML, {|x| '<autXML>' $ x})) > 0
    cString := '<autXML>'
    cString +=  '<CNPJ>79282688000108</CNPJ>' //-- Cnpj de exemplo, gerado aleatoriamente para fins didáticos
    cString += '</autXML>'
    aRetXML[nPos] := AllTrim(cString)
EndIf

Return aRetXML


04. DEMAIS INFORMAÇÕES

Não há.


05. ASSUNTOS RELACIONADOS

Não há.