<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Maker Portal &#187; Funções API</title>
	<atom:link href="http://www.makerportal.com.br/category/maker/funcoes-api/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.makerportal.com.br</link>
	<description></description>
	<lastBuildDate>Fri, 04 Jun 2010 17:09:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Utilize a função append ao invés de concatenação</title>
		<link>http://www.makerportal.com.br/utilize-a-funcao-append-ao-inves-de-concatenacao/</link>
		<comments>http://www.makerportal.com.br/utilize-a-funcao-append-ao-inves-de-concatenacao/#comments</comments>
		<pubDate>Tue, 25 May 2010 03:01:21 +0000</pubDate>
		<dc:creator>Alex Santos</dc:creator>
				<category><![CDATA[Funções API]]></category>
		<category><![CDATA[Nota Fiscal Eletrônica]]></category>
		<category><![CDATA[append]]></category>
		<category><![CDATA[concatenacao]]></category>
		<category><![CDATA[nfe]]></category>

		<guid isPermaLink="false">http://www.makerportal.com.br/?p=456</guid>
		<description><![CDATA[O uso abusivo da função concatenação nos fluxos, pode ocasionar lentidão ou erros como &#8220;Out of memory&#8221; no sistema.
Esta função carrega a soma de string na memória e só retira de lá quando o processo morre, com isso temos  que tomar certos cuidados no uso desta função em fluxos grandes e complexos.
Para evitar estes tipos [...]]]></description>
			<content:encoded><![CDATA[<p>O uso abusivo da função concatenação nos fluxos, pode ocasionar <strong>lentidão</strong> ou erros como<strong> &#8220;Out of memory&#8221; </strong>no sistema.</p>
<p>Esta função carrega a soma de string na memória e só retira de lá quando o processo morre, com isso temos  que tomar certos cuidados no uso desta função em fluxos grandes e complexos.</p>
<p><span id="more-456"></span>Para evitar estes tipos de problemas, podemos substituir a função &#8220;Concatenação&#8221; pela função &#8220;Append&#8221;</p>
<p><strong>Função Append:</strong></p>
<p><a href="http://www.makerportal.com.br/wp-content/uploads/2010/05/append.jpg" rel="shadowbox[post-456];player=img;"><img class="alignleft size-full wp-image-457" title="append" src="http://www.makerportal.com.br/wp-content/uploads/2010/05/append.jpg" alt="append" width="166" height="165" /></a>Junta vários itens de texto em apenas um item.</p>
<p>Parâmetros:<br />
1. Valor que terá outros valores adicionados<br />
2. Valor que será concatenado junto ao texto do primeiro parâmetro.<br />
&#8230;<br />
N. Valor n a ser adicionado.</p>
<p>Retorno:  Retorna o valor concatenado.</p>
<p>Em termo de usabilidade, ela difere da função &#8220;Concatenação&#8221;, veja abaixo:</p>
<p>Exemplo: Para acumular uma variável com a função concatenação, faríamos:</p>
<p><a href="http://www.makerportal.com.br/wp-content/uploads/2010/05/concatenaçao.jpg" rel="shadowbox[post-456];player=img;"><img class="alignnone size-medium wp-image-461" title="concatenaçao" src="http://www.makerportal.com.br/wp-content/uploads/2010/05/concatenaçao-300x151.jpg" alt="concatenaçao" width="300" height="151" /></a></p>
<p>Já na função Append, não precisa ser atribuído a nenhuma variável, pois ela acumula  na variável que estiver no primeiro parâmetro, veja:</p>
<p><a href="http://www.makerportal.com.br/wp-content/uploads/2010/05/append2.jpg" rel="shadowbox[post-456];player=img;"><img class="alignnone size-medium wp-image-462" title="append2" src="http://www.makerportal.com.br/wp-content/uploads/2010/05/append2-300x143.jpg" alt="append2" width="300" height="143" /></a></p>
<p><strong>Atenção: É indispensável o uso desta função(Append) no desenvolvimento de sistema de nota fiscal eletrônica (NFe), pois faz muitas somas de strings para criação dos XMLs.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.makerportal.com.br/utilize-a-funcao-append-ao-inves-de-concatenacao/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Utilizando semáforo corretamente</title>
		<link>http://www.makerportal.com.br/utilizando-semaforo-corretamente/</link>
		<comments>http://www.makerportal.com.br/utilizando-semaforo-corretamente/#comments</comments>
		<pubDate>Fri, 21 May 2010 03:02:24 +0000</pubDate>
		<dc:creator>Alex Santos</dc:creator>
				<category><![CDATA[Exemplos]]></category>
		<category><![CDATA[Funções API]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[catch]]></category>
		<category><![CDATA[semaforo]]></category>
		<category><![CDATA[try]]></category>

		<guid isPermaLink="false">http://www.makerportal.com.br/?p=444</guid>
		<description><![CDATA[Semáforo é bastante utilizado para controle de concorrência dos processos de um sistema, porém muitas pessoas utilizam de forma incorreta.
Há um grande problema em semáforos, o deadlock. Este ocorre quando um processo adquiri o semáforo, mas ocorre uma falha no meio da execução. Com isso o semáforo fica preso.
Para não ocorrer isto, temos que utilizar [...]]]></description>
			<content:encoded><![CDATA[<p>Semáforo é bastante utilizado para controle de concorrência dos processos de um sistema, porém muitas pessoas utilizam de forma incorreta.</p>
<p>Há um grande problema em semáforos, o deadlock. Este ocorre quando um processo adquiri o semáforo, mas ocorre uma falha no meio da execução. Com isso o semáforo fica preso.</p>
<p><span id="more-444"></span>Para não ocorrer isto, temos que utilizar monitoramento de exceções (TRY-CATCH). Veja a  imagem abaixo:</p>
<p><a href="http://www.makerportal.com.br/wp-content/uploads/2010/05/Tratamento-de-Exceção-com-uso-de-semáforo.jpg" rel="shadowbox[post-444];player=img;"><img class="alignnone size-medium wp-image-445" title="Tratamento de Exceção com uso de semáforo" src="http://www.makerportal.com.br/wp-content/uploads/2010/05/Tratamento-de-Exceção-com-uso-de-semáforo-277x300.jpg" alt="Tratamento de Exceção com uso de semáforo" width="277" height="300" /></a></p>
<p>Pronto, caso ocorra uma falha no subfluxo &#8220;Fluxo a ser processado&#8221;, a execução será pulada automaticamente para o processamento &#8220;Capturar exceção (CATCH)&#8221; e tudo que estiver após deste processamento será processado como FINALLY. Com isso o semáforo sempre será liberado.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makerportal.com.br/utilizando-semaforo-corretamente/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Funções de Twitter para o Maker!</title>
		<link>http://www.makerportal.com.br/funcoes-de-twitter-para-o-maker/</link>
		<comments>http://www.makerportal.com.br/funcoes-de-twitter-para-o-maker/#comments</comments>
		<pubDate>Mon, 10 May 2010 23:03:49 +0000</pubDate>
		<dc:creator>Márcio Saeger</dc:creator>
				<category><![CDATA[Funções API]]></category>
		<category><![CDATA[Objetos Externos]]></category>
		<category><![CDATA[Webrun]]></category>

		<guid isPermaLink="false">http://www.makerportal.com.br/?p=364</guid>
		<description><![CDATA[Até pouco tempo atrás, olhava o Twitter como &#8220;mais uma midia social dos ociosos&#8221;. Entretanto, com tantas informações importantes a todo momento surgindo do twitter, realmente mudei um pouco a percepção quanto a esta mídia social.
Pensando nisso, resolvi então fazer algumas funçõeszinhas do Twitter para o Maker !  
Existem disponíveis na internet, algumas API&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Até pouco tempo atrás, olhava o Twitter como &#8220;mais uma midia social dos ociosos&#8221;. Entretanto, com tantas informações importantes a todo momento surgindo do twitter, realmente mudei um pouco a percepção quanto a esta mídia social.<br />
Pensando nisso, resolvi então fazer algumas funçõeszinhas do Twitter para o Maker ! <img src='http://www.makerportal.com.br/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p><span id="more-364"></span>Existem disponíveis na internet, algumas API&#8217;s do Twitter para várias linguagens, entre elas um pacote Java.<br />
O pacote utilizado por mim chama-se jtwitter open source e criada pela <a title="Winterwell" href="http://www.winterwell.com/software/jtwitter.php" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.winterwell.com/software/jtwitter.php?referer=');">winterwell</a>. Se encontra na versão 1.3 neste momento em que escrevo.<br />
Dentre as existentes (encontrei 4) escolhi o JTwitter por ser open source e muito simples de utilizar.</p>
<p>Foram criadas 3 funções:<br />
Twitter &#8211; Abrir Conexão<br />
Twitter &#8211; Atualizar Status<br />
Twitter &#8211; Obter mensagens</p>
<p>Basicamente, com as 3 funções você pode enviar uma mensagem (ou tweet como é chamado) e verificar as últimas 20 mensagems nas últimas 24 horas da sua página do twitter.<br />
As funções são bem simples de se utilizar. Só ler a pequena documentação que fiz em cada uma delas (Basicamente funciona como as funções de arquivo, onde se guarda a referencia do arquivo aberto para posteriormente utiliza-la para enviar ou receber mensagens).</p>
<p>Para utiliza-las, além de importar no Maker as funções, deve-se incluir o pacote jar da biblioteca do jtwitter no diretório: &#8220;&#8230;\Softwell Solutions\Maker 2.5\Webrun 2\tomcat\webapps\webrun\web-inf\libs&#8221;<br />
Após inserir o pacote jar neste diretório, reinicie o servidor de aplicações 2x.</p>
<p><a href="http://www.makerportal.com.br/wp-content/uploads/2010/04/Twitter_MakerPortal.png" rel="shadowbox[post-364];player=img;"><img class="aligncenter size-full wp-image-365" title="Twitter no Maker" src="http://www.makerportal.com.br/wp-content/uploads/2010/04/Twitter_MakerPortal.png" alt="Twitter no Maker" width="264" height="76" /></a></p>
<p>Pronto! Basta utilizar as funções agora em seu fluxo!<br />
Segundo as &#8220;regras&#8221; da biblioteca gratuita, a única exigencia deles é expor o autor (feito acima). Se vocês observarem, a cada mensagem enviada, fica abaixo o &#8220;via JTwitter&#8221;. Caso queiram, basta editar o arquivo JTwitter.java que se encontra dentro do pacote e editar este trecho do código.</p>
<p>Downloads:<br />
<a title="Pacote Jar" href="http://www.makerportal.com.br/downloads/jtwitter.jar" target="_blank">Pacote JAR (versão 1.3)</a><br />
<a title="Funções Twitter" href="http://www.makerportal.com.br/downloads/Twitter_MakerPortal_0_3.rar" target="_blank">Funções Twitter</a></p>
<p>Simples e fácil, não?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makerportal.com.br/funcoes-de-twitter-para-o-maker/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Como abrir consulta num banco de dados paradox</title>
		<link>http://www.makerportal.com.br/como-abrir-consulta-num-banco-de-dados-paradox/</link>
		<comments>http://www.makerportal.com.br/como-abrir-consulta-num-banco-de-dados-paradox/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 13:25:48 +0000</pubDate>
		<dc:creator>Alex Santos</dc:creator>
				<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[Exemplos]]></category>
		<category><![CDATA[Funções API]]></category>
		<category><![CDATA[Paradox]]></category>
		<category><![CDATA[bancodedados]]></category>
		<category><![CDATA[conexao]]></category>
		<category><![CDATA[database]]></category>

		<guid isPermaLink="false">http://www.makerportal.com.br/?p=432</guid>
		<description><![CDATA[Este exemplo abre uma conexão com o sistema de arquivos Paradox, para a partir da mesma, o usuário poder executar
comandos ou seleções.

Este exemplo contém os seguintes arquivos:
Abrir Consulta Paradox.frz &#8211;&#62; Contém a função &#8220;Abrir conexão Paradox&#8221; e um exemplo
DadosParadox.rar &#8211;&#62; Umas tabelas em paradox . Ponha em C:\DadosParadox
paradox.jar &#8211;&#62; biblioteca que deverá ser adicionada ao [...]]]></description>
			<content:encoded><![CDATA[<p>Este exemplo abre uma conexão com o sistema de arquivos Paradox, para a partir da mesma, o usuário poder executar<br />
comandos ou seleções.</p>
<p><span id="more-432"></span><br />
Este exemplo contém os seguintes arquivos:</p>
<p>Abrir Consulta Paradox.frz &#8211;&gt; Contém a função &#8220;Abrir conexão Paradox&#8221; e um exemplo<br />
DadosParadox.rar &#8211;&gt; Umas tabelas em paradox . Ponha em C:\DadosParadox<br />
paradox.jar &#8211;&gt; biblioteca que deverá ser adicionada ao webrun. Há duas alternativas para isso:<br />
1) remove dbf_jdbc30.jar e adiciona paradox.jar em &lt;webrun&gt;\WEB-INF\lib (reinicia o webrun)<br />
2) ou adiciona paradox.jar em &lt;sistemas&gt;\Maker.Commons\WEB-INF\lib\ e cria um arquivo zerado DBF_JDBC30.jar nesse mesmo diretório. (reinicia o webrun duas vezes)</p>
<p>Observações:</p>
<p>1) As bibliotecas de conexão a paradox (paradox.jar) e dbf (dbf_jdbc30.jar) não podem estar contidas ao mesmo tempo<br />
no webrun. Para usar esta função, a biblioteca dbf_jdbc30.jar deve ser removida do webrun.<br />
2) Deve ser usada a função &#8220;Abrir Consulta Navegável&#8221; no lugar da função &#8220;Abrir Consulta&#8221;</p>
<p>Imagem do fluxo:</p>
<p><a href="http://www.makerportal.com.br/wp-content/uploads/2010/04/Exemplo-Paradox.JPG" rel="shadowbox[post-432];player=img;"><img class="alignnone size-medium wp-image-433" title="Exemplo Paradox" src="http://www.makerportal.com.br/wp-content/uploads/2010/04/Exemplo-Paradox-300x235.jpg" alt="Exemplo Paradox" width="300" height="235" /></a></p>
<p><a title="Exemplo Paradox" href="http://www.makerportal.com.br/downloads/abrirconsultaparadox.zip" target="_blank">Clique aqui </a>para efetuar um download do exemplo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makerportal.com.br/como-abrir-consulta-num-banco-de-dados-paradox/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Retorno do Fluxo Web pode ser personalizado</title>
		<link>http://www.makerportal.com.br/retorno-do-fluxo-web-pode-ser-personalizado/</link>
		<comments>http://www.makerportal.com.br/retorno-do-fluxo-web-pode-ser-personalizado/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 19:16:34 +0000</pubDate>
		<dc:creator>Márcio Saeger</dc:creator>
				<category><![CDATA[Funções API]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[fluxo_web]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://www.makerportal.com.br/?p=344</guid>
		<description><![CDATA[&#8220;Fluxo WEB&#8221; é uma funcionalidade disponível a partir do Maker 2.5 que tem como objetivo a chamada de fluxos por métodos posts.No manual da Softwell há inclusive exemplos de como utilizar o fluxo web. Entretanto, existe um pequeno grande detalhe:
É possível no retorno do fluxo (objeto FIM) retornarmos qualquer código html (ou javascript por exemplo).
Alguns [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;Fluxo WEB&#8221; é uma funcionalidade disponível a partir do Maker 2.5 que tem como objetivo a chamada de fluxos por métodos posts.<span id="more-344"></span>No manual da Softwell há inclusive exemplos de como utilizar o <a title="Fluxo WEB - Softwell Manual" href="http://suporte.softwell.com.br/maker/manual/dicas_e_truques/como_acessar_um_fluxo_web.htm" target="_blank" onclick="pageTracker._trackPageview('/outgoing/suporte.softwell.com.br/maker/manual/dicas_e_truques/como_acessar_um_fluxo_web.htm?referer=');">fluxo web</a>. Entretanto, existe um pequeno grande detalhe:<br />
É possível no retorno do fluxo (objeto FIM) retornarmos qualquer código html (ou javascript por exemplo).</p>
<p>Alguns necessitam redirecionar para uma página específica que depende do retorno do fluxo. Como fazer? No objeto fim, coloque o retorno:<br />
&lt;script language=&#8221;JavaScript&#8221;&gt;window.location.href=&#8221;http://www.google.com&#8221;&lt;/script&gt;<br />
Neste caso, retornaria para a página do google. Observe que dentro da tag script, poderia ter sido utilizado qualquer comando javascript, como alert etc.</p>
<p>Também é possível retornar uma página html inteira, com um formulário, layout e tudo mais. Basta no objeto &#8220;FIM&#8221; incluir todo o código da página html:</p>
<p>&lt;html&gt;</p>
<p>&lt;head&gt;&lt;/head&gt;<br />
&lt;body&gt;Página HTML!&lt;/body&gt;<br />
&lt;/html&gt;</p>
<p>Só usar a criatividade!</p>
<p>Dúvidas?! Veja o nosso <a title="Fórum Maker Portal" href="http://forum.makerportal.com.br" target="_blank" onclick="pageTracker._trackPageview('/outgoing/forum.makerportal.com.br?referer=');">fórum</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makerportal.com.br/retorno-do-fluxo-web-pode-ser-personalizado/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Decrementando dia/mês/ano de uma data no fluxo</title>
		<link>http://www.makerportal.com.br/decrementando-diamesano-de-uma-data-no-fluxo/</link>
		<comments>http://www.makerportal.com.br/decrementando-diamesano-de-uma-data-no-fluxo/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 22:15:06 +0000</pubDate>
		<dc:creator>Márcio Saeger</dc:creator>
				<category><![CDATA[Exemplos]]></category>
		<category><![CDATA[Funções API]]></category>
		<category><![CDATA[Maker]]></category>
		<category><![CDATA[ano]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[decrementar]]></category>
		<category><![CDATA[dia]]></category>
		<category><![CDATA[fluxo]]></category>
		<category><![CDATA[mes]]></category>

		<guid isPermaLink="false">http://www.makerportal.com.br/?p=203</guid>
		<description><![CDATA[Esta semana recebi algumas dúvidas e observei na comunidade Maker que alguns buscam por uma informação relativamente fácil mas que acaba atrapalhando um pouco: &#8220;Tenho uma data e gostaria de decrementar um determinado número de dias. Olhei as funções do Maker e observei que só tem função para Incrementar! O que faço?&#8221;.

Apesar de simples, muita [...]]]></description>
			<content:encoded><![CDATA[<p>Esta semana recebi algumas dúvidas e observei na comunidade Maker que alguns buscam por uma informação relativamente fácil mas que acaba atrapalhando um pouco: &#8220;Tenho uma data e gostaria de decrementar um determinado número de dias. Olhei as funções do Maker e observei que só tem função para Incrementar! O que faço?&#8221;.</p>
<p><span id="more-203"></span></p>
<p>Apesar de simples, muita gente ainda tem dificuldades de como realizar este tipo de operação. Em se tratando de banco de dados, uma das melhores (e mais rápida) maneira de resolver, seria no proprio select. Entretanto, o sistema iria começar a ficar &#8220;particular&#8221; para um banco de dados específico. Então geralmente partimos pro fluxograma.<br />
E lá nos deparamos: Não há função para decrementar!</p>
<p>Como resolver?</p>
<p>Simples! Na função (Incrementar dia/mês/ano), passamos a data e um valor que será incrementado na data passada como primeiro parâmetro. O valor será <strong>somado</strong> na data. Para decrementar, basta passarmos um valor negativo!</p>
<div id="attachment_204" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.makerportal.com.br/wp-content/uploads/2010/01/decrementa_dia.png" rel="shadowbox[post-203];player=img;"><img class="size-medium wp-image-204" title="Decrementando dia" src="http://www.makerportal.com.br/wp-content/uploads/2010/01/decrementa_dia-300x289.png" alt="Passando um valor negativo como parâmetro de entrada para a função." width="300" height="289" /></a><p class="wp-caption-text">Passando um valor negativo como parâmetro de entrada para a função.</p></div>
<p>A função irá fazer: data=data+valor.<br />
Se valor for igual a -7 por exemplo, ficará: data=data+-7, o que acabará subtraindo o dia/mês ou ano.</p>
<p>Dúvidas!? Utilize o nosso <a title="Fórum Maker Portal" href="http://forum.makerportal.com.br/viewtopic.php?f=14&amp;t=6&amp;sid=0a47a667212c6b44d8f59c1b6ead587d" target="_blank" onclick="pageTracker._trackPageview('/outgoing/forum.makerportal.com.br/viewtopic.php?f=14_amp_t=6_amp_sid=0a47a667212c6b44d8f59c1b6ead587d&amp;referer=');"><strong>forum</strong></a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makerportal.com.br/decrementando-diamesano-de-uma-data-no-fluxo/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Exemplo de utilização da função “Traduzir”</title>
		<link>http://www.makerportal.com.br/exemplo-de-utilizacao-da-funcao-%e2%80%9ctraduzir%e2%80%9d/</link>
		<comments>http://www.makerportal.com.br/exemplo-de-utilizacao-da-funcao-%e2%80%9ctraduzir%e2%80%9d/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 14:07:23 +0000</pubDate>
		<dc:creator>Alex Santos</dc:creator>
				<category><![CDATA[Funções API]]></category>
		<category><![CDATA[Maker]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[Tradução]]></category>
		<category><![CDATA[Traduzir]]></category>

		<guid isPermaLink="false">http://www.makerportal.com.br/?p=150</guid>
		<description><![CDATA[Esta função internacionaliza os conteúdos internos dos sistemas, como mensagens de alerta, mensagens de erro e etc.
Como funciona? Vamos criar um fluxo para executar a função “Traduzir”:

Passo 01: Selecione a função “Traduzir” no montador de expressão do componente processamento
Traduz um texto para um determinado idioma.
Parâmetros:
1. Texto a ser traduzido
2. Lista de parâmetros do texto
Retorno: Retorna o [...]]]></description>
			<content:encoded><![CDATA[<p style="TEXT-ALIGN: left; MARGIN-BOTTOM: 0cm">Esta função internacionaliza os conteúdos internos dos sistemas, como mensagens de alerta, mensagens de erro e etc.</p>
<p style="MARGIN-BOTTOM: 0cm">Como funciona? <span id="more-150"></span>Vamos criar um fluxo para executar a função “Traduzir”:</p>
<p style="TEXT-ALIGN: center; MARGIN-BOTTOM: 0cm"><img class="aligncenter" title="Traduzir" src="http://www.makerportal.com.br/wp-content/uploads/2009/11/Traduzir.PNG" alt="Traduzir" width="156" height="170" /></p>
<p style="TEXT-ALIGN: left; MARGIN-BOTTOM: 0cm">Passo 01: Selecione a função “Traduzir” no montador de expressão do componente processamento</p>
<p style="MARGIN-BOTTOM: 0cm">Traduz um texto para um determinado idioma.</p>
<p style="MARGIN-BOTTOM: 0cm">Parâmetros:</p>
<p style="MARGIN-BOTTOM: 0cm">1. Texto a ser traduzido</p>
<p style="MARGIN-BOTTOM: 0cm">2. Lista de parâmetros do texto</p>
<p style="MARGIN-BOTTOM: 0cm">Retorno: Retorna o texto traduzido para o idioma definido no parâmetro</p>
<p style="MARGIN-BOTTOM: 0cm">Observações:</p>
<p style="MARGIN-BOTTOM: 0cm">1. Quando utilizada na camada servidor, a função irá buscar o texto passado na tabela de traduções. Se for utilizada na camada cliente, o texto já tem que estar determinado no fluxo para que ele possa buscar na tabela antes da chamada da função.</p>
<p style="MARGIN-BOTTOM: 0cm">2. O segundo parâmetro é para definir nomes próprios que não possuem tradução.</p>
<p style="MARGIN-BOTTOM: 0cm"><strong>Exemplo:</strong></p>
<p style="MARGIN-BOTTOM: 0cm">Se definirmos o texto:</p>
<p style="MARGIN-BOTTOM: 0cm"><strong>P1. Meu nome é {0}</strong></p>
<p style="MARGIN-BOTTOM: 0cm">No Segundo parâmetro devemos criar uma lista com os valores correspondentes a posição no texto.</p>
<p style="MARGIN-BOTTOM: 0cm"><strong>P2. Lista [Alex Santos]</strong></p>
<p style="MARGIN-BOTTOM: 0cm">Desta forma, a função irá retornar:  <strong>My name is Alex Santos</strong></p>
<p style="text-align: center; margin-bottom: 0cm;"><img class="aligncenter" title="Traduzir com os parâmetros" src="http://www.makerportal.com.br/wp-content/uploads/2009/11/Traduzir-com-os-parâmetros.PNG" alt="Traduzir com os parâmetros" width="327" height="239" /></p>
<p style="MARGIN-BOTTOM: 0cm">Atribua o retorno para uma variável do tipo letras e utilize o componente interação para exibir o conteúdo da variável na tela.</p>
<p style="MARGIN-BOTTOM: 0cm">Antes de visualizar o resultado, é necessário colocar no Tradutor do Maker o texto a ser traduzido como  ilustrado na imagem abaixo:</p>
<p style="TEXT-ALIGN: center; MARGIN-BOTTOM: 0cm"><img title="Tradutor" src="http://www.makerportal.com.br/wp-content/uploads/2009/11/Tradutor.PNG" alt="Tradutor" width="874" height="555" /></p>
<p style="MARGIN-BOTTOM: 0cm">Clique em “Novo” e insira o texto a ser traduzido na coluna “Texto Original” e a tradução do texto na coluna “Texto Traduzido” como mostra a imagem abaixo:</p>
<p style="text-align: center; margin-bottom: 0cm;"><img title="Tradutor 02" src="http://www.makerportal.com.br/wp-content/uploads/2009/11/Tradutor-02.PNG" alt="Tradutor 02" width="765" height="454" /></p>
<p style="MARGIN-BOTTOM: 0cm">
<p style="MARGIN-BOTTOM: 0cm">Clique no botão onde está circulado de vermelho na imagem acima para confirmar a inclusão.</p>
<p style="MARGIN-BOTTOM: 0cm">
<p style="MARGIN-BOTTOM: 0cm">Pronto, feito isto <span style="text-decoration: underline;"><strong>reinicie o sistema</strong></span> e a partir de agora quando o seu sistema for acessado com webrun internacionalizado paro o inglês o conteúdo da mensagem contido no fluxo do exemplo acima será internacionalizado também e caso o usuário acesse o webrun em português a mensagem continuará em português.</p>
<p>Para internacionalizar o webrun basta clicar nas devidas bandeirinhas no painel de entrada do sistema:</p>
<p style="TEXT-ALIGN: center; MARGIN-BOTTOM: 0cm"><img class="aligncenter" title="Webrun internacionalização" src="http://www.makerportal.com.br/wp-content/uploads/2009/11/Webrun-internacionalização.PNG" alt="Webrun internacionalização" width="370" height="241" /></p>
<p style="MARGIN-BOTTOM: 0cm">
<p style="MARGIN-BOTTOM: 0cm">Soube que recentemente houve uma correção para função &#8220;Traduzir&#8221;, com isso <a href="http://www.makerportal.com.br/downloads/funcao_traduzir.zip" target="_blank">clique aqui</a> para baixa a função utilizada no exemplo acima</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makerportal.com.br/exemplo-de-utilizacao-da-funcao-%e2%80%9ctraduzir%e2%80%9d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como executar linha de comando na máquina cliente</title>
		<link>http://www.makerportal.com.br/como-executar-linha-de-comando-na-maquina-cliente/</link>
		<comments>http://www.makerportal.com.br/como-executar-linha-de-comando-na-maquina-cliente/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 03:00:26 +0000</pubDate>
		<dc:creator>Alex Santos</dc:creator>
				<category><![CDATA[Funções API]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Applet]]></category>
		<category><![CDATA[executar linha de comando]]></category>

		<guid isPermaLink="false">http://www.makerportal.com.br/?p=141</guid>
		<description><![CDATA[Sabemos que este é um problema que nós desenvolvedores web encontramos no dia a dia, pois para executar algo na máquina do cliente somos barrados por problemas de permissões.
Como solucionar este problema?
Como solução, foi criada uma função que interage com um applet que tem a funcionalidade de executar um comando na máquina cliente.
Para executar a [...]]]></description>
			<content:encoded><![CDATA[<p style="MARGIN-BOTTOM: 0cm">Sabemos que este é um problema que nós desenvolvedores web encontramos no dia a dia, pois para executar algo na máquina do cliente somos barrados por problemas de permissões.</p>
<p style="MARGIN-BOTTOM: 0cm">Como solucionar este problema?</p>
<p style="MARGIN-BOTTOM: 0cm"><span id="more-141"></span>Como solução, foi criada uma função que interage com um applet que tem a funcionalidade de executar um comando na máquina cliente.</p>
<p style="MARGIN-BOTTOM: 0cm">Para executar a função é necessário seguir os seguintes passos:</p>
<p>1- Copiar os arquivos &#8220;HTMLExecuteCommandApplet.html&#8221; e &#8220;ExecCMD.jar&#8221; para a pasta ${webrun}\apps<br />
2- Importar a função através do arquivo &#8220;ExecutarLinhaDeComandoNaMaquinaDoCliente.FRZ&#8221;<br />
3- Será necessário que o cliente tenha instalado a máquina virtual java.<br />
4- Será necessário que o applet seja <a href="http://www.das.ufsc.br/jacoweb/restrito/documentos/assinatura/index.htm" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.das.ufsc.br/jacoweb/restrito/documentos/assinatura/index.htm?referer=');">assinado</a> ou que o cliente dê permissão para que um applet possa executar comandos.</p>
<p style="MARGIN-BOTTOM: 0cm">Observação: Caso a escolha seja permitir que um applet tenha permissão de acesso, pode-se incluir no arquivo &#8220;${JRE_HOME}\lib\security\java.policy&#8221; a seguinte linhas:</p>
<p>grant {<br />
permission java.security.AllPermission;<br />
};</p>
<p>Insira a linha acima na parte // default permissions granted to all domains do arquivo <em>java.policy</em></p>
<p style="MARGIN-BOTTOM: 0cm">Para testar se realmente está funcionando, crie um fluxo para executar a função &#8220;Executar linha de comando na máquina cliente&#8221;</p>
<p style="MARGIN-BOTTOM: 0cm">Passe como parâmetro para a função o comando &#8221;calc&#8221;, este comando abrirá a calculadora na máquina do cliente.</p>
<p style="TEXT-ALIGN: center; MARGIN-BOTTOM: 0cm"><img class="size-full wp-image-143 aligncenter" title="Executar linha de comando na máquina cliente" src="http://www.makerportal.com.br/wp-content/uploads/2009/11/Executar-linha-de-comando-na-máquina-cliente.PNG" alt="Executar linha de comando na máquina cliente" width="88" height="234" /></p>
<p style="MARGIN-BOTTOM: 0cm">Clique <a href="http://www.makerportal.com.br/downloads/Executar_linha_de_comando_na_maquina_cliente.zip" target="_blank">aqui</a> para fazer o download dos arquivos listados abaixo:</p>
<p style="MARGIN-BOTTOM: 0cm">&#8220;HTMLExecuteCommandApplet.html&#8221; = Html responsável por invocar o applet<br />
&#8220;ExecCMD.jar&#8221; = Contém os arquivos do applet<br />
&#8220;ExecutarLinhaDeComandoNaMaquinaDoCliente.FRZ&#8221; = Função para ser exportada para o maker<br />
&#8220;HTMLExecuteCommandApplet.java&#8221; = Código fonte do Applet</p>
<p style="MARGIN-BOTTOM: 0cm"><em>Esta solução foi desenvolvida por Alan Moraes</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.makerportal.com.br/como-executar-linha-de-comando-na-maquina-cliente/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Como verificar a versão da API e como altera-la</title>
		<link>http://www.makerportal.com.br/como-verificar-a-versao-da-api-e-como-altera-la/</link>
		<comments>http://www.makerportal.com.br/como-verificar-a-versao-da-api-e-como-altera-la/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 23:18:37 +0000</pubDate>
		<dc:creator>Márcio Saeger</dc:creator>
				<category><![CDATA[Funções API]]></category>
		<category><![CDATA[Maker]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[resources]]></category>

		<guid isPermaLink="false">http://www.makerportal.com.br/?p=103</guid>
		<description><![CDATA[Com as recentes atualizações da Softwell, vimos a atualização frequente da API. Com o lançamento da versão 1.1.4, não houveram mais atualizações. Nos últimos 2 meses foi disponibilizado no atualizador automático as versões 1.1.5, 1.1.6 e 1.1.8. Uma atualização frequente nas funções tem o seu lado bom e ruim: Correções e novas implementações sempre são [...]]]></description>
			<content:encoded><![CDATA[<p>Com as recentes atualizações da Softwell, vimos a atualização frequente da API. Com o lançamento da versão 1.1.4, não houveram mais atualizações. Nos últimos 2 meses foi disponibilizado no atualizador automático as versões 1.1.5, 1.1.6 e 1.1.8. Uma atualização frequente nas funções tem o seu lado bom e ruim: Correções e novas implementações sempre são bem-vindas entretanto, com elas surgem os erros nos nossos sistemas já existentes e acaba atrapalhando o desenvolvimento e homologação do sistema.</p>
<p><span id="more-103"></span></p>
<div id="attachment_104" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.makerportal.com.br/wp-content/uploads/2009/11/importando.png" rel="shadowbox[post-103];player=img;"><img class="size-medium wp-image-104" title="importando" src="http://www.makerportal.com.br/wp-content/uploads/2009/11/importando-300x122.png" alt="Importanto as Funções" width="300" height="122" /></a><p class="wp-caption-text">Importanto as Funções</p></div>
<p>Com esse excesso de atualizações de funções, evito ao máximo atualizar a API afim de evitar problemas nos meus sistemas, uma vez que o mesmo está desenvolvido baseado em como as funções foram concebidas. Para verificar qual a versão da sua API, basta um simples select na tabela FR_PROPRIEDADE. Nela existe uma propriedade de nome &#8220;CurrentAPIVersion&#8221;.</p>
<div id="attachment_105" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.makerportal.com.br/wp-content/uploads/2009/11/executor_sql.png" rel="shadowbox[post-103];player=img;"><img class="size-medium wp-image-105" title="executor_sql" src="http://www.makerportal.com.br/wp-content/uploads/2009/11/executor_sql-300x237.png" alt="Comando SQL para verificar qual a versão da API utilizada no sistema" width="300" height="237" /></a><p class="wp-caption-text">Comando SQL para verificar qual a versão da API utilizada no sistema</p></div>
<p>Observe que neste sistema específico, a versão que está sendo utilizada é a 1.1.8.</p>
<p>Um problema que pode-se ocorrer em sistemas manipulado por mais de 1 pessoa &#8211; uma fabrica de software por exemplo &#8211; é o de importação de funções de forma involuntária. Imagine a situação: Você está desenvolvendo um sistema a pelo menos 3 meses e decide adicionar uma pessoa nova a sua equipe de desenvolvimento. Como essa pessoa é novata e não conhece como a ferramenta funciona, durante o desenvolvimento dela na ferramenta, possívelmente ao acessar o sistema e perguntar se deseja atualizar a versão da API para uma mais nova ela clicará em SIM !</p>
<p>O problema não está no momento que ele/ela importar as funções e sim algumas semanas depois quando você verificar que uma tela que estava funcionando a 2 meses atrás e parou de funcionar &#8220;DO NADA&#8221;. Então, como evitar este tipo de problema?</p>
<p>1) Conversar com os funcionários e ter um bom treinamento antes de aplicar a mão na massa sempre é bem-vindo.<br />
2) Restringir permissões a nível de banco de dados a alterações de alguma entidade.<br />
3) <strong>&#8220;Desabilitar&#8221; o questionamento por novas funções.</strong></p>
<p>Particularmente prefiro a terceira opção por ser simples e rápida. Basta fazer um update no campo pro_valor para um valor &#8220;9.9.9&#8243; por exemplo. Desta forma, mesmo que exista uma versão 2.0 da API de funções (o que deve demorar a ocorrer acredito), não será perguntado a nenhum Maker (IDE), pois a versão do sistema está definida como 9.9.9<br />
Desta forma, as funções estariam mais &#8220;seguras&#8221;.</p>
<p>Comando SQL para efetuar o update:</p>
<p>UPDATE fr_propriedade SET<br />
pro_valor = &#8216;9.9.9&#8242;<br />
WHERE (pro_nome = &#8216;CurrentAPIVersion&#8217;)</p>
<p><strong>Atenção:</strong><br />
Se você obteve uma versão da API por download que não tenha sido o atualizador automático, observe que, o update na tabela FR_PROPRIEDADE ocorre de forma automática apenas se o arquivo frz estiver na pasta resource junto com as demais versões da API.</p>
<div id="attachment_106" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.makerportal.com.br/wp-content/uploads/2009/11/pasta_resources.png" rel="shadowbox[post-103];player=img;"><img class="size-medium wp-image-106" title="pasta_resources" src="http://www.makerportal.com.br/wp-content/uploads/2009/11/pasta_resources-300x224.png" alt="Pasta Resources do Maker" width="300" height="224" /></a><p class="wp-caption-text">Pasta Resources do Maker</p></div>
<p>Fazendo a importação de forma manual não é efetuada a atualização na tabela FR_PROPRIEDADE fazendo com que o Maker &#8220;pense&#8221; que está utilizando uma versão inferior a utilizada por você.</p>
<p><strong>Gostaria de continuar discutindo um pouco mais sobre este assunto ou tirar dúvidas? Acesse o <a title="MAKERPORTAL.COM.BR" href="http://forum.makerportal.com.br/viewtopic.php?f=14&amp;t=7&amp;sid=02ba0136a49f3ea269eb9c26e8c77819" target="_blank" onclick="pageTracker._trackPageview('/outgoing/forum.makerportal.com.br/viewtopic.php?f=14_amp_t=7_amp_sid=02ba0136a49f3ea269eb9c26e8c77819&amp;referer=');">tópico</a> em nosso forum !</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.makerportal.com.br/como-verificar-a-versao-da-api-e-como-altera-la/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
