Tài liệu

Tài liệu RunMacro

Tạo robot đầu tiên, rồi tiến xa theo nhu cầu.

Hướng dẫn rõ ràng từng bước để tạo, chạy và cải thiện robot cho công việc máy tính lặp lại.

RunMacro robot
Tài liệu Tính năng Đóng gói dự án
📦 Tính năng

Đóng gói macro và tài nguyên thành dự án PMacro di động

Trong RunMacro Studio, lưu macro gốc, dùng File › Kiểm tra phụ thuộc... như báo cáo tham khảo rồi chọn File › Đóng gói dự án.... Analyzer có thể báo sai với RunMacro package protected/app-key hiện tại vì chờ macro.json, trong khi exporter vẫn có thể đóng gói được. Hãy kiểm thử archive ở thư mục sạch và nhớ nội dung PMacro đọc được như ZIP.

Điều kiện cần

  • Workflow trong Studio phải có ít nhất một lệnh; dự án trống bị từ chối.
  • Nên lưu PMacro gốc và từng PMacro con trước để đường dẫn tương đối được giải từ đúng thư mục sở hữu.
  • Các file PMacro/RunMacro package con, ảnh Find Image và selector profile đã tham chiếu phải tồn tại và có quyền đọc.
  • RunMacro package con có thể mở bằng khóa ứng dụng; RunMacro package con đặt mật khẩu không thể được nhúng đệ quy.
  • Thư mục đích phải ghi được và còn đủ dung lượng cho archive cùng bản sao lưu khi ghi đè.
  • Phải rà soát và loại token, mật khẩu, cookie hoặc dữ liệu riêng tư khỏi macro và metadata trước khi chia sẻ.

Chế độ hỗ trợ

  • Chế độ DesktopThao tác đóng gói nằm trong Studio và dùng được khi workspace đang ở Chế độ Desktop. Gói giữ metadata mode nhưng không biến lệnh Desktop thành lệnh Trình duyệt.
  • Chế độ BrowserDùng được trong Studio ở Chế độ Trình duyệt. Macro, selector và ảnh được đóng gói, nhưng profile Chrome, cookie, phần mềm provider, API cục bộ và môi trường trình duyệt không được mang theo.

Chức năng này làm gì

Đóng gói dự án tạo một file .pmacro có thể sửa, thực chất là kho ZIP chứa macro.json, manifest, selector đã dùng, ảnh và thư mục submacros/ khi có. RunMacro quét các lệnh gọi PMacro, RunMacro package, handler chạy macro của Window Watcher và ảnh Find Image, rồi nhúng phụ thuộc theo cây và đổi tham chiếu trong bản đóng gói sang đường dẫn nội bộ. Macro nguồn đang mở không bị thay đổi. Khác với thao tác lưu PMacro thường — vốn giữ macro con là file ngoài — Package Project và Export RunMacro package đều thu thập đệ quy; tuy nhiên dự án PMacro vẫn là nội dung chữ thường, còn RunMacro package niêm phong payload đã mã hóa.

Khi nào nên dùng

  • Chuyển một workflow có nhiều macro con và ảnh sang máy khác mà không muốn chép từng file thủ công.
  • Bàn giao cho người nhận một dự án còn sửa được trong Studio, thay vì chỉ phát hành RunMacro package để chạy.
  • Tạo và kiểm thử một archive dự kiến tự chứa của cây PMacro/RunMacro package trước khi lưu trữ hoặc gửi hỗ trợ.
  • Chuẩn hóa lại những tham chiếu nằm rải rác thành đường dẫn nội bộ trong một file dự án.

Khi nào không nên dùng

  • Cần giữ kín logic, token, mật khẩu hoặc dữ liệu trong macro — Package Project không mã hóa nội dung.
  • Muốn phát hành file chỉ chạy trong RunMacro Runner, có metadata, form đầu vào, Safe Mode hoặc mật khẩu — hãy dùng Export RunMacro package.
  • Phụ thuộc được tạo bằng code, lấy từ dữ liệu động hoặc nằm ngoài các trường lệnh được nhận diện; bộ đóng gói không thể tự khám phá mọi file tùy ý.
  • Cần đồng bộ thay đổi hoặc lịch sử phiên bản giữa nhiều người; gói là một ảnh chụp, không phải hệ thống merge hay Đồng bộ đám mây.

Các bước cấu hình

  1. Mở workflow gốc trong RunMacro Studio, chạy thử và lưu nó xuống đĩa. Nếu có macro con có thể sửa, cũng lưu các file đó để cố định thư mục gốc của đường dẫn tương đối.
  2. Chọn File › Kiểm tra phụ thuộc... để quét các trường được nhận diện, nhưng coi kết quả là tham khảo: analyzer hiện chờ macro.json nên không đọc đáng tin cậy RunMacro package protected/app-key hiện tại.
  3. Sửa mục thiếu thật, vòng gọi A → B → A, cây sâu quá giới hạn và RunMacro package con có mật khẩu. Nếu chỉ RunMacro package app-key bị báo thiếu macro.json, ghi nhận đó có thể là false positive và để bước exporter cùng kiểm thử sạch quyết định.
  4. Chọn File › Đóng gói dự án.... Lệnh này tách biệt với Xuất dưới dạng RunMacro package... và không mở hộp cấu hình bảo vệ.
  5. Trong Save As, chọn thư mục đích và đặt tên. RunMacro gợi ý workflow-project.pmacro hoặc <tên-hiện-tại>-project.pmacro; nếu bỏ đuôi, .pmacro được thêm tự động.
  6. Đọc preflight trước khi ghi. Chọn Không với mục thiếu thật; riêng lỗi macro.json của RunMacro package protected/app-key có thể là false positive dù exporter vẫn đóng gói được. Nếu tiếp tục, bắt buộc kiểm thử archive với nguồn cũ không còn truy cập.
  7. RunMacro nhúng đệ quy các phụ thuộc tìm được, tạo tên chống trùng trong submacros/images/, ghi manifest/hash tài nguyên, rồi đổi tham chiếu của bản sao đóng gói.
  8. Chờ thông báo thành công. Nếu ghi đè file có sẵn, quá trình ghi qua file tạm và giữ bản trước ở đuôi .bak. Workflow đang mở và trạng thái đã sửa của nó không đổi.
  9. Chép file dự án sang một thư mục thử, tạm đổi tên hoặc di chuyển nguồn cũ, mở gói trong Studio và chạy toàn bộ nhánh. Sau khi chỉnh gói, dùng Đóng gói dự án... lần nữa để giữ tính di động.

Giải thích từng tùy chọn

File › Kiểm tra phụ thuộc...

Tạo báo cáo đường dẫn, dòng lệnh, file thiếu, hash, selector và lỗi đọc, mặc định tối đa 5 tầng. Đây chỉ là phân tích tham khảo: reader yêu cầu macro.json, nên RunMacro package protected/app-key hiện tại có thể bị báo lỗi dù exporter vẫn đóng gói được.

File › Đóng gói dự án...

Xuất workflow đang mở thành dự án PMacro có thể sửa. Workflow trống bị từ chối; thao tác không đổi file hiện tại, dirty state hay mode của Studio.

Tên và vị trí file dự án

Save As dùng bộ lọc Dự án PMacro có thể chỉnh sửa (*.pmacro), bắt đầu ở Downloads, gợi ý tên có hậu tố -project và tự thêm .pmacro.

Xác nhận khi thiếu phụ thuộc

Preflight thiếu file sẽ hỏi có tiếp tục không và mặc định chọn Không. Tiếp tục giữ nguyên đường dẫn không tìm thấy, vì vậy gói có thể lỗi khi chạy tới lệnh đó.

Nhúng đệ quy macro con

Tự bật và không có checkbox. Exporter theo dõi Run Macro, Run RunMacro package và Window Watcher khi giải được. Với PMacro lồng lấy từ archive, tham chiếu tương đối có thể giải từ thư mục tạm đã trích xuất thay vì vị trí nguồn ban đầu; exporter vẫn có thể tạo gói đúng nhưng preflight và đường dẫn nhìn thấy có thể gây hiểu nhầm.

Ảnh, selector và resource ID

Ảnh Find Image và selector profile đã dùng được đưa vào archive. Tên file nhận hậu tố MD5 ngắn để tránh đụng, còn resource_id và manifest dùng SHA-256 nội dung.

Lưu PMacro thường so với đóng gói lại

Save PMacro thường không nhúng macro con. Khi mở gói, tài nguyên được giải nén tạm; nếu sửa rồi chỉ Save, tham chiếu có thể trỏ ra thư mục tạm. Hãy chạy Package Project lần nữa để phát hành bản di động mới.

Export RunMacro package (thao tác riêng)

RunMacro package cũng nhúng phụ thuộc đệ quy nhưng tạo payload mã hóa, metadata Runner và tùy chọn mật khẩu. Package Project không nhận các tùy chọn đó và ưu tiên khả năng sửa.

Ghi đè, file tạm và .bak

Khi đích đã tồn tại, RunMacro sao lưu file cũ thành <tên>.bak, ghi và fsync file tạm rồi thay thế nguyên tử để giảm nguy cơ để lại archive dở.

Kết quả mong đợi

Kết quả là một archive .pmacro chỉnh sửa được, có macro.jsonmacro_manifest.json, cộng selector_library.json, images/submacros/ khi cần. Tham chiếu nhận diện được trỏ vào tài nguyên đã nhúng nên cây macro vẫn chạy khi nguồn ngoài không còn. Archive không trở thành tài liệu hiện tại trong Studio và không được mã hóa.

Ví dụ thực tế

Ví dụ: chuyển workflow ba tầng và ảnh sang máy khác

  1. Lưu tong.pmacro, dang_nhap.pmacrobao_cao.pmacro; để mỗi macro con dùng đường dẫn tương đối tới tầng kế tiếp và kiểm tra ảnh Find Image tồn tại.
  2. Mở tong.pmacro, chạy Kiểm tra phụ thuộc..., sửa mục thiếu thật và ghi nhận lỗi macro.json ở RunMacro package protected/app-key có thể là false positive.
  3. Chọn Đóng gói dự án..., lưu thành bao_cao-project.pmacro và chờ thông báo đã nhúng macro con.
  4. Chép duy nhất file kết quả sang máy thử, tạm đổi tên thư mục chứa ba file nguồn và mở archive trong Studio.
  5. Chạy các nhánh đăng nhập, tìm ảnh và báo cáo. Nếu đều chạy, gửi file dự án cùng danh sách yêu cầu môi trường cho máy nhận.

Ví dụ: chỉnh dự án nhận được mà vẫn giữ tính di động

  1. Mở file kiem_ke-project.pmacro của đồng đội trong Studio và xác nhận các lệnh gọi macro con chạy từ bản đã nhúng.
  2. Sửa workflow chính hoặc macro con, rồi chạy thử các nhánh bị ảnh hưởng trong cùng phiên.
  3. Không coi File › Save thường là bản bàn giao cuối, vì thao tác đó không bật nhúng macro con và có thể giữ đường dẫn giải nén tạm.
  4. Chọn File › Đóng gói dự án..., xuất sang kiem_ke-project-v2.pmacro thay vì ghi đè ngay bản nhận được.
  5. Đóng Studio, chuyển v2 sang thư mục sạch, mở và kiểm thử lại trước khi gửi cho đồng đội.

Giới hạn và trường hợp lỗi

  • Dự án PMacro là plaintext. Đổi đuôi thành ZIP có thể đọc macro.json, selector, metadata, đường dẫn và ảnh; không dùng nó để bảo vệ logic hay credential.
  • File thiếu không được nhúng và đường dẫn gốc vẫn nằm trong lệnh. Hộp xác nhận cho phép tiếp tục, nên thông báo xuất thành công không bảo đảm mọi nhánh tự chứa.
  • Vòng phụ thuộc bị phát hiện sẽ làm xuất thất bại và không để lại output dở. Bộ đóng gói chỉ cho tối đa 10 tầng macro lồng.
  • Preflight mặc định chỉ phân tích đệ quy tối đa 5 tầng, ngắn hơn giới hạn đóng gói; lỗi sâu hơn vẫn có thể xuất hiện ở bước tạo archive.
  • Check Dependencies không đọc đáng tin cậy RunMacro package protected/app-key hiện tại vì analyzer đòi macro.json; đây có thể là false positive trong khi exporter giải mã và đóng gói con đó thành công. Báo cáo không bao phủ tin cậy mọi dependency mà exporter hỗ trợ.
  • PMacro lồng được mở từ package có thể mang tham chiếu tương đối giải từ thư mục trích xuất tạm. Exporter đôi khi vẫn remap và đóng gói đúng, nên preflight/path tạm không tự chứng minh output hỏng hoặc di động.
  • RunMacro package con đặt mật khẩu không thể đóng gói lồng vì exporter không có mật khẩu con. RunMacro package mã hóa bằng khóa ứng dụng có thể được app giải và đóng gói lại.
  • Workflow chưa lưu giải đường dẫn tương đối không ổn định: preflight dùng owner giả theo thư mục làm việc, còn export có thể giải theo vị trí output đã chọn.
  • Chỉ Run Macro, Run RunMacro package, Window Watcher chạy macro, Find Image và selector profile được nhận diện. Tệp do Python/code tùy chỉnh hoặc dữ liệu runtime mở sẽ không tự vào gói.
  • Mở dự án giải nén macro con ra thư mục tạm. Sau khi sửa, Save thường có thể làm mất tính tự chứa; phải Package Project lại.
  • Archive không mang theo Chrome profile, cookie, phần mềm anti-profile, API cục bộ, font, Python package, license, quyền admin, biến môi trường hay dịch vụ mạng.
  • Archive bị giới hạn 500 entry, tổng giải nén 200 MiB và 50 MiB cho mỗi member; symlink, đường dẫn tuyệt đối/traversal, file lạ và tên trùng không phân biệt hoa thường bị từ chối khi đọc.

Mẹo & lỗi thường gặp

Trước khi gửi, hãy đổi đuôi bản sao sang .zip và tự xem nội dung như người nhận sẽ thấy. Nếu còn token, mật khẩu hoặc dữ liệu khách hàng, đừng chia sẻ gói.
Lưu macro gốc và macro con trước, rồi dùng Kiểm tra phụ thuộc... như một tín hiệu, không phải phán quyết. Luôn kiểm thử gói sạch vì RunMacro package protected và đường dẫn trích xuất tạm có thể làm preflight sai lệch.
PMacro thường giữ macro con ở ngoài; Package Project sao chép đệ quy nhưng vẫn đọc được; RunMacro package sao chép đệ quy vào payload mã hóa. Ba định dạng phục vụ ba mục đích khác nhau.
Nút tiếp tục khi thiếu phụ thuộc chỉ dành cho trường hợp nhánh đó cố ý dùng file sẽ có ở máy đích. Mặc định Không là lựa chọn an toàn.
Sau khi chỉnh một gói đã mở, luôn tạo file -v2 bằng Package Project và thử ở thư mục sạch. Đừng chỉ Save rồi gửi lại file đang mở.

Thông tin kiểm chứng

  • storage/json_store.py
  • core/macro_path.py
  • core/macro_dependency_analyzer.py
  • tests/test_project_package.py
  • tests/test_phase_b_package.py
Robot biểu tượng của RunMacro

Công việc của robot. Thời gian của bạn.

Tạo robot trong vài phút, không cần lập trình. Chạy ổn định, quản lý từ xa, chi phí rõ ràng — và bạn luôn giữ quyền kiểm soát.