Newbies Kezers Posted July 29, 2020 Newbies Posted July 29, 2020 Hello, I have this applescript who is working well: do shell script "curl \"http://127.0.0.1:4490/action.html?macro=4A91C4B8*nome file.jpg\"" Since I should replace “nome file.jpg” with a Filemaker field value, I modified it to be a Calculated Applescript like this: "do shell script \"curl \"http://127.0.0.1:4490/action.html?macro=4A91C4B8*" & OrderLines::CustomerFileName & "\"\""" But this script always report me an error about “”” I guess there is some syntax error but I don’t see where. Anyone can help me to understand the logic and correct the syntax?
comment Posted July 29, 2020 Posted July 29, 2020 (edited) You seem to be running into the same issue again and again. Here is a generic method you can use to solve this kind of problem: 1. Paste your native, working AppleScript into a text field. 2. Use a calculation field or the Data Viewer to calculate: Quote ( Texfield ) This will return, in your example: "do shell script \"curl \\\"http://127.0.0.1:4490/action.html?macro=4A91C4B8*nome file.jpg\\\"\"" 3. Locate the string you want to replace with a field value. Place a closing quote before this string and an opening quote after it and insert a reference to your field in between: "do shell script \"curl \\\"http://127.0.0.1:4490/action.html?macro=4A91C4B8*" & OrderLines::CustomerFileName & "\\\"\"" Another option is to start by replacing any variables that need to use field values with placeholders - for example: do shell script "curl \"http://127.0.0.1:4490/action.html?macro=4A91C4B8*«fileName»\"" Applying Quote() to the result produces: "do shell script \"curl \\\"http://127.0.0.1:4490/action.html?macro=4A91C4B8*«fileName»\\\"\"" Now you can make your calculation = Let ( template = "do shell script \"curl \\\"http://127.0.0.1:4490/action.html?macro=4A91C4B8*«fileName»\\\"\"¶" ; Substitute ( template ; "«fileName»" ; OrderLines::CustomerFileName ) ) This is especially convenient when you have more than one field value to insert into the AppleScript. In recent versions you can also use the Insert Calculated Result[] script step to populate a variable with the text of the native AppleScript (with placeholders), without having to use the Quote() function. Then you can do just = Substitute ( $template ; "«fileName»" ; OrderLines::CustomerFileName ) to calculate the final AppleScript. Finally, keep in mind the option to read Filemaker fields directly from the AppleScript. Edited July 30, 2020 by comment
Newbies Kezers Posted July 30, 2020 Author Newbies Posted July 30, 2020 Hello comment, I appreciated very much your effort and your explanation!!! I’m very happy, finally I finally understood the method. Thank you!!!
Recommended Posts
This topic is 1577 days old. Please don't post here. Open a new topic instead.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now