01. DADOS GERAIS
Linha de Produto: | Microsiga Protheus® |
---|---|
Segmento: | Backoffice |
Módulo: | Financeiro |
Idiomas | Português |
Função: | FINA710 - Novo Gestor Financeiro |
02. DESCRIÇÃO
O ponto de entrada NGFPOSE1 permite substituir o posicionamento do título do programa padrão, na tabela de contas a receber (SE1), que é realizada por IDCNAB.
Este ponto de entrada é chamado no momento da localização do título, após receber do API do banco o JSON com o campo correspondente ao IDCNAB.
É chamado na execução do job FINA715 e também para o webhook.
Obs 1: Nesse momento não estamos com o ambiente na filial correta, somente abrimos a filial correta após encontrar o título.
Obs 2: Para o programa padrão considerar que este ponto de entrada encontrou o título é obrigatório utilizar a função DbSeek/MsSeek.
03. PARÂMETROS
Nome | Tipo | Descrição |
PARAMIXB[1] | Caractere | IDCNAB do boleto que o programa padrão pesquisaria no campo E1_IDCNAB, recebido através do JSON de retorno do banco |
04. RETORNO
Este ponto de entrada não tem retorno. O programa padrão valida se foi posicionado registro SE1 com DbSeek/MsSeek corretamente.
05. EXEMPLO DE UTILIZAÇÃO
#INCLUDE "PROTHEUS.CH" #INCLUDE "TBICONN.CH" /*/{Protheus.doc} NGFPOSE1 Ponto de entrada para substituição da pesquisa do Título a Receber para Baixa Títulos (Retorno) FINA715. paramixb[1]: cIdCnab , Código que o programa padrão iria procurar no E1_IDCNAB caso não tivesse esse PE, exemplo: "NDC0085358" @type Function @author TOTVS @since 25/05/2021 @return Nil /*/ User function NGFPOSE1() Local cIdCnab := paramIXB[1] Local cQuery := "" Local cAlias := GetNextAlias() // Atenção - Nesse momento não estamos com o ambiente na filial correta, somente abrimos a filial correta após encontrar o título. cQuery := " SELECT R_E_C_N_O_ AS RECNO FROM " + RetSqlName("SE1") cQuery += " WHERE D_E_L_E_T_ = ' ' " cQuery += " AND E1_IDCNAB = '" + cIdCnab + "' " DbUseArea(.T., "TOPCONN", TCGenQry(,, cQuery), cAlias, .F., .T.) If (cAlias)->(!EOF()) SE1->(DbGoTo((cAlias)->RECNO)) /* Atenção Para o programa padrão considerar que o PE encontrou o título é obrigatório utilizar a função DbSeek/MsSeek. Caso utilize DbGoTo, DbSkip ou qualquer outra função de manipulação, depois é obrigatório posicionar no título correto com DbSeek/MsSeek. Utilizamos a função Found() para validar o posicionamento da SE1. */ DbSelectArea("SE1") SE1->(DbSetOrder(1)) // E1_FILIAL+E1_PREFIXO+E1_NUM+E1_PARCELA+E1_TIPO SE1->(DbSeek(SE1->E1_FILIAL+SE1->E1_PREFIXO+SE1->E1_NUM+SE1->E1_PARCELA+SE1->E1_TIPO)) EndIf (cAlias)->(DbCloseArea()) /* Atenção -> Caso despocisione outras tabelas, utilizar RestArea() ponteirado apenas nas tabelas desposicionadas. Exemplo: aAreaSA6 := SA6->(GetArea()) ... RestArea(aAreaSA6) *** Não utilizar RestArea para area ativa nem para tabela SE1. --> Não utilizar: aArea := GetArea() ... RestArea(aArea) --> Não utilizar: aAreaSE1 := SE1->(GetArea()) ... RestArea(aAreaSE1) */ Return