Otimizando o desempenho de sua plataforma EIM

[ad_1]

O desempenho lento e inconsistente pode ser uma barreira para a adoção do usuário e obtenção dos resultados desejados para uma solução. Mesmo pequenas ineficiências podem aumentar, levando à redução da produtividade em toda a base de usuários.

Para obter o máximo da implantação do gerenciamento de informações corporativas (EIM), você deseja garantir que o desempenho seja ideal. Mas alguns problemas de desempenho podem ser bastante desafiadores para localizar, dadas todas as dependências e interações ponta a ponta. É aqui que seguir uma metodologia baseada em dados pode ajudar a identificar a causa raiz e a ação corretiva permanente certa. . Leia Mais

Transforme a experiência bancária para pequenas empresas

[ad_1]

Tempo de leitura: 10 minutos

Como consumidores, todos nós passamos por grandes mudanças nas expectativas – não somos mais leais às marcas, mas sim à melhor experiência do consumidor. Como resultado, os bancos de rua rapidamente mudaram de posição para oferecer novas experiências que rivalizam com as experiências de consumidor mais convenientes de empresas como Monzo, Starling Bank e Banco Atom.

Não são apenas os clientes de varejo com expectativas elevadas – há uma demanda crescente de pequenas e médias empresas (PMEs), que também merecem essas experiências conectadas. Esse surgimento de experiências simples e intuitivas foi denominado economia de conveniência. . Leia Mais

Estratégias de ciclo de vida de marketing de produtos de tecnologia

[ad_1]

Expanda seu negócio de TI / alta tecnologia aplicando as estratégias mais recentes do setor para marketing de produtos de tecnologia em todo o ciclo de vida do produto

O que é marketing de produto?

O marketing de produto descreve o gerenciamento de todos os processos envolvidos na colocação de um produto no mercado. Este campo de marketing envolve o trabalho com P&D, manufatura, logística, comunicação e vendas. Como sua função está intimamente ligada aos produtos em sua categoria, os profissionais de marketing de produto assumem a função de defender o cliente quando as decisões relacionadas ao produto são tomadas (posicionamento, lançamento, desenvolvimento, etc.). Neste blog, exploraremos o que torna o marketing de produtos de tecnologia diferente. . Leia Mais

Modernize seus aplicativos legados – OpenText Blogs

[ad_1]

Muitas organizações continuam a manter aplicativos e sistemas legados por motivos de conformidade e regulamentares. Mas eles acham caro e tecnicamente oneroso mantê-los. Embora eles possam arquivar aplicativos e sistemas antigos, o descomissionamento dos dados pode ser complexo.

Um ambiente de TI típico contém sistemas legados com muitos aplicativos e grandes volumes de dados. Isso pode incluir aplicativos que foram herdados por meio de fusões ou aquisições, aplicativos que foram substituídos por novas soluções ou aplicativos que foram marcados para modernização. Conforme os aplicativos de negócios chegam ao fim de seu ciclo de vida, eles são normalmente substituídos por outros com funcionalidades mais avançadas, melhor integração ou interfaces de usuário mais modernas. No entanto, os sistemas mais antigos geralmente oferecem suporte a processos de negócios críticos e contêm dados de negócios confidenciais que não foram migrados para aplicativos mais novos. . Leia Mais

Guia de tratamento de erros para desenvolvedores Java

[ad_1]

Tempo de leitura: 13 minutos

Os manipuladores de erros MuleSoft são ferramentas poderosas para garantir que seus programas possam se recuperar facilmente de eventos inesperados. Esta postagem explica essas ferramentas específicas para tratamento de erros Java, para ajudar os desenvolvedores Java a compreender rapidamente os conceitos de tratamento de erros MuleSoft.

Embora as poderosas ferramentas de tratamento de erros da MuleSoft possam ser difíceis de entender no início, os conceitos por trás delas são semelhantes aos de outras linguagens de programação orientadas a objetos. Nesta postagem, veremos os elementos individuais do pacote de tratamento de erros da MuleSoft. Para cada um, descreveremos sua funcionalidade em termos deste exemplo de código Java:

Neste exemplo inventado, o código Java aceita duas Strings e tenta convertê-las em inteiros. Se esta conversão falhar, o código lança uma NumberFormatException, que deve ser tratada na parte superior da pilha de chamadas. Caso contrário, a divisão inteira é tentada e o resultado é retornado. No caso de divisão por zero, o código pega uma ArithmeticException e retorna “infinito”, como se a operação tivesse sido concluída com êxito.

Veremos o caso ‘lança’ e o caso ‘captura’ separadamente, e construiremos o código Mule para lidar com cada caso. No final, veremos como podemos combinar os dois casos.

Se houver erro, continue

O Se houver erro, continue manipulador funciona de forma semelhante ao Java pegar demonstração. Isso é usado para lidar com o problema onde ele ocorre e permite a execução normal para Prosseguir.

No exemplo acima, nós pegar uma ArithmeticException, que ocorre na linha 16. Execução então pula o logger na linha 18 e pula para a linha 24, onde definimos o resultado como “infinito” e o retornamos, como se nenhum erro tivesse ocorrido. O que quer que tenha chamado esse método simplesmente obtém o valor de Integer.MAX_VALUE retornado, sem nenhuma indicação de que uma exceção foi tratada.

Esta é a aparência desta parte da implementação no Mule:

Em Java e Mule, a mensagem de log é pulado se a divisão falhar. Independentemente de a divisão inteira ter sido bem-sucedida, um valor inteiro é retornado e o chamador acredita que o fluxo foi executado com sucesso.

Para retornar o campo Java estático Integer.MAX_VALUE, podemos usar o módulo Java do Mule diretamente em nosso transformador Set Payload:

valor = ”#[java!java::lang::Integer::MAX_VALUE]”

doc: name = ”java! java :: lang :: Integer :: MAX_VALUE” />

Observe isso em vez de um ponto final. usamos dois pontos duplos :: para delimitar pacotes no Mule.

Algumas versões do Anypoint Studio podem sinalizar o acima com um erro de validação “Incapaz de resolver a referência”. Este é um problema conhecido com o módulo de validação e pode ser ignorado neste caso.

Em caso de propagação de erro

O Em caso de propagação de erro manipulador funciona de forma semelhante ao Java lança demonstração. Isso é usado quando precisamos que o chamador saiba que ocorreu um problema, se, por exemplo, não formos capazes de lidar com o problema em sua origem.

No exemplo Java acima, se x ou y não podem ser analisados ​​em um valor inteiro, nós lançar uma NumberFormatException na linha 13 ou na linha 14. Essa exceção é então propagada acima a pilha de chamadas, onde precisa ser tratada por qualquer método chamado integerDivision ().

Esta é a aparência da implementação no Mule:

Neste caso, se nenhum ocorrer um problema, o erro é simplesmente jogado de volta na pilha e os processadores Transform Message e Logger não são executados. Como não queremos realizar nenhuma ação nesse caso, o escopo de propagação de erro é deixado vazio.

Também podemos especificar ações a serem tomadas antes lançando / propagando o erro, adicionando-os ao escopo de propagação de erro. Em Java, isso exigiria um bloco extra try / catch.

Experimente (escopo)

Vamos combinar os dois fluxos para fornecer uma representação de uma implementação Mule do código Java de exemplo.

Nosso problema imediato é, se tivermos vários manipuladores de erro (aqui on-error-continue e on-error-propagate), precisamos especificar namespaces de erro para eles ouvirem. O último manipulador de erros (aqui na propagação do erro) detectará todos os outros erros se não definir um namespace de erro.

A razão pela qual isso é um problema é que no Mule, tanto uma conversão falhada de uma String para um Número e uma divisão por zero geraria um erro MULE: EXPRESSION. Isso ocorre porque os dois problemas ocorrem em uma expressão DataWeave.

Para lidar com os dois erros de forma diferente, temos que criar um tipo de erro personalizado dentro do Mule, levantar aquele erro dentro de um escopo Try, e então propagar para que o chamador (o fluxo) tenha que lidar com isso.

Depois de fazer essas alterações, a implementação do Mule pode ser parecida com esta:

Aqui nós levantar um erro com um tipo personalizado de APP: ARITHMETIC_EXCEPTION se tentarmos dividir por zero. Nós então propagar o erro até. Isso significa que ele precisa ser tratado por qualquer que seja chamado de escopo Try – que, neste caso, é simplesmente o fluxo integerDivider. O tratamento de erros em nível de fluxo assume, então, e o manipulador on-error-continue pega o erro APP: ARITHMETIC_EXCEPTION, define uma carga útil padrão e a retorna como se o fluxo tivesse sido concluído com sucesso.

Se as variáveis ​​de entrada não puderem ser mapeadas no tipo Number, isso gerará um erro MULE: EXPRESSION, que será então manipulado e lançado pelo manipulador on-error-propagate. Nesse caso, não há ações a serem executadas, então o manipulador simplesmente lança o erro na pilha. Em seguida, ele precisa ser tratado por qualquer coisa originalmente chamada de fluxo integerDivider.

Aqui está o código XML do Mule para o fluxo integerDivider:

<flow name="integerDivider"> <set-variable value="#[vars.x as Number]" doc:name="intx = vars.x as Number" variableName="intx"/> <set-variable value="#[vars.y as Number]" doc:name="inty = vars.y as Number" variableName="inty"/> <try doc:name="Try"> <ee:transform doc:name="divide-intx-by-inty"> <ee:message> <ee:set-payload><![CDATA[%dw 2.0 output application/dw --- vars.intx / vars.inty]]></ee:set-payload> </ee:message> </ee:transform> <error-handler > <on-error-propagate enableNotifications="false" logException="false" doc:name="On Error Propagate"> <raise-error doc:name="APP:ARITHMETIC_EXCEPTION" type="APP:ARITHMETIC_EXCEPTION" description="APP:ARITHMETIC_EXCEPTION" /> </on-error-propagate> </error-handler> </try> <logger level="INFO" doc:name=""Successfully performed integer division."" message="Successfully performed integer division."/> <error-handler > <on-error-continue enableNotifications="false" logException="false" doc:name="On Error Continue" type="APP:ARITHMETIC_EXCEPTION"> <set-payload value="#[java!java::lang::Integer::MAX_VALUE]" mimeType="application/dw" doc:name="java!java::lang::Integer::MAX_VALUE"/> <logger level="INFO" doc:name="Logger" message="#[payload]"/> </on-error-continue> <on-error-propagate enableNotifications="false" logException="false" doc:name="On Error Propagate" type="MULE:EXPRESSION"/> </error-handler> </flow> . Leia Mais

frameworks and examples for your business

[ad_1]

Explore the essentials of a successful e-commerce marketing plan, with real-life examples. Plus find out more about our tools and frameworks to support your strategic planning across the omnichannel retail customer lifecycle

What does a good e-commerce marketing plan look like? What structures and frameworks help e-commerce marketers to accelerate their ROI? In this blog, I’ll be covering the essential elements for you to apply to your online retail strategy, including a case-study of Clinique. Plus, find out how the RACE Framework will help you streamline your omnichannel marketing, so you can plan, manage and optimize every customer touchpoint in their journey to purchase. . Leia Mais

Estrutura da estratégia de marca: planejamento RACE para sua marca

[ad_1]

Precisa de uma estrutura para ajudar sua marca a se destacar? Simplifique sua estrutura de estratégia de marca com nossas ferramentas e modelos para eliminar o ruído

Neste momento, as marcas estão passando por uma crise de identidade como nunca antes. Na era da ruptura digital e do mau marketing omnicanal, pode ser difícil para a marca unificar as comunicações de marketing de forma eficaz. Como seus clientes, você precisa atualizar sua abordagem digital para manter sua marca relevante hoje. Mas é mais fácil falar do que fazer. Recomendamos o uso de uma estrutura de estratégia de marca, como a Estrutura RACE, para otimizar sua marca e manter todos no caminho certo. . Leia Mais

E-commerce marketing trends for 2021

[ad_1]

We are now in the e-commerce marketing optimization era. To maintain growth, businesses need to innovate their approach to e-commerce marketing. Stay up to date with the latest sector trends

It’s not a surprise that this year’s trending e-commerce strategies and tactics all center around making online shopping experiences and comms more persuasive. In 2021, e-commerce retailers need the tools and techniques to stay competitive and defend their market share. That’s why we’ve put together our free retail e-commerce marketing 2021 trends guide for e-commerce marketers to optimize their marketing across the customer lifecycle. As always, we’ve integrated these trends across our popular RACE Framework of Reach, Act, Convert and Engage. . Leia Mais

Cadeia de suprimentos rápida e resiliente? Você vai precisar de um VAN melhor

[ad_1]

COVID-19 interrompeu maciçamente as cadeias de abastecimento em todo o mundo. E encontrar maneiras de continuar trabalhando com seus parceiros comerciais e clientes está no topo da agenda. O EDI (intercâmbio eletrônico de dados) oferece às organizações a melhor forma de trocar informações e realizar transações, onde e quando necessário. Neste blog, veremos o que uma EDI VAN (rede de valor agregado) deve oferecer para atender às suas necessidades à medida que avançamos. . Leia Mais

Projeto orientado a eventos: mensagens de estado transportadas por evento

[ad_1]

Esta é a terceira parte de uma série sobre “Mudando de RESTful para EVENTful.”

À medida que mais organizações se preocupam com a importância da arquitetura orientada a eventos (EDA) para seus programas de TI, as empresas estão mudando suas tecnologias e práticas de um estilo puramente “RESTful” para um que incorpora REST e o que venho chamando de EVENTful estilo. Essa abordagem híbrida faz sentido para a maioria das organizações e oferece bastante flexibilidade e oportunidade. Mas há desafios para fazer esse tipo de movimento e uma das primeiras coisas com que lidar é o problema clássico de “nomear as coisas”. O que significa EVENTful? E existe mais de um tipo de estilo de implementação de EDA? . Leia Mais