<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to How to switch the active application via script</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/a17418c615/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Engineering/thread/a17418c615/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Engineering/thread/a17418c615/</id><updated>2020-02-27T14:59:28.629000Z</updated><subtitle>Recent posts to How to switch the active application via script</subtitle><entry><title>How to switch the active application via script</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/a17418c615/?limit=25#113e" rel="alternate"/><published>2020-02-27T14:59:28.629000Z</published><updated>2020-02-27T14:59:28.629000Z</updated><author><name>aloeffler</name><uri>https://forge.codesys.com/u/aloeffler/</uri></author><id>https://forge.codesys.coma4bd5dc2f4703a7402b439fab285777e05b09782</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Thank you Markus! &lt;br/&gt;
Your first solution runs perfect. &lt;br/&gt;
Now the next problem is knocking on the door   To create the gateway and set the device active.&lt;br/&gt;
But if I need help I'll open a new thread with a fitting topic.&lt;br/&gt;
Alfred&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to switch the active application via script</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/a17418c615/?limit=25#81f8" rel="alternate"/><published>2020-02-27T14:59:26.864000Z</published><updated>2020-02-27T14:59:26.864000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.comf7977c4630083a20abd79409108eb79c4503655b</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; M.Schaber&lt;/p&gt;
&lt;p&gt;Hi, ALoeffler,&lt;/p&gt;
&lt;p&gt;There are several possibilities to solve your problem: The first one is to search from the device upwards:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;proj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;projects&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;primary&lt;/span&gt;
&lt;span class="n"&gt;dev&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;proj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'PLC_A'&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Application'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;recursive&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;proj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;active_application&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;The second one is to search the application by path:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;proj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;projects&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;primary&lt;/span&gt;
&lt;span class="n"&gt;dev&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;proj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'PLC_A'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'SPS-Logik'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'Application'&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;proj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;active_application&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;A third way is to check the name of the parent:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nv"&gt;far&lt;/span&gt; &lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;findApplicationResult&lt;/span&gt;:
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;far&lt;/span&gt;.&lt;span class="nv"&gt;parent&lt;/span&gt;.&lt;span class="nv"&gt;parent&lt;/span&gt;.&lt;span class="nv"&gt;get_name&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;PLC_A&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;:
        # &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="nv"&gt;something&lt;/span&gt; &lt;span class="nv"&gt;here&lt;/span&gt;...
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;In your code, the problem was the following line:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;appPlcFound&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;far&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="ss"&gt;"PLC_A"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;False&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Here, you're going down 2 steps from the application object (far.parent.parent points to the device in your project), and then you search for a child of that device with the name "PLC_A" non-recursively, which none exists.&lt;/p&gt;
&lt;p&gt;Note that the find() methods always return a list of objects, because each search could return more than one result.&lt;/p&gt;
&lt;p&gt;HTH,&lt;br/&gt;
Markus&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to switch the active application via script</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/a17418c615/?limit=25#4c6e" rel="alternate"/><published>2020-02-27T14:59:26.237000Z</published><updated>2020-02-27T14:59:26.237000Z</updated><author><name>aloeffler</name><uri>https://forge.codesys.com/u/aloeffler/</uri></author><id>https://forge.codesys.comd3fe31f5c386cea090a0611f2392fbb0be66b2c8</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi, thanks for this quick answer!&lt;br/&gt;
Unfortunatelly I found 3 appplication objects. The given project structure:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Project-PLC_A--SPS-Logik---Application-PLC_B--SPS-Logik---Application-PLC_C--SPS-Logik---Application&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Is there an easy way to detect the right application via parents property? Something like app.parent.parent ? &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;print&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;findApplicationResult.Count &lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;, &lt;span class="nv"&gt;findApplicationResult&lt;/span&gt;.&lt;span class="nv"&gt;Count&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; 
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nv"&gt;far&lt;/span&gt; &lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;findApplicationResult&lt;/span&gt;:
    &lt;span class="nv"&gt;appPlcFound&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;far&lt;/span&gt;.&lt;span class="nv"&gt;parent&lt;/span&gt;.&lt;span class="nv"&gt;parent&lt;/span&gt;.&lt;span class="nv"&gt;find&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;PLC_A&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;, &lt;span class="nv"&gt;False&lt;/span&gt; &lt;span class="ss"&gt;)&lt;/span&gt;
    &lt;span class="nv"&gt;print&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;appPlcFound.Count &lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;, &lt;span class="nv"&gt;appPlcFound&lt;/span&gt;.&lt;span class="nv"&gt;Count&lt;/span&gt; &lt;span class="ss"&gt;)&lt;/span&gt; 
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;appPlcFound&lt;/span&gt;.&lt;span class="nv"&gt;Count&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;:
        &lt;span class="nv"&gt;print&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;appPlcFound&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="ss"&gt;)&lt;/span&gt; 
        &lt;span class="nv"&gt;proj&lt;/span&gt;.&lt;span class="nv"&gt;active_application&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;appPlcFound&lt;/span&gt;[&lt;span class="mi"&gt;1&lt;/span&gt;]
        &lt;span class="k"&gt;break&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Does not work, appPlcFound.Count = 0 three times. I am also not so much into Python so I am just guessing and trying...&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to switch the active application via script</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/a17418c615/?limit=25#e773" rel="alternate"/><published>2020-02-27T14:59:25.595000Z</published><updated>2020-02-27T14:59:25.595000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.com256d85dcd097424e8e05dae0bae7f9c8e2353244</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; M.Schaber&lt;/p&gt;
&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Projects have a property active_application, which you can use to query or set the active application.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;proj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;projects&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;primary&lt;/span&gt;
&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;proj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Application'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;recursive&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;proj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;active_application&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry><entry><title>How to switch the active application via script</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/a17418c615/?limit=25#2264" rel="alternate"/><published>2020-02-27T14:59:23.943000Z</published><updated>2020-02-27T14:59:23.943000Z</updated><author><name>aloeffler</name><uri>https://forge.codesys.com/u/aloeffler/</uri></author><id>https://forge.codesys.com5406f8a64b937dfbe9661232f8453f200fc74537</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I have one given project, which keeps 3 applications for 3 different plc-types. ( I have no influence to this project structure, so I can not change it)&lt;/p&gt;
&lt;p&gt;For downloading them by script I am guessing I have to change the active application. How can I get to the application to set active?&lt;br/&gt;
Or how can I change the active application at all?&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>