community
cancel
Showing results for 
Search instead for 
Did you mean: 

Dev Space

Customize & extend the power of Alteryx. SDKs, APIs, custom tools, and more!
Community v19.6

Looks aren't everything... But the latest Community refresh looks darn good!

Learn More

Unknown Error on Server with Python Tool

Asteroid

Heja,

 

I feel like I'm on the final stretch to have my Python plugin work properly. It's working in the Designer as well as on the server now -- at least considering the outputs.

 

When running a workflow containing my Python tool, which has only one input, I receive the following output from the server:

 

Screenshot 2019-08-05 at 13.40.27.png

"There was an unknown error executing the application. The engine reported status Error."

 

When I check the logs on the server, everything looks fine. When running the workflow on the server through AlteryxEngineCmd.exe, the output and log are also fine without any errors.

 

Anyone any idea how this happens?

 

I checked whether I didn't close any connections but I have everything in place, I think. Since I don't have any outputs, there isn't any .close() to the outgoing connections.

class AyxPlugin:

    def __init__(self, n_tool_id: int, alteryx_engine: object, output_anchor_mgr: object):
        self.n_tool_id = n_tool_id
        self.alteryx_engine = alteryx_engine
        # ...

    def pi_init(self, str_xml: str):
        xml = Et.fromstring(str_xml)
        # ...

    def pi_add_incoming_connection(self, str_type: str, str_name: str) -> object:
        self.input_anchor = IncomingInterface(parent=self)
        return self.input_anchor

    def pi_add_outgoing_connection(self, str_name: str) -> bool:
        # No outgoing connection
        return False

    def pi_push_all_records(self, n_record_limit: int) -> bool:
        # No outgoing connection
        return False

    def pi_close(self, b_has_errors: bool):
        return

    def output_message(self, text: str, messageType = Sdk.EngineMessageType.error):
        self.alteryx_engine.output_message(self.n_tool_id, messageType, self.xmsg(text))

    @staticmethod
    def xmsg(msg_string: str) -> str:
        return msg_string

class IncomingInterface:
    def __init__(self, parent: AyxPlugin):
        # Reference to AyxPlugin
        self.ayx_plugin = parent

    def ii_init(self, record_info_in: object) -> bool:
        return True

    def ii_push_record(self, in_record: object) -> bool:
        return True

    def ii_update_progress(self, d_percent: float):
        self.ayx_plugin.alteryx_engine.output_tool_progress(self.ayx_plugin.n_tool_id, d_percent)  # Inform the Alteryx engine of the tool's progress.

    def ii_close(self):
        return    
    

 

I cannot see any other unhandled Python exceptions or anything the like. And output and log are looking perfectly fine, so I cannot see any problem.

 

Any idea what might have happened that any workflow containing the tool quits with this error message?

 

Best

Christopher

 

Alteryx
Alteryx

@chrisha 

 

When you run the process using AlteryxEngineCmd.exe are you logged in as the Run as configured on the server that is used when the process is executed via the Gallery?

Asteroid

Hi @MichalM,

 

I've just run it as the designated Alteryx user on our server. Identical output: no errors or warnings whatsoever, log is clean and workflow did what it was supposed to do.

 

Best

Christopher