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.


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

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á.




<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>