Thursday, July 9, 2020
  • Index
  •  » Automator
  •  » Automator ARRAY variable cannot be parsed by Automator actions

#1 2020-04-19 01:27:36 am

pkamb
Member
Registered: 2020-04-18
Posts: 1

Automator ARRAY variable cannot be parsed by Automator actions

I'm wondering if anyone can explain this behavior of array formatting inside an Automator workflow.

I am using `NSUserAutomatorTask` to launch an Automator workflow from a macOS app.

I'm passing in variables via the `variables` property. I'm passing both a String and an Array value variable in the variables dictionary.
https://developer.apple.com/documentati … -variables

Inside the Automator workflow I will then use `Get Value of Variable` actions to grab the variables that were set on the `NSUserAutomatorTask` and pass the variables to subsequent Automator actions:

Get Value of Variable

---

In the Mac app the Swift code looks like this:

    let workflow = try! NSUserAutomatorTask(url: url)
    workflow.variables = [
        "singleFilePath": "/image1.png",
        "multipleFilePaths": ["/image1.png", "/image2.png"],
    ]
    workflow.execute(withInput: nil)

I'm able to print out the variable values in an alert via an `Ask for Confirmation` action:

variable string values


The `String` variable's value is a simple string: `/image1.png`

The `[String]` array variable's value is wrapped in parentheses and each item is quoted:

    (
      "/image1.png",
      "/image2.png"
    )

---

My control is to write a "normal" workflow, rather than variables, and use a Get Specified Finder Items action + View Results action:

Get Specified Finder Items

The array/list format is exactly the same as when I use the variable.

---

I now run the pictured Automator workflow that first gets a variable's value and then attempts to open those Finder items.

The `singleFilePath` var works. It's passed on to the Open Finder Items action, and that file is opened by the default application.

Passing `multipleFilePaths` in the same manner does not work. No files are opened. Automator displays the error:

> The action "Open Finder Items" was not supplied with the required data.

---

The action is "Open Finder Item**s**", so there must be some way to pass multiple file paths to this action.

My questions and solutions in order of preference are:

1. Why is the default variable array/list format not working when passed to the subsequent action? Is there any way to pass or parse the array variable in a compatible format?

2. Can we use a *single* `Run AppleScript` action to reformat the array variable into a format that can be passed to subsequent Automator actions? (I'd like to continue to chain Automator actions rather than run pure AppleScript).

Thank you for any help you might offer!

Offline

 
  • Index
  •  » Automator
  •  » Automator ARRAY variable cannot be parsed by Automator actions

Board footer

Powered by FluxBB

RSS (new topics) RSS (active topics)