Árvore de páginas

Versões comparadas

Chave

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

 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
titleinportante
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
themeEclipse
languagetext
titlemen/men900za.p
linenumberstrue
/* 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
themeEclipse
languagetext
titleExemplo
linenumberstrue
            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
themeEclipse
languagetext
linenumberstrue
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
themeEclipse
languagetext
linenumberstrue
    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
themeEclipse
languagetext
linenumberstrue
    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
themeEclipse
languagetext
linenumberstrue
		/**
		 * 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
themeEclipse
languagetext
linenumberstrue
		/**
		 * 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
themeEclipse
languagetext
linenumberstrue
	/**
	 * 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
themeEclipse
languagejava
linenumberstrue
	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.