Histórico da Página
...
Bloco de código |
---|
#INCLUDE "tlpp-core.th" #include 'totvs.ch' NAMESPACE defina.seu.namespace USING NAMESPACE totvs.protheus.backoffice.ba.insights Class SimpleInsightProcess From InsightsProcess Public Data oJsonPayload As Object Public Method New() Constructor // Overrides Public Method ProcessInsight(oInsightMessage As Object) As Logical Public Method GetKey() As Character Public Method GetFilter() As Character Public Method GetDateFrom() As Date Public Method GetDateTo() As Date EndClass Method New() Class PermissionAlertsProcess _Super:New() Return Self Method ProcessInsight(oInsightMessage As Object) As Logical Class PermissionAlertsProcess Local lProcessOk As Logical Local oException As Object Local oInsightEntry As Object Local xJsonParse As Variant Local lReprocess As Logical _Super:ProcessInsight(oInsightMessage) Try // Extrai o payload da mensagem e aloca o atributo oJsonPayload // para futura utilizacao em outras funcoes que serao executadas ::oJsonPayload := JsonObject():New() xJsonParse := ::oJsonPayload:FromJson(oInsightMessage:cMsgPayload) // Atualiza mensagem de insight (tabela I19) com a informação de início de processamento oInsightMessage:UpdateProc("Processamneto de insight iniciado", .T., ::oInsightConfig:cVersao) // Inicia uma nova linha de insight (tabela I21) oInsightEntry := InsightEntry():New() oInsightEntry:cMsgUuid := ::oInsightMessage:cMsgUuid oInsightEntry:cInsightName:= ::oInsightMessage:cMsgInsight oInsightEntry:cModulo := cModulo oInsightEntry:cPayload := ::oJsonPayload:toJson() oInsightEntry:cDtProcess := FWTIMESTAMP(5) oInsightEntry:cVersaoProcess := ::oInsightConfig:cVersao // Calcula o campo key (I21_KEY) - Opcional If ::oInsightConfig:lCalcKey oInsightEntry:cKey := ::GetKey() EndIf // Calcula o campo key (I21_FILTER) - Opcional If ::oInsightConfig:lCalcFilter oInsightEntry:cFilter := ::GetFilter() EndIf // Retorna as datas referente aos campos I21_DTDE e I21_DTATE - Opcional oInsightEntry:dDataDe := ::GetDateFrom() oInsightEntry:dDataAte := ::GetDateTo() // Insere a linha da I21 na tabela oInsightEntry:Insert(lReprocess) oInsightMessage:UpdateProc("Processamneto de insight finalizado", .T., ::oInsightConfig:cVersao) lProcessOk := .T. Catch oException lProcessOk := .F. // Caso exista alguma excecao no processamento, informa na tabela I19 o erro de processamento oInsightMessage:UpdateProc("Processamneto de insight finalizado com erro: " + oException:description, .F., ::oInsightConfig:cVersao) Throw oException Finally FreeObj(oInsightEntry) EndTry Return lProcessOk Method GetKey() As Character Class PermissionAlertsProcess // Retorna um valor caracter que pode ser utilizado para pesquisar o registro por SQL na tabela I21 campo I21_KEY Local cKey As Character cKey := ::oJsonPayload["key"] Return cKey Method GetFilter() As Character Class PermissionAlertsProcess // Retorna um valor caracter que pode ser utilizado para filtrar o registro por SQL na tabela I21 campo I21_FILTER Local cFilter As Character cFilter := ::oJsonPayload["key"] + ::oJsonPayload["filter"] Return cFilter Method GetDateFrom() As Date Class PermissionAlertsProcess // Retorna um valor do tipo data que pode ser utilizado para pesquisar o registro por SQL na tabela I21 campo I21_DTDE Return dDataBase Method GetDateTo() As Date Class PermissionAlertsProcess // Retorna um valor do tipo data que pode ser utilizado para pesquisar o registro por SQL na tabela I21 campo I21_DTATE Return StoD(::oJsonPayload["dataAte"]) |
Obs: Os objetos oInsightMessage e oInsightConfig são providos pelo "Executor de Mensagens de Insight" e referentes a Mensagem de Insight (tabela I19) e Configuração de Insight (tabela I20) referentes a mensagem a ser processada.
Obs: A utilização da Tabela de Insights Unificada (I21) é opcional e vai de acordo com a necessidade de cada Regra de Negócio em particular.
05. Front-End
06. Pipelines Carol
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas