Páginas filhas
  • ER_Preparação do ERP para execução da Central de Ajuda

 

 

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.                                                             

Informações Gerais

Especificação

Produto

Logix

Módulo

Framework

Segmento Executor

Tecnologia

Projeto1

PDR_LD_FRW001-132

IRM1

PCREQ-3617

Requisito1

PCREQ-6054

Subtarefa1

Não se aplica

Chamado2

Não se aplica

Release de Entrega Planejada

12.1.8

Réplica

Não se aplica

País

(X) Brasil  (  ) Argentina  (  ) Mexico  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   (  ) Outro _____________.

Outros

Não se aplica

   Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos). 


Objetivo


 Preparar o produto Logix para realizar a chamada da Central de Ajuda em todos os pontos onde hoje é executado o Help On-line. 


Definição da Regra de Negócio


Rotina

Tipo de Operação

Opção de Menu

Regras de Negócio

log1400

[Alteração]

N/A

Realizar a chamada da nova Central de Ajuda

fluigCommunityHelpCenter.apl[Criação]N/ARealizar autenticação e busca de informações no Fluig
paramsHelpCenter.apl [Criação]N/ARealizar a busca dos parâmetros no ERP

 

LOG1400 - Função de Ajuda


     Na função log1400 deverá ser tratada a função "LOG_help"  para suportar a nova chamada da Central de Ajuda. Serão suportados (via ativação de parâmetro) os modelos de chamada para o Help Online feito atualmente e a nova chamada para a Central de Ajuda.

Importante: Por padrão, o produto deverá chamar a nova Central de Ajuda. Caso o novo parâmetro seja setado, a chamada será direcionado ao modelo antigo, via Help Online.

Para setar o novo parâmetro, que ativará o modelo antigo de Help Online, é necessário adicionar a seguinte chave no arquivo de Profile (totvsprofile.pro):

logix.help.helpcenter=false

Caso não exista o parâmetro ou caso o valor atribuído seja "true" será considerado o novo formato de ajuda (Central de Ajuda).

 

     Deverá ser criada uma função (log1400_helpCenterMode) que terá por objetivo verificar o novo parâmetro "LOGIX.HELP.HELPCENTER" no arquivo de profile, e indicar se o formato de chamada de help será o via Central de Ajuda ou o de Help Online.

#----------------------------------#
 FUNCTION log1400_helpCenterMode()
#----------------------------------#
  IF m_helpMode = 0 THEN
  
  	 LET m_helpMode = 1 #--# Padrão Central de Ajuda #--#
  	 
     IF UPSHIFT(fgl_getresource("LOGIX.HELP.HELPCENTER")) = "FALSE" OR fgl_getresource("LOGIX.HELP.HELPCENTER") = "0" THEN
        LET m_helpMode = -1
     END IF
  END IF
  RETURN (m_helpMode = 1)
  
 END FUNCTION

     

      Após a verificação do parâmetro indicando qual o help deverá ser utilizado, caso o retorno seja o help via Central de ajuda, deverá ser feito a busca do caminho do novo Help através de uma nova função (log1400_pathHelpCenterMode) a ser criada, conforme exemplo abaixo:

#---------------------------------------------#
 FUNCTION log1400_pathHelpCenterMode(l_valid)
#---------------------------------------------#
  DEFINE l_valid SMALLINT
  
  DEFINE l_caminho_help VARCHAR(255),
         l_length       SMALLINT
   
  LET l_caminho_help = fgl_getresource("LOGIX.HELP.FILES")
     
  IF l_caminho_help IS NULL OR l_caminho_help = " " THEN
    
     #--# Caminho em disco padrão para armazenar o help do sistema #--#
     IF l_valid THEN
        CALL log0030_mensagem("Caminho da documentação do sistema LOGIX não informado. Entrar em contato com contato com o setor de TI.","excl")
     END IF
     RETURN ""
  END IF
 
  #--# Se caminho de help for em disco possui caracter "\" #--#
  #--# Se caminho de help for endereço HTTP possui "/"     #--#
 
  IF l_caminho_help LIKE "%\\\\%" THEN
     LET l_caminho_help = log0800_trim(log0800_replace(l_caminho_help,"\\","/"))
     LET l_caminho_help = "file:///",l_caminho_help
  END IF
 
  LET l_length = LENGTH(l_caminho_help)
 
  IF l_caminho_help[l_length] <> "/" THEN
     LET l_caminho_help = l_caminho_help CLIPPED,"/"
  END IF
 
  RETURN l_caminho_help
  
END FUNCTION

Importante: Para o novo formato de ajuda deverá ser indicado via parâmetro qual o caminho dos fontes da nova solução. Para isso, deverá ser obrigatoriamente setado o parâmetro logix.help.files no arquivo de profile (totvsprofile.pro). Exemplo:

logix.help.files=C:\RepoSVN\CentralAjuda (dentro desta pasta existe o arquivo index.html e todos os outros fontes necessários para executar a solução).

 

     Para efetuar a nova chamada da Central de Ajuda, deverá ser efetua a passagem de novos parâmetros, como segmento, linha de produto, módulo e programa. Abaixo um exemplo de como deve ser efetuada a busca dessas informações:

 

IF log1400_helpCenterMode() THEN
  
  	  LET l_caminho_help = l_caminho_help CLIPPED,"?" 
  	  LET l_caminho_help = l_caminho_help CLIPPED,"LINEPRODUCT=LOGIX" 
  	  LET l_caminho_help = l_caminho_help CLIPPED,"&SEGMENT=",_ADVPL_license_getSegmento()    
  	  LET l_caminho_help = l_caminho_help CLIPPED,"&VERSION=",eng00001_get_versao(),"_",LOG_replace(eng00001_get_release(),'.','_')
  	  LET l_caminho_help = l_caminho_help CLIPPED,"&LANGUAGE=pt"
  	    
  	  IF l_file <> " " THEN
  	     LET l_caminho_help = l_caminho_help CLIPPED,"&MODULE=",log0010_get_sigla_modulo_logix(l_file) 
  	     LET l_caminho_help = l_caminho_help CLIPPED,"&ACTION=",l_file
  	  END IF
  	  
  	  LET l_caminho_help = l_caminho_help CLIPPED,"&URLHELPCENTERFLUIG=http://",LOG_getServerIP(),':',_ADVPL_LOG_GetPvProfString("HTTP","PORT","","TotvsAppServer.ini"),'/fluigCommunityHelpCenter.apl'
  	  LET l_caminho_help = l_caminho_help CLIPPED,"&URLHELPCENTERPARAMS=http://",LOG_getServerIP(),':',_ADVPL_LOG_GetPvProfString("HTTP","PORT","","TotvsAppServer.ini"),'/paramsHelpCenter.apl'
ELSE
.
.
.

Importante: O formato de chamada do Help Online atual deverá ser mantido sem alterações.


fluigCommunityHelpCenter


     Para a Central de Ajuda efetuar a busca de informações no Fluig de forma autenticada, deverá ser criado um serviço no ERP que será acessado pela Central de Ajuda (reconhecido pelo parâmetro passado inicialmente - URLHELPCENTERFLUIG). Este serviço, deverá receber como parâmetro, qual a comunidade que será feita a busca de informações e qual a função de callback a ser retornada. 

     O serviço deverá efetuar a autenticação junto ao Fluig (oAuth1.0 - através de Tokens) e realizar a busca na comunidade, retornando todo o conteúdo encontrado via formato Json. Abaixo um exemplo da implementação:

#include "framework.ch"
Function fluigCommunityHelpCenter(__aCookies,__aPostParms,__nProcID,__aProcParms)
	Local cCallBack   := ""
	Local cCommunity  := ""
	Local nPos  := 0
	Local cJson := ""
	Local oClientFluig
	
	nPos = aScan(__aProcParms,{|x|x[1] = 'callback'})
	If nPos > 0
		cCallBack := __aProcParms[nPos][2]
	EndIf
	
	nPos = aScan(__aProcParms,{|x|x[1] = 'community'})
	If nPos > 0
		cCommunity := __aProcParms[nPos][2]
	EndIf
	
	HTTPCTType('application/jsonp; charset=ISO-8859-1')
	
	oClientFluig := FWoAuth1Fluig():New("123456789","123456789abcdef","http://spon4827:8090","")
	
	//---------------------------------------
	// Seta os tokens para consumir o serviço
	//---------------------------------------
	oClientFluig:SetToken("b8409f59-6dfc-4adb-8463-1ee0d4e5fca1")
	oClientFluig:SetSecretToken("c7d3985f-de45-4702-bfe7-81fe7e439811799288f7-9b3d-4b3f-b125-547baf14e341")
	
	//----------------------------
	// Consome o serviço do Fluig
	//----------------------------
	cJson := oClientFluig:GetListSortedPost(cCommunity,,5)
	cJson := cCallBack + "(" + cJson + ")"
Return cJson 

 

paramsHelpCenter


     Para a Central de Ajuda efetuar a busca de informações no ERP (de parâmetros utilizados para customização da ajuda pelo cliente), deverá ser criado um serviço no ERP que será acessado pela Central de Ajuda (reconhecido pelo parâmetro passado inicialmente - URLHELPCENTERPARAMS). Este serviço, deverá receber como parâmetro qual a função de callback a ser retornada. 

     O serviço deverá efetuar a busca no ERP dos parâmetros de customização, retornando todo o conteúdo encontrado via formato Json. Abaixo um exemplo da implementação:

#include "framework.ch"
Function paramsHelpCenter(__aCookies,__aPostParms,__nProcID,__aProcParms)
	Local cCallBack  := ""
	Local nPos := 0
	Local cJson := "{"
	cJson += '"baseurl":'+FWJsonSerialize(_4GL_LOG_fgl_getresource("LOGIX.HELP.BASEURL"),.F.)
	cJson += ',"initialurl":'+FWJsonSerialize(_4GL_LOG_fgl_getresource("LOGIX.HELP.INITIALURL"),.F.)
	cJson += ',"advancedurl":'+FWJsonSerialize(_4GL_LOG_fgl_getresource("LOGIX.HELP.ADVANCEDURL"),.F.)
	cJson += ',"seemoreurl":'+FWJsonSerialize(_4GL_LOG_fgl_getresource("LOGIX.HELP.SEEMOREURL"),.F.)
	cJson += ',"urlfield":'+FWJsonSerialize(_4GL_LOG_fgl_getresource("LOGIX.HELP.URLFIELD"),.F.)
	cJson += ',"titlefield":'+FWJsonSerialize(_4GL_LOG_fgl_getresource("LOGIX.HELP.TITLEFIELD"),.F.)
	cJson += ',"titlelimit":'+FWJsonSerialize(_4GL_LOG_fgl_getresource("LOGIX.HELP.TITLELIMIT"),.F.)
	cJson += ',"pagetitle":'+FWJsonSerialize(_4GL_LOG_fgl_getresource("LOGIX.HELP.PAGETITLE"),.F.)
	cJson += ',"arrayname":'+FWJsonSerialize(_4GL_LOG_fgl_getresource("LOGIX.HELP.ARRAYNAME"),.F.)
	
	cJson += '}'
	
	nPos = aScan(__aProcParms,{|x|x[1] = 'callback'})
	If nPos > 0
		cCallBack := __aProcParms[nPos][2]
	EndIf
	
	HTTPCTType('application/jsonp; charset=ISO-8859-1')
	
	//----------------------------
	//Consome o serviço do Fluig
	//----------------------------
	cJson := cCallBack + "(" + cJson + ")"
Return cJson

Importante: Os parâmetros serão armazenados no ERP no arquivo de profile: logix.help.*

Abaixo segue a lista dos parâmetros, juntamente de um exemplo apontando para o Youtube:

logix.help.baseurl=http://www.youtube.com.br/watch?v=
logix.help.initialurl=https://www.googleapis.com/youtube/v3/search?part=id%2C+snippet&q={{segmento}}&channelId=UChsYWCL7MFkDM4OsK7de8dw&type=video&maxResults=5&key=AIzaSyDR9G02qdX5eC8kczis4g9_JkICS-fRZoY
logix.help.advancedurl=https://www.googleapis.com/youtube/v3/search?part=id%2C+snippet&q={{segmento}}+{{text}}&channelId=UChsYWCL7MFkDM4OsK7de8dw&type=video&maxResults=5&key=AIzaSyDR9G02qdX5eC8kczis4g9_JkICS-fRZoY
logix.help.seemoreurl=https://www.youtube.com/playlist?list={{segmento}}
logix.help.urlfield=id.videoId
logix.help.titlefield=snippet.title
logix.help.titlelimit=80
logix.help.pagetitle=Minha fonte de documentos
logix.help.arrayname=items



 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.