...
| Produto: |
|---|
| Solucoes_totvs |
|---|
Producto:
TOTVS Backoffice
Línea de producto:
Línea
Protheus
Segmento:
| Segmentos_totvs | ||
|---|---|---|
|
Servicios
Módulo:
TOTVS Backoffice (
LinhaLínea Protheus) -
Ativo FixoActivo fijo (SIGAATF)
| Modulos_framework |
|---|
| Modulos_totvs_construcao |
|---|
| Modulos_totvs_juridico |
|---|
| Modulos_totvs_logistica |
|---|
| Modulos_totvs_manufatura |
|---|
| Modulos_totvs_rh |
|---|
| Modulos_totvs_saude |
|---|
| Modulos_totvs_prestadores_de_servicos |
|---|
Función:
ATFI012
País:
Brasil
Ticket:
Interno
Requisito/
Story/Issue
DSERCTR1-46829
...
O ponto El punto de entrada AF012POS é executado ao final da rotina se ejecuta al final de la rutina ATFI012, permitindo que o retorno do processamento seja manipulado conforme necessidades permitiendo que la devolución del procesamiento se maneje de acuerdo con las necesidades específicas. Este ponto de entrada é acionado após o recebimento da mensagem única de cadastro de ativo fixo punto de entrada se activa después de la recepción del mensaje único de registro de activo fijo (Assets), possibilitando a customização de ações ou validações finais antes de encerrar a rotinapermitiendo la personalización de acciones o validaciones finales antes de finalizar la rutina.
...
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
aRet := ExecBlock("AF012POS", .F., .F., {lRet, cXmlRet, cTypeTrans, cTypeMsg, cVersion, cTransac, lEAIObj})
If ValType(aRet) = "A" .and. len(aRet) > 1
lRet := aRet[1]
cXmlRet := aRet[2]
Endif |
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
User Function AF012POS()
Local aRet := {}
Local lRet := ParamIXB[1]
Local cXml := ParamIXB[2]
Local cTypeTrans := ParamIXB[3]
Local lObjJSON := ParamIXB[7]
Local cErro := ""
Local oXml as object
// Tratar oel XML somentesolamente sesi ala rotinarutina retornoudevolvió true.
If lRet .and. !lObjJSON
If cTypeTrans == TRANS_SEND
// Trata o XML.
oXml := tXmlManager():New()
oXml:Parse("<AF012POS>" + cXml + "</AF012POS>")
If Empty(cErro := oXml:Error())
oXml:XPathAddNode("/AF012POS/BusinessContent", "N1_NUFINAM", IntCliExt(,, SN1->N1_NUFINAM, MsgUVer('ATFA012', 'ASSETS'))[2])
Endif
// SeSi hubo deuerror erroen noel processamentoprocesamiento.
If empty(cErro)
lRet := .T.
cXml := LimpaXML(oXml:Save2String())
Else
lRet := .F.
cXml := "<![CDATA[" + _NoTags(cErro) + "]]>"
Endif
oXml := nil
ElseIf cTypeTrans == TRANS_RECEIVE
Endif
Endif
aRet := {lRet, cXml}
Return aRet
/*/{Protheus.doc} LimpaXML
FunçãoFunción auxiliar para removerretirar oel prólogo dodel XML geradogenerado.
@param cXml Texto XML aque serse limpolimpiará.
@author
@version P12
@since 21/02/2019
@return cXml - (caracter) Texto XML semsin oel prólogo.
/*/
Static Function LimpaXML(cXml)
Local cXmlRet := AllTrim(cXml)
Local nChar
// Retira oel prólogo dadel mensagemmensaje.
If cXmlRet = "<?"
cXmlRet := SubStr(cXmlRet, At("?>", cXmlRet) + 2)
Endif
// Retira ola recuosangría de la linhalínea (CR ey LF) ey espacios espaçosdel doinicio começode dala string.
Do While (nChar := asc(left(cXmlRet, 1)), nChar = 10 .or. nChar = 13 .or. nChar = 32)
cXmlRet := SubStr(cXmlRet, 2)
EndDo
// Retira ola recuosangría de la linhalínea (CR ey LF) y eespacios espaçosdel dofinal fimde dala string.
Do While (nChar := asc(right(cXmlRet, 1)), nChar = 10 .or. nChar = 13 .or. nChar = 32)
cXmlRet := SubStr(cXmlRet, 1, len(cXmlRet) - 1)
EndDo
// Retira o <AF012POS> ey </AF012POS>.
If cXmlRet = "<AF012POS>" .and. right(cXmlRet, 11) == "</AF012POS>"
cXmlRet := SubStr(cXmlRet, 11, len(cXmlRet) - 21)
Endif
Return cXmlRet
/*/{Protheus.doc} MsgUVer
FunçãoFunción que verifica ala versãoversión de umaun mensaje mensagemúnico únicaregistrado cadastradaen noel adapter EAI.
EssaEsta funçãofunción deverádebe serBORRARSE EXCLUÍDAy esustituirse substituídapor pelala funçãofunción FwAdapterVersion()
após sua publicação nadespués de su publicación en la Lib de 2019.
@param cRotina RotinaRutina que possuitiene ala IntegDef dadel MensagemMensaje Unicaúnico
@param cMensagem NomeNombre dadel MensagemMensaje únicaúnico aque serse pesquisadabuscará
@author Felipe Raposo
@since 23/11/2018
@return xVersion - versãoversión dadel mensagemmensaje únicaúnico cadastradaregistrado. SeSi nãono encontrarencontrara, retornadevuelve nulo.
/*/
Static Function MsgUVer(cRotina, cMensagem)
Local aArea := GetArea()
Local aAreaXX4 := XX4->(GetArea())
Local xVersion
If FindFunction("FwAdapterVersion")
xVersion := FwAdapterVersion(cRotina, cMensagem)
ElseIf XX4->(FieldPos('XX4_SNDVER')) > 0
cMensagem := Padr(cMensagem, Len(XX4->XX4_MODEL))
cRotina := Padr(cRotina, Len(XX4->XX4_ROTINA))
XX4->(dbSetOrder(1))
If XX4->(msSeek(xFilial() + cRotina + cMensagem, .F.) .and. !empty(XX4_SNDVER))
xVersion := AllTrim(XX4->XX4_SNDVER)
Endif
Endif
RestArea(aAreaXX4)
RestArea(aArea)
Return xVersion |
| Aviso | ||
|---|---|---|
| ||
|
...