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.

Đó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ế độ Desktop — Thao 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ế độ Browser — Dù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
- 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.
- 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.jsonnên không đọc đáng tin cậy RunMacro package protected/app-key hiện tại. - 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. - 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ệ.
- Trong Save As, chọn thư mục đích và đặt tên. RunMacro gợi ý
workflow-project.pmacrohoặc<tên-hiện-tại>-project.pmacro; nếu bỏ đuôi,.pmacrođược thêm tự động. - Đọc preflight trước khi ghi. Chọn Không với mục thiếu thật; riêng lỗi
macro.jsoncủ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. - RunMacro nhúng đệ quy các phụ thuộc tìm được, tạo tên chống trùng trong
submacros/vàimages/, ghi manifest/hash tài nguyên, rồi đổi tham chiếu của bản sao đóng gói. - 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. - 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
Kết quả mong đợi
Kết quả là một archive .pmacro chỉnh sửa được, có macro.json và macro_manifest.json, cộng selector_library.json, images/ và 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
- Lưu
tong.pmacro,dang_nhap.pmacrovàbao_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. - Mở
tong.pmacro, chạy Kiểm tra phụ thuộc..., sửa mục thiếu thật và ghi nhận lỗimacro.jsonở RunMacro package protected/app-key có thể là false positive. - Chọn Đóng gói dự án..., lưu thành
bao_cao-project.pmacrovà chờ thông báo đã nhúng macro con. - 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.
- 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
- Mở file
kiem_ke-project.pmacrocủ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. - 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.
- 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.
- Chọn File › Đóng gói dự án..., xuất sang
kiem_ke-project-v2.pmacrothay vì ghi đè ngay bản nhận được. - Đó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
.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.-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.pycore/macro_path.pycore/macro_dependency_analyzer.pytests/test_project_package.pytests/test_phase_b_package.py
RunMacro