Jump to content

Search the Community

Showing results for tags 'Actions'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Company news
    • General announcements
  • ftrack Studio (main app)
    • General discussion
    • Feature requests
    • API
    • Help
    • Actions and Widgets
    • ftrack Go
  • ftrack Review
    • General discussion
    • Feature requests
    • Help
  • Connect and Integrations
    • Releases
    • General discussion
    • Feature requests
    • Early Access Integrations & Connect
    • Help
  • Advisory Forum
  • Tech preview
    • API

Categories

There are no results to display.


Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website URL


Location


Interests

Found 5 results

  1. Hello all, My goal is to launch programs such as windows shell, Maya & Nuke, etc, from the ftrack UI and also feed custom environment variables to the shell before the application is launched. For example, I know project A requires Nuke 8.0 and Ocula 1.0 and project B requires Nuke 9.0 & Ocula 2.0 . I'm hoping to make/update a UI in ftrack which would have a Nuke icon and if the user double clicks the Nuke icon, the correct version of Nuke and plug-in are found via the environment variables. I can do this with other web based production tracking software and via a command line/Gui based system I maintained at a previous job site. This is the first time I've used ftrack so apologies if this is an obvious topic. Thanks for any tips. Adam Chrystie Pipeline Software Engineer
  2. I've developed a widget that is launched from an action and the widget shows a form that collects some data. For example, this widget collects an entity ID selection from a drop-down menu: The Submit button creates an `ftrack.Event` object with the topic of 'ftrack.action.launch' and the appropriate data to launch another action, publishes this event, and closes the widget window. On my event listener I can see that the action is being launched and that it is generating the correct data to show a form, but the form never shows up in my browser. My hunch is that when I jump from an action to a widget and back to an action again, I'm losing target information about where my browser window is, so the last form doesn't show up. Do you have any idea how I can collect the appropriate information in the widget so that the action launch event that is generated is properly routed? --- Taking a step back, my specific use-case is that we have developed a number of actions in-house that collect data via forms, but they are missing some UI components that I was hoping to make up for via widgets. For example, an action that needs to collect file browser data would collect the file location via a widget first and then proceed to the rest of the action. (At the moment, users are copy/pasting the file path into a text box for this action.)
  3. I am about to shift some specific actions from running locally on user-workstations to one or two central worker-clients. Some of these actions will run a little bit longer and won't be discoverable during processing. To keep it simple, maintainable and scalable I'd like to avoid setting up threading/multiprocessing mechanisms inside the action and do that on a higher level instead. Is there a canonical way to pull this off? If I understand it correctly the event.stop() method will only work if I register the listeners from one single process. So multiple-docker containers or multiple hosts won't work because this would lead to multiple actions with the same name showing up for users. Is that correct? Anything else to watch out for?
  4. I am working from the 'Example Action' found here. http://ftrack.rtd.ftrack.com/en/3.5.0/developing/actions.htm My end goal is to create directory structures based on Ftrack hiearchy. At the moment, all I am doing is printing some information (object type and name) based on what is selected. Everything works... but when I change the name of the selected task, or its type through Ftrack, and when I run the action again, it returns the information from my selection prior to the changes made. How can I force update the events inside of the launch() function so that it always operates on the latest ftrack information? Here is a very basic version of my code: import logging import ftrack_api import os #os.environ['FTRACK_SERVER'] = ############ #os.environ['FTRACK_API_USER'] = os.environ.get("USERNAME") #os.environ['FTRACK_API_KEY'] = ############ class MyCustomAction(object): '''Custom action.''' label = 'Create Folders' identifier = 'create.initial.folders' description = 'This creates the initial task folders' def __init__(self, session): '''Initialise action.''' super(MyCustomAction, self).__init__() self.session = session self.logger = logging.getLogger( __name__ + '.' + self.__class__.__name__ ) def register(self): '''Register action.''' self.session.event_hub.subscribe( 'topic=ftrack.action.discover and source.user.username={0}'.format( os.environ.get("USERNAME")#self.session.api_user ), self.discover ) self.session.event_hub.subscribe( 'topic=ftrack.action.launch and data.actionIdentifier={0} and ' 'source.user.username={1}'.format( self.identifier, os.environ.get("USERNAME")#self.session.api_user ), self.launch ) def discover(self, event): '''Return action config if triggered on a single asset version.''' data = event['data'] # If selection contains more than one item return early since # this action can only handle a single version. selection = data.get('selection', []) self.logger.info('Got selection: {0}'.format(selection)) #if len(selection) != 1 or selection[0]['entityType'] != 'assetversion': # return return { 'items': [{ 'label': self.label, 'description': self.description, 'actionIdentifier': self.identifier }] } def launch(self, event): ########## How can I update this ^^ event so that launch() doesnt operate on an outdated information ########## ########## ########## '''Callback method for custom action.''' selection = event['data'].get('selection', []) #print selection for entity in selection: item = self.session.get('Task', entity['entityId']) object_type = item['object_type']['name'] name = item['name'] print name, object_type return { 'success': True, 'message': 'Ran my custom action successfully!' } def register(session, **kw): '''Register plugin.''' # Validate that session is an instance of ftrack_api.Session. If not, # assume that register is being called from an incompatible API # and return without doing anything. if not isinstance(session, ftrack_api.Session): # Exit to avoid registering this plugin again. return action = MyCustomAction(session) action.register() if __name__ == '__main__': logging.basicConfig(level=logging.INFO) session = ftrack_api.Session() register(session) # Wait for events. session.event_hub.wait() Thanks! Ali
  5. When trying to run an action on the "Lists" there is no connection to ftrack connect On the library level, on the library folder level and the list level.
×
×
  • Create New...