Automator : ตัวอย่างการใช้งานค่า Variables ใน Automator

บทความนี้จะเป็นตัวอย่างการใช้งานเกี่ยวกับค่า Variables ของ Automator นะครับซึ่งจะนำ workflow จากบทความตัวอย่างสำหรับการย่อรูป มาปรับปรุงต่อกัน ซึ่งจะมีการข้ามเนื้อหาบางส่วนที่เคยเขียนไว้แล้วไป ถ้าใครยังไม่ได้อ่าน ก็ลองอ่านบทความนั้นก่อนเพื่อความสมบูรณ์ของเนื้อหานะครับ

Variables : เป็นคล้าย ๆ ตัวแปรที่จะจำข้อมูลของผลลัพท์ที่เกิดขึ้นใน workflow แล้วนำมาใช้ตรงไหนก็ได้ของ workflow ครับ .. คือปรกติการทำงานของ workflow ทั่วไป จะทำงานแบบไล่จากบนลงล่าง เราจะสั่งข้ามขั้นตอนหรือว่าใช้ผลลัพท์จาก action อื่นมาเป็น input ไม่ได้.. แต่ Variables จะเป็นตัวช่วยให้เราทำตรงนี้ครับ ซึ่งทำให้เราสามารถสร้าง workflow ที่สลับซับซ้อนขึ้นกว่าเดิมได้

workflow ปรกติเป็นประมาณนี้

  • ขั้นตอนที่ 1 ได้ผลลัพท์เพื่อนำไปใช้ในขั้นตอนที่ 2 เท่านั้น
  • ขั้นตอนที่ 2 ได้ผลลัพท์เพื่อนำไปใช้ในขั้นตอนที่ 3 เท่านั้น
  • ขั้นตอนที่ 3 ได้ผลลัพท์เพื่อนำไปใช้ในขั้นตอนที่ 4 เท่านั้น
  • ขั้นตอนที่ 4 ได้ผลลัพท์เพื่อนำไปใช้ในขั้นตอนที่ 5 เท่านั้น
  • ขั้นตอนที่ 5 จบการทำงาน

ถ้าเราใช้ Variables ช่วย เราสามารถทำได้แบบนี้

  • ขั้นตอนที่ 1 ได้ผลลัพท์เพื่อนำไปใช้ในขั้นตอนที่ 2,3,4 หรือ 5
  • ขั้นตอนที่ 2 ได้ผลลัพท์เพื่อนำไปใช้ในขั้นตอนที่ 3 ,4 หรือ 5
  • ขั้นตอนที่ 3 ได้ผลลัพท์เพื่อนำไปใช้ในขั้นตอนที่ 4 หรือ 5
  • ขั้นตอนที่ 4 ได้ผลลัพท์เพื่อนำไปใช้ในขั้นตอนที่ 5
  • ขั้นตอนที่ 5 จบการทำงาน

note : ที่ไฮไลท์สีนำเงินคือความแตกต่างในการใช้ Variables เข้าช่วยครับ

ตัวอย่าง :
จากเดิมผมทำ workflow สำหรับย่อรูปปรกติทั่วไปแต่ผมต้องการเพิ่มขั้นตอนบางอย่างลงไปให้ workflow เดิมครับ มีโจทก์เป็นแบบนี้..

ผมต้องการให้ทุกครั้งที่มีการสั่ง workflow เพื่อย่อรูป จะมีการสร้าง folder ขึ้นมาใหม่แบบอัตโนมัติ (จะตั้งชื่อเองหรือไม่ก็ได้) แล้วย้ายไฟล์ที่ย่อแล้วไปไว้ใน folder นั้นทุก ๆ ครั้งเมื่อย่อรูปเสร็จแล้ว

จากตรงนี้ จะเห็นว่า แค่ย่อรูปกับสร้าง folder ขึ้นมาใหม่ workflow ปรกติก็สามารถทำได้อยู่แล้ว แต่จะทำอย่างไร ให้มีการย้ายไฟล์รูปที่ย่อเสร็จแล้วลงไปใน folder ใหม่ ... ตรงนี้เป็นขั้นตอนที่ปรกติเราทำแบบอัตโนมัติไม่ได้ เราเลยต้องอาศัย Vaiables ช่วย

ภาพรวม
workflow ย่อรูปของเดิมเป็นแบบนี้

  • Action 1 : Ask for Finder Items
  • Action 2 : Copy Finder Items
  • Action 3 : Scale Images

workflow ใหม่จะแทรก Action ต่อไปนี้ลงไป (Action ใหม่จะเป็นสีแดง)

  • Action 1: Files & Folders / New Finder
  • Action 2 : Utilities / Set Value for Variables
  • Action 3 : Ask for Finder Items
  • Action 4 : Copy Finder Items
  • Action 5 : Scale Images

อธิบาย
เปิด workflow สำหรับย่อรูปของเราที่ save เอาไว้ขึ้นมา (ใครยังไม่มี ลองทำตามในบทความก่อนหน้านี้นะครับ ยิ้ม)

ขั้นตอนที่ 1
แทรก Action : New Folder จากในหัวข้อ Files & Folders มาไว้ในขั้นตอนแรก ถ้าต้องการตั้งชื่อ Folder ใหม่เองตอน workflow ทำงาน ให้เลือก Options : Show this action when the workflow runs ครับ

note : ถ้าใครยังสร้าง workflow ไม่คล่อง รบกวนดู ตัวอย่าง workflow สำหรับย่อรูป ทั้ง 2 ตอนประกอบนะครับ

ขั้นตอนที่ 2
แทรก Action : Set Value for Variables (ในหัวข้อ Utilities) เป็น Action ที่ 2 ครับ

sample-va-03_0.jpg

เมื่อแทรกเข้ามาแล้ว หน้าตาของ Action : Set Value for Variables จะเป็นแบบนี้

sample-va-01_0.jpg

เสร็จแล้วจะได้หน้าตา workflow ใหม่ประมาณนี้ครับ (ผมพับ workflow บางอันเก็บไป เปิดเฉพาะอันที่เกี่ยวข้องกับเนื้อหาใหม่นะครับ)

sample-va-02_0.jpg

สังเกตว่า Action 2 กับ Action 3 นั้นไม่เชื่อมต่อกันนะครับ หมายความว่า workflow นี้จะแบ่งการทำงานออกเป็น 2 ชุดด้วยกัน

  • ชุดแรกคือการสร้าง folder ใหม่แล้วจำค่านั้นเอาไว้
  • ชุดที่สองคือคำสั่งย่อรูปตามปรกติ

วิธีแบ่ง workflow ให้ทำแบบนี้ครับ
ไปคลิ๊กขวา (Ctrl+Click) ที่ Action : Ask for Finder Items แล้วเลือก Ignore Input

ignor-input_0.jpg

แล้วเราก็จะได้หน้าตาของ workflow แบบนี้มา

ingnor-input-1_0.jpg

note : สังเกตดูว่า Actions ไม่ต่อกันแล้วนะครับ

ขั้นตอนที่ 3
ใน Action ที่ 2 ให้คลิ๊กไปที่คำว่า New variable.. ในช่องที่มีให้เลือก

sample-va-04_0.jpg

จะมี pop up หน้าต่างใหม่เล็ก ๆ ขึ้นมาให้เราตั้งชื่อ Variables นี้ครับ

sample-va-05_0.jpg

เค้าจะตั้งมาให้เองว่า New Storage ส่วนถ้าใครต้องการจะเปลี่ยนเป็นชื่ออื่นก็ทำได้จากตรงนี้ครับ แต่ในบทความนี้ผมอ้างอิงกับคำว่า New Storage เป็นหลัก จากนั้นกด Done แล้วจะเราจะเห็นช่อง Variable แสดงขึ้นมาที่ด้านล่าง workflow pane พร้อมด้วยค่า New Storage เป็น Variable ที่เราเพิ่งสร้างไปตะกี๊ขึ้นมาครับ ตามรูปนี้

sample-va-06_0.jpg

การสร้าง Variables ในขั้นตอนนี้ จะหมายถึงการจำค่า Folder ที่เราสร้างใหม่นี้เอาไว้ ทั้งชื่อ Folder และ Path มายัง Folder นี้ครับ

ขั้นตอนที่ 4
จากหน้าต่าง Variable นี้ ให้เราคลิ๊กตัว New Storage แล้วลากขึ้นมาไว้แทนตำแหน่ง To ของ Action : Copy Finder Items ครับ แบบนี้

sample-va-07_0.jpg

แล้วเราจะได้ผลลัพท์แบบนี้

sample-va-09_0.jpg

เสร็จแล้วครับ ภาพรวมของ workflow ที่เสร็จแล้วจะได้แบบนี้

sample-va-10_0.jpg

จะเห็นว่ามีตัว Variable แทรกอยู่ 2 จุด คือ

  • ใน Action 2 : ให้โปรแกรมจำ Folder ใหม่เอาไว้ และนำ path มายัง folder ใหม่นี้ไปใช้ใน
  • และใน Action 4 : Copy Finder Items ครับ เมื่อเราสั่ง workflow นี้จะมีการสร้าง Folder ขึ้นมาใหม่ (ตรงนี้จะเลือก Option ให้แสดงขึ้นมาตอน workflow ทำงานด้วยก็ได้ เพื่อที่เราจะได้ตั้งชื่อ Folder เอง ถ้าไม่เลือกตรงนี้ folder ใหม่ที่ถูกสร้างขึ้นจะมีชื่อว่า untitled folder เสมอ

จากนั้นลองสั่ง RUN workflow ใหม่นี้ดูถ้าไม่มีอะไรผิดพลาด จะมี folder เกิดขึ้นใหม่ และภาพที่ย่อขนาดแล้วจะถูกนำมาใส่ไว้ใน folder นี้ครับ

หมดแล้วครับ หวังว่าคงพอเป็นประโยชน์กับผู้ใช้งานแมคมือใหม่ขึ้นมาบ้าง ไม่มากก็น้อยนะครับ ยิ้ม

ก๊อก