Hướng dẫn javascript workflow engine - công cụ quy trình làm việc javascript
Tất cả các biểu mẫu có thể kích hoạt công cụ quy trình công việc JavaScript phía máy chủ của Ragic để thực hiện logic kinh doanh phức tạp, chẳng hạn như tính toán chi phí và đăng cân bằng hàng tồn kho. Về cơ bản, bất kỳ logic kinh doanh phức tạp nào mà bạn muốn thực hiện nhưng không thể được bao phủ bởi các chức năng hiện có của Ragic đều có thể được bao phủ bởi kịch bản phía máy chủ.server-side Javascript workflow engine to execute complex business logic, such as calculating costs and posting inventory balance. Basically, any complex business logic that you would like to execute but cannot be covered by Ragic's existing functions can be covered by server-side scripting. Show
Công cụ kịch bản dựa trên công cụ kịch bản Java tiêu chuẩn Nashorn được bao gồm trong nền tảng Java. Nashorn hỗ trợ Ecmascript 5.1, vì vậy sẽ là khôn ngoan khi tránh cú pháp Ecmascript 6. Quy trình làm việc của JavaScript làm gì?Giao diện thiết kế bảng tính của Ragic có thể xử lý hầu hết các công việc quản lý dữ liệu của bạn, chẳng hạn như tạo, chỉnh sửa và truy vấn hồ sơ mà không gặp nhiều vấn đề. Mặt khác, bảo trì dữ liệu thủ công có thể tốn thời gian và thói quen một chút sau một thời gian. Đây là thời điểm mà người dùng gagic sẽ bắt đầu nghĩ cách tự động hóa các quy trình này. Bên trong Ragic, có một công cụ kịch bản khá mạnh mẽ, nơi bạn có thể viết JavaScript chạy ở phía máy chủ, để truy xuất dữ liệu bạn có trên bảng tính của mình, thực hiện sửa đổi hoặc thậm chí tạo nhiều bản ghi chỉ bằng một lần nhấp. Việc sử dụng điển hình bao gồm cập nhật hàng tồn kho, tạo một bản ghi mới dựa trên một bản khác (tạo đơn đặt hàng từ báo giá, tạo liên hệ từ khách hàng tiềm năng bán hàng) hoặc thực hiện xác thực bản ghi dựa trên dữ liệu cơ sở dữ liệu. Có 5 cách chính để chạy quy trình công việc JavaScript của bạn:
Và có một quy trình công việc toàn cầu nơi bạn có thể đặt các định nghĩa chức năng JavaScript chung được chia sẻ bởi nhiều hơn một trong các tập lệnh quy trình làm việc của bạn. Nút hành độngQuy trình làm việc hàng ngàyinstalled sheet scope of your sheet, and configure an action button to execute the script when the user clicks on the button that will be displayed in the "Actions" panel in the lower right side. Quy trình công việc phê duyệtJavascript Workflow: Và có một quy trình công việc toàn cầu nơi bạn có thể đặt các định nghĩa chức năng JavaScript chung được chia sẻ bởi nhiều hơn một trong các tập lệnh quy trình làm việc của bạn.installed sheet scope from the top dropdown: Đây là cách phổ biến và sạch nhất nhất để chạy quy trình công việc JavaScript và nói chung là đề xuất đầu tiên của chúng tôi. Bạn có thể viết tập lệnh của mình trong phạm vi trang tính đã cài đặt của trang tính của mình và định cấu hình nút hành động để thực thi tập lệnh khi người dùng nhấp vào nút sẽ được hiển thị trong bảng "Hành động" ở phía dưới bên phải.Action Button of the type JS Workflow, and refer to the Javascript function that you have written. Để thêm tập lệnh phạm vi trang tính đã cài đặt, chỉ cần nhấp chuột phải vào một tờ và chọn JavaScript Workflow:
Và chọn phạm vi trang tính đã cài đặt từ thả xuống trên cùng: Post-workflowSau đó, bạn có thể vào trang biểu mẫu của thiết kế trang tính của mình và thêm một nút hành động của quy trình làm việc loại JS và tham khảo chức năng JavaScript mà bạn đã viết. Lưu ý rằng bạn có thể vượt qua ID bản ghi của bản ghi hiện tại bằng cách sử dụng {id} trong đối số cho cuộc gọi chức năng như:Javascript Workflow: Tất nhiên, chúng tôi sẽ nói thêm về cách viết các chức năng này trong các phần sau.Post-workflow from the top dropdown. Dòng sau làm việc được thực hiện ngay sau khi một bản ghi được lưu. Với dòng chảy sau làm việc, rất thuận tiện để tự động hóa các thay đổi mà bạn muốn thực hiện trong hồ sơ mà bạn vừa lưu mà không thể thực hiện với các công thức. Hoặc bạn có thể thực hiện sửa đổi cho hồ sơ trên các bảng liên quan khác, như cập nhật số dư hàng tồn kho.
Để thêm một dòng sau khi làm việc, chỉ cần nhấp chuột phải vào một tờ và chọn JavaScript Workflow: Và chọn dòng sau làm việc từ thả xuống hàng đầu. Pre-workflowMột dòng sau khi làm việc điển hình sẽ trông giống như thế này: Xem tài liệu tham khảo API của chúng tôi và các phần khác của tài liệu này để biết danh sách những điều bạn có thể làm.Javascript Workflow: Cũng lưu ý rằng dòng sau làm việc sẽ không được thực thi nếu bạn sửa đổi các mục trên trang danh sách.Pre-workflow from the top dropdown. Các công trình trước được thực hiện trước khi một bản ghi được lưu, do đó nó có thể được sử dụng như một cách xác thực để kiểm tra dữ liệu được nhập so với dữ liệu trong cơ sở dữ liệu. Nói chung, hầu hết các xác thực có thể được thực hiện với kiểm tra biểu thức chính quy phía trước của chúng tôi hoặc hộp kiểm duy nhất cho các trường văn bản miễn phí. Nhưng để kiểm tra phụ trợ phức tạp hơn, đôi khi sẽ cần phải làm việc trước. Để thêm một luồng trước, chỉ cần nhấp chuột phải vào một tờ và chọn JavaScript Workflow: Và chọn trước khi làm việc từ thả xuống hàng đầu.
Có một ví dụ đơn giản: Giả sử chúng tôi có một danh sách,param to get old value and new value instead. Và chúng tôi muốn đảm bảo giá chúng tôi muốn tiết kiệm không phải là tiêu cực.Và bây giờ chúng tôi cố gắng tiết kiệm một mức giá âm, chúng tôi sẽ nhận được Đáng chú ý là chúng tôi không thể sử dụng Entry.getFieldValue trong khi viết dòng tiền làm việc trước bằng gagic (vì Ragic chưa lưu nó). Thay vào đó, hãy cố gắng sử dụng tham số để có được giá trị cũ và giá trị mới.Global Javascript Workflow: Quy trình làm việc hàng ngàyDaily Workflow at the first top dropdown. Quy trình làm việc hàng ngày chạy hàng ngày. Nó hữu ích cho việc thực hiện các sửa đổi cần được làm mới mỗi ngày. Giống như cập nhật kết quả của các công thức dựa trên ngày hiện tại.Company Setting: 1. Chuyển đến thiết lập tài khoảnAccount Setup 2. Nhấp vào cài đặt công tyCompany Setting 3. Chọn Công ty Múi giờ địa phương và Thời gian thực hiện quy trình làm việc hàng ngày và tiết kiệm.Company Local Time Zone and Daily Workflow Execution Time and save. Nếu cài đặt công ty của bạn không có múi giờ địa phương của công ty và thời gian thực hiện quy trình làm việc hàng ngày, vui lòng liên hệ với chúng tôi để cập nhật nó cho bạn.Company Setting does not have Company Local Time Zone and Daily Workflow Execution Time, please contact us to update it for you. Quy trình công việc phê duyệtQuy trình công việc phê duyệt được thực hiện ngay sau khi phê duyệt được tạo/từ chối/hủy bỏ/hoàn thành. Để thêm một dòng sau khi làm việc, chỉ cần nhấp chuột phải vào một tờ và chọn JavaScript Workflow:Javascript Workflow: Và chọn quy trình làm việc phê duyệt từ thả xuống hàng đầu.Approval Workflow from the top dropdown. Bạn có thể nhận được ID bản ghi bởi: var recordId = approvalParam.getEntryRootNodeId(); Phê duyệt là một biến được xác định trước trong phạm vi quy trình công việc phê duyệt. Và bạn có thể lấy hành động phê duyệt bằng cách: var action = approvalParam.getApprovalAction(); Sau khi nhận được dữ liệu trên, bạn có thể tùy chỉnh yêu cầu của mình như thế này:
Quy trình làm việc toàn cầuQuy trình làm việc toàn cầu là một nơi mà bạn có thể viết các mô -đun quy trình công việc JavaScript mà các chức năng quy trình công việc khác có thể tham chiếu. Nó sẽ không được tự mình xuất hiện, nhưng có thể được tham chiếu trong bất kỳ loại công việc nào được liệt kê ở trên. Đó là một nơi tuyệt vời để đặt các tập lệnh mà bạn có thể cần phải nhân đôi nhiều tờ nếu không. Để thêm quy trình làm việc toàn cầu, chỉ cần nhấp chuột phải vào một tab và chọn quy trình công việc JavaScript toàn cầu:Global Javascript Workflow: Nhận hồ sơCó hai cách khác nhau để có được bản ghi hiện tại mà người dùng đang xem (đối với các nút hành động) hoặc bản ghi mà người dùng vừa lưu (đối với Flowflow và Post-Workflow). Nút hành độngNút hành động biểu mẫu hoạt động bằng cách định cấu hình nút hành động để gọi một hàm bạn đã xác định trong phạm vi trang trí. Khi bạn xác định chức năng mà nút hành động gọi, bạn có thể truyền tham số {id}, đó là ID của bản ghi nơi bạn nhấp vào nút hành động đến các chức năng trong quy trình làm việc.{id} which is the id of record where you click action button to functions in workflow. Bạn có thể thấy ví dụ tại Nút hành động Quy trình làm việc. Pre-workflowBạn có thể nhận được ID bản ghi bởi: var recordId = param.getNewNodeId(key_field_id_of_form); Phê duyệt là một biến được xác định trước trong phạm vi quy trình công việc phê duyệt. Và bạn có thể lấy hành động phê duyệt bằng cách:
Post-workflowSau khi nhận được dữ liệu trên, bạn có thể tùy chỉnh yêu cầu của mình như thế này:
Quy trình làm việc toàn cầu
Quy trình làm việc toàn cầu là một nơi mà bạn có thể viết các mô -đun quy trình công việc JavaScript mà các chức năng quy trình công việc khác có thể tham chiếu. Nó sẽ không được tự mình xuất hiện, nhưng có thể được tham chiếu trong bất kỳ loại công việc nào được liệt kê ở trên. Đó là một nơi tuyệt vời để đặt các tập lệnh mà bạn có thể cần phải nhân đôi nhiều tờ nếu không.query.addIgnoreMaskDomain(fieldId_of_the_masked_field) instead of query.setIgnoreAllMasks(true) to unmask only specific fields. Để thêm quy trình làm việc toàn cầu, chỉ cần nhấp chuột phải vào một tab và chọn quy trình công việc JavaScript toàn cầu: Nhận hồ sơ Có hai cách khác nhau để có được bản ghi hiện tại mà người dùng đang xem (đối với các nút hành động) hoặc bản ghi mà người dùng vừa lưu (đối với Flowflow và Post-Workflow).Nút hành động 0 Nút hành động biểu mẫu hoạt động bằng cách định cấu hình nút hành động để gọi một hàm bạn đã xác định trong phạm vi trang trí. Khi bạn xác định chức năng mà nút hành động gọi, bạn có thể truyền tham số {id}, đó là ID của bản ghi nơi bạn nhấp vào nút hành động đến các chức năng trong quy trình làm việc.addFilter(fieldId, operator, value), and call getAPIResultList() to get the list of records. Bạn có thể thấy ví dụ tại Nút hành động Quy trình làm việc.
REGEXyyyy/MM/dd or yyyy/MM/dd HH:mm:ss Lớn hơn hoặc bằngfull text search as a query filter by calling setFullTextSearch(String queryTerm) instead of addFilter(). > =Ít hơn hoặc bằng nhau Let's start with a simple example which retrieves the current record as an object, update its value with a button, and then saves it back to the database. Here is what the demo form looks like: Lớn hơn 1 >db is predefined. You can reference to it anywhere. Generally we call the method getAPIQuery(pathName) to retrieve the query object for a sheet. Ít hơngetAPIEntry(recordId), and call setFieldValue(fieldId,value) to set value to a field, or getFieldValue(fieldId) to retrieve value from a record. < yyyy/MM/dd Chứa HH:mm:ss giốnggetFieldValues(fieldId) to retrieve all the values in an array. You can also call setFieldValue(fieldId,value,true) with an extra true argument at the end to specify that you're "adding" an option to the current list of values, not overwriting the existing ones. Note that these operations is only suitable for multiple selection fields. Nếu bạn muốn sao chép giá trị trường nhiều lựa chọn và ghi đè giá trị trong trường nhiều lựa chọn Anthother, bạn không thể chỉ sử dụng getFieldValues (fieldID) và setFieldValue (fieldID, value, true). Đây là mã mà bạn có thể tham khảo:getFieldValues(fieldId) and setFieldValue(fieldId,value,true). Here's the code that you can refer to: 2 Xin lưu ý rằng bạn cần truy xuất mọi tùy chọn và định dạng các tùy chọn đó bằng ký tự thanh dọc (|) giống như những gì bạn sẽ làm trong khi nhập dữ liệu hiện có từ các tệp Excel hoặc CSV. Nếu bạn đặt giá trị thành trường Tải lên tệp, bạn có thể sử dụng SetFieldFile (Int FieldID, String FileName, String FileContent) để tạo tệp với tên tệp và với fileContent bạn đã cung cấp. Ragic sau đó sẽ lưu tệp này vào trường này để tệp có sẵn để tải xuống trên giao diện người dùng. Sau khi bạn hoàn thành, chỉ cần gọi Save () trên đối tượng Ghi để lưu nó trở lại cơ sở dữ liệu.save() on the record object to save it back to the database. Tạo hồ sơTạo hồ sơ rất giống với các bản ghi cập nhật. Thay vì gọi query.getApientry (), hãy gọi query.insertapientry () thay thế. Giống như getapientry (), nó cũng sẽ trả về một bản ghi nơi bạn có thể setfieldvalue để thêm các giá trị trường. Bản ghi sẽ được tạo sau khi gọi record.save ().query.insertAPIEntry() instead. Like getAPIEntry(), it will also return a record where you can setFieldValue to add field values. The record will be created after calling record.save(). Một sửa đổi đơn giản của bản demo cập nhật bản ghi như thế này sẽ tạo ra bản ghi mới thay thế: thay vào đó: 3 SubtablesLiên kết đến ví dụ Nếu bạn có các vật phụ trong một tờ, bạn cũng có thể sử dụng API của chúng tôi để truy xuất dữ liệu từ nó hoặc thực hiện các chỉnh sửa như ví dụ sau. Biểu mẫu trông như thế này: Quy trình làm việc sẽ đi qua từng hàng trong Subtable và tìm tổng số tiền cho năm nay (theo trường ngày trong Subtable), tổng số năm với số tiền nhiều nhất và xác định năm nào có tổng số cao nhất. Điều này được thiết kế như một dòng sau làm việc, vì vậy ba trường chỉ đọc sẽ được lấp đầy bởi quy trình làm việc sau khi hồ sơ được lưu. 4 Ý tưởng cơ bản là sử dụng getSubTablesize (subtableID) để có được số lượng hàng cho một bản ghi và sử dụng getSubTableFieldValue (subtableID, subtableDerowIndex, subtableFieldID) để truy xuất các giá trị của chúng. Bạn sẽ có thể tìm thấy ID phụ, thông tin ID trường trong các nhận xét được tạo tự động khi bạn bắt đầu chỉnh sửa tập lệnh quy trình công việc.getSubtableSize(subtableId) to get the number of rows for a record, and use getSubtableFieldValue(subtableId,subtableRowIndex,subtableFieldId) to retrieve their values. You should be able to find subtable id, field id information in the auto generated comments when you start editing workflow scripts. Bạn cũng có thể sử dụng SetSubTableFieldValue (subtableFieldId, subtableRootNodeID, giá trị) để đặt các giá trị thành một phép trừ. SubtablerootNodeID được sử dụng để chỉ định hàng phụ nào mà bạn đang đề cập đến. Để tìm một SubtableMootNodeID cho một hàng có thể phụ hiện có, bạn có thể sử dụng Call getSubTablerootNodeID sau đây (subtableId, subtableBlerowIndex) sẽ trả về một số nguyên chứa subtableBlerootNodeID.setSubtableFieldValue(subtableFieldId,subtableRootNodeId,value) to set values to a subtable. The subtableRootNodeId is used to specify which subtable row that you're referring to. To find a subtableRootNodeId for an existing subtable row, you can use the following call getSubtableRootNodeId(subtableId,subtableRowIndex) which will return an integer containing the subtableRootNodeId. Nếu bạn cần thêm một hàng vào Subtable, bạn có thể sử dụng SubtablerootNodeID tiêu cực như -100, cách này tất cả các giá trị được đặt thành cùng một SubtablerootNodeID tiêu cực sẽ được áp dụng cho cùng một hàng có thể phụ mới và các giá trị được đặt thành một SubtablerOotOid khác nhau như -101 sẽ tạo hàng khác nhau trong phần phụ với tập hợp các giá trị khác nhau này.-100, this way all values set to the same negative subtableRootNodeId will be applied to the same new subtable row, and values set to a different negative subtableRootNodeId like -101 will create different row in the subtable with this different set of values. Pre-workflow và hậu làm việcNếu bạn muốn nhận các giá trị trong dòng chảy trước khi làm việc và sau làm việc, hãy thử theo ví dụ này: 5 Sao chép hồ sơLiên kết đến ví dụ: Sao chép từ và sao chép vào Sao chép hồ sơ là một trong những chương trình quy trình công việc phổ biến nhất mà chúng tôi gặp phải. Chúng tôi đã viết một chức năng khá đơn giản để đơn giản hóa loại hoạt động này. Giả sử chúng tôi muốn xem một bản ghi trên tờ này: Với nút bấm, hãy tạo bản ghi trên bảng này: Đây là mã cho nút hành động này: 6 Ở đây bạn có thể thấy chúng ta có thể thực hiện bản sao với một cuộc gọi chức năng đơn giản đến EntryCopier. EntryCopier lấy một chuỗi JSON làm tham số của nó. Chỉ cần đặt bảng nguồn, bảng mục tiêu, bản ghi mà chúng tôi đang sao chép và quan trọng nhất là trường nào nên được ánh xạ tới trường nào. Khi ánh xạ hoàn tất, bạn có thể tạo các nút hành động để sao chép bản ghi từ một tờ này sang trang khác rất dễ dàng.entryCopier. entryCopier takes a JSON string as its parameter. Just put down the source sheet, target sheet, the record that we're copying, and most importantly, which field should be mapped to which field. When the mapping is complete, you can create action buttons to copy records from one sheet to another very easily. Hãy xem một ví dụ khác. Tại đây, chúng tôi muốn sao chép Lin từ "copyfrom" sang "copyto" và đặt trạng thái thành mới. Ngoài ra, chúng tôi cũng muốn ghi lại ngày được tạo (vui lòng bỏ qua việc sử dụng trường ngày $ cho ví dụ này). 7 Tiếp theo, thiết lập nút hành động và lưu nó. Sau đó, chỉ cần nhấp vào nút Hành động để hiển thị kết quả. Kiểm tra quyền truy cập của người dùngBạn có thể thực hiện một số xử lý có điều kiện dựa trên nhóm người dùng sẽ thực thi tập lệnh. không có trong nhóm người dùng này. Một cách sử dụng điển hình sẽ như sau, mã sau được thiết kế để trở thành một luồng trước, nhưng một đối tượng người dùng và cuộc gọi isingroup có thể được sử dụng trong tất cả các loại quy trình làm việc ngoại trừ quy trình làm việc hàng ngày được hệ thống kích hoạt. 8 Gửi thông báo e-mailĐôi khi bạn muốn gửi thông báo e-mail dựa trên một bộ điều kiện hoặc bạn muốn thực sự tùy chỉnh nội dung thông báo thông báo của mình. Bạn có thể viết quy trình công việc JavaScript phía máy chủ cho mục đích này. Đây là tập lệnh mà bạn sẽ sử dụng để gửi e-mail, nó thực sự đơn giản: 9 Lưu ý rằng nếu bạn muốn gửi e-mail cho nhiều người nhận, chỉ cần tách từng địa chỉ e-mail bằng dấu phẩy. Đối với các tệp đính kèm, bạn có thể sử dụng mailer.attach (myurl); Để đính kèm một bản ghi trên ragic bằng cách sử dụng URL của bản ghi. Ví dụ: đây là một url kỷ lục trên ragic (luôn bỏ qua URL sau băm):mailer.attach(myURL); to attach a record on Ragic by using the record's URL. For example, here is a record URL on Ragic (always ignore URL after the hash) : 0 Đây là URL thân thiện với máy in HTML của nó: 1 Đây là URL phiên bản Excel của nó: 2 Bạn cũng có thể sử dụng URL hợp nhất thư như thế này, CID là ID của hợp nhất thư, bạn có thể nhận CID trong URL khi cố gắng tải xuống tài liệu Mail Merge: 3 Chúng tôi thực thi một số hạn chế về số lượng e-mail bạn có thể gửi. Vì vậy, gửi hợp lý! Nếu bạn có một số câu hỏi trên e-mail gửi hạn ngạch, hãy gửi cho chúng tôi một e-mail tại. Tạo và hủy bỏ phê duyệtBạn có thể bắt đầu hoặc hủy bỏ sự chấp thuận của bản ghi bằng cách thêm tập lệnh sau làm việc vào trang của bạn. Đầu tiên chúng tôi đặt bước phê duyệt trong chế độ thiết kế. Và bây giờ đặt chi tiết phê duyệt trong quy trình làm việc sau 4 kết quả 5 là định dạng tham số bạn nên cung cấp. Stepindex: : Được sử dụng để biết bước phê duyệt nào để đặt, bắt đầu từ số không. Người phê duyệt: : Được sử dụng để biết ai có thể ký bước phê duyệt này. Tên kế: : Được sử dụng để đặt tên bước phê duyệt. Sự chấp thuận của bạn sẽ không được tạo nếu có điều gì đó sai trong định dạng tham số hoặc những người phê duyệt bạn cung cấp không tuân theo quy tắc bạn đặt trong chế độ thiết kế. Trong ví dụ này, nếu bạn đưa ra tham số bước thứ hai như 6 Nó sẽ thất bại vì không thuộc nhóm nhân sự. Chúng tôi cũng cung cấp 3 định dạng đặc biệt để quyết định người phê duyệt của bạn một cách linh hoạt theo cây công ty của bạn. Bạn có thể thấy điều này để biết thêm thông tin. $ DS: : Người phê duyệt sẽ được đặt cho người giám sát trực tiếp của người dùng. $ Ss: : Người phê duyệt sẽ được đặt cho người giám sát của người dùng. $ Dsl: : Người phê duyệt sẽ được đặt thành người giám sát của người phê duyệt trước đó. Định dạng tham số giống như 7 Bạn không phải cung cấp một tên bước không trống trong khi sử dụng các định dạng đặc biệt này. Lưu ý: Nếu người dùng ở định dạng đặc biệt không tuân theo quy tắc bạn đặt ở chế độ thiết kế, người phê duyệt này sẽ không được tạo. Gửi thông báo ứng dụng di độngKhác với thông báo e-mail, bạn cũng có thể gửi thông báo ứng dụng di động. Nó sẽ được gửi cho người dùng nếu ứng dụng iOS hoặc ứng dụng Android đã được cài đặt trên thiết bị di động của anh ấy. E-mail đề cập đến địa chỉ e-mail của người dùng đã đăng ký trong tài khoản ragic của bạn. Ví dụ: 8 Nếu bạn muốn người dùng được chuyển hướng đến bản ghi được chỉ định khi nhấp vào thông báo này. Bạn nên cung cấp một đường dẫn đến biểu mẫu mà bạn muốn chuyển hướng đến (ví dụ: /forms /1) và ID bản ghi. Cuộc gọi sẽ trông như thế này: 9 Người phê duyệt và thông tin khác trong hồ sơTrước tiên bạn có thể phát hành lệnh sau cho đối tượng truy vấn bạn nhận được từ db.getapiquery để bao gồm thông tin bản ghi đầy đủ: var recordId = approvalParam.getEntryRootNodeId();0 Và sau đó bạn có thể nhận được thông tin phê duyệt cho một hồ sơ như thế này: var recordId = approvalParam.getEntryRootNodeId();1 Tình trạng phê duyệt sẽ được F được phê duyệt, RENA cho bị từ chối, P để xử lý. Hiển thị thông báoBạn có thể hiển thị một tin nhắn trong một cửa sổ bật lên như thế này. Xin lưu ý rằng tin nhắn sẽ chỉ hiển thị khi trạng thái phản hồi là "cảnh báo". Theo mặc định, thông báo bên trong đối tượng phản hồi sẽ không được hiển thị vì nó thường không hữu ích cho người dùng cuối. var recordId = approvalParam.getEntryRootNodeId();2 Phân trangTrong phần này, chúng tôi sẽ có một ví dụ để chỉ ra cách sử dụng setLimitSize và setLimitFrom. Trong ví dụ này, chúng tôi có 20 mục hoàn toàn và muốn lấy 6 cho mỗi lần đếm và hiển thị tin nhắn. var recordId = approvalParam.getEntryRootNodeId();3 Mục Kết quả Gửi yêu cầu HTTPBạn có thể gửi yêu cầu HTTP GET/POST/DELETE/PUT vào URL và nhận kết quả trả về: var recordId = approvalParam.getEntryRootNodeId();4 Việc sử dụng biến được xác định trước.util is predefined. Ngoài ra, bạn có thể gọi Util.Setheader (tên chuỗi, giá trị chuỗi) để đặt các tiêu đề HTTP. Util.RemoveHeader (tên chuỗi) để xóa các tiêu đề. Tài liệu tham khảo APICác biến toàn cầu của hệ thống được xác định trước được liệt kê ở đây có thể được truy cập trực tiếp mà không cần xác định chúng. db.getAPIQuery
Đây là danh sách các toán hạng mà bạn có thể sử dụng:
Xin lưu ý rằng khi bạn lọc theo ngày hoặc ngày, họ sẽ cần ở định dạng sau: yyyy/mm/dd hoặc yyyy/mm/dd hh: mm: ssyyyy/MM/dd or yyyy/MM/dd HH:mm:ss Bạn cũng có thể sử dụng tìm kiếm văn bản đầy đủ làm bộ lọc truy vấn bằng cách gọi setfullTextSearch (chuỗi queryterm) thay vì addfilter ().full text search as a query filter by calling setFullTextSearch(String queryTerm) instead of addFilter(). Hồ sơ db.getapiquery
phản ứng
người sử dụng
numofmessages ()
Nhận địa chỉ email của người dùng
Nhận địa chỉ email của người dùng
paramĐây là đối tượng yêu cầu người dùng được gửi bởi người dùng trước khi yêu cầu được lưu vào cơ sở dữ liệu. Đặc biệt hữu ích khi viết các tập lệnh trước khi làm việc
phê duyệtChỉ sau khi làm việc. WFSigner là một mảng với các đối tượng định dạng JSON cụ thể trong đó. { 'Stepindex': Bước nào trong phê duyệt - Bắt đầu từ 0, 'Người phê duyệt': Email của người phê duyệt 'Tên StepName': Tên hoặc Tiêu đề của người phê duyệt } Ví dụ cho "người phê duyệt đơn trong một bước": WFSigner Push ({ 'Stepindex': '1', 'người phê duyệt': '', 'Tên kế': 'Jo' }) Lưu ý rằng WFSigner nên đáp ứng sự chấp thuận bạn đặt ở chế độ thiết kế. Giả sử, nếu chỉ có một ứng cử viên "" ở Bước 2 trong chế độ thiết kế, bạn nên cho JSON với người phê duyệt: và Stepindex: 1.
Trả về ID nút (int) của trường đã cho sau khi giá trị mới được viết.
|