Histórico da Página
01. DADOS GERAIS
Linha de Produto: | Microsiga Protheus® |
---|---|
Segmento: | Logística |
Módulo: | SIGATMS - Gestão de Transportes |
02. DESCRIÇÃO
O ponto Ponto de entrada AT250AJU foi criado com a finalidade de permitir ao usuário acrescentar campos novos no botão de visualização de ajuste de frete, que está localizado na manutenção do contrato de cliente.
Note que caso haja alguma inconsistência de campos retornadas pelo ponto de entrada, todos os campos serão ignorados. Por exemplo, se algum campo não existir no dicionário de dados, ou não for da tabela DVC ou se for um campo virtual e não for passado o código que irá acrescentar dados neste campo, todos os campos retornados pelo ponto de entrada serão ignorados.localizado na função XmlCte3 do rdmake CTESEFAZ3. Através deste ponto é possível realizar manipulações nos dados do Ct-e, mensagens adicionais, antes da montagem do XML, no momento da transmissão do CTe.
Este ponto de entrada que permite alteração dos dados do XML do CT-e antes que seja enviado ao TSS/TOTVS Colaboração.
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
aParam | Array of Record | cNota := PARAMIXB[1] |
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:
aXMLCTE - Array contendo os dados do XML à ser enviado ao TSS para transmissão para a SEFAZ.
Informações | ||
---|---|---|
| ||
O retorno deve ser exatamente na ordem que será gerado o XML do CT-e, pois no RDMAKE CTESEFAZ3 é 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) | ||
Informações | ||
A ordenação dos campos que são apresentados na tela que o botão chama, por padrão, segue um espaçamento de numeração de 10 em 10. |
03. EXEMPLO DE UTILIZAÇÃO
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
Programa Fonte TECA250.PRW Sintaxe AT250AJU - Inclui Campos ( ) --> aRet Retorno aRet(vetor) aRet[1,1]Campo a ser acrescentado aRet[1,2]Ordem do campo na tela Exemplos Este ponto de entrada acrescenta dois campos a partir da segunda coluna. Os campos que são acrescentados são a tabela de frete e o descrição da região de origem, criado especificamente para exemplificar a criação de um campo virtual, no caso, um campo para mostrar o nome da região de origem. Já existe um campo virtual na tabela DVC que indica o nome da região de origem, porém, neste caso, criamos o DVC_DESREG como campo de usuário apenas para exemplificar. Obs: a variável cAt250Qry é a variável que deve ser usada para acessar as informações que são carregadas na tela. O programa carrega as informações da tela através de uma query, e nesta variável se encontra o alias que está com as informações trazidas nesta query. A macro no caso será carregada no while de leitura desta query. User Function At250Aju(cAt250Aju) Local aRet := {}//--Formato do Array aRet //aRet[1,1] == Nome do campo //aRet[1,2] == Ordem do campo//aRet[1,3] == Caso o campo que esteja sendo passado seja virtual deverá ser passado o código que sera usado para alimentar o campo Aadd( aRet, {'DVC_TABFRE','01','' }) Aadd( aRet ,{'DVC_DESREG','02','Posicione( 'DUY' , 1, xFilial('DUY') + (cAt250Qry)->DVC_CDRORI, 'DUY_DESCRI')'})//-- O campo DVC_DESREG seria um exemplo de campo de usuário virtual, o conteúdo que sera mostrado na tela //-- será montado com o código passado na terceira coluna do array aRet. No exemplo acima, seria mostrado //-- o nome da região de origem que esta na tabela DUY. //--IMPORTANTE //-- caso o campo virtual utilize alguma informação das outras colunas da tabela DVC para montar seu conteúdo. //-- e necessário utilizar o alias que esta sendo usado internamente no fonte padrão, no caso a variável que contém //-- este alias e a cAt250AjuMsgStop(' Ponto de entrada AT250AJU() ' ) Return aRet User Function TMSCTESEF() Local cNota := 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á.
Templatedocumentos |
---|
HTML |
---|
<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> |