addTaskTool
Add tool to help organize and complete task activities
Syntax
Description
Examples
Starting in R2024a, you can integrate custom apps into your process
model by using the addTaskTool
function. You create the custom app by
using App Designer or uifigure
and represent the app by using a padv.TaskTool
object. For this example, you add a custom app as a tool for a task and view the tool in
the options menu for the task in Process Advisor.
Open the Process Advisor example project.
processAdvisorExampleStart
Open the standalone Process Advisor window.
processAdvisorWindow
Open the Additional Examples process by selecting Additional Examples from the Process gallery in the toolstrip. The Additional Examples process contains example tasks that use a custom task app created in App Designer.
Note
For R2025a, this functionality will be available in a future release of the support package.
In the Tasks column, expand the task Example Automated
Task and open the task app for the AHRS_Voter
model by
pointing to AHRS_Voter, opening the task options menu
(...), and clicking Example Task
App.
The App Designer app opens inside Process Advisor. The Example
Task App dialog box shows the relative path to the model and several buttons for
interacting with the app. The dialog box was designed in App Designer and
provides a UI for opening a model and accessing other options using App
Designer UI components. For example, you can open the current task iteration
artifact, AHRS_Voter
, by clicking Open in the
Example Task App dialog box.
In Process Advisor, close the Example Task App dialog box by clicking Close.
In the project root, find the example app, TaskAppDemo.mlapp
, and
the example function, exampleProcess.m
.
The exampleProcess
function defines a
padv.TaskTool
object for the task app and adds the
padv.TaskTool
object, appOpenModel
, to the
example task and process model. Since the tool function is an App Designer
app, the Type
is set to
padv.TaskToolType.TaskApp
. The ToolFunction
argument specifies the App Designer file name,
TaskAppDemo
, that defines the example task app
UI.
% Example Task App appOpenModel = padv.TaskTool( ... Title = "Example Task App", ... Type = padv.TaskToolType.TaskApp, ... ToolFunction = "TaskAppDemo"); pm.addTaskTool(appOpenModel); ... taskExampleTaskApps.TaskTools = appOpenModel;
Open and inspect the exampleProcess.m
file to view the full code.
The processmodel.m
file calls the exampleProcess
function on the process model object, pm
, to add the example process
to the process model for the project.
Open the example task app in App Designer by double-clicking the
TaskAppDemo.mlapp
file in the root of the example project. You
can use App Designer to interactively develop the example task app. For more
information, see App Designer.
In App Designer, drag and drop a Table UI component onto the canvas. Resize the table and app layout as needed.
View the app code by clicking the Code View button above the
canvas. This example app uses a startup function, startupFcn
, to find
the task context object, extract the task iteration artifact, and display the model file
path in the app. When you open a task app, Process Advisor passes a padv.TaskContext
object to the task
app.
function startupFcn(app, varargin) % Find the TaskContext object in varargin taskContextIndex = find(cellfun(@(x) isa(x, 'padv.TaskContext'), varargin), 1); if ~isempty(taskContextIndex) app.TaskContext = varargin{taskContextIndex}; % Get the IterationArtifact iterationArtifact = app.TaskContext.getIterationArtifact(); % Get the file path from the name field filePath = iterationArtifact.name; app.ModelFilePath.Value = filePath; end end
In the conditional block within startupFcn
, add code that retrieves
and displays the commit history for the current task iteration artifact in the table
component of the app, app.UITable
. The following code shows the
updated startupFcn
function.
function startupFcn(app, varargin) % Find the TaskContext object in varargin taskContextIndex = find(cellfun(@(x) isa(x, 'padv.TaskContext'), varargin), 1); if ~isempty(taskContextIndex) app.TaskContext = varargin{taskContextIndex}; % Get the IterationArtifact iterationArtifact = app.TaskContext.getIterationArtifact(); % Get the file path from the name field filePath = iterationArtifact.name; app.ModelFilePath.Value = filePath; % Display commit history for iteration artifact repo = gitrepo; commitHistory = log(repo.CurrentBranch,File=filePath); app.UITable.Data = commitHistory; columnNames = commitHistory.Properties.VariableNames; app.UITable.ColumnName = columnNames; end end
In Process Advisor, update the task information by clicking
Refresh Tasks and open the task app for
AHRS_Voter. The Example Task App dialog box shows a table with
the commit message, branches, and authoring information for the
AHRS_Voter
model.
Starting in R2024a, you can integrate custom commands into your
process model by using the addTaskTool
function. You represent the
custom commands by using padv.TaskTool
objects. For this example, you add two custom commands as tools for a task and view the
tools in the options menu for the task in Process Advisor.
Open the Process Advisor example project. The model AHRS_Voter
opens with the Process Advisor pane to the left of the Simulink® canvas.
processAdvisorExampleStart
Define your custom command by creating a new MATLAB® function file. The function must accept a TaskContext
as a name-value argument and must be on the MATLAB path.
For this example, you can create a file named taskCmd1.m
and define a
custom function that accepts and displays an input
argument.
function out = taskCmd1(inputArg, NamedValueArgs) arguments inputArg NamedValueArgs.TaskContext end disp(inputArg); end
In the Process Advisor pane, click the Edit process model button to open the
processmodel.m
file for the project.
Replace the contents of the processmodel.m
file with the following example
code. The code defines:
myTask
— A custom task.myTaskTool
— A custom tool for a task. The tool calls the function specified by theToolFunction
argument. In the Process Advisor context menu for a task, the tool has the titleMy Command 1
. Since the tool function,taskCmd1
, is a.m
file for a function that defines a command for the task tool to execute, theType
is set toCommand
. The function accepts an input argumentcmd1Arg
.
Inside the process model, the code adds the task and tool to the process model and specifies the tool as one of the task tools for the task.
function processmodel(pm) % Define process model for project arguments pm padv.ProcessModel end % --- Task --- myTask = padv.Task("MyTask"); pm.addTask(myTask); % --- TaskTool --- cmd1Arg = "myInputArg"; myTaskTool = padv.TaskTool(ToolFunction="taskCmd1",... Title="My Command 1",... Type=padv.TaskToolType.Command,... Arguments={cmd1Arg}); % --- Integrate --- pm.addTaskTool(myTaskTool); myTask.TaskTools = myTaskTool; end
In Process Advisor, update the task information by clicking Refresh Tasks.
In the Tasks column, point to MyTask, open the options menu (...), and click My Command 1.
Process Advisor executes the command specified in the taskCmd1
function. The function displays the input argument, "myInputArg"
, in the MATLAB Command Window.
Input Arguments
Process model for project, specified as a padv.ProcessModel
object.
Example: pm = padv.ProcessModel
Tool to help complete a task, specified as a padv.TaskTool
object
or an array of padv.TaskTool
objects.
Example: padv.TaskTool(ToolFunction="app1_exported",Title="My
App",Type=padv.TaskToolType.TaskApp)
Example: [padv.TaskTool(ToolFunction="app1_exported",Title="My App
1",Type=padv.TaskToolType.TaskApp),padv.TaskTool(ToolFunction="app2_exported",Title="My
App 2",Type=padv.TaskToolType.TaskApp)]
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)