| Línea de producto: | Microsiga Protheus® |
|---|---|
| Segmento: | Backoffice |
| Módulo: | Financiero |
| Idiomas | Portugués - Español |
| Función: | FINA710 - Nuevo Administrador Financiero |
El punto de entrada NGFPOSE1 permite sustituir el posicionamiento del título del programa estándar, en la tabla del cuentas por cobrar (SE1), que se realiza por medio del IDCNAB.
Este punto de entrada se llama activa en el momento de hacer la localización del título, después de recibir del API del banco el archivo JSON con el campo correspondiente al IDCNAB IDCNAB.
Se activa en la ejecución del job FINA715 y también para el webhook.
Obs 1: En este momento no estamos con el entorno en la sucursal correcta, solamente abrimos la sucursal correcta después de encontrar el título.
Obs 2: Para que el programa estándar considere que este punto de entrada encontró el título, es obligatorio utilizar la función DbSeek/MsSeek.
Nombre | Tipo | Descripción |
PARAMIXB[1] | Caracter | IDCNAB de la boleta que el programa estándar buscaría en el campo E1_IDCNAB, recibido a través por medio del JSON de devolución del banco. |
Este punto de entrada no tiene devolución. El programa estándar valida si se ha posicionado hubiera marcado correctamente el registro SE1 con DbSeek/MsSeek.
| Bloco de código | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"
/*/{Protheus.doc} NGFPOSE1
PontoPunto de entrada para sustitución substituiçãode dala pesquisabúsqueda dodel Título apor Recebercobrar para BaixaBaja Títulos (RetornoDevolución) FINA715.
paramixb[1]:
cIdCnab , Código que oel programa padrãoestándar iriabuscará procuraren no E1_IDCNAB casosi nãono tivessetuviera esseeste PE, por exemploejemplo: "NDC0085358"
@type Function
@author TOTVS
@since 25/05/2021
@return Nil
/*/
User function NGFPOSE1()
Local cIdCnab := paramIXB[1]
Local cQuery := ""
Local cAlias := GetNextAlias()
// AtençãoAtención - En Nesseeste momento nãono estamos comcon el oentorno ambienteen nala filialsucursal corretacorrecta, somentesolamente abrimos ala sucursal filialcorrecta corretadespués apósde encontrar oel 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çãoAtención
Para que oel programa padrãoestándar considerarconsidere que oel PE encontrouencontró oel título, ées obrigatórioobligatorio utilizar ala funçãofunción DbSeek/MsSeek.
CasoSi utilizeutiliza DbGoTo, DbSkip ouo qualquercualquier outraotra funçãofunción de manipulaçãomanejo, depoisdespués es éobligatoorio obrigatóriomarcar posicionaren noel título corretocorrecto comcon DbSeek/MsSeek.
Utilizamos ala funçãofunción Found() para validar oel posicionamentoposicionamiento dade 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çãoAtención -> CasoSi despocisionedesmarca outrasotras tabelastablas, utilizarutilice RestArea() punteado ponteiradosolamente apenasen naslas tabelastablas desposicionadasdesmarcadas.
ExemploEjemplo:
aAreaSA6 := SA6->(GetArea())
...
RestArea(aAreaSA6)
*** NãoNo utilizarutilice RestArea para areaárea ativaactiva nemni para tabelatabla SE1.
--> NãoNo utilizarutilice:
aArea := GetArea()
...
RestArea(aArea)
--> NãoNo utilizarutilice:
aAreaSE1 := SE1->(GetArea())
...
RestArea(aAreaSE1)
*/
Return |