Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

01. 

...

DATOS GENERALES

Produto:
Solucoes_totvs

Solucoes_totvs_crossSolucaoCross

Producto:

TOTVS Backoffice

Solucoes_totvs_parceirosSolucaoParceiros

Línea de producto:

Línea

Solucoes_totvs_parceirosexptotvsSolucaoParcsExpsTOTVSLinha de Produto: Linhas_totvsLinhaLinha

Protheus

Segmento:

Segmentos_totvs
SegmentoServiços

Módulo:

Servicios

Módulo:

Modulos_cross_segmentosModulosCrossSegmentos

TOTVS Backoffice (

Linha

Línea Protheus) -

Ativo Fixo

Activo 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

Função

Función:

ATFI012

País:

Brasil

Ticket:

Interno

Requisito/

Story

Story/Issue

DSERCTR1-46829

02. 

...

DESCRIPCIÓN

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.

03.

...

OTRAS INFORMACIONES


Bloco de código
languagecpp
themeRDark
titleManipulação Manejo de PE no en el sistema
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
languagecpp
themeRDark
titleExemplo Ejemplo de PE
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
titleImportante !!
  • Se observa que la utilización del PE y los impactos de este en el sistema son de responsabilidad del cliente.
  • Los ejemplos utilizados en esta documentación solamente son para fines de demostración, cada cliente debe verificar qué comportamiento desea realizar de acuerdo con el alcance del punto
  • Observa-se que a utilização do PE e os impactos dele no sistema são de responsabilidade do cliente.
  • Os exemplos utilizados nessa documentação são apenas para fins de demonstração, cada cliente deve verificar qual comportamento deseja realizar de acordo com o escopo do ponto de entrada.

04.

...

ASUNTOS RELACIONADOS

  • Não No se aplica.