Histórico da Página
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 | Datasul | Módulo | Framework |
Segmento Executor | Tecnologia | ||
Projeto | PGR_LD_FRW001-81 | IRM | PCREQ-3617 |
Requisito | PCREQ-6064 | Subtarefa | Não se aplica |
Release de Entrega Planejada | DTS12.1.8 | Réplica | Não se aplica |
País | ( ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. | ||
Outros | Não se aplica |
Objetivo
O objetivo desta especificação é preparar o produto Dtatasul 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 |
men/men900aa.p | [Alteração] | N/A | Realiza a chamada do help |
[ACAA050 – Negociação Financeira] | [Envolvida] | [Atualizações -> Acadêmico-> Tesouraria] | - |
[ACAA060 – Cadastro de Pedidos] | [Criação] | [Atualizações -> Acadêmico-> Cadastros] | - |
PROGRESS
MEN/MEN900ZA.P
Aviso | ||
---|---|---|
| ||
O fonte deve ser pré processado para a versão 12.1.8 . |
No programa men/men900za.p
a variável c-nome-htm
armazena a informação do nome do programa, então devemos alterar o nome da variável para c-prog-help
e facilitar o entendimento quanto a informação que armazena.
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
/* TESTA SE ESTA CHAMANDO DO MENU DE MODULO */ IF c-nome-htm <> "men903za" THEN DO: IF procedimento.cod_prog_dtsul_base <> "" THEN DO: FIND prog_dtsul WHERE prog_dtsul.cod_prog_dtsul = procedimento.cod_prog_dtsul_base NO-LOCK NO-ERROR. END. IF AVAIL prog_dtsul THEN DO: ASSIGN c-prog-temp = REPLACE(prog_dtsul.nom_prog_ext,"/","~\") c-prog-help = ENTRY(1,ENTRY(NUM-ENTRIES(c-prog-temp,"~\"),c-prog-temp,"~\"),"."). END. END. |
A string enviada como parâmetro na chamada da procedure openUrl
deverá ser modificada, prevendo a necessidade enviar as informações de linha de produto, segmento, versão, modulo e ação/ rotina.
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
RUN openUrl ("lineProduct=datasul~&segment=" + c-segmento + "~&version=" + c-versão + "~&module=" + procedimento.cod_modul_dtsul + "~&action=" + c-prog-help + "~&language=" + v_cod_idiom_usuar). |
Para recuperar o segmento do produto, - avaliar o uso do LS.
Para recuperar a versão do produto, deverá ser verificada a propriedade framework.version
utilizando o programa men/men906zb.p
.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
RUN men/men906zb.p(ENTRY(10,SESSION:PARAMETER),ENTRY(9,SESSION:PARAMETER),ENTRY(11,SESSION:PARAMETER),ENTRY(12,SESSION:PARAMETER),"","getProperty","","","framework.version","",vExecHTML). |
Informações |
---|
Considerar apenas o conteúdo antes do hífen como versão do produto |
Na procedure openUrl,
quando a versão do produto for maior ou igual a 12.1.8, deverá deixar de executar o trecho que segue:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
IF cUrl <> ? THEN DO: /* utiliza a url de documentacao definida no config.xml com os devidos tratamentos no EIPFlexConfigurationLoader */ ASSIGN cUrl = cUrl + "/scripts/open.html". END. ELSE DO: /* assume a url padrao do legado pois nao foi possivel ler a url do EIPFlexConfigurationLoader */ ASSIGN cUrl = "hlp/openhelp.html". END. |
E passar a executar este trecho no retorno da execução do men/men906zb.p
.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
IF cUrl = ? THEN DO: /* mensagem indicando que o help não esta configurado */ return. END. |
FLEX
HelpController.as
No metodo callHelpURL
realizar alterações para receber o segmento e versão do produto conforme exemplo que segue:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
/** * Realiza a abertura do help conforme a aba corrente ou o módulo desejado na tela de Ajuda do Datasul. */ private function callHelpURL(isGP:Boolean, moduleHelp:Boolean = false):void { var user:UserValue = UserManager.getInstance().user; var i = user.defaultLocale.languageCode; var url:String = Application.application.url; var lm:LicenseManager = new LicenseManager(); var version:String = PropertyUtil.getInstance().getProperty("framework.version"); version = version.substr(0,version.indexOf("-")); url = url.substr(0, url.indexOf("index-flex.swf")); url += "help/openhelp.html?"; this.programName = ""; //Se for para abrir o help da aba aberta if (currentTab != null && !moduleHelp) { //Verifica se a aba atual é Metadados. try { // É Metadados. var currentView:IMDView = WorkspaceMediator.getView(currentTab) as IMDView; if (!currentView.helpURL) { var splittedXMLName:Array = currentView.xmlName.split("/"); // A posição do primeiro parâmetro é a posição 1 pois o formato do xmlName é // "view/[applicationName]/[formName]" ou "view/[applicationName]/freeform/[formName]" ou ainda // "view/[applicationName]/crudfreeform/[formName]", onde então a primeira posição será // obrigatoriamente do applicationName. Já o outro parâmetro é a penúltima posição do Array, pois o // último valor será obrigatoriamente o formName. currentView.helpURL = StringUtil. substitute("{0}/{1}", splittedXMLName[1], splittedXMLName[splittedXMLName.length - 1]); } this.programName = currentView.helpURL.split("/")[1]; } catch (e:Error) { this.programName = currentTab.resourceName; } if (this.programName.indexOf("di") < 0) { if (this.programName.indexOf("homepage") > 0) { this.programName = "f_area_trabalho"; } if (this.programName.split(".").length > 1) { this.programName = this.programName.split(".")[1]; } } else { this.programName = "f_menu"; } } lm.getLsInfo("segment", function(result:ResultEvent) { var segmentCode:String = result.result.value["segmentCode"]; url += "help?lineProduct=datasul&segment=" + segmentCode + "&version=" + version ; url += "&module=" + this.moduleName + "&action=" + this.programName + "&language=" + i; navigateToURL(new URLRequest(url)); }, function(fault:FaultEvent) { //Tratar o erro com uma msg }); } |
Portlet.as
No metodo callHelpURL
realizar alterações para receber o segmento e versão do produto conforme exemplo que segue:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
/** * Realiza a abertura do Help do portlet para o help online. * @param isGP * */ private function callHelpURL(isGP:Boolean):void { var functionalityName:String = this.resource.resourceName; if (functionalityName.lastIndexOf(".") > 0) { functionalityName = functionalityName.split(".")[functionalityName.split(".").length - 1]; } var user:UserValue = UserManager.getInstance().user; var i = user.defaultLocale.languageCode; var url:String = Application.application.url; var lm:LicenseManager = new LicenseManager(); var version:String = PropertyUtil.getInstance().getProperty("framework.version"); version = version.substr(0,version.indexOf("-")); url = url.substr(0, url.indexOf("index-flex.swf")); lm.getLsInfo("segment", function(result:ResultEvent) { var segmentCode:String = result.result.value["segmentCode"]; url += "help?lineProduct=datasul&segment=" + segmentCode + "&version=" + version ; url += "&module=" + this.moduleName + "&action=" + functionalityName + "&language=" + i; navigateToURL(new URLRequest(url)); }, function(fault:FaultEvent) { //Tratar o erro com uma msg }); } |
LicenseManager.as
Definir o metodo getLsInfo
na classe LicenseManager.as
para que seja possível recuperar o segmento do cliente, conforme exemplo que segue:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
/** * Envia solicitação para recuperar o segmento do produto * @param result Função para tratar o retorno positivo da solicitação * @param fault Função para tratar o retorno negativo da solicitação * @return */ public function getLsInfo(information:String, result:Function, fault:Function):String { var line:String = "OP=GETLSINFO"; line += "#PARENTTHREADID=#PSID=#CUSRNAME=#SLOT=0"; line += "#FEDERALID=#IPADDRESS=#SESSIONID="; line += "#LSINFOPARAM="; line += information; this.sendData(line, result, fault); } |
JAVA
EIPFlexConfigurationLoader.java
no método String getURL()
há a definição da URL para a chamada do help. Atualmente ha o valor "http://www.totvs.com/mktfiles/tdiportais/helponlinedatasul/" que deverá ser substituído pelo concatenação dos valores: "http://" + this.config.getRemoteServer ()+ ":" + this.config.getWebServerPort() + "/help".
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
private String getURL() { /* Se esta configurado para utilizar help offline, armazenara a docURL*/ String docURL = null; if(this.config.getUseHelpOffLine()) { if(this.config.getDocURL() != null) docURL = this.config.getDocURL(); } else { /* Se esta configurado para utilizar help online, utilizara a docURLOnLine como docURL, * pois todos os locais utilizam docURL*/ if(this.config.getDocURLOnLine() != null) { docURL = this.config.getDocURLOnLine(); } } /* se o conteudo da docURL continua invalido, assume a URL fixa de help */ if(docURL == null || docURL.trim().equals("")) { docURL = "http://" + this.config.getRemoteServer() + ":" + this.config.getWebServerPort() + "/help"; } return docURL; } |
JAVASCRIPT
HelpController.js
ARQUIVOS DE CONFIGURAÇÃO
config.xml
No arquivo config.xml
excluir o valor da tag <DocURL>
.
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|