<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Access Violation - Perguntas recentes com a tag btl</title>
<link>https://desenv.benner.com.br/accessviolation/?qa=tag/btl</link>
<description>Powered by Question2Answer</description>
<item>
<title>Como alterar o valor do progresso de um processo BTL?</title>
<link>https://desenv.benner.com.br/accessviolation/?qa=1231/como-alterar-o-valor-do-progresso-de-um-processo-btl</link>
<description>Tenho um BusinessComponent que executa um procresso de importação de arquivo e é executado em BTL.&lt;br /&gt;
&lt;br /&gt;
Como faço para, durante a execução desta tarefa, alterar o percentual do progresso da notificação que é mostrada ao usuário?&lt;br /&gt;
&lt;br /&gt;
Hoje, só chamando o BTL, ele vai de 0% para 100% direto.</description>
<guid isPermaLink="true">https://desenv.benner.com.br/accessviolation/?qa=1231/como-alterar-o-valor-do-progresso-de-um-processo-btl</guid>
<pubDate>Fri, 06 Dec 2019 13:00:49 +0000</pubDate>
</item>
<item>
<title>Politica de Retry com BTL</title>
<link>https://desenv.benner.com.br/accessviolation/?qa=1129/politica-de-retry-com-btl</link>
<description>Se ao processar uma mensagem do BTL as informações necessárias ainda não estão disponíveis, ou causam falhas do tipo &amp;quot;Registro Alterado Por Outro Usuario&amp;quot;, existe algum mecanismo de Retry / Wait Retry?&lt;br /&gt;
&lt;br /&gt;
Pensei em usar o Polly dentro do Run(..), porém um WaitAndRetry deixará meu Worker &amp;quot;ocupado&amp;quot; desnecessáriamente. &lt;br /&gt;
&lt;br /&gt;
Tentei usar mecanismos de Async e Await, mas tive alguns contrapontos com &amp;quot;Transações&amp;quot; e consumo da fila do BTL.&lt;br /&gt;
&lt;br /&gt;
Qual a melhor abordagem para um WaitAndRetry com BTL?</description>
<guid isPermaLink="true">https://desenv.benner.com.br/accessviolation/?qa=1129/politica-de-retry-com-btl</guid>
<pubDate>Fri, 08 Nov 2019 15:06:32 +0000</pubDate>
</item>
<item>
<title>Tem como disparar um BTL apenas se a transação se completar?</title>
<link>https://desenv.benner.com.br/accessviolation/?qa=1128/tem-como-disparar-um-btl-apenas-se-a-transacao-se-completar</link>
<description>No meu cenário, estou disparando um BTL para processamento assincrono de um registro que acabei de inserir.&lt;br /&gt;
&lt;br /&gt;
O que acontece, é que as vezes o BTL começa a processar antes que a transação (de onde foi disparado) tenha finalizado.&lt;br /&gt;
&lt;br /&gt;
Logo, o BTL falha pois o registro ainda não existe.&lt;br /&gt;
&lt;br /&gt;
Neste sentido, pergunto se na tecnologia tem alguma forma de disparar o BTL apenas se o contexto transacional for &amp;quot;comitado&amp;quot;?</description>
<guid isPermaLink="true">https://desenv.benner.com.br/accessviolation/?qa=1128/tem-como-disparar-um-btl-apenas-se-a-transacao-se-completar</guid>
<pubDate>Fri, 08 Nov 2019 15:02:57 +0000</pubDate>
</item>
<item>
<title>Dentro de uma DLL Delphi que foi executada pelo BusinessTask.Factory.NewDllTask() consigo pegar o handle do processo?</title>
<link>https://desenv.benner.com.br/accessviolation/?qa=797/executada-businesstask-factory-newdlltask-consigo-processo</link>
<description>E dentro de uma DLL Delphi que foi executada pelo BusinessTask.Factory.NewDllTask() consigo pegar o handle do processo também?</description>
<guid isPermaLink="true">https://desenv.benner.com.br/accessviolation/?qa=797/executada-businesstask-factory-newdlltask-consigo-processo</guid>
<pubDate>Fri, 23 Sep 2016 12:59:16 +0000</pubDate>
</item>
<item>
<title>Consigo saber qual o ProcessHandle que está sendo executado no BTL?</title>
<link>https://desenv.benner.com.br/accessviolation/?qa=793/consigo-saber-qual-processhandle-esta-sendo-executado-btl</link>
<description>No método Run do BusinesComponent que implementa IBusinessTaskAction, existe alguma forma de recuperar o ProcessHandle que está executando?&lt;br /&gt;
&lt;br /&gt;
No meu cenário eu estou enviando uma lista de handles.&lt;br /&gt;
&lt;br /&gt;
O Run irá avaliar esses handles sobre regras de negocios e irá gerar um tanque, depois irá consumir um WebService e alimentar o tanque com informações.&lt;br /&gt;
&lt;br /&gt;
Gostaria de na criação do tanque alimentar um campo com o ProcessHandle (Z_PROCESSOS). Mas como a criação acontece dentro do Run não tenho esse handle. Também não consigo passar esse handle como parametro para o Run, pois o Handle é gerado após o Start do processo BTL.</description>
<guid isPermaLink="true">https://desenv.benner.com.br/accessviolation/?qa=793/consigo-saber-qual-processhandle-esta-sendo-executado-btl</guid>
<pubDate>Fri, 23 Sep 2016 02:23:20 +0000</pubDate>
</item>
<item>
<title>A Função BSistema.SendMessage está disponível no BEF? É uma boa prática enviar mensagem para informar fim de processamento em BTL?</title>
<link>https://desenv.benner.com.br/accessviolation/?qa=786/bsistema-sendmessage-disponivel-informar-processamento</link>
<description>&lt;p&gt;São duas perguntas na verdade...&lt;/p&gt;

&lt;p&gt;A Função &lt;a rel=&quot;nofollow&quot; href=&quot;http://wiki.benner.com.br/wiki/index.php?title=BSistema.SendMessage&quot;&gt;BSistema.SendMessage&lt;/a&gt; está disponível no BEF?&lt;/p&gt;

&lt;p&gt;É uma boa prática enviar uma mensagem para o usuario afim de informar o fim de um processamento em BTL?&lt;/p&gt;</description>
<guid isPermaLink="true">https://desenv.benner.com.br/accessviolation/?qa=786/bsistema-sendmessage-disponivel-informar-processamento</guid>
<pubDate>Mon, 19 Sep 2016 18:38:45 +0000</pubDate>
</item>
<item>
<title>O formato .XLS não é suportado para a emissão de relatórios no BTL</title>
<link>https://desenv.benner.com.br/accessviolation/?qa=731/formato-xls-nao-suportado-para-emissao-de-relatorios-no-btl</link>
<description>&lt;p&gt;Tenho um relatório Stimulsoft que gera no formato .xls e ao emitir via BTL dá o seguinte erro: &quot;&lt;strong&gt;O formato .XLS não é suportado para a emissão de relatórios no BTL&lt;/strong&gt;&quot;.&lt;/p&gt;

&lt;p&gt;Por acaso existe algo sendo feito para que o formato .xls funcione pelo BTL?&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://desenv.benner.com.br/accessviolation/?qa=blob&amp;amp;qa_blobid=17811237492670733649&quot; style=&quot;height:204px; width:600px&quot;&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;line-height:1.6&quot;&gt;Formatos possíveis para relatórios:&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://desenv.benner.com.br/accessviolation/?qa=blob&amp;amp;qa_blobid=4151166938347224373&quot; style=&quot;height:158px; width:347px&quot;&gt;&lt;/p&gt;</description>
<guid isPermaLink="true">https://desenv.benner.com.br/accessviolation/?qa=731/formato-xls-nao-suportado-para-emissao-de-relatorios-no-btl</guid>
<pubDate>Thu, 03 Mar 2016 14:33:23 +0000</pubDate>
</item>
<item>
<title>Erro com BTL no 15.0 - Não é possível utilizar o dicionário Properties da entidade sem uma definição de entidade associada. Atribua uma definição a instância da entidade através da propriedade Definition.</title>
<link>https://desenv.benner.com.br/accessviolation/?qa=609/dicionario-properties-associada-propriedade-definition</link>
<description>&lt;p&gt;Ao executar um business component com o BTL tenho o erro abaixo:&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;br&gt;
INP-501: Erro ao executar tarefa de BusinessComponent &quot;Benner.Saude.Prestadores.FechamentoPreco, Benner.Saude.Prestadores.FechamentoPreco, Version=15.0.0.0, Culture=neutral, PublicKeyToken=null&quot;:&lt;br&gt;
Não é possível utilizar o dicionário Properties da entidade sem uma definição de entidade associada. Atribua uma definição a instância da entidade através da propriedade Definition.&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;br&gt;
O código de excução é o seguinte:&lt;br&gt;
&amp;nbsp;&lt;/p&gt;

&lt;pre class=&quot;brush:csharp;&quot;&gt;
public void BotaoProcessar(BusinessArgs args, SamFechamentoPreco samFechamentoPreco)
{
  if (samFechamentoPreco.Situacao == SamFechamentoPrecoSituacaoRadioItens.ItemAberto)
  {
    BusinessTask.Factory.NewComponentTask&amp;lt;FechamentoPreco&amp;gt;()
      .WithRequestValue(samFechamentoPreco)
      .Start();

    args.Message = &quot;Rotina Enviada para execução no servidor&quot;;
  }
  else
    args.Message = &quot;Não é possível processar a rotina não está Aberta&quot;;
}&lt;/pre&gt;

&lt;p&gt;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;br&gt;
Se alterar para chamada local do business component ele funciona sem problemas, exemplo:&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&amp;nbsp;&lt;/p&gt;

&lt;pre class=&quot;brush:csharp;&quot;&gt;
public void BotaoProcessar(BusinessArgs args, SamFechamentoPreco samFechamentoPreco)
{
    if (samFechamentoPreco.Situacao == SamFechamentoPrecoSituacaoRadioItens.ItemAberto)
    {
        var business = BusinessComponent.CreateInstance&amp;lt;FechamentoPreco&amp;gt;();

        business.Run(samFechamentoPreco);

    }
    else
        args.Message = &quot;Não é possível processar a rotina não está Aberta&quot;;
}&lt;/pre&gt;

&lt;p&gt;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;br&gt;
O código do business component é muito simples, segue abaixo:&lt;br&gt;
&amp;nbsp;&lt;/p&gt;

&lt;pre class=&quot;brush:csharp;&quot;&gt;
public class FechamentoPreco : BusinessComponent&amp;lt;FechamentoPreco&amp;gt;, IFechamentoPreco, IBusinessTaskAction&amp;lt;SamFechamentoPreco&amp;gt;
{
    public void Run(SamFechamentoPreco samFechamentoPreco)
    {
        samFechamentoPreco.Edit();
        samFechamentoPreco.Ocorrencias += Environment.NewLine + &quot;Data Atual: &quot; + DateTime.Now;
        samFechamentoPreco.Save();
    }
}&lt;/pre&gt;

&lt;p&gt;&lt;br&gt;
Já regerei o cache no Builder algumas vezes mas não adianta.&lt;/p&gt;</description>
<guid isPermaLink="true">https://desenv.benner.com.br/accessviolation/?qa=609/dicionario-properties-associada-propriedade-definition</guid>
<pubDate>Thu, 11 Jun 2015 02:41:40 +0000</pubDate>
</item>
</channel>
</rss>