Jotkut asiakkaistamme ovat raportoineet, että AutomateWorks voi aiheuttaa ongelmia malleissa, jotka sisältävät ulkoisen design tablen. Ongelma on ilmennyt siten, että ulkoisen design tablen lisääminen malliin epäonnistuu katalaan ja kovin vähän mitään kertovaan virheilmoitukseen ”Failed to launch server application”. Valppaat käyttäjät havaitsivat, että virheilmoitusta ei tule, jos AutomateWorksin Excel Add-in poistetaan käytöstä. Jäljet johtivat siis sylttytehtaalle, joten käärimme hihat ja otimme lähdekoodin suurennuslasin alle.
Kuunteleminenkin voi olla aktiivista toimintaa
Tällä kertaa virheilmoituksen syyn löytäminen ei kuitenkaan ollut aivan yksinkertaista. Excelissä oleva AutomateWorksin Add-in ei varsinaisesti tee mitään ennen kuin käyttäjä tulee painaneeksi jotain AutomateWorksin työkalupalkissa olevaa painiketta. Silti oli ilmeistä, että se oli jotenkin pelkällä läsnäolollaan osasyyllinen virheilmoitukseen. Tarkempi testaus rivi riviltä osoitti, että AutomateWorksin puolella ei edes tapahtunut mitään todellista virhetilannetta, mikä olisi voinut aiheuttaa virheilmoituksen. Ongelma vaikutti katalasti ratkaisemattomalta mysteeriltä.
Salaisuuden verho alkoi raottua, kun sovelsimme ongelman ratkaisussa poissulkumenettelyä. Poistamalla koodia Add-inin käynnistysrutiinista rivin kerrallaan pääsimme tilanteeseen, jossa virheilmoitusta ei enää tapahtunut SOLIDWORKSin puolella ja design table toimi jälleen normaalisti. Virheen varsinainen syy ei vielä selvinnyt, mutta havaitsimme sen liittyvän Excelin tapahtumien kuuntelemiseen.
Kuuntelemalla Excelin tapahtumia Add-In yrittää päätellä voiko käyttäjä painaa työkalupalkissa olevia painikkeita. Jos esimerkiksi aktiivinen työkirja ei ole AutomateWorksilla tehty konfiguraattori, työkalupalkin painikkeet muuttuvat harmaiksi. Osoittautui, että SOLIDWORKSin avatessa ulkoisen design tablen Add-in yrittää siinäkin tapauksessa parhaansa mukaan pitää painikkeet järkevässä tilassa, vaikka se ei siinä tilanteessa olekaan käyttäjän kannalta relevanttia.
Syyllinen kunnes toisin todistetaan?
Virhetilanteen perinpohjainen tutkiminen johti lopulta siihen, että keksimme tehdä kokeeksi erillisen, AutomateWorksista riippumattoman sovelluksen, joka ei tehnyt mitään muuta kuin kuunteli korvat höröllä Excelin ilmoittamia tapahtumia. Huomasimme, että se aiheuttaa täsmälleen saman virhetilanteen SOLIDWORKSissa silloinkin, kun työasemalle ei ole asennettu AutomateWorksia. Toisin sanoen ongelma ei johtunut pelkästään AutomateWorksista, vaan todennäköisesti mikä tahansa muukin Excelin tapahtumia kuunteleva sovellus aiheuttaa saman virhetilanteen SOLIDWORKSissa. Kyseessä on siis ohjelmointivirhe joko SOLIDWORKSin tai Excelin lähdekoodissa. Teemme tästä tukipyynnön SOLIDWORKSille ongelman ratkaisemiseksi.
Pääsimme kuitenkin virheilmoituksesta lopulta eroon muuttamalla AutomateWorksin koodia niin, että Add-in ei kuuntele Excelin antamia ilmoituksia ensinkään. Työkalupalkkia muutettiin niin, että painikkeiden tilaa ei muuteta missään tilanteessa harmaaksi. Vastaisuudessa jos jotain painiketta tulee painaneeksi epäsopivassa tilanteessa, AutomateWorks antaa virheilmoituksen. Tämä ei ole kovin eleganttia, mutta joskus on annettava periksi. Pidämme siis jatkossa painikkeiden toimintaperiaatteen yksinkertaisena, kunnes toivon mukaan ongelma tulee korjatuksi SOLIDWORKSin lähdekoodissa.
Käytätkö AutomateWorksia? Lataa AutomateWorksin korjattu versio täältä.