Acionando workflow através de outro programa
- Inscrever-se no RSS Feed
- Marcar tópico como novo
- Marcar tópico como lido
- Flutuar este Tópico do usuário atual
- Marcar como favorito
- Inscrever-se
- Emudecer
- Versão para impressão
- Marcar como novo
- Marcar como favorito
- Inscrever-se
- Emudecer
- Inscrever-se no RSS Feed
- Realçar
- Imprimir
- Notificar o moderador
Pessoal,
Estou automatizando algumas rotinas, e meu objetivo é criar um app utilizando o Python no qual todas as rotinas automatizadas estarão nele, e serão executadas com um clique...
Seria possível fazer isso com um workflow? Acionar o workflow através de um codigo em Python?
Se tiverem algum material ou exemplo que possa me ajudar
Obrigado!
- Marcar como novo
- Marcar como favorito
- Inscrever-se
- Emudecer
- Inscrever-se no RSS Feed
- Realçar
- Imprimir
- Notificar o moderador
Bom dia @GabrielStlz
Existem algumas formas de você fazer isso.
Uma delas é utilizando o RUN COMMAND, outra seria você utilizar as macros CREW (http://www.chaosreignswithin.com/p/macros.html). Nesse pacote você tem algumas ferramentas onde você ode encadear os workflows de acordo com a saída dele (sucesso ou não)
Com código Python provavelmente você vai precisar usar isso aqui https://help.alteryx.com/pt-br/current/designer/run-workflows-command-line
xemplo
Execute o aplicativo analítico contido na marca de caminho do fluxo de trabalho > de AppValues. xml.
AlteryxEngineCmd.exe MyWorkflow.yxmd
AlteryxEngineCmd.exe MyAnalyticApp.yxwz AppValues.xml
AlteryxEngineCmd.exe AppValues.xml
Valores de retorno de exemplo:
0-sucesso
1-existem avisos
2-erros existem
Para executar fluxos de trabalho através da linha de comando, adicione o caminho raiz Alteryx às variáveis do sistema Path no seu computador.
Atenção nesse passoem negrito, sem isso você pode ter problemas para executar
Espero que ajude.
Abraços
- Marcar como novo
- Marcar como favorito
- Inscrever-se
- Emudecer
- Inscrever-se no RSS Feed
- Realçar
- Imprimir
- Notificar o moderador
Oi @GabrielStlz !
Já fiz algo nesse mesmo sentido no passado. Uma alternativa a excelente solução do nosso mestre @carlosteixeira , é o seguinte:
O fluxo alteryx nada mais é que um arquivo .XML que o alteryx compreende como suas configurações para rodar o fluxo.
O que poder fazer é abrir seu fluxo em um bloco de notas para copiar todo o texto desse XML e no seu código python vc ter um passo onde cria um arquivo temporário com esse texto do XML e o executa.
Depois dentro do seu código python mesmo, pode inclusive colocar para deletar esse arquivo temporário do fluxo e continuar com os processos que tiver planejado.
Espero que ajude!
Não esqueça de marcar como solução a(s) resposta(s) que te atenderem!
Grande abraço
- Marcar como novo
- Marcar como favorito
- Inscrever-se
- Emudecer
- Inscrever-se no RSS Feed
- Realçar
- Imprimir
- Notificar o moderador
Oi @GabrielStlz !
Antes não tive como olhar muito, mas veja se essa solução ajuda:
1. Abre o fluxo com o notepad para ver o xml do fluxo
2. Usa esse código e cola o texto que pegou no notepad para dentro do arquivo que vai criar no fluxo como no exemplo. Não esquece de colocar o texto do xml entre 3 aspas duplas para ele entender linhas longas (""" """)
import os
f= open("criar_fluxo.yxmd","w+")
f.write("""<?xml version="1.0"?>
<AlteryxDocument yxmdVer="2021.1">
<Nodes>
<Node ToolID="1">
<GuiSettings Plugin="AlteryxBasePluginsGui.TextInput.TextInput">
<Position x="66" y="114" />
</GuiSettings>
<Properties>
<Configuration>
<NumRows value="1" />
<Fields>
<Field name="teste" />
</Fields>
<Data>
<r>
<c>texto de teste</c>
</r>
</Data>
</Configuration>
<Annotation DisplayMode="0">
<Name />
<DefaultAnnotationText />
<Left value="False" />
</Annotation>
</Properties>
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxTextInput" />
</Node>
<Node ToolID="2">
<GuiSettings Plugin="AlteryxBasePluginsGui.BrowseV2.BrowseV2">
<Position x="174" y="114" />
</GuiSettings>
<Properties>
<Configuration>
<Layout>
<View1>
<Hints>
<Table />
</Hints>
</View1>
</Layout>
</Configuration>
<Annotation DisplayMode="0">
<Name />
<DefaultAnnotationText />
<Left value="False" />
</Annotation>
</Properties>
<EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxBrowseV2" />
</Node>
</Nodes>
<Connections>
<Connection>
<Origin ToolID="1" Connection="Output" />
<Destination ToolID="2" Connection="Input" />
</Connection>
</Connections>
<Properties>
<Memory default="True" />
<GlobalRecordLimit value="0" />
<TempFiles default="True" />
<Annotation on="True" includeToolName="False" />
<ConvErrorLimit value="10" />
<ConvErrorLimit_Stop value="False" />
<CancelOnError value="False" />
<DisableBrowse value="False" />
<EnablePerformanceProfiling value="False" />
<DisableAllOutput value="False" />
<ShowAllMacroMessages value="False" />
<ShowConnectionStatusIsOn value="True" />
<ShowConnectionStatusOnlyWhenRunning value="True" />
<ZoomLevel value="0" />
<LayoutType>Horizontal</LayoutType>
<MetaInfo>
<NameIsFileName value="True" />
<Name>fluxo_teste</Name>
<Description />
<RootToolName />
<ToolVersion />
<ToolInDb value="False" />
<CategoryName />
<SearchTags />
<Author />
<Company />
<Copyright />
<DescriptionLink actual="" displayed="" />
<Example>
<Description />
<File />
</Example>
</MetaInfo>
<Events>
<Enabled value="True" />
</Events>
</Properties>
</AlteryxDocument>""")
f.close()
os.startfile("criar_fluxo.yxmd")
3. Se quiser remover o arquivo depois, pode usar o código abaixo:
Espero que esses códigos possam ajudar você, daí se torna uma questão de adaptar dentro do script para funcionar no seu processo.
Qualquer coisa fala!
- Marcar como novo
- Marcar como favorito
- Inscrever-se
- Emudecer
- Inscrever-se no RSS Feed
- Realçar
- Imprimir
- Notificar o moderador
Olá, estou muito interessada nessa solução, mas fiquei com uma duvida: Para executar o xml dentro do Python eu preciso ter o Alteryx instalado no servidor?
Não consigo fazer a automação por CMD pois a firma não tem a licença para instalação do Alteryx no servidor.
Obrigada pelo codigo!
- Marcar como novo
- Marcar como favorito
- Inscrever-se
- Emudecer
- Inscrever-se no RSS Feed
- Realçar
- Imprimir
- Notificar o moderador
@carlosteixeira Carlão como sempre dando aula hahaha
@GabrielStlz tu também pode usar o agendador de tarefas do windows e usar o AlteryxEngineCMD.
Dependendo da tua necessidade, tu ainda pode usar o ERROR_LEVEL retornado pelo AlteryxEngineCMD e fazer notificações no Telegram usando o CURL.
Assim tu vai executar tuas rotinas em Alteryx e vai ter um feedback do status no teu celular via Telegram.
- Marcar como novo
- Marcar como favorito
- Inscrever-se
- Emudecer
- Inscrever-se no RSS Feed
- Realçar
- Imprimir
- Notificar o moderador
@Matheus_Rodrigues nada... sempre aprendendo
Aí, pode escrever um post dessa dica do Telegram @Matheus_Rodrigues essa aí eu quero aprender.
Mostra pra gente e posta aqui na comunidade
Abraços
- Marcar como novo
- Marcar como favorito
- Inscrever-se
- Emudecer
- Inscrever-se no RSS Feed
- Realçar
- Imprimir
- Notificar o moderador
@carlosteixeira essa literalmente vale ouro rsrs, mas vou analisar e pensar em algo para partilhar com a galera.
Ou podemos deixar para User Group, que tal? É um tema muito interessante e pouquíssimo explorado.
Porém pelo procedimento ser chato, não tem como escapar de montar uma postagem no blog.
- Marcar como novo
- Marcar como favorito
- Inscrever-se
- Emudecer
- Inscrever-se no RSS Feed
- Realçar
- Imprimir
- Notificar o moderador
@Matheus_Rodrigues manda msg pra mim e pro @Thableaus vamos falar sobre isso.
